/*
Theme Name: SeniorHelp.art
Theme URI: https://seniorhelp.art/
Description: A GeneratePress child theme for SeniorHelp.art, a visual resource library for seniors, caregivers, and families. Includes embedded page templates for infographics, checklists, toolkits, fact sheets, cheat sheets, legal pages, and accessibility pages.
Author: SeniorHelp.art
Author URI: https://seniorhelp.art/
Template: generatepress
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: seniorhelp-art
*/

:root {
  --sha-ink: #1f2a28;
  --sha-text: #2c3432;
  --sha-muted: #5c6b67;
  --sha-soft: #f7f1e7;
  --sha-card: #fffdf8;
  --sha-paper: #fffaf0;
  --sha-line: #ded2be;
  --sha-brand: #285c4d;
  --sha-brand-dark: #183d34;
  --sha-brand-soft: #dcebe5;
  --sha-accent: #b46b43;
  --sha-accent-soft: #fae6d8;
  --sha-warning: #7b3f22;
  --sha-warning-soft: #fff0df;
  --sha-info: #28526b;
  --sha-info-soft: #e4f1f7;
  --sha-help: #4a3f74;
  --sha-help-soft: #ece8f7;
  --sha-success: #315f3e;
  --sha-success-soft: #e4f2e8;
  --sha-white: #ffffff;
  --sha-radius-sm: 8px;
  --sha-radius: 14px;
  --sha-radius-lg: 24px;
  --sha-shadow: 0 12px 32px rgba(36, 32, 26, 0.10);
  --sha-shadow-soft: 0 8px 20px rgba(36, 32, 26, 0.07);
  --sha-space-1: 0.35rem;
  --sha-space-2: 0.65rem;
  --sha-space-3: 1rem;
  --sha-space-4: 1.5rem;
  --sha-space-5: 2rem;
  --sha-space-6: 3rem;
  --sha-max: 1180px;
  --sha-content: 840px;
  --sha-font-heading: Georgia, 'Times New Roman', serif;
  --sha-font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sha-ease: 180ms ease;
}

html { scroll-behavior: smooth; }
body {
  color: var(--sha-text);
  background: #fbf8f1;
  font-family: var(--sha-font-body);
  font-size: 18px;
  line-height: 1.65;
}
body, button, input, select, textarea { font-family: var(--sha-font-body); }
h1, h2, h3, h4, .sha-kicker, .sha-card-title {
  color: var(--sha-ink);
  font-family: var(--sha-font-heading);
  line-height: 1.15;
}
h1 { font-size: clamp(2.25rem, 6vw, 4.6rem); letter-spacing: -0.035em; }
h2 { font-size: clamp(1.85rem, 4vw, 3.1rem); letter-spacing: -0.025em; }
h3 { font-size: clamp(1.35rem, 3vw, 2rem); letter-spacing: -0.015em; }
p { margin-top: 0; }
a { color: var(--sha-brand); text-underline-offset: 0.18em; }
a:hover { color: var(--sha-brand-dark); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #d7894c;
  outline-offset: 4px;
  border-radius: 4px;
}
img { max-width: 100%; height: auto; }
.skip-link {
  position: absolute;
  left: -999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.skip-link:focus {
  left: 1rem;
  top: 1rem;
  width: auto;
  height: auto;
  z-index: 99999;
  background: var(--sha-brand-dark);
  color: #fff;
  padding: .75rem 1rem;
  border-radius: var(--sha-radius-sm);
}

/* SeniorHelp full-width layout fixes for GeneratePress.
   GeneratePress uses #content as a flex container for content + sidebars.
   These templates are complete full-width screens, so force a normal stacked flow. */
body.seniorhelp-layout { overflow-x: hidden; }
body.seniorhelp-layout #page,
body.seniorhelp-layout .site,
body.seniorhelp-layout .site-content,
body.seniorhelp-layout .content-area,
body.seniorhelp-layout .site-main {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.seniorhelp-layout .site-content {
  display: block !important;
}
body.seniorhelp-layout .inside-article {
  padding: 0 !important;
}
body.seniorhelp-layout .sha-primary {
  display: block;
}
body.seniorhelp-layout .site-header .inside-header {
  width: min(var(--sha-max), calc(100% - 2rem));
  max-width: var(--sha-max);
  margin-inline: auto;
  padding: 1rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
body.seniorhelp-layout .site-branding,
body.seniorhelp-layout .site-logo {
  flex: 0 0 auto;
}
body.seniorhelp-layout .main-navigation {
  flex: 1 1 auto;
}
body.seniorhelp-layout .main-navigation .main-nav > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .15rem .55rem;
}
body.seniorhelp-layout .main-navigation .main-nav ul li a {
  padding: .55rem .45rem;
  font-size: .95rem;
  line-height: 1.25;
}
body.seniorhelp-layout .main-title {
  font-weight: 900;
  line-height: 1.05;
}
body.seniorhelp-layout .main-title a {
  color: var(--sha-ink);
}
body.seniorhelp-layout .site-description {
  display: none;
}

.site-content, .inside-article { background: transparent; }
.page-template .inside-article, .single-resource .inside-article, .post-type-archive-resource .inside-article { padding: 0; }
.full-width-content .container.grid-container { max-width: none; }
.separate-containers .site-main { margin-top: 0; }
.sha-wrap { width: min(var(--sha-max), calc(100% - 2rem)); margin-inline: auto; }
.sha-narrow { width: min(var(--sha-content), calc(100% - 2rem)); margin-inline: auto; }
.sha-section { padding: clamp(2.5rem, 7vw, 5.5rem) 0; }
.sha-section-tight { padding: clamp(1.75rem, 4vw, 3rem) 0; }
.sha-subtitle { max-width: 760px; font-size: clamp(1.05rem, 2vw, 1.3rem); color: var(--sha-muted); }
.sha-lede { font-size: clamp(1.1rem, 2vw, 1.35rem); color: var(--sha-muted); max-width: 800px; }
.sha-kicker { display: inline-block; font-size: 1rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sha-accent); margin-bottom: .7rem; }
.sha-note-bar {
  background: var(--sha-brand-dark);
  color: #fff;
  font-size: 0.96rem;
  padding: .75rem 0;
}
.sha-note-bar a { color: #fff; font-weight: 700; }
.sha-note-bar p { margin: 0; }
.sha-hero {
  background:
    radial-gradient(circle at 15% 20%, rgba(180, 107, 67, .13), transparent 28%),
    radial-gradient(circle at 85% 10%, rgba(40, 92, 77, .14), transparent 30%),
    linear-gradient(135deg, #fff9ed 0%, #eef6f1 100%);
  border-bottom: 1px solid var(--sha-line);
  padding: clamp(3rem, 9vw, 7rem) 0;
}
.sha-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.sha-hero-panel {
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(222,210,190,.9);
  border-radius: var(--sha-radius-lg);
  padding: clamp(1.3rem, 3vw, 2rem);
  box-shadow: var(--sha-shadow);
}
.sha-hero-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .85rem; }
.sha-hero-list li { display: flex; gap: .7rem; align-items: flex-start; }
.sha-hero-list span { display: inline-flex; width: 1.75rem; height: 1.75rem; border-radius: 999px; background: var(--sha-brand-soft); align-items: center; justify-content: center; flex: 0 0 auto; }
.sha-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.5rem; }
.sha-button, .button.sha-button, a.sha-button, button.sha-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .82rem 1.12rem;
  border: 2px solid var(--sha-brand);
  border-radius: 999px;
  background: var(--sha-brand);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--sha-ease), background var(--sha-ease), border-color var(--sha-ease);
}
.sha-button:hover { color: #fff; background: var(--sha-brand-dark); border-color: var(--sha-brand-dark); transform: translateY(-1px); }
.sha-button.secondary { background: transparent; color: var(--sha-brand-dark); border-color: var(--sha-brand); }
.sha-button.secondary:hover { background: var(--sha-brand-soft); color: var(--sha-brand-dark); }
.sha-button.light { background: #fff; color: var(--sha-brand-dark); border-color: #fff; }
.sha-button.light:hover { background: var(--sha-soft); color: var(--sha-brand-dark); border-color: var(--sha-soft); }
.sha-safe-note {
  margin-top: 1rem;
  padding: .9rem 1rem;
  background: #fff;
  border-left: 5px solid var(--sha-accent);
  border-radius: 0 var(--sha-radius-sm) var(--sha-radius-sm) 0;
  color: var(--sha-muted);
  font-size: .98rem;
}
.sha-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.sha-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sha-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sha-card, .sha-resource-card, .sha-download-card, .sha-callout, .sha-table-wrap {
  background: var(--sha-card);
  border: 1px solid var(--sha-line);
  border-radius: var(--sha-radius);
  box-shadow: var(--sha-shadow-soft);
}
.sha-card, .sha-resource-card { padding: 1.25rem; }
.sha-card-icon { font-size: 2rem; line-height: 1; margin-bottom: .75rem; }
.sha-card-title { font-size: 1.35rem; font-weight: 800; margin: 0 0 .35rem; }
.sha-card p, .sha-resource-card p { color: var(--sha-muted); }
.sha-card-link { font-weight: 800; }
.sha-type-labels { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
.sha-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border: 1px solid var(--sha-line);
  border-radius: 999px;
  padding: .2rem .6rem;
  background: #fff;
  font-size: .85rem;
  font-weight: 800;
  color: var(--sha-muted);
}
.sha-feature-band {
  background: var(--sha-brand-dark);
  color: #fff;
  border-radius: var(--sha-radius-lg);
  padding: clamp(1.5rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 1.5rem;
  align-items: center;
}
.sha-feature-band h2, .sha-feature-band h3 { color: #fff; }
.sha-feature-band p { color: rgba(255,255,255,.88); }
.sha-panel-list { margin: 0; padding-left: 1.1rem; display: grid; gap: .4rem; }
.sha-mini-list { display: grid; gap: .7rem; margin: 1rem 0; }
.sha-mini-list div { padding: .85rem; background: rgba(255,255,255,.12); border-radius: var(--sha-radius-sm); }
.sha-library-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background: var(--sha-paper);
  border: 1px solid var(--sha-line);
  border-radius: var(--sha-radius);
  margin-bottom: 1.5rem;
}
.sha-search-input {
  width: min(100%, 360px);
  min-height: 48px;
  border: 2px solid var(--sha-line);
  border-radius: 999px;
  padding: .75rem 1rem;
  background: #fff;
  color: var(--sha-text);
}
.sha-filter-pills { display: flex; flex-wrap: wrap; gap: .45rem; }
.sha-filter-pills a { text-decoration: none; }
.sha-resource-card { display: flex; flex-direction: column; gap: .7rem; }
.sha-resource-card .sha-button { margin-top: auto; width: fit-content; }
.sha-resource-card-header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.sha-resource-icon { font-size: 2.2rem; line-height: 1; }
.sha-download-card { padding: 1.2rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
.sha-download-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.sha-callout { padding: 1rem 1.1rem; margin: 1.25rem 0; border-left: 6px solid var(--sha-brand); }
.sha-callout.tip { background: var(--sha-success-soft); border-left-color: var(--sha-success); }
.sha-callout.warning, .sha-callout.urgent { background: var(--sha-warning-soft); border-left-color: var(--sha-warning); }
.sha-callout.info { background: var(--sha-info-soft); border-left-color: var(--sha-info); }
.sha-callout.help { background: var(--sha-help-soft); border-left-color: var(--sha-help); }
.sha-checklist { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .6rem; }
.sha-checklist li { display: flex; gap: .65rem; align-items: flex-start; padding: .75rem; background: #fff; border: 1px solid var(--sha-line); border-radius: var(--sha-radius-sm); }
.sha-check { flex: 0 0 auto; width: 1.4rem; height: 1.4rem; border: 2px solid var(--sha-brand); border-radius: .25rem; margin-top: .15rem; }
.sha-table-wrap { overflow-x: auto; margin: 1.25rem 0; }
.sha-table-wrap table { width: 100%; border-collapse: collapse; background: #fff; min-width: 680px; }
.sha-table-wrap caption { text-align: left; font-weight: 900; font-size: 1.25rem; padding: 1rem; color: var(--sha-ink); }
.sha-table-wrap th, .sha-table-wrap td { padding: .9rem 1rem; border-top: 1px solid var(--sha-line); vertical-align: top; text-align: left; }
.sha-table-wrap th { background: var(--sha-brand-soft); color: var(--sha-brand-dark); }
.sha-page-hero { background: linear-gradient(135deg, #fff9ed, #eef6f1); border-bottom: 1px solid var(--sha-line); padding: clamp(2.5rem, 7vw, 5.5rem) 0; }
.sha-page-shell { padding: clamp(2rem, 5vw, 4rem) 0; }
.sha-content-box { background: var(--sha-card); border: 1px solid var(--sha-line); border-radius: var(--sha-radius-lg); padding: clamp(1.3rem, 4vw, 2.5rem); box-shadow: var(--sha-shadow-soft); }
.sha-content-box h2 { margin-top: 1.4rem; }
.sha-content-box h2:first-child { margin-top: 0; }
.sha-footer { background: var(--sha-ink); color: rgba(255,255,255,.84); padding: clamp(2.5rem, 6vw, 4rem) 0 1.5rem; }
.sha-footer a { color: #fff; }
.sha-footer h2, .sha-footer h3 { color: #fff; font-size: 1.2rem; }
.sha-footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 1.5rem; }
.sha-footer ul { list-style: none; padding: 0; margin: .65rem 0 0; display: grid; gap: .35rem; }
.sha-footer-bottom { border-top: 1px solid rgba(255,255,255,.16); margin-top: 2rem; padding-top: 1rem; font-size: .95rem; color: rgba(255,255,255,.72); }
.sha-print-only { display: none; }
.sha-empty { padding: 1.5rem; background: var(--sha-paper); border: 1px dashed var(--sha-line); border-radius: var(--sha-radius); }


@media (max-width: 980px) {
  body.seniorhelp-layout .site-header .inside-header {
    display: block;
  }
  body.seniorhelp-layout .main-navigation .main-nav > ul {
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  body.seniorhelp-layout .site-header .inside-header {
    width: min(var(--sha-max), calc(100% - 1.25rem));
  }
  body.seniorhelp-layout .main-navigation .main-nav ul li a {
    padding: .5rem .35rem;
    font-size: .92rem;
  }
}

@media (max-width: 900px) {
  .sha-hero-grid, .sha-feature-band, .sha-footer-grid { grid-template-columns: 1fr; }
  .sha-grid, .sha-grid.two, .sha-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body { font-size: 17px; }
  .sha-grid, .sha-grid.two, .sha-grid.four { grid-template-columns: 1fr; }
  .sha-download-card { grid-template-columns: 1fr; }
  .sha-actions .sha-button { width: 100%; }
  .sha-table-wrap table, .sha-table-wrap thead, .sha-table-wrap tbody, .sha-table-wrap th, .sha-table-wrap td, .sha-table-wrap tr { display: block; min-width: 0; }
  .sha-table-wrap thead { display: none; }
  .sha-table-wrap tr { border-top: 1px solid var(--sha-line); padding: .5rem 0; }
  .sha-table-wrap td { border: 0; padding: .55rem 1rem; }
  .sha-table-wrap td::before { content: attr(data-label); display: block; font-weight: 900; color: var(--sha-brand-dark); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media print {
  body { background: #fff; color: #000; font-size: 12pt; line-height: 1.4; }
  .site-header, .main-navigation, .sha-note-bar, .sha-hero, .sha-page-hero, .sha-footer, .sha-actions, .sha-button, .sha-library-toolbar, .no-print { display: none !important; }
  .sha-section, .sha-section-tight, .sha-page-shell { padding: 0 !important; }
  .sha-wrap, .sha-narrow { width: 100% !important; margin: 0 !important; }
  .sha-content-box, .sha-card, .sha-resource-card, .sha-callout, .sha-table-wrap { box-shadow: none !important; border: 1px solid #333 !important; background: #fff !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; }
  .sha-print-only { display: block !important; }
  .sha-table-wrap { overflow: visible; }
  .sha-table-wrap table { min-width: 0; }
}


/* 1.0.2 compact homepage fixes.
   The first build used oversized landing-page spacing. SeniorHelp.art is a practical
   resource library, so sections must stay tight and readable without giant blank gaps. */
body {
  font-size: 17px;
  line-height: 1.55;
}
.sha-main h1,
.sha-main h2,
.sha-main h3,
.sha-main p {
  margin-top: 0;
}
.sha-main h1 {
  font-size: clamp(2.25rem, 4.8vw, 3.65rem);
  line-height: 1.05;
  margin-bottom: .8rem;
  max-width: 900px;
}
.sha-main h2 {
  font-size: clamp(1.75rem, 3.2vw, 2.45rem);
  line-height: 1.12;
  margin-bottom: .65rem;
}
.sha-main h3,
.sha-card-title {
  font-size: clamp(1.18rem, 2vw, 1.45rem);
  line-height: 1.18;
}
.sha-main p {
  margin-bottom: .75rem;
}
.sha-wrap {
  width: min(1120px, calc(100% - 2rem));
}
.sha-section {
  padding: clamp(1.6rem, 3.6vw, 3rem) 0;
}
.sha-section-tight {
  padding: clamp(1.15rem, 2.6vw, 2.1rem) 0;
}
.sha-hero {
  padding: clamp(2rem, 4.8vw, 4rem) 0 clamp(2rem, 4vw, 3rem);
}
.sha-hero-grid {
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
}
.sha-hero-panel {
  padding: clamp(1rem, 2vw, 1.45rem);
}
.sha-hero-panel h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}
.sha-hero-list {
  gap: .55rem;
  margin-top: .65rem;
}
.sha-hero-list li {
  gap: .55rem;
  line-height: 1.45;
}
.sha-hero-list span {
  width: 1.45rem;
  height: 1.45rem;
  font-size: .8rem;
}
.sha-lede,
.sha-subtitle {
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.55;
  margin-bottom: .9rem;
}
.sha-kicker {
  font-size: .88rem;
  line-height: 1.2;
  margin-bottom: .5rem;
}
.sha-actions {
  margin-top: 1rem;
  gap: .65rem;
}
.sha-safe-note {
  margin-top: .9rem;
  padding: .72rem .85rem;
  font-size: .92rem;
  line-height: 1.45;
}
.sha-grid {
  gap: .85rem;
}
.sha-card,
.sha-resource-card {
  padding: 1rem;
}
.sha-card-icon,
.sha-resource-icon {
  font-size: 1.45rem;
  margin-bottom: .45rem;
}
.sha-card p,
.sha-resource-card p {
  line-height: 1.5;
  margin-bottom: .55rem;
}
.sha-feature-band {
  padding: clamp(1.15rem, 2.5vw, 1.9rem);
  gap: 1rem;
}
.sha-mini-list {
  gap: .45rem;
  margin: .45rem 0 0;
}
.sha-mini-list div {
  padding: .65rem .75rem;
  line-height: 1.35;
}
.sha-button,
.button.sha-button,
a.sha-button,
button.sha-button {
  min-height: 42px;
  padding: .62rem .95rem;
  font-size: .93rem;
}
.sha-footer {
  padding: clamp(1.75rem, 4vw, 3rem) 0 1rem;
}
.sha-footer-grid {
  gap: 1rem;
}
.sha-footer-bottom {
  margin-top: 1.25rem;
}
.sha-page-hero {
  padding: clamp(1.8rem, 4vw, 3rem) 0;
}
.sha-page-shell {
  padding: clamp(1.5rem, 3.5vw, 3rem) 0;
}
@media (min-width: 901px) {
  .sha-hero-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .55fr);
  }
}
@media (max-width: 900px) {
  .sha-section {
    padding: 1.35rem 0;
  }
  .sha-section-tight {
    padding: 1rem 0;
  }
  .sha-hero {
    padding: 1.5rem 0;
  }
}
@media (max-width: 640px) {
  body {
    font-size: 16px;
  }
  .sha-wrap,
  .sha-narrow {
    width: min(100% - 1.25rem, 1120px);
  }
  .sha-main h1 {
    font-size: clamp(2rem, 11vw, 2.75rem);
  }
  .sha-main h2 {
    font-size: clamp(1.55rem, 8vw, 2.05rem);
  }
  .sha-card,
  .sha-resource-card,
  .sha-hero-panel {
    padding: .9rem;
  }
}
