/* =====================================================================
   GoodWorks Hub — Official Brand System
   Colors: black · yellow · white · orange · navy blue
   Loaded last so it overrides page-level blue tokens.
   ===================================================================== */

:root {
  --gw-black: #0a0a0a;
  --gw-navy: #0d1633;
  --gw-navy-2: #142352;
  --gw-yellow: #f6c500;
  --gw-yellow-light: #fff8dc;
  --gw-yellow-dark: #d9ab00;
  --gw-orange: #f97316;
  --gw-orange-dark: #ea580c;
  --gw-orange-light: #ffedd5;
  --gw-white: #ffffff;

  /* Legacy aliases used across the theme */
  --gw-green: var(--gw-navy-2);
  --gw-green-light: var(--gw-yellow-light);
  --gw-green-dark: var(--gw-navy);
  --gw-green-hover: var(--gw-navy);
  --gw-gold-top: #ffd94a;
  --gw-gold: var(--gw-yellow);
  --gw-gold-deep: var(--gw-yellow-dark);
  --gw-amber: var(--gw-yellow);
  --gw-blue: var(--gw-navy-2);
  --gw-blue-light: var(--gw-yellow-light);
}

/* ── Global typography & links ─────────────────────────────────────── */
a { color: var(--gw-navy-2); }
a:hover { color: var(--gw-orange-dark); }

/* ── Buttons ───────────────────────────────────────────────────────── */
.gw-btn--primary {
  background: linear-gradient(135deg, var(--gw-gold-top) 0%, var(--gw-yellow) 50%, var(--gw-orange) 100%);
  color: var(--gw-navy);
  border-color: transparent;
}
.gw-btn--primary:hover {
  background: linear-gradient(135deg, var(--gw-yellow) 0%, var(--gw-orange-dark) 100%);
  color: var(--gw-navy);
  box-shadow: 0 6px 18px rgba(234, 88, 12, .35);
}
.gw-btn--outline {
  border-color: var(--gw-yellow-dark);
  color: var(--gw-navy-2);
}
.gw-btn--outline:hover {
  background: var(--gw-yellow-light);
  color: var(--gw-navy);
  border-color: var(--gw-orange);
}
.gw-btn--accent {
  background: var(--gw-orange);
  color: var(--gw-white);
}
.gw-btn--accent:hover {
  background: var(--gw-orange-dark);
  color: var(--gw-white);
}
.gw-btn:focus-visible { outline-color: var(--gw-orange); }

/* ── Header: styles in assets/css/header.css (white bar + scroll-retract) ── */
/* ── Footer (black + yellow accents) ───────────────────────────────── */
.gw-footer {
  background: var(--gw-black);
  color: rgba(255, 255, 255, .72);
}
.gw-footer__bottom { border-top-color: rgba(246, 197, 0, .25); }
.gw-footer__heading { border-bottom-color: var(--gw-yellow); }
.gw-footer__links a:hover,
.gw-footer__legal-links a:hover { color: var(--gw-yellow); }
.gw-footer__social {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
}
.gw-footer__social a {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}
.gw-footer__social a:hover { color: var(--gw-yellow); }
.gw-footer__copyright { margin: 0; }

/* ── Page heroes (yellow → orange gradient, navy text) ───────────── */
.gw-page-hero,
.gw-opps__hero,
.gw-needs__hero,
.gw-vd__welcome,
.gw-talent__premium,
.gw-profile__snapshot,
.gw-postings__cta {
  background: linear-gradient(120deg, var(--gw-yellow) 0%, #ffcf1f 42%, var(--gw-orange) 100%) !important;
  color: var(--gw-navy) !important;
  box-shadow: 0 20px 44px rgba(234, 88, 12, .22) !important;
}
.gw-page-hero h1,
.gw-opps__hero-title,
.gw-needs__hero-title,
.gw-vd__welcome h2 {
  color: var(--gw-navy) !important;
}
.gw-page-hero p,
.gw-opps__hero-sub,
.gw-needs__hero-sub,
.gw-vd__welcome p,
.gw-talent__premium p,
.gw-postings__cta p {
  color: rgba(13, 22, 51, .82) !important;
  opacity: 1 !important;
}
.gw-page-hero { border-bottom: 4px solid var(--gw-navy); }
.gw-page-hero .gw-btn--primary,
.gw-needs__btn--white,
.gw-vd__btn-white {
  background: var(--gw-navy) !important;
  color: var(--gw-white) !important;
}
.gw-page-hero .gw-btn--primary:hover,
.gw-needs__btn--white:hover,
.gw-vd__btn-white:hover {
  background: var(--gw-black) !important;
  color: var(--gw-white) !important;
}
.gw-needs__btn--ghost,
.gw-vd__btn-ghost-light {
  background: rgba(13, 22, 51, .12) !important;
  color: var(--gw-navy) !important;
  border-color: rgba(13, 22, 51, .28) !important;
}
.gw-needs__btn--ghost:hover,
.gw-vd__btn-ghost-light:hover {
  background: rgba(13, 22, 51, .2) !important;
  color: var(--gw-navy) !important;
}
.gw-opps__hero-pill {
  background: rgba(13, 22, 51, .1);
  border-color: rgba(13, 22, 51, .22);
  color: var(--gw-navy);
}

/* ── Scoped page brand tokens (replace blue) ─────────────────────── */
.gw-opps,
.gw-needs,
.gw-talent,
.gw-profile,
.gw-postings,
.gw-impact,
.gw-settings,
.gw-vd {
  --op-brand: var(--gw-yellow);
  --op-brand-dk: var(--gw-orange-dark);
  --n-brand: var(--gw-yellow);
  --n-brand-dk: var(--gw-orange-dark);
  --t-brand: var(--gw-yellow);
  --t-brand-dk: var(--gw-orange-dark);
  --pf-brand: var(--gw-yellow);
  --pf-brand-dk: var(--gw-orange-dark);
  --p-brand: var(--gw-yellow);
  --p-brand-dk: var(--gw-orange-dark);
  --im-brand: var(--gw-yellow);
  --im-brand-dk: var(--gw-orange-dark);
  --st-brand: var(--gw-yellow);
  --st-brand-dk: var(--gw-orange-dark);
  --vd-brand: var(--gw-yellow);
  --vd-brand-dk: var(--gw-orange-dark);
}

/* Buttons inside portal pages → navy text on yellow */
.gw-opps__apply-btn,
.gw-opps .gw-opp-card__apply,
.gw-needs__btn--solid,
.gw-talent__chip,
.gw-profile__btn--primary,
.gw-needs__chip.is-active,
.gw-opps__pill input:checked + span,
.gw-opps__pagination .page-numbers.current,
.gw-talent__pagination .page-numbers.current {
  color: var(--gw-navy) !important;
}
.gw-opps__apply-btn:hover,
.gw-opps .gw-opp-card__apply:hover,
.gw-needs__btn--solid:hover,
.gw-talent__chip:hover,
.gw-profile__btn--primary:hover {
  background: var(--gw-orange-dark) !important;
  color: var(--gw-white) !important;
}

/* Card title links & action links */
.gw-needs__card-title a,
.gw-needs__card-help,
.gw-opps .gw-opp-card__details:hover {
  color: var(--gw-orange-dark) !important;
}

/* Progress bars & charts */
.gw-progress-bar__fill,
.gw-vd__meter-fill,
.gw-settings__meter-fill {
  background: linear-gradient(90deg, var(--gw-yellow), var(--gw-orange)) !important;
}
.gw-impact__bar-col.is-current .gw-impact__bar {
  background: linear-gradient(180deg, var(--gw-yellow), var(--gw-orange)) !important;
}

/* Tabs & pagination (global) */
.gw-tab--active { color: var(--gw-navy-2); border-bottom-color: var(--gw-orange); }
.gw-pagination .page-numbers.current {
  background: linear-gradient(135deg, var(--gw-yellow), var(--gw-orange));
  border-color: var(--gw-orange-dark);
  color: var(--gw-navy);
}

/* Quick Post FAB → orange (brand accent) */
.gw-opps__quick-post {
  background: linear-gradient(135deg, var(--gw-orange), var(--gw-orange-dark)) !important;
  box-shadow: 0 12px 28px rgba(234, 88, 12, .4) !important;
}

/* Homepage — navy structure, yellow + orange highlights */
.hp-pillar-card--green { background: var(--gw-navy) !important; }
.hp-view-all { color: var(--gw-orange-dark) !important; border-bottom-color: var(--gw-yellow) !important; }
.hp-view-all:hover { color: var(--gw-navy) !important; }
.hp-check,
.hp-story-item__check { background: var(--gw-orange) !important; }
.hp-campaign-card__cta,
.hp-campaign-card:hover .hp-campaign-card__title { color: var(--gw-orange-dark) !important; }
.hp-step-card__icon { background: var(--gw-yellow-light) !important; color: var(--gw-navy) !important; }
.hp-feature-dark { background: var(--gw-black) !important; }

/* ── Elementor page editing ──────────────────────────────────────────────── */
.gw-main--elementor-full,
.gw-main--elementor-canvas {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
}
.gw-main--elementor-full .gw-page-content,
.gw-main--elementor-full .gw-elementor-canvas,
.gw-main--elementor-canvas .elementor {
  max-width: none;
  width: 100%;
}
.gw-elementor-canvas .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 1140px;
}
.gw-elementor-canvas-body {
  margin: 0;
  background: var(--gw-white, #fff);
}
.gw-elementor-canvas-body .gw-main--elementor-canvas {
  min-height: 100vh;
}
/* Let Elementor control spacing; avoid theme prose constraints */
.gw-elementor-page .gw-elementor-canvas.gw-prose,
.gw-elementor-page .gw-elementor-canvas {
  font-size: inherit;
  line-height: inherit;
}
.gw-elementor-page .gw-elementor-canvas > *:first-child {
  margin-top: 0;
}

/* Theme header — styles live in assets/css/header.css */

/* ── Dashicons visibility & sizing site-wide ─────────────────────────────── */
.dashicons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25em;
  height: 1.25em;
  font-size: 1.25em;
  line-height: 1;
  vertical-align: middle;
  flex-shrink: 0;
}
[class*="__meta"] .dashicons,
[class*="__meta-item"] .dashicons,
.gw-opp-card__meta-item .dashicons,
.gw-postings__item-meta .dashicons,
.gw-org-portal__nav-link .dashicons,
.gw-app-shell__nav-link .dashicons {
  margin-right: 0.25em;
  opacity: 0.85;
}
.gw-opp-card__icon .dashicons {
  font-size: 1.75rem;
  width: 1.75rem;
  height: 1.75rem;
  color: var(--gw-green);
}
.gw-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.gw-form__radio {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
}

/* Inline dashicons (links, homepage CTAs, event meta) */
.gw-inline-icon,
.hp-arrow.dashicons,
.hp-check.dashicons,
.hp-hero__badge-icon.dashicons,
.hp-event-card__meta .dashicons {
  font-size: 1.1em;
  width: 1.1em;
  height: 1.1em;
  line-height: 1;
  vertical-align: -0.15em;
}
.hp-btn-ghost .hp-arrow,
.hp-pillar-link .dashicons,
.hp-view-all .dashicons,
.hp-event-card__cta .dashicons,
.hp-campaign-card__cta .dashicons {
  margin-left: 0.15em;
  transition: transform var(--gw-transition, 200ms ease);
}
.hp-btn-ghost:hover .hp-arrow,
.hp-pillar-link:hover .dashicons,
.hp-view-all:hover .dashicons,
.hp-event-card__cta:hover .dashicons,
.hp-campaign-card:hover .dashicons {
  transform: translateX(3px);
}
.hp-event-card__meta .dashicons {
  margin-right: 0.2em;
  opacity: 0.85;
}
.hp-hero__badge-icon.dashicons {
  font-size: 1.75rem;
  width: 1.75rem;
  height: 1.75rem;
  color: var(--gw-green);
}
.hp-check.dashicons,
.hp-story-item__check .dashicons {
  color: var(--gw-green);
  font-size: 1.25rem;
  width: 1.25rem;
  height: 1.25rem;
}

/* Optional field markers on registration / forms */
.gw-form__optional {
  color: var(--gw-slate-500);
  font-weight: 500;
  font-size: 0.875em;
  font-style: italic;
}
.gw-form__hint--banner {
  margin: -0.5rem 0 1.25rem;
  padding: 0.65rem 0.85rem;
  background: var(--gw-slate-50);
  border: 1px solid var(--gw-slate-200);
  border-radius: var(--gw-radius-sm);
}
