.officials-page{--personnel-radius:16px}
.officials-hero{padding:calc(clamp(40px,6vw,88px) + var(--scf-page-header-space,0px)) 0 clamp(40px,6vw,88px);background:linear-gradient(90deg,rgba(3,16,35,.35),rgba(3,16,35,.1)),var(--scf-brand-background) center/cover no-repeat;color:#fff}
.officials-hero__inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.65fr);gap:clamp(28px,5vw,80px);align-items:end}
.officials-hero h1{margin:0;font-size:clamp(1.875rem,3.5vw,3.5rem);line-height:1.08;text-transform:uppercase;overflow-wrap:anywhere}
.officials-hero__subtitle{margin:18px 0 0;color:#c4dff5;font-size:clamp(1rem,1.4vw,1.375rem);line-height:1.2}
.officials-hero__intro{margin:0;max-width:540px;font-size:1rem;line-height:1.5;color:#e1edf6}
.officials-content{padding:clamp(36px,5vw,80px) 0 clamp(60px,7vw,110px);background:linear-gradient(145deg,#f8fcfe,#e4f1f8 65%,#f2f8fb)}
.officials-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 30px;margin-bottom:32px}
.officials-heading h2{margin:0;font-size:clamp(1.375rem,1.8vw,1.875rem)}
.officials-team-link,.person-card__link,.roster-coach__link{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--scf-blue);font-size:.9375rem;font-weight:600;text-decoration:none}
.officials-team-link svg,.person-card__link svg,.roster-coach__link svg{width:22px;height:22px;flex-shrink:0;transition:transform .25s ease}
.officials-team-link:hover svg,.person-card__link:hover svg,.roster-coach__link:hover svg{transform:translate(3px,-3px)}
.officials-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.2vw,36px);margin:0;padding:0;list-style:none}
.officials-grid>li{min-width:0}
.person-card{height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--personnel-radius);background:#fff;box-shadow:0 6px 24px rgba(0,38,68,.07);transition:transform .25s ease,box-shadow .25s ease}
.person-card__portrait{flex:0 0 auto;background:linear-gradient(145deg,#071b31,#00528f)}
/* Do not override the original ratio supplied by image width/height attributes. */
.person-card__portrait>img,.roster-coach__portrait>img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;transition:filter .3s ease}
.person-card__body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:clamp(20px,2vw,30px)}
.person-card__role{margin:0 0 10px;color:var(--scf-blue);font-size:.9375rem;line-height:1.3;font-weight:600}
.person-card h3{margin:0 0 20px;font-family:var(--scf-font-body);font-size:clamp(1rem,1.2vw,1.1875rem);font-weight:600;line-height:1.15;overflow-wrap:anywhere}
.person-card__link{margin-top:auto}
.person-card:hover,.person-card:focus-within{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,38,68,.13)}
.person-card:hover .person-card__portrait>img{filter:brightness(1.04)}
.person-card .roster-card__fallback{display:grid;place-items:center;aspect-ratio:4/5}
.person-card .roster-card__fallback img{width:45%;height:auto;opacity:.65}
.officials-admin-note{margin-top:30px;font-size:1rem;line-height:1.5;color:#466377}
.roster-coach{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);overflow:hidden;margin-bottom:clamp(40px,5vw,72px);padding:clamp(20px,3vw,40px);border-radius:16px;background:#fff;box-shadow:0 6px 24px rgba(0,38,68,.05)}
.roster-coach__portrait{overflow:hidden;border-radius:12px;background:linear-gradient(145deg,#071b31,#00528f)}
.roster-coach__portrait .roster-card__fallback{display:grid;place-items:center;aspect-ratio:4/5}
.roster-coach__portrait .roster-card__fallback img{width:45%;height:auto;opacity:.65}
.roster-coach__copy{min-width:0}
.roster-coach__copy .section-overline{margin:0 0 14px;color:var(--scf-blue)}
.roster-coach h2{margin:0 0 18px;font-size:clamp(1.375rem,2.2vw,2.25rem);line-height:1.1;overflow-wrap:anywhere}
@media(max-width:1100px){.officials-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.officials-hero__inner{grid-template-columns:1fr}.officials-hero__intro{max-width:800px}}
@media(max-width:600px){.officials-grid{grid-template-columns:1fr}.officials-hero h1{font-size:clamp(1.875rem,7.5vw,2.5rem)}.roster-coach{grid-template-columns:minmax(0,110px) minmax(0,1fr);gap:20px;padding:20px}.roster-coach h2{font-size:1.625rem}.roster-coach__copy .section-overline{font-size:.9rem}.roster-coach__link{font-size:1rem}}
@media(max-width:360px){.roster-coach{grid-template-columns:1fr}.roster-coach__portrait{max-width:160px}}
@media(prefers-reduced-motion:reduce){.person-card,.person-card__portrait>img,.roster-coach__portrait>img,.officials-team-link svg,.person-card__link svg,.roster-coach__link svg{transition:none}.person-card:hover,.person-card:focus-within{transform:none}}
