/* HSAMaxGuide — design tokens
   Concept: an IRS ledger crossed with a pharmacy stamp. The site's one job is
   answering "eligible or not" fast — so the answer itself (the stamp) is the
   visual hero on every item page, not a headline or hero image. */

:root{
  --ink:#16241F;
  --paper:#EDEEE7;
  --surface:#FFFFFF;
  --line:#D8D6C9;
  --muted:#5C6259;
  --eligible:#1F7A5C;
  --eligible-bg:#E6F0EA;
  --not-eligible:#A63D33;
  --not-eligible-bg:#F5E7E5;
  --needs-lmn:#B8862E;
  --needs-lmn-bg:#F3EADA;
  --gold:#B99A3B;
  --radius:6px;
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--paper);color:var(--ink);line-height:1.6;min-height:100vh}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15}

/* Header */
.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;box-shadow:0 1px 3px rgba(22,36,31,0.04)}
.header-inner{max-width:960px;margin:0 auto;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:var(--font-display);font-size:1.3rem;font-weight:600;text-decoration:none;color:var(--ink)}
.logo span{color:var(--eligible)}
.main-nav{display:flex;gap:1.5rem;font-size:0.9rem;font-weight:500}
.main-nav a{text-decoration:none;color:var(--muted);transition:color .15s}
.main-nav a:hover{color:var(--ink)}
.nav-toggle{display:none;background:none;border:1.5px solid var(--line);border-radius:6px;width:38px;height:38px;font-size:1rem;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.mobile-nav{display:none;flex-direction:column;border-top:1px solid var(--line);background:var(--surface)}
.mobile-nav.open{display:flex}
.mobile-nav a{padding:0.85rem 1.25rem;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);font-size:0.95rem;font-weight:500}
.mobile-nav a:last-child{border-bottom:none}

/* Footer */
.footer-trust{background:var(--ink);color:var(--paper);display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;padding:0.9rem 1.25rem;font-size:0.8rem;font-family:var(--font-mono)}
.footer-trust span{display:inline-flex;align-items:center;gap:0.45rem;opacity:0.9}
.footer-trust i{color:var(--gold)}
.site-footer{background:var(--surface);border-top:1px solid var(--line)}
.footer-inner{max-width:1080px;margin:0 auto;padding:2.5rem 1.25rem 1.5rem;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:2rem}
.footer-col--brand p{font-size:0.85rem;color:var(--muted);margin-top:0.6rem;line-height:1.6}
.footer-col h4{font-family:var(--font-mono);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);margin-bottom:0.9rem}
.footer-col a{display:block;text-decoration:none;color:var(--ink);font-size:0.85rem;margin-bottom:0.6rem;transition:color .15s}
.footer-col a:hover{color:var(--eligible)}
.footer-bottom{border-top:1px solid var(--line);padding:1.1rem 1.25rem;max-width:1080px;margin:0 auto}
.footer-bottom p{font-size:0.75rem;color:var(--muted);line-height:1.6}
.footer-bottom a{color:var(--muted);text-decoration:underline}
@media(max-width:800px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem 1.5rem}
  .footer-col--brand{grid-column:1 / -1}
}
.ad-slot{background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;min-height:60px;position:relative}
.ad-slot--infeed{margin:2rem auto;max-width:720px;border:1px dashed var(--line);border-radius:var(--radius);min-height:90px}
.ad-label{position:absolute;top:4px;left:8px;font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);font-family:var(--font-mono)}

/* Breadcrumb — styled like a file-folder tab */
.breadcrumb{background:var(--paper);border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:0.75rem}
.breadcrumb-inner{max-width:720px;margin:0 auto;padding:0.6rem 1.25rem;color:var(--muted)}
.breadcrumb a{text-decoration:none;color:var(--muted)}
.breadcrumb a:hover{color:var(--ink)}
.breadcrumb .sep{margin:0 0.4rem;opacity:0.5}
.breadcrumb .current{color:var(--ink);font-weight:600}

main{max-width:720px;margin:0 auto;padding:2rem 1.25rem 3rem}

/* ===== Item ruling page ===== */
.ruling-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}
.ruling-hero h1{font-size:1.9rem;max-width:420px}
.ruling-hero .item-meta{font-family:var(--font-mono);font-size:0.75rem;color:var(--muted);margin-top:0.5rem}

/* The stamp — signature element */
.stamp{
  font-family:var(--font-mono);
  font-weight:600;
  font-size:0.85rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0.85rem 1.1rem;
  border:3px double currentColor;
  border-radius:4px;
  transform:rotate(-4deg);
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  white-space:nowrap;
  box-shadow:0 0 0 1px currentColor inset;
  opacity:0.92;
}
.stamp.eligible{color:var(--eligible)}
.stamp.not-eligible{color:var(--not-eligible)}
.stamp.requires-lmn{color:var(--needs-lmn)}
.stamp.partial{color:var(--needs-lmn)}

.ruling-panel{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);padding:1.25rem 1.4rem;margin-bottom:1.5rem}
.ruling-panel .label{font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);margin-bottom:0.5rem}
.ruling-panel p{font-size:0.98rem}
.ruling-panel .ref{margin-top:0.9rem;font-family:var(--font-mono);font-size:0.75rem;color:var(--muted)}

.fact-row{display:flex;justify-content:space-between;padding:0.6rem 0;border-bottom:1px solid var(--line);font-size:0.88rem}
.fact-row:last-child{border-bottom:none}
.fact-row .k{color:var(--muted)}
.fact-row .v{font-family:var(--font-mono);font-weight:600}

/* Monetization CTA box — varies by eligibility status */
.cta-box{border-radius:var(--radius);padding:1.25rem 1.4rem;margin:1.5rem 0;border:1px solid var(--line)}
.cta-box.buy{background:var(--eligible-bg);border-color:var(--eligible)}
.cta-box.lmn{background:var(--needs-lmn-bg);border-color:var(--needs-lmn)}
.cta-box.account{background:var(--surface)}
.cta-box h3{font-size:1.05rem;margin-bottom:0.4rem}
.cta-box p{font-size:0.88rem;color:var(--muted);margin-bottom:0.9rem}
.btn{display:inline-block;padding:0.65rem 1.2rem;border-radius:5px;font-weight:600;font-size:0.88rem;text-decoration:none;border:1.5px solid var(--ink);color:var(--ink);background:transparent;transition:all .15s}
.btn:hover{background:var(--ink);color:var(--surface)}
.btn-solid{background:var(--ink);color:var(--surface)}
.btn-solid:hover{opacity:0.85}

/* Related / ledger list */
.ledger-list{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:0 1px 3px rgba(22,36,31,0.03)}
.ledger-list a{display:flex;align-items:center;justify-content:space-between;padding:0.7rem 1.1rem;text-decoration:none;border-bottom:1px solid var(--line);font-size:0.9rem;transition:background .12s,padding-left .12s}
.ledger-list a:last-child{border-bottom:none}
.ledger-list a:hover{background:var(--paper);padding-left:1.35rem}
.ledger-list .tag{font-family:var(--font-mono);font-size:0.65rem;text-transform:uppercase;padding:0.15rem 0.5rem;border-radius:3px}
.tag.eligible{background:var(--eligible-bg);color:var(--eligible)}
.tag.not-eligible{background:var(--not-eligible-bg);color:var(--not-eligible)}
.tag.requires-lmn,.tag.partial{background:var(--needs-lmn-bg);color:var(--needs-lmn)}

section.block{margin-bottom:2rem}
section.block h2{font-size:1.3rem;margin-bottom:0.9rem}

/* ===== Category hub ===== */
.hub-hero{text-align:left;margin-bottom:1.5rem}
.hub-hero h1{font-size:2rem;margin-bottom:0.4rem}
.hub-hero p{color:var(--muted);max-width:560px}
.item-grid{display:grid;grid-template-columns:1fr;gap:0.6rem}

/* ===== Homepage ===== */
.home-hero{text-align:left;padding:2.5rem 1.5rem;border-radius:10px;margin-bottom:2rem;background:linear-gradient(160deg,var(--surface) 0%,var(--eligible-bg) 140%);border:1px solid var(--line)}
.home-hero h1{font-size:2.3rem;max-width:520px;margin-bottom:0.75rem}
.home-hero p{color:var(--muted);max-width:520px;margin-bottom:1.5rem;font-size:1.05rem}
.search-box{display:flex;gap:0.5rem;max-width:480px}
.search-box input{flex:1;padding:0.8rem 1.1rem;border:1.5px solid var(--line);border-radius:var(--radius);font-size:0.95rem;font-family:var(--font-body);background:var(--surface)}
.search-box input:focus{outline:none;border-color:var(--eligible)}
.search-box button{padding:0.8rem 1.4rem;border-radius:var(--radius);border:none;background:var(--ink);color:var(--surface);font-weight:600;cursor:pointer;transition:opacity .15s}
.search-box button:hover{opacity:0.85}
.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0.9rem}
.category-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;text-decoration:none;transition:all .18s;box-shadow:0 1px 2px rgba(22,36,31,0.03)}
.category-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 6px 16px rgba(22,36,31,0.08)}
.category-card i{color:var(--gold);font-size:1.3rem;margin-bottom:0.5rem;display:block}
.category-card h3{font-size:1rem;margin-bottom:0.25rem}
.category-card p{font-size:0.8rem;color:var(--muted)}

/* ===== Calculator ===== */
.calc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.calc-row{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1.1rem}
.calc-row label{font-size:0.85rem;font-weight:600}
.calc-row select,.calc-row input{padding:0.6rem 0.8rem;border:1.5px solid var(--line);border-radius:var(--radius);font-size:0.95rem;font-family:var(--font-body)}
.calc-result{margin-top:1.5rem;padding:1.25rem;background:var(--eligible-bg);border-radius:var(--radius);border:1px solid var(--eligible)}
.calc-result .big{font-family:var(--font-mono);font-size:1.8rem;font-weight:600;color:var(--eligible)}
.calc-result .small{font-size:0.8rem;color:var(--muted);margin-top:0.3rem}
.limits-table{width:100%;border-collapse:collapse;margin-top:1.5rem;font-size:0.85rem}
.limits-table th,.limits-table td{text-align:left;padding:0.55rem 0.7rem;border-bottom:1px solid var(--line)}
.limits-table th{font-family:var(--font-mono);text-transform:uppercase;font-size:0.7rem;color:var(--muted)}
.limits-table td.num{font-family:var(--font-mono);font-weight:600}

@media(max-width:600px){
  .main-nav{display:none}
  .nav-toggle{display:flex}
  .ruling-hero{flex-direction:column}
  .home-hero h1{font-size:1.8rem}
}

/* ===== Guides ===== */
article.guide h1{font-size:1.9rem;margin-bottom:0.75rem}
.guide-dek{font-size:1.05rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.6}
article.guide h2{font-size:1.25rem;margin:1.75rem 0 0.75rem}
article.guide p{margin-bottom:0.5rem;line-height:1.65}
article.guide a{color:var(--eligible);text-decoration:underline}
.guide-list{margin:0.75rem 0 1rem 1.25rem}
.guide-list li{margin-bottom:0.5rem;line-height:1.6}
.compare-table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:0.88rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.compare-table th{background:var(--paper);text-align:left;padding:0.7rem 0.9rem;font-family:var(--font-mono);text-transform:uppercase;font-size:0.7rem;color:var(--muted)}
.compare-table td{padding:0.7rem 0.9rem;border-top:1px solid var(--line);color:var(--muted)}
.compare-table td.v{color:var(--ink);font-weight:500}
.about-author{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--eligible);border-radius:var(--radius);padding:1.25rem 1.4rem;margin:1.25rem 0}
.about-author-name{font-family:var(--font-display);font-size:1.15rem;font-weight:600}
.about-author-role{font-family:var(--font-mono);font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.6rem}
.about-author p{margin-bottom:0}
.key-takeaways{background:var(--eligible-bg);border:1px solid var(--eligible);border-radius:var(--radius);padding:1.1rem 1.4rem;margin:1.25rem 0}
.key-takeaways h3{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.04em;font-family:var(--font-mono);color:var(--eligible);margin-bottom:0.6rem}
.key-takeaways ul{margin:0 0 0 1.1rem}
.key-takeaways li{margin-bottom:0.4rem;line-height:1.55;font-size:0.92rem}
.guide-toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.4rem;margin:1.25rem 0;font-size:0.88rem}
.guide-toc div{font-family:var(--font-mono);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--muted);margin-bottom:0.5rem}
.guide-toc a{display:block;text-decoration:none;color:var(--eligible);padding:0.2rem 0}
.related-guides{margin-top:2rem}
.estimate-note{background:var(--paper);border:1px dashed var(--muted);border-radius:var(--radius);padding:1rem 1.4rem;margin:1.5rem 0;font-size:0.88rem}
.estimate-note .label{font-family:var(--font-mono);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);margin-bottom:0.5rem;display:flex;align-items:center;gap:0.4rem}
