/* ==========================================================
   SECCIÓN NOSOTROS - ESTILOS COMPARTIDOS
   Basado en el sistema de diseño del proyecto
   Consistente con web.css
========================================================== */

/* ==========================================================
   CONTENT SECTION
   ========================================================== */

.content-section{
    background:var(--white);
    padding:60px 0;
    position:relative;
    overflow:hidden;
}

.content-section::before{
    content:'';
    position:absolute;
    top:20%;
    right:-5%;
    width:200px;
    height:200px;
    background:radial-gradient(circle, rgba(250,204,21,0.08) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 8s ease-in-out infinite;
}

.content-section img{
    max-width:85%;
}

.content-section h2.section-title, .content-section h1{
    text-align:center;
    font-size:3rem;
}

.feature-content h4{
    font-size:1.15rem;
}

.feature-content p{
    font-size:1.1rem;
}

.content-section-alt{
    background:linear-gradient(180deg, rgba(250,204,21,0.15) 0%, rgba(250,204,21,0.3) 100%);
    position:relative;
    overflow:hidden;
}

.content-section-alt::before{
    content:'';
    position:absolute;
    top:10%;
    left:-5%;
    width:180px;
    height:180px;
    background:radial-gradient(circle, rgba(73,42,147,0.08) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 10s ease-in-out infinite reverse;
}

/* ==========================================================
   CARD STYLE
   ========================================================== */

.nosotros-card{
    background:var(--white);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
    transition:.35s;
    height:100%;
}

.nosotros-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-lg);
}

.nosotros-card-img{
    height:280px;
    object-fit:cover;
    width:100%;
}

.nosotros-card-body{
    padding:28px;
}

.nosotros-card-title{
    font-family:"Comfortaa",sans-serif;
    font-weight:700;
    color:var(--primary);
    font-size:1.3rem;
    margin-bottom:12px;
}

.nosotros-card-text{
    color:var(--text-light);
    line-height:1.8;
}

/* ==========================================================
   FEATURE BLOCK
   ========================================================== */

.feature-block{
    display:flex;
    align-items:flex-start;
    gap:20px;
    margin-bottom:32px;
}

.feature-icon{
    width:60px;
    height:60px;
    min-width:60px;
    background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
    border-radius:var(--radius);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--white);
    font-size:1.5rem;
    box-shadow:0 6px 20px rgba(73,42,147,0.25);
    transition:all 0.3s ease;
}

.feature-block:hover .feature-icon{
    transform:scale(1.1) rotate(5deg);
    box-shadow:0 10px 30px rgba(73,42,147,0.35), 0 0 20px rgba(250,204,21,0.2);
}

.feature-content h4{
    font-family:"Comfortaa",sans-serif;
    font-weight:700;
    color:var(--primary);
    margin-bottom:8px;
}

.feature-content p{
    color:var(--text-light);
    line-height:1.7;
    margin:0;
}

/* ==========================================================
   TIMELINE (Historia)
   ========================================================== */

.timeline{
    position:relative;
    padding-left:40px;
}

.timeline::before{
    content:'';
    position:absolute;
    left:15px;
    top:0;
    bottom:0;
    width:3px;
    background:linear-gradient(to bottom, var(--primary), var(--secondary));
    border-radius:3px;
}

.timeline-item{
    position:relative;
    margin-bottom:40px;
    padding:20px;
    background:var(--white);
    border-radius:var(--radius);
    box-shadow:0 4px 15px rgba(0,0,0,0.05);
    transition:all 0.3s ease;
}

.timeline-item:hover{
    transform:translateX(5px);
    box-shadow:0 8px 25px rgba(0,0,0,0.1), 0 0 15px rgba(250,204,21,0.15);
}

.timeline-item::before{
    content:'';
    position:absolute;
    left:-33px;
    top:50%;
    transform:translateY(-50%);
    width:14px;
    height:14px;
    background:var(--secondary);
    border-radius:50%;
    border:3px solid var(--white);
    box-shadow:0 0 0 3px var(--primary);
}

.timeline-year{
    font-family:"Bangers",sans-serif;
    font-size:1.8rem;
    color:var(--primary);
    margin-bottom:8px;
    letter-spacing:1px;
}

.timeline-content h4{
    font-family:"Comfortaa",sans-serif;
    font-weight:700;
    color:var(--text);
    margin-bottom:8px;
}

.timeline-content p{
    color:var(--text-light);
    line-height:1.7;
    margin:0;
}

/* ==========================================================
   STATS BLOCK
   ========================================================== */

.stats-section{
    background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    padding:60px 0;
    position:relative;
    overflow:hidden;
}

.stats-section::before{
    content:'';
    position:absolute;
    top:10%;
    left:10%;
    width:120px;
    height:120px;
    background:radial-gradient(circle, rgba(250,204,21,0.15) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 8s ease-in-out infinite;
}

.stats-section::after{
    content:'';
    position:absolute;
    bottom:15%;
    right:10%;
    width:100px;
    height:100px;
    background:radial-gradient(circle, rgba(250,204,21,0.1) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 6s ease-in-out infinite reverse;
}

.stat-item{
    text-align:center;
    padding:20px;
    position:relative;
    z-index:1;
}

.stat-number{
    font-family:"Bangers",sans-serif;
    font-size:3.5rem;
    color:var(--white);
    letter-spacing:2px;
    line-height:1;
    margin-bottom:8px;
    text-shadow:2px 2px 0 rgba(250,204,21,0.3);
}

.stat-label{
    color:rgba(255,255,255,0.85);
    font-size:1rem;
    font-weight:600;
}

/* ==========================================================
   TEAM SHOWCASE / FLIP CARDS
   ========================================================== */

.team-showcase{
    position:relative;
    overflow:hidden;
    padding:112px 0 118px;
    background:linear-gradient(180deg, #fffdf4 0%, var(--white) 45%, #f8f4ff 100%);
}

.team-showcase::before{
    z-index:0;
    opacity:.65;
}

.team-showcase > .container{
    position:relative;
    z-index:2;
    max-width:1240px;
    padding-left:24px;
    padding-right:24px;
}

.team-wave{
    position:absolute;
    left:0;
    width:100%;
    height:72px;
    line-height:0;
    pointer-events:none;
    z-index:1;
}

.team-wave svg{
    display:block;
    width:100%;
    height:100%;
}

.team-wave path{
    fill:rgba(250,204,21,.42);
}

.team-wave-top{
    top:0;
}

.team-wave-bottom{
    bottom:0;
    transform:rotate(180deg);
}

.team-heading{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    max-width:820px;
    margin:0 auto 48px;
    text-align:center;
}

.team-heading-copy{
    min-width:0;
}

.team-heading .section-title{
    margin:0 0 16px;
}

.content-section.team-showcase h2.section-title{
    font-size:clamp(2rem, 4vw, 3.05rem);
}

.team-eyebrow{
    margin:0 0 8px;
    color:var(--primary-light);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.team-heading-copy > p:last-child{
    max-width:680px;
    margin:0 auto;
    color:var(--text-light);
    font-size:1.02rem;
    line-height:1.7;
}

.team-heading-decoration{
    flex:0 0 auto;
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    color:var(--secondary);
    font-size:2rem;
    filter:drop-shadow(0 4px 0 rgba(73,42,147,.12));
    animation:teamFloat 4.8s ease-in-out infinite;
}

.team-heading-decoration-alt{
    color:var(--primary-light);
    animation-delay:-2.2s;
    font-size:1.8rem;
}

.team-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:30px;
}

.team-showcase > .container > .team-grid{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:30px !important;
}

.team-flip-card{
    position:relative;
    width:100%;
    min-height:420px;
    height:420px;
    perspective:1200px;
    cursor:pointer;
    outline:none;
}

.team-flip-card-inner{
    position:relative;
    width:100%;
    height:100%;
    transform-style:preserve-3d;
    transition:transform .58s ease-in-out;
}

.team-flip-card:hover .team-flip-card-inner,
.team-flip-card:focus .team-flip-card-inner{
    transform:rotateY(180deg);
}

.team-flip-face{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:20px;
    box-shadow:0 16px 32px rgba(73,42,147,.13);
    backface-visibility:hidden;
    transition:border-color .3s ease, box-shadow .3s ease;
}

.team-flip-card:hover .team-flip-face,
.team-flip-card:focus .team-flip-face{
    border-color:var(--secondary);
    box-shadow:0 20px 40px rgba(73,42,147,.18), 0 0 0 4px rgba(250,204,21,.18);
}

.team-flip-card:focus-visible{
    border-radius:22px;
    outline:3px solid rgba(73,42,147,.45);
    outline-offset:6px;
}

.team-flip-front{
    align-items:center;
    background:var(--white);
}

.team-flip-back{
    transform:rotateY(180deg);
    align-items:center;
    justify-content:center;
    background:linear-gradient(145deg, #f0eaff 0%, #faf4ff 52%, #fff7c8 100%);
}

.team-showcase .team-card-img{
    display:block;
    flex:0 0 auto;
    width:204px;
    max-width:calc(100% - 44px);
    aspect-ratio:3 / 4;
    height:auto;
    margin:24px auto 0;
    border:3px solid var(--secondary);
    border-radius:18px;
    object-fit:cover;
    object-position:center;
    box-shadow:0 5px 0 rgba(250,204,21,.2);
}

.team-card-body{
    width:100%;
    padding:14px 20px 18px;
    text-align:center;
}

.team-card-name{
    margin:0 0 5px;
    color:var(--primary);
    font-family:"Comfortaa",sans-serif;
    font-size:1.06rem;
    font-weight:700;
    line-height:1.35;
}

.team-card-role{
    margin:0 0 9px;
    color:var(--text-muted);
    font-size:.86rem;
    font-weight:700;
}

.team-card-specialty{
    display:inline-block;
    margin:0;
    padding:4px 12px;
    border-radius:50px;
    background:var(--complementary-light);
    color:var(--primary);
    font-size:.75rem;
    font-weight:800;
}

.team-card-back-content{
    display:flex;
    align-items:center;
    flex-direction:column;
    width:100%;
    height:100%;
    padding:32px 28px 25px;
    text-align:center;
}

.team-back-kicker{
    margin-bottom:8px;
    color:var(--primary-light);
    font-size:.7rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.team-card-back-content .team-card-name{
    max-width:100%;
    margin-bottom:10px;
    font-size:1rem;
}

.team-card-back-content .team-card-text{
    width:100%;
    margin:18px 0 0;
    color:var(--text);
    font-size:.84rem;
    line-height:1.43;
    text-align:left;
}

.team-card-decoration{
    position:absolute;
    z-index:1;
    color:var(--secondary);
    font-size:1.25rem;
    opacity:.82;
    pointer-events:none;
    animation:teamFloat 5.4s ease-in-out infinite;
}

.team-card-decoration-top{
    top:14px;
    left:16px;
}

.team-card-decoration-bottom{
    right:18px;
    bottom:14px;
    color:var(--primary-light);
    font-size:1rem;
    animation-delay:-2.5s;
}

.team-flip-hint{
    position:absolute;
    right:17px;
    bottom:13px;
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    border:1px solid rgba(73,42,147,.15);
    border-radius:50%;
    color:var(--primary-light);
    font-size:.88rem;
    background:rgba(255,255,255,.72);
}

@keyframes teamFloat{
    0%,100%{ transform:translateY(0) rotate(-4deg); }
    50%{ transform:translateY(-5px) rotate(4deg); }
}

.team-card-social{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:16px;
}

.team-card-social a{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--background);
    color:var(--primary);
    border-radius:50%;
    transition:.3s;
}

.team-card-social a:hover{
    background:var(--primary);
    color:var(--white);
}

/* ==========================================================
   QUOTE BLOCK
   ========================================================== */

.quote-block{
    background:var(--white);
    border-left:5px solid var(--primary);
    padding:32px;
    border-radius:0 var(--radius) var(--radius) 0;
    box-shadow:var(--shadow);
    margin:32px 0;
}

.quote-block p{
    font-size:1.2rem;
    font-style:italic;
    color:var(--text);
    line-height:1.8;
    margin:0 0 12px;
}

.quote-block cite{
    color:var(--text-muted);
    font-weight:600;
}

/* ==========================================================
   ICON LIST
   ========================================================== */

.icon-list{
    list-style:none;
    padding:0;
    margin:0;
}

.icon-list li{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 0;
    border-bottom:1px solid var(--background);
}

.icon-list li:last-child{
    border-bottom:none;
}

.icon-list li i{
    color:var(--primary);
    font-size:1.2rem;
    width:24px;
    text-align:center;
}

.icon-list li span{
    color:var(--text-light);
    font-weight:500;
}

/* ==========================================================
   CTA SECTION
   ========================================================== */

.cta-section{
    background:linear-gradient(135deg, var(--secondary) 0%, rgba(250,204,21,0.4) 100%);
    padding:60px 0;
    text-align:center;
    position:relative;
    overflow:hidden;
}

.cta-section::before{
    content:'';
    position:absolute;
    top:10%;
    left:10%;
    width:100px;
    height:100px;
    background:radial-gradient(circle, rgba(73,42,147,0.1) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 7s ease-in-out infinite;
}

.cta-section::after{
    content:'';
    position:absolute;
    bottom:15%;
    right:10%;
    width:80px;
    height:80px;
    background:radial-gradient(circle, rgba(73,42,147,0.08) 0%, transparent 70%);
    border-radius:50%;
    animation:floatSlow 9s ease-in-out infinite reverse;
}

.cta-section h3{
    font-family:"Nunito Sans",sans-serif;
    font-size:2.5rem;
    color:var(--primary);
    letter-spacing:2px;
    margin-bottom:12px;
    text-shadow:2px 2px 0 rgba(255,255,255,0.5);
    position:relative;
    z-index:1;
}

.cta-section p{
    color:var(--text);
    font-size:1.15rem;
    margin-bottom:24px;
    position:relative;
    z-index:1;
}

.cta-section .btn{
    position:relative;
    z-index:1;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media(max-width:992px){
    .content-section{
        padding:50px 0;
    }

    .stat-number{
        font-size:2.5rem;
    }

    .cta-section h3{
        font-size:2rem;
    }
}

@media(max-width:768px){
    .feature-block{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .content-section .team-card-img{
        height:auto;
    }

    .timeline{
        padding-left:30px;
    }

    .timeline::before{
        left:10px;
    }

    .timeline-item{
        padding:16px;
    }

    .timeline-item::before{
        left:-26px;
        width:12px;
        height:12px;
    }

    .content-section-alt::before,
    .cta-section::before,
    .cta-section::after,
    .stats-section::before,
    .stats-section::after{
        display:none;
    }
}

@media(max-width:576px){
    .content-section{
        padding:50px 0;
    }

    .stat-item{
        padding:16px;
    }

    .stat-number{
        font-size:2rem;
    }

    .timeline{
        padding-left:30px;
    }

    .timeline::before{
        left:10px;
    }

    .timeline-item::before{
        left:-26px;
        width:12px;
        height:12px;
    }

    .cta-section h3{
        font-size:1.8rem;
    }
}

/* ==========================================================
   TEAM SHOWCASE RESPONSIVE
   ========================================================== */

@media(max-width:1100px){
    .team-showcase > .container > .team-grid{
        gap:24px !important;
    }

    .team-showcase > .container{
        padding-left:20px;
        padding-right:20px;
    }
}

@media(max-width:900px){
    .team-showcase > .container > .team-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }
}

@media(max-width:640px){
    .team-showcase{
        padding-top:96px;
        padding-bottom:100px;
    }

    .team-heading{
        gap:12px;
        margin-bottom:36px;
    }

    .team-heading-decoration{
        width:30px;
        height:30px;
        font-size:1.35rem;
    }

    .team-heading-decoration-alt{
        font-size:1.2rem;
    }

    .team-heading-copy > p:last-child{
        font-size:.94rem;
        line-height:1.55;
    }

    .team-showcase > .container > .team-grid{
        grid-template-columns:1fr !important;
        gap:22px;
    }
}

@media(prefers-reduced-motion:reduce){
    .team-heading-decoration,
    .team-card-decoration{
        animation:none;
    }

    .team-flip-card-inner{
        transition-duration:.01ms;
    }
}
