/* «Ubicación y contacto» de la portada (dueño 2026-11-15: «这个模块优化»).
   Mantiene el mundo visual de la portada: tarjetas blancas, borde azul suave, iconos como en «Sobre GSM Sofia». */
.gsm-loc .gsm-map-grid { align-items: stretch; }
.gsm-loc .gsm-map-embed { min-height: 460px; background: #eef3fa; }
.gsm-loc .gsm-map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; }

.gsm-loc .gsm-contact-card { display: flex; flex-direction: column; padding: 30px 30px 28px; }
.gsm-loc .gsm-contact-card__name { margin: 0; font-size: 24px; font-weight: 850; line-height: 1.2; letter-spacing: -.02em; color: #0b1736; }

.gsm-loc .gsm-loc__list { display: grid; gap: 0; margin: 18px 0 24px; padding: 0; list-style: none; }
.gsm-loc .gsm-loc__row { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid #e6edf7; }
.gsm-loc .gsm-loc__row:last-child { border-bottom: 0; padding-bottom: 0; }

.gsm-loc .gsm-loc__ico { display: inline-flex; width: 44px; height: 44px; padding: 11px; border-radius: 13px; }
.gsm-loc .gsm-loc__ico svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gsm-loc .gsm-loc__ico--blue { background: #e8f1ff; color: #1567d8; }
.gsm-loc .gsm-loc__ico--orange { background: #fff1e6; color: #ea6a12; }
.gsm-loc .gsm-loc__ico--green { background: #e7f8ef; color: #12a66a; }
.gsm-loc .gsm-loc__ico--purple { background: #f1ecff; color: #6d4ae0; }

.gsm-loc .gsm-loc__hours { display: block; font-weight: 700; font-variant-numeric: tabular-nums; }
.gsm-loc .gsm-loc__hours span { white-space: nowrap; }
.gsm-loc .gsm-loc__label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 1px 0 4px; font-size: 13px; font-weight: 800; color: #69758f; }
.gsm-loc .gsm-loc__value { margin: 0; font-size: 16px; line-height: 1.5; color: #0b1736; }
.gsm-loc .gsm-loc__hint { display: block; font-size: 14px; color: #55617a; }
.gsm-loc .gsm-loc__value a { color: #0b1736 !important; font-weight: 700; text-decoration: none; text-underline-offset: 3px; text-decoration-thickness: 1.5px; overflow-wrap: anywhere; }
.gsm-loc .gsm-loc__value a[href^="tel:"],
.gsm-loc .gsm-loc__value a[href*="wa.me"],
.gsm-loc .gsm-loc__tag { white-space: nowrap; overflow-wrap: normal; }
.gsm-loc .gsm-loc__value a:hover { color: #1567d8 !important; text-decoration: underline; }
.gsm-loc .gsm-loc__value a:focus-visible,
.gsm-loc .gsm-loc__actions a:focus-visible { outline: 3px solid #1567d8; outline-offset: 3px; border-radius: 6px; }
.gsm-loc .gsm-loc__actions a:focus-visible { border-radius: 999px; }
.gsm-loc .gsm-loc__sep { margin: 0 6px; color: #b4bfd3; }
.gsm-loc .gsm-loc__tag { display: inline-block; margin-left: 2px; font-size: 13px; font-weight: 700; color: #12a66a; }

/* Estado «abierto / cerrado» (lo calcula el script con la hora de Madrid) */
.gsm-loc .gsm-loc__status { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 800; line-height: 1.4; }
.gsm-loc .gsm-loc__status[hidden] { display: none; }
.gsm-loc .gsm-loc__status::before { width: 7px; height: 7px; content: ""; border-radius: 50%; background: currentColor; }
.gsm-loc .gsm-loc__status.is-open { background: #e7f8ef; color: #0d7f50; }
.gsm-loc .gsm-loc__status.is-closed { background: #fdecec; color: #b42323; }

.gsm-loc .gsm-loc__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.gsm-loc .gsm-loc__actions .gsm-button { flex: 1 1 auto; white-space: nowrap; padding: 0 18px; }
.gsm-loc .gsm-loc__actions svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gsm-loc .gsm-button--ghost:hover { border-color: rgba(21, 103, 216, .45); background: #fff; }

@media (max-width: 991.98px) {
  .gsm-loc .gsm-contact-card { order: -1; }
  .gsm-loc .gsm-map-embed { min-height: 320px; }
}
@media (max-width: 575.98px) {
  .gsm-loc .gsm-contact-card { padding: 22px 18px 20px; border-radius: 24px; }
  .gsm-loc .gsm-map-embed { min-height: 280px; border-radius: 24px; }
  .gsm-loc .gsm-loc__value { font-size: 15.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .gsm-loc .gsm-button:hover { transform: none; }
}

/* El tema fuerza color en .page-content--home p con !important */
.page-content--home .gsm-loc p.gsm-loc__label { color: #69758f !important; }
.page-content--home .gsm-loc p.gsm-loc__value { color: #0b1736 !important; }
