/* Team Fourthmore — page-specific styling.
   Loaded after Fourthmore's shared desktop/device CSS to keep the existing site untouched. */

.team-page{
    overflow:hidden;
}

.team-hero{
    isolation:isolate;
}

.team-hero-shade{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.22) 100%);
}

.team-hero .holding-hero-copy{
    z-index:2;
}

.team-hero .holding-hero-copy h1{
    letter-spacing:-0.035em;
}

.team-hero .holding-hero-copy p{
    letter-spacing:0.01em;
}

.team-intro{
    min-height:640px;
}

.team-message-inner{
    max-width:680px;
}

.team-status{
    display:flex;
    flex-direction:column;
    align-items:center;
    margin:0 auto 70px;
    text-align:center;
}

.team-status-kicker,
.team-status-date,
.team-status-rule{
    opacity:1;
}

.team-status-kicker{
    font-size:11px;
    line-height:1;
    font-weight:600;
    letter-spacing:0.28em;
    text-transform:uppercase;
}

.team-status-date{
    margin-top:14px;
    font-size:38px;
    line-height:1.1;
    font-weight:200;
    letter-spacing:-0.02em;
}

.team-status-rule{
    display:block;
    width:56px;
    height:1px;
    margin-top:22px;
    background:#2F2F2F;
    transform-origin:left center;
}

/* Visible by default. JavaScript adds is-pending only when it can animate safely. */
.team-status.is-pending .team-status-kicker{
    opacity:0;
    letter-spacing:0.62em;
    transform:translateY(7px);
}

.team-status.is-pending .team-status-date{
    opacity:0;
    transform:translateY(9px);
}

.team-status.is-pending .team-status-rule{
    opacity:0;
    transform:scaleX(0);
}

.team-status.is-visible .team-status-kicker{
    animation:teamKickerIn 1000ms cubic-bezier(0.22, 1, 0.36, 1) 100ms both;
}

.team-status.is-visible .team-status-date{
    animation:teamDateIn 850ms cubic-bezier(0.22, 1, 0.36, 1) 650ms both;
}

.team-status.is-visible .team-status-rule{
    animation:teamRuleIn 850ms cubic-bezier(0.22, 1, 0.36, 1) 1250ms both;
}

@keyframes teamKickerIn{
    to{
        opacity:1;
        letter-spacing:0.28em;
        transform:translateY(0);
    }
}

@keyframes teamDateIn{
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes teamRuleIn{
    0%{opacity:0;transform:scaleX(0);}
    18%{opacity:1;}
    100%{opacity:1;transform:scaleX(1);}
}

.team-intro h2{
    margin-bottom:28px;
}

.team-intro p + p{
    margin-top:-18px;
}

.team-markets{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:15px;
    margin-top:50px;
    font-size:12px;
    line-height:1.4;
    font-weight:500;
    letter-spacing:0.02em;
}

.team-markets i{
    display:block;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#2F2F2F;
    opacity:0.55;
}

.team-practice{
    width:100%;
    background:#F6F6F6;
    box-sizing:border-box;
}

.team-practice-inner{
    width:min(930px, 80%);
    margin:0 auto;
    padding:125px 0 120px;
    display:grid;
    grid-template-columns:minmax(0, 1.35fr) minmax(240px, 0.65fr);
    gap:110px;
    align-items:start;
}

.team-practice-copy h2{
    margin:0 0 30px;
    font-size:35px;
    line-height:1.22;
    font-weight:400;
}

.team-practice-copy p{
    margin:0 0 22px;
    font-size:14px;
    line-height:1.8;
    font-weight:300;
}

.team-roles{
    display:flex;
    flex-direction:column;
    border-top:1px solid #BDBDBD;
}

.team-roles span{
    display:block;
    padding:18px 0;
    border-bottom:1px solid #D8D8D8;
    font-size:14px;
    line-height:1.4;
    font-weight:500;
}

.team-contact{
    width:100%;
    background:#FFFFFF;
}

.team-contact-inner{
    width:min(620px, 80%);
    margin:0 auto;
    padding:120px 0 130px;
    text-align:center;
}

.team-contact-label{
    margin:0 0 24px;
    font-size:30px;
    line-height:1.25;
    font-weight:300;
}

.team-contact .holding-link{
    font-size:18px;
}

.team-independent-note{
    max-width:520px;
    margin:50px auto 0;
    font-size:11px;
    line-height:1.65;
    font-weight:300;
    opacity:0.72;
}

@media screen and (max-width:1159px){
    .team-hero .holding-hero-copy h1{
        font-size:44px;
    }

    .team-hero .holding-hero-copy p{
        font-size:18px;
    }

    .team-intro{
        min-height:560px;
        padding-top:90px;
        padding-bottom:90px;
    }

    .team-status{
        margin-bottom:58px;
    }

    .team-status-date{
        font-size:34px;
    }

    .team-practice-inner{
        width:80%;
        padding:100px 0;
        grid-template-columns:1fr;
        gap:60px;
    }

    .team-practice-copy h2{
        font-size:30px;
    }

    .team-practice-copy p{
        font-size:15px;
        line-height:1.7;
    }

    .team-contact-inner{
        padding:100px 0 110px;
    }
}

@media screen and (max-width:768px){
    .team-hero{
        aspect-ratio:4 / 5;
    }

    .team-hero video{
        object-position:center center;
    }

    .team-hero .holding-hero-copy{
        padding-left:28px;
        padding-right:28px;
    }

    .team-hero .holding-hero-copy h1{
        font-size:40px;
    }

    .team-hero .holding-hero-copy p{
        max-width:280px;
        margin-top:16px;
        font-size:16px;
    }

    .team-intro{
        min-height:0;
        padding:88px 12%;
    }

    .team-status{
        margin-bottom:52px;
    }

    .team-status-kicker{
        font-size:10px;
    }

    .team-status-date{
        font-size:31px;
    }

    .team-intro h2{
        font-size:28px;
        line-height:1.25;
    }

    .team-intro p{
        font-size:15px;
        line-height:1.7;
    }

    .team-markets{
        gap:10px;
        margin-top:42px;
        font-size:11px;
    }

    .team-practice-inner{
        width:76%;
        padding:86px 0 90px;
        gap:52px;
    }

    .team-practice-copy h2{
        font-size:27px;
    }

    .team-roles span{
        font-size:13px;
    }

    .team-contact-inner{
        width:76%;
        padding:86px 0 95px;
    }

    .team-contact-label{
        font-size:27px;
    }

    .team-contact .holding-link{
        font-size:16px;
    }
}

@media (prefers-reduced-motion:reduce){
    .team-status-kicker,
    .team-status-date,
    .team-status-rule{
        opacity:1;
        transform:none;
        animation:none;
    }

    .team-status-rule{
        width:56px;
    }
}
