/* Sponsor directory: a thank-you first, a useful directory second. */
.sponsors-hero { position:relative; isolation:isolate; overflow:hidden; background:#06162f; color:#fff; }
.sponsors-hero__image { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#03132e 5%,rgba(3,19,46,.9) 38%,rgba(3,19,46,.5) 100%),url('../photos/youth-group.jpg') center 46% / cover; }
.sponsors-hero__content { min-height:520px; padding-block:clamp(68px,8vw,112px); display:flex; justify-content:space-between; align-items:end; gap:40px; }
.sponsors-hero h1 { font-size:clamp(58px,7vw,98px); line-height:.92; max-width:800px; letter-spacing:-.025em; }
.sponsors-hero h1 span { color:#c8d8fc; }
.sponsors-hero__season { margin-top:23px; color:#cbd8f5; font-size:12px; letter-spacing:.12em; font-weight:700; }
.sponsors-hero .lede { max-width:520px; color:#e5ebf8; margin:20px 0 28px; font-size:18px; line-height:1.55; }
.sponsors-hero__impact { flex:0 0 220px; border-left:1px solid #adc0ec; padding:5px 0 5px 20px; display:flex; flex-direction:column; gap:10px; }
.sponsors-hero__impact strong { font:850 76px/.85 var(--display); font-stretch:65%; }
.sponsors-hero__impact span { color:#e5ebf8; font-size:14px; line-height:1.45; }
.sponsors-wall { background:#f2f5fa; color:#03132e; padding:clamp(64px,7vw,105px) 0; }
.sponsors-wall__intro { display:flex; justify-content:space-between; align-items:end; gap:35px; padding-bottom:26px; border-bottom:1px solid #c8d2e3; }
.sponsors-wall__intro h2 { font-size:clamp(40px,4.8vw,64px); line-height:.98; }
.sponsors-wall__intro p { max-width:390px; color:#44536e; font-size:16px; line-height:1.65; }
.sponsors-wall .tier { margin:42px 0 0; }
.sponsors-wall .tier__head { padding-bottom:15px; margin-bottom:0; border-bottom:1px solid #b9c8df; }
.sponsors-wall .tier__head .mono { color:#071a3c; font:800 22px var(--display); }
.sponsors-wall .tier__head span:last-child { color:#223185; background:#dce5f7; border-radius:0; font:700 12px var(--display); }
.sponsors-wall .tier__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:16px; }
.sponsors-wall .sp,.sponsors-wall .tier--pin .sp,.sponsors-wall .tier--takedown .sp { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:200px; padding:20px 16px 16px; gap:10px; border:1px solid #d8e0ec; background:#fff; color:#071a3c; text-decoration:none; text-align:center; font-size:16px; font-weight:750; line-height:1.3; }
.sponsors-wall a.sp:hover { color:#223185; border-color:#223185; background:#fff; }
.sponsors-wall .sp:focus-visible { outline:3px solid #405dc8; outline-offset:3px; }
.sponsors-wall .sp__image { width:100%; height:75px; display:flex; justify-content:center; align-items:center; }
.sponsors-wall .sp__image img { max-width:90%; max-height:75px; width:auto; height:auto; object-fit:contain; }
.sponsors-wall .sp__name { display:block; }
.sponsors-wall .sp__visit { color:#465a8d; font-size:12px; font-weight:600; }
@media(max-width:900px){ .sponsors-wall .tier__grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px){ .sponsors-hero__content { min-height:0; align-items:start; flex-direction:column; gap:36px; padding-block:60px; } .sponsors-hero__image { background:linear-gradient(90deg,rgba(3,19,46,.96),rgba(3,19,46,.72)),url('../photos/youth-group.jpg') center / cover; } .sponsors-hero h1 { font-size:clamp(49px,12vw,70px); } .sponsors-hero .lede { font-size:16px; } .sponsors-hero__impact { flex:auto; flex-direction:row; align-items:center; } .sponsors-hero__impact strong { font-size:55px; } .sponsors-wall__intro { align-items:start; flex-direction:column; gap:18px; } .sponsors-wall .tier__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .sponsors-wall .sp,.sponsors-wall .tier--pin .sp,.sponsors-wall .tier--takedown .sp { min-height:170px; padding:15px 10px; font-size:14px; } .sponsors-wall .sp__image { height:60px; } .sponsors-wall .sp__image img { max-height:60px; } }
@media(prefers-reduced-motion:reduce){.sponsors-wall .sp{transition:none}}
