/* ==========================================================================
   ESTILOS MODERNOS PARA CONTACTOS (CCO)
   ========================================================================== */

#body-contactos {
    background-color: #f1f5f9;
    min-height: 100vh;
    position: relative;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

.contenedor-contactos {
    max-width: 1200px;
    margin: 0 auto;
    padding: 140px 20px 100px;
}

.hero-contactos {
    text-align: center;
    margin-bottom: 60px;
    animation: fadeInDown 0.8s ease-out;
}

.hero-contactos h1 {
    font-size: 3.5rem;
    color: #14522c;
    font-weight: 900;
    letter-spacing: -1px;
}

.hero-contactos p {
    font-size: 1.2rem;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

/* --- Grid de Staff --- */
.staff-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}

.contacto-card {
    background: white;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    transition: all 0.4s ease;
    border: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
}

.contacto-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #03A64A;
}

.contacto-img {
    height: 300px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end; /* Alinea la foto a la base del contenedor */
    justify-content: center;
    border-bottom: 4px solid #03A64A;
}

/* Badge de icono representativo */
.contacto-icon-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background-color: white;
    color: #03A64A;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    z-index: 10;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border: 2px solid #03A64A;
}

/* --- Texturas Temáticas en SVG --- */

/* Gustavo: Especialista en Recursos Marinos (Ondas de Agua) */
.bg-marino {
    background-color: #e0f2fe;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='18' viewBox='0 0 100 18'%3E%3Cpath d='M0 15 Q 25 5 50 15 T 100 15' fill='none' stroke='%2303A64A' stroke-width='2' opacity='0.15'/%3E%3C/svg%3E");
}

/* Roger: Agrónomo y Áreas Protegidas (Patrón de Bosque/Pinos) */
.bg-bosque {
    background-color: #f0fdf4;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M20 5 L25 15 L15 15 Z M20 12 L28 28 L12 28 Z' fill='%2314522c' opacity='0.1'/%3E%3C/svg%3E");
}

/* Angel: Salud Ambiental y Participación (Red de Conexiones) */
.bg-ambiental {
    background-color: #fff7ed;
    background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 20 L20 0 M20 20 L40 20 M20 20 L20 40 M20 20 L0 20' stroke='%2303A64A' stroke-width='1' opacity='0.1'/%3E%3Ccircle cx='20' cy='20' r='3' fill='%2303A64A' opacity='0.2'/%3E%3C/svg%3E");
}

.contacto-img img {
    width: auto;
    height: 95%; /* Deja un pequeño aire arriba */
    object-fit: cover;
    z-index: 2;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.2)); /* Sombra para dar relieve a la persona */
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Efecto Hover: La foto sobresale sutilmente */
.contacto-card:hover .contacto-img img {
    transform: scale(1.08) translateY(-5px);
}

.contacto-info {
    padding: 30px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.puesto {
    color: #03A64A;
    font-weight: 800;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.contacto-info h2 {
    font-size: 1.8rem;
    color: #1e293b;
    margin-bottom: 15px;
}

.bio {
    color: #64748b;
    line-height: 1.6;
    margin-bottom: 25px;
    flex: 1;
}

.datos-enlace {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-top: 1px solid #f1f5f9;
    padding-top: 20px;
}

.datos-enlace a {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #334155;
    font-weight: 600;
    transition: color 0.2s;
}

.datos-enlace i { color: #03A64A; font-size: 1.2rem; }
.datos-enlace a:hover { color: #03A64A; }

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
    .hero-contactos h1 { font-size: 2.5rem; }
    .staff-grid { grid-template-columns: 1fr; }
}