/* Senior-friendly enhancements for 65Plus Health Assist */

html {
  font-size: 18px;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  line-height: 1.65;
}

/* Larger, easier-to-tap buttons */
a.btn-primary,
a.btn-outline,
a.btn-gold,
a.btn-white,
a.nav-cta,
a.nav-phone,
a.nav-quote,
a.util-phone,
a.btn,
button.submit-btn,
.phone-big,
.call-big {
  min-height: 48px !important;
  font-size: 1rem !important;
}

/* Form fields — easier to read and tap */
.field input,
.field select,
input[type="text"],
input[type="tel"],
input[type="email"] {
  font-size: 1.05rem !important;
  padding: 14px 16px !important;
  min-height: 52px !important;
  border-radius: 10px !important;
}

.field label {
  font-size: 0.95rem !important;
  margin-bottom: 6px !important;
}

.tcpa-text {
  font-size: 0.82rem !important;
  line-height: 1.65 !important;
}

.tcpa-box input[type="checkbox"] {
  width: 22px !important;
  height: 22px !important;
  margin-top: 3px !important;
}

/* Body text readability */
p,
.benefit-desc,
.step p,
.faq-item p,
.article p,
.hero-sub,
.card-sub {
  font-size: 1rem !important;
  line-height: 1.7 !important;
}

.faq-item h3,
.benefit-title,
.step h3 {
  font-size: 1.05rem !important;
}

.sh,
.hero h1 {
  line-height: 1.25 !important;
}

/* Focus states for keyboard users */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid #d97706;
  outline-offset: 2px;
}

/* Mobile sticky call bar */
.senior-sticky-call {
  display: none;
}

@media (max-width: 768px) {
  body.senior-has-sticky {
    padding-bottom: 80px;
  }

  .senior-sticky-call {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #fff;
    border-top: 2px solid #d97706;
    padding: 10px 14px 14px;
    box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.12);
  }

  .senior-sticky-call a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #d97706;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
    padding: 14px 20px;
    border-radius: 10px;
    min-height: 52px;
  }

  .senior-sticky-call span {
    display: block;
    text-align: center;
    font-size: 0.75rem;
    color: #666;
    margin-top: 6px;
  }

  /* Bigger nav phone on mobile */
  .nav-cta {
    padding: 10px 14px !important;
    font-size: 0.85rem !important;
  }

  .hero-left {
    padding: 32px 20px !important;
  }

  .hero h1 {
    font-size: 1.75rem !important;
  }

  .hero-btns {
    flex-direction: column;
  }

  .hero-btns a {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .service-strip-inner {
    grid-template-columns: 1fr !important;
  }
}

/* High contrast for small footer/legal text */
.footer-bottom p,
.footer-note {
  font-size: 0.78rem !important;
  line-height: 1.65 !important;
}
