/* High-energy theme for the consumer Medicare landing pages (medicare.html, turning-65.html).
   Everything is scoped to body.hype so the shared header/footer/style blocks that other pages
   copy from these files are unaffected. CSP forbids style attributes, so per-element variation
   uses classes and JS sets custom properties through the CSSOM. */

@property --hype-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

.hype {
  --bg: #04130f;
  --bg2: #0a2a24;
  --mint: #2ff5b8;
  --lime: #c6ff5e;
  --sun: #ffb547;
  --coral: #ff5d73;
  --violet: #7b5cff;
  --mint-ink: #067a55;
  --on-dark: #eafff7;
  --on-dark-soft: rgba(234, 255, 247, 0.8);
  --hfont: 'Bricolage Grotesque', 'Sora', sans-serif;
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  background: var(--bg);
  color: var(--on-dark);
  overflow-x: clip;
}
html:has(body.hype) { overflow-x: clip; background: #04130f; }
.hype ::selection { background: var(--mint); color: var(--bg); }
.hype h1, .hype h2, .hype h3,
.hype .guide-toc .guide-toc-title,
.hype .guide-cta .guide-cta-title { font-family: var(--hfont); font-weight: 800; letter-spacing: -0.03em; }
.hype a:focus-visible, .hype button:focus-visible, .hype input:focus-visible, .hype select:focus-visible,
.hype summary:focus-visible { outline: 3px solid var(--mint); outline-offset: 3px; }

/* ---------- Header ---------- */
.hype header {
  position: sticky; top: 0;
  background: rgba(4, 19, 15, 0.55);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  backdrop-filter: blur(16px) saturate(150%);
  border-bottom: 1px solid rgba(47, 245, 184, 0.12);
  transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.hype header.is-scrolled {
  background: rgba(4, 19, 15, 0.92);
  border-bottom-color: rgba(47, 245, 184, 0.22);
  box-shadow: 0 12px 30px -14px rgba(0, 0, 0, 0.7);
}
.hype .wordmark {
  font-family: var(--hfont); letter-spacing: -0.03em;
  background: linear-gradient(90deg, var(--mint), var(--lime));
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.hype .wordmark .dot { background: var(--mint); box-shadow: 0 0 12px var(--mint); }

/* ---------- Buttons ---------- */
.hype .call-pill,
.hype .elig-submit,
.hype .lead-submit,
.hype .amq .amq-submit,
.hype .amq .amq-call,
.hype .guide .guide-btn {
  position: relative; overflow: hidden; isolation: isolate;
  background: linear-gradient(135deg, var(--mint), var(--lime));
  color: var(--bg);
  border: 0; border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 10px 30px -8px rgba(47, 245, 184, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.55);
  transition: transform 0.4s var(--spring), box-shadow 0.3s ease;
}
.hype .call-pill::after,
.hype .elig-submit::after,
.hype .lead-submit::after,
.hype .amq .amq-submit::after,
.hype .amq .amq-call::after,
.hype .guide .guide-btn::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.7) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 0.7s ease;
}
.hype .call-pill:hover,
.hype .elig-submit:hover,
.hype .lead-submit:hover:not(:disabled),
.hype .amq .amq-submit:hover:not(:disabled),
.hype .amq .amq-call:hover,
.hype .guide .guide-btn:hover {
  background: linear-gradient(135deg, var(--mint), var(--lime));
  color: var(--bg);
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 18px 40px -10px rgba(47, 245, 184, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
.hype .call-pill:hover::after,
.hype .elig-submit:hover::after,
.hype .lead-submit:hover:not(:disabled)::after,
.hype .amq .amq-submit:hover:not(:disabled)::after,
.hype .amq .amq-call:hover::after,
.hype .guide .guide-btn:hover::after { transform: translateX(120%); }
.hype .call-pill:active, .hype .elig-submit:active, .hype .lead-submit:active,
.hype .amq .amq-submit:active, .hype .guide .guide-btn:active { transform: translateY(0) scale(0.98); }
.hype .lead-submit:disabled, .hype .amq .amq-submit:disabled { opacity: 0.65; }

/* Secondary buttons */
.hype .guide .guide-btn-alt,
.hype .guide .guide-btn-alt:hover {
  background: rgba(255, 255, 255, 0.06); color: var(--on-dark);
  box-shadow: inset 0 0 0 2px rgba(47, 245, 184, 0.6);
}
.hype .guide .guide-btn-alt:hover { box-shadow: inset 0 0 0 2px var(--mint), 0 14px 30px -12px rgba(47, 245, 184, 0.5); }
.hype .amq .amq-cal { border-radius: 999px; border-color: var(--mint-ink); color: var(--mint-ink); }
.hype .amq .amq-back {
  border-radius: 999px; background: #f2f8f5; border: 2px solid #b9d3c8;
  transition: transform 0.35s var(--spring), border-color 0.2s ease;
}
.hype .amq .amq-back:hover { border-color: var(--mint-ink); color: var(--mint-ink); transform: translateY(-2px); }

/* ---------- Hero ---------- */
.hype .hype-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(10, 42, 36, 0.9), transparent 70%),
    var(--bg);
  color: var(--on-dark);
}
.hype-orbs, .hype-grid { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hype-grid {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 25%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 25%, transparent 75%);
}
.hype-orb {
  position: absolute; border-radius: 50%;
  width: var(--s); height: var(--s);
  /* Mouse offset (set by hype.js) uses `translate`, the drift animation uses `transform`. */
  translate: calc(var(--mx, 0) * var(--k)) calc(var(--my, 0) * var(--k));
  transition: translate 1.2s var(--ease-out);
  animation: hypeDrift 18s ease-in-out infinite alternate;
  opacity: 0.6;
}
.hype-orb-mint { --s: min(560px, 90vw); --k: 36px; top: -18%; left: -12%; background: radial-gradient(circle, rgba(47, 245, 184, 0.75), transparent 65%); }
.hype-orb-violet { --s: min(620px, 100vw); --k: -48px; top: 8%; right: -18%; background: radial-gradient(circle, rgba(123, 92, 255, 0.7), transparent 65%); animation-duration: 22s; animation-delay: -6s; }
.hype-orb-coral { --s: min(440px, 80vw); --k: 28px; bottom: -22%; left: 32%; background: radial-gradient(circle, rgba(255, 93, 115, 0.6), transparent 65%); animation-duration: 16s; animation-delay: -10s; }
@keyframes hypeDrift {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(6%, 8%) scale(1.08); }
  100% { transform: translate(-6%, 3%) scale(0.96); }
}

/* Pulsing pill above the headline */
.hype .hype-pill {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Public Sans', sans-serif; font-weight: 700; letter-spacing: 0; text-transform: none;
  color: var(--mint);
  background: rgba(47, 245, 184, 0.1);
  border: 1px solid rgba(47, 245, 184, 0.4);
  border-radius: 999px; padding: 7px 18px 7px 14px;
  animation: hypePillGlow 2.6s ease-in-out infinite;
}
.hype .hype-pill::before {
  content: ""; flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%;
  background: var(--mint);
  animation: hypePing 1.6s ease-out infinite;
}
@keyframes hypePing {
  0% { box-shadow: 0 0 0 0 rgba(47, 245, 184, 0.7); }
  100% { box-shadow: 0 0 0 12px rgba(47, 245, 184, 0); }
}
@keyframes hypePillGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(47, 245, 184, 0); }
  50% { box-shadow: 0 0 28px -4px rgba(47, 245, 184, 0.45); }
}

/* Headline highlights */
.hype .hype-grad, .hype .hype-grad-hot {
  background-size: 200% auto;
  -webkit-background-clip: text; background-clip: text;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  color: transparent;
  animation: hypeShimmer 4s linear infinite;
}
.hype .hype-grad { background-image: linear-gradient(90deg, var(--mint), var(--lime), var(--mint)); }
.hype .hype-grad-hot { background-image: linear-gradient(90deg, var(--sun), var(--coral), var(--sun)); }
@keyframes hypeShimmer { to { background-position: -200% center; } }
.hype .hype-u { position: relative; display: inline-block; }
.hype .hype-u::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -0.04em; height: 0.11em;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--mint), var(--lime));
  transform-origin: left center;
  animation: hypeGrow 0.9s 0.8s var(--ease-out) both;
}
@keyframes hypeGrow { from { transform: scaleX(0); } }

/* Staggered entrance */
.hype .hype-in { animation: hypeUp 0.8s var(--ease-out) both; }
.hype .hype-d1 { animation-delay: 0.08s; }
.hype .hype-d2 { animation-delay: 0.16s; }
.hype .hype-d3 { animation-delay: 0.24s; }
.hype .hype-d4 { animation-delay: 0.32s; }
.hype .hype-d5 { animation-delay: 0.42s; }
@keyframes hypeUp { from { opacity: 0; transform: translateY(26px); } }
@media (max-width: 920px) {
  .hype .hype-in { animation-duration: 0.45s; animation-delay: 0s; }
}

/* ---------- Glowing form wrapper + sticker ---------- */
.hype .hype-glow { position: relative; isolation: isolate; }
.hype .hype-glow::before {
  content: ""; position: absolute; inset: -14px; z-index: -1; border-radius: 40px;
  background: linear-gradient(135deg, var(--mint), var(--sun) 40%, var(--coral) 70%, var(--violet));
  filter: blur(36px); opacity: 0.45;
  pointer-events: none;
}
.hype .hype-ring {
  position: relative; border-radius: 26px; padding: 3px;
  background: conic-gradient(from var(--hype-a), var(--mint), var(--sun), var(--coral), var(--violet), var(--mint));
  animation: hypeSpin 6s linear infinite;
}
@keyframes hypeSpin { to { --hype-a: 360deg; } }
.hype .hype-ring > .amq-card,
.hype .hype-ring > .elig-card,
.hype .hype-ring > .lead-form {
  border: 0; border-radius: 23px; box-shadow: none; overflow: hidden;
  background: #fff; color: #10251f;
}
.hype .elig-card::before { display: none; }

.hype .hype-sticker {
  position: absolute; z-index: 3; top: -46px; right: -26px;
  width: 112px; height: 112px; border-radius: 50%;
  display: grid; place-items: center;
  background: radial-gradient(circle at 32% 28%, #ffd98f, var(--sun) 60%, #f59a1b);
  color: #2b1700;
  box-shadow: 0 14px 30px -10px rgba(255, 181, 71, 0.75), inset 0 -4px 10px rgba(160, 80, 0, 0.25);
  rotate: -10deg;
  pointer-events: none;
}
.hype .hype-sticker svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: hypeRotate 16s linear infinite; }
.hype .hype-sticker text { font: 800 10.5px 'Public Sans', sans-serif; letter-spacing: 0.12em; fill: currentColor; }
.hype .hype-sticker b { font: 800 26px/1 var(--hfont); }
@keyframes hypeRotate { to { transform: rotate(360deg); } }
@media (max-width: 600px) {
  .hype .hype-sticker { width: 88px; height: 88px; top: -50px; right: -10px; }
  .hype .hype-sticker text { font-size: 10.5px; }
  .hype .hype-sticker b { font-size: 20px; }
}

/* ---------- Quiz (turning-65) ---------- */
.hype .amq .amq-card { padding-top: 36px; }
.hype .amq .amq-count { color: #2c4a40; }
.hype .amq .amq-bar { height: 12px; background: #e3efea; }
.hype .amq .amq-bar i {
  position: relative; overflow: hidden;
  background: linear-gradient(90deg, var(--mint), var(--lime), var(--sun));
  transition: width 0.6s var(--spring);
}
.hype .amq .amq-bar i::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.85) 50%, transparent 80%);
  transform: translateX(-100%);
  animation: hypeBarShine 1.8s ease-in-out infinite;
}
@keyframes hypeBarShine { to { transform: translateX(100%); } }
.hype .amq[data-dir="fwd"] .amq-step.on,
.hype .amq .amq-done.show { animation: hypeFromR 0.45s var(--ease-out) both; }
.hype .amq[data-dir="back"] .amq-step.on { animation: hypeFromL 0.45s var(--ease-out) both; }
@keyframes hypeFromR { from { opacity: 0; transform: translateX(48px); } }
@keyframes hypeFromL { from { opacity: 0; transform: translateX(-48px); } }

.hype .amq .amq-opt {
  position: relative;
  border: 2px solid #c9ddd4; border-radius: 18px; background: #fff;
  box-shadow: 0 2px 0 #dbe9e3;
  transition: transform 0.35s var(--spring), box-shadow 0.25s ease, border-color 0.2s ease, background 0.2s ease;
}
.hype .amq .amq-opt:hover {
  outline: none;
  border-color: #13b386; background: #f3fdf9;
  transform: translateY(-4px);
  box-shadow: 0 14px 28px -14px rgba(4, 19, 15, 0.45), 0 0 0 4px rgba(47, 245, 184, 0.18);
}
.hype .amq .amq-opt:focus-visible { border-color: #13b386; background: #f3fdf9; outline: 3px solid #0a8f68; outline-offset: 2px; }
.hype .amq .amq-opt.picked {
  border-color: #0a9f74;
  background: linear-gradient(135deg, rgba(47, 245, 184, 0.2), rgba(198, 255, 94, 0.28));
}
.hype .amq .amq-opt.picked::after {
  content: "✓"; position: absolute; top: -12px; right: -10px;
  width: 32px; height: 32px; border-radius: 50%;
  display: grid; place-items: center;
  font: 800 18px/1 'Public Sans', sans-serif;
  background: var(--bg); color: var(--mint);
  box-shadow: 0 6px 14px -4px rgba(4, 19, 15, 0.5);
  animation: hypePop 0.45s var(--spring) both;
}
@keyframes hypePop { from { transform: scale(0) rotate(-90deg); } }
.hype .amq input[type=text], .hype .amq input[type=tel] { border-radius: 14px; border-color: #a9c4b9; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.hype .amq input:focus { outline: none; border-color: #0a9f74; box-shadow: 0 0 0 4px rgba(47, 245, 184, 0.35); }
.hype .amq .amq-window { border-radius: 16px; }
.hype .amq .amq-tpmo { color: #2c4a40; }

/* Invalid fields */
.hype .hype-invalid { border-color: var(--coral) !important; box-shadow: 0 0 0 4px rgba(255, 93, 115, 0.2) !important; }
.hype .hype-shake { animation: hypeShake 0.45s ease both; }
@keyframes hypeShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-9px); }
  40% { transform: translateX(8px); }
  60% { transform: translateX(-6px); }
  80% { transform: translateX(4px); }
}

/* ---------- medicare.html hero + forms ---------- */
.hype .hero h1 { color: #fff; font-size: clamp(36px, 7.4vw, 64px); line-height: 1.05; }
.hype .hero p.lede { color: var(--on-dark-soft); }
.hype .hero-call, .hype .hero-note { color: var(--on-dark-soft); }
.hype .hero-call a, .hype .hero-note a, .hype .t65-intro a { color: var(--mint); }
.hype .badge {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  color: var(--on-dark); border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: transform 0.35s var(--spring), border-color 0.2s ease;
}
.hype .badge:hover { transform: translateY(-3px); border-color: rgba(47, 245, 184, 0.5); }
.hype .badge svg { color: var(--mint); }
.hype .elig-card .field input:focus,
.hype .lead-form .field input:focus,
.hype .lead-form .field select:focus { border-color: #0a9f74; box-shadow: 0 0 0 4px rgba(47, 245, 184, 0.35); }
.hype .elig-card .field input, .hype .lead-form .field input, .hype .lead-form .field select { border-radius: 14px; border-color: #a9c4b9; }
.hype .elig-card .elig-title, .hype .lead-form h3 { color: #04130f; }
.hype .consent-box { background: #f1f8f5; border-radius: 14px; }
.hype .consent-box input { accent-color: #0a9f74; }
.hype .elig-result-icon { background: #e3fbf2; }

/* t65 hero text */
.hype .t65-intro h1 { color: #fff; font-size: clamp(36px, 7.4vw, 62px); line-height: 1.05; }
.hype .t65-intro p { color: var(--on-dark-soft); }
.hype .t65-hero { padding-bottom: 88px; }

/* ---------- Marquee band ---------- */
.hype .hype-band-wrap { position: relative; z-index: 2; overflow: hidden; padding: 30px 0; margin: -30px 0; }
.hype .hype-band {
  width: 110%; margin-left: -5%;
  transform: rotate(-2deg);
  background: linear-gradient(90deg, var(--mint), var(--lime), var(--sun));
  color: var(--bg);
  padding: 16px 0;
  box-shadow: 0 18px 40px -18px rgba(47, 245, 184, 0.7);
  overflow: hidden;
}
.hype .hype-band-track { display: flex; width: max-content; animation: hypeMarquee 32s linear infinite; }
.hype .hype-band-set { display: flex; flex: none; }
.hype .hype-band-item {
  display: inline-flex; align-items: center; gap: 26px; padding-right: 26px;
  font: 800 22px/1.1 var(--hfont); letter-spacing: -0.01em; text-transform: uppercase; white-space: nowrap;
}
.hype .hype-band-item::after { content: "✦"; font-size: 0.8em; }
@keyframes hypeMarquee { to { transform: translateX(-50%); } }
@media (max-width: 600px) { .hype .hype-band-item { font-size: 18px; } }

/* ---------- Dark content sections (medicare.html) ---------- */
.hype .section { background: var(--bg); }
.hype .section-head h2 { color: #fff; }
.hype .section-head p { color: var(--on-dark-soft); }
.hype .eyebrow {
  background: rgba(47, 245, 184, 0.1); color: var(--mint);
  border: 1px solid rgba(47, 245, 184, 0.35); border-radius: 999px;
}
.hype .plan-card {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 22px;
  transition: transform 0.4s var(--spring), border-color 0.3s ease, box-shadow 0.3s ease;
}
.hype .plan-card:hover { transform: translateY(-6px); border-color: rgba(47, 245, 184, 0.5); box-shadow: 0 24px 50px -24px rgba(47, 245, 184, 0.45); }
.hype .plan-card .tag { background: rgba(198, 255, 94, 0.14); color: var(--lime); border-radius: 999px; }
.hype .plan-card h3 { color: #fff; }
.hype .plan-card p { color: var(--on-dark-soft); }

/* How it works */
.hype .steps {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--bg2);
}
.hype .steps::before, .hype .form-section::before, .hype .guide-cta::before,
.hype .steps::after, .hype .form-section::after, .hype .guide-cta::after {
  content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none;
  animation: hypeDrift 20s ease-in-out infinite alternate;
}
.hype .steps::before, .hype .form-section::before, .hype .guide-cta::before {
  width: 520px; height: 520px; top: -220px; left: -160px;
  background: radial-gradient(circle, rgba(47, 245, 184, 0.35), transparent 65%);
}
.hype .steps::after, .hype .form-section::after, .hype .guide-cta::after {
  width: 560px; height: 560px; bottom: -260px; right: -180px;
  background: radial-gradient(circle, rgba(123, 92, 255, 0.4), transparent 65%);
  animation-delay: -8s;
}
.hype .step-grid { counter-reset: hstep; }
.hype .step {
  counter-increment: hstep;
  padding: 30px 26px 28px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 24px;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: transform 0.45s var(--spring), border-color 0.3s ease, box-shadow 0.3s ease;
}
.hype .step:hover { transform: translateY(-8px) rotate(-1.2deg); border-color: rgba(198, 255, 94, 0.55); box-shadow: 0 30px 60px -30px rgba(47, 245, 184, 0.5); }
.hype .step:nth-child(even):hover { transform: translateY(-8px) rotate(1.2deg); }
.hype .step-num {
  position: static; width: auto; height: auto; display: block;
  background: none; font-size: 0; margin-bottom: 10px;
}
.hype .step-num::before {
  content: counter(hstep, decimal-leading-zero);
  content: counter(hstep, decimal-leading-zero) / "";
  display: inline-block;
  font: 800 68px/0.9 var(--hfont); letter-spacing: -0.05em;
  background: linear-gradient(135deg, var(--mint), var(--lime) 50%, var(--sun));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hype .step h3 { color: #fff; }
.hype .step p { color: var(--on-dark-soft); }

/* Lead form section */
.hype .form-section { position: relative; isolation: isolate; overflow: hidden; background: var(--bg); }
.hype .form-copy h2 { font-size: clamp(32px, 6vw, 48px); }
.hype .form-copy li svg { color: var(--mint); }

/* ---------- Long-form guide (kept light for reading) ---------- */
.hype .guide {
  background: #f5fbf8; color: #10251f;
  border-top: 0; border-radius: 44px 44px 0 0;
  position: relative; z-index: 1;
}
.hype .guide h2, .hype .guide h3 { color: #04130f; }
.hype .guide p, .hype .guide li { color: #10251f; }
.hype .guide a { color: var(--mint-ink); }
.hype .guide .guide-meta { color: #3a5149; }
.hype .guide .eyebrow { background: var(--bg); color: var(--mint); border-color: var(--bg); padding: 6px 14px; }
.hype .guide-toc { background: #fff; border: 1px solid #d5e8df; border-radius: 22px; box-shadow: 0 18px 40px -30px rgba(4, 19, 15, 0.5); }
.hype .guide-key { background: #e6fbf2; border-left-color: #13b386; border-radius: 16px; }
.hype .guide-warn { background: #fff5e3; border-left-color: var(--sun); border-radius: 16px; }

/* Tables */
.hype .guide-table-wrap {
  background: #fff; border: 1px solid #d5e8df; border-radius: 22px;
  box-shadow: 0 20px 44px -30px rgba(4, 19, 15, 0.55);
}
.hype .guide table { border-collapse: separate; border-spacing: 0; background: transparent; }
.hype .guide caption { caption-side: top; padding: 16px 18px 10px; color: #3a5149; }
.hype .guide th, .hype .guide td { border: 0; border-bottom: 1px solid #e3efe9; transition: background 0.2s ease; }
.hype .guide thead th {
  background: var(--bg); color: var(--mint);
  font: 800 14px/1.3 'Public Sans', sans-serif; letter-spacing: 0.08em; text-transform: uppercase;
}
.hype .guide tbody th { background: #f6fbf8; }
.hype .guide tbody tr:last-child > * { border-bottom: 0; }
.hype .guide tbody tr:hover > * { background: #e9fcf4; }
.hype .guide td.hype-price { font-weight: 800; color: var(--mint-ink); }

/* FAQ */
.hype .guide-faq details {
  background: #fff; border: 2px solid #dbeae3; border-radius: 20px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.hype .guide-faq details:hover { border-color: #b6dccd; }
.hype .guide-faq details[open] { border-color: var(--mint); box-shadow: 0 16px 36px -22px rgba(19, 179, 134, 0.7); }
.hype .guide-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hype .guide-faq summary::-webkit-details-marker { display: none; }
.hype .guide-faq summary::after {
  content: "+"; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bg); color: var(--mint);
  font: 700 26px/1 'Public Sans', sans-serif;
  transition: transform 0.35s var(--spring), background 0.2s ease;
}
.hype .guide-faq details[open] summary { border-bottom: 0; }
.hype .guide-faq details[open] summary::after { transform: rotate(45deg); }
.hype .guide-faq .ans { padding-top: 0; }

/* Call-to-action blocks */
.hype .guide-cta {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--bg); border-radius: 30px; padding: 44px 28px 36px;
  box-shadow: 0 30px 60px -30px rgba(4, 19, 15, 0.8);
}
.hype .guide-cta p { color: var(--on-dark-soft); }
.hype .guide-cta .guide-cta-title { color: #fff; font-size: clamp(28px, 5vw, 40px); line-height: 1.1; }
.hype .hype-final .guide-btn:not(.guide-btn-alt) { animation: hypeBtnPulse 2.4s ease-in-out infinite; }
@keyframes hypeBtnPulse {
  0%, 100% { box-shadow: 0 10px 30px -8px rgba(47, 245, 184, 0.55), 0 0 0 0 rgba(47, 245, 184, 0.5); }
  50% { box-shadow: 0 10px 30px -8px rgba(47, 245, 184, 0.55), 0 0 0 14px rgba(47, 245, 184, 0); }
}

/* ---------- Footer ---------- */
.hype footer { background: #020b09; color: #a7c2b8; border-top: 1px solid rgba(47, 245, 184, 0.15); }
.hype footer .foot-wordmark {
  font-family: var(--hfont); letter-spacing: -0.03em;
  background: linear-gradient(90deg, var(--mint), var(--lime));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hype footer .foot-links a { color: #d6fff1; }

/* ---------- Scroll reveal (only when JS is running) ---------- */
@media (prefers-reduced-motion: no-preference) {
  html.js .hype .hype-reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.8s ease, transform 0.8s var(--ease-out); }
  html.js .hype .hype-reveal.is-in { opacity: 1; transform: none; }
}

/* ---------- Confetti layer ---------- */
.hype-confetti { position: fixed; inset: 0; z-index: 9999; pointer-events: none; overflow: hidden; }
.hype-confetti i { position: absolute; display: block; will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
  .hype *, .hype *::before, .hype *::after { animation: none !important; transition: none !important; }
}

@media (max-width: 500px) {
  .hype .wordmark { font-size: 18px; white-space: nowrap; }
  .hype .header-inner { gap: 10px; }
}

/* Wrappers take over the sizing of the cards they wrap (medicare.html). */
.hype .hero-grid > .hype-glow { width: 100%; max-width: 600px; margin: 28px auto 0; text-align: left; }
.hype .hype-ring > .elig-card { max-width: none; margin: 0; }
