/* Lead forms patch, 2026-09-29. Loaded after the original stylesheet. */
.hero-clean .hero-copy h1.lead-title {
  max-width: 850px !important;
  font-size: clamp(42px, 4.15vw, 58px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.045em !important;
  overflow-wrap: break-word;
}
.lead-title span { display: inline; margin: 0; }
.hero-clean .hero-copy { min-width: 0; }
.lead-form { width: 100%; }
.lead-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.lead-fields .field { min-width: 0; margin: 0; }
.lead-fields .field label { font-size: 14px; }
.lead-fields input { min-width: 0; font-size: 16px; }
.lead-fields .phone-field { grid-template-columns: 24px auto minmax(0, 1fr); gap: 8px; padding: 0 12px; }
.lead-fields .phone-prefix { color: var(--text); }
.lead-form .checkline { margin: 16px 0; }
.lead-form .checkline input { flex: 0 0 17px; width: 17px; height: 17px; }
.lead-form .checkline a { text-decoration: underline; text-underline-offset: 3px; }
.lead-form .btn { padding: 14px 20px; line-height: 1.35; }
.lead-form .form-status:empty { display: none; }
.lead-form .btn:disabled { cursor: wait; }
.lead-form-hero { max-width: 790px; margin: 0 0 22px; }
.lead-form-hero > * { position: relative; z-index: 1; }
.lead-form-hero .lead-form-title { text-align: center; margin: 0 0 22px; color: #fff; font-size: clamp(24px, 2.2vw, 30px); font-weight: 800; line-height: 1.16; letter-spacing: -.035em; }
.lead-form-hero .field label { color: #fff; }
.lead-form-hero .checkline { color: rgba(255,255,255,.86); }
.lead-form-hero .form-status { padding: 10px 14px; border-radius: 12px; background: #fff; }
.lead-phone-icon { width: 19px; height: 19px; flex: 0 0 19px; }
.header-cta { border: 0; cursor: pointer; font-family: inherit; }
.header-cta:focus-visible, .modal-close:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }

/* Native dialog provides focus containment and makes the page behind it inert. */
.consultation-modal {
  width: min(620px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: #fff;
  color: var(--text);
  box-shadow: 0 30px 100px rgba(3,15,38,.3);
  overscroll-behavior: contain;
}
.consultation-modal:not([open]) { display: none; }
.consultation-modal::backdrop { background: rgba(3,15,38,.72); backdrop-filter: blur(6px); }
.consultation-panel { position: relative; padding: 36px; overflow: hidden; }
.consultation-panel::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 5px;
  background: linear-gradient(90deg,#fff 0 33.33%,#0039A6 33.33% 66.66%,#D52B1E 66.66% 100%);
}
.modal-close {
  position: absolute; top: 14px; right: 14px; width: 42px; height: 42px;
  display: grid; place-items: center; padding: 0; border: 1px solid var(--line);
  border-radius: 14px; background: var(--surface-soft); color: var(--text);
  font-size: 30px; line-height: 1; cursor: pointer;
}
.modal-eyebrow { display: flex; align-items: center; gap: 10px; padding-right: 34px; color: var(--muted); font-size: 13px; font-weight: 700; }
.consultation-modal h2 { margin: 20px 0 12px; max-width: 460px; font-size: 34px; line-height: 1.08; letter-spacing: -.04em; }
.consultation-modal p { margin: 0 0 24px; color: var(--muted); line-height: 1.55; }
html.consultation-open, html.consultation-open body { overflow: hidden; }

@media (max-width: 1180px) {
  .site-header .header-inner { grid-template-columns: minmax(0, 1fr) auto auto; }
  .site-header .header-cta-wrap { display: flex; grid-column: 2; grid-row: 1; }
  .site-header .menu-toggle { grid-column: 3; grid-row: 1; }
}
@media (max-width: 720px) {
  .lead-fields { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .hero-clean .hero-copy h1.lead-title { font-size: clamp(32px, 8.2vw, 48px) !important; line-height: 1.08 !important; }
  .hero-clean .hero-text { margin-bottom: 24px; }
  .site-header .header-inner { gap: 9px; }
  .site-header .header-cta { width: 44px; min-height: 44px; padding: 0; border-radius: 14px; }
  .site-header .menu-toggle { width: 44px; height: 44px; border-radius: 14px; }
  .site-header .logo { gap: 9px; }
  .site-header .logo-mark { width: 42px; height: 42px; flex-basis: 42px; border-radius: 14px; }
  .site-header .logo-text strong { font-size: 14px; }
  .site-header .logo-text small { font-size: 9px; }
  .consultation-panel { padding: 28px 20px 24px; }
  .consultation-modal h2 { font-size: 29px; }
}
@media (max-width: 380px) {
  .site-header .header-inner { gap: 6px; }
  .site-header .logo { gap: 6px; }
  .site-header .logo-text strong { font-size: 12px; }
  .site-header .logo-text small { font-size: 8px; }
  .site-header .logo-mark { width: 36px; height: 40px; flex-basis: 36px; }
  .site-header .header-cta, .site-header .menu-toggle { width: 40px; }
}
