/* ============ LAPIS SHARED STYLES (interior pages) ============ */
:root{
  --navy:#0a0e1a;
  --navy-2:#0f1530;
  --lapis:#153c8f;
  --lapis-bright:#1e4db8;
  --sky:rgba(200,164,78,.12);
  --gold:#c8a44e;
  --honey:#c8a44e;
  --honey-deep:#a8843a;
  --cream:#0a0e1a;
  --paper:#0f1530;
  --ink:#e8e4dc;
  --muted:#8a8680;
  --radius:12px;
  --shadow-soft:0 10px 40px rgba(5,9,20,.45);
  --shadow-pop:0 20px 60px rgba(5,9,20,.6);
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Inter", system-ui, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overscroll-behavior-x:none}
body{font-family:var(--font-body);color:var(--ink);background:var(--cream);overflow-x:hidden;position:relative;line-height:1.6;touch-action:pan-y;overscroll-behavior-x:none}
h1,h2,h3{font-family:var(--font-body);font-weight:700;line-height:1.15;letter-spacing:-.015em}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
::selection{background:var(--honey);color:var(--navy)}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:2000;opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* progress bar */
#progressBar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--honey-deep),var(--gold));z-index:1001;border-radius:0 3px 3px 0}

/* nav */
nav.topnav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:12px 28px;background:rgba(21,60,143,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(200,164,78,.2);transition:background .35s, box-shadow .35s, padding .35s}
nav.topnav.scrolled{background:rgba(21,60,143,.97);box-shadow:0 4px 24px rgba(0,0,0,.3);padding:9px 28px}
.brand{display:flex;align-items:center;gap:12px;color:#fff}
.brand-mark{position:relative;width:52px;height:52px;flex:none}
.brand-mark .hex-logo{width:100%;height:100%;object-fit:contain;border-radius:11px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text b{font-family:var(--font-display);font-size:1.25rem;font-weight:700}
.brand-text span{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--honey)}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{color:rgba(255,255,255,.82);font-size:.82rem;font-weight:600;padding:8px 13px;border-radius:99px;transition:color .25s, background .25s}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.1)}
.nav-links a.here{color:var(--honey);background:rgba(200,164,78,.13)}
@media(max-width:960px){.nav-links{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.95rem;border-radius:99px;padding:14px 28px;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s}
.btn:hover{transform:translateY(-3px) scale(1.02)}
.btn:active{transform:translateY(0) scale(.98)}
/* Depth via tinted shadow + 1px inner edge refraction — not an outer glow */
.btn-gold{background:linear-gradient(135deg,var(--honey),var(--gold));color:var(--navy);
  box-shadow:0 6px 18px rgba(5,9,20,.45), inset 0 1px 0 rgba(255,255,255,.28)}
.btn-gold:hover{box-shadow:0 12px 28px rgba(5,9,20,.55), inset 0 1px 0 rgba(255,255,255,.36)}
.btn-ghost{color:#fff;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--honey);color:var(--honey)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 10px 30px rgba(13,27,62,.35)}
.btn-navy:hover{box-shadow:0 16px 40px rgba(13,27,62,.45)}
.btn-nav{padding:10px 20px;font-size:.85rem}

/* interior hero */
/* Per-line hero identity.
   Gold stays the ONLY accent; what changes per page is the ambient light
   (position + cool-family hue) and the comb lattice scale/skew, so Medicare
   and Life read as different places without inventing four brand colors. */
.hero-inner{
  --amb:59,91,219;      /* ambient light colour  */
  --amb-x:75%;          /* ambient light origin  */
  --amb-y:8%;
  --comb:46px;          /* lattice cell size     */
  --comb-rot:0deg;      /* lattice skew          */
  --comb-op:.055;
  position:relative;color:#fff;padding:150px 6vw 80px;text-align:center;
  background:
    radial-gradient(1000px 520px at var(--amb-x) var(--amb-y), rgba(var(--amb),.45), transparent 60%),
    radial-gradient(700px 420px at 10% 95%, rgba(200,164,78,.12), transparent 55%),
    linear-gradient(160deg,var(--navy) 0%, var(--navy-2) 55%, #16295e 100%);
}
.hero-inner[data-line="medicare"] {--amb:59,91,219;  --amb-x:78%; --comb:44px; --comb-rot:0deg}
.hero-inner[data-line="aca"]      {--amb:38,132,178; --amb-x:22%; --comb:54px; --comb-rot:-6deg}
.hero-inner[data-line="life"]     {--amb:86,78,196;  --amb-x:62%; --amb-y:88%; --comb:38px; --comb-rot:8deg}
.hero-inner[data-line="annuities"]{--amb:32,104,150; --amb-x:14%; --amb-y:22%; --comb:62px; --comb-rot:4deg; --comb-op:.045}

/* Structured comb lattice — deterministic, no random scatter */
.hex-field{
  position:absolute;inset:-10%;pointer-events:none;overflow:hidden;
  opacity:var(--comb-op);
  transform:rotate(var(--comb-rot));
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='96'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpolygon points='28,2 54,16 54,48 28,62 2,48 2,16'/%3E%3Cpolygon points='28,66 54,80 54,112 28,126 2,112 2,80'/%3E%3C/g%3E%3C/svg%3E");
  background-size:var(--comb) calc(var(--comb) * 1.714);
  -webkit-mask:radial-gradient(120% 100% at var(--amb-x) var(--amb-y), #000 15%, transparent 72%);
  mask:radial-gradient(120% 100% at var(--amb-x) var(--amb-y), #000 15%, transparent 72%);
}
.hero-inner .wrap{position:relative;z-index:2;max-width:820px;margin:0 auto}
.crumb{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--honey);background:rgba(200,164,78,.12);border:1px solid rgba(200,164,78,.35);padding:8px 16px;border-radius:99px;margin-bottom:20px}
.crumb a:hover{text-decoration:underline}
.hero-inner h1{font-size:clamp(2.3rem,4.8vw,3.8rem);font-weight:600;margin-bottom:18px;position:relative;display:inline-block}
.hero-inner h1 .accent{font-family:var(--font-display);color:var(--honey);font-style:italic;font-weight:600}
.hero-inner p.lede{font-size:1.06rem;color:rgba(255,255,255,.78);max-width:38rem;margin:0 auto 30px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.hero-inner .wrap>*{opacity:0;transform:translateY(24px);animation:riseIn .8s cubic-bezier(.16,1,.3,1) forwards}
.hero-inner .wrap>*:nth-child(2){animation-delay:.12s}
.hero-inner .wrap>*:nth-child(3){animation-delay:.24s}
.hero-inner .wrap>*:nth-child(4){animation-delay:.36s}
@keyframes riseIn{to{opacity:1;transform:none}}


/* sections */
section{padding:90px 6vw;position:relative;overflow:hidden}
.section-head{max-width:760px;margin:0 auto 52px;text-align:center}
.section-head.left{max-width:640px;margin:0 0 52px;text-align:left}
.kicker{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);background:transparent;padding:0;margin-bottom:14px}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:600;margin-bottom:14px}
.section-head p{color:var(--muted);font-size:1.03rem}
.dark{
  color:#fff;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='139' height='240'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='2'%3E%3Cpolygon points='69.5,0 139,40 139,120 69.5,160 0,120 0,40'/%3E%3Cpolygon points='0,120 69.5,160 69.5,240 0,280 -69.5,240 -69.5,160'/%3E%3Cpolygon points='139,120 208.5,160 208.5,240 139,280 69.5,240 69.5,160'/%3E%3Cpolygon points='0,-120 69.5,-80 69.5,0 0,40 -69.5,0 -69.5,-80'/%3E%3Cpolygon points='139,-120 208.5,-80 208.5,0 139,40 69.5,0 69.5,-80'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(900px 480px at 82% 8%, rgba(59,91,219,.30), transparent 60%),
    radial-gradient(650px 400px at 8% 92%, rgba(200,164,78,.07), transparent 55%),
    linear-gradient(160deg,#0c1430 0%, #13224e 55%, #182b63 100%);
}
/* ── honeycomb ribbon marking each section break (not under the nav) ──
   Two stacked layers, and they have to stay in register:

   1. FILLS  — eight solid gold cells, no-repeat, centred. Fixed positions so the
      scatter is deterministic; a repeating tile would march the same fills
      across the band at even intervals and read as wallpaper.
   2. LATTICE — the outline mesh, repeat-x, so it tiles seamlessly at any width
      without distorting the hexagons.

   Geometry: flat-top hexagons, 34 wide x 29.4 tall. Columns step 25.5 (0.75w)
   with alternate columns offset half a row, so cell centres sit at
   cx = 25.5k, and cy is a multiple of 29.4 for even k, offset by 14.7 for odd k.
   Every fill below lands on one of those centres.

   The 1071px fill width is NOT arbitrary: 1071 = 51 x 21, an exact multiple of
   the lattice tile. Because both layers are centred, their origins differ by
   exactly 510px (= 51 x 10), so the fills land dead-on lattice cells. Change
   1071 to a non-multiple of 51 and every fill drifts off its cell.

   SKINNIER: the SVG geometry is unchanged — the whole comb is just rendered at
   0.6 scale (88.2 -> 53px tall). Scaling uniformly keeps the fill/lattice
   registration intact, because 642.6 = 30.6 x 21 still holds and the two centred
   origins still differ by an exact 10 tiles (306 = 30.6 x 10). Scale both
   background-size values by the same factor or the fills drift. */
section:not(.cta-band)::before{
  content:"";position:absolute;top:-26px;left:50%;transform:translateX(-50%);
  width:min(1080px,92vw);height:53px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1071' height='88.2' viewBox='0 0 1071 88.2'%3E%3Cdefs%3E%3ClinearGradient id='f' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f0c96f'/%3E%3Cstop offset='1' stop-color='%23d09b2b'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23f)' d='M85,58.8L93.5,44.1L110.5,44.1L119,58.8L110.5,73.5L93.5,73.5Z M212.5,44.1L221,29.4L238,29.4L246.5,44.1L238,58.8L221,58.8Z M365.5,73.5L374,58.8L391,58.8L399.5,73.5L391,88.2L374,88.2Z M493,29.4L501.5,14.7L518.5,14.7L527,29.4L518.5,44.1L501.5,44.1Z M620.5,44.1L629,29.4L646,29.4L654.5,44.1L646,58.8L629,58.8Z M773.5,44.1L782,29.4L799,29.4L807.5,44.1L799,58.8L782,58.8Z M901,58.8L909.5,44.1L926.5,44.1L935,58.8L926.5,73.5L909.5,73.5Z M1028.5,44.1L1037,29.4L1054,29.4L1062.5,44.1L1054,58.8L1037,58.8Z'/%3E%3C/svg%3E") no-repeat center/642.6px 53px,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='51' height='88.2' viewBox='0 0 51 88.2'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23e9d18a'/%3E%3Cstop offset='.5' stop-color='%23c8a44e'/%3E%3Cstop offset='1' stop-color='%238a6d2a'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='none' stroke='url(%23g)' stroke-width='2' d='M-17,0L-8.5,-14.7L8.5,-14.7L17,0L8.5,14.7L-8.5,14.7Z M-17,29.4L-8.5,14.7L8.5,14.7L17,29.4L8.5,44.1L-8.5,44.1Z M-17,58.8L-8.5,44.1L8.5,44.1L17,58.8L8.5,73.5L-8.5,73.5Z M-17,88.2L-8.5,73.5L8.5,73.5L17,88.2L8.5,102.9L-8.5,102.9Z M34,0L42.5,-14.7L59.5,-14.7L68,0L59.5,14.7L42.5,14.7Z M34,29.4L42.5,14.7L59.5,14.7L68,29.4L59.5,44.1L42.5,44.1Z M34,58.8L42.5,44.1L59.5,44.1L68,58.8L59.5,73.5L42.5,73.5Z M34,88.2L42.5,73.5L59.5,73.5L68,88.2L59.5,102.9L42.5,102.9Z M8.5,-14.7L17,-29.4L34,-29.4L42.5,-14.7L34,0L17,0Z M8.5,14.7L17,0L34,0L42.5,14.7L34,29.4L17,29.4Z M8.5,44.1L17,29.4L34,29.4L42.5,44.1L34,58.8L17,58.8Z M8.5,73.5L17,58.8L34,58.8L42.5,73.5L34,88.2L17,88.2Z M8.5,102.9L17,88.2L34,88.2L42.5,102.9L34,117.6L17,117.6Z'/%3E%3C/svg%3E") repeat-x center/30.6px 53px;
  -webkit-mask:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent);
  mask:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent);
  pointer-events:none;z-index:4;opacity:.9;
}
.dark .kicker{background:rgba(200,164,78,.14);color:var(--honey)}
.dark .section-head p{color:rgba(255,255,255,.7)}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;max-width:1100px;margin:0 auto}
.info-card{background:var(--paper);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow-soft);border-top:4px solid var(--honey);transition:transform .3s, box-shadow .3s}
.info-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-pop)}
.info-card h4{font-size:1.05rem;font-weight:700;margin-bottom:8px}
.info-card h4::before{content:"";display:block;width:26px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);margin-bottom:.7rem}
.info-card p{color:var(--muted);font-size:.9rem}
.info-card .big-emoji{font-size:1.9rem;margin-bottom:12px}

/* accordion */
.acc{max-width:760px;margin:0 auto;display:grid;gap:12px}
.acc-item{background:var(--paper);border-radius:16px;box-shadow:var(--shadow-soft);overflow:hidden;border:1.5px solid transparent;transition:border-color .3s}
.acc-item.open{border-color:rgba(200,164,78,.5)}
.acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 24px;font-weight:700;font-size:1rem;color:var(--ink);text-align:left}
.acc-head .chev{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sky);display:grid;place-items:center;transition:transform .35s cubic-bezier(.16,1,.3,1), background .3s}
.acc-item.open .chev{transform:rotate(180deg);background:var(--honey)}
.acc-body{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,1,.3,1)}
.acc-body p{padding:0 24px 20px;color:var(--muted);font-size:.93rem}

/* flip cards */
.flip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;max-width:1050px;margin:0 auto}
.flip{perspective:1000px;height:210px;cursor:pointer}
.flip-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.16,1,.3,1)}
.flip.flipped .flip-in{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center}
.flip-front{background:var(--paper);box-shadow:var(--shadow-soft);border:1px solid rgba(200,164,78,.2)}
.flip-front::before{content:"";width:24px;height:28px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:linear-gradient(160deg,var(--gold),rgba(200,164,78,.3));margin-bottom:.2rem}
.flip-front h4{font-size:1.06rem;font-weight:700}
.flip-front .tap{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-deep)}
.flip-back{background:linear-gradient(150deg,var(--lapis),var(--lapis-bright));color:#fff;transform:rotateY(180deg);box-shadow:var(--shadow-pop)}
.flip-back p{font-size:.87rem;line-height:1.5;color:rgba(255,255,255,.92)}

/* toggle compare */
.seg{display:inline-flex;background:var(--paper);border-radius:99px;padding:5px;box-shadow:var(--shadow-soft);gap:4px;margin:0 auto 36px}
.seg-wrap{text-align:center}
.seg button{padding:11px 26px;border-radius:99px;font-weight:700;font-size:.9rem;color:var(--muted);transition:all .3s cubic-bezier(.16,1,.3,1)}
.seg button.on{background:linear-gradient(135deg,var(--lapis),var(--lapis-bright));color:#fff;box-shadow:0 8px 20px rgba(59,91,219,.35)}
.seg-panel{display:none}
.seg-panel.show{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;max-width:1050px;margin:0 auto;animation:stepIn .5s cubic-bezier(.16,1,.3,1)}
@keyframes stepIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}

/* timeline */
.timeline{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.tl-item{background:var(--paper);border-radius:var(--radius);padding:26px 20px;text-align:center;box-shadow:var(--shadow-soft);cursor:pointer;border:2px solid transparent;transition:transform .3s cubic-bezier(.16,1,.3,1), border-color .3s}
.tl-item:hover{transform:translateY(-6px)}
.tl-item.on{border-color:var(--honey);transform:translateY(-6px);background:linear-gradient(160deg,#0f1530,#182448)}
.tl-item .abbr2{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--gold)}
.tl-item .when{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--honey-deep);margin-top:4px}
.tl-detail{max-width:720px;margin:30px auto 0;background:var(--paper);border-radius:var(--radius);border:1.5px solid rgba(200,164,78,.4);box-shadow:var(--shadow-soft);padding:26px 30px;text-align:center;min-height:100px;display:grid;place-items:center;transition:opacity .25s, transform .25s}
.tl-detail p{color:var(--muted);font-size:.96rem}
.tl-detail b{color:var(--ink)}

/* pros cons */
.pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin:0 auto}
@media(max-width:760px){.pc-grid{grid-template-columns:1fr}}
.pc-col{border-radius:var(--radius);padding:30px 28px}
.pc-col.pros{background:rgba(255,255,255,.06);border:1px solid rgba(200,164,78,.4)}
.pc-col.cons{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.15)}
.pc-col h4{font-family:var(--font-display);font-size:1.2rem;margin-bottom:16px;color:var(--honey)}
.pc-col ul{list-style:none;display:grid;gap:12px}
.pc-col li{display:flex;gap:10px;font-size:.92rem;color:rgba(255,255,255,.85)}
.pc-col li::before{flex:none;font-weight:800}
.pc-col.pros li::before{content:"✓";color:var(--honey)}
.pc-col.cons li::before{content:"–";color:rgba(255,255,255,.5)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;max-width:1000px;margin:0 auto;counter-reset:step}
.step-card{position:relative;background:var(--paper);border-radius:var(--radius);padding:52px 26px 30px;box-shadow:var(--shadow-soft);transition:transform .3s, box-shadow .3s}
.step-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-pop)}
.step-card::before{counter-increment:step;content:counter(step);position:absolute;top:-22px;left:26px;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--honey),var(--gold));color:var(--navy);font-family:var(--font-display);font-weight:700;font-size:1.3rem;display:grid;place-items:center;box-shadow:0 8px 20px rgba(200,164,78,.4)}
.step-card h4{font-size:1.05rem;font-weight:700;margin-bottom:8px}
.step-card p{color:var(--muted);font-size:.9rem}

/* cta band */
.cta-band{background:linear-gradient(135deg,var(--honey),var(--gold));color:var(--navy);text-align:center;position:relative;overflow:hidden}
.cta-band h2{font-size:clamp(1.9rem,3.8vw,2.8rem);margin-bottom:14px}
.cta-band p{font-weight:600;max-width:520px;margin:0 auto 28px;opacity:.85}

/* footer */
footer{background:var(--navy);color:rgba(255,255,255,.75);padding:70px 6vw 40px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;max-width:1150px;margin:0 auto 44px}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr}}
.foot-grid h4{color:#fff;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
.foot-grid a{display:block;padding:5px 0;font-size:.92rem;transition:color .25s, transform .25s}
.foot-grid a:hover{color:var(--honey);transform:translateX(4px)}
.legal{max-width:1150px;margin:0 auto;border-top:1px solid rgba(255,255,255,.12);padding-top:30px;font-size:.74rem;line-height:1.7;color:rgba(255,255,255,.45)}
.legal p{margin-bottom:12px}

/* floating bee */
#flyBtn{position:fixed;right:26px;bottom:26px;z-index:999;width:64px;height:64px;border-radius:50%;background:rgba(15,21,48,.96);border:1px solid rgba(200,164,78,.45);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.5);transition:transform .3s ease;animation:btnBob 3.4s ease-in-out infinite}
#flyBtn:hover{transform:scale(1.14) rotate(8deg)}
#flyBtn svg{width:34px;height:34px}
@keyframes btnBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
#flyBtn .tip{position:absolute;right:76px;top:50%;transform:translateY(-50%) translateX(8px);background:var(--navy);color:#fff;font-size:.78rem;font-weight:700;padding:9px 15px;border-radius:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s, transform .3s}
#flyBtn:hover .tip{opacity:1;transform:translateY(-50%) translateX(0)}

/* Staggered orchestration — grids cascade in rather than popping all at once */
.steps.reveal.in > *,
.flip-grid.reveal.in > *,
.rev-grid.reveal.in > *{
  animation:riseIn .55s cubic-bezier(.16,1,.3,1) backwards;
}
.steps.reveal.in > *:nth-child(1),.flip-grid.reveal.in > *:nth-child(1),.rev-grid.reveal.in > *:nth-child(1){animation-delay:.05s}
.steps.reveal.in > *:nth-child(2),.flip-grid.reveal.in > *:nth-child(2),.rev-grid.reveal.in > *:nth-child(2){animation-delay:.13s}
.steps.reveal.in > *:nth-child(3),.flip-grid.reveal.in > *:nth-child(3),.rev-grid.reveal.in > *:nth-child(3){animation-delay:.21s}
.steps.reveal.in > *:nth-child(4),.flip-grid.reveal.in > *:nth-child(4),.rev-grid.reveal.in > *:nth-child(4){animation-delay:.29s}
.steps.reveal.in > *:nth-child(5),.flip-grid.reveal.in > *:nth-child(5),.rev-grid.reveal.in > *:nth-child(5){animation-delay:.37s}
.steps.reveal.in > *:nth-child(6),.flip-grid.reveal.in > *:nth-child(6),.rev-grid.reveal.in > *:nth-child(6){animation-delay:.45s}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001s !important;
    animation-delay:0s !important;      /* otherwise staggered delays still stall content */
    transition-duration:.001s !important;
    transition-delay:0s !important;
  }
  html{scroll-behavior:auto}
}

/* ============ ACCESSIBILITY LAYER ============ */

/* Visible keyboard focus — gold ring reads clearly on navy and on gold buttons.
   :focus-visible keeps rings off mouse clicks but on for keyboard/AT users. */
a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
  border-radius:6px;
}
/* On gold surfaces, switch the ring to navy so it stays visible */
.btn-gold:focus-visible,
.cta-band .btn:focus-visible{
  outline-color:var(--navy);
}
/* Legacy fallback: browsers without :focus-visible get a full ring on :focus */
@supports not selector(:focus-visible){
  a:focus,button:focus,select:focus,input:focus,textarea:focus{
    outline:3px solid var(--gold);outline-offset:3px;
  }
}

/* Skip link — keyboard users bypass the nav (48 links deep on some pages) */
.skip-link{
  position:fixed;left:12px;top:0;z-index:2001;
  background:var(--gold);color:var(--navy);
  font-weight:700;font-size:.9rem;padding:14px 22px;border-radius:0 0 12px 12px;
  /* GPU-accelerated: animate transform, never `top` */
  transform:translateY(-120%);
  transition:transform .22s cubic-bezier(.16,1,.3,1);
}
.skip-link:focus{transform:translateY(0)}

/* Touch targets — WCAG 2.5.8 / 44x44 minimum for comfortable tapping,
   important here given the Medicare-age audience. */
.nav-links a{min-height:44px;display:inline-flex;align-items:center}
.btn{min-height:44px}
.seg button{min-height:44px}
.acc-head{min-height:44px}
.car-arrow,.fontsize button{min-width:44px;min-height:44px}
#flyBtn{min-width:44px;min-height:44px}

/* Respect users who ask the OS for more contrast */
@media (prefers-contrast: more){
  :root{--muted:#b8b4ac}
  .legal{color:rgba(255,255,255,.72)}
  .btn-ghost{border-color:rgba(255,255,255,.7)}
}
