/* ============================================================
   Lia Faria - Team v1.0.0
   Cores: #DA97A8 (principal) #E4C3C3 (secundária)
   ============================================================ */

:root {
    --lfteam-primary:   #DA97A8;
    --lfteam-secondary: #E4C3C3;
    --lfteam-dark:      #1a1a1a;
    --lfteam-mid:       #666;
    --lfteam-light:     #f9f5f5;
    --lfteam-white:     #ffffff;
    --lfteam-radius:    14px;
}

.lfteam-wrap { width: 100%; margin: 0 auto; }

/* ── Grelha ── */
.lfteam-grid {
    display: grid;
    grid-template-columns: repeat(var(--lfteam-colunas, 3), 1fr);
    gap: 28px;
}
@media (max-width: 900px) {
    .lfteam-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 520px) {
    .lfteam-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ── Card ── */
.lfteam-card {
    background: var(--lfteam-white);
    border-radius: var(--lfteam-radius);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(218,151,168,0.12);
    border: 1px solid #f0e8e8;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
}
.lfteam-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(218,151,168,0.22);
}

/* ── Foto ── */
.lfteam-card-photo {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--lfteam-light);
}
.lfteam-card-photo img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    transition: transform 0.35s ease;
}
.lfteam-card:hover .lfteam-card-photo img { transform: scale(1.04); }

.lfteam-card-photo--empty {
    display: flex; align-items: center; justify-content: center;
    background: var(--lfteam-light);
}

/* ── Corpo do card ── */
.lfteam-card-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    flex: 1;
}

.lfteam-card-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--lfteam-dark);
    font-family: inherit;
    line-height: 1.3;
}

.lfteam-card-subtitle {
    margin: 0;
    font-size: 0.85rem;
    color: var(--lfteam-primary);
    font-family: inherit;
    font-weight: 500;
}

/* ── Botão ── */
.lfteam-btn {
    margin-top: 8px;
    background: none;
    border: 2px solid var(--lfteam-primary);
    color: var(--lfteam-primary);
    border-radius: 50px;
    padding: 8px 22px;
    font-size: 0.82rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    letter-spacing: 0;
    text-transform: none;
}
.lfteam-btn:hover {
    background: var(--lfteam-primary);
    color: var(--lfteam-white);
}

/* ══════════════════════════════
   POPUP
   ══════════════════════════════ */
.lfteam-popup {
    display: none;
    position: fixed; inset: 0; z-index: 999999;
    align-items: center; justify-content: center;
}
.lfteam-popup.lfteam-popup--open { display: flex; }

.lfteam-popup-overlay {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(3px);
    cursor: pointer;
}

.lfteam-popup-box {
    position: relative; z-index: 1;
    background: var(--lfteam-white);
    border-radius: var(--lfteam-radius);
    width: 92vw; max-width: 560px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: lfteamPopupIn 0.3s ease;
}

/* Forçar SVGs visíveis (override de temas) */
.lfteam-popup svg,
.lfteam-popup-contact-icon svg {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
@keyframes lfteamPopupIn {
    from { opacity: 0; transform: translateY(16px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 520px) {
    .lfteam-popup-box { width: 100vw; max-width: 100vw; max-height: 100vh; border-radius: 0; }
}

/* ── Popup: cabeçalho ── */
.lfteam-popup-header {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 28px 28px 20px;
    border-bottom: 2px solid var(--lfteam-secondary);
}
@media (max-width: 400px) { .lfteam-popup-header { padding: 20px 16px 16px; gap: 14px; } }

.lfteam-popup-photo {
    width: 80px; height: 80px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--lfteam-light);
    border: 3px solid var(--lfteam-secondary);
}
.lfteam-popup-photo img {
    width: 100%; height: 100%;
    object-fit: cover; display: block;
}
.lfteam-popup-photo--empty {
    display: flex; align-items: center; justify-content: center;
}

.lfteam-popup-header-info { flex: 1; min-width: 0; }
.lfteam-popup-name {
    margin: 0 0 4px;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--lfteam-dark);
    font-family: inherit;
    line-height: 1.2;
}
.lfteam-popup-subtitle {
    margin: 0;
    font-size: 0.88rem;
    color: var(--lfteam-primary);
    font-weight: 500;
    font-family: inherit;
}

/* ── Popup: corpo ── */
.lfteam-popup-body { padding: 24px 28px 28px; }
@media (max-width: 400px) { .lfteam-popup-body { padding: 16px; } }

.lfteam-popup-desc {
    font-family: inherit;
    font-size: 0.92rem;
    color: var(--lfteam-mid);
    line-height: 1.7;
    margin: 0 0 20px;
    white-space: pre-line;
}

/* ── Contactos ── */
.lfteam-popup-contacts { display: flex; flex-direction: column; gap: 10px; }

.lfteam-popup-contact {
    display: flex; align-items: center; gap: 10px;
    text-decoration: none;
    font-family: inherit; font-size: 0.88rem;
    color: var(--lfteam-dark);
    transition: color 0.2s;
}
.lfteam-popup-contact:hover { color: var(--lfteam-primary); }

.lfteam-popup-contact-icon {
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--lfteam-light);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    border: 1px solid var(--lfteam-secondary);
    transition: background 0.2s;
}
.lfteam-popup-contact:hover .lfteam-popup-contact-icon {
    background: var(--lfteam-secondary);
}
.lfteam-popup-contact-icon svg {
    display: block !important;
    visibility: visible !important;
    width: 15px !important;
    height: 15px !important;
}
