﻿/* ================================================================
   EQUIPO.CSS — página "Equipo"
   Se referencia SOLO en Views/Home/Equipo.cshtml (sección @Styles)
   Depende de variables definidas en tokens.css

   Sin modal a propósito para la bio: la bio completa de cada socio
   va a la vista, no detrás de un clic — es la evidencia de
   credibilidad más fuerte del sitio y no debería tener fricción
   para leerse. El único modal es el carnet/credencial compartible.
   ================================================================ */

/* ── PAGE HEADER — simple, coherente con el resto ── */
.page-header {
    position: relative;
    padding: 64px 0 48px;
    background: radial-gradient(900px 400px at 82% -10%, rgba(18,59,121,0.09), transparent 60%), var(--paper);
    overflow: hidden;
}

    .page-header::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: linear-gradient(rgba(6,27,72,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(6,27,72,0.03) 1px, transparent 1px);
        background-size: 44px 44px;
        mask-image: radial-gradient(closest-side, black, transparent 82%);
        pointer-events: none;
    }

    .page-header .container {
        position: relative;
        z-index: 1;
        max-width: 680px
    }

.page-header-title {
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(28px,4vw,42px);
    line-height: 1.1;
    letter-spacing: -0.4px;
    color: var(--navy);
    margin-top: 14px;
    margin-bottom: 14px;
}

.page-header-sub {
    font-size: 16px;
    color: var(--ink-soft);
    max-width: 560px
}

/* ── GRID DE EQUIPO ── */
.equipo {
    padding: 24px 0 88px
}

.equipo-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 24px;
    align-items: stretch
}

.team-card {
    --accent: var(--spark);
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    text-align: center;
    overflow: visible;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7), inset 0 -4px 0 0 color-mix(in srgb, var(--accent) 55%, transparent), 0 16px 34px -26px rgba(6,27,72,0.18);
}

    .team-card.t2 {
        --accent: var(--gold)
    }

    .team-card.t3 {
        --accent: var(--graphite)
    }

    .team-card::before {
        content: '';
        position: absolute;
        top: -1px;
        left: 26px;
        width: 32px;
        height: 1px;
        background-image: linear-gradient(to right, var(--accent) 50%, transparent 0);
        background-size: 6px 1px;
    }

    .team-card::after {
        content: '';
        position: absolute;
        top: -3px;
        left: 26px;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--accent);
    }

/* ── Franja de header — logo tenue de fondo, foto superpuesta en el borde ── */
.team-card-header {
    position: relative;
    height: 140px;
    border-radius: 15px 15px 0 0;
    overflow: hidden;
    background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--navy)));
    display: flex;
    align-items: center;
    justify-content: center;
}

.team-card-header-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 150px;
    height: 150px;
    transform: translate(-50%,-50%);
    opacity: .4;
    object-fit: contain;
    mix-blend-mode: multiply; /* el blanco del PNG se vuelve invisible; solo se nota la silueta oscura */
    pointer-events: none;
}

.team-card-body {
    padding: 14px 26px 28px;
    text-align: center
}

/* Línea de marca fina — arriba a la izquierda, donde arranca el blanco */
.team-card-brand {
    text-align: left;
    font-family: var(--mono);
    font-weight: 700;
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--ink-soft);
    margin-bottom: 14px;
}

/* Foto circular — placeholder con iniciales hasta tener fotos reales */
.team-avatar-wrap {
    position: relative;
    width: 104px;
    z-index: 1
}

.team-avatar {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    background: linear-gradient(150deg, var(--accent), color-mix(in srgb, var(--accent) 60%, var(--navy)));
    display: flex;
    align-items: center;
    justify-content: center;
    border: 4px solid #fff;
    box-shadow: 0 14px 28px -14px rgba(6,27,72,0.35);
}

    .team-avatar span {
        font-family: var(--display);
        font-weight: 800;
        font-size: 30px;
        color: #fff
    }

    .team-avatar img {
        width: 100%;
        height: 100%;
        border-radius: 50%;
        object-fit: cover
    }

/* Sello tipo credencial — chico, en la esquina, no compite con la foto */
.team-badge {
    position: absolute;
    bottom: 2px;
    right: -2px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--navy);
    border: 2.5px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px -2px rgba(6,27,72,0.4);
}

    .team-badge span {
        font-family: var(--display);
        font-weight: 800;
        font-size: 7.5px;
        color: #fff;
        letter-spacing: .3px
    }

.team-name {
    font-family: var(--display);
    font-weight: 800;
    font-size: 19px;
    color: var(--navy);
    margin-bottom: 4px
}

.team-role {
    font-family: var(--mono);
    font-size: 10.5px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 16px;
}

/* Credencial destacada — un dato corto y contundente, tipo sello */
.team-credential {
    display: inline-block;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .5px;
    color: var(--navy);
    background: color-mix(in srgb, var(--accent) 12%, white);
    border: 1px solid color-mix(in srgb, var(--accent) 26%, var(--line));
    padding: 6px 14px;
    border-radius: 20px;
    margin-bottom: 20px;
}

    .team-credential strong {
        color: var(--accent)
    }

.team-bio {
    font-size: 13.5px;
    color: var(--ink-soft);
    line-height: 1.75;
    text-align: left
}

/* Viñetas con ícono en vez de párrafo corrido — más fácil de escanear */
.team-features {
    list-style: none;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1
}

.team-feature {
    display: flex;
    align-items: flex-start;
    gap: 10px
}

    .team-feature svg {
        flex: none;
        width: 15px;
        height: 15px;
        margin-top: 1px;
        color: var(--accent);
    }

    .team-feature span {
        font-size: 13px;
        color: var(--ink-soft);
        line-height: 1.5
    }

@media (max-width:900px) {
    .equipo-grid {
        grid-template-columns: 1fr;
        gap: 20px
    }
}

/* ================================================================
   BOTÓN DE COMPARTIR — chico, en la esquina, sobre la franja de color
   ================================================================ */
.team-share-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,.85);
    border: 1px solid rgba(255,255,255,.6);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy);
    cursor: pointer;
    transition: transform .2s ease,background .2s ease;
}

    .team-share-btn svg {
        width: 15px;
        height: 15px
    }

    .team-share-btn:hover {
        background: #fff;
        transform: scale(1.08)
    }

/* ================================================================
   MODAL — tarjeta empresarial digital (compartible)
   Tipografía: Inter (var(--body)) para los valores en vez de la
   display condensada — más legible a estos tamaños chicos.
   ================================================================ */
.share-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

    .share-modal.is-open {
        opacity: 1;
        pointer-events: auto
    }

.share-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(6,27,72,.55);
    backdrop-filter: blur(3px)
}

.share-modal-panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 440px
}

.share-modal-close {
    position: absolute;
    top: -14px;
    right: -14px;
    z-index: 2;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--line);
    color: var(--navy);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px -8px rgba(6,27,72,.4);
}

/* ── CARNET — credencial con giro 3D (frente / reverso) ──
   .id-card = escena (perspective) · .id-card-inner = lo que gira
   .id-card-face = cada cara (frente y reverso apiladas en la misma celda) */
.id-card {
    --accent: var(--spark);
    position: relative;
    perspective: 1400px
}

    .id-card.accent-blue {
        --accent: var(--blue)
    }

    .id-card.accent-gold {
        --accent: var(--gold)
    }

    .id-card.accent-graphite {
        --accent: var(--graphite)
    }

.id-card-inner {
    display: grid;
    transform-style: preserve-3d;
    transition: transform .75s cubic-bezier(.4,.2,.2,1);
}

.id-card.is-flipped .id-card-inner {
    transform: rotateY(180deg)
}

.id-card-face {
    grid-area: 1/1;
    display: flex;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: 0 40px 80px -30px rgba(6,27,72,.55);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Reverso — mismo tamaño que el frente, gira 180° de entrada */
.id-card-back {
    position: relative;
    transform: rotateY(180deg);
    flex-direction: column;
    padding: 20px 22px 18px;
    border-top: 4px solid var(--accent);
}

.id-back-name {
    font-family: var(--display);
    font-weight: 800;
    font-size: 16px;
    color: var(--navy);
    margin-bottom: 12px
}

.id-back-body {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-bottom: 12px
}

.id-back-row {
    display: grid;
    grid-template-columns: 78px 1fr;
    gap: 10px;
    align-items: baseline
}

.id-back-label {
    font-family: var(--mono);
    font-size: 8.5px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--accent)
}

.id-back-value {
    font-family: var(--body);
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--navy);
    font-weight: 500
}

/* Columna de foto — vertical, alineada a la izquierda, tipo carnet */
.id-card-photo-col {
    flex: none;
    width: 36%;
    position: relative;
    background: linear-gradient(165deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--navy)));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

    .id-card-photo-col::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
        background-size: 14px 14px;
    }

.id-card-photo {
    position: relative;
    z-index: 1;
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    border-radius: 10px;
    border: 3px solid rgba(255,255,255,.9);
    box-shadow: 0 14px 28px -12px rgba(0,0,0,.45);
}

.id-card-data-col {
    position: relative;
    flex: 1;
    padding: 20px 22px 18px;
    display: flex;
    flex-direction: column;
    min-width: 0
}

.id-card-top {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 14px
}

.id-card-logo-mark {
    width: 17px;
    height: 17px;
    object-fit: contain
}

.id-card-eyebrow {
    font-family: var(--mono);
    font-size: 9.5px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ink-soft)
}

.id-card-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 13px
}

.id-card-label {
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--ink-soft)
}

.id-card-value {
    font-family: var(--body);
    font-weight: 600;
    font-size: 15px;
    color: var(--navy);
    line-height: 1.35
}

.id-card-value-row {
    display: flex;
    align-items: center;
    gap: 7px
}

.id-card-value.accent {
    color: var(--accent);
    font-weight: 700
}

.id-card-role-icon {
    flex: none;
    width: 16px;
    height: 16px;
    color: var(--accent)
}

#bizName {
    font-family: var(--display);
    font-weight: 800;
    font-size: 18px;
    color: var(--navy)
}

.id-card-footer {
    margin-top: auto;
    padding-top: 10px;
    gap: 12px;
    border-top: 1px solid var(--line-soft);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Logo de la credencial — esquina superior derecha */
.id-card-logo-corner {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 60px;
    height: 60px;
    object-fit: contain;
    z-index: 1
}

.id-card-serial {
    font-family: var(--mono);
    font-size: 8.5px;
    letter-spacing: .5px;
    color: var(--ink-soft);
    line-height: 1.6
}

.id-card-seal {
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 12%, white);
    border: 1.4px solid var(--accent);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
}

    .id-card-seal svg {
        width: 14px;
        height: 14px
    }

/* ── Botones: girar · descargar · compartir ── */
.id-card-actions {
    display: grid;
    grid-template-columns: 1fr 1.3fr 1fr;
    gap: 8px;
    margin-top: 16px
}

.id-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-family: var(--body);
    font-weight: 600;
    font-size: 12.5px;
    border-radius: 9px;
    padding: 11px 8px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .2s ease,transform .2s ease,opacity .2s ease;
}

    .id-card-btn svg {
        width: 15px;
        height: 15px;
        flex: none
    }

    .id-card-btn.primary {
        background: var(--navy);
        color: #fff
    }

        .id-card-btn.primary:hover {
            background: var(--blue)
        }

    .id-card-btn.ghost {
        background: rgba(255,255,255,.95);
        color: var(--navy);
        border-color: var(--line)
    }

        .id-card-btn.ghost:hover {
            background: #fff;
            transform: translateY(-1px)
        }

    .id-card-btn:disabled {
        opacity: .6;
        cursor: progress
    }

/* ── Video: canvas de grabación y reproductor (misma caja que la credencial) ── */
.id-video-canvas,
.id-video-player {
    display: block;
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 14px;
    background: #F4F6FA;
    box-shadow: 0 40px 80px -30px rgba(6,27,72,.55);
    object-fit: cover;
}

    .id-video-canvas[hidden], .id-video-player[hidden], .id-card[hidden] {
        display: none
    }

.id-card-btn.video {
    grid-column: 1/-1;
    background: linear-gradient(135deg, var(--gold), color-mix(in srgb, var(--gold) 65%, var(--navy)));
    color: #fff
}

    .id-card-btn.video:hover {
        transform: translateY(-1px);
        filter: brightness(1.06)
    }

/* En modo video (grabando o reproduciendo) se apaga el giro */
.share-modal-panel.is-video #bizFlipBtn {
    opacity: .45;
    pointer-events: none
}

.share-modal-panel.is-rec .id-card-btn {
    pointer-events: none
}

@media (max-width:420px) {
    .id-card-front {
        flex-direction: column
    }

        .id-card-front .id-card-photo-col {
            width: 100%;
            padding: 20px
        }

        .id-card-front .id-card-photo {
            max-width: 120px;
            margin: 0 auto
        }

    .id-card-actions {
        grid-template-columns: 1fr 1fr
    }

    .id-card-btn.primary {
        grid-column: 1/-1;
        order: -1
    }
}

@media (prefers-reduced-motion:reduce) {
    .id-card-inner {
        transition-duration: .01s
    }
}
