/* Layout: one calm column, generous type for readers 60+, brand wave as the only flourish. */
:root{
  --bg:#FBFCFD; --surface:#FFFFFF; --fg:#1F2E3C; --muted:#5B6B7A; --line:#D9E2EA;
  --navy:#263B4B; --heading:#263B4B; --sky:#22A9E0; --sky-ink:#1483B3; --green:#6CC24A; --green-ink:#3E8A24; --tint:#EAF6FC;
  --red:#B3261E; --display:"Bitter",Georgia,"Times New Roman",serif; --body:"Public Sans","Segoe UI",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#101820;--surface:#172230;--fg:#EEF3F7;--muted:#A9B7C4;--line:#2A3947;--navy:#1C2B3A;--heading:#FFFFFF;--sky:#3DB7E8;--sky-ink:#7FD0F2;--green:#7BD05A;--green-ink:#9BE07F;--tint:#1B2A38;--red:#FF8A80;color-scheme:dark}}

:root[data-theme="dark"]{--red:#FF8A80;--bg:#101820;--surface:#172230;--fg:#EEF3F7;--muted:#A9B7C4;--line:#2A3947;--navy:#1C2B3A;--heading:#FFFFFF;--sky:#3DB7E8;--sky-ink:#7FD0F2;--green:#7BD05A;--green-ink:#9BE07F;--tint:#1B2A38;color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:18px;line-height:1.6;margin:0}
h1,h2,h3{font-family:var(--display);line-height:1.15;text-wrap:balance;margin:0}
h1{font-size:clamp(2rem,4.5vw,3.1rem);font-weight:700}
h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600}
h3{font-size:1.2rem;font-weight:600}
p{margin:0}
a{color:var(--sky-ink)}
.wrap{max-width:1120px;margin:0 auto;padding-inline:20px}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sky-ink)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--surface);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:16px;padding-block:10px;flex-wrap:nowrap}
.nav img{height:76px;width:auto}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:16px;flex-wrap:wrap;font-weight:600;font-size:.92rem}
.nav .nav-cta{padding:10px 16px;font-size:.92rem;white-space:nowrap}
@media (max-width:1040px){.nav{flex-wrap:wrap}.nav ul{order:3;width:100%}}
.nav ul a{color:var(--fg);text-decoration:none}
.nav ul a:hover{color:var(--sky-ink)}
.nav .spacer{flex:1}
.phone{font-weight:700;color:var(--heading);text-decoration:none;white-space:nowrap}
.btn{display:inline-block;border-radius:8px;padding:12px 20px;font-weight:700;text-decoration:none;font-size:1rem;border:2px solid transparent;cursor:pointer;font-family:var(--body)}
.btn-primary{background:var(--sky);color:#fff}
.btn-primary:hover{background:var(--sky-ink)}
.btn-outline{border-color:var(--heading);color:var(--heading);background:transparent}
.btn-outline:hover{background:var(--tint)}
.btn-green{background:var(--green);color:#10300A}
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;padding-block:64px 72px;align-items:center}
.hero h1{color:#fff}
.hero p.lead{font-size:1.2rem;color:#D6E6F2;max-width:34rem;margin-top:16px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero .wave{position:absolute;left:-4%;right:-4%;bottom:-30px;width:108%;height:62%;opacity:.18;pointer-events:none}
.hero-card{background:var(--surface);color:var(--fg);border-radius:14px;padding:22px;display:grid;gap:14px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.hero-card img{width:112px;height:112px;object-fit:cover;object-position:top;border-radius:50%;border:4px solid var(--tint)}
.hero-card .who{display:flex;gap:16px;align-items:center}
.hero-card .who strong{font-family:var(--display);font-size:1.15rem;display:block}
.hero-card .who span{color:var(--muted);font-size:.95rem}
.hero-card ul{margin:0;padding-left:20px;font-size:.98rem;display:grid;gap:4px}
.trust{background:var(--tint);border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;padding-block:18px;text-align:center}
.trust strong{display:block;font-family:var(--display);font-size:1.6rem;color:var(--heading)}
.trust span{font-size:.9rem;color:var(--muted)}
section.block{padding-block:64px}
section.alt{background:var(--surface);border-block:1px solid var(--line)}
.sec-head{max-width:40rem;margin-bottom:32px;display:grid;gap:10px}
.sec-head p{color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{border-top:4px solid var(--green);padding-top:14px}
.step b{font-family:var(--display);font-size:1.05rem;display:block;margin-bottom:4px}
.step small{color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.06em}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:grid;gap:10px;align-content:start}
.card p{color:var(--muted);font-size:.98rem}
.card a{font-weight:700;text-decoration:none}
.events{display:grid;gap:12px}
.event{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.event .date{font-family:var(--display);font-weight:700;color:var(--heading);line-height:1.1}
.event .date em{display:block;font-style:normal;font-size:.8rem;color:var(--muted);font-weight:600}
.event .meta{color:var(--muted);font-size:.95rem}
.about{display:grid;grid-template-columns:320px 1fr;gap:40px;align-items:start}
.about img{width:100%;border-radius:14px}
.about .book{margin-top:18px;background:var(--tint);border-radius:10px;padding:14px 16px;font-size:.95rem}
.about .book b{font-family:var(--display)}
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.quote{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;font-size:1rem}
.quote p{font-style:italic}
.quote footer{margin-top:12px;font-weight:700;color:var(--heading);font-style:normal;font-size:.95rem}
.resources{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.resources ul{margin:0;padding-left:20px;display:grid;gap:8px}
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:40px}
form{display:grid;gap:14px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg);width:100%}
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.consent{font-size:.85rem;color:var(--muted)}
.thanks{display:none;background:var(--tint);border-radius:10px;padding:18px;font-weight:600}
.side{display:grid;gap:16px;align-content:start}
.side .card{gap:12px}
.tools{display:grid;gap:10px}
.tools a{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--fg);font-weight:600;background:var(--surface)}
.tools a span{color:var(--sky-ink)}
footer.site{background:var(--navy);color:#C9D7E3;font-size:.9rem;padding-block:40px}
footer.site .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
footer.site h3{color:#fff;font-size:1rem;margin-bottom:8px}
footer.site a{color:#fff}
footer.site .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:20px;font-size:.82rem;line-height:1.55;color:#AEBECD}
@media (max-width:860px){
  .hero .wrap,.about,.contact,.resources,footer.site .wrap{grid-template-columns:1fr}
  .steps,.cards{grid-template-columns:1fr 1fr}
  .trust .wrap{grid-template-columns:1fr 1fr}
  .trust .wrap>div:last-child{grid-column:1/-1}
  .nav img{height:60px}
  .quotes{grid-template-columns:1fr}
  .event{grid-template-columns:1fr}
  .nav ul{order:3;width:100%}
}
@media (max-width:520px){.steps,.cards,.row{grid-template-columns:1fr}.hero .wrap{padding-block:44px 52px}}

.tools2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.tool{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;display:grid;gap:16px}
.tool-head p{color:var(--muted);font-size:.95rem;margin-top:4px}
.qprog{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:16px}
.qprog span{display:block;height:100%;width:0;background:var(--green);transition:width .3s ease}
.qq{font-family:var(--display);font-size:1.15rem;font-weight:600;margin-bottom:12px}
.qopts{display:grid;gap:10px}
.qopt{text-align:left;font:inherit;font-weight:600;padding:12px 14px;border:2px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);cursor:pointer;transition:border-color .15s,background-color .15s}
.qopt:hover{border-color:var(--sky);background:var(--tint)}
.qres{display:grid;gap:12px}
.qres .lean{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--heading)}
.meter{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.meter .bar{height:10px;border-radius:5px;background:var(--line);overflow:hidden;grid-column:1/-1}
.meter .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--sky),var(--green));transition:width .5s ease}
.qres ul{margin:0;padding-left:20px;font-size:.98rem;display:grid;gap:6px}
.qres .small{font-size:.85rem;color:var(--red);font-weight:600}
.wresult{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:16px}
.wresult .big{font-family:var(--display);font-size:1.3rem;font-weight:700;color:var(--heading)}
.wresult .dates{display:grid;gap:8px}
.wresult .d{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:.98rem;padding:10px 12px;background:var(--bg);border-radius:8px}
.wresult .d b{color:var(--heading)}
.wresult .warn{background:#FFF3C4;color:#5C4500;border-radius:8px;padding:10px 12px;font-weight:600;font-size:.95rem}
.wresult .ok{background:var(--tint);border-radius:8px;padding:10px 12px;font-weight:600;font-size:.95rem}
@media (max-width:860px){.tools2{grid-template-columns:1fr}.wresult .d{grid-template-columns:1fr}}
/* Motion: one page-load sequence in the hero, a slow drift on the wave, and a soft rise as sections scroll in. Everything is visible at rest. */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .card,.event,.btn{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
  .card:hover,.event:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(31,46,60,.08)}
  .btn:hover{transform:translateY(-1px)}
  .btn:active{transform:translateY(0)}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes drift{0%{transform:translateY(0)}50%{transform:translateY(10px)}100%{transform:translateY(0)}}
  @keyframes drift1{0%{transform:translate(0,0)}50%{transform:translate(-90px,14px)}100%{transform:translate(0,0)}}
  @keyframes drift2{0%{transform:translate(0,0)}50%{transform:translate(80px,-12px)}100%{transform:translate(0,0)}}
  .hero .wave .w1{animation:drift1 13s ease-in-out infinite}
  .hero .wave .w2{animation:drift2 17s ease-in-out infinite}
  .hero .wrap>div{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
  .hero-card{animation:rise .7s .18s cubic-bezier(.2,.7,.2,1) both}
  .hero .wave{animation:drift 14s ease-in-out infinite}
  .reveal.in{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
  .reveal.in:nth-child(2){animation-delay:.08s}.reveal.in:nth-child(3){animation-delay:.16s}.reveal.in:nth-child(4){animation-delay:.24s}.reveal.in:nth-child(5){animation-delay:.32s}.reveal.in:nth-child(6){animation-delay:.4s}
  .step{transition:border-color .2s}
  .step:hover{border-color:var(--sky)}
  .nav ul a{position:relative}
  .nav ul a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:2px;background:var(--sky);transition:right .2s ease}
  .nav ul a:hover::after{right:0}
}

img{max-width:100%}
[hidden]{display:none!important}
html{scroll-padding-top:110px}
@media (max-width:1040px){html{scroll-padding-top:160px}}
@media (max-width:600px){header{position:static}html{scroll-padding-top:12px}}
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.formmsg{background:var(--tint);border-radius:10px;padding:14px 16px;font-weight:600}
.formmsg.err{background:transparent;border:1.5px solid var(--red);color:var(--red)}
.thanks:focus{outline:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav img{background:#fff;border-radius:10px;padding:4px 10px}}
:root[data-theme="dark"] .nav img{background:#fff;border-radius:10px;padding:4px 10px}

/* Images keep their shape when the page sets width/height (stops the page jumping while images load). */
img{height:auto}
/* The required Medicare disclaimer, shown where people contact us (CMS: "prominently displayed"). */
.tpmo,.sec-head .tpmo{background:var(--tint);border-radius:10px;padding:12px 16px;font-size:.92rem;color:var(--fg)}
.nw{white-space:nowrap}
/* Easier-to-read buttons and links (10/27 accessibility check): white text on the light brand blue measured 2.7 to 1,
   under the 4.5 to 1 minimum for text. The darker blue (5.4 to 1) keeps the same color family. Dark mode keeps its own colors. */
:root{--sky-ink:#10719C}
.btn-primary{background:#10719C}
.btn-primary:hover{background:#0B5E86}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-primary{background:#1279A6}:root:not([data-theme="light"]) .btn-primary:hover{background:#10719C}}
:root[data-theme="dark"] .btn-primary{background:#1279A6}
:root[data-theme="dark"] .btn-primary:hover{background:#10719C}
/* The states Jamie is licensed in, shown small next to the consultation buttons and the contact form (10/27). */
.licensed{font-size:.9rem;color:var(--muted);line-height:1.5}
.sec-head .licensed{font-size:.95rem}
.cta-band .licensed{margin-top:8px}
.page-side .licensed{margin-top:2px}
/* Bigger tap targets for the menu links and the footer page list on phones. */
.nav ul a{display:inline-block;padding:6px 0}
footer.site p a{display:inline-block;padding:5px 0}
/* Inner pages (Turning 65, Supplements, Advantage, Part D, classes, About, local pages). Same tokens as the home page. */
.page-hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.page-hero .wave{position:absolute;left:-4%;right:-4%;bottom:-40px;width:108%;height:70%;opacity:.14;pointer-events:none}
.page-hero .wrap{position:relative;display:grid;gap:14px;padding-block:36px 52px}
.page-hero h1{color:#fff;max-width:48rem}
.page-hero .lead{font-size:1.15rem;color:#D6E6F2;max-width:44rem}
.page-hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.btn-outline.light{border-color:#fff;color:#fff}
.btn-outline.light:hover{background:rgba(255,255,255,.12)}
.crumbs{font-size:.9rem;color:#BFD3E3}
.crumbs a{color:#fff}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start}
.prose{display:grid;gap:16px;max-width:46rem}
.prose h2{margin-top:22px}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:8px}
.prose ul,.prose ol{margin:0;padding-left:24px;display:grid;gap:8px}
.prose a{font-weight:600}
.prose .note{background:var(--tint);border-radius:10px;padding:14px 16px;font-size:.98rem}
.prose img{border-radius:14px}
.page-side{display:grid;gap:16px;position:sticky;top:130px}
.page-side .card{gap:10px}
.page-side ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:.98rem}
.faq{display:grid;gap:10px;max-width:46rem}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.faq summary{cursor:pointer;font-weight:700;font-family:var(--display);color:var(--heading);font-size:1.05rem;list-style:none;position:relative;padding-right:32px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--body);font-size:1.5rem;line-height:1;color:var(--sky-ink)}
.faq details[open] summary::after{content:"\2013"}
.faq details[open] summary{margin-bottom:8px}
.faq details p{color:var(--fg)}
.cta-band{background:var(--tint);border-block:1px solid var(--line)}
.cta-band .wrap{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:36px}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.cta-band p{color:var(--muted);margin-top:6px}
.cta-band .btns{display:flex;gap:12px;flex-wrap:wrap}
.more{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.more a{display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--fg);font-weight:700}
.more a span{display:block;font-weight:400;color:var(--muted);font-size:.9rem;margin-top:4px}
.card .more-link{font-weight:700;text-decoration:none}
/* "Save a seat" form on /classes */
.seat-form{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.prose .seat-form p{margin:0}
@media (max-width:860px){
  .page-grid{grid-template-columns:1fr}
  .page-side{position:static}
  .more{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.more{grid-template-columns:1fr}.page-hero .wrap{padding-block:28px 40px}}
