/* Franja de solicitud sobre un mapa de referencia amplio. */
.address-request { display: block; }
.address-request-toolbar { display: grid; grid-template-columns: minmax(240px, .78fr) minmax(0, 2fr); align-items: stretch; }
.address-request-copy { display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 14px; row-gap: 7px; align-content: center; padding: 25px 28px; }
.address-request-icon { width: 38px; height: 38px; margin: 0; grid-row: 1 / 4; border-radius: 10px; }
.address-request-icon svg { width: 22px; height: 22px; }
.address-request-copy .address-eyebrow { grid-column: 2; margin: 0; font-size: 10px; }
.address-request-copy h3 { grid-column: 2; margin: 0; font-size: 22px; line-height: 1.3; }
.address-request-copy > p:last-child { grid-column: 2; margin: 0; font-size: 14px; line-height: 1.5; }
.address-request-body { padding: 25px 28px; }
.address-steps { margin-bottom: 17px; }
.address-fields { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); }
.address-form-bottom { gap: 15px; margin-top: 18px; }
.address-form-bottom p { font-size: 12px; max-width: 240px; }
.address-actions { display: flex; align-items: stretch; gap: 10px; flex-shrink: 0; }
.address-map-search { min-height: 48px; padding: 11px 18px; border: 1px solid #b7c9e7; border-radius: 7px; background: #fff; color: var(--blue); font-size: 15px; font-weight: 700; line-height: 1.4; }
.address-map-search:hover { border-color: var(--blue); background: #f1f6ff; }
.address-actions .address-next { min-height: 48px; padding: 11px 22px; font-size: 15px; gap: 13px; }
.address-map-panel { border-top: 1px solid var(--surface-line); }
.address-map-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 28px; }
.address-map-heading h4 { margin: 0 0 4px; color: var(--navy); font-size: 17px; font-weight: 700; line-height: 1.4; }
.address-map-heading p { margin: 0; color: var(--body-copy); font-size: 13px; line-height: 1.5; }
#service-map, #service-map-interactive { display: block; width: 100%; height: 460px; border: 0; background: #e9eef2; }
#service-map[hidden], #service-map-interactive[hidden] { display: none; }
.address-actions button:disabled { opacity: .55; cursor: wait; }
.address-map-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 13px 28px; background: #f8fafc; }
.address-map-footer p { margin: 0; color: var(--body-copy); font-size: 12px; line-height: 1.5; }
.address-map-footer > span { flex-shrink: 0; color: var(--navy); font-size: 11px; font-weight: 650; }
@media (max-width: 1100px) {
  .address-request-toolbar { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.6fr); }
  .address-request-copy, .address-request-body { padding: 23px; }
  .address-request-copy { grid-template-columns: minmax(0, 1fr); }
  .address-request-icon { display: none; }
  .address-request-copy .address-eyebrow, .address-request-copy h3, .address-request-copy > p:last-child { grid-column: 1; }
  .address-form-bottom { flex-wrap: wrap; }
  .address-actions { margin-left: auto; }
  #service-map, #service-map-interactive { height: 420px; }
}
@media (max-width: 850px) {
  .address-request-toolbar { grid-template-columns: minmax(0, 1fr); }
  .address-request-copy { grid-template-columns: 38px minmax(0, 1fr); border-right: 0; border-bottom: 1px solid var(--surface-line); padding: 22px 24px; }
  .address-request-icon { display: grid; }
  .address-request-copy .address-eyebrow, .address-request-copy h3, .address-request-copy > p:last-child { grid-column: 2; }
  .address-request-body { padding: 24px; }
  .address-map-heading, .address-map-footer { padding-left: 24px; padding-right: 24px; }
  .address-map-footer > span { display: none; }
}
@media (max-width: 600px) {
  .address-request-copy, .address-request-body { padding: 21px 20px; }
  .address-request-copy h3 { font-size: 21px; }
  .address-fields { grid-template-columns: minmax(0, 1fr); }
  .address-form-bottom { flex-direction: column-reverse; align-items: stretch; }
  .address-form-bottom p { max-width: none; }
  .address-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-left: 0; gap: 8px; }
  .address-actions .address-next, .address-map-search { padding: 11px 8px; font-size: 14px; }
  .address-map-heading { flex-direction: column; align-items: flex-start; gap: 5px; padding: 18px 20px 12px; }
  #service-map, #service-map-interactive { height: 340px; }
  .address-map-footer { padding: 13px 20px; }
}
