.hasp-team-section{max-width:1240px;margin:0 auto;padding:1rem 0 4rem}.hasp-team-intro{max-width:720px;margin:0 auto 2.25rem;text-align:center}.hasp-team-eyebrow{margin:0 0 .55rem;color:#d91564;font-weight:800;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase}.hasp-team-intro h2{margin:0 0 .75rem;font-size:clamp(2rem,4vw,3.15rem);line-height:1.05;color:#17264b}.hasp-team-intro>p:last-child{margin:0;color:#596579;font-size:1.04rem;line-height:1.7}.hasp-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.hasp-team-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e7eaf0;border-radius:20px;box-shadow:0 12px 34px rgba(21,38,75,.08);transition:transform .22s ease,box-shadow .22s ease}.hasp-team-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(21,38,75,.13)}.hasp-team-photo{aspect-ratio:4/4.35;background:linear-gradient(145deg,#f5f8fc,#e8f1f7);overflow:hidden;display:grid;place-items:center}.hasp-team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.hasp-team-photo>span{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;background:#17264b;color:#fff;font-size:3.1rem;font-weight:800}.hasp-team-card-body{position:relative;padding:1.35rem 1.35rem 1.45rem}.hasp-team-rank{position:absolute;right:1.2rem;top:1.15rem;color:#c8ced8;font-size:.78rem;font-weight:800;letter-spacing:.08em}.hasp-team-card h3{margin:0;padding-right:2.2rem;color:#17264b;font-size:1.28rem;line-height:1.25}.hasp-team-position{margin:.4rem 0 .75rem;color:#d91564;font-weight:750;font-size:.91rem}.hasp-team-bio{margin:0;color:#5b6678;font-size:.93rem;line-height:1.65}.hasp-team-bio p{margin:0 0 .65rem}.hasp-team-bio p:last-child{margin-bottom:0}.hasp-team-phone{display:inline-flex;align-items:center;margin-top:.9rem;color:#17264b!important;text-decoration:none!important;font-size:.9rem;font-weight:800}.hasp-team-phone:before{content:'☎';margin-right:.45rem;color:#d91564}.hasp-team-phone:hover{color:#d91564!important}.hasp-team-socials{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.05rem}.hasp-team-social{display:inline-flex;align-items:center;min-height:32px;padding:.35rem .72rem;border:1px solid #dfe4eb;border-radius:999px;color:#17264b!important;text-decoration:none!important;font-size:.76rem;font-weight:750;background:#f8fafc}.hasp-team-social:hover{border-color:#d91564;color:#d91564!important;background:#fff}.hasp-team-empty{padding:2rem;border:1px dashed #cad2de;border-radius:16px;text-align:center;color:#687386;background:#f8fafc}@media(max-width:980px){.hasp-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.hasp-team-section{padding-bottom:2.5rem}.hasp-team-grid{grid-template-columns:1fr;gap:1rem}.hasp-team-card{border-radius:16px}.hasp-team-photo{aspect-ratio:4/3.6}.hasp-team-intro{margin-bottom:1.5rem}.hasp-team-card-body{padding:1.15rem}}
@media(prefers-reduced-motion:reduce){.hasp-team-card{transition:none}.hasp-team-card:hover{transform:none}}

/* Team phone and mobile contact details */
.hasp-team-contact{display:grid;gap:.38rem;margin-top:.9rem}
.hasp-team-contact a{display:flex;align-items:baseline;gap:.5rem;width:max-content;max-width:100%;font-weight:700;text-decoration:none}
.hasp-team-contact a span{min-width:3.8rem;color:var(--hasp-team-muted,#667085);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.hasp-team-mobile{color:inherit}


/* Team contact row: brand-colour icons and single-line office/mobile details. */
.hasp-team-contact{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:.95rem}
.hasp-team-contact-link{display:inline-flex;align-items:center;gap:.5rem;width:auto;max-width:100%;margin:0;color:inherit!important;font-size:.88rem;font-weight:800;line-height:1.35;text-decoration:none!important;white-space:nowrap}
.hasp-team-contact-link:hover,.hasp-team-contact-link:focus-visible{color:inherit!important;text-decoration:underline!important;text-underline-offset:3px}
.hasp-team-contact-icon{width:1.4rem;height:1.4rem;flex:0 0 1.4rem;fill:currentColor}
.hasp-team-contact-link:hover .hasp-team-contact-icon,.hasp-team-contact-link:focus-visible .hasp-team-contact-icon{fill:currentColor}
.hasp-team-phone:before{content:none!important;display:none!important}
.hasp-team-contact a span:not(.screen-reader-text){display:none!important}
@media(max-width:420px){.hasp-team-contact{gap:.5rem .8rem}.hasp-team-contact-link{font-size:.82rem}}

/* V1.5.6: neutral role styling and a recognisable outlined mobile handset. */
.hasp-team-position{color:#4b5563!important}
.hasp-team-mobile-icon{fill:none!important;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hasp-team-mobile-icon rect,.hasp-team-mobile-icon path{fill:none!important;stroke:currentColor}

/* V1.5.7: refine contact icon width and vertically centre contact numbers. */
.hasp-team-contact-link{
    align-items:center;
    line-height:1;
}
.hasp-team-contact-icon{
    display:block;
    width:1.2rem;
    height:1.3rem;
    flex:0 0 1.2rem;
}
.hasp-team-phone .hasp-team-contact-icon{
    width:1rem;
    flex-basis:1rem;
}
.hasp-team-mobile-icon{
    width:1.05rem;
    flex-basis:1.05rem;
}

/* V1.6.0: leadership category sections on the public Our Team page. */
.hasp-team-group{margin:0 0 3rem}
.hasp-team-group:last-child{margin-bottom:0}
.hasp-team-group-heading{display:flex;align-items:center;gap:1rem;margin:0 0 1.25rem}
.hasp-team-group-heading:after{content:"";height:1px;flex:1;background:#e3e7ed}
.hasp-team-group-heading h3{margin:0;color:#303846;font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.2;font-weight:800}
.hasp-team-group--general-manager .hasp-team-grid{grid-template-columns:minmax(280px,390px);justify-content:center}
.hasp-team-group--elt .hasp-team-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1180px;margin-inline:auto}
.hasp-team-group--managers .hasp-team-grid,.hasp-team-group--other-team .hasp-team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.hasp-team-group--managers .hasp-team-grid,.hasp-team-group--other-team .hasp-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.hasp-team-group{margin-bottom:2.25rem}.hasp-team-group--general-manager .hasp-team-grid,.hasp-team-group--elt .hasp-team-grid,.hasp-team-group--managers .hasp-team-grid,.hasp-team-group--other-team .hasp-team-grid{grid-template-columns:1fr}.hasp-team-group-heading{margin-bottom:1rem}}

/* V1.6.3: optically centre contact icons and phone numbers. */
.hasp-team-contact-link{
    display:grid;
    grid-template-columns:1.05rem auto;
    align-items:center;
    column-gap:.45rem;
    min-height:1.55rem;
    line-height:1.25;
}
.hasp-team-contact-icon{
    display:block;
    align-self:center;
    justify-self:center;
    width:1.05rem;
    height:1.05rem;
    flex:none;
    margin:0;
    transform:none;
}
.hasp-team-phone .hasp-team-contact-icon{
    width:.95rem;
    height:.95rem;
}
.hasp-team-mobile-icon{
    width:1rem;
    height:1.08rem;
}


/* V1.6.4: exact mobile icon and number alignment. */
.hasp-team-contact-link{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    min-height:1.5rem;
    line-height:1;
}
.hasp-team-contact-number{
    display:inline-flex;
    align-items:center;
    min-height:1.5rem;
    line-height:1.5rem;
    white-space:nowrap;
}
.hasp-team-mobile .hasp-team-mobile-icon{
    display:block;
    width:1rem;
    height:1.18rem;
    flex:0 0 1rem;
    margin:0;
    transform:translateY(0);
}
.hasp-team-mobile{align-items:center!important}

/* V1.6.5: restore visible office and mobile numbers while retaining alignment. */
.hasp-team-contact .hasp-team-contact-number{
    display:inline-flex!important;
    align-items:center;
    min-width:0!important;
    min-height:1.5rem;
    color:inherit!important;
    font-size:inherit!important;
    font-weight:inherit!important;
    letter-spacing:normal!important;
    line-height:1.5rem;
    text-transform:none!important;
    white-space:nowrap;
}

/* V1.6.6: ensure visible contact numbers override the legacy label-hiding rule. */
.hasp-team-contact a span.hasp-team-contact-number:not(.screen-reader-text){
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    position:static!important;
}
