/* 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; }
}
