/* ==========================================================================
   eMaintenance — site.css
   Loaded AFTER styles.css (compiled from styles.scss).
   Holds: the styles that used to be inline in index*.html, accessibility
   overrides (contrast, focus), footer and legal pages.
   ========================================================================== */

/* ---------- Accessibility: skip link, focus, contrast ---------- */
.skip-link {
  position: absolute;
  left: 1rem;
  top: -100px;
  z-index: 10000;
  background: #0e1426;
  color: #fff !important;
  padding: .75rem 1.25rem;
  border-radius: 0 0 6px 6px;
  font-weight: 500;
  text-decoration: none;
}
.skip-link:focus { top: 0; }

/* styles.css removes outlines (outline:0). Restore a visible focus ring for keyboard users. */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #f5a000 !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}
main:focus, section:focus { outline: none; }

/* Body text was #878d98 (3.1:1 on #f7f7f7) — fails WCAG AA. */
p { color: #5c6370; }
.benefit-box small, .mobile-content h4 { color: #5c6370; }

/* Primary blue on white text was #007bff (3.98:1) — darkened to pass AA. */
.btn-primary { background-color: #0062cc; border-color: #0062cc; }
.btn-primary:hover, .btn-primary:focus { background-color: #004fa3; border-color: #004fa3; }
.bg-blue { background-color: #1d5bd1; }

/* Bootstrap .sr-only exists; alias for clarity in markup */
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Home page (moved from inline <style>) ---------- */
.benefits-list { list-style: none; padding-left: 0; }
.benefits-list li { padding: 10px 0 10px 30px; position: relative; }
.benefits-list li:before {
  content: "\2714"; color: #1e7e34; font-weight: bold; position: absolute; left: 0;
}
.step-number {
  width: 60px; height: 60px; background: #0062cc; color: #fff; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; font-weight: bold; margin-bottom: 15px;
}
#how-it-works h3.step-title { font-size: 1.25rem; font-weight: 500; }

#features .white-box ul { list-style: none; padding-left: 0; }
#features .white-box ul li { padding: 5px 0 5px 20px; position: relative; }
#features .white-box ul li:before { content: "\2022"; color: #0062cc; font-weight: bold; position: absolute; left: 0; }
/* feature descriptions (were <h5>, now <p class="feature-desc">) */
#features .feature-desc {
  font-size: .8125rem; line-height: 1.25rem; font-weight: 400; margin: 0;
  color: #5c6370; letter-spacing: .3px;
}
#features .white-box { max-width: 220px; box-shadow: 0 6px 42.5px 7.5px rgba(14,20,38,.1); }
@media only screen and (max-width: 579px) {
  #features .white-box { max-width: 100%; }
  #features .services { margin-top: 0 !important; }
}

#pool { background-color: #f8f9fa; }
.check-list { list-style: none; padding-left: 0; }
.check-list li { padding: 8px 0 8px 28px; position: relative; }
.check-list li:before { content: "\2714"; color: #1e7e34; font-weight: bold; position: absolute; left: 0; }
.check-list-center { display: inline-block; text-align: left; }
.badge-pool { background: #0062cc; color: #fff; padding: 10px 20px; border-radius: 25px; font-size: 14px; }
.pool-cta {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  border-radius: 10px; border-left: 4px solid #0062cc; position: relative; z-index: 10;
}

#mobile-access { background: linear-gradient(135deg, #f5f7fa 0%, #e4e8eb 100%); }
.mobile-img { max-width: 350px; }
.mobile-content h4 { font-weight: 300; }
.benefit-box { background: #fff; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,.1); }
.benefit-box h3 { font-size: 1.2rem; }

/* Contact form */
#contactForm label { font-weight: 500; color: #333; }
#contactForm .form-control { border-radius: 5px; border: 1px solid #8a8f98; padding: 12px; }
#contactForm .form-control:focus { border-color: #0062cc; box-shadow: 0 0 0 .2rem rgba(0,98,204,.25); }
#contactForm .form-control::placeholder { color: #6c737d; }
.form-privacy-note { font-size: .875rem; line-height: 1.35rem; margin: .5rem 0 0; letter-spacing: 0; }
.form-privacy-note a { text-decoration: underline; }
.hp-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.contact-item-inline { padding: 10px; }
.contact-item-inline strong { display: block; color: #0a4fd5; margin-bottom: 5px; }
.contact-item-inline a { color: #333; }
.contact-item-inline a:hover { color: #0a4fd5; }
#contact .white-box { max-width: 100% !important; width: 100%; }
.social-links a { display: inline-block; }

/* ---------- Footer ---------- */
.site-footer { color: #fff; padding: 2rem 0 1.5rem; }
.site-footer p, .site-footer li, .site-footer a { color: #fff; font-size: .8125rem; line-height: 1.35rem; letter-spacing: .3px; }
.site-footer a { text-decoration: underline; }
.site-footer a:hover { color: #fff; text-decoration: none; }
.site-footer .footer-legal-links { list-style: none; padding: 0; margin: .25rem 0 0; }
.site-footer .footer-legal-links li { display: inline-block; margin: 0 .9rem .3rem 0; }
.site-footer .footer-company { opacity: 1; }
.site-footer .footer-logo { max-height: 32px; width: auto; }
@media (max-width: 767px) {
  .site-footer { text-align: center; }
  .site-footer .footer-legal-links li { margin: 0 .5rem .4rem; }
}

/* ---------- Legal pages ---------- */
.legal-page { background: #fff; padding: 3rem 0 4rem; }
.legal-page .legal-wrap { max-width: 860px; margin: 0 auto; padding: 0 1.25rem; }
.legal-page h1 { font-size: 2.1rem; font-weight: 500; color: #0e1426; margin-bottom: .5rem; }
.legal-page .legal-updated { font-size: .9rem; color: #5c6370; margin-bottom: 2rem; letter-spacing: 0; }
.legal-page h2 { font-size: 1.35rem; font-weight: 500; color: #0a4fd5; margin: 2.25rem 0 .75rem; }
.legal-page h3 { font-size: 1.1rem; font-weight: 500; color: #0e1426; margin: 1.5rem 0 .5rem; }
.legal-page p, .legal-page li, .legal-page td, .legal-page th {
  color: #2f3540; font-weight: 400; letter-spacing: 0; font-size: 1rem; line-height: 1.65rem;
}
.legal-page ul, .legal-page ol { padding-left: 1.4rem; margin-bottom: 1rem; }
.legal-page li { margin-bottom: .35rem; }
.legal-page a { text-decoration: underline; }
.legal-page .legal-toc { background: #f4f6fa; border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 2rem; }
.legal-page .legal-toc ol { margin: 0; }
.legal-page .legal-box { background: #f4f6fa; border-left: 4px solid #0062cc; padding: 1rem 1.25rem; border-radius: 4px; margin: 1rem 0; }
.legal-page table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; }
.legal-page th, .legal-page td { border: 1px solid #d5d9e0; padding: .6rem .75rem; vertical-align: top; text-align: left; font-size: .95rem; }
.legal-page th { background: #f4f6fa; font-weight: 500; }
.legal-page .table-scroll { overflow-x: auto; }
.legal-nav-back { display: inline-block; margin-bottom: 1.5rem; font-size: .95rem; }

/* Nav links were #878d98 (3.3:1) */
nav ul li a { color: #5c6370; }
.mobile-content .mobile-subtitle { color: #5c6370; font-weight: 300; letter-spacing: 0; }
