/* ============================================================
   The Good Care Helpers — EEOICPA Tennessee funnel
   Shared stylesheet. No external fonts, no third-party scripts.

   Built for a readership that skews 70+, often reading on a phone
   handed over by an adult child. Sizes below are deliberate floors,
   not defaults to taste-adjust downward.
   ============================================================ */

:root{
  /* ── The Good Care Helpers — Burgundy + Gold ──
     Matched to the TGCH corporate palette. Contrast checked against the
     page background, not assumed:
       burgundy on warm white .......... 11.5:1  (body text, headings, links)
       white on burgundy ............... 12.3:1  (primary buttons)
       warm white on burgundy-black .... 17.5:1  (footer)
       gold on warm white ............... 2.0:1  ← FAILS. Never text, never a
                                                   button fill. Rules, borders
                                                   and decoration only.
       gold on burgundy ................. 5.9:1  (safe on dark burgundy only)
  */
  --burgundy:#6B0F1A;
  --burgundy-mid:#8A1A28;
  --burgundy-deep:#4A0810;
  --burgundy-black:#2A0509;
  --gold:#D4AF37;
  --gold-light:#F0D77E;
  --gold-deep:#A8841F;

  --ink:#2C2A23;            /* warm near-black, 13.5:1 */
  --ink-soft:#4A4639;       /* 8.8:1 */
  --rule:#DAD3C4;
  --bg:#FBF7F1;             /* warm white — the page is not stark white */
  --bg-soft:#F4EFE6;
  --bg-card:#FFFFFF;        /* cards lift off the warm background */

  --accent:var(--burgundy);
  --accent-dark:var(--burgundy-deep);
  --accent-soft:#F7EDEE;    /* pale burgundy tint for callouts */
  --focus:#8C6B16;          /* gold-ink — visible on both light and dark */
  --maxw:680px;

  --serif:'Source Serif 4',Georgia,'Iowan Old Style','Palatino Linotype',serif;
  --sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

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

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--sans);
  font-size:19px;              /* floor for mobile */
  line-height:1.65;
  color:var(--ink);
  background:var(--bg);
}
@media (min-width:768px){ body{ font-size:20px; } }

/* ---------- layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 16px; }  /* 16px gutter */
section{ padding:40px 0; }
@media (min-width:768px){ section{ padding:56px 0; } }
.section-soft{ background:var(--bg-soft); }

/* ---------- typography ---------- */
h1,h2,h3{ font-family:var(--serif); line-height:1.25; margin:0 0 .5em; font-weight:700; color:var(--burgundy); }
h1{ letter-spacing:-.015em; }
h1{ font-size:32px; letter-spacing:-.01em; }
h2{ font-size:25px; margin-top:1.4em; }
h3{ font-size:21px; margin-top:1.2em; }
@media (min-width:768px){
  h1{ font-size:44px; }
  h2{ font-size:28px; }
}
p,li{ margin:0 0 1em; }
ul,ol{ padding-left:1.3em; }
li{ margin-bottom:.5em; }
strong{ font-weight:700; }
a{ color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
a:hover{ color:var(--accent-dark); }
.lead{ font-size:21px; }
@media (min-width:768px){ .lead{ font-size:23px; } }
.small{ font-size:17px; color:var(--ink-soft); }

/* Visible focus everywhere. Do not remove. */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:2px;
}

.skip{
  position:absolute; left:-9999px; top:0;
  background:var(--accent); color:#fff; padding:12px 16px; z-index:100;
}
.skip:focus{ left:0; }

/* ---------- header ---------- */
.site-header{
  background:var(--bg-card);
  border-top:4px solid var(--gold);          /* decorative only — never text */
  border-bottom:1px solid var(--rule);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:64px; padding-top:8px; padding-bottom:8px;
}
.brand{ font-family:var(--serif); font-weight:700; font-size:19px; color:var(--burgundy); text-decoration:none; }
.header-phone{
  font-size:18px; font-weight:600; color:var(--ink); white-space:nowrap;
  display:flex; align-items:center; min-height:44px; padding:0 4px;  /* standalone target */
}

/* ---------- buttons: 56px min, full width on mobile ---------- */
.btn{
  display:block; width:100%; min-height:56px;
  padding:14px 24px;
  font-size:20px; font-weight:700; font-family:inherit;
  line-height:1.3; text-align:center; text-decoration:none;
  border-radius:6px; border:2px solid var(--accent);
  cursor:pointer;
}
.btn-primary{ background:var(--accent); color:#fff; }       /* ~10.9:1 on white */
.btn-primary:hover{ background:var(--accent-dark); color:#fff; }
.btn-secondary{ background:#fff; color:var(--accent); }
.btn-secondary:hover{ background:var(--accent-soft); color:var(--accent-dark); }
.btn + .btn{ margin-top:14px; }
.btn-note{ font-size:17px; color:var(--ink-soft); margin:10px 0 0; }
@media (min-width:768px){ .btn{ display:inline-block; width:auto; min-width:320px; } }

/* ---------- cards & callouts ---------- */
.card{
  border:1px solid var(--rule); border-top:3px solid var(--gold);
  border-radius:8px; padding:20px; margin:20px 0;
  background:var(--bg-card);
  box-shadow:0 1px 3px rgba(42,5,9,.06);
}
.card h3{ margin-top:0; }
.callout{
  border-left:5px solid var(--accent);
  background:var(--accent-soft);
  padding:18px 20px; margin:24px 0; border-radius:0 6px 6px 0;
}
.callout p:last-child,.card p:last-child,.card ul:last-child{ margin-bottom:0; }
.cards-2{ display:grid; gap:20px; }
@media (min-width:768px){ .cards-2{ grid-template-columns:1fr 1fr; } }

/* ---------- forms ---------- */
.form-card{
  background:var(--bg-card); border:1px solid var(--rule);
  border-top:3px solid var(--gold);
  border-radius:8px; padding:24px 20px;
  box-shadow:0 1px 3px rgba(42,5,9,.06);
}
.field{ margin-bottom:22px; }
.field label{
  display:block; font-size:19px; font-weight:700; margin-bottom:6px;
}
.field .hint{ display:block; font-size:17px; font-weight:400; color:var(--ink-soft); margin-bottom:8px; }
.field input[type=text],
.field input[type=email],
.field input[type=tel],
.field textarea{
  width:100%; min-height:52px; padding:12px 14px;
  font-size:18px; font-family:inherit; line-height:1.4;
  color:var(--ink); background:#fff;
  border:2px solid #6B7280; border-radius:6px;
}
.field textarea{ min-height:110px; resize:vertical; }
.field input:focus,.field textarea:focus{ border-color:var(--accent); }

fieldset{ border:0; padding:0; margin:0 0 22px; }
legend{ font-size:19px; font-weight:700; padding:0; margin-bottom:10px; }
.radio{
  display:flex; align-items:flex-start; gap:12px;
  min-height:44px; padding:8px 0; cursor:pointer;
}
.radio input{ width:24px; height:24px; margin:4px 0 0; flex:0 0 auto; }
.radio span{ font-size:18px; line-height:1.45; }

.consent{
  border-top:2px solid var(--rule); margin-top:32px; padding-top:24px;
}
.consent h3{ margin-top:0; }
.check{
  display:flex; align-items:flex-start; gap:12px;
  padding:12px 0; cursor:pointer; min-height:44px;
}
.check input{ width:24px; height:24px; margin:3px 0 0; flex:0 0 auto; }
.check span{ font-size:18px; line-height:1.5; }
.optional-tag{ font-weight:700; color:var(--ink-soft); }

/* ---------- steps ---------- */
.steps{ list-style:none; padding:0; counter-reset:s; }
.steps > li{
  counter-increment:s; position:relative;
  padding-left:52px; margin-bottom:28px;
}
.steps > li::before{
  content:counter(s);
  position:absolute; left:0; top:0;
  width:36px; height:36px; border-radius:50%;
  background:var(--burgundy); color:#fff;
  border:2px solid var(--gold);
  font-size:19px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.steps h3{ margin:2px 0 6px; font-size:20px; }

/* ---------- FAQ ---------- */
details{ border-bottom:1px solid var(--rule); padding:4px 0; }
details summary{
  font-size:20px; font-weight:700; cursor:pointer;
  padding:16px 0; min-height:44px; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
details summary::-webkit-details-marker{ display:none; }
details summary::after{ content:"+"; font-size:28px; font-weight:400; color:var(--accent); }
details[open] summary::after{ content:"\2212"; }
details .answer{ padding-bottom:12px; }
details .answer p:last-child{ margin-bottom:0; }

/* ---------- footer ---------- */
.site-footer{
  background:var(--burgundy-black); color:#FBF7F1;   /* 17.5:1 */
  border-top:4px solid var(--gold);
  padding:40px 0; margin-top:40px; font-size:17px; line-height:1.6;
}
.site-footer a{ color:var(--gold-light); }           /* 13.1:1 on burgundy-black */
.site-footer a:hover{ color:#fff; }
.site-footer .notice{
  border-left:4px solid var(--gold); padding-left:16px; margin:20px 0;
}
.site-footer .links{ margin-top:20px; }
.site-footer .links a{ display:inline-block; margin:0 14px 10px 0; }

/* ---------- print ---------- */
@media print{
  .site-header,.site-footer,.btn{ display:none; }
  body{ font-size:12pt; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
}

/* ============================================================
   Guide page (guide.html) — screen version of the printed guide.
   Class names mirror the print source so both render from one body.
   ============================================================ */
.guide-cover{ border-bottom:3px solid var(--accent); padding-bottom:28px; margin-bottom:8px; }
.guide-cover .kicker{
  font-size:15px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:700; color:var(--ink-soft); margin:0 0 8px;
}
.guide .box{
  border:1px solid var(--rule); border-radius:8px;
  background:var(--bg-soft); padding:20px; margin:24px 0;
}
.guide .box h3{ margin-top:0; }
.guide .box p:last-child,.guide .box ul:last-child{ margin-bottom:0; }
.guide .keypoint{
  border-left:5px solid var(--accent); background:var(--accent-soft);
  padding:18px 20px; margin:24px 0; border-radius:0 6px 6px 0; font-size:20px;
}
.guide .keypoint p:last-child{ margin-bottom:0; }
.guide .notice{
  border-left:5px solid var(--accent); background:var(--accent-soft);
  padding:18px 20px; margin:24px 0; border-radius:0 6px 6px 0; font-size:17px;
}
.guide .notice p:last-child{ margin-bottom:0; }
.guide .qlist{ list-style:none; padding:0; counter-reset:q; }
.guide .qlist li{
  counter-increment:q; position:relative; padding-left:48px; margin-bottom:16px;
}
.guide .qlist li::before{
  content:counter(q); position:absolute; left:0; top:0;
  width:34px; height:34px; border-radius:50%;
  background:var(--accent); color:#fff;
  font-size:17px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.guide .steps{ list-style:none; padding:0; counter-reset:s; }
.guide .contact .label{ font-weight:700; }
.guide .note{ font-size:17px; color:var(--ink-soft); }
.guide h1{ margin-top:1.6em; }
.guide h1:first-of-type{ margin-top:0; }
.guide hr.rule{ border:0; border-top:1px solid var(--rule); margin:40px 0; }
.guide .sub{ font-size:23px; line-height:1.4; font-weight:400; margin:0 0 12px; }
.guide .aud{ color:var(--ink-soft); font-style:italic; }
.guide .org{ font-size:18px; }
.toc{ background:var(--bg-soft); border:1px solid var(--rule); border-radius:8px; padding:20px; }
.toc ol{ margin-bottom:0; }

/* Long unbroken strings (URLs, portal paths) must wrap rather than widen the page. */
body{ overflow-wrap:break-word; word-break:break-word; }

/* Honeypot: off-screen for sighted users, hidden from assistive tech, and
   skipped by keyboard. Never use display:none — some bots check for it. */
.hp{
  position:absolute !important;
  left:-9999px !important;
  top:auto; width:1px; height:1px; overflow:hidden;
}
