/*
|--------------------------------------------------------------------------
| Growers Marketplace Theme
| Final refactor — organized, deduplicated, Growers Marketplace first
|--------------------------------------------------------------------------
|
| Notes
| - Organized by foundation > components > templates > integrations > responsive.
| - Reduced duplicate selectors and override chains.
| - Kept HivePress compatibility, but limited strong overrides to integration areas.
| - Footer, header, cards, and interaction system are now GM-owned components.
|--------------------------------------------------------------------------
*/

/* =====================================================
   01. RESET
===================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}
/* =====================================================
   GLOBAL TOP GAP RESET
===================================================== */

html,
body {
  margin: 0;
  padding: 0;
}

body.gm-theme #content,
body.gm-theme #primary,
body.gm-theme .site-content,
body.gm-theme .content,
body.gm-theme .content-area,
body.gm-theme .site-main,
body.gm-theme .hp-page,
body.gm-theme .hp-page__content {
  margin-top: 0;
  padding-top: 0;
}

body.gm-theme #content,
body.gm-theme .site-content,
body.gm-theme #primary,
body.gm-theme .site-main {
  width: 100%;
  max-width: 100%;
}

/* =====================================================
   02. TOKENS
===================================================== */

:root {
  /* Brand */
  --gm-green: #2d7a4f;
  --gm-green-hover: #3a9e68;
  --gm-green-dark: #173326;
  --gm-green-pale: #e8f5ee;

  /* Neutrals */
  --gm-ink: #1a1f1c;
  --gm-ink-2: #3d4740;
  --gm-ink-3: #7a8a80;
  --gm-surface: #f4f7f5;
  --gm-surface-2: #eef4f0;
  --gm-white: #ffffff;
  --gm-border: rgba(23, 33, 23, 0.08);
  --gm-border-strong: rgba(45, 122, 79, 0.28);

  /* Header / hero */
  --gm-header-bg: rgba(12, 18, 16, 0.68);
  --gm-header-border: rgba(255, 255, 255, 0.08);
  --gm-hero-overlay: linear-gradient(
    120deg,
    rgba(10, 20, 13, 0.74) 0%,
    rgba(10, 20, 13, 0.52) 55%,
    rgba(10, 20, 13, 0.18) 100%
  );

  /* Typography */
  --gm-serif: "DM Serif Display", Georgia, serif;
  --gm-sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Layout */
  --gm-container: 1240px;
  --gm-container-wide: 1320px;
  --gm-page-inset: 56px;
  --gm-header-height: 88px;

  /* Radius */
  --gm-radius-xs: 8px;
  --gm-radius-sm: 10px;
  --gm-radius: 14px;
  --gm-radius-lg: 22px;
  --gm-radius-xl: 28px;
  --gm-radius-pill: 999px;

  /* Shadows */
  --gm-shadow-xs: 0 6px 18px rgba(0, 0, 0, 0.04);
  --gm-shadow-sm: 0 8px 22px rgba(30, 60, 40, 0.08);
  --gm-shadow: 0 18px 48px rgba(30, 60, 40, 0.12);
  --gm-shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.16);

  /* Motion */
  --gm-transition-fast: 0.18s ease;
  --gm-transition: 0.28s ease;

  /* Links */
  --gm-link-color: var(--gm-ink);
  --gm-link-hover-color: var(--gm-ink-2);
  --gm-link-active-color: var(--gm-green);
  --gm-link-underline-color: color-mix(in srgb, var(--gm-green) 70%, white);

  /* Header links */
  --gm-header-link-color: var(--gm-white);
  --gm-header-link-hover-color: var(--gm-white);
  --gm-header-link-underline: var(--gm-white);

  /* Buttons */
  --gm-btn-primary-bg: var(--gm-green);
  --gm-btn-primary-bg-hover: var(--gm-green-hover);
  --gm-btn-primary-text: var(--gm-white);
  --gm-btn-secondary-bg: rgba(255, 255, 255, 0.12);
  --gm-btn-secondary-bg-hover: rgba(255, 255, 255, 0.2);
  --gm-btn-secondary-border: rgba(255, 255, 255, 0.24);
  --gm-btn-secondary-text: var(--gm-white);
  --gm-btn-text-color: var(--gm-ink);
  --gm-btn-text-hover-color: var(--gm-green);

  /* Avatar */
  --gm-avatar-bg: var(--gm-green);
  --gm-avatar-text: var(--gm-white);
  --gm-avatar-border-hover: rgba(255, 255, 255, 0.92);

  /* Interactions */
  --gm-interaction-tint: rgba(45, 122, 79, 0.08);
  --gm-interaction-ring: 0 0 0 4px rgba(45, 122, 79, 0.14);
  --gm-interaction-shadow: 0 12px 28px rgba(23, 51, 38, 0.12);
  --gm-interaction-shadow-strong: 0 18px 40px rgba(23, 51, 38, 0.16);
  --gm-press-scale: 0.985;

  /* Footer */
  --gm-footer-bg: linear-gradient(180deg, #102019 0%, #152920 100%);
  --gm-footer-link: rgba(255, 255, 255, 0.78);
  --gm-footer-link-hover: #ffffff;
}

/* =====================================================
   03. BASE
===================================================== */

body.gm-theme {
  margin: 0;
  overflow-x: hidden;
  background: var(--gm-surface);
  color: var(--gm-ink);
  font-family: var(--gm-sans);
  text-rendering: optimizeLegibility;
}

/* ── Sticky footer + breathing room before footer ── */

/* body = flex column filling the viewport */
body.gm-theme {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
}

/* content grows to push footer to bottom on short pages */
body.gm-theme #content,
body.gm-theme .site-content {
  flex: 1 0 auto;
  padding-bottom: 0rem;
}

/* footer never compresses */
body.gm-theme .gm-site-footer {
  flex-shrink: 0;
}

body.gm-theme,
body.gm-theme input,
body.gm-theme select,
body.gm-theme textarea,
body.gm-theme button {
  font-family: var(--gm-sans);
}

.gm-container {
  width: min(var(--gm-container), calc(100% - 48px));
  margin-inline: auto;
}

.gm-page-shell {
  padding: 40px 0 80px;
}

.gm-two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.9fr);
  gap: 28px;
}

.gm-sidebar-stack {
  display: grid;
  gap: 24px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.home .site-content,
.home .site-main,
.home .content,
.home .hp-page {
  margin-top: 0;
  padding-top: 0;
}

.home .site-content,
.home .content,
.home .hp-page {
  overflow: visible;
}

/* =====================================================
   04. TYPOGRAPHY
===================================================== */

.gm-theme h1,
.gm-theme h2,
.gm-theme h3,
.gm-theme h4,
.gm-section__title,
.gm-page-hero__title,
.gm-hero__title,
.gm-dashboard-hero__title,
.gm-card__title,
.gm-post-card__title,
.gm-register-card__title,
.gm-login-card__title,
.gm-login-sidecard__title,
.gm-plan-card__title {
  font-family: var(--gm-serif);
  letter-spacing: -0.02em;
}

.gm-section {
  padding: 72px 0;
}

.gm-section__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}

.gm-section__title,
.gm-page-hero__title {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1;
}

.gm-hero__title,
.gm-dashboard-hero__title {
  margin: 0 0 18px;
  font-size: clamp(2.8rem, 6vw, 5.8rem);
  line-height: 0.95;
}

.gm-section__eyebrow,
.gm-page-hero__eyebrow,
.gm-hero__eyebrow,
.gm-dashboard-hero__eyebrow {
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.82rem;
  font-weight: 700;
}

.gm-section__eyebrow {
  color: var(--gm-green);
}

.gm-page-hero__eyebrow,
.gm-hero__eyebrow,
.gm-dashboard-hero__eyebrow {
  color: var(--gm-white);
}

.gm-page-hero__title,
.gm-hero__title,
.gm-dashboard-hero__title {
  color: var(--gm-white);
}

.gm-section__text,
.gm-page-hero__text,
.gm-hero__text,
.gm-dashboard-hero__text,
.gm-pricing-header__text,
.gm-register-card__text,
.gm-login-card__text {
  line-height: 1.7;
  color: var(--gm-ink-2);
}

.gm-hero__text,
.gm-dashboard-hero__text,
.gm-page-hero__text {
  max-width: 62ch;
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  color: rgba(255, 255, 255, 0.84);
}

/* =====================================================
   05. LINKS + FOCUS
===================================================== */

.gm-theme a,
.gm-theme a:visited {
  color: inherit;
  text-decoration: none;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.18em;
  text-decoration-color: transparent;
  transition:
    color var(--gm-transition-fast),
    text-decoration-color var(--gm-transition-fast),
    background-color var(--gm-transition-fast),
    border-color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    transform var(--gm-transition-fast),
    filter var(--gm-transition-fast),
    opacity var(--gm-transition-fast);
}

.gm-theme a:hover,
.gm-theme a:focus-visible {
  color: var(--gm-link-hover-color);
  text-decoration: underline;
  text-decoration-color: var(--gm-link-underline-color);
}

.gm-theme a:active {
  color: var(--gm-link-active-color);
}

.gm-theme a:focus-visible,
.gm-theme button:focus-visible,
.gm-theme input:focus-visible,
.gm-theme select:focus-visible,
.gm-theme textarea:focus-visible,
.gm-theme .gm-btn:focus-visible,
.gm-theme .hp-button:focus-visible,
.gm-theme [role="button"]:focus-visible,
.gm-theme [tabindex]:focus-visible {
  outline: none;
  box-shadow: var(--gm-interaction-ring);
}
/* Default content areas */
.gm-main,
.gm-content,
.gm-article-prose {
  color: var(--gm-ink);
}

/* =====================================================
   06. UNIFIED BUTTON + HEADER ACTION SYSTEM
===================================================== */

:root {
  --gm-btn-height: 44px;
  --gm-btn-padding-x: 18px;
  --gm-btn-radius: var(--gm-radius-sm);
  --gm-btn-font-size: 0.95rem;
  --gm-btn-font-weight: 600;
  --gm-btn-shadow: 0 10px 24px rgba(23, 51, 38, 0.18);

  --gm-btn-primary-bg: var(--gm-green);
  --gm-btn-primary-border: var(--gm-green);
  --gm-btn-primary-text: var(--gm-white);

  --gm-btn-primary-bg-hover: var(--gm-green-hover);
  --gm-btn-primary-border-hover: var(--gm-green-hover);
  --gm-btn-primary-text-hover: var(--gm-white);

  --gm-btn-secondary-bg: rgba(255, 255, 255, 0.12);
  --gm-btn-secondary-border: rgba(255, 255, 255, 0.24);
  --gm-btn-secondary-text: var(--gm-white);

  --gm-btn-secondary-bg-hover: rgba(255, 255, 255, 0.2);
  --gm-btn-secondary-border-hover: rgba(255, 255, 255, 0.28);
  --gm-btn-secondary-text-hover: var(--gm-white);

  --gm-btn-ghost-bg: transparent;
  --gm-btn-ghost-border: transparent;
  --gm-btn-ghost-text: var(--gm-btn-text-color);
  --gm-btn-ghost-text-hover: var(--gm-btn-text-hover-color);
}

/* -------------------------------------
   Base button reset
------------------------------------- */
.gm-theme .button,
.gm-theme button,
.gm-theme input[type="submit"],
.gm-theme .hp-button,
.gm-btn,
.gm-site-header__button,
.gm-site-header__mobile-button,
.gm-login-form-wrap .button,
.gm-login-form-wrap input[type="submit"],
.gm-login-form-wrap #gm_login_submit,
.gm-hero-search__submit,
.gm-article-prose .wp-block-button__link,
.gm-theme .hp-form .hp-button,
.gm-theme .hp-button[type="submit"],
.gm-theme .hp-form button,
.gm-theme .hp-form button[type="submit"],
.gm-theme .hp-form input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--gm-btn-height);
  padding: 0 var(--gm-btn-padding-x);
  border: 1px solid transparent;
  border-radius: var(--gm-btn-radius);
  background: var(--gm-btn-primary-bg);
  border-color: var(--gm-btn-primary-border);
  color: var(--gm-btn-primary-text) !important;
  font-size: var(--gm-btn-font-size);
  font-weight: var(--gm-btn-font-weight);
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: var(--gm-btn-shadow);
  transition:
    background-color var(--gm-transition-fast),
    border-color var(--gm-transition-fast),
    color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    transform var(--gm-transition-fast),
    filter var(--gm-transition-fast);
}

/* Prevent global link hover/visited styles leaking into button anchors */
.gm-theme .button:visited,
.gm-theme .hp-button:visited,
.gm-btn:visited,
.gm-site-header__button:visited,
.gm-site-header__mobile-button:visited,
.gm-hero-search__submit:visited,
.gm-article-prose .wp-block-button__link:visited {
  color: var(--gm-btn-primary-text) !important;
  text-decoration: none !important;
}

.gm-theme .button:hover,
.gm-theme .button:focus-visible,
.gm-theme button:hover,
.gm-theme button:focus-visible,
.gm-theme input[type="submit"]:hover,
.gm-theme input[type="submit"]:focus-visible,
.gm-theme .hp-button:hover,
.gm-theme .hp-button:focus-visible,
.gm-btn:hover,
.gm-btn:focus-visible,
.gm-site-header__button:hover,
.gm-site-header__button:focus-visible,
.gm-site-header__mobile-button:hover,
.gm-site-header__mobile-button:focus-visible,
.gm-login-form-wrap .button:hover,
.gm-login-form-wrap .button:focus-visible,
.gm-login-form-wrap input[type="submit"]:hover,
.gm-login-form-wrap input[type="submit"]:focus-visible,
.gm-login-form-wrap #gm_login_submit:hover,
.gm-login-form-wrap #gm_login_submit:focus-visible,
.gm-hero-search__submit:hover,
.gm-hero-search__submit:focus-visible,
.gm-article-prose .wp-block-button__link:hover,
.gm-article-prose .wp-block-button__link:focus-visible,
.gm-theme .hp-form .hp-button:hover,
.gm-theme .hp-form .hp-button:focus-visible,
.gm-theme .hp-form button:hover,
.gm-theme .hp-form button:focus-visible,
.gm-theme .hp-form input[type="submit"]:hover,
.gm-theme .hp-form input[type="submit"]:focus-visible {
  background: var(--gm-btn-primary-bg-hover);
  border-color: var(--gm-btn-primary-border-hover);
  color: var(--gm-btn-primary-text-hover) !important;
  text-decoration: none !important;
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.gm-theme .button:active,
.gm-theme button:active,
.gm-theme input[type="submit"]:active,
.gm-theme .hp-button:active,
.gm-btn:active,
.gm-site-header__button:active,
.gm-site-header__mobile-button:active,
.gm-hero-search__submit:active,
.gm-article-prose .wp-block-button__link:active {
  transform: translateY(0) scale(var(--gm-press-scale));
  color: var(--gm-btn-primary-text) !important;
}

/* -------------------------------------
   Explicit primary aliases
------------------------------------- */
.gm-theme .button-primary,
.gm-theme .hp-button--primary,
.gm-btn--primary,
.gm-site-header__button,
.gm-site-header__mobile-button--primary,
.gm-login-form-wrap .button,
.gm-login-form-wrap input[type="submit"],
.gm-login-form-wrap #gm_login_submit,
.gm-hero-search__submit,
.gm-article-prose .wp-block-button__link {
  background: var(--gm-btn-primary-bg);
  border-color: var(--gm-btn-primary-border);
  color: var(--gm-btn-primary-text) !important;
  box-shadow: var(--gm-btn-shadow);
}

/* -------------------------------------
   Secondary buttons
------------------------------------- */
.gm-btn--secondary,
.gm-site-header__mobile-button,
.gm-theme .hp-button--secondary,
.gm-theme .hp-button--wide:not(.hp-button--primary) {
  background: var(--gm-btn-secondary-bg);
  border-color: var(--gm-btn-secondary-border);
  color: var(--gm-btn-secondary-text) !important;
  box-shadow: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gm-btn--secondary:hover,
.gm-btn--secondary:focus-visible,
.gm-site-header__mobile-button:hover,
.gm-site-header__mobile-button:focus-visible,
.gm-theme .hp-button--secondary:hover,
.gm-theme .hp-button--secondary:focus-visible,
.gm-theme .hp-button--wide:not(.hp-button--primary):hover,
.gm-theme .hp-button--wide:not(.hp-button--primary):focus-visible {
  background: var(--gm-btn-secondary-bg-hover);
  border-color: var(--gm-btn-secondary-border-hover);
  color: var(--gm-btn-secondary-text-hover) !important;
  text-decoration: none !important;
}

/* -------------------------------------
   Text / ghost buttons
------------------------------------- */
.gm-btn--text,
.gm-btn--text:visited {
  min-height: auto;
  padding-inline: 0;
  background: var(--gm-btn-ghost-bg);
  border-color: var(--gm-btn-ghost-border);
  color: var(--gm-btn-ghost-text) !important;
  box-shadow: none;
}

.gm-btn--text:hover,
.gm-btn--text:focus-visible {
  background: transparent;
  border-color: transparent;
  color: var(--gm-btn-ghost-text-hover) !important;
  text-decoration: underline;
  text-decoration-color: var(--gm-link-underline-color);
}

/* -------------------------------------
   Header action links
   Catches Log in / Register when they
   are links, not true button elements
------------------------------------- */
.gm-site-header__actions > a:not(.gm-site-header__button),
.gm-site-header__actions > a:not(.gm-site-header__button):visited,
.gm-site-header__actions .gm-site-header__action,
.gm-site-header__actions .gm-site-header__action:visited {
  color: var(--gm-header-link-color) !important;
  text-decoration: none !important;
}

.gm-site-header__actions > a:not(.gm-site-header__button):hover,
.gm-site-header__actions > a:not(.gm-site-header__button):focus-visible,
.gm-site-header__actions .gm-site-header__action:hover,
.gm-site-header__actions .gm-site-header__action:focus-visible {
  color: var(--gm-btn-primary-text) !important;
  text-decoration: none !important;
  filter: brightness(1.06);
}

.gm-site-header__actions > a:not(.gm-site-header__button) span,
.gm-site-header__actions .gm-site-header__action span {
  color: inherit !important;
}

.gm-site-header__actions > a:not(.gm-site-header__button)::after,
.gm-site-header__actions .gm-site-header__action::after {
  background: var(--gm-header-link-underline) !important;
}

/* -------------------------------------
   WordPress block buttons
------------------------------------- */
.gm-article-prose .wp-block-button__link,
.gm-article-prose .wp-block-button__link:visited,
.gm-article-prose .wp-block-button__link:hover,
.gm-article-prose .wp-block-button__link:focus-visible {
  color: var(--gm-btn-primary-text) !important;
  text-decoration: none !important;
}
/* =====================================================
   DESKTOP HIDE MOBILE HEADER UI
===================================================== */

@media (min-width: 1025px) {
  .gm-site-header__mobile,
  .gm-site-header__mobile-toggle,
  .gm-site-header__mobile-button,
  .gm-site-header__mobile-menu {
    display: none !important;
  }
}
@media (max-width: 1024px) {
  .gm-site-header__mobile-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .gm-site-header.is-mobile-open .gm-site-header__mobile {
    display: block;
  }
}
/* =====================================================
   07. FORMS
===================================================== */

.gm-theme input[type="text"],
.gm-theme input[type="email"],
.gm-theme input[type="password"],
.gm-theme input[type="number"],
.gm-theme input[type="search"],
.gm-theme input[type="url"],
.gm-theme input[type="tel"],
.gm-theme input[type="date"],
.gm-theme select,
.gm-theme textarea {
  border: 1px solid #d8e4dc;
  border-radius: 12px;
  background: var(--gm-white);
  color: var(--gm-ink);
  transition:
    border-color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    background-color var(--gm-transition-fast);
}

.gm-theme input:hover,
.gm-theme select:hover,
.gm-theme textarea:hover {
  border-color: #c7d9cd;
}

.gm-theme input:focus,
.gm-theme select:focus,
.gm-theme textarea:focus {
  outline: none;
  border-color: var(--gm-green);
  background: #fcfefd;
  box-shadow: var(--gm-interaction-ring);
}

.gm-theme input::placeholder,
.gm-theme textarea::placeholder {
  color: var(--gm-ink-3);
  opacity: 1;
}

/* =====================================================
   08. SHARED SURFACES + CARDS
===================================================== */

.gm-surface,
.gm-main-card,
.gm-login-card,
.gm-login-sidecard,
.gm-register-form-panel,
.gm-theme .hp-listing--view-block,
.gm-theme .card,
.gm-theme .widget,
.gm-theme .hp-form,
.gm-theme .hp-message,
.gm-theme .box,
.gm-theme .content__sidebar .widget,
.gm-theme .content__main > .widget,
.gm-theme article.type-post,
.gm-theme .type-page {
  background: var(--gm-white);
  border: 1px solid #e4ece7;
  border-radius: var(--gm-radius-lg);
}

.gm-main-card {
  padding: 28px;
}

.gm-surface,
.gm-main-card,
.gm-login-card,
.gm-login-sidecard,
.gm-register-form-panel,
.gm-listing-card,
.gm-post-card,
.gm-theme .hp-listing--view-block,
.gm-theme .hp-vendor--view-block,
.gm-theme .hp-message--view-block,
.gm-theme .hp-thread--view-block {
  transition:
    transform var(--gm-transition-fast),
    border-color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    background-color var(--gm-transition-fast),
    filter var(--gm-transition-fast);
}

.gm-listing-card:hover,
.gm-listing-card:focus-within,
.gm-post-card:hover,
.gm-post-card:focus-within,
.gm-surface:hover,
.gm-main-card:hover {
  border-color: #d1e4d8;
  box-shadow: var(--gm-interaction-shadow);
}

.gm-login-card:hover,
.gm-login-sidecard:hover,
.gm-register-form-panel:hover {
  box-shadow: 0 16px 34px rgba(23, 51, 38, 0.09);
}
/* Login layout */
.gm-login-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
	gap: 28px;
	align-items: stretch;
}

@media (max-width: 980px) {
	.gm-login-layout {
		grid-template-columns: 1fr;
	}
}

/* Match both cards */
.gm-login-card,
.gm-login-sidecard {
	height: 100%;
	padding: 34px 34px 32px;
	border-radius: 28px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(23, 51, 38, 0.08);
	box-shadow: 0 20px 45px rgba(20, 40, 28, 0.08);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

/* Sidecard internal rhythm */
.gm-login-sidecard {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

/* Title */
.gm-login-sidecard__title {
	margin: 0 0 28px;
	font-family: "DM Serif Display", Georgia, serif;
	font-size: clamp(2rem, 3vw, 2.8rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: #173326;
}

/* Benefits list */
.gm-login-benefits {
	list-style: none !important;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.gm-login-benefits li {
	position: relative;
	margin: 0;
	padding: 0 0 0 20px;
	font-size: 1.05rem;
	line-height: 1.55;
	color: #21382b;
}

.gm-login-benefits li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.7em;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: #2d7a4f;
	opacity: 0.95;
	transform: translateY(-50%);
}

/* Divider */
.gm-login-sidecard__divider {
	margin: 26px 0 24px;
	height: 1px;
	background: rgba(23, 51, 38, 0.10);
}

/* CTA block */
.gm-login-sidecard__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	margin-top: 0;
}

/* Prompt */
.gm-login-sidecard__prompt {
	margin: 0;
	width: 100%;
	font-size: 0.98rem;
	font-weight: 600;
	line-height: 1.4;
	color: #173326;
	text-align: left;
}

/* Full width button */
.gm-btn--block {
	display: inline-flex;
	width: 100%;
	justify-content: center;
	align-items: center;
}

/* Button in sidecard */
.gm-login-sidecard .gm-btn {
	min-height: 56px;
	padding: 0 22px;
	border-radius: 14px;
	font-size: 1.05rem;
	font-weight: 700;
}

/* Subtext */
.gm-login-sidecard__subtext {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.45;
	color: rgba(23, 51, 38, 0.72);
	text-align: center;
}

/* Slightly tighter on smaller screens */
@media (max-width: 640px) {
	.gm-login-card,
	.gm-login-sidecard {
		padding: 26px 22px 24px;
		border-radius: 22px;
	}

	.gm-login-sidecard__title {
		margin-bottom: 22px;
		font-size: 2.2rem;
	}

	.gm-login-benefits {
		gap: 14px;
	}

	.gm-login-sidecard__divider {
		margin: 22px 0 20px;
	}
}
/* =====================================================
   09. HEADER
===================================================== */

.gm-site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 9999;
  width: 100%;
  height: var(--gm-header-height);
  background: var(--gm-header-bg);
  border-bottom: 1px solid var(--gm-header-border);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  transition:
    background-color var(--gm-transition),
    border-color var(--gm-transition),
    box-shadow var(--gm-transition),
    backdrop-filter var(--gm-transition),
    -webkit-backdrop-filter var(--gm-transition);
  color: var(--gm-header-link-color);
}

/* Header variants */

/* Default: transparent hero header (homepage, archive, auth pages) */
.gm-site-header--transparent {
  background: transparent;
  background-color: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.gm-site-header--transparent .gm-site-header__logo,
.gm-site-header--transparent .gm-site-header__logo-text,
.gm-site-header--transparent .gm-site-header__menu > li > a,
.gm-site-header--transparent .gm-site-header__action {
  color: var(--gm-white);
}

.gm-site-header--transparent .gm-site-header__button {
  background: var(--gm-green);
  color: var(--gm-white);
  border-color: var(--gm-green);
}

.gm-site-header--transparent.is-scrolled {
  background: rgba(20, 28, 22, 0.92);
  border-bottom-color: rgba(255,255,255,0.08);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
}

.gm-site-header--transparent.is-scrolled .gm-site-header__logo,
.gm-site-header--transparent.is-scrolled .gm-site-header__logo-text,
.gm-site-header--transparent.is-scrolled .gm-site-header__menu > li > a,
.gm-site-header--transparent.is-scrolled .gm-site-header__action {
  color: var(--gm-white);
}

/* Light: solid white header (listing pages, dashboard, account) */
.gm-site-header--light {
  background: var(--gm-white);
  border-bottom: 1px solid var(--gm-border);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  --gm-header-link-color: var(--gm-ink);
  --gm-header-link-hover-color: var(--gm-green);
}

.gm-site-header--light .gm-site-header__logo,
.gm-site-header--light .gm-site-header__logo-text,
.gm-site-header--light .gm-site-header__menu > li > a {
  color: var(--gm-ink);
}

.gm-site-header--light .gm-site-header__action:hover,
.gm-site-header--light .gm-site-header__menu > li > a:hover {
  color: var(--gm-green);
}

.gm-site-header--light .gm-site-header__button {
  background: var(--gm-green);
  color: var(--gm-white);
  border-color: var(--gm-green);
}

/* Light header does not change on scroll — stays white */
.gm-site-header--light.is-scrolled {
  background: var(--gm-white);
  border-bottom-color: var(--gm-border);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.gm-site-header--light.is-scrolled .gm-site-header__logo,
.gm-site-header--light.is-scrolled .gm-site-header__logo-text,
.gm-site-header--light.is-scrolled .gm-site-header__menu > li > a,
.gm-site-header--light.is-scrolled .gm-site-header__action {
  color: var(--gm-ink);
}

/* Mobile hamburger — adapt to header variant */
.gm-site-header--transparent .gm-site-header__mobile-toggle span {
  background: var(--gm-white);
}

.gm-site-header--transparent.is-scrolled .gm-site-header__mobile-toggle span {
  background: var(--gm-white);
}

.gm-site-header--light .gm-site-header__mobile-toggle span {
  background: var(--gm-ink);
}

.gm-site-header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: none;
  min-height: var(--gm-header-height);
  padding: 0 var(--gm-page-inset);
  background: transparent;
}

.gm-site-header__brand,
.gm-site-header__actions {
  position: relative;
  z-index: 2;
}

.gm-site-header__logo,
.gm-site-header__logo:visited,
.gm-site-header__logo a,
.gm-site-header__logo a:visited,
.gm-site-header__logo-text {
  color: inherit;
  text-decoration: none;
  font-family: var(--gm-serif);
  font-size: 1.5rem;
}

/* Logo variants — swap based on header type */
.gm-site-header__logo-img {
  display: block;
  height: 44px;
  width: auto;
  max-width: none;
  object-fit: contain;
}

/* Transparent header: show white logo, hide dark */
.gm-site-header--transparent .gm-site-header__logo-img--white {
  display: block;
}

.gm-site-header--transparent .gm-site-header__logo-img--dark {
  display: none;
}

/* Light header: show dark logo, hide white */
.gm-site-header--light .gm-site-header__logo-img--white {
  display: none;
}

.gm-site-header--light .gm-site-header__logo-img--dark {
  display: block;
}

/* Default fallback if no variant class: show dark logo */
.gm-site-header__logo-img--white {
  display: none;
}

.gm-site-header__logo-img--dark {
  display: block;
}

.gm-site-header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
}

.gm-site-header__menu,
.gm-site-header__nav ul {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-site-header__menu > li,
.gm-site-header__nav ul > li {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  line-height: 1;
}

.gm-site-header a,
.gm-site-header a:visited,
.gm-site-header a:hover,
.gm-site-header a:focus-visible,
.gm-site-header a:active {
  text-decoration: none;
}

.gm-site-header__menu > li > a,
.gm-site-header__nav ul > li > a,
.gm-site-header__action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  line-height: 1;
  text-decoration: none;
  color: inherit;
  transition:
    color var(--gm-transition-fast),
    opacity var(--gm-transition-fast),
    filter var(--gm-transition-fast);
}

.gm-site-header__menu a:hover,
.gm-site-header__menu a:focus-visible,
.gm-site-header__nav a:hover,
.gm-site-header__nav a:focus-visible,
.gm-site-header__action:hover,
.gm-site-header__action:focus-visible,
.gm-site-header__logo:hover,
.gm-site-header__logo:focus-visible,
.gm-site-header__logo a:hover,
.gm-site-header__logo a:focus-visible {
  color: var(--gm-header-link-hover-color);
  opacity: 0.96;
  filter: brightness(1.06);
}

.gm-site-header__menu > li > a::after,
.gm-site-header__nav ul > li > a::after,
.gm-site-header__action::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--gm-header-link-underline);
  opacity: 0.95;
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: left center;
  transition:
    transform var(--gm-transition-fast),
    background-color var(--gm-transition-fast),
    opacity var(--gm-transition-fast);
}

.gm-site-header__menu > li > a:hover::after,
.gm-site-header__menu > li > a:focus-visible::after,
.gm-site-header__nav ul > li > a:hover::after,
.gm-site-header__nav ul > li > a:focus-visible::after,
.gm-site-header__action:hover::after,
.gm-site-header__action:focus-visible::after,
.gm-site-header__menu .current-menu-item > a::after,
.gm-site-header__nav .current-menu-item > a::after,
.gm-site-header__menu .current-menu-parent > a::after,
.gm-site-header__nav .current-menu-parent > a::after {
  transform: scaleX(1);
}

.gm-site-header__actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.gm-site-header__button,
.gm-site-header__button:visited {
  color: var(--gm-white);
  text-decoration: none;
}

.gm-site-header__avatar,
.gm-site-header__avatar:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid transparent;
  border-radius: 50%;
  background: var(--gm-avatar-bg);
  color: var(--gm-avatar-text);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: var(--gm-shadow-sm);
}

.gm-site-header__avatar span {
  line-height: 1;
  color: var(--gm-white);
}

.gm-site-header__avatar:hover,
.gm-site-header__avatar:focus-visible {
  transform: translateY(-2px);
  border-color: var(--gm-avatar-border-hover);
  background: var(--gm-green-hover);
  box-shadow: var(--gm-interaction-shadow-strong);
  color: var(--gm-white);
  text-decoration: none;
}
/* Header account dropdown */

.gm-site-header__account {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.gm-site-header__account::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 0;
  width: 100%;
  height: 14px;
}

.gm-site-header__account-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 10010;
  min-width: 210px;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  background: rgba(18, 25, 22, 0.94);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition:
    opacity var(--gm-transition-fast),
    visibility var(--gm-transition-fast),
    transform var(--gm-transition-fast);
}

.gm-site-header__account:hover .gm-site-header__account-menu,
.gm-site-header__account:focus-within .gm-site-header__account-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.gm-site-header__account-item,
.gm-site-header__account-item:visited {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
  font-size: 0.95rem;
  line-height: 1.2;
  transition:
    background-color var(--gm-transition-fast),
    color var(--gm-transition-fast);
}

.gm-site-header__account-menu .gm-site-header__account-item:hover,
.gm-site-header__account-menu .gm-site-header__account-item:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  color: var(--gm-white) !important;
  text-decoration: none !important;
}

/* Keep nested text/icons inheriting the correct hover color */
.gm-site-header__account-item span,
.gm-site-header__account-item svg {
  color: inherit;
  fill: currentColor;
}

.gm-site-header__mobile-toggle {
  display: none;
  position: relative;
  z-index: 10001;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.gm-site-header__mobile-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  margin: 4px auto;
  background: currentColor;
  border-radius: 999px;
}

.gm-site-header__mobile {
  display: none;
}

/* =====================================================
   10. HEROES
===================================================== */

.gm-hero {
  position: relative;
  display: flex;
  align-items: center;
  width: 100vw;
  min-height: 100vh;
  min-height: 100svh;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  overflow: hidden;
}

.gm-dashboard-hero,
.gm-page-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 320px;
  margin-bottom: 32px;
  overflow: hidden;
}

.gm-hero__bg,
.gm-dashboard-hero__bg,
.gm-page-hero__bg,
.gm-login-page-hero__bg,
.gm-register-page-hero__bg {
  position: absolute;
  inset: 0;
  background-position: center 42%;
  background-size: cover;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.gm-hero__bg {
  background-image: url("../images/hero-summer1.jpg");
  will-change: transform;
  animation: gmHeroZoom 18s cubic-bezier(0.22, 1, 0.36, 1) infinite alternate;
}

.gm-dashboard-hero__bg {
  background-image: url("https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=1800&q=80");
}

.gm-page-hero__bg,
.gm-login-page-hero__bg {
  background-image: url("../images/login-header.webp");
}

.gm-register-page-hero__bg {
  background-image: url("../images/register.webp");
}

.gm-hero__overlay,
.gm-dashboard-hero::after,
.gm-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gm-hero-overlay);
}

.gm-hero__inner,
.gm-dashboard-hero__inner,
.gm-page-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  padding-inline: var(--gm-page-inset) var(--gm-page-inset);
  padding-block: 110px 90px;
}

.gm-hero__content,
.gm-dashboard-hero__content,
.gm-page-hero__content {
  max-width: 860px;
}

.gm-hero__actions,
.gm-page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.gm-hero__eyebrow,
.gm-hero__title,
.gm-hero__text,
.gm-hero-search {
  opacity: 0;
  transform: translateY(24px);
}

.gm-hero-loaded .gm-hero__eyebrow {
  animation: gmFadeUp 0.7s ease forwards;
  animation-delay: 0.2s;
}

.gm-hero-loaded .gm-hero__title {
  animation: gmFadeUp 0.8s ease forwards;
  animation-delay: 0.45s;
}

.gm-hero-loaded .gm-hero__text {
  animation: gmFadeUp 0.8s ease forwards;
  animation-delay: 0.7s;
}

.gm-hero-loaded .gm-hero-search {
  animation: gmFadeUp 0.9s ease forwards;
  animation-delay: 0.95s;
}

@keyframes gmHeroZoom {
  0% {
    transform: scale(1) translateY(0);
  }
  100% {
    transform: scale(1.06) translateY(-10px);
  }
}

@keyframes gmFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =====================================================
   Shared Hero Variants
===================================================== */
.gm-hero__bg--dashboard {
	background-image: url("../images/account-hero.jpg");
	background-position: center 42%;
	background-repeat: no-repeat;
	background-size: cover;
	will-change: transform;
	animation: gmHeroZoom 18s cubic-bezier(0.22, 1, 0.36, 1) infinite alternate;
}

.gm-hero--dashboard .gm-hero__content {
	max-width: 860px;
}
/* =====================================================
   11. HERO SEARCH
===================================================== */

.gm-hero-search-wrap {
  position: relative;
  max-width: 920px;
  margin-top: 26px;
}

.gm-hero-search {
  position: relative;
  width: 100%;
}

.gm-hero-search__row {
  display: flex;
  align-items: center;
  height: 64px;
  padding: 6px;
  border: 1px solid rgba(23, 33, 23, 0.08);
  border-radius: var(--gm-radius);
  background: var(--gm-white);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
  transition:
    border-color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    transform var(--gm-transition-fast);
}

.gm-hero-search:hover .gm-hero-search__row,
.gm-hero-search:focus-within .gm-hero-search__row,
.gm-hero-search.is-loading .gm-hero-search__row {
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.14),
    0 0 0 4px rgba(45, 122, 79, 0.08);
}

.gm-hero-search__field {
  position: relative;
  display: flex;
  flex: 1 1 0;
  align-items: center;
  min-width: 0;
  padding: 0 18px;
  transition:
    background-color var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast);
}

.gm-hero-search__field--keyword {
  flex: 2 1 0;
}

.gm-hero-search__field + .gm-hero-search__field::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 1px;
  background: rgba(23, 33, 23, 0.08);
}

.gm-hero-search__field input,
.gm-hero-search__field select {
  width: 100%;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--gm-ink);
  font: inherit;
  font-size: 0.95rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-shadow: none;
}

.gm-hero-search__field input::placeholder {
  color: var(--gm-ink-3);
}

.gm-hero-search__field--category::after,
.gm-hero-search__field--radius::after {
  content: "";
  position: absolute;
  right: 16px;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--gm-ink-3);
  border-bottom: 2px solid var(--gm-ink-3);
  transform: rotate(45deg);
  pointer-events: none;
}

.gm-hero-search__field:focus-within {
  border-radius: var(--gm-radius-sm);
  background: var(--gm-interaction-tint);
}

.gm-hero-search__actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  padding-left: 6px;
}

.gm-hero-search__submit {
  min-width: 124px;
  height: 50px;
  padding: 0 20px;
  border-radius: var(--gm-radius-sm);
  font: inherit;
  font-weight: 600;
}

.gm-hero-search.is-loading .gm-hero-search__submit {
  pointer-events: none;
  opacity: 0.92;
}

.gm-hero-search.is-loading .gm-hero-search__submit-icon {
  display: inline-block;
  animation: gm-search-spin 0.9s linear infinite;
}

.gm-hero-search-results {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  left: 0;
  z-index: 30;
}

.gm-hero-search-results__inner {
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 50px rgba(16, 32, 18, 0.16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gm-predictive-list {
  display: grid;
}

.gm-predictive-item,
.gm-predictive-item:visited {
  display: block;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(23, 33, 23, 0.08);
  color: var(--gm-ink);
  text-decoration: none;
  transition:
    background-color var(--gm-transition-fast),
    color var(--gm-transition-fast);
}

.gm-predictive-item:last-child {
  border-bottom: 0;
}

.gm-predictive-item:hover,
.gm-predictive-item:focus,
.gm-predictive-item.is-active {
  background: color-mix(in srgb, var(--gm-green-pale) 78%, white);
  color: var(--gm-ink);
  text-decoration: none;
}

.gm-predictive-item__title {
  font-weight: 700;
  line-height: 1.35;
}

.gm-predictive-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
  color: var(--gm-ink-3);
  font-size: 0.92rem;
}

.gm-predictive-empty {
  padding: 18px;
  color: var(--gm-ink-3);
}

@keyframes gm-search-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* =====================================================
   12. GRIDS + CONTENT CARDS
===================================================== */

.gm-category-grid,
.gm-card-grid,
.gm-post-grid,
.gm-stats {
  display: grid;
  gap: 24px;
}

.gm-category-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.gm-card-grid,
.gm-post-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.gm-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-listing-card,
.gm-post-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.gm-listing-card__media,
.gm-post-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.gm-listing-card__image-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.gm-listing-card__media img,
.gm-post-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    transform var(--gm-transition),
    filter var(--gm-transition);
}

.gm-listing-card:hover .gm-listing-card__media img,
.gm-listing-card:focus-within .gm-listing-card__media img,
.gm-post-card:hover .gm-post-card__media img,
.gm-post-card:focus-within .gm-post-card__media img {
  transform: scale(1.04);
}

.gm-listing-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(20, 28, 22, 0.82);
  color: var(--gm-white);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: none;
  white-space: nowrap;
}

.gm-listing-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 14px 16px;
  gap: 0;
}

.gm-post-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 22px;
}

.gm-card__title,
.gm-post-card__title {
  display: -webkit-box;
  min-height: 2.3em;
  margin: 0 0 10px;
  overflow: hidden;
  font-size: 1.45rem;
  line-height: 1.1;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.gm-listing-card .gm-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 1.5rem;
  line-height: 1.3;
  min-height: calc(1.3em * 2);
  margin-bottom: 6px;
}

.gm-card__meta,
.gm-post-card__meta {
  min-height: 1.4em;
  margin-bottom: 12px;
  color: var(--gm-ink-3);
  font-size: 0.92rem;
}

.gm-card__excerpt,
.gm-post-card__excerpt {
  display: -webkit-box;
  margin: 0 0 14px;
  overflow: hidden;
  color: var(--gm-ink-2);
  line-height: 1.7;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.gm-card__footer,
.gm-post-card__footer {
  margin-top: auto;
  padding-top: 14px;
}

/* =====================================================
   13. CATEGORY CARDS
===================================================== */

.gm-category-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 260px;
  height: 100%;
  padding: 24px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--gm-radius-lg);
  background: #1d2a22;
  box-shadow: var(--gm-shadow-sm);
  color: var(--gm-white);
  text-decoration: none;
  transition:
    transform var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    border-color var(--gm-transition-fast);
}

.gm-category-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1);
  will-change: transform;
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.gm-category-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      to top,
      rgba(10, 18, 14, 0.76) 0%,
      rgba(10, 18, 14, 0.52) 45%,
      rgba(10, 18, 14, 0.22) 100%
    );
  transition: background var(--gm-transition);
}

.gm-category-card > * {
  position: relative;
  z-index: 2;
}

.gm-category-card,
.gm-category-card:visited,
.gm-category-card a,
.gm-category-card a:visited {
  color: var(--gm-white);
  text-decoration: none;
}

.gm-category-card a {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
}

.gm-category-card:hover,
.gm-category-card:focus-visible,
.gm-category-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow: var(--gm-shadow);
}

.gm-category-card:hover::before,
.gm-category-card:focus-visible::before,
.gm-category-card:focus-within::before {
  transform: scale(1.08);
}

.gm-category-card:hover::after,
.gm-category-card:focus-visible::after,
.gm-category-card:focus-within::after {
  background:
    linear-gradient(
      to top,
      rgba(10, 18, 14, 0.82) 0%,
      rgba(10, 18, 14, 0.56) 45%,
      rgba(10, 18, 14, 0.24) 100%
    );
}

.gm-category-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.14);
  color: var(--gm-white);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.gm-category-card__title {
  margin: 0 0 6px;
  color: var(--gm-white);
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.08;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.24);
}

.gm-category-card__meta {
  margin: 0;
  color: var(--gm-white);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}



.gm-category-card.livestock::before {
  background-image: url("../images/cat-livestock.webp");
  background-position: center 42%;
}

.gm-category-card.garden-soil::before {
  background-image: url("../images/cat-organics.webp");
}

.gm-category-card.equipment::before {
  background-image: url("../images/cat-equipment.webp");
}

.gm-category-card.services::before {
  background-image: url("../images/cat-services.webp");
}

/* =====================================================
   14. AUTH PAGES
===================================================== */


.gm-login-section,
.gm-register-section {
  padding-top: 40px;
}

.gm-login-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 28px;
  align-items: start;
}

.gm-login-card {
  padding: 32px;
  box-shadow: var(--gm-shadow-sm);
}

.gm-login-sidecard,
.gm-register-form-panel {
  padding: 28px;
  box-shadow: var(--gm-shadow-sm);
}

.gm-register-form-panel {
  padding: 32px;
}

.gm-login-card__title,
.gm-login-sidecard__title,
.gm-register-card__title {
  margin: 0 0 10px;
  font-size: 2rem;
}

.gm-login-card__text,
.gm-register-card__text {
  margin: 0;
  color: var(--gm-ink-2);
}

.gm-login-card__header,
.gm-register-card__header {
  margin-bottom: 22px;
}

.gm-login-alert {
  margin-bottom: 18px;
  padding: 14px 16px;
  border-radius: 12px;
  font-size: 0.95rem;
}

.gm-login-alert--error {
  border: 1px solid #f1c7c3;
  background: #fff3f2;
  color: #8b2e2a;
}

.gm-login-alert--success {
  border: 1px solid #cfe7d5;
  background: #edf8f0;
  color: #1f6a3b;
}

.gm-login-form-wrap form {
  display: grid;
  gap: 16px;
}

.gm-login-form-wrap label,
.gm-register-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--gm-ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.gm-login-form-wrap input[type="text"],
.gm-login-form-wrap input[type="password"],
.gm-login-form-wrap input[type="email"],
.gm-register-field input {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
}

.gm-login-form-wrap .login-remember {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gm-login-form-wrap .login-remember label {
  margin: 0;
  font-weight: 500;
}

.gm-login-form-wrap .login-submit {
  margin: 4px 0 0;
}

.gm-register-fields {
  display: grid;
  gap: 16px;
}

.gm-register-field,
.gm-register-field p {
  margin: 0;
}

.gm-register-actions,
.gm-register-success-actions {
  margin-top: 22px;
}

.gm-login-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 22px;
  margin-top: 22px;
}

.gm-login-benefits {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 18px;
  color: var(--gm-ink-2);
}

.gm-login-sidecard__actions,
.gm-register-sidecard__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
}

.gm-register-field__help {
  display: block;
  margin-top: 8px;
  color: var(--gm-ink-3);
  font-size: 0.84rem;
}

/* Register pricing */

.gm-pricing-header {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}

.gm-pricing-header__text {
  margin: 14px 0 0;
}

.gm-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 34px;
}

.gm-plan-card {
  position: relative;
  display: block;
}

.gm-plan-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.gm-plan-card__inner {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 28px 24px 22px;
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-lg);
  background: var(--gm-white);
  box-shadow: var(--gm-shadow-sm);
  color: var(--gm-ink);
  cursor: pointer;
  transition:
    transform var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    border-color var(--gm-transition-fast),
    background-color var(--gm-transition-fast);
}

.gm-plan-card:hover .gm-plan-card__inner {
  transform: translateY(-4px);
  border-color: #d1e4d8;
  box-shadow: var(--gm-interaction-shadow);
}

.gm-plan-card__badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 28px;
  margin-bottom: 18px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--gm-green-pale);
  color: var(--gm-green);
  font-size: 0.76rem;
  font-weight: 700;
}

.gm-plan-card__title {
  margin: 0 0 10px;
  color: var(--gm-ink);
  font-size: 1.8rem;
  line-height: 1;
}

.gm-plan-card__price {
  margin: 0 0 12px;
  color: var(--gm-ink-2);
}

.gm-plan-card__price strong {
  color: var(--gm-green);
  font-family: var(--gm-serif);
  font-size: 2rem;
  line-height: 1;
}

.gm-plan-card__price span {
  color: var(--gm-ink-3);
  font-size: 0.95rem;
}

.gm-plan-card__text {
  margin: 0 0 18px;
  color: var(--gm-ink-2);
  line-height: 1.65;
}

.gm-plan-card__features {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-plan-card__features li {
  position: relative;
  padding-left: 18px;
  color: var(--gm-ink-2);
  line-height: 1.55;
}

.gm-plan-card__features li::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gm-green);
  transform: translateY(-50%);
}

.gm-plan-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-height: 42px;
  margin-top: 22px;
  padding: 0 16px;
  border-radius: var(--gm-radius-sm);
  background: rgba(45, 122, 79, 0.08);
  color: var(--gm-green);
  font-weight: 600;
}

.gm-plan-card--featured .gm-plan-card__inner {
  border-color: rgba(45, 122, 79, 0.34);
  box-shadow:
    0 0 0 1px rgba(45, 122, 79, 0.18),
    var(--gm-shadow);
}

.gm-plan-card--featured .gm-plan-card__cta {
  background: var(--gm-btn-primary-bg);
  color: var(--gm-white);
}

.gm-plan-card input:checked + .gm-plan-card__inner,
.gm-plan-card.is-selected .gm-plan-card__inner {
  transform: translateY(-2px);
  border-color: rgba(45, 122, 79, 0.56);
  background: linear-gradient(180deg, #ffffff 0%, #f8fcf9 100%);
  box-shadow:
    0 0 0 2px rgba(45, 122, 79, 0.16),
    var(--gm-shadow);
}

body.page-template-page-register .gm-register-actions .gm-btn,
body.page-template-page-register .gm-register-actions .gm-btn--primary,
body.page-template-page-register .gm-register-form button,
body.page-template-page-register .gm-register-form button[type="submit"],
body.page-template-page-register .gm-register-form input[type="submit"] {
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
}

/* =====================================================
   15. ARTICLE PAGE
===================================================== */

.gm-article-page .gm-page-hero {
  min-height: clamp(240px, 33vh, 380px);
  margin-bottom: 0;
}

.gm-article-hero__bg {
  background-image: none;
}

.gm-article-hero:not(.gm-article-hero--has-image) .gm-article-hero__bg {
  background:
    linear-gradient(rgba(10, 20, 13, 0.52), rgba(10, 20, 13, 0.52)),
    url("../images/login-header.webp");
  background-position: center 42%;
  background-repeat: no-repeat;
  background-size: cover;
}

.gm-article-shell {
  background: var(--gm-surface);
  margin: 48px;
}

.gm-article-layout {
  align-items: start;
}

.gm-article-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.92rem;
  line-height: 1.4;
}

.gm-article-crumbs a,
.gm-article-crumbs a:visited {
  color: rgba(255, 255, 255, 0.92);
}

.gm-article-crumbs a:hover,
.gm-article-crumbs a:focus-visible {
  color: var(--gm-white);
  text-decoration-color: rgba(255, 255, 255, 0.8);
}

.gm-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.95rem;
  line-height: 1.4;
}

.gm-article-content {
  overflow: hidden;
  padding: 0;
  border: 1px solid #e4ece7;
  border-radius: var(--gm-radius-lg);
  background: var(--gm-white);
  box-shadow: var(--gm-shadow-sm);
}

.gm-article-featured {
  margin: 0;
  border-bottom: 1px solid #edf3ef;
}

.gm-article-featured__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}

.gm-article-prose {
  padding: 32px;
  color: var(--gm-ink-2);
  line-height: 1.8;
}

.gm-article-prose > *:first-child {
  margin-top: 0;
}

.gm-article-prose > *:last-child {
  margin-bottom: 0;
}

.gm-article-prose h1,
.gm-article-prose h2,
.gm-article-prose h3,
.gm-article-prose h4,
.gm-article-prose h5,
.gm-article-prose h6 {
  color: var(--gm-ink);
  scroll-margin-top: calc(var(--gm-header-height) + 18px);
}

.gm-article-prose h2 {
  margin: 2.2rem 0 1rem;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.05;
}

.gm-article-prose h3 {
  margin: 1.7rem 0 0.8rem;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.15;
}

.gm-article-prose h4 {
  margin: 1.5rem 0 0.7rem;
  font-size: 1.1rem;
  line-height: 1.25;
}

.gm-article-prose p,
.gm-article-prose ul,
.gm-article-prose ol,
.gm-article-prose blockquote,
.gm-article-prose figure,
.gm-article-prose table,
.gm-article-prose hr,
.gm-article-prose .wp-block-image,
.gm-article-prose .wp-block-gallery,
.gm-article-prose .wp-block-columns {
  margin: 0 0 1.2rem;
}

.gm-article-prose ul,
.gm-article-prose ol {
  padding-left: 1.25rem;
}

.gm-article-prose li + li {
  margin-top: 0.45rem;
}

.gm-article-prose strong {
  color: var(--gm-ink);
}

.gm-article-prose em {
  color: inherit;
}

.gm-article-prose a,
.gm-article-prose a:visited {
  color: var(--gm-green);
}

.gm-article-prose a:hover,
.gm-article-prose a:focus-visible {
  color: var(--gm-green-hover);
}

.gm-article-prose img {
  width: 100%;
  border-radius: var(--gm-radius);
  box-shadow: var(--gm-shadow-xs);
}

.gm-article-prose figcaption,
.gm-article-prose .wp-element-caption {
  margin-top: 10px;
  color: var(--gm-ink-3);
  font-size: 0.9rem;
  line-height: 1.5;
  text-align: center;
}

.gm-article-prose blockquote,
.gm-article-prose .wp-block-quote {
  margin: 1.5rem 0;
  padding: 20px 22px;
  border-left: 4px solid var(--gm-green);
  border-radius: var(--gm-radius);
  background: var(--gm-surface-2);
  color: var(--gm-ink);
}

.gm-article-prose blockquote p:last-child {
  margin-bottom: 0;
}

.gm-article-prose hr,
.gm-article-prose .wp-block-separator {
  border: 0;
  border-top: 1px solid #e4ece7;
}

.gm-article-prose table {
  width: 100%;
  overflow: hidden;
  border: 1px solid #e4ece7;
  border-collapse: collapse;
  border-radius: 12px;
  background: var(--gm-white);
}

.gm-article-prose th,
.gm-article-prose td {
  padding: 14px 16px;
  border-bottom: 1px solid #edf3ef;
  text-align: left;
  vertical-align: top;
}

.gm-article-prose th {
  background: #fbfdfb;
  color: var(--gm-ink);
  font-weight: 700;
}

.gm-article-prose tr:last-child td {
  border-bottom: 0;
}

.gm-article-prose .wp-block-table {
  overflow-x: auto;
}

.gm-article-prose .wp-block-button {
  margin: 1.4rem 0;
}

.gm-article-prose .alignwide,
.gm-article-prose .alignfull {
  width: 100%;
  max-width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.gm-article-prose .wp-block-image.aligncenter,
.gm-article-prose .wp-block-image .aligncenter {
  margin-right: auto;
  margin-left: auto;
}

.gm-article-sidebar .gm-main-card {
  box-shadow: var(--gm-shadow-sm);
}

.gm-article-note {
  border-left: 4px solid var(--gm-green);
}

.gm-article-note__title {
  margin: 0 0 10px;
  font-size: 1.45rem;
  line-height: 1.1;
}

.gm-article-note__text,
.gm-article-note__text p {
  margin: 0;
  color: var(--gm-ink-2);
  line-height: 1.7;
}

.gm-article-toc {
  position: sticky;
  top: calc(var(--gm-header-height) + 22px);
}

.gm-article-toc__title {
  margin: 0 0 14px;
  font-size: 1.45rem;
  line-height: 1.1;
}

.gm-article-toc__content {
  min-height: 0;
}

.gm-article-toc__list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-article-toc__item--h3 {
  padding-left: 14px;
}

.gm-article-toc__item a,
.gm-article-toc__item a:visited {
  color: var(--gm-ink-2);
  text-decoration: none;
}

.gm-article-toc__item a:hover,
.gm-article-toc__item a:focus-visible {
  color: var(--gm-green);
  text-decoration: underline;
  text-decoration-color: var(--gm-link-underline-color);
}

.gm-article-toc.is-empty {
  display: none;
}

/* =====================================================
   16. FOOTER
===================================================== */

footer.gm-site-footer,
.gm-site-footer {
  position: relative;
  clear: both;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: var(--gm-footer-bg);
  color: rgba(255, 255, 255, 0.88);
  padding-top: 3rem;
}

.gm-site-footer *,
.gm-site-footer *::before,
.gm-site-footer *::after {
  box-sizing: border-box;
}

.gm-site-footer__top,
.gm-site-footer__bottom {
  position: relative;
  z-index: 1;
}

.gm-site-footer__top {
  padding: 64px 0 32px;
}

.gm-site-footer__inner,
.gm-site-footer__bottom-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: var(--gm-page-inset);
  padding-right: var(--gm-page-inset);
}

.gm-site-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 32px;
  align-items: start;
}

.gm-site-footer__col {
  min-width: 0;
}

.gm-site-footer__site-title {
  display: inline-block;
  margin: 0;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.gm-site-footer__logo img,
.gm-site-footer .custom-logo {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 56px;
  height: auto;
}

.gm-site-footer__heading {
  margin: 0 0 16px;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.gm-site-footer__tagline {
  margin: 18px 0 12px;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.6;
}

.gm-site-footer__text {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.96rem;
  line-height: 1.75;
}

.gm-site-footer a,
.gm-site-footer a:visited,
.gm-site-footer__menu a,
.gm-site-footer__contact a,
.gm-site-footer__socials a,
.gm-site-footer__bottom-links a {
  color: var(--gm-footer-link);
  text-decoration: none;
  text-decoration-color: transparent;
}

.gm-site-footer a:hover,
.gm-site-footer a:focus-visible,
.gm-site-footer__menu a:hover,
.gm-site-footer__menu a:focus-visible,
.gm-site-footer__contact a:hover,
.gm-site-footer__contact a:focus-visible,
.gm-site-footer__socials a:hover,
.gm-site-footer__socials a:focus-visible,
.gm-site-footer__bottom-links a:hover,
.gm-site-footer__bottom-links a:focus-visible {
  color: var(--gm-footer-link-hover);
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.32);
}

.gm-site-footer__menu {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-site-footer__menu li {
  margin: 0;
  padding: 0;
}

.gm-site-footer__menu a {
  font-size: 0.95rem;
  line-height: 1.5;
  font-weight: 500;
}

.gm-site-footer__contact,
.gm-site-footer__socials,
.gm-site-footer__bottom-links {
  display: flex;
  flex-wrap: wrap;
}

.gm-site-footer__contact {
  gap: 12px 18px;
  margin-top: 18px;
}

.gm-site-footer__contact a,
.gm-site-footer__socials a {
  font-size: 0.92rem;
  font-weight: 600;
}

.gm-site-footer__newsletter {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-top: 18px;
}

.gm-site-footer__newsletter input[type="email"] {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  box-shadow: none;
}

.gm-site-footer__newsletter input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.52);
}

.gm-site-footer__newsletter input[type="email"]:focus {
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.08);
}

.gm-site-footer__newsletter button {
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  background: var(--gm-white);
  color: var(--gm-green-dark);
  font-weight: 700;
  box-shadow: none;
}

.gm-site-footer__newsletter button:hover,
.gm-site-footer__newsletter button:focus-visible {
  background: #f5fbf7;
  color: var(--gm-green-dark);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

.gm-site-footer__socials {
  gap: 12px 16px;
  margin-top: 18px;
}

.gm-site-footer__bottom {
  margin-top: 32px;
  padding: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.14);
}

.gm-site-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
}

.gm-site-footer__copyright {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.9rem;
  line-height: 1.5;
}

.gm-site-footer__bottom-links {
  gap: 12px 18px;
}

.gm-site-footer__bottom-links a {
  font-size: 0.9rem;
  font-weight: 600;
}

footer.gm-site-footer .menu,
footer.gm-site-footer .widget {
  border: 0;
  background: transparent;
  box-shadow: none;
}

footer.gm-site-footer ul {
  padding-left: 0;
}

/* =====================================================
   17. HIVEPRESS NORMALIZATION
===================================================== */

.gm-theme .content--user-account,
.gm-theme .hp-page--user-account {
  padding-top: 0;
}

.gm-theme .post,
.gm-theme article.type-post {
  padding: 24px;
}

.gm-theme .entry-title,
.gm-theme .post__title {
  color: var(--gm-ink);
}

.gm-theme .entry-meta,
.gm-theme .post__meta {
  color: var(--gm-ink-3);
}

.gm-theme .hp-page,
.gm-theme .hp-widget,
.gm-theme .hp-form,
.gm-theme .hp-message,
.gm-theme .hp-modal__content,
.gm-theme .hp-menu--tabbed,
.gm-theme .hp-menu--tabs,
.gm-theme .hp-listing,
.gm-theme .hp-vendor,
.gm-theme .hp-thread,
.gm-theme .hp-field,
.gm-theme .hp-section,
.gm-theme .hp-block,
.gm-theme .hp-listing--view-page,
.gm-theme .hp-vendor--view-page,
.gm-theme .hp-listing--view-block,
.gm-theme .hp-vendor--view-block,
.gm-theme .hp-message--view-block,
.gm-theme .hp-thread--view-block {
  border-radius: var(--gm-radius-lg);
}

/* Fancybox modal container — match card border-radius */
.fancybox-slide--html .fancybox-content {
  border-radius: var(--gm-radius-lg);
  overflow: hidden;
}

.gm-theme .hp-listing--view-block,
.gm-theme .hp-vendor--view-block,
.gm-theme .hp-message--view-block,
.gm-theme .hp-thread--view-block,
.gm-theme .hp-page__content > .hp-row > .hp-col-sm-12 > .hp-widget,
.gm-theme .hp-page__content .widget,
.gm-theme .hp-page__content .hp-form,
.gm-theme .hp-modal__content,
.gm-theme .hp-menu--tabbed,
.gm-theme .hp-menu--tabs {
  border: 1px solid #e4ece7;
  background: var(--gm-white);
  box-shadow: var(--gm-shadow-sm);
}

.gm-theme .hp-form input[type="text"],
.gm-theme .hp-form input[type="email"],
.gm-theme .hp-form input[type="password"],
.gm-theme .hp-form input[type="number"],
.gm-theme .hp-form input[type="search"],
.gm-theme .hp-form input[type="url"],
.gm-theme .hp-form input[type="tel"],
.gm-theme .hp-form input[type="date"],
.gm-theme .hp-form textarea,
.gm-theme .hp-form select,
.gm-theme .hp-field input[type="text"],
.gm-theme .hp-field input[type="email"],
.gm-theme .hp-field input[type="password"],
.gm-theme .hp-field input[type="number"],
.gm-theme .hp-field input[type="search"],
.gm-theme .hp-field input[type="url"],
.gm-theme .hp-field input[type="tel"],
.gm-theme .hp-field input[type="date"],
.gm-theme .hp-field textarea,
.gm-theme .hp-field select {
  width: 100%;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid #d8e4dc;
  border-radius: 12px;
  background: var(--gm-white);
  color: var(--gm-ink);
  box-shadow: none;
  font-size: 0.95rem;
}

.gm-theme .hp-form textarea,
.gm-theme .hp-field textarea {
  min-height: 140px;
  padding: 14px;
  resize: vertical;
}

.gm-theme .hp-form input:focus,
.gm-theme .hp-form textarea:focus,
.gm-theme .hp-form select:focus,
.gm-theme .hp-field input:focus,
.gm-theme .hp-field textarea:focus,
.gm-theme .hp-field select:focus {
  outline: none;
  border-color: var(--gm-green);
  box-shadow: var(--gm-interaction-ring);
}

.gm-theme .hp-form__label,
.gm-theme .hp-field__label,
.gm-theme .hp-form label,
.gm-theme .hp-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--gm-ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.gm-theme .hp-field__description,
.gm-theme .hp-form__description,
.gm-theme .hp-field small,
.gm-theme .hp-form small {
  color: var(--gm-ink-3);
  font-size: 0.84rem;
  line-height: 1.5;
}

.gm-theme .hp-form input[type="checkbox"],
.gm-theme .hp-form input[type="radio"],
.gm-theme .hp-field input[type="checkbox"],
.gm-theme .hp-field input[type="radio"] {
  width: auto;
  min-height: auto;
  accent-color: var(--gm-green);
}

.gm-theme .hp-message,
.gm-theme .notice,
.gm-theme .woocommerce-message,
.gm-theme .woocommerce-info {
  border: 1px solid #d8e4dc;
  border-radius: 12px;
  background: var(--gm-white);
  color: var(--gm-ink);
  box-shadow: none;
}

.gm-theme .hp-message--error,
.gm-theme .woocommerce-error {
  border-color: #f1c7c3;
  background: #fff3f2;
  color: #8b2e2a;
}

.gm-theme .hp-message--success {
  border-color: #cfe7d5;
  background: #edf8f0;
  color: #1f6a3b;
}

.gm-theme .hp-menu--tabbed,
.gm-theme .hp-menu--tabs {
  padding: 10px;
}

.gm-theme .hp-menu--tabbed .menu,
.gm-theme .hp-menu--tabs .menu,
.gm-theme .hp-menu--tabbed ul,
.gm-theme .hp-menu--tabs ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-theme .hp-menu--tabbed a,
.gm-theme .hp-menu--tabs a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: transparent;
  color: var(--gm-ink);
  text-decoration: none;
  font-weight: 500;
}

.gm-theme .hp-menu--tabbed .current-menu-item > a,
.gm-theme .hp-menu--tabs .current-menu-item > a,
.gm-theme .hp-menu--tabbed a:hover,
.gm-theme .hp-menu--tabs a:hover {
  background: var(--gm-green-pale);
  color: var(--gm-green);
  text-decoration: none;
}

.gm-theme .hp-listing__title,
.gm-theme .hp-vendor__title,
.gm-theme .hp-thread__title {
  color: var(--gm-ink);
}

.gm-theme .hp-listing__details,
.gm-theme .hp-vendor__details,
.gm-theme .hp-thread__details,
.gm-theme .hp-listing__attributes,
.gm-theme .hp-vendor__attributes {
  color: var(--gm-ink-2);
}

.gm-theme .hp-listing__image img,
.gm-theme .hp-vendor__image img {
  border-radius: calc(var(--gm-radius-lg) - 6px);
}

.gm-theme .hp-pagination,
.gm-theme .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.gm-theme .hp-pagination a,
.gm-theme .hp-pagination span,
.gm-theme .nav-links a,
.gm-theme .nav-links span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid #d8e4dc;
  border-radius: 10px;
  background: var(--gm-white);
  color: var(--gm-ink);
  text-decoration: none;
}

.gm-theme .hp-pagination .current,
.gm-theme .nav-links .current {
  border-color: var(--gm-green);
  background: var(--gm-green);
  color: var(--gm-white);
}

.gm-theme .hp-field--file,
.gm-theme .hp-field--attachment,
.gm-theme .hp-form__field--file {
  border-radius: 12px;
}

.gm-theme .hp-field--file .hp-button,
.gm-theme .hp-field--attachment .hp-button {
  height: 40px;
}

.gm-theme table,
.gm-theme .hp-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--gm-white);
}

.gm-theme table th,
.gm-theme table td,
.gm-theme .hp-table th,
.gm-theme .hp-table td {
  padding: 14px 16px;
  border-bottom: 1px solid #edf3ef;
  text-align: left;
}

.gm-theme table th,
.gm-theme .hp-table th {
  background: #fbfdfb;
  color: var(--gm-ink);
  font-weight: 700;
}

.gm-theme .site-footer,
.gm-theme .footer-navbar {
  background: var(--gm-ink);
  color: rgba(255, 255, 255, 0.62);
}

.gm-theme .site-footer a,
.gm-theme .site-footer a:visited,
.gm-theme .footer-navbar a,
.gm-theme .footer-navbar a:visited {
  color: rgba(255, 255, 255, 0.82);
}

.gm-theme .site-footer a:hover,
.gm-theme .site-footer a:focus-visible,
.gm-theme .footer-navbar a:hover,
.gm-theme .footer-navbar a:focus-visible {
  color: var(--gm-white);
  text-decoration-color: rgba(255, 255, 255, 0.8);
}

.gm-empty-state {
  color: var(--gm-ink-3);
}

/* ── Listing submit / edit pages ──────────────────── */

body.hp-template--listing-submit-details-page .hp-page__content,
body.hp-template--listing-edit-page .hp-page__content {
  max-width: 760px;
  margin: calc(var(--gm-header-height) + 40px) auto 60px;
  padding: 0 24px;
}

body.hp-template--listing-submit-details-page .hp-page__content .hp-form,
body.hp-template--listing-edit-page .hp-page__content .hp-form {
  padding: 32px;
}

@media (max-width: 600px) {
  body.hp-template--listing-submit-details-page .hp-page__content,
  body.hp-template--listing-edit-page .hp-page__content {
    padding: 0 16px;
    margin-top: calc(var(--gm-header-height) + 20px);
  }

  body.hp-template--listing-submit-details-page .hp-page__content .hp-form,
  body.hp-template--listing-edit-page .hp-page__content .hp-form {
    padding: 20px 16px;
  }
}

/* =====================================================
   18. RESPONSIVE
===================================================== */

@media (max-width: 1200px) {
  .gm-site-footer__grid {
    grid-template-columns: 1.4fr 1fr 1fr;
  }

  .gm-site-footer__col--newsletter {
    grid-column: 1 / -1;
    max-width: 620px;
  }
}

@media (max-width: 1024px) {
  .gm-site-header__inner {
    grid-template-columns: auto auto;
    justify-content: space-between;
  }

  .gm-site-header__nav,
  .gm-site-header__action,
  .gm-site-header__auth-sep {
    display: none;
  }

  .gm-site-header__mobile-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    -webkit-appearance: none;
  }

  .gm-site-header__mobile-toggle span {
    display: none;
  }

  .gm-site-header__mobile-toggle::before {
    content: "";
    display: block;
    width: 22px;
    height: 2.5px;
    border-radius: 999px;
    background: var(--gm-white);
    box-shadow:
      0 -7px 0 var(--gm-white),
      0 7px 0 var(--gm-white);
  }

  .gm-site-header.is-mobile-open .gm-site-header__mobile {
    display: block;
    padding: 0 20px 20px;
    background: rgba(12, 18, 16, 0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }

  .gm-site-header__mobile-menu {
    margin: 0;
    padding: 12px 0;
    list-style: none;
  }

  .gm-site-header__mobile-menu li + li {
    margin-top: 12px;
  }

  .gm-site-header__mobile-menu a,
  .gm-site-header__mobile-menu a:visited,
  .gm-site-header__mobile-button,
  .gm-site-header__mobile-button:visited {
    color: var(--gm-white);
  }

  .gm-site-header__mobile-menu a:hover,
  .gm-site-header__mobile-menu a:focus-visible {
    color: var(--gm-white);
    text-decoration-color: rgba(255, 255, 255, 0.8);
  }

  .gm-site-header__account-menu {
    display: none;
  }

  .gm-site-header--light .gm-site-header__mobile-toggle::before {
    background: var(--gm-ink);
    box-shadow:
      0 -7px 0 var(--gm-ink),
      0 7px 0 var(--gm-ink);
  }

  .gm-card-grid,
  .gm-post-grid,
  .gm-two-col,
  .gm-login-layout,
  .gm-pricing-grid,
  .gm-site-footer__grid {
    grid-template-columns: 1fr;
  }

  .gm-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gm-two-col {
    grid-template-columns: 1fr;
  }

  .gm-category-card,
  .gm-listing-card,
  .gm-post-card {
    height: auto;
  }

  .gm-category-card {
    min-height: 230px;
  }

  .gm-hero__inner,
  .gm-dashboard-hero__inner,
  .gm-page-hero__inner {
    padding-inline: 24px 16px;
  }

  .gm-hero-search__row {
    flex-wrap: wrap;
    height: auto;
    padding: 10px;
  }

  .gm-hero-search__field {
    flex: 1 1 100%;
    height: 52px;
  }

  .gm-hero-search__field--category,
  .gm-hero-search__field--radius {
    flex: 1 1 calc(50% - 4px);
  }

  .gm-hero-search__field + .gm-hero-search__field::before {
    display: none;
  }

  .gm-hero-search__submit {
    width: 100%;
    min-width: 100%;
    height: 48px;
    margin-top: 6px;
  }

  .gm-hero-search__actions {
    flex: 1 1 100%;
    padding-left: 0;
  }

  .gm-site-footer__col--brand,
  .gm-site-footer__col--newsletter {
    grid-column: 1 / -1;
    padding-right: 0;
  }
}

@media (max-width: 480px) {
  .gm-hero-search__field--category,
  .gm-hero-search__field--radius {
    flex: 1 1 100%;
  }

  .gm-site-header__button-label-full {
    display: none;
  }

  .gm-site-header__button {
    white-space: nowrap;
  }

  .gm-site-header__inner {
    gap: 8px;
  }
}

@media (max-width: 860px) {
  .gm-site-footer__top {
    padding: 56px 0 30px;
  }

  .gm-site-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 22px;
  }
}

@media (max-width: 768px) {
  :root {
    --gm-page-inset: 20px;
  }

  .gm-container,
  .gm-hero__inner,
  .gm-dashboard-hero__inner,
  .gm-page-hero__inner {
    width: 100%;
    padding-inline: 24px 16px;
  }

  .gm-section {
    padding: 52px 0;
  }

  .gm-hero__actions,
  .gm-page-hero__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .gm-category-grid,
  .gm-card-grid,
  .gm-post-grid {
    grid-template-columns: 1fr;
  }

  .gm-predictive-item,
  .gm-predictive-item:visited {
    padding: 14px 16px;
  }

  .gm-category-card {
    min-height: 220px;
    padding: 20px;
  }

  .gm-category-card__title {
    font-size: 1.4rem;
  }
}

@media (max-width: 640px) {
  .gm-site-footer__top {
    padding: 48px 0 24px;
  }

  .gm-site-footer__inner,
  .gm-site-footer__bottom-inner {
    width: min(1280px, calc(100% - 24px));
  }

  .gm-site-footer__grid,
  .gm-site-footer__newsletter {
    grid-template-columns: 1fr;
  }

  .gm-site-footer__grid {
    gap: 24px;
  }

  .gm-site-footer__bottom-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gm-theme *,
  .gm-theme *::before,
  .gm-theme *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .gm-hero__bg {
    animation: none;
  }
}

/* =====================================================
   19. SHARED LISTING CARDS
===================================================== */

.gm-listing-card {
  background: var(--gm-white);
  border: 1px solid #e4ece7;
  border-radius: 16px;
  overflow: hidden;
  transition:
    transform var(--gm-transition-fast),
    box-shadow var(--gm-transition-fast),
    border-color var(--gm-transition-fast);
}

/* =====================================================
   Listing Card Enhancements
===================================================== */

/* ── No-image placeholder ──────────────────────────── */

.gm-listing-card__no-image {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gm-green);
}

.gm-listing-card__no-image svg {
  width: 52px;
  height: 52px;
}

/* ── Featured badge — top-right of image ──────────── */

.gm-listing-card__featured-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 210, 60, 0.92);
  color: #5a3d00;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  pointer-events: none;
  white-space: nowrap;
}

/* ── Price ─────────────────────────────────────────── */

.gm-listing-card__price {
  margin: 0;
  padding-bottom: 0;
  color: var(--gm-green);
  font-family: var(--gm-serif);
  font-size: 1.65rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
}


/* ── Meta row ──────────────────────────────────────── */

.gm-listing-card__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--gm-border);
}

.gm-listing-card__meta-left {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1;
  overflow: hidden;
}

.gm-listing-card__location {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gm-ink-3);
  font-size: 0.82rem;
}

.gm-listing-card__location::before {
  content: '';
  flex-shrink: 0;
  display: inline-block;
  width: 11px;
  height: 14px;
  margin-right: 3px;
  vertical-align: -2px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2334a44a'%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.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z'/%3E%3C/svg%3E") no-repeat center / contain;
}

.gm-listing-card__date {
  color: var(--gm-ink-3);
  font-size: 0.82rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Image wrap (positioning context for badges) ─── */

.gm-listing-card__image-wrap {
  position: relative;
}

/* ── Seller name ────────────────────────────────── */

.gm-listing-card__seller {
  margin: 0 0 8px;
  font-size: 0.8rem;
  font-weight: 500;
  color: #6f7d74;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Card footer (message pill + heart, same row) ── */

.gm-listing-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
}

/* ── Message pill button ────────────────────────── */

.gm-listing-card__message-btn,
.gm-listing-card__message-btn:visited {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: none;
  border-radius: var(--gm-radius-pill);
  background: var(--gm-green) !important;
  color: #ffffff !important;
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.2s;
}

.gm-listing-card__message-btn:hover,
.gm-listing-card__message-btn:focus {
  background: var(--gm-green-hover);
  color: #ffffff;
  text-decoration: none !important;
}

.gm-listing-card__message-btn .hp-icon {
  font-size: 0.85rem;
}

/* ── Favorite heart (footer, right of message btn) ── */

/* Base — white circle + grey ring */
.gm-listing-card__favorite.hp-link,
.gm-listing-card__favorite.hp-link:link,
.gm-listing-card__favorite.hp-link:visited {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--gm-border) !important;
  background: var(--gm-white) !important;
  color: var(--gm-ink-3) !important;
  padding: 0 !important;
  transition: color 0.2s, background 0.2s, border-color 0.2s;
  text-decoration: none !important;
}

/* Hover (not saved) — kill HP yellow */
.gm-listing-card__favorite.hp-link:not([data-state="active"]):hover,
.gm-listing-card__favorite.hp-link:not([data-state="active"]):focus {
  border-color: var(--gm-green) !important;
  color: var(--gm-green) !important;
  background: var(--gm-green-pale) !important;
}

/* Active/saved — green ring + pale bg + green-filled heart */
.gm-listing-card__favorite.hp-link[data-state="active"],
.gm-listing-card__favorite.hp-link[data-state="active"]:link,
.gm-listing-card__favorite.hp-link[data-state="active"]:visited {
  border-color: var(--gm-green) !important;
  color: var(--gm-green) !important;
  background: var(--gm-green-pale) !important;
}

/* Active hover — stay green, beat HP yellow */
.gm-listing-card__favorite.hp-link[data-state="active"]:hover,
.gm-listing-card__favorite.hp-link[data-state="active"]:focus {
  border-color: var(--gm-green) !important;
  color: var(--gm-green) !important;
  background: var(--gm-green-pale) !important;
}

/* JS cleared data-state on a server-rendered favorite —
   force back to inactive appearance */
.gm-listing-card__favorite.hp-link.is-active:not([data-state="active"]) {
  border-color: var(--gm-border) !important;
  color: var(--gm-ink-3) !important;
  background: var(--gm-white) !important;
}

/* Icon — inherit color, force centering to fix left offset */
.gm-listing-card__favorite.hp-link .hp-icon,
.gm-listing-card__favorite.hp-link i.fas,
.gm-listing-card__favorite.hp-link i.fa-heart {
  font-size: 0.9rem !important;
  line-height: 1 !important;
  color: inherit !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ── Card hover ────────────────────────────────────── */

.gm-listing-card:hover,
.gm-listing-card:focus-within {
  transform: translateY(-4px);
  border-color: #d1e4d8;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.08);
}

/* =====================================================
   20. HEADER SCROLL STATE
===================================================== */

:root {
  --gm-header-offset-desktop: 32px;
  --gm-header-offset-mobile: 46px;
}

.admin-bar .gm-site-header,
.admin-bar #gm-site-header {
  top: var(--gm-header-offset-desktop);
}

@media (max-width: 782px) {
  .admin-bar .gm-site-header,
  .admin-bar #gm-site-header {
    top: var(--gm-header-offset-mobile);
  }
}

/* =====================================================
   21. INTERIOR HERO SYSTEM
===================================================== */

.gm-page-hero--interior {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(240px, 33vh, 380px);
  padding: calc(var(--gm-header-height) + 32px) 0 48px;
  width: 100vw;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  color: var(--gm-white);
  background-position: center 42%;
  background-repeat: no-repeat;
  background-size: cover;
}

.gm-page-hero--interior::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(16, 28, 22, 0.55) 0%,
    rgba(16, 28, 22, 0.45) 100%
  );
}

.gm-page-hero--interior > * {
  position: relative;
  z-index: 2;
}

.gm-page-hero--interior .gm-page-hero__inner,
.gm-page-hero--interior .gm-auth-hero__inner,
.gm-page-hero--interior .gm-content-hero__inner,
.gm-page-hero--interior .gm-article-hero__inner {
  padding-block: 0;
}

.gm-page-hero--interior .gm-page-hero__content,
.gm-page-hero--interior .gm-auth-hero__content,
.gm-page-hero--interior .gm-content-hero__content,
.gm-page-hero--interior .gm-article-hero__content {
  max-width: 760px;
  margin: 0;
  text-align: left;
}

.gm-page-hero--interior .gm-page-hero__eyebrow,
.gm-page-hero--interior .gm-auth-hero__eyebrow,
.gm-page-hero--interior .gm-content-hero__eyebrow,
.gm-page-hero--interior .gm-article-hero__eyebrow {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.gm-page-hero--interior .gm-page-hero__title,
.gm-page-hero--interior .gm-auth-hero__title,
.gm-page-hero--interior .gm-content-hero__title,
.gm-page-hero--interior .gm-article-hero__title {
  margin: 0 0 12px;
  color: var(--gm-white);
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  line-height: 1.1;
}

.gm-page-hero--interior .gm-page-hero__text,
.gm-page-hero--interior .gm-auth-hero__text,
.gm-page-hero--interior .gm-content-hero__text,
.gm-page-hero--interior .gm-article-hero__text {
  max-width: 62ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: 0.95rem;
  line-height: 1.6;
}

.page-template-page-login .gm-page-hero--interior,
.page-template-page-login-php .gm-page-hero--interior {
  background-image: url("../images/login-header.webp");
}

.page-template-page-register .gm-page-hero--interior,
.page-template-page-register-php .gm-page-hero--interior {
  background-image: url("../images/register.webp");
}

.page-template-page-blog-articles .gm-page-hero--interior,
.page-template-page-blog-articles-php .gm-page-hero--interior {
  background-image: url("../images/login-header.webp");
}

.page-template-page-gm-article .gm-page-hero--interior,
.page-template-page-gm-article-php .gm-page-hero--interior {
  background-image: url("../images/register.webp");
}

/* =====================================================
   22. BLOG + ARTICLE PAGE SPACING
===================================================== */


.page-template-page-blog-articles .gm-content-grid-section,
.page-template-page-blog-articles-php .gm-content-grid-section,
.page-template-page-gm-article .gm-article-content-section,
.page-template-page-gm-article-php .gm-article-content-section {
  position: relative;
  z-index: 2;
  margin-top: 48px;
}

/* =====================================================
   23. BLOG / CONTENT ARCHIVE
===================================================== */

.gm-content-archive {
  background: var(--gm-surface);
  color: #1f3a2c;
}

.gm-content-hero {
  position: relative;
  color: var(--gm-white);
}

.gm-content-hero__bg {
  position: absolute;
  inset: 0;
  background-image: url("../images/login-header.webp");
  background-position: center 42%;
  background-repeat: no-repeat;
  background-size: cover;
}

.gm-content-grid-section {
  position: relative;
  z-index: 2;
  margin-top: 0;
  padding: 0 0 80px;
}

.gm-content-page-intro {
  margin: 0 0 32px;
  padding: 28px 30px;
  border: 1px solid rgba(31, 58, 44, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 40px rgba(17, 24, 39, 0.06);
}

.gm-content-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.gm-content-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(31, 58, 44, 0.08);
  border-radius: 22px;
  background: var(--gm-white);
  box-shadow: 0 18px 40px rgba(17, 24, 39, 0.07);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.gm-content-card:hover,
.gm-content-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(44, 95, 45, 0.18);
  box-shadow: 0 22px 46px rgba(17, 24, 39, 0.12);
}

.gm-content-card__media-link {
  display: block;
  text-decoration: none;
}

.gm-content-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, #dad2bc 0%, #b7c9a9 100%);
}

.gm-content-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.gm-content-card:hover .gm-content-card__image,
.gm-content-card:focus-within .gm-content-card__image {
  transform: scale(1.04);
}

.gm-content-card__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(
    135deg,
    rgba(196, 173, 108, 0.28) 0%,
    rgba(44, 95, 45, 0.28) 100%
  );
}

.gm-content-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 22px 22px 20px;
}

.gm-content-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #5c6d61;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.gm-content-card__type {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(44, 95, 45, 0.08);
  color: #2c5f2d;
}

.gm-content-card__dot {
  opacity: 0.55;
}

.gm-content-card__title {
  margin: 0 0 12px;
  font-size: 1.35rem;
  line-height: 1.25;
}

.gm-content-card__title a {
  color: #1f3a2c;
  text-decoration: none;
}

.gm-content-card__title a:hover,
.gm-content-card__title a:focus-visible {
  color: #2c5f2d;
}

.gm-content-card__excerpt {
  flex: 1 1 auto;
  margin-bottom: 18px;
  color: #526256;
}

.gm-content-card__excerpt p {
  margin: 0;
  line-height: 1.7;
}

.gm-content-card__footer {
  margin-top: auto;
}

.gm-content-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #2c5f2d;
  font-weight: 700;
  text-decoration: none;
}

.gm-content-card__link:hover,
.gm-content-card__link:focus-visible {
  color: #3f7c3d;
}

.gm-pagination {
  margin-top: 36px;
}

.gm-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gm-pagination .page-numbers li {
  list-style: none;
}

.gm-pagination .page-numbers a,
.gm-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(31, 58, 44, 0.1);
  border-radius: 12px;
  background: var(--gm-white);
  color: #1f3a2c;
  font-weight: 700;
  text-decoration: none;
}

.gm-pagination .page-numbers a:hover,
.gm-pagination .page-numbers a:focus-visible {
  border-color: rgba(44, 95, 45, 0.22);
  color: #2c5f2d;
}

.gm-pagination .page-numbers .current {
  border-color: #2c5f2d;
  background: #2c5f2d;
  color: var(--gm-white);
}

.gm-empty-state {
  padding: 42px 32px;
  border: 1px solid rgba(31, 58, 44, 0.08);
  border-radius: 22px;
  background: var(--gm-white);
  box-shadow: 0 18px 40px rgba(17, 24, 39, 0.06);
  color: var(--gm-ink-3);
  text-align: center;
}

.gm-empty-state h2 {
  margin: 0 0 10px;
}

.gm-empty-state p {
  margin: 0;
  color: #5c6d61;
}

/* =====================================================
   24. EXTRA RESPONSIVE RULES
===================================================== */

@media (max-width: 1024px) {
  .gm-content-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  body.page-template-page-blog-articles .gm-page-hero,
  body.page-template-page-blog-articles .gm-page-hero--interior,
  body.page-template-page-blog-articles .gm-content-hero,
  body.page-template-page-blog-articles-php .gm-page-hero,
  body.page-template-page-blog-articles-php .gm-page-hero--interior,
  body.page-template-page-blog-articles-php .gm-content-hero,
  body.page-template-page-gm-article .gm-page-hero,
  body.page-template-page-gm-article .gm-page-hero--interior,
  body.page-template-page-gm-article .gm-article-hero,
  body.page-template-page-gm-article-php .gm-page-hero,
  body.page-template-page-gm-article-php .gm-page-hero--interior,
  body.page-template-page-gm-article-php .gm-article-hero {
    padding-top: calc(var(--gm-header-height) + 20px) !important;
    padding-bottom: 36px !important;
  }
}

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

/* =====================================================
   25. SINGLE LISTING PAGE
===================================================== */

/* ── Layout: hp-row as CSS grid container ─────────── */

.hp-listing--view-page.hp-row {
  display: grid;
  grid-template-columns: 60fr 40fr;
  column-gap: 48px;
  align-items: start;
  float: none;
  max-width: 100%;
  margin-top: calc(var(--gm-header-height) + 40px);
  margin-left: 0;
  margin-right: 0;
  padding: 0 24px;
}

.hp-listing--view-page .hp-page__content {
  grid-column: 1;
  float: none;
  width: 100%;
  max-width: 100%;
  padding: 0;
}

.hp-listing--view-page .hp-page__sidebar {
  grid-column: 2;
  float: none;
  width: 100%;
  max-width: 100%;
  padding-top: 0;
  display: block !important;
}

.hp-listing--view-page .hp-page__topbar {
  display: none;
}

.hp-listing--view-page .hp-listing__images {
  width: 100%;
  margin-bottom: 24px;
  min-height: 280px;
  background: var(--gm-surface, #f9faf8);
}

/* ── Native scroll-snap gallery (replaces Slick carousel) ── */

.gm-gallery {
  width: 100%;
  margin-bottom: 24px;
  position: relative;
}

.gm-gallery__track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 0;
  border-radius: var(--gm-radius-lg, 12px);
  overflow-y: hidden;
}

.gm-gallery__track::-webkit-scrollbar {
  display: none;
}

.gm-gallery__slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--gm-surface, #f9faf8);
}

.gm-gallery__zoom {
  display: block;
  width: 100%;
  height: 100%;
}

.gm-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.3s ease;
}

.gm-gallery__slide:hover .gm-gallery__img {
  transform: scale(1.03);
}

/* Dot navigation */
.gm-gallery__dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}

.gm-gallery__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gm-border, #d4e8da);
  transition: background 0.2s ease, transform 0.2s ease;
  display: block;
  flex-shrink: 0;
}

.gm-gallery__dot--active,
.gm-gallery__dot:hover {
  background: var(--gm-green);
  transform: scale(1.2);
}

/* Fancybox zoom hint */
.gm-gallery__zoom::after {
  content: '';
  position: absolute;
  inset: 0;
  background: transparent;
  transition: background 0.2s ease;
}

.gm-gallery__zoom:hover::after {
  background: rgba(0, 0, 0, 0.06);
}

.hp-listing--view-page .hp-listing__description {
  margin-top: 24px;
}

/* Suppress HP's own title — shown in panel header */
.hp-listing--view-page .hp-listing__title {
  display: none !important;
}

/* ── Panel header ────────────────────────────────── */

.gm-listing-panel-header {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--gm-border);
  margin-bottom: 20px;
}

.gm-listing-back-link {
  display: inline-block;
  font-size: 0.875rem;
  color: var(--gm-ink-3);
  text-decoration: none;
  margin-bottom: 18px;
  transition: color var(--gm-transition-fast);
}

.gm-listing-back-link:hover {
  color: var(--gm-green);
}

/* Title row with icon actions */
.gm-listing-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.gm-listing-panel-header__title {
  font-family: var(--gm-font-serif, Georgia, serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--gm-ink);
  line-height: 1.2;
  margin: 0;
  flex: 1;
  letter-spacing: -0.02em;
}

.gm-listing-title-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding-top: 4px;
}

.hp-listing--view-page .gm-title-action,
.hp-listing--view-page .gm-title-action:link,
.hp-listing--view-page .gm-title-action:visited {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  border-radius: 50% !important;
  border: 1px solid var(--gm-border) !important;
  background: var(--gm-white) !important;
  color: var(--gm-ink-3) !important;
  cursor: pointer !important;
  text-decoration: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
  transition: all var(--gm-transition-fast);
  position: relative;
}

.hp-listing--view-page .gm-title-action:hover {
  border-color: var(--gm-green) !important;
  color: var(--gm-green) !important;
  background: var(--gm-green-pale) !important;
}

.hp-listing--view-page .gm-title-action[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: #1a2e1f;
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 5px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
  z-index: 9999;
}

.hp-listing--view-page .gm-title-action[data-tooltip]:hover::after {
  opacity: 1;
}

.hp-listing--view-page .gm-title-action--report:hover,
.hp-listing--view-page .gm-title-action--report:hover:link,
.hp-listing--view-page .gm-title-action--report:hover:visited {
  border-color: #dc3545 !important;
  color: #dc3545 !important;
  background: #fff5f5 !important;
}

.hp-listing--view-page .gm-title-action--favorite[data-state="active"],
.hp-listing--view-page .gm-title-action--favorite[data-state="active"]:link,
.hp-listing--view-page .gm-title-action--favorite[data-state="active"]:visited {
  border-color: var(--gm-green) !important;
  color: var(--gm-green) !important;
  background: var(--gm-green-pale) !important;
}

/* Category pills */
.gm-listing-panel-header__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.gm-listing-cat-pill {
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid var(--gm-border);
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--gm-ink-2);
  text-decoration: none;
  transition: border-color var(--gm-transition-fast), color var(--gm-transition-fast);
}

.gm-listing-cat-pill:hover {
  border-color: var(--gm-green);
  color: var(--gm-green-dark);
}

/* Price */
.gm-listing-panel-header__price {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--gm-green-dark);
  margin: 0;
  letter-spacing: -0.03em;
  line-height: 1;
}

.gm-listing-panel-header__price--contact {
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--gm-ink-3);
}

.gm-listing-panel-header__excerpt {
  font-size: 0.92rem;
  color: var(--gm-ink-2);
  line-height: 1.6;
  margin: 0 0 20px;
}

.gm-listing-panel-header__section-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-ink-3);
  margin: 0 0 6px;
}

/* ── Attribute fields ────────────────────────────── */

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes {
  margin-bottom: 20px;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attribute {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--gm-border);
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attribute:last-child {
  border-bottom: none;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attribute .hp-field__label {
  font-size: 0.8rem;
  color: var(--gm-ink-3);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attribute .hp-field__value {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--gm-ink);
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--primary:empty,
.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--primary .hp-row:empty {
  display: none;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--primary .hp-listing__attribute:empty {
  display: none;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--primary:not(:has(.hp-listing__attribute:not(:empty))) {
  display: none;
}

/* "Details" label above attributes block */
.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--primary::before {
  content: "Details";
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-ink-3);
  margin-bottom: 6px;
}

/* Secondary attributes — empty-state hides */
.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--secondary:empty,
.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--secondary .hp-row:empty {
  display: none;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--secondary .hp-listing__attribute:empty {
  display: none;
}

.hp-listing--view-page .hp-page__sidebar .hp-listing__attributes--secondary:not(:has(.hp-listing__attribute:not(:empty))) {
  display: none;
}

/* "Seller" label above seller card */
.hp-listing--view-page .hp-page__sidebar .gm-seller-card::before {
  content: "Seller";
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-ink-3);
  margin-bottom: 10px;
}

/* ── Seller card ─────────────────────────────────── */

.gm-seller-card {
  padding: 20px;
  background: var(--gm-surface, #f9faf8);
  border: 1px solid var(--gm-border);
  border-radius: 12px;
  margin: 0 0 24px;
}

.gm-seller-card__row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.gm-seller-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--gm-green);
  color: var(--gm-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
}

.gm-seller-card__info {
  flex: 1;
  min-width: 0;
}

.gm-seller-card__name {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--gm-ink);
  margin: 0 0 1px;
  line-height: 1.3;
}

.gm-seller-card__since {
  font-size: 0.78rem;
  color: var(--gm-ink-3);
  margin: 0;
  line-height: 1.3;
}

.gm-seller-card__contact-icons {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.gm-seller-card__sign-in-link {
  font-size: 0.82rem;
  color: var(--gm-green);
  text-decoration: underline;
}

@media (max-width: 560px) {
  .gm-seller-card__row {
    flex-wrap: wrap;
    row-gap: 8px;
  }

  .gm-seller-card__contact-icons {
    flex: 0 0 100%;
  }
}

.gm-seller-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--gm-border);
  background: var(--gm-white);
  color: var(--gm-ink-3);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--gm-transition-fast);
  flex-shrink: 0;
}

.gm-seller-action:hover {
  border-color: var(--gm-green);
  color: var(--gm-green);
  background: var(--gm-green-pale);
}

.gm-seller-card__location {
  font-size: 0.8rem;
  color: var(--gm-ink-3);
  margin: 8px 0 0;
}

.gm-verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  background: rgba(45, 122, 79, 0.1);
  color: var(--gm-green-dark);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.gm-seller-card__all-listings {
  display: inline-flex;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--gm-green);
  text-decoration: none;
  margin-top: 10px;
  transition: color var(--gm-transition-fast);
}

.gm-seller-card__all-listings:hover {
  color: var(--gm-green-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Action buttons ──────────────────────────────── */

.hp-listing--view-page .hp-listing__actions--primary {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 32px;
}

.hp-listing--view-page .hp-listing__actions--primary .hp-btn,
.hp-listing--view-page .hp-listing__actions--primary .hp-btn--primary {
  width: 100%;
  background: var(--gm-green);
  color: var(--gm-white);
  border: 2px solid var(--gm-green);
  border-radius: 8px;
  font-weight: 600;
  font-size: 1rem;
  padding: 14px 20px;
  text-align: center;
  display: block;
  cursor: pointer;
  transition: background var(--gm-transition-fast), border-color var(--gm-transition-fast);
}

.hp-listing--view-page .hp-listing__actions--primary .hp-btn:hover {
  background: var(--gm-green-dark);
  border-color: var(--gm-green-dark);
}

.hp-listing--view-page .hp-listing__actions--primary .hp-btn--secondary,
.hp-listing--view-page .hp-listing__actions--primary .hp-btn--outline {
  background: transparent;
  color: var(--gm-ink);
  border-color: var(--gm-border);
}

.hp-listing--view-page .hp-listing__actions--primary .hp-btn--secondary:hover,
.hp-listing--view-page .hp-listing__actions--primary .hp-btn--outline:hover {
  border-color: var(--gm-green);
  color: var(--gm-green-dark);
}

/* ── Description toggle ──────────────────────────── */

.gm-listing-description {
  margin-bottom: 20px;
}

.gm-listing-description__text {
  font-size: 0.92rem;
  color: var(--gm-ink-2);
  line-height: 1.6;
  display: block;
}

.hp-listing--view-page .gm-description-toggle {
  display: inline !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin-left: 4px;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--gm-green);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  letter-spacing: -0.01em;
  border-radius: 0 !important;
  box-shadow: none !important;
  vertical-align: text-bottom;
  line-height: 1.6;
}

.hp-listing--view-page .gm-description-toggle:hover {
  color: var(--gm-green-dark);
  background: none !important;
}

.hp-listing--view-page .gm-listing-description .gm-description-toggle,
.hp-listing--view-page .gm-listing-description .gm-description-toggle:link,
.hp-listing--view-page .gm-listing-description .gm-description-toggle:visited {
  color: var(--gm-green) !important;
}

/* ── Responsive ──────────────────────────────────── */

@media (max-width: 900px) {
  .hp-listing--view-page.hp-row {
    grid-template-columns: 1fr;
  }

  .hp-listing--view-page .hp-page__content,
  .hp-listing--view-page .hp-page__sidebar {
    grid-column: 1;
  }

  .hp-listing--view-page .hp-page__sidebar {
    grid-row: 2;
  }

  .hp-listing--view-page .hp-listing__images { margin-bottom: 0; }
  .hp-listing--view-page .gm-gallery         { margin-bottom: 8px; }
}

@media (max-width: 600px) {
  .gm-listing-panel-header__title {
    font-size: 1.5rem;
  }

  .gm-listing-panel-header__price {
    font-size: 1.8rem;
  }

  .hp-listing--view-page.hp-row {
    padding: 0 16px;
  }
}

/* ============================================================
   Section 26 — Browse / Archive Page
   Scope: /ads/ (post-type-archive-hp_listing) and
          category sub-pages (tax-hp_listing_category)
   All rules gated on body class — zero bleed to other pages.
   ============================================================ */

/* ── 1. Page container fix (overflow + padding) ───────────── */

body.post-type-archive-hp_listing .hp-page,
body.tax-hp_listing_category .hp-page {
  overflow: visible;
  padding: 0 var(--gm-page-inset);
}

/* ── 2. Hero ──────────────────────────────────────────────── */

/* ── 3. Filter bar ────────────────────────────────────────── */

.gm-archive-filter-bar {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--gm-white);
  border-top: 1px solid #e4ece7;
  border-bottom: 1px solid #e4ece7;
  margin-bottom: 28px;
}

.gm-archive-filter-bar__inner {
  max-width: none;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px var(--gm-page-inset);
  flex-wrap: wrap;
}

.gm-archive-filter-bar__pills {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.gm-archive-filter-bar__label {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gm-ink-3);
  font-family: var(--gm-sans);
  margin-right: 4px;
  white-space: nowrap;
}

.gm-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 14px;
  border-radius: var(--gm-radius-pill);
  border: 1px solid #d8e6dd;
  background: var(--gm-surface);
  color: var(--gm-ink-2);
  font-size: 0.8rem;
  font-family: var(--gm-sans);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--gm-transition-fast), color var(--gm-transition-fast), border-color var(--gm-transition-fast);
}

.gm-filter-pill span {
  font-size: 0.72rem;
  opacity: 0.75;
}

.gm-filter-pill:hover {
  background: var(--gm-green-pale);
  border-color: rgba(45,122,79,0.3);
  color: var(--gm-green-dark);
}

.gm-filter-pill--active,
.gm-filter-pill--active:hover {
  background: var(--gm-green);
  border-color: var(--gm-green);
  color: var(--gm-white);
  font-weight: 600;
}

.gm-filter-pill--active span {
  opacity: 0.85;
}

.gm-archive-filter-bar__count {
  font-size: 0.82rem;
  color: var(--gm-ink-3);
  white-space: nowrap;
  font-family: var(--gm-sans);
}

/* ── 4. Main layout grid (sidebar RIGHT) ─────────────────── */

body.post-type-archive-hp_listing .hp-row,
body.tax-hp_listing_category .hp-row {
  display: grid !important;
  grid-template-columns: 1fr 260px;
  gap: 24px;
  align-items: start;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.post-type-archive-hp_listing .hp-page__sidebar,
body.tax-hp_listing_category .hp-page__sidebar {
  order: 2;
  display: grid;
  gap: 20px;
  align-content: start;
  position: sticky;
  top: calc(var(--gm-header-height) + 20px);
}

body.post-type-archive-hp_listing .hp-page__content,
body.tax-hp_listing_category .hp-page__content {
  order: 1;
  min-width: 0;
}

/* Kill Bootstrap column widths — grid takes over */
body.post-type-archive-hp_listing .hp-page__sidebar,
body.post-type-archive-hp_listing .hp-page__content,
body.tax-hp_listing_category .hp-page__sidebar,
body.tax-hp_listing_category .hp-page__content {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
}

/* ── 5. Topbar (result count + sort) ─────────────────────── */

body.post-type-archive-hp_listing .hp-page__topbar,
body.tax-hp_listing_category .hp-page__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid #e4ece7;
}

body.post-type-archive-hp_listing .hp-result-count,
body.tax-hp_listing_category .hp-result-count {
  color: var(--gm-ink-2);
  font-size: 0.875rem;
}

body.post-type-archive-hp_listing .hp-form--pivot,
body.tax-hp_listing_category .hp-form--pivot {
  flex-shrink: 0;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

body.post-type-archive-hp_listing .hp-form--pivot .hp-form__field,
body.tax-hp_listing_category .hp-form--pivot .hp-form__field {
  align-items: baseline;
}

body.post-type-archive-hp_listing .hp-form--pivot select,
body.tax-hp_listing_category .hp-form--pivot select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  outline: none;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--gm-ink);
  cursor: pointer;
  min-height: 0;
  height: auto;
  width: auto;
  padding: 0 20px 0 0;
  border-radius: 0;
}

body.post-type-archive-hp_listing .hp-form--pivot .select2-container,
body.tax-hp_listing_category .hp-form--pivot .select2-container {
  min-width: 0 !important;
  position: relative;
  display: inline-flex !important;
  align-items: center !important;
}

body.post-type-archive-hp_listing .hp-form--pivot .select2-container::after,
body.tax-hp_listing_category .hp-form--pivot .select2-container::after {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid var(--gm-ink-3);
  border-bottom: 1.5px solid var(--gm-ink-3);
  transform: rotate(45deg);
  margin-left: 6px;
  margin-top: -3px;
  flex-shrink: 0;
  pointer-events: none;
}

body.post-type-archive-hp_listing .hp-form--pivot .select2-selection--single,
body.tax-hp_listing_category .hp-form--pivot .select2-selection--single {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  height: auto !important;
  padding: 0 20px 0 0 !important;
  outline: none !important;
  display: inline-flex !important;
  align-items: center !important;
}

body.post-type-archive-hp_listing .hp-form--pivot .select2-selection__rendered,
body.tax-hp_listing_category .hp-form--pivot .select2-selection__rendered {
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--gm-ink) !important;
  padding: 0 !important;
  line-height: 1 !important;
  vertical-align: baseline !important;
}

body.post-type-archive-hp_listing .hp-form--pivot .select2-selection__arrow,
body.tax-hp_listing_category .hp-form--pivot .select2-selection__arrow {
  display: none !important;
}

/* ── 6. Card grid equal-height rows ──────────────────────── */

body.post-type-archive-hp_listing .hp-listings.hp-grid .hp-row,
body.tax-hp_listing_category .hp-listings.hp-grid .hp-row {
  grid-template-columns: repeat(3, 1fr) !important;
  column-gap: 24px;
  row-gap: 20px;
  align-items: start;
}

/* Strip HP flexbox column padding/max-width — grid column-gap handles gutters */
body.post-type-archive-hp_listing .hp-listings.hp-grid .hp-col-sm-6,
body.tax-hp_listing_category .hp-listings.hp-grid .hp-col-sm-6 {
  max-width: none !important;
  padding: 0 !important;
  flex-basis: auto !important;
}

body.post-type-archive-hp_listing .hp-grid__item,
body.tax-hp_listing_category .hp-grid__item {
  display: flex;
}

/* ── 7. Card base ─────────────────────────────────────────── */

/* Reset: strip any global border/shadow/padding from all view-block wrappers on archive */
body.post-type-archive-hp_listing .hp-listing--view-block,
body.tax-hp_listing_category .hp-listing--view-block {
  border: none;
  background: none;
  box-shadow: none;
  padding: 0;
}

/* Card styles: only apply to cards injected with our custom template */
body.post-type-archive-hp_listing .hp-listing--view-block.gm-listing-card,
body.tax-hp_listing_category .hp-listing--view-block.gm-listing-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--gm-white);
  border: 1px solid #e4ece7;
  border-radius: var(--gm-radius-lg);
  box-shadow: var(--gm-shadow-sm);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
}

body.post-type-archive-hp_listing .hp-listing--view-block.gm-listing-card:hover,
body.post-type-archive-hp_listing .hp-listing--view-block.gm-listing-card:focus-within,
body.tax-hp_listing_category .hp-listing--view-block.gm-listing-card:hover,
body.tax-hp_listing_category .hp-listing--view-block.gm-listing-card:focus-within {
  border-color: #c8ddd0;
  box-shadow: 0 12px 32px rgba(30,60,40,0.13);
  transform: translateY(-2px);
}

/* ── 8. Card image (16/10 aspect ratio) ──────────────────── */

body.post-type-archive-hp_listing .hp-listing__image,
body.tax-hp_listing_category .hp-listing__image {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 0;
  background: #f0f4f1;
}

body.post-type-archive-hp_listing .hp-listing__image img,
body.tax-hp_listing_category .hp-listing__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

body.post-type-archive-hp_listing .hp-listing--view-block:hover .hp-listing__image img,
body.tax-hp_listing_category .hp-listing--view-block:hover .hp-listing__image img {
  transform: scale(1.04);
}

/* ── 9. Category pill overlay (dark glass, top-left of image) */

/* Pull details-primary out of flow, position over image */
body.post-type-archive-hp_listing .hp-listing__details--primary,
body.tax-hp_listing_category .hp-listing__details--primary {
  position: absolute;
  top: 10px;
  left: 12px;
  z-index: 3;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

body.post-type-archive-hp_listing .hp-listing__details--primary a,
body.post-type-archive-hp_listing .hp-listing__details--primary .hp-listing__categories,
body.post-type-archive-hp_listing .hp-listing__details--primary .hp-listing__category,
body.tax-hp_listing_category .hp-listing__details--primary a,
body.tax-hp_listing_category .hp-listing__details--primary .hp-listing__categories,
body.tax-hp_listing_category .hp-listing__details--primary .hp-listing__category {
  pointer-events: auto;
}

/* Dark glass pill */
body.post-type-archive-hp_listing .hp-listing__category a,
body.tax-hp_listing_category .hp-listing__category a {
  display: inline-block;
  padding: 3px 10px;
  border-radius: var(--gm-radius-pill);
  background: rgba(20, 28, 22, 0.82);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: background var(--gm-transition-fast);
}

body.post-type-archive-hp_listing .hp-listing__category a:hover,
body.tax-hp_listing_category .hp-listing__category a:hover {
  background: rgba(45,122,79,0.9);
}

/* Hide date — not shown in design */
body.post-type-archive-hp_listing .hp-listing__details--primary .hp-listing__created-date,
body.tax-hp_listing_category .hp-listing__details--primary .hp-listing__created-date {
  display: none;
}

/* ── 10. Featured badge (pill shape, top-right, yellow) ───── */

body.post-type-archive-hp_listing .hp-listing__featured-badge,
body.tax-hp_listing_category .hp-listing__featured-badge {
  position: absolute;
  top: 10px;
  right: 12px;
  left: auto;
  z-index: 3;
  width: auto;
  height: auto;
  border-radius: var(--gm-radius-pill);
  background: rgba(255, 210, 60, 0.92);
  color: #5a3d00;
  padding: 3px 10px;
  font-size: 0.68rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

body.post-type-archive-hp_listing .hp-listing__featured-badge i,
body.tax-hp_listing_category .hp-listing__featured-badge i {
  display: none;
}

body.post-type-archive-hp_listing .hp-listing__featured-badge::after,
body.tax-hp_listing_category .hp-listing__featured-badge::after {
  content: "⭐ Featured";
}

/* ── 11. Card content (title) ─────────────────────────────── */

body.post-type-archive-hp_listing .hp-listing__content,
body.tax-hp_listing_category .hp-listing__content {
  flex: 1;
  padding: 14px 16px 0;
}

body.post-type-archive-hp_listing .hp-listing__title,
body.tax-hp_listing_category .hp-listing__title {
  margin: 0 0 6px;
  font-size: 1rem;
  font-family: var(--gm-serif);
  font-weight: 400;
  line-height: 1.3;
}

body.post-type-archive-hp_listing .hp-listing__title a,
body.tax-hp_listing_category .hp-listing__title a {
  color: var(--gm-ink);
  text-decoration: none;
}

body.post-type-archive-hp_listing .hp-listing__title a:hover,
body.tax-hp_listing_category .hp-listing__title a:hover {
  color: var(--gm-green);
}

/* ── 12. Card footer (price + meta row) ───────────────────── */

body.post-type-archive-hp_listing .hp-listing__footer,
body.tax-hp_listing_category .hp-listing__footer {
  padding: 10px 16px 14px;
  margin-top: auto;
  border-top: 1px solid #e4ece7;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Price — primary attributes area */
body.post-type-archive-hp_listing .hp-listing__attributes--primary .hp-field__label,
body.tax-hp_listing_category .hp-listing__attributes--primary .hp-field__label {
  display: none;
}

body.post-type-archive-hp_listing .hp-listing__attributes--primary .hp-field__value,
body.tax-hp_listing_category .hp-listing__attributes--primary .hp-field__value {
  font-family: var(--gm-serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--gm-green);
}

/* Location (secondary attributes) */
body.post-type-archive-hp_listing .hp-listing__attributes--secondary,
body.tax-hp_listing_category .hp-listing__attributes--secondary {
  font-size: 0.74rem;
  color: var(--gm-ink-3);
  padding: 0;
  margin: 0;
}

/* ── 13. Sidebar filter widget ────────────────────────────── */

body.post-type-archive-hp_listing .hp-widget--listing-filter,
body.tax-hp_listing_category .hp-widget--listing-filter {
  padding: 20px !important;
  background: var(--gm-white) !important;
  border: 1px solid #e4ece7 !important;
  border-radius: var(--gm-radius-lg) !important;
  box-shadow: var(--gm-shadow-sm) !important;
}

/* "Filters" heading injected via ::before on the widget */
body.post-type-archive-hp_listing .hp-widget--listing-filter::before,
body.tax-hp_listing_category .hp-widget--listing-filter::before {
  content: "Filters";
  display: block;
  font-family: var(--gm-serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--gm-ink);
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e4ece7;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-form__button,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-form__button {
  width: 100%;
  background: var(--gm-green);
  color: var(--gm-white);
  border: none;
  border-radius: 10px;
  padding: 11px 20px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--gm-transition-fast);
  margin-top: 4px;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-form__button:hover,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-form__button:hover {
  background: var(--gm-green-dark);
}

/* Sidebar widget on mobile */
@media (max-width: 47.99em) {
  body.post-type-archive-hp_listing .hp-widget--listing-filter,
  body.tax-hp_listing_category .hp-widget--listing-filter {
    display: block;
  }

  body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-modal--mobile,
  body.tax-hp_listing_category .hp-widget--listing-filter .hp-modal--mobile {
    display: block;
    width: auto;
  }
}

/* ── 14. Featured Growers sidebar card ───────────────────── */

.gm-featured-growers {
  padding: 20px;
  background: var(--gm-white);
  border: 1px solid #e4ece7;
  border-radius: var(--gm-radius-lg);
  box-shadow: var(--gm-shadow-sm);
}

.gm-featured-growers__title {
  font-family: var(--gm-serif);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--gm-ink);
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e4ece7;
}

.gm-featured-growers__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.gm-featured-growers__row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--gm-surface);
  border: 1px solid #e4ece7;
  border-radius: 12px;
  text-decoration: none;
  transition: background var(--gm-transition-fast), border-color var(--gm-transition-fast);
}

.gm-featured-growers__row:hover {
  background: var(--gm-green-pale);
  border-color: rgba(45,122,79,0.25);
}

.gm-featured-growers__avatar {
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 50%;
  background: var(--gm-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--gm-sans);
  font-size: 0.9rem;
  font-weight: 700;
}

.gm-featured-growers__info {
  min-width: 0;
}

.gm-featured-growers__name {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--gm-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gm-featured-growers__meta {
  font-size: 0.74rem;
  color: var(--gm-ink-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
}

.gm-featured-growers__all {
  display: block;
  font-size: 0.8rem;
  color: var(--gm-green);
  text-decoration: none;
  text-align: right;
  transition: color var(--gm-transition-fast);
}

.gm-featured-growers__all:hover {
  color: var(--gm-green-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── 15. CTA sidebar card ─────────────────────────────────── */

.gm-archive-cta {
  padding: 20px;
  background: var(--gm-green-pale);
  border: 1px solid rgba(45, 122, 79, 0.18);
  border-radius: var(--gm-radius-lg);
}

.gm-archive-cta__title {
  font-family: var(--gm-serif);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--gm-green-dark);
  margin: 0 0 8px;
}

.gm-archive-cta__text {
  font-size: 0.84rem;
  color: var(--gm-ink-2);
  margin: 0 0 16px;
  line-height: 1.55;
}

.gm-archive-cta__btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 11px 16px;
  background: var(--gm-green);
  color: var(--gm-white);
  text-decoration: none;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  font-family: var(--gm-sans);
  transition: background var(--gm-transition-fast);
}

.gm-archive-cta__btn:hover {
  background: var(--gm-green-dark);
  color: var(--gm-white);
}

/* ── 16. Responsive breakpoints ──────────────────────────── */

@media (max-width: 900px) {
  body.post-type-archive-hp_listing .hp-row,
  body.tax-hp_listing_category .hp-row {
    grid-template-columns: 1fr !important;
  }

  /* Content above sidebar on mobile */
  body.post-type-archive-hp_listing .hp-page__content,
  body.tax-hp_listing_category .hp-page__content {
    order: 1;
  }

  body.post-type-archive-hp_listing .hp-page__sidebar,
  body.tax-hp_listing_category .hp-page__sidebar {
    order: 2;
    position: static;
  }

  /* Sidebar block ordering: map → filters → growers → cta */
  body.post-type-archive-hp_listing .hp-page__sidebar .hp-map,
  body.tax-hp_listing_category .hp-page__sidebar .hp-map {
    order: 1;
  }

  body.post-type-archive-hp_listing .hp-page__sidebar .hp-widget--listing-filter,
  body.tax-hp_listing_category .hp-page__sidebar .hp-widget--listing-filter {
    order: 2;
  }

  body.post-type-archive-hp_listing .hp-page__sidebar .gm-featured-growers,
  body.tax-hp_listing_category .hp-page__sidebar .gm-featured-growers {
    order: 3;
  }

  body.post-type-archive-hp_listing .hp-page__sidebar .gm-archive-cta,
  body.tax-hp_listing_category .hp-page__sidebar .gm-archive-cta {
    order: 4;
  }
}

@media (max-width: 768px) {
  /* Filter pills — horizontal scroll, no wrap */
  .gm-archive-filter-bar__inner {
    max-width: calc(100% - 48px);
    flex-wrap: nowrap;
    gap: 8px;
    overflow: hidden;
  }

  .gm-archive-filter-bar__pills {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }

  .gm-archive-filter-bar__pills::-webkit-scrollbar {
    display: none;
  }

  .gm-archive-filter-bar__count {
    flex-shrink: 0;
  }

  /* Archive search bar — stacked layout */
  .gm-archive-search-wrap .gm-hero-search {
    max-width: calc(100% - 48px);
  }

  .gm-archive-search-wrap .gm-hero-search__row {
    height: auto;
    flex-wrap: wrap;
    padding: 8px;
    gap: 4px;
  }

  .gm-archive-search-wrap .gm-hero-search__field {
    flex: 1 1 100%;
    padding: 10px 14px;
  }

  .gm-archive-search-wrap .gm-hero-search__field + .gm-hero-search__field::before {
    top: 0;
    bottom: auto;
    left: 14px;
    right: 14px;
    width: auto;
    height: 1px;
  }

  .gm-archive-search-wrap .gm-hero-search__field--keyword {
    flex: 1 1 100%;
  }

  .gm-archive-search-wrap .gm-hero-search__field--category,
  .gm-archive-search-wrap .gm-hero-search__field--radius {
    flex: 1 1 calc(50% - 4px);
  }

  .gm-archive-search-wrap .gm-hero-search__actions {
    flex: 1 1 100%;
    padding-left: 0;
  }

  .gm-archive-search-wrap .gm-hero-search__submit {
    width: 100%;
    justify-content: center;
  }

  /* Single-column listing cards */
  body.post-type-archive-hp_listing .hp-grid__item,
  body.tax-hp_listing_category .hp-grid__item {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  body.post-type-archive-hp_listing .hp-listings.hp-grid .hp-row,
  body.tax-hp_listing_category .hp-listings.hp-grid .hp-row {
    grid-template-columns: 1fr !important;
    column-gap: 0;
  }

  /* Show filter toggle button */
  .gm-filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px 5px 11px;
    border: 1px solid #d8e6dd;
    border-radius: var(--gm-radius-pill);
    background: var(--gm-white);
    color: var(--gm-ink-2);
    font-size: 0.82rem;
    font-family: var(--gm-sans);
    font-weight: 500;
    cursor: pointer;
    transition: background var(--gm-transition-fast), color var(--gm-transition-fast), border-color var(--gm-transition-fast);
  }

  .gm-filter-toggle:hover,
  .gm-filter-toggle[aria-expanded="true"] {
    background: var(--gm-green-pale);
    border-color: rgba(45, 122, 79, 0.3);
    color: var(--gm-green-dark);
  }

  /* Sidebar collapsed by default on mobile */
  body.post-type-archive-hp_listing .hp-page__sidebar,
  body.tax-hp_listing_category .hp-page__sidebar {
    display: none;
    order: 0;
  }

  /* When open: restores display and places ABOVE listing cards */
  body.post-type-archive-hp_listing .hp-page__sidebar.is-open,
  body.tax-hp_listing_category .hp-page__sidebar.is-open {
    display: grid;
    order: 0;
  }
}

@media (max-width: 600px) {
  body.post-type-archive-hp_listing .hp-page__topbar,
  body.tax-hp_listing_category .hp-page__topbar {
    flex-wrap: wrap;
  }

  body.post-type-archive-hp_listing .hp-form--pivot,
  body.tax-hp_listing_category .hp-form--pivot {
    width: 100%;
  }
}

/* ── 17. Archive search bar ───────────────────────────────── */

.gm-archive-search-wrap {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--gm-white);
  border-bottom: 1px solid #e4ece7;
  padding: 14px 0;
}

.gm-archive-search-wrap .gm-hero-search {
  max-width: none;
  margin: 0;
  padding: 0 var(--gm-page-inset);
}

/* Flat, lighter treatment in page-flow context */
.gm-archive-search-wrap .gm-hero-search__row {
  box-shadow: none;
  border-color: #d8e6dd;
}

.gm-archive-search-wrap .gm-hero-search:hover .gm-hero-search__row,
.gm-archive-search-wrap .gm-hero-search:focus-within .gm-hero-search__row,
.gm-archive-search-wrap .gm-hero-search.is-loading .gm-hero-search__row {
  border-color: rgba(45, 122, 79, 0.5);
  box-shadow: 0 0 0 4px rgba(45, 122, 79, 0.08);
}

/* ── 18. Seller Type + filter field polish ────────────────── */

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field {
  margin-bottom: 16px;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field__label,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gm-ink-3);
  font-family: var(--gm-sans);
  margin-bottom: 8px;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--select select,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--select select {
  width: 100%;
  padding: 9px 32px 9px 12px;
  background: var(--gm-white);
  border: 1px solid #d8e6dd;
  border-radius: 8px;
  color: var(--gm-ink);
  font-family: var(--gm-sans);
  font-size: 0.84rem;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: border-color var(--gm-transition-fast);
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--select select:focus,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--select select:focus {
  outline: none;
  border-color: var(--gm-green);
  box-shadow: 0 0 0 3px rgba(45, 122, 79, 0.1);
}

/* Chevron for select fields inside filter widget */
body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--select,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--select {
  position: relative;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--select::after,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--select::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--gm-ink-3);
  border-bottom: 2px solid var(--gm-ink-3);
  pointer-events: none;
}

/* Radio fields (Category) */
body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--radio .hp-radio,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--radio .hp-radio {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  cursor: pointer;
  font-size: 0.84rem;
  color: var(--gm-ink);
  font-family: var(--gm-sans);
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--radio input[type="radio"],
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--radio input[type="radio"] {
  accent-color: var(--gm-green);
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  cursor: pointer;
}

body.post-type-archive-hp_listing .hp-form--listing-filter .hp-field--radio,
body.tax-hp_listing_category .hp-form--listing-filter .hp-field--radio,
body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-field--radio,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-field--radio {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  max-height: none !important;
}

body.post-type-archive-hp_listing .hp-widget--listing-filter .hp-form__field--text .hp-field--text,
body.tax-hp_listing_category .hp-widget--listing-filter .hp-form__field--text .hp-field--text {
  border: 1px solid var(--gm-border) !important;
  border-radius: var(--gm-radius-sm) !important;
  background: var(--gm-white) !important;
  padding: 10px 14px !important;
}

/* Hide default WP Archives + Categories widgets on archive pages */
body.post-type-archive-hp_listing .widget_archive,
body.post-type-archive-hp_listing .widget_categories,
body.tax-hp_listing_category .widget_archive,
body.tax-hp_listing_category .widget_categories {
  display: none !important;
}

/* ── 15. Verified seller badge (card footer) ─────────────────── */

.gm-verified-seller-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: var(--gm-green-pale);
  color: var(--gm-green);
  font-size: 0.66rem;
  font-weight: 600;
  font-family: var(--gm-sans);
  border-radius: var(--gm-radius-pill);
  white-space: nowrap;
  margin-top: 6px;
}

/* ── 19. Mobile filter toggle ─────────────────────────────── */

.gm-archive-filter-bar__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* Hidden on desktop — @media (max-width: 768px) above overrides */
.gm-filter-toggle {
  display: none;
}

/* ═══════════════════════════════════════════════════════════════
   Section 28 — Onboarding flow  (page-onboarding.php)
   ═══════════════════════════════════════════════════════════════ */

/* ── Page shell ───────────────────────────────────────────────── */

.gm-onboarding-page {
  padding: 56px 0 80px;
  background: var(--gm-surface);
  min-height: 70vh;
}

.gm-onboarding-wrap {
  max-width: 560px;
  margin: 0 auto;
}

/* ── Progress indicator ───────────────────────────────────────── */

.gm-onboarding-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 36px;
}

.gm-onboarding-progress__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.gm-onboarding-progress__dot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gm-white);
  border: 2px solid var(--gm-border);
  color: var(--gm-muted);
  font-size: .8125rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, border-color .2s, color .2s;
}

.gm-onboarding-progress__dot svg {
  width: 14px;
  height: 14px;
}

.gm-onboarding-progress__step.is-active .gm-onboarding-progress__dot {
  background: var(--gm-green);
  border-color: var(--gm-green);
  color: var(--gm-white);
}

.gm-onboarding-progress__step.is-done .gm-onboarding-progress__dot {
  background: var(--gm-green-light, #d0e8d6);
  border-color: var(--gm-green);
  color: var(--gm-green);
}

.gm-onboarding-progress__label {
  font-size: .6875rem;
  color: var(--gm-muted);
  text-align: center;
  max-width: 80px;
  line-height: 1.3;
}

.gm-onboarding-progress__step.is-active .gm-onboarding-progress__label {
  color: var(--gm-ink);
  font-weight: 600;
}

.gm-onboarding-progress__line {
  flex: 1;
  height: 2px;
  background: var(--gm-border);
  margin: 0 4px;
  margin-bottom: 22px;
  transition: background .2s;
}

.gm-onboarding-progress__line.is-done {
  background: var(--gm-green);
}

/* ── Card ─────────────────────────────────────────────────────── */

.gm-onboarding-card {
  background: var(--gm-white);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-lg, 16px);
  padding: 40px 44px 44px;
  box-shadow: 0 2px 16px rgba(0,0,0,.05);
}

.gm-onboarding-card__header {
  margin-bottom: 28px;
}

.gm-onboarding-card__step-label {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--gm-green);
  margin: 0 0 8px;
}

.gm-onboarding-card__title {
  font-family: var(--gm-font-serif);
  font-size: 1.625rem;
  font-weight: 700;
  color: var(--gm-ink);
  margin: 0;
  line-height: 1.2;
}

.gm-onboarding-card__hint {
  font-size: .875rem;
  color: var(--gm-muted);
  margin: 0 0 24px;
  line-height: 1.55;
}

/* ── Form fields ──────────────────────────────────────────────── */

.gm-onboarding-field {
  margin: 0 0 20px;
}

.gm-onboarding-field label {
  display: block;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--gm-ink);
  margin-bottom: 6px;
}

.gm-onboarding-field__optional {
  font-weight: 400;
  color: var(--gm-muted);
}

.gm-onboarding-field input[type="text"],
.gm-onboarding-field input[type="tel"] {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius, 8px);
  font-size: .9375rem;
  color: var(--gm-ink);
  background: var(--gm-white);
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}

.gm-onboarding-field input:focus {
  outline: none;
  border-color: var(--gm-green);
  box-shadow: 0 0 0 3px rgba(74,138,90,.15);
}

/* ── Category pills ───────────────────────────────────────────── */

.gm-category-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 32px;
}

.gm-category-pill {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border: 1.5px solid var(--gm-border);
  border-radius: 100px;
  font-size: .875rem;
  font-weight: 500;
  color: var(--gm-ink);
  background: var(--gm-white);
  cursor: pointer;
  user-select: none;
  transition: border-color .15s, background .15s, color .15s;
}

.gm-category-pill input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.gm-category-pill:hover {
  border-color: var(--gm-green);
  color: var(--gm-green);
}

.gm-category-pill.is-selected {
  background: var(--gm-green);
  border-color: var(--gm-green);
  color: var(--gm-white);
}

/* ── Photo upload ─────────────────────────────────────────────── */

.gm-onboarding-photo-wrap {
  margin-bottom: 32px;
}

.gm-onboarding-photo-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  border: 1.5px dashed var(--gm-border);
  border-radius: var(--gm-radius, 8px);
  font-size: .875rem;
  font-weight: 500;
  color: var(--gm-ink);
  cursor: pointer;
  transition: border-color .15s, color .15s;
}

.gm-onboarding-photo-label svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--gm-muted);
}

.gm-onboarding-photo-label:hover {
  border-color: var(--gm-green);
  color: var(--gm-green);
}

.gm-onboarding-photo-label:hover svg {
  color: var(--gm-green);
}

#gm_profile_photo {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.gm-onboarding-photo-name {
  margin: 8px 0 0;
  font-size: .8125rem;
  color: var(--gm-muted);
}

/* ── Actions row ──────────────────────────────────────────────── */

.gm-onboarding-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 32px;
}

.gm-onboarding-skip {
  background: none;
  border: none;
  padding: 0;
  font-size: .875rem;
  color: var(--gm-muted);
  cursor: pointer;
  text-decoration: none;
  transition: color .15s;
}

.gm-onboarding-skip:hover {
  color: var(--gm-ink);
}

.gm-onboarding-skip--text {
  background: none;
  border: none;
  box-shadow: none;
  color: var(--gm-ink-muted, #888);
  font-size: 0.875rem;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
}
.gm-onboarding-skip--text:hover {
  color: var(--gm-ink);
}

/* ── Responsive ───────────────────────────────────────────────── */

@media (max-width: 36em) {
  .gm-onboarding-card {
    padding: 28px 20px 32px;
  }

  .gm-onboarding-progress__label {
    display: none;
  }

  .gm-onboarding-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Section 29 — Front-end notices  (.gm-notice)
   ═══════════════════════════════════════════════════════════════ */

.gm-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: 14px 24px;
  border-left: 4px solid transparent;
  border-radius: 0;
}

.gm-notice--warning {
  background: #fffbeb;
  border-color: #f59e0b;
}

.gm-notice--error {
  background: #fef2f2;
  border-color: #ef4444;
}

.gm-notice--info {
  background: #eaf4ee;
  border-color: rgba(45, 122, 79, 0.28);
  color: #173326;
}

.gm-notice__text {
  margin: 0;
  font-size: .9rem;
  color: var(--gm-ink);
  line-height: 1.5;
}

.gm-notice__text + .gm-notice__text {
  margin-top: 2px;
}

.gm-notice__cta {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Small button modifier (used by notices and profile banner) ── */

.gm-btn--sm {
  padding: 7px 16px;
  font-size: .8125rem;
}

/* ═══════════════════════════════════════════════════════════════
   Section 30 — Profile completion banner  (.gm-profile-banner)
   ═══════════════════════════════════════════════════════════════ */

.gm-profile-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  background: var(--gm-green-pale, #f2f8f4);
  border-bottom: 1px solid rgba(52, 164, 74, 0.2);
  padding: 10px 0;
}

.gm-profile-banner .gm-container {
  /* Banner uses the page's gm-container only if nested — otherwise
     the banner itself stretches full-width and the inner row is
     constrained. */
}

body.gm-has-profile-banner .gm-site-header {
  top: 56px;
}

body.gm-has-profile-banner .gm-hero {
  padding-top: 56px;
}

.gm-profile-banner__inner {
  max-width: var(--gm-container-width, 1200px);
  margin: 0 auto;
  padding: 0 var(--gm-container-padding, 24px);
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.gm-profile-banner__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.gm-profile-banner__text strong {
  font-size: .9375rem;
  color: var(--gm-ink);
}

.gm-profile-banner__text span {
  font-size: .8125rem;
  color: var(--gm-muted);
}

.gm-profile-banner__progress {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.gm-profile-banner__bar {
  width: 120px;
  height: 6px;
  background: var(--gm-border);
  border-radius: 100px;
  overflow: hidden;
}

.gm-profile-banner__fill {
  height: 100%;
  background: var(--gm-green);
  border-radius: 100px;
  transition: width .4s ease;
}

.gm-profile-banner__pct {
  font-size: .8125rem;
  font-weight: 600;
  color: var(--gm-green);
  min-width: 32px;
}

@media (max-width: 36em) {
  .gm-profile-banner__inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .gm-profile-banner__bar {
    width: 100%;
  }
}

@media (max-width: 36em) {
  body.gm-has-profile-banner .gm-site-header {
    top: 148px;
  }
  body.gm-has-profile-banner .gm-hero {
    padding-top: 148px;
  }
}

/* ── Universal content alignment ── */

/* HivePress account pages — already fixed via account.css */

/* Blog and generic pages */
body.blog .gm-page-shell,
body.single-post .gm-page-shell,
body.page .gm-page-shell {
  padding-left: var(--gm-page-inset);
  padding-right: var(--gm-page-inset);
}

/* Dashboard */
body.page-dashboard .gm-account-section .gm-container {
  padding-left: var(--gm-page-inset) !important;
  padding-right: var(--gm-page-inset) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

/* ── Homepage + Dashboard full-width content ── */
body.gm-front-page .gm-section .gm-container,
body.page-dashboard .gm-account-section .gm-container,
body.gm-blog .gm-container,
body.single-post .gm-container,
body.page .gm-container {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: var(--gm-page-inset) !important;
  padding-right: var(--gm-page-inset) !important;
  box-sizing: border-box !important;
}

/* =====================================================
   Legal pages (Privacy Policy, Terms, Cookie Policy …)
   Assigned via Template Name: Legal Page
===================================================== */

.gm-legal-content {
  max-width: 720px;
  margin-inline: auto;
  padding: 56px 0 96px;
}

.gm-legal-content__updated {
  font-family: var(--gm-sans);
  font-size: 0.875rem;
  color: var(--gm-ink-3);
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--gm-border);
}

.gm-legal-content .entry-content {
  font-family: var(--gm-sans);
  font-size: 1rem;
  line-height: 1.8;
  color: var(--gm-ink);
}

.gm-legal-content .entry-content h1,
.gm-legal-content .entry-content h2,
.gm-legal-content .entry-content h3 {
  font-family: var(--gm-serif);
  color: var(--gm-green-dark);
  margin-top: 2em;
  margin-bottom: 0.5em;
}

.gm-legal-content .entry-content p {
  margin-bottom: 1em;
}

.gm-legal-content .entry-content ul,
.gm-legal-content .entry-content ol {
  padding-left: 1.5em;
  margin-bottom: 1em;
}

.gm-legal-content .entry-content li {
  margin-bottom: 0.4em;
}

@media (max-width: 600px) {
  .gm-legal-content {
    padding: 40px 0 64px;
  }
}
