/* Homepage hero and reusable quote form. */
.hero-section { min-height:0; background-position:center right; }
.hero-section .hero-shade { background:linear-gradient(90deg,rgba(3,17,43,.97) 0%,rgba(5,26,53,.89) 37%,rgba(6,30,57,.32) 72%,rgba(5,20,43,.15) 100%); }
.hero-section .min-vh-hero { min-height:clamp(560px,72vh,780px); height:auto; padding-top:70px; padding-bottom:70px; }
.hero-section .hero-copy { min-height:0; padding-top:0; padding-bottom:0; }
.hero-section .eyebrow { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:12px; letter-spacing:.16em; font-weight:700; line-height:1.8; color:#77d6ff; margin-bottom:22px; }
.hero-section .eyebrow span { color:#5184a8; padding:0; }
.hero-section .hero-copy h1 { font-size:clamp(42px,3.8vw,70px); line-height:1.12; letter-spacing:-.045em; font-weight:700; max-width:740px; margin:0 0 24px; text-wrap:balance; }
.hero-section .hero-copy h1 span { color:#22b8ff; display:block; }
.hero-section .hero-copy > p { font-size:clamp(16px,1.05vw,19px); line-height:1.85; color:#d0dfef; max-width:560px; margin-bottom:30px; }
.hero-section .hero-actions { gap:26px; flex-wrap:wrap; }
.hero-section .hero-actions .hero-quote-btn { display:inline-flex; justify-content:center; align-items:center; gap:22px; padding:17px 24px; border:1px solid #24baff; border-radius:9px; font-size:15px; font-weight:700; color:#fff; background:linear-gradient(115deg,#0aa9fb,#007edc); box-shadow:0 8px 24px #008ee532; transition:transform .2s,box-shadow .2s; }
.hero-section .hero-quote-btn:hover { transform:translateY(-2px); box-shadow:0 10px 30px #008ee552; }
.hero-section .video-btn { font-size:14px; gap:12px; font-weight:600; }
.hero-section .video-btn > span { width:44px; height:44px; background:#ffffff16; border:1px solid #ffffff50; color:#fff; box-shadow:none; }
.hero-section .hero-benefits { gap:16px 24px; font-size:13px; font-weight:500; color:#d0dfef; margin-top:34px; line-height:1.6; }
.hero-section .hero-benefits span { width:auto; display:inline-flex; align-items:center; gap:7px; }
.hero-section .hero-benefits i { font-size:16px; color:#6ed5ff; margin:0; }
.quote-modal { --bs-modal-width:480px; }
.quote-modal .modal-content { border:1px solid #e5edf6; border-radius:20px; padding:30px; box-shadow:0 28px 90px #071b4340; background:linear-gradient(155deg,#f3faff 0%,#fff 35%); }
.quote-close { position:absolute; right:16px; top:16px; width:30px; height:30px; display:grid; place-items:center; background:#eef3f9; border:0; border-radius:50%; color:#60718b; font-size:12px; transition:background .2s; }
.quote-close:hover { background:#dfeaf6; color:#071b43; }
.quote-kicker { display:flex; align-items:center; gap:7px; font-size:9px; letter-spacing:.12em; font-weight:700; color:#4383b4; margin-bottom:12px; padding-right:20px; }
.quote-kicker > span { width:6px; height:6px; border-radius:50%; background:#0799f4; box-shadow:0 0 0 4px #0799f413; }
.quote-modal-intro h2 { font-size:30px; font-weight:700; line-height:1.15; color:#102b4b; letter-spacing:-.04em; margin:0 0 10px; }
.quote-modal-intro h2 span { color:#008fdf; }
.quote-modal-intro > p { font-size:12px; color:#7a8aa1; margin:0 0 22px; line-height:1.6; }
.quote-fields { display:grid; gap:11px; }
.quote-form [hidden] { display:none !important; }
.quote-input-wrap { position:relative; }
.quote-input-wrap > i { position:absolute; top:50%; left:15px; transform:translateY(-50%); font-size:17px; color:#8a9cb2; pointer-events:none; }
.quote-form input:not([type=hidden]),.quote-form select { width:100%; min-width:0; height:48px; border:1px solid #dfe7f0; background:#fff; border-radius:8px; font-family:inherit; font-size:13px; color:#263d5d; padding:0 14px; outline:none; }
.quote-input-wrap > input:not([type=hidden]) { padding-left:43px; }
.quote-form input::placeholder { color:#8795a9; opacity:1; }
.quote-form input:focus,.quote-form select:focus { border-color:#0799f4; box-shadow:0 0 0 3px #0799f412; }
.quote-phone-row { display:flex; gap:9px; min-width:0; }
.quote-phone-row > input { flex:1; width:0; }
.quote-phone-row > select,.quote-phone-row > .choices { flex:0 0 43%; width:43%; }
.quote-form .choices { margin:0; min-width:0; font-size:13px; }
.quote-form .choices__inner { height:48px; min-height:48px; display:flex; align-items:center; background:#fff; border:1px solid #dfe7f0; border-radius:8px; padding:0 30px 0 14px; font-size:13px; }
.quote-form .choices__list--single { padding:0; }
.quote-form .choices__placeholder { opacity:1; color:#8795a9; }
.quote-form .choices__item--selectable { white-space:normal; }
.quote-form .choices.is-focused .choices__inner,.quote-form .choices.is-open .choices__inner { border-color:#0799f4; border-radius:8px; }
.quote-form .choices__list--dropdown { border:1px solid #e0e9f4; border-radius:10px; box-shadow:0 10px 30px #071b4320; z-index:1080; padding:5px; margin:5px 0; min-width:100%; }
.quote-form .choices__list--dropdown .choices__list { max-height:170px; }
.quote-form .choices__list--dropdown .choices__item { padding:10px; font-size:12px; border-radius:6px; }
.quote-form .choices__list--dropdown .choices__item--selectable.is-highlighted { background:#edf7ff; color:#008fdf; }
.quote-form .choices__input { border-radius:5px; min-height:36px; height:36px; padding:8px; font-family:inherit; }
.quote-phone-row .choices__list--dropdown { min-width:245px; }
.quote-submit { display:flex; justify-content:center; align-items:center; gap:18px; width:100%; border:0; border-radius:9px; background:linear-gradient(115deg,#079ff7,#087dd4); padding:15px 18px; font-family:inherit; font-size:14px; font-weight:700; color:#fff; box-shadow:0 5px 15px #0799f426; cursor:pointer; transition:filter .2s; }
.quote-submit:hover { filter:brightness(1.06); }
.quote-submit:disabled { opacity:.65; cursor:wait; }
.quote-privacy { display:flex; align-items:center; justify-content:center; gap:6px; color:#8a99ab; font-size:10px; margin:1px 0 0; }
.quote-privacy i { color:#56a399; }
.quote-feedback { padding:10px 12px; border-radius:8px; background:#fff0f0; color:#9e3434; font-size:12px; margin-bottom:12px; max-height:100px; overflow-y:auto; }
.quote-feedback ul { padding-left:16px; margin:0; }
.quote-form [aria-invalid=true] { border-color:#d66 !important; }
.quote-success { text-align:center; padding:22px 0 4px; }
.quote-success-icon { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; margin:0 auto 18px; font-size:36px; color:#139579; background:#e8f8f2; }
.quote-success h3 { font-size:24px; color:#102b4b; }
.quote-success p { color:#7a8aa1; font-size:14px; line-height:1.7; margin:12px 0 24px; }
@media (max-width:991.98px) {
  .hero-section .min-vh-hero { min-height:540px; padding:65px 0; }
  .hero-section .hero-copy { max-width:650px; }
  .hero-section .hero-copy h1 { font-size:clamp(36px,5.5vw,54px); }
  .hero-section .hero-shade { background:linear-gradient(90deg,#04152df5,#04152dd9 60%,#04152d77); }
}
@media (max-width:575.98px) {
  .hero-section .min-vh-hero { min-height:0; padding:52px 0; }
  .hero-section .hero-copy { padding-left:12px; padding-right:12px; }
  .hero-section .eyebrow { font-size:9px; letter-spacing:.1em; gap:5px; margin-bottom:18px; }
  .hero-section .hero-copy h1 { font-size:clamp(32px,8.5vw,44px); line-height:1.15; margin-bottom:20px; }
  .hero-section .hero-copy > p { font-size:15px; line-height:1.8; }
  .hero-section .hero-actions { gap:20px; }
  .hero-section .hero-actions .hero-quote-btn { padding:15px 18px; font-size:14px; gap:15px; }
  .hero-section .video-btn { font-size:12px; gap:8px; }
  .hero-section .video-btn > span { width:36px; height:36px; }
  .hero-section .hero-benefits { display:grid; grid-template-columns:1fr 1fr; font-size:11px; gap:12px; margin-top:28px; }
  .quote-modal .modal-dialog { margin:12px; }
  .quote-modal .modal-content { padding:26px 22px 22px; border-radius:16px; }
  .quote-modal-intro h2 { font-size:27px; }
  .quote-modal-intro > p { font-size:11px; margin-bottom:16px; }
  .quote-fields { gap:9px; }
  .quote-form input:not([type=hidden]),.quote-form select,.quote-form .choices__inner { height:44px; min-height:44px; font-size:12px; }
  .quote-privacy { font-size:9px; }
  .quote-kicker { font-size:8px; }
}
/* Preserve access on unusually short displays and when the keyboard is open. */
@media (max-height:620px) {
  .quote-modal .modal-content { padding:20px 24px; }
  .quote-modal-intro h2 { font-size:25px; }
  .quote-modal-intro h2 br { display:none; }
  .quote-modal-intro > p { margin-bottom:12px; }
  .quote-kicker { margin-bottom:8px; }
  .quote-fields { gap:8px; }
  .quote-modal .modal-dialog { margin:10px auto; max-width:calc(100% - 24px); }
}
@media (prefers-reduced-motion:reduce) {
  .hero-section .hero-quote-btn,.quote-submit { transition:none; }
}
