/* Ubicación y rutas: acceso directo a Google Maps y Waze. */
.location-section {
  position: relative;
  overflow: hidden;
  padding: 95px 6vw;
  background:
    radial-gradient(circle at 4% 0, rgba(235,155,157,.18), transparent 24%),
    radial-gradient(circle at 96% 100%, rgba(131,200,187,.2), transparent 28%),
    #f8fbfa;
}
.location-shell {
  width: min(1500px, 100%);
  min-height: 540px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  overflow: hidden;
  border: 1px solid rgba(13,49,91,.1);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 32px 80px rgba(13,49,91,.14);
}
.location-map { min-height: 540px; position: relative; background: #dce6e9; }
.location-map iframe { width: 100%; height: 100%; min-height: 540px; display: block; border: 0; filter: saturate(.88) contrast(1.02); }
.location-map-badge {
  position: absolute;
  left: 22px;
  top: 22px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(13,49,91,.17);
  backdrop-filter: blur(10px);
}
.location-map-badge i { width: 9px; height: 9px; border-radius: 50%; background: var(--pink2); box-shadow: 0 0 0 7px rgba(229,111,134,.13); animation: location-pulse 2s ease-out infinite; }
.location-content {
  padding: clamp(44px, 5vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    radial-gradient(circle at 105% -5%, rgba(235,155,157,.2), transparent 30%),
    linear-gradient(145deg, #09294d, #123e67);
  color: #fff;
}
.location-eyebrow { margin-bottom: 16px; color: #f5a9b2; font-size: 12px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.location-content h2 { margin: 0; color: #fff; font: 700 clamp(38px, 4vw, 56px)/1.08 Georgia, serif; }
.location-content h2 em { color: #ffb7c0; }
.location-address { margin: 24px 0 18px; display: grid; grid-template-columns: 38px 1fr; align-items: start; gap: 13px; color: rgba(255,255,255,.88); font-size: 16px; line-height: 1.65; }
.location-address svg { width: 38px; height: 38px; padding: 9px; border-radius: 12px; background: rgba(235,155,157,.14); fill: #ffb0ba; }
.location-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.location-details span { padding: 14px 15px; display: flex; flex-direction: column; gap: 5px; border: 1px solid rgba(255,255,255,.12); border-radius: 13px; background: rgba(255,255,255,.06); color: #c8d4df; font-size: 14px; line-height: 1.45; }
.location-details b { color: #fff; font-size: 16px; }
.location-prompt { margin: 25px 0 13px; color: #e0e8ef; font-size: 16px; line-height: 1.4; font-weight: 800; }
.location-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.route-button {
  min-height: 80px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 39px 1fr auto;
  align-items: center;
  gap: 10px;
  border-radius: 15px;
  color: var(--navy);
  background: #fff;
  box-shadow: 0 13px 28px rgba(0,0,0,.15);
  transition: transform .3s ease, box-shadow .3s ease;
}
.route-button:hover { transform: translateY(-5px); box-shadow: 0 19px 35px rgba(0,0,0,.24); }
.route-button > svg { width: 39px; height: 39px; padding: 8px; border-radius: 11px; }
.google-route > svg { background: #eaf2ff; fill: #3478e5; }
.waze-route > svg { background: #e4f9fc; fill: #18a8c5; }
.route-button > span { display: flex; flex-direction: column; gap: 3px; }
.route-button b { font-size: 17px; }
.route-button small { color: #647484; font-size: 13px; }
.route-button > i { color: var(--pink2); font-size: 20px; font-style: normal; transition: transform .3s ease; }
.route-button:hover > i { transform: translateX(4px); }

@keyframes location-pulse { 50% { box-shadow: 0 0 0 12px rgba(229,111,134,0); } }

@media (max-width: 980px) {
  .location-shell { grid-template-columns: 1fr; }
  .location-map, .location-map iframe { min-height: 430px; }
}
@media (max-width: 620px) {
  .location-section { padding: 70px 20px; }
  .location-shell { border-radius: 21px; }
  .location-map, .location-map iframe { min-height: 350px; }
  .location-content { padding: 39px 22px; }
  .location-content h2 { font-size: 38px; }
  .location-details, .location-actions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .location-map-badge i { animation: none; }
}
