/* Contacto Perfil – versión refinada */
.cp-bloque{ padding:4.5rem 2rem; }
.cp-container{
  max-width:1100px; margin:0 auto;
  display:flex; gap:2.5rem; flex-wrap:wrap; align-items:flex-start;
  font-family:'Karla',sans-serif;
}

/* Columna texto */
.cp-left{ flex:1 1 52%; }

.cp-nombre{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:clamp(1.7rem, 2.4vw, 2.1rem);   /* ↑ más grande */
  margin-bottom:.75rem;
  line-height:1.25;
}

.cp-titulos p{
  margin:.2rem 0;
  color:#222;
  font-size:clamp(1.05rem, 1.2vw, 1.2rem);  /* ↑ legible */
  line-height:1.6;
}

.cp-lista{
  list-style:none; margin:1.25rem 0 0; padding:0;
  display:flex; flex-direction:column; gap:.9rem; /* + aire */
}
.cp-lista li{ display:flex; align-items:center; gap:.75rem; }
.cp-lista img{ width:20px; height:20px; flex-shrink:0; }
.cp-lista a{ color:#1b1b1b; text-decoration:none; }
.cp-lista a:hover{ color:#5e7c99; }
.cp-lista a, .cp-lista span{
  font-size:clamp(1.05rem, 1.2vw, 1.2rem);  /* ↑ legible */
  line-height:1.65;
}

/* Columna foto */
.cp-foto{
  flex:1 1 40%;
  margin:0;
}
.cp-foto img{
  width:100%;
  height:auto;
  max-width:720px !important;                     /* controla el tope en desktop grande */
  border-radius:4px;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}

/* Responsive */
@media (max-width: 900px){
  .cp-container{ gap:2rem; }
}

@media (max-width: 768px){
  .cp-container{ flex-direction:column-reverse; }
  .cp-left, .cp-foto{ flex:1 1 100%; }

  /* ⬇️ centra realmente la imagen en mobile */
  .cp-foto{
    display:flex;
    justify-content:center;
  }
  .cp-foto img{           /* ancho óptimo y centrado */
    margin:0 auto;
    max-width:720px !important;   
  }
}

/* ==== Contacto Perfil · Ajuste simétrico + tipografías mayores ==== */

/* Contenedor en grid: columnas iguales y gutters consistentes */
.cp-container{
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(1.75rem, 4vw, 3rem);
  align-items: start;
}

/* Columnas sin márgenes extra */
.cp-left, .cp-foto{ margin: 0; }

/* Imagen: ocupa el 100% de su celda, centrada y sin tope que la achique */
.cp-foto{ display: flex; justify-content: center; }
.cp-foto img{
  width: 100%;
  height: auto;
  max-width: none;           /* <- elimina límites que creaban asimetría */
  display: block;
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
}

/* Tipos más grandes en desktop */
.cp-nombre{
  font-size: clamp(1.9rem, 2.6vw, 2.3rem);
  line-height: 1.2;
}
.cp-titulos p{
  font-size: clamp(1.125rem, 1.4vw, 1.25rem);
  line-height: 1.65;
}
.cp-lista a, .cp-lista span{
  font-size: clamp(1.125rem, 1.4vw, 1.25rem);
  line-height: 1.7;
}
.cp-lista{ gap: 1rem; }

/* Responsive: apila y mantiene la imagen centrada */
@media (max-width: 900px){
  .cp-container{
    grid-template-columns: 1fr;
    row-gap: 2rem;
  }
  .cp-foto img{
    max-width:720px !important;   
  }
}
