/* Shared form-page system; matches the Laravel field and validation contracts. */
:where(.contact-page, .service-request-page) {
  --form-ink: #10243c;
  --form-blue: #235bc4;
  --form-gold: #b58b4a;
  --form-line: #dce4ec;
  --form-soft: #f5f7fa;
}
:where(.contact-page, .service-request-page) .dark-section,
:where(.contact-page, .service-request-page) .contact-hero,
:where(.contact-page, .service-request-page) .request-hero { position: relative; overflow: hidden; }
:where(.contact-page, .service-request-page) .contact-hero::after,
:where(.contact-page, .service-request-page) .request-hero::after { content: ''; position: absolute; inset: auto -10% -48%; height: 260px; pointer-events: none; background: radial-gradient(ellipse, #b58b4a1c, transparent 68%); }
:where(.contact-page, .service-request-page) .contact-hero-inner,
:where(.contact-page, .service-request-page) .request-hero-inner { position: relative; z-index: 1; }
:where(.contact-page, .service-request-page) .form-card { min-width: 0; border-color: var(--form-line); box-shadow: 0 22px 60px #0b1c3111; }
:where(.contact-page, .service-request-page) .form-head { padding-bottom: 20px; margin-bottom: 8px; border-bottom: 1px solid var(--form-line); }
:where(.contact-page, .service-request-page) .form-head > span { color: var(--form-gold); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
:where(.contact-page, .service-request-page) .form-head h2 { color: var(--form-ink); text-wrap: balance; }
:where(.contact-page, .service-request-page) .form-card label { margin-bottom: 12px; font-size: 14px; }
:where(.contact-page, .service-request-page) .form-card :is(input, select, textarea) { max-width: 100%; min-width: 0; border-color: var(--form-line); background: #fbfcfd; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
:where(.contact-page, .service-request-page) .form-card :is(input, select, textarea):hover { border-color: #b9c9db; background: #fff; }
:where(.contact-page, .service-request-page) .form-card :is(input, select, textarea):focus { border-color: var(--form-blue); background: #fff; box-shadow: 0 0 0 4px #235bc414; outline: none; }
:where(.contact-page, .service-request-page) .form-card :is(input, select, textarea)[aria-invalid="true"],
:where(.contact-page, .service-request-page) .form-card .invalid { border-color: #a92b36; }
:where(.contact-page, .service-request-page) .form-card :is(input[type="email"], input[type="tel"]) { direction: ltr; text-align: start; }
:where(.contact-page, .service-request-page) .field-error { font-size: 12px; line-height: 1.6; color: #a92b36; overflow-wrap: anywhere; }
:where(.contact-page, .service-request-page) .field-error:empty { display: none; }
:where(.contact-page, .service-request-page) .field-error:not(:empty) { margin-top: 6px; }
:where(.contact-page, .service-request-page) .form-footer { flex-wrap: wrap; }
:where(.contact-page, .service-request-page) .form-footer .button { min-height: 52px; box-shadow: 0 10px 24px #235bc426; }
:where(.contact-page, .service-request-page) .form-footer > span { color: #58697d; }
:where(.contact-page, .service-request-page) :is(.contact-aside, .request-aside) { min-width: 0; }
:where(.contact-page, .service-request-page) :is(.contact-aside-photo, .request-aside-photo) { box-shadow: 0 16px 38px #0b1c3114; }
:where(.contact-page, .service-request-page) .contact-details > div { transition: border-color .2s ease; }
:where(.contact-page, .service-request-page) .contact-details > div:hover { border-color: #d2b47e; }
.request-service-options > :is(.field-label, .field-error) { grid-column: 1 / -1; }
.request-form .request-check { display: flex; align-items: center; gap: 12px; min-height: 54px; margin: 0; padding: 12px 14px; border: 1px solid var(--form-line); border-radius: 10px; background: #fbfcfd; cursor: pointer; line-height: 1.6; }
.request-form .request-check:hover { border-color: #a9bee0; }
.request-form .request-check:has(input:checked) { border-color: var(--form-blue); background: #eef3fb; }
.request-form .request-check:focus-within { outline: 3px solid var(--form-gold); outline-offset: 2px; }
.request-form .request-check span { min-width: 0; overflow-wrap: anywhere; }
.request-form .request-service-options.has-error .request-check { border-color: #a92b36; }
.request-form .request-consent { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 10px; padding: 14px; border-radius: 10px; background: var(--form-soft); line-height: 1.8; }
.request-form .request-consent .field-error { grid-column: 2; }
.request-form :is(.request-check, .request-consent) input[type="checkbox"] { display: inline-block; width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; margin: 3px 0 0; padding: 0; accent-color: var(--form-blue); box-shadow: none; cursor: pointer; }
.request-form .request-consent:focus-within { outline: 3px solid var(--form-gold); outline-offset: 2px; }
.request-text-meta { flex-wrap: wrap; align-items: baseline; }
.request-text-meta [data-character-count] { margin-inline-start: auto; direction: ltr; font-variant-numeric: tabular-nums; }
.request-aside { top: calc(var(--site-header-height, 90px) + 22px); }
.request-step-nav { top: calc(var(--site-header-height, 90px) + 6px); }
.request-step-nav a.is-active { background: #eef3fb; color: var(--form-blue); }
.request-step { scroll-margin-top: 76px; }
@media (max-width: 900px) {
  .request-form-column { grid-row: 1; }
  .request-aside { grid-row: 2; }
  .request-aside-card { display: block; }
}
@media (max-width: 600px) {
  :where(.contact-page, .service-request-page) .form-card { box-shadow: 0 12px 32px #0b1c310c; }
  :where(.contact-page, .service-request-page) .form-head { padding-bottom: 14px; }
  :where(.contact-page, .service-request-page) .form-card :is(input, select, textarea):not([type="checkbox"]) { font-size: 16px; }
  .request-step-nav a { min-height: 44px; font-size: 12px; }
  .request-step legend b { font-size: 18px; line-height: 1.5; }
}
