/* Componente: Contact & Location Section */
.contact-location-section { 
  padding: 3rem 0 4rem; 
}
.contact-location-section .section-inner { 
  margin: 0 auto; 
}

.contact-location-grid { 
  display: grid; 
  grid-template-columns: 340px 1fr; 
  gap: 1.75rem; 
  align-items: start; 
}

/* Columna de tarjetas (izquierda) */
.cl-cards { 
  display: flex; 
  flex-direction: column; 
  gap: 1.5rem; 
}
.cl-card { 
  position: relative; 
  border-radius: 22px; 
  overflow: hidden; 
  min-height: 405px; 
  background: #ddd center/cover no-repeat; 
  box-shadow: 0 6px 24px -4px rgba(0,0,0,.15); 
  isolation: isolate; 
}
.cl-card::before { 
  content: ""; 
  position: absolute; inset: 0; 
  background: linear-gradient(160deg, rgba(0,0,0,.65), rgba(0,0,0,.05)); 
  z-index: 0; 
}
.cl-card .cl-card-info { 
  position: absolute; 
  left: 14px; right: 14px; bottom: 14px; 
  background: #fff; 
  border-radius: 18px; 
  padding: 1.1rem 1.1rem 1rem; 
  box-shadow: 0 4px 14px rgba(0,0,0,.1); 
  display: flex; 
  gap: 0.9rem; 
  align-items: flex-start; 
}
.cl-icon-wrap { 
  width: 46px; height: 46px; 
  border-radius: 14px; 
  background: #f4eceb; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  font-size: 1.25rem; 
  color: var(--color-primary-600); 
}
.cl-card-info h6 { 
  margin: 0 0 2px; 
  font-size: 0.9rem; 
  letter-spacing: .5px; 
  text-transform: uppercase; 
}
.cl-card-info p { 
  margin: 0; 
  font-size: 0.95rem; 
  font-weight: 400; 
  color: #555; 
}

/* Columna derecha */
.cl-right { 
  display: grid; 
  grid-template-columns: 1fr 1fr; 
  grid-auto-rows: auto; 
  gap: 1.75rem; 
}
.cl-intro { 
  background: #fff; 
  border: 2px solid rgba(0,0,0,.08); 
  border-radius: 22px; 
  padding: 2.6rem 2.4rem; 
  box-shadow: 0 4px 14px -2px rgba(0,0,0,.08); 
  grid-column: 1 / -1; /* ocupar ambas columnas */
}
.cl-intro h1 { 
  letter-spacing: -1px; 
  margin: 0 0 .75rem; 
}
.cl-intro p { 
  max-width: 680px; 
  margin: 0; 
  line-height: 1.5; 
}

.cl-map { 
  background: #fff; 
  border-radius: 22px; 
  box-shadow: 0 6px 24px -4px rgba(0,0,0,.12); 
  overflow: hidden; 
  position: relative; 
  min-height: 420px; 
  border: 2px solid rgba(0,0,0,.06); 
}
.cl-map iframe { 
  position: absolute; 
  inset: 0; 
  width: 100%; 
  height: 100%; 
  border: 0; 
}

/* Responsive */
@media (max-width: 1090px) {
  .contact-location-grid { grid-template-columns: 300px 1fr; }
}
@media (max-width: 920px) {
  .contact-location-grid { grid-template-columns: 1fr; }
  .cl-right { grid-template-columns: 1fr; }
  .cl-map { min-height: 380px; }
  .cl-cards { flex-direction: row; }
  .cl-card { flex: 1; min-height: 220px; }
}
@media (max-width: 640px) {
  .cl-intro h1 { font-size: 2rem;}
  .cl-cards { flex-direction: column; }
  .cl-card { min-height: 460px; }
  .cl-intro { padding: 2rem 1.6rem; }
  .cl-intro h2 { font-size: clamp(2rem, 8vw, 3rem); }
}
