/* Radar de servicios — Landing */
.radar-search-card {
  overflow: visible;
}
.radar-search-card:hover {
  transform: none;
}
.radar-search-card .card-kicker {
  margin-top: 22px;
}
.radar-search-form {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}
.radar-field {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) minmax(175px, 1.05fr);
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: var(--surface);
  box-shadow: 0 9px 25px -23px #18345f55;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.radar-field:focus-within {
  border-color: color-mix(in srgb, var(--blue) 55%, var(--line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 10%, transparent), 0 13px 30px -24px #155dfd66;
}
.radar-field-copy,
.radar-location-copy {
  min-width: 0;
}
.radar-field-copy strong,
.radar-location-copy strong {
  display: block;
  color: var(--ink);
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.35;
}
.radar-field-copy small,
.radar-location-copy small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.45;
}

/* Selector personalizado: evita el menú nativo sin estilos del navegador. */
.radar-service-picker {
  position: relative;
  min-width: 0;
}
.radar-service-trigger {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 13px;
  background: var(--blue-wash);
  color: var(--muted);
  text-align: left;
  font-size: .77rem;
  font-weight: 600;
  line-height: 1.35;
  transition: background .2s, border-color .2s, color .2s;
}
.radar-service-trigger:hover,
.radar-service-trigger[aria-expanded="true"] {
  color: var(--blue-ink);
  border-color: color-mix(in srgb, var(--blue) 18%, var(--line));
  background: color-mix(in srgb, var(--blue-wash) 78%, var(--surface));
}
.radar-service-trigger.has-value {
  color: var(--ink);
}
.radar-service-trigger .icon {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  transform: rotate(90deg);
  transition: transform .2s;
}
.radar-service-trigger[aria-expanded="true"] .icon {
  transform: rotate(-90deg);
}
.radar-service-menu {
  position: fixed;
  top: 50%;
  left: 50%;
  right: auto;
  z-index: 1001;
  width: min(560px, calc(100vw - 34px));
  max-height: min(640px, calc(100vh - 44px));
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--blue) 16%, var(--line));
  border-radius: 24px;
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  box-shadow: 0 34px 95px -26px #07111fcc;
  backdrop-filter: blur(26px) saturate(1.15);
  -webkit-backdrop-filter: blur(26px) saturate(1.15);
  transform: translate(-50%, -50%);
  animation: radar-menu-in .18s ease-out both;
}
body.radar-service-open { overflow: hidden; }
body.radar-service-open::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #07111f88;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.radar-service-menu[hidden] { display: none !important; }
.radar-service-menu-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 16px 16px 12px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  backdrop-filter: blur(18px);
}
.radar-service-menu-head > div { min-width: 0; }
.radar-service-menu-head strong {
  display: block;
  color: var(--ink);
  font-family: var(--display);
  font-size: .98rem;
  letter-spacing: -.025em;
}
.radar-service-menu-head small {
  display: block;
  margin-top: 1px;
  color: var(--muted);
  font-size: .69rem;
}
.radar-service-menu-head .icon-button {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
}
.radar-service-menu-head .icon { width: 17px; height: 17px; }
.radar-service-options {
  max-height: min(535px, calc(100vh - 145px));
  overflow-y: auto;
  padding: 9px;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--muted) 35%, transparent) transparent;
}
.radar-service-group + .radar-service-group {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.radar-service-group-title {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px 6px;
  color: var(--blue-ink);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .075em;
  line-height: 1.35;
}
.radar-service-group-icon {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 9px;
  background: var(--blue-wash);
}
.radar-service-group-icon .icon { width: 13px; height: 13px; }
.radar-service-group-items {
  display: grid;
  gap: 3px;
}
.radar-service-option {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  font-size: .78rem;
  line-height: 1.35;
  transition: background .16s, border-color .16s, color .16s, transform .16s;
}
.radar-service-option:hover,
.radar-service-option:focus-visible {
  outline: none;
  background: var(--blue-wash);
  border-color: color-mix(in srgb, var(--blue) 15%, var(--line));
  color: var(--blue-ink);
  transform: translateX(2px);
}
.radar-service-option.is-selected {
  background: linear-gradient(110deg, var(--blue-wash), color-mix(in srgb, var(--orange-wash) 28%, var(--blue-wash)));
  color: var(--blue-ink);
  font-weight: 650;
}
.radar-service-option-check {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  color: var(--blue-ink);
  opacity: 0;
}
.radar-service-option-check .icon { width: 15px; height: 15px; }
.radar-service-option.is-selected .radar-service-option-check { opacity: 1; }

.radar-location-field {
  grid-template-columns: 38px minmax(0, .86fr) minmax(200px, 1.35fr);
}
.radar-location-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
}
.radar-location-controls input {
  width: 100%;
  min-height: 46px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  outline: none;
  background: var(--background);
  color: var(--ink);
  font: 500 .76rem/1.3 var(--body);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.radar-location-controls input::placeholder { color: color-mix(in srgb, var(--muted) 72%, transparent); }
.radar-location-controls input:focus {
  border-color: color-mix(in srgb, var(--blue) 44%, var(--line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 8%, transparent);
  background: var(--surface);
}
.radar-locate-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--orange) 18%, var(--line));
  border-radius: 12px;
  background: var(--orange-wash);
  color: var(--orange-ink);
  font-size: .69rem;
  font-weight: 650;
  white-space: nowrap;
  transition: transform .18s, border-color .18s;
}
.radar-locate-button:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--orange) 38%, var(--line)); }
.radar-locate-button .icon { width: 15px; height: 15px; flex-basis: 15px; }
.radar-locate-button:disabled { opacity: .62; cursor: wait; }
.radar-locate-button.is-loading .icon { animation: radar-spin .85s linear infinite; }
.radar-form-help {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 20px;
  padding: 1px 4px;
  font-size: .69rem;
  line-height: 1.55;
}
.radar-status-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--muted);
  opacity: .55;
}
.radar-form-help.is-ready { color: var(--blue-ink); }
.radar-form-help.is-ready .radar-status-dot { background: var(--blue); opacity: 1; }
.radar-form-help.is-error { color: var(--orange-ink); }
.radar-form-help.is-error .radar-status-dot { background: var(--orange); opacity: 1; }
.radar-submit {
  width: 100%;
  min-height: 50px;
  margin-top: 1px;
}
.radar-submit:disabled { opacity: .72; cursor: wait; transform: none; }
.radar-card-bottom { margin-top: 15px; }
.radar-inline-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: radar-spin .75s linear infinite;
}

@keyframes radar-spin { to { transform: rotate(360deg); } }
@keyframes radar-menu-in {
  from { opacity: 0; transform: translate(-50%, calc(-50% - 8px)) scale(.985); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (max-width: 1120px) {
  .radar-field,
  .radar-location-field {
    grid-template-columns: 38px minmax(0, 1fr);
  }
  .radar-service-picker,
  .radar-location-controls {
    grid-column: 1 / -1;
  }
  .radar-service-picker { margin-top: 1px; }
  .radar-location-controls { margin-top: 1px; }
}

@media (max-width: 760px) {
  .radar-search-card { overflow: visible; }
  .radar-field,
  .radar-location-field {
    grid-template-columns: 35px minmax(0, 1fr);
    min-height: 0;
    padding: 11px;
  }
  .radar-service-picker,
  .radar-location-controls { grid-column: 1 / -1; }
  .radar-location-controls { grid-template-columns: 1fr; }
  .radar-locate-button { width: 100%; }
  .radar-service-menu {
    width: min(560px, calc(100vw - 24px));
    max-height: min(76vh, 650px);
    border-radius: 24px;
  }
  .radar-service-options { max-height: calc(min(76vh, 650px) - 76px); }
}

@media (max-width: 430px) {
  .radar-service-menu { width: calc(100vw - 16px); }
  .radar-service-menu-head { padding: 14px 14px 11px; }
  .radar-service-options { padding: 7px; }
}

/* Compact, readable search controls in the first screen. */
.hero-section .radar-search-form { margin-top: 16px; gap: 12px; }
.hero-section .radar-field { display: block; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.hero-section .radar-field > .mini-icon { display: none; }
.hero-section .radar-field-copy strong, .hero-section .radar-location-copy strong { font-size: 14px; line-height: 1.4; }
.hero-section .radar-service-picker, .hero-section .radar-location-controls { margin-top: 6px; }
.hero-section .radar-service-trigger { min-height: 48px; font-size: 16px; font-weight: 500; border-color: color-mix(in srgb, var(--blue) 26%, var(--line)); color: var(--ink); }
.hero-section .radar-location-controls { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.hero-section .radar-location-controls input { min-height: 48px; font-size: 16px; padding-inline: 12px; }
.hero-section .radar-locate-button { min-height: 48px; width: auto; padding-inline: 11px; font-size: 13px; }
.hero-section .radar-form-help { margin: 0; padding: 0; min-height: 20px; font-size: 12px; line-height: 1.45; }
.hero-section .radar-submit { min-height: 50px; font-size: 16px; margin-top: 0; }
.hero-section .radar-submit:hover { transform: none; }
.radar-location-confirmation { padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--blue) 32%, var(--line)); background: var(--blue-wash); border-radius: 13px; }
.radar-location-confirmation strong { display: block; font-size: 14px; line-height: 1.4; }
.radar-location-confirmation p { margin: 6px 0; font-size: 13px; line-height: 1.5; }
.radar-location-confirmation a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; color: var(--blue-ink); font-size: 14px; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 400px) {
 .hero-section .radar-location-controls { grid-template-columns: minmax(0, 1fr) 44px; }
 .hero-section .radar-locate-button { padding-inline: 0; }
 .hero-section .radar-locate-button span { display: none; }
}
@media (max-height: 560px) and (max-width: 760px) {
 .hero-section .radar-field, .hero-section .radar-submit { scroll-margin-top: 86px; }
 .radar-service-menu { max-height: calc(100dvh - 20px); }
 .radar-service-options { max-height: calc(100dvh - 98px); }
}

/* Address suggestions remain in the form flow: visible with a mobile keyboard. */
.radar-address-picker {
  position: relative;
  min-width: 0;
  overflow: visible;
}
.hero-section .radar-location-controls { align-items: start; }
.radar-address-panel {
  position: relative;
  z-index: 3;
  min-width: 0;
  width: 100%;
  margin-top: 7px;
  padding: 5px;
  border: 1px solid var(--blue-ink);
  border-radius: 13px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 10px 24px -16px #155dfd66;
}
.radar-address-options {
  display: grid;
  gap: 3px;
  max-height: min(240px, 42dvh, var(--radar-address-max-height, 240px));
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--muted) transparent;
}
.radar-address-option {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
  width: 100%;
  min-width: 0;
  min-height: 56px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
  scroll-margin-block: 5px;
}
.radar-address-primary,
.radar-address-option-primary {
  display: block;
  color: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.radar-address-secondary,
.radar-address-option-secondary {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.45;
}
.radar-address-option:hover,
.radar-address-option.is-active,
.radar-address-option[aria-selected="true"] {
  background: var(--blue-wash);
  color: var(--blue-ink);
  border-color: var(--blue-ink);
}
.radar-address-option:hover .radar-address-secondary,
.radar-address-option:hover .radar-address-option-secondary,
.radar-address-option.is-active .radar-address-secondary,
.radar-address-option.is-active .radar-address-option-secondary,
.radar-address-option[aria-selected="true"] .radar-address-secondary,
.radar-address-option[aria-selected="true"] .radar-address-option-secondary { color: var(--blue-ink); }
.radar-address-option:focus-visible { outline: 2px solid var(--blue-ink); outline-offset: -2px; }
.radar-address-message { padding: 8px 9px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.radar-address-message:empty { display: none; }
.radar-address-retry {
  display: block;
  min-height: 44px;
  margin-top: 9px;
  padding: 8px 10px;
  border: 1px solid var(--blue-ink);
  border-radius: 8px;
  background: var(--blue-wash);
  color: var(--blue-ink);
  font: 600 13px/1.4 var(--body);
}
.radar-address-retry:focus-visible { outline: 2px solid var(--blue-ink); outline-offset: 2px; }
.radar-address-attribution {
  margin-top: 4px;
  padding: 6px 9px 5px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font: 400 12px/1.4 Arial, sans-serif;
  letter-spacing: normal;
  text-align: right;
  white-space: nowrap;
}
#radar-address-detail-attribution { white-space: normal; overflow-wrap: anywhere; }
#radar-address-detail-attribution [translate="no"] { white-space: nowrap; }
#radar-address-detail-attribution a { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 2px; }
@media (max-height: 560px) and (max-width: 760px) {
  .radar-address-options { max-height: min(144px, calc(100dvh - 200px), var(--radar-address-max-height, 144px)); }
  .radar-address-option { padding-block: 7px; }
  .radar-address-picker { scroll-margin-top: 86px; }
}
