.quote-page {
  margin: 0;
  min-height: 100vh;
  background: #fff;
  color: #3f3f3f;
  font-family: "Montserrat", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.quote-header {
  position: relative;
  z-index: 30;
  background: #fff;
  padding: 28px 22px 0;
}

.quote-header-inner {
  position: relative;
  width: min(100%, 1180px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.quote-brand { display: inline-flex; text-decoration: none; }
.quote-logo { display: block; width: 150px; height: auto; object-fit: contain; }

.quote-menu-toggle {
  width: 44px;
  height: 44px;
  padding: 6px;
  border: 0;
  background: transparent;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
}
.quote-menu-toggle span {
  display: block;
  width: 30px;
  height: 4px;
  margin-left: auto;
  background: #616161;
}
.quote-menu-toggle:focus-visible { outline: 3px solid rgba(13, 77, 173, .24); outline-offset: 2px; }

.quote-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 12px);
  width: min(285px, calc(100vw - 44px));
  padding: 12px;
  background: #fff;
  border: 1px solid #e4e4e4;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .12);
}
.quote-menu[hidden] { display: none; }
.quote-menu a {
  display: block;
  padding: 13px 14px;
  color: #333;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid #eee;
}
.quote-menu a:last-child { border-bottom: 0; }
.quote-menu a:hover, .quote-menu a:focus-visible { color: #0d4dad; background: #f7f9fd; }

.quote-main {
  width: min(100%, 980px);
  margin: 0 auto;
  padding: 72px 22px 96px;
}

.quote-intro { text-align: center; margin: 0 auto; }
.quote-title {
  margin: 0 auto;
  max-width: 900px;
  color: #0d4dad;
  font-size: clamp(2.15rem, 5.4vw, 4.4rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.035em;
  text-transform: uppercase;
}
.mobile-break { display: none; }
.quote-description {
  max-width: 860px;
  margin: 30px auto 0;
  color: #414141;
  font-size: clamp(1rem, 2.05vw, 1.45rem);
  font-weight: 400;
  line-height: 1.6;
}
.quote-description strong { font-weight: 800; }

.quote-form-section { width: min(100%, 760px); margin: 40px auto 0; }
.quote-form {
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  color: #3f3f3f;
}
.quote-field { margin-bottom: 30px; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.quote-form input {
  display: block;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 0 15px;
  border: 1px solid #0d4dad;
  border-radius: 0;
  background: #fbfbfb;
  color: #3f3f3f;
  font: 400 18px/1.2 "Montserrat", Arial, sans-serif;
  box-shadow: none;
  outline: none;
}
.quote-form select {
  display: block;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 0 45px 0 15px;
  border: 1px solid #0d4dad;
  border-radius: 0;
  background-color: #fbfbfb;
  color: #696969;
  font: 400 18px/1.2 "Montserrat", Arial, sans-serif;
  box-shadow: none;
  outline: none;
}
.quote-form textarea {
  display: block;
  width: 100%;
  min-height: 150px;
  margin: 0;
  padding: 18px 15px;
  border: 1px solid #0d4dad;
  border-radius: 0;
  background: #fbfbfb;
  color: #3f3f3f;
  font: 400 18px/1.5 "Montserrat", Arial, sans-serif;
  box-shadow: none;
  outline: none;
  resize: vertical;
}
.quote-form input::placeholder, .quote-form textarea::placeholder { color: #6f6f6f; opacity: 1; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus {
  border-color: #0d4dad;
  box-shadow: 0 0 0 3px rgba(13, 77, 173, .11);
}
.quote-form .honeypot { position: absolute !important; left: -9999px !important; min-height: 1px !important; }

.quote-page .ps-town-autocomplete { margin-top: 0; }
.quote-page .ps-town-autocomplete input {
  min-height: 64px !important;
  padding: 0 15px !important;
  border: 1px solid #0d4dad !important;
  border-radius: 0 !important;
  background: #fbfbfb !important;
  color: #3f3f3f !important;
  font: 400 18px/1.2 "Montserrat", Arial, sans-serif !important;
  box-shadow: none !important;
}
.quote-page .ps-town-autocomplete input:focus {
  border-color: #0d4dad !important;
  box-shadow: 0 0 0 3px rgba(13, 77, 173, .11) !important;
}
.quote-page .ps-town-autocomplete:after { display: none; }

.quote-submit {
  width: 100%;
  min-height: 60px;
  border: 0;
  border-radius: 0;
  padding: 16px 22px;
  background: #0d4dad;
  color: #fff;
  font: 800 16px/1.2 "Montserrat", Arial, sans-serif;
  letter-spacing: .04em;
  cursor: pointer;
  box-shadow: none;
}
.quote-submit:hover { background: #083b8c; }
.quote-submit:disabled { opacity: .65; cursor: wait; }
.quote-form .form-consent { margin: 14px auto 0; color: #6c6c6c; font-size: 12px; line-height: 1.55; text-align: center; }
.quote-form .form-status { margin-top: 16px; border-radius: 0; }

.quote-follow-up {
  width: min(100%, 760px);
  margin: 54px auto 0;
  padding-top: 30px;
  border-top: 1px solid #e7e7e7;
  text-align: center;
}
.quote-follow-up h2 { margin: 0 0 10px; color: #0d4dad; font-size: 1.35rem; }
.quote-follow-up p { margin: 0; color: #626262; line-height: 1.65; }

.quote-footer {
  padding: 42px 22px 46px;
  text-align: center;
  background: #f7f7f7;
  border-top: 1px solid #ededed;
  color: #555;
}
.quote-footer-logo { width: 125px; height: auto; }
.quote-footer p { margin: 10px 0 17px; font-weight: 700; }
.quote-footer-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 20px; }
.quote-footer-links a { color: #0d4dad; font-size: 13px; font-weight: 600; text-decoration: none; }

@media (max-width: 560px) {
  .quote-header { padding: 27px 22px 0; }
  .quote-logo { width: 145px; }
  .quote-menu-toggle { width: 42px; height: 42px; }
  .quote-menu-toggle span { width: 29px; height: 4px; }
  .quote-main { padding: 70px 36px 82px; }
  .mobile-break { display: initial; }
  .quote-title {
    font-size: 31px;
    line-height: 1.12;
    letter-spacing: -.025em;
  }
  .quote-description {
    margin-top: 23px;
    font-size: 17px;
    line-height: 1.62;
  }
  .quote-form-section { margin-top: 31px; }
  .quote-field { margin-bottom: 30px; }
  .quote-form input, .quote-form select { min-height: 65px; font-size: 18px; padding-left: 14px; }
  .quote-page .ps-town-autocomplete input { min-height: 65px !important; padding-left: 14px !important; }
  .quote-form textarea { min-height: 135px; font-size: 18px; }
  .quote-submit { min-height: 58px; font-size: 14px; }
}

@media (max-width: 374px) {
  .quote-main { padding-left: 27px; padding-right: 27px; }
  .quote-title { font-size: 28px; }
  .quote-description { font-size: 16px; }
}
