/*
Theme Name: Guide for Veterans Child
Theme URI: https://guideforveterans.org/
Description: A warm, plain-English GeneratePress child theme for veteran help guides covering benefits, housing, food, health care, transportation, legal help, family needs, and urgent support.
Author: Guide for Veterans
Author URI: https://guideforveterans.org/
Template: generatepress
Version: 1.0.0
Text Domain: guideforveterans
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --gfv-color-ink: #18222f;
  --gfv-color-ink-soft: #3d4d60;
  --gfv-color-muted: #64748b;
  --gfv-color-paper: #fffaf1;
  --gfv-color-surface: #ffffff;
  --gfv-color-surface-warm: #fff3df;
  --gfv-color-border: #e8dcc9;
  --gfv-color-navy: #1e3a5f;
  --gfv-color-navy-dark: #13283f;
  --gfv-color-redwood: #9f422f;
  --gfv-color-redwood-dark: #753123;
  --gfv-color-gold: #d99a30;
  --gfv-color-sage: #5f7665;
  --gfv-color-info: #dbeafe;
  --gfv-color-warning: #fff2cc;
  --gfv-color-help: #e9f5ec;
  --gfv-color-tip: #eef7ff;
  --gfv-font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --gfv-font-body: "Atkinson Hyperlegible", Verdana, Tahoma, sans-serif;
  --gfv-space-1: .25rem;
  --gfv-space-2: .5rem;
  --gfv-space-3: .75rem;
  --gfv-space-4: 1rem;
  --gfv-space-5: 1.25rem;
  --gfv-space-6: 1.5rem;
  --gfv-space-8: 2rem;
  --gfv-space-10: 2.5rem;
  --gfv-space-12: 3rem;
  --gfv-space-16: 4rem;
  --gfv-radius-sm: .5rem;
  --gfv-radius-md: .85rem;
  --gfv-radius-lg: 1.25rem;
  --gfv-radius-xl: 1.75rem;
  --gfv-shadow-sm: 0 2px 8px rgba(24, 34, 47, .08);
  --gfv-shadow-md: 0 12px 30px rgba(24, 34, 47, .12);
  --gfv-shadow-focus: 0 0 0 4px rgba(217, 154, 48, .35);
  --gfv-transition-fast: 140ms ease;
  --gfv-transition-base: 220ms ease;
  --gfv-max: 1180px;
}

html { scroll-behavior: smooth; }
body {
  background: var(--gfv-color-paper);
  color: var(--gfv-color-ink);
  font-family: var(--gfv-font-body);
  font-size: 18px;
  line-height: 1.65;
}
body, button, input, select, textarea { font-family: var(--gfv-font-body); }

h1, h2, h3, .gfv-kicker, .main-title, .site-title {
  font-family: var(--gfv-font-display);
  color: var(--gfv-color-ink);
  line-height: 1.08;
}
h1 { font-size: clamp(2.3rem, 6vw, 5.25rem); letter-spacing: -.04em; }
h2 { font-size: clamp(1.75rem, 4vw, 3.05rem); letter-spacing: -.03em; }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.65rem); letter-spacing: -.015em; }
p { margin-bottom: 1rem; }
a { color: var(--gfv-color-redwood-dark); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--gfv-color-navy); }

.skip-link {
  position: absolute;
  left: -999px;
  top: var(--gfv-space-3);
  z-index: 99999;
  padding: var(--gfv-space-3) var(--gfv-space-4);
  background: var(--gfv-color-navy);
  color: #fff;
  border-radius: var(--gfv-radius-sm);
}
.skip-link:focus { left: var(--gfv-space-3); outline: 0; }

:focus-visible {
  outline: 3px solid var(--gfv-color-gold);
  outline-offset: 3px;
  box-shadow: var(--gfv-shadow-focus);
}

.gfv-container { width: min(100% - 2rem, var(--gfv-max)); margin-inline: auto; }
.gfv-section { padding: var(--gfv-space-16) 0; }
.gfv-section--tight { padding: var(--gfv-space-10) 0; }
.gfv-eyebrow, .gfv-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--gfv-space-2);
  margin-bottom: var(--gfv-space-3);
  color: var(--gfv-color-redwood-dark);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .82rem;
}
.gfv-lead { color: var(--gfv-color-ink-soft); font-size: clamp(1.1rem, 2.4vw, 1.35rem); max-width: 780px; }
.gfv-muted { color: var(--gfv-color-muted); }

.gfv-alert {
  background: var(--gfv-color-navy-dark);
  color: #fff;
  font-size: .95rem;
  line-height: 1.45;
  padding: .65rem 1rem;
}
.gfv-alert__inner {
  width: min(100% - 2rem, var(--gfv-max));
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  align-items: center;
  justify-content: space-between;
}
.gfv-alert a { color: #fff4bf; font-weight: 800; }
.gfv-alert strong { color: #fff; }

.site-header, .main-navigation { background: var(--gfv-color-paper) !important; }
.main-navigation .main-nav ul li a { font-weight: 800; }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--gfv-color-redwood-dark); }

body.gfv-front-page .site-content,
body.gfv-front-page .inside-article,
body.gfv-front-page .entry-content,
body.gfv-front-page .container.grid-container,
body.gfv-front-page .site-main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.gfv-front-page .entry-header { display: none; }
body.gfv-front-page .content-area { width: 100% !important; }
body.gfv-front-page .site.grid-container { max-width: none; }

.gfv-hero {
  position: relative;
  isolation: isolate;
  min-height: 680px;
  display: flex;
  align-items: center;
  overflow: clip;
  background:
    linear-gradient(90deg, rgba(255,250,241,.98) 0%, rgba(255,250,241,.92) 44%, rgba(255,250,241,.18) 72%),
    linear-gradient(180deg, rgba(30,58,95,.18), rgba(159,66,47,.15)),
    var(--gfv-hero-image, none),
    radial-gradient(circle at 75% 20%, #f4d8aa, transparent 30%),
    linear-gradient(135deg, #fffaf1, #efe0c9);
  background-size: cover;
  background-position: center;
}
.gfv-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 130px;
  background: linear-gradient(0deg, var(--gfv-color-paper), transparent);
  z-index: -1;
}
.gfv-hero__grid {
  width: min(100% - 2rem, var(--gfv-max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .72fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
  padding: var(--gfv-space-16) 0;
}
.gfv-hero__copy { max-width: 790px; }
.gfv-hero__copy p { max-width: 720px; }
.gfv-hero__actions,
.gfv-action-row { display: flex; flex-wrap: wrap; gap: var(--gfv-space-3); margin-top: var(--gfv-space-6); }
.gfv-button, .gfv-button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: .78rem 1.1rem;
  border-radius: 999px;
  border: 2px solid transparent;
  background: var(--gfv-color-redwood);
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  box-shadow: var(--gfv-shadow-sm);
  transition: transform var(--gfv-transition-fast), box-shadow var(--gfv-transition-fast), background var(--gfv-transition-fast);
}
.gfv-button:hover { color: #fff; background: var(--gfv-color-redwood-dark); transform: translateY(-1px); box-shadow: var(--gfv-shadow-md); }
.gfv-button--secondary, .gfv-button--secondary:visited { background: transparent; color: var(--gfv-color-navy); border-color: var(--gfv-color-navy); box-shadow: none; }
.gfv-button--secondary:hover { color: #fff; background: var(--gfv-color-navy); }
.gfv-button--light, .gfv-button--light:visited { background: #fff; color: var(--gfv-color-navy); border-color: #fff; }
.gfv-button--light:hover { background: var(--gfv-color-surface-warm); color: var(--gfv-color-redwood-dark); }

.gfv-hero__panel {
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(232,220,201,.8);
  border-radius: var(--gfv-radius-xl);
  padding: clamp(1.2rem, 3vw, 2rem);
  box-shadow: var(--gfv-shadow-md);
  backdrop-filter: blur(8px);
}
.gfv-quick-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gfv-space-3); }
.gfv-quick-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gfv-space-3);
  padding: .85rem 1rem;
  background: var(--gfv-color-paper);
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-md);
  color: var(--gfv-color-ink);
  font-weight: 800;
  text-decoration: none;
}
.gfv-quick-list a:hover { border-color: var(--gfv-color-redwood); background: #fff; }
.gfv-fine-print { font-size: .92rem; color: var(--gfv-color-ink-soft); }

.gfv-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gfv-space-4); }
.gfv-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--gfv-space-5);
  background: var(--gfv-color-surface);
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-lg);
  box-shadow: var(--gfv-shadow-sm);
  color: var(--gfv-color-ink);
  text-decoration: none;
  transition: transform var(--gfv-transition-base), box-shadow var(--gfv-transition-base), border-color var(--gfv-transition-base);
}
.gfv-card:hover { transform: translateY(-2px); box-shadow: var(--gfv-shadow-md); border-color: rgba(159,66,47,.45); color: var(--gfv-color-ink); }
.gfv-card__icon {
  width: 2.85rem;
  height: 2.85rem;
  display: grid;
  place-items: center;
  margin-bottom: var(--gfv-space-4);
  border-radius: 1rem;
  background: var(--gfv-color-surface-warm);
  font-size: 1.45rem;
}
.gfv-card p { color: var(--gfv-color-ink-soft); margin-bottom: 0; }
.gfv-card__cta { margin-top: auto; padding-top: var(--gfv-space-4); color: var(--gfv-color-redwood-dark); font-weight: 900; }

.gfv-section-header { display: flex; align-items: end; justify-content: space-between; gap: var(--gfv-space-6); margin-bottom: var(--gfv-space-8); }
.gfv-section-header p { margin-bottom: 0; }

.gfv-article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gfv-space-5); }
.gfv-article-card {
  background: var(--gfv-color-surface);
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-lg);
  overflow: hidden;
  box-shadow: var(--gfv-shadow-sm);
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.gfv-article-card__media { aspect-ratio: 16 / 9; background: var(--gfv-color-surface-warm); display: grid; place-items: center; font-size: 3rem; }
.gfv-article-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gfv-article-card__body { padding: var(--gfv-space-5); }
.gfv-article-card__cat { display: inline-flex; font-size: .82rem; color: var(--gfv-color-redwood-dark); font-weight: 900; margin-bottom: var(--gfv-space-2); text-transform: uppercase; letter-spacing: .06em; }
.gfv-article-card h3 { margin: 0 0 var(--gfv-space-3); }
.gfv-article-card h3 a { color: var(--gfv-color-ink); text-decoration: none; }
.gfv-article-card h3 a:hover { color: var(--gfv-color-redwood-dark); text-decoration: underline; }

.gfv-trust-band {
  background: var(--gfv-color-navy);
  color: #fff;
  border-radius: var(--gfv-radius-xl);
  padding: clamp(1.5rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: var(--gfv-space-8);
  align-items: center;
}
.gfv-trust-band h2, .gfv-trust-band h3 { color: #fff; }
.gfv-trust-band a { color: #fff4bf; }
.gfv-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--gfv-space-3); }
.gfv-checks li { padding-left: 2rem; position: relative; }
.gfv-checks li::before { content: "✓"; position: absolute; left: 0; top: .05rem; color: #ffe7a3; font-weight: 900; }

.gfv-newsletter {
  background: linear-gradient(135deg, var(--gfv-color-surface-warm), #fff);
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-xl);
  padding: clamp(1.5rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--gfv-space-6);
  align-items: center;
}
.gfv-newsletter__placeholder {
  min-width: min(100%, 380px);
  background: #fff;
  border: 2px dashed var(--gfv-color-border);
  border-radius: var(--gfv-radius-lg);
  padding: var(--gfv-space-5);
  color: var(--gfv-color-ink-soft);
}

.gfv-page { padding: var(--gfv-space-12) 0 var(--gfv-space-16); }
.gfv-page__wrap { width: min(100% - 2rem, 880px); margin-inline: auto; }
.gfv-page__wrap > h1 { margin-bottom: var(--gfv-space-4); }
.gfv-page__wrap h2 { margin-top: var(--gfv-space-10); }
.gfv-page__wrap ul, .gfv-page__wrap ol { padding-left: 1.3rem; }
.gfv-page__box {
  background: #fff;
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-lg);
  padding: var(--gfv-space-6);
  box-shadow: var(--gfv-shadow-sm);
}

.hsp-callout {
  margin: var(--gfv-space-6) 0;
  padding: var(--gfv-space-5);
  border-left: 6px solid var(--gfv-color-navy);
  border-radius: var(--gfv-radius-md);
  background: var(--gfv-color-info);
}
.hsp-callout--tip { background: var(--gfv-color-tip); border-left-color: #2b6cb0; }
.hsp-callout--warning { background: var(--gfv-color-warning); border-left-color: #b7791f; }
.hsp-callout--info { background: var(--gfv-color-info); border-left-color: #2563eb; }
.hsp-callout--help { background: var(--gfv-color-help); border-left-color: var(--gfv-color-sage); }
.hsp-resource-box {
  margin: var(--gfv-space-6) 0;
  padding: var(--gfv-space-5);
  border: 1px solid var(--gfv-color-border);
  border-radius: var(--gfv-radius-lg);
  background: #fff;
  box-shadow: var(--gfv-shadow-sm);
}
.hsp-resource-box__title { display: block; font-family: var(--gfv-font-display); font-weight: 900; font-size: 1.35rem; color: var(--gfv-color-ink); }
.hsp-resource-box__url { word-break: break-word; font-size: .94rem; }

.gfv-footer {
  background: var(--gfv-color-ink);
  color: #f9fafb;
  padding: var(--gfv-space-12) 0 var(--gfv-space-8);
}
.gfv-footer a { color: #fff4bf; }
.gfv-footer__grid { width: min(100% - 2rem, var(--gfv-max)); margin-inline: auto; display: grid; grid-template-columns: 1.15fr repeat(3, .7fr); gap: var(--gfv-space-8); }
.gfv-footer h2, .gfv-footer h3 { color: #fff; }
.gfv-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.gfv-footer__bottom { width: min(100% - 2rem, var(--gfv-max)); margin: var(--gfv-space-8) auto 0; padding-top: var(--gfv-space-5); border-top: 1px solid rgba(255,255,255,.16); color: #dbe2ea; font-size: .92rem; }
.site-info { display: none; }

@media (max-width: 980px) {
  .gfv-hero__grid, .gfv-trust-band, .gfv-newsletter { grid-template-columns: 1fr; }
  .gfv-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gfv-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gfv-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body { font-size: 17px; }
  .gfv-hero { min-height: auto; }
  .gfv-hero__grid { padding: var(--gfv-space-10) 0; }
  .gfv-card-grid, .gfv-article-grid, .gfv-footer__grid { grid-template-columns: 1fr; }
  .gfv-section-header { align-items: start; flex-direction: column; }
  .gfv-alert__inner { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
