.spire-about-page,.spire-team-profile{background:var(--warm); color:var(--ink);}
.about-intro{padding:165px 0 0; background:var(--ink-deep); color:white;}
.about-intro__heading{display:grid; grid-template-columns:1.4fr 1fr; align-items:end; gap:9%; margin-bottom:60px;}
.about-hero h1{font-size:clamp(42px,5.4vw,78px); line-height:1.08; letter-spacing:-0.05em; font-weight:500; margin:0;}
.spire-about-page em,.spire-team-profile h2 em{font-family:var(--accent-serif); font-weight:500; color:var(--orange);}
.about-intro__heading > p{font-size:17px; line-height:1.85; color:#c5d2d5; max-width:440px; margin:0 0 5px;}
.about-intro__grid{display:grid; grid-template-columns:1fr 1fr; align-items:stretch; gap:7%;}
.about-intro__visual{position:relative; min-height:535px;}
.about-intro__visual img{position:absolute; width:100%; height:100%; object-fit:cover;}
.about-intro__visual > span{position:absolute; bottom:24px; left:24px; background:var(--ink-deep); padding:12px 18px; font-size:10px; text-transform:uppercase; letter-spacing:0.14em;}
.about-intro__copy{padding:28px 0;}
.about-intro__copy .section-kicker{font-size:10px; color:#f2a477; line-height:1.6;}
.about-intro__copy h2,.about-team h2,.about-team__heading h2{font-size:clamp(34px,3.6vw,50px); font-weight:500; letter-spacing:-0.045em; line-height:1.15; margin:0 0 26px;}
.about-intro__copy > p:not(.section-kicker){font-size:14px; line-height:1.95; color:#c5d2d5;}
.about-text-link{display:inline-flex; gap:25px; align-items:center; padding-bottom:7px; border-bottom:1px solid currentColor; font-size:11px; font-weight:600;}
.about-intro__copy .about-text-link{margin-top:14px;}
.spire-about-page svg,.spire-team-profile svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; flex-shrink:0;}
.about-principles{display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding:46px 0 48px;}
.about-principles > div{border-top:1px solid #ffffff30; padding-top:25px;}
.about-principles span{font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:#f2a477;}
.about-principles h3{font-size:21px; font-weight:500; letter-spacing:-0.025em; margin:14px 0;}
.about-principles p{font-size:12px; line-height:1.85; color:#beced1; margin:0; max-width:340px;}
.about-team{padding-top:90px; padding-bottom:95px; scroll-margin-top:100px;}
.about-team__heading{display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px;}
.about-team__heading h2{margin-bottom:0;}
.about-team__heading > p{color:#5b7179; font-size:14px; line-height:1.8; margin:0;}
.about-team__grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:25px;}
.about-team--single{padding-top:90px; padding-bottom:95px;}
.about-team--single .about-team__heading{margin-bottom:48px;}
.about-team--single .about-team__heading > p{max-width:520px;}
.about-team__single{display:grid; grid-template-columns:minmax(320px,420px) minmax(0,1fr); gap:50px 75px; align-items:center;}
.team-single__visual{max-width:420px; width:100%;}
.team-single__visual .team-card__portrait{width:100%; aspect-ratio:833/1000; display:block; position:relative; overflow:hidden; background:#d6e1e2;}
.team-single__info{display:flex; flex-direction:column; justify-content:center; max-width:640px;}
.team-single__name{font-size:clamp(30px,3.2vw,44px); font-weight:500; letter-spacing:-0.04em; line-height:1.15; margin:0 0 10px; color:var(--ink);}
.team-single__name a{color:inherit; text-decoration:none; transition:color 280ms ease;}
.team-single__name a:hover,.team-single__name a:focus-visible{color:var(--orange);}
.team-single__role{font-size:12px; color:#8f451f; margin:0 0 24px; text-transform:uppercase; letter-spacing:0.12em; font-weight:600;}
.team-single__bio{font-size:15px; line-height:1.85; color:#49616b; margin-bottom:28px;}
.team-single__bio p{margin:0 0 16px;}
.team-single__bio p:last-child{margin-bottom:0;}
.team-single__link{align-self:flex-start; font-size:12px; font-weight:600; letter-spacing:0.04em;}
.team-card__portrait{display:block; position:relative; overflow:hidden; background:#d6e1e2; aspect-ratio:833/1000;}
.team-card__portrait img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; will-change:transform;}
.team-card:hover .team-card__portrait img,.team-single__visual:hover .team-card__portrait img{transform:scale(1.025);}
.team-card__portrait > span{position:absolute; right:16px; bottom:16px; display:grid; place-items:center; width:40px; height:40px; background:var(--ink-deep); color:#fff; border-radius:50%;}
.team-card__details{padding-top:22px;}
.team-card h3{font-size:23px; font-weight:500; letter-spacing:-0.035em; margin:0 0 7px;}
.team-card__details > p{font-size:11px; color:#8f451f; margin-bottom:18px; text-transform:uppercase; letter-spacing:0.09em;}
.team-card__link{display:inline-flex; align-items:center; gap:20px; font-size:11px; color:#526970;}
.team-card__link svg{width:17px;}
.about-connect{padding:70px 0; background:var(--orange-soft);}
.about-connect > .spire-shell{display:flex; align-items:center; justify-content:space-between; gap:35px;}
.about-connect h2{font-size:clamp(34px,4vw,55px); letter-spacing:-0.045em; font-weight:500; line-height:1.15; margin:0;}
.about-button{display:inline-flex; align-items:center; gap:30px; background:var(--ink); color:white; padding:20px 25px; font-size:12px; white-space:nowrap;}
.about-button:hover{background-color:var(--orange); color:white;}
.spire-about-page a:focus-visible,.spire-team-profile a:focus-visible{outline:2px solid var(--orange); outline-offset:5px;}
.profile-hero{background:var(--ink-deep); color:white; padding-top:96px;}
.profile-hero__grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:8%; align-items:center;}
.profile-hero__portrait{max-width:520px;}
.profile-hero__portrait img{display:block; width:100%; height:560px; object-fit:cover; object-position:center 24%;}
.profile-hero__copy{padding:35px 0;}
.profile-back{display:inline-block; font-size:11px; color:#c7d4d7; margin-bottom:38px;}
.profile-hero .section-kicker{font-size:10px; color:#d6e2e3;}
.profile-hero h1{font-size:clamp(42px,5.2vw,74px); line-height:1.04; letter-spacing:-0.055em; font-weight:500; margin:0 0 20px;}
.profile-title{color:var(--orange); font-size:15px; text-transform:uppercase; letter-spacing:0.12em;}
.profile-summary{color:#c3d2d4; font-size:17px; line-height:1.8; margin:24px 0 32px;}
.profile-contact{display:flex; flex-wrap:wrap; gap:20px 45px; border-top:1px solid #ffffff30; padding-top:24px;}
.profile-contact span{display:block; color:#abc1c6; text-transform:uppercase; font-size:9px; letter-spacing:0.16em; margin-bottom:8px;}
.profile-contact a{font-size:14px; overflow-wrap:anywhere;}
.profile-story{display:grid; grid-template-columns:270px minmax(0,1fr); gap:7%; padding-top:75px; padding-bottom:80px;}
.profile-facts > .section-kicker{font-size:10px;}
.profile-facts > div{border-top:1px solid #d3dcda; padding:23px 0;}
.profile-facts > div > span{display:block; color:#996044; font-size:10px; text-transform:uppercase; letter-spacing:0.12em; margin-bottom:12px;}
.profile-facts strong{font-size:38px; line-height:1.2; font-weight:500; letter-spacing:-0.04em;}
.profile-facts p{font-size:13px; line-height:1.8; color:#5b7179; margin:7px 0 0;}
.profile-biography h2{font-size:clamp(32px,3.5vw,48px); font-weight:500; line-height:1.18; letter-spacing:-0.035em; margin-bottom:32px;}
.profile-biography__body{font-size:15px; line-height:1.95; color:#49616b;}
.profile-biography__body p{margin-bottom:22px;}
.profile-credentials{display:grid; grid-template-columns:1fr 1fr; gap:35px; border-top:1px solid #d3dcda; padding-top:30px; margin-top:35px;}
.profile-credentials:has(> *:only-child){grid-template-columns:1fr;}
.profile-credentials > *:only-child{grid-column:1/-1;}
.profile-credentials h3{font-size:17px; font-weight:600; margin-bottom:22px;}
.profile-credentials p{font-size:12px; line-height:1.8; color:#66787e;}
.profile-credentials strong{color:var(--ink); font-weight:500;}
.profile-colleagues{padding:60px 0; background:#eaf0ed;}
.profile-colleagues__grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px;}
.profile-colleague{display:flex; align-items:center; gap:18px; border-top:1px solid #c6d3cf; padding-top:22px;}
.profile-colleague img{width:80px; height:96px; object-fit:cover;}
.profile-colleague h3{font-size:18px; font-weight:500; letter-spacing:-0.03em; margin:0 0 8px;}
.profile-colleague p{font-size:10px; color:#966043; margin:0;}
.profile-colleague > svg{margin-left:auto;}
@media (max-width:1100px){
  .about-intro__grid{gap:5%;}
  .about-team__grid{gap:18px;}
  .team-card h3{font-size:20px;}
  .profile-hero__grid{gap:5%;}
  .profile-hero__portrait img{height:520px;}
  .profile-story{grid-template-columns:220px minmax(0,1fr); gap:5%;}
  .profile-colleague{gap:12px;}
  .profile-colleague img{width:60px; height:75px;}
  .profile-colleague h3{font-size:16px;}
}
@media (max-width:820px){
  .about-intro{padding-top:135px;}
  .about-intro__heading{grid-template-columns:1fr; gap:24px; margin-bottom:35px;}
  .about-intro__heading > p{max-width:620px;}
  .about-intro__grid{grid-template-columns:1fr; gap:25px;}
  .about-intro__visual{min-height:380px;}
  .about-principles{gap:25px;}
  .about-principles h3{font-size:18px;}
  .about-team__grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 22px;}
  .about-team__single{grid-template-columns:minmax(280px,360px) 1fr; gap:40px;}
  .about-team--single .about-team__heading > p{max-width:none;}
  .about-team__heading{align-items:start; flex-direction:column;}
  .about-connect > .spire-shell{align-items:start; flex-direction:column;}
  .profile-hero{padding-top:78px;}
  .profile-hero__portrait img{height:470px;}
  .profile-summary{font-size:14px;}
  .profile-back{margin-bottom:25px;}
  .profile-hero h1{font-size:44px;}
  .profile-story{grid-template-columns:1fr; gap:35px; padding-top:45px;}
  .profile-facts{display:grid; grid-template-columns:repeat(2,1fr); gap:0 25px;}
  .profile-facts > .section-kicker{grid-column:1/-1;}
  .profile-colleagues__grid{grid-template-columns:1fr;}
  .profile-colleague img{width:80px; height:96px;}
  .profile-colleague h3{font-size:20px;}
}
@media (max-width:560px){
  .about-hero{padding:130px 0 40px;}
  .about-hero h1{font-size:clamp(28px, 7.5vw, 40px); line-height:1.12; margin:0 0 14px;}
  .about-intro__heading > p{margin:0; font-size:15px; line-height:1.7;}
  .about-intro{padding-top:35px;}
  .about-intro__visual{min-height:280px;}
  .about-intro__copy{padding-top:16px;}
  .about-intro__copy h2{font-size:clamp(26px, 7vw, 36px); line-height:1.15; margin:0 0 16px;}
  .about-intro__copy > p:not(.section-kicker){margin:0 0 14px; font-size:14px; line-height:1.75;}
  .about-intro__copy .about-text-link{margin-top:16px;}
  .about-principles{grid-template-columns:1fr; padding-top:16px; padding-bottom:30px; gap:20px;}
  .about-principles > div{padding-top:16px;}
  .about-principles h3{margin:8px 0 6px;}
  .about-team{padding-top:50px; padding-bottom:50px;}
  .about-team--single{padding-top:50px; padding-bottom:50px;}
  .about-team--single .about-team__heading{margin-bottom:24px;}
  .about-team__single{grid-template-columns:1fr; gap:24px;}
  .team-single__visual{max-width:320px;}
  .team-single__name{font-size:24px; margin-bottom:8px;}
  .team-single__role{font-size:11px; margin-bottom:16px;}
  .team-single__bio{font-size:14px; line-height:1.75; margin-bottom:20px;}
  .about-team__heading{margin-bottom:24px; gap:10px;}
  .about-team h2,.about-team__heading h2{font-size:clamp(26px, 7vw, 36px); line-height:1.15; margin:0;}
  .about-team__heading > p{margin-top:6px; font-size:13px;}
  .about-team__grid{gap:22px 14px;}
  .team-card h3{font-size:18px; margin:0 0 4px;}
  .team-card__details{padding-top:14px;}
  .team-card__details > p{font-size:10px; margin-bottom:10px; min-height:0;}
  .team-card__portrait > span{right:10px; bottom:10px; width:30px; height:30px;}
  .team-card__portrait > span svg{width:16px;}
  .about-connect{padding:55px 0;}
  .about-connect > .spire-shell{gap:20px;}
  .about-connect h2{font-size:clamp(26px, 6.8vw, 36px); line-height:1.15; margin:0;}
  .about-connect .about-button{padding:16px 22px; margin-top:4px;}
  .profile-hero{padding-top:78px;}
  .profile-hero h1{margin:0 0 14px;}
  .profile-hero__grid{grid-template-columns:1fr; gap:0;}
  .profile-hero__portrait{max-width:none;}
  .profile-hero__portrait img{height:auto; max-height:480px; object-fit:cover;}
  .profile-hero__copy{padding:24px 0;}
  .profile-back{margin-bottom:18px;}
  .profile-summary{margin:16px 0 22px; font-size:14px; line-height:1.75;}
  .profile-summary br{display:inline; content:" ";}
  .profile-contact{padding-top:18px; gap:16px 30px;}
  .profile-credentials{grid-template-columns:1fr; gap:14px;}
  .profile-story{padding-top:36px; padding-bottom:40px; gap:28px;}
  .profile-biography h2{font-size:clamp(24px, 6.5vw, 34px); line-height:1.15; margin:0 0 16px;}
  .profile-biography p{margin:0 0 14px; font-size:14px; line-height:1.75;}
  .profile-colleagues{padding:40px 0;}
  .profile-colleagues h2{margin:0 0 18px;}
  .profile-colleague{gap:14px; margin-bottom:14px;}
}
@media (prefers-reduced-motion:reduce){
  .team-card__portrait img{transition:none;}
}
/* Distinct hero,light company introduction,and team sections. */

.about-hero{padding:165px 0 65px; background:var(--ink-deep); color:#fff;}
.about-hero .about-intro__heading{margin-bottom:0;}
.about-intro{padding:75px 0 0; background:#fff; color:var(--ink);}
.about-intro__copy .section-kicker{color:#a64a1e;}
.about-intro__copy > p:not(.section-kicker){color:#536b75;}
.about-intro__visual > span{color:#fff;}
.about-principles{padding-bottom:60px;}
.about-principles > div{border-top-color:var(--line);}
.about-principles span{color:#a64a1e;}
.about-principles p{color:#536b75;}
@media (max-width:820px){
  .about-hero{padding:135px 0 45px;}
  .about-intro{padding-top:50px;}
}
@media (max-width:560px){
  .about-intro{padding-top:35px;}
  .about-principles{padding-bottom:40px;}

}
/* Match the homepage About section typography and colors. */

.about-intro__copy .section-kicker{font-size:13px; font-weight:700; line-height:1; letter-spacing:0.22em; color:var(--ink);}
.about-intro__copy h2{font:500 clamp(42px,5vw,72px)/1.08 var(--serif); letter-spacing:-0.045em; color:var(--ink);}
.about-intro__copy h2 em{font-family:var(--accent-serif); font-style:italic; font-weight:500; letter-spacing:-0.025em; color:var(--orange);}
@media (max-width:560px){
  .about-intro__copy h2{font-size:clamp(26px, 7vw, 36px); line-height:1.15;}
}
.about-team__heading .section-kicker{white-space:normal;}
@media (min-width:768px){
  .about-team__heading .section-kicker{white-space:nowrap;}
}
.about-team__heading h2 span{color:var(--orange);}
/* AOS:keep content available when scripts fail or motion is disabled. */

.spire-about-page{overflow-x:clip;}
.spire-about-page:not(.about-motion-ready) [data-aos]{opacity:1 !important; transform:none !important; pointer-events:auto !important;}
.spire-about-page [data-aos="fade-up"]{transform:translate3d(0,28px,0);}
.spire-about-page [data-aos="fade-right"]{transform:translate3d(-28px,0,0);}
.spire-about-page [data-aos="fade-left"]{transform:translate3d(28px,0,0);}
.spire-about-page [data-aos].aos-animate{transform:none;}
@media (prefers-reduced-motion:reduce){
  .spire-about-page [data-aos]{opacity:1 !important; transform:none !important; transition:none !important; pointer-events:auto !important;}
}
/* Team cards sweep in quickly from offscreen,then ease into their slots. */

.spire-about-page.about-motion-ready .team-card[data-aos="team-sweep"],
.spire-about-page.about-motion-ready .about-team__single[data-aos="team-sweep"]{opacity:0; -webkit-backface-visibility:hidden; backface-visibility:hidden; will-change:transform,opacity; transform:translate3d(-110vw,0,0) rotate(-5deg); transform-origin:50% 80%; transition-property:transform,opacity; transition-duration:1400ms,400ms; transition-timing-function:cubic-bezier(0.12,0.82,0.18,1),ease-out; transition-delay:0ms;}
.spire-about-page.about-motion-ready .team-card[data-aos="team-sweep"].aos-animate,
.spire-about-page.about-motion-ready .about-team__single[data-aos="team-sweep"].aos-animate{opacity:1; transform:translate3d(0,0,0) rotate(0deg); transition-delay:var(--team-sweep-delay,0ms);}
.team-card[data-aos="team-sweep"][data-aos-delay="120"]{--team-sweep-delay:120ms;}
.team-card[data-aos="team-sweep"][data-aos-delay="240"]{--team-sweep-delay:240ms;}
.team-card[data-aos="team-sweep"][data-aos-delay="360"]{--team-sweep-delay:360ms;}
@media (max-width:767px){
  .spire-about-page.about-motion-ready .team-card[data-aos="team-sweep"],
  .spire-about-page.about-motion-ready .about-team__single[data-aos="team-sweep"]{transform:translate3d(0,24px,0); transform-origin:center; transition-duration:650ms,400ms; transition-timing-function:cubic-bezier(0.2,0.8,0.2,1),ease-out;}
  .spire-about-page.about-motion-ready .team-card[data-aos="team-sweep"].aos-animate,
  .spire-about-page.about-motion-ready .about-team__single[data-aos="team-sweep"].aos-animate{transform:translate3d(0,0,0);}
}
@media (prefers-reduced-motion:reduce){
  .spire-about-page.about-motion-ready .team-card[data-aos="team-sweep"],
  .spire-about-page.about-motion-ready .about-team__single[data-aos="team-sweep"]{opacity:1; transform:none; transition:none;}
}
/* ==================================================
   Consistent Home Page Hover Interaction System
   ================================================== */


/* Inline Text Links */

.about-text-link{transition:color 280ms ease,border-color 280ms ease,transform 280ms ease;}
.about-text-link svg{transition:transform 280ms ease,stroke 280ms ease;}
.about-text-link:hover,.about-text-link:focus-visible{color:var(--orange); border-color:var(--orange); transform:translateY(-2px);}
.about-text-link:hover svg,.about-text-link:focus-visible svg{transform:translateX(5px);}
/* CTA Button */

.about-button{transition:background-color 280ms ease,color 280ms ease,transform 280ms ease;}
.about-button svg{transition:transform 280ms ease,stroke 280ms ease;}
.about-button:hover,.about-button:focus-visible{background-color:var(--orange); color:#fff; transform:translateY(-2px);}
.about-button:hover svg,.about-button:focus-visible svg{transform:translateX(5px);}
/* Team Card Interactions */

.team-card h3 a{transition:color 280ms ease;}
.team-card:hover h3 a,.team-card h3 a:hover,.team-card h3 a:focus-visible,.team-single__name a:hover,.team-single__name a:focus-visible{color:var(--orange);}
.team-card__portrait > span{transition:background-color 280ms ease,color 280ms ease,transform 280ms ease;}
.team-card__portrait > span svg{transition:transform 280ms ease;}
.team-card:hover .team-card__portrait > span,.team-card__portrait:focus-visible > span,.team-single__visual:hover .team-card__portrait > span,.team-card__portrait:hover > span{background-color:var(--orange); color:#fff; transform:translateY(-2px);}
.team-card:hover .team-card__portrait > span svg,.team-card__portrait:focus-visible > span svg,.team-single__visual:hover .team-card__portrait > span svg,.team-card__portrait:hover > span svg{transform:translateX(4px);}
.team-card__link,.team-single__link{transition:color 280ms ease;}
.team-card__link svg,.team-single__link svg{transition:transform 280ms ease;}
.team-card:hover .team-card__link,.team-card__link:hover,.team-card__link:focus-visible,.team-single__link:hover,.team-single__link:focus-visible{color:var(--orange);}
.team-card:hover .team-card__link svg,.team-card__link:hover svg,.team-card__link:focus-visible svg,.team-single__link:hover svg,.team-single__link:focus-visible svg{transform:translateX(5px);}
/* Team Single Interactions */

.profile-back{transition:color 280ms ease,transform 280ms ease;}
.profile-back:hover,.profile-back:focus-visible{color:var(--orange); transform:translateX(-4px);}
.profile-contact a{transition:color 280ms ease;}
.profile-contact a:hover,.profile-contact a:focus-visible{color:var(--orange);}
/* Colleague Cards */

.profile-colleague{transition:border-color 280ms ease;}
.profile-colleague img{transition:transform 400ms ease;}
.profile-colleague h3{transition:color 280ms ease;}
.profile-colleague > svg{transition:transform 280ms ease,stroke 280ms ease;}
.profile-colleague:hover,.profile-colleague:focus-visible{border-top-color:var(--orange);}
.profile-colleague:hover img,.profile-colleague:focus-visible img{transform:scale(1.03);}
.profile-colleague:hover h3,.profile-colleague:focus-visible h3{color:var(--orange);}
.profile-colleague:hover > svg,.profile-colleague:focus-visible > svg{transform:translateX(5px); stroke:var(--orange);}
/* Reduced Motion Override */

@media (prefers-reduced-motion:reduce){
  .about-text-link,.about-text-link svg,.about-button,.about-button svg,.team-card__portrait > span,.team-card__portrait > span svg,.team-card__link svg,.team-single__link svg,.profile-back,.profile-colleague img,.profile-colleague > svg{transform:none !important; transition:none !important;}
}