/* Photography-led refresh. Original photographs retain their natural colors. */
.navbar{background:rgba(11,17,18,.8);backdrop-filter:blur(16px)}
.hero{min-height:min(960px,100svh);padding-top:112px;background:radial-gradient(ellipse at 80% 60%,#23363a55,transparent 65%),var(--bg)}
.hero-grid{grid-template-columns:1.04fr 1fr;gap:clamp(30px,5vw,90px);padding-block:35px 42px}
.hero h1{font-size:clamp(3.6rem,6.5vw,7.8rem);line-height:.96}
.hero .red-text{display:block;max-width:660px}
.hero-photos{position:relative;min-width:0;width:100%;padding:0 36px 48px 0}
.hero-photo-main{position:relative;height:clamp(430px,40vw,630px);overflow:hidden;border-radius:4px}
.hero-photo-main>img{height:100%;width:100%;object-fit:cover;object-position:50% 51%}
.hero-photo-main::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0b111250,transparent 30%,#0b111205 50%,#0b1112c9)}
.photo-topline{position:absolute;top:25px;left:25px;z-index:1;display:flex;align-items:center;gap:10px;font-size:.57rem;letter-spacing:.17em}
.photo-caption{position:absolute;left:28px;right:28px;bottom:32px;z-index:1;display:flex;justify-content:space-between;align-items:end}
.photo-caption>span{font:600 clamp(1.8rem,2.8vw,2.8rem)/1 var(--display)}
.photo-caption>a{display:grid;place-items:center;width:44px;height:44px;background:var(--primary);color:#fff;font-size:1.6rem}
.hero-photo-inset{position:absolute;width:37%;height:46%;right:-2%;bottom:0;z-index:2;border:7px solid var(--bg);box-shadow:0 20px 50px #0005;background:var(--surface);border-radius:3px;overflow:hidden;transform:rotate(3deg)}
.hero-photo-inset img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero-photo-inset>span{position:absolute;inset:auto 0 0;padding:24px 12px 12px;background:linear-gradient(transparent,#0b1112db);font-size:.48rem;letter-spacing:.09em;display:flex;align-items:center;justify-content:space-between;gap:8px}
.hero-photo-inset b{font-size:1.25rem}
.photo-side-label{position:absolute;right:7px;top:20px;writing-mode:vertical-rl;font-size:.5rem;letter-spacing:.2em;color:var(--muted)}
.hero-bottom{padding-bottom:22px}
.program-card{overflow:hidden;position:relative}
.program-photo{width:calc(100% + 72px);max-width:none;height:230px;object-fit:cover;margin:-36px -36px 30px;object-position:center 48%}
.program-card:has(.program-photo)>.card-number{top:248px}
.program-card:has(.program-photo)>.icon{margin-bottom:24px}
.supplements{display:grid;grid-template-columns:210px 1fr auto;align-items:center;padding:0;overflow:hidden;gap:36px}
.supplement-photo{width:210px;height:220px;object-fit:cover;object-position:50% 37%}
.supplements .text-link{margin:0 32px 0 0;white-space:nowrap}
.supplements h2{font-size:clamp(2rem,3.3vw,3.7rem)}
.supplements p:not(.eyebrow){max-width:500px}
.welcome-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,110px);align-items:center}
.welcome-photo{position:relative;overflow:hidden;height:580px;border-radius:4px}
.welcome-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.welcome-copy>p:not(.eyebrow){color:var(--muted);font-size:.94rem;max-width:440px;margin-top:24px}
.welcome-copy .button{margin-top:32px}
.welcome-note{display:block;font-size:.57rem;letter-spacing:.12em;color:var(--muted);margin-top:28px}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.gallery-filters{display:flex;gap:8px;flex-wrap:wrap}
.gallery-filters button{min-height:44px;border:1px solid var(--line);background:transparent;padding:10px 19px;border-radius:2px;font-size:.75rem;transition:background .2s,border-color .2s}
.gallery-filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--bg);font-weight:700}
.gallery-filters button:hover{border-color:var(--primary)}
#gallery-count{color:var(--muted);font-size:.68rem;white-space:nowrap}
.club-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.club-photo{position:relative;min-width:0;aspect-ratio:4/5;overflow:hidden;background:var(--surface);border-radius:3px}
.club-photo[hidden],.gallery-footer button[hidden]{display:none}
.photo-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:var(--surface);text-align:left}
.photo-open img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.photo-open::after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0b1112dd)}
.photo-open:hover img{transform:scale(1.045)}
.photo-open:focus-visible{outline-offset:-5px}
.photo-expand{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:38px;height:38px;background:#0b11126b;border:1px solid #ffffff55;border-radius:50%;font-size:1.4rem}
.club-photo-caption{position:absolute;inset:auto 24px 25px;display:flex;flex-direction:column;gap:8px;z-index:1}
.club-photo-caption small{font-size:.56rem;letter-spacing:.18em;color:#e6e9e9}
.club-photo-caption strong{font:600 clamp(1.5rem,2.3vw,2.2rem)/1.05 var(--display);text-transform:uppercase}
.gallery-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:25px;margin-top:32px}
.gallery-footer>span{font-size:.58rem;letter-spacing:.16em;color:var(--muted)}
body.viewer-open{overflow:hidden}
.photo-viewer{color:var(--text);background:#0b1112;border:1px solid var(--line);border-radius:5px;width:min(1100px,96vw);max-width:96vw;max-height:96dvh;padding:20px 24px}
.photo-viewer::backdrop{background:#020506eF;backdrop-filter:blur(8px)}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.7rem;letter-spacing:.12em}
.viewer-bar button{border:0;background:transparent;min-height:44px;padding:0 10px;font-size:.8rem;display:flex;align-items:center;gap:20px}
.viewer-bar button span{font-size:2rem}
.viewer-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:20px;margin-top:12px}
.viewer-stage>img{width:100%;height:min(70dvh,850px);object-fit:contain}
.viewer-stage>button{height:44px;width:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);font-size:1.3rem}
.viewer-caption{padding:20px 64px 4px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.viewer-caption h3{text-transform:uppercase;font-size:1.7rem}
.viewer-caption>span{font-size:.65rem;color:var(--muted)}
@media(min-width:1600px){.hero-grid{max-width:1440px}.hero h1{font-size:7.5rem}}
@media(max-width:1279px){.program-photo{width:calc(100% + 60px);margin:-30px -30px 28px}.hero-photos{padding-right:20px}.hero-photo-inset{right:-3%}.photo-side-label{right:-2px}.program-card:has(.program-photo)>.card-number{top:247px}.supplements{grid-template-columns:170px 1fr;gap:24px}.supplement-photo{width:170px;grid-row:span 2;height:100%;min-height:220px}.supplements>div{padding-top:24px}.supplements .text-link{margin-bottom:24px}.welcome-photo{height:520px}}
@media(max-width:1023px){.hero{min-height:auto;padding-top:100px}.hero-grid{gap:28px}.hero h1{font-size:clamp(3.5rem,6.7vw,5rem)}.hero-photo-main{height:480px}.hero-photo-inset{height:42%;width:44%}.photo-caption{bottom:90px;left:20px;right:20px}.photo-caption>span{font-size:2rem}.photo-caption>a{display:none}.photo-topline{left:20px;font-size:.48rem}.program-photo{width:calc(100% + 50px);margin:-25px -25px 28px}.club-gallery{gap:14px}.club-photo-caption{inset:auto 17px 20px}.welcome-panel{gap:35px}.welcome-photo{height:480px}}
@media(max-width:767px){.hero{padding-top:94px}.hero-grid{grid-template-columns:1fr;gap:40px;padding-top:20px}.hero h1{font-size:clamp(3.2rem,10.4vw,6rem);max-width:640px}.hero-subtext{max-width:420px}.hero-photos{max-width:620px;margin:auto;padding:0 25px 30px 0}.hero-photo-main{height:520px}.hero-photo-inset{width:33%;height:49%;right:0;border-width:5px}.photo-caption{bottom:30px}.photo-caption>span{font-size:2.2rem}.photo-topline{font-size:.6rem}.photo-side-label{right:4px}.hero-bottom{padding-top:28px}.hero-note{margin-top:23px}.program-photo{height:210px}.program-card:has(.program-photo)>.card-number{top:222px}.supplements{grid-template-columns:125px 1fr;gap:18px;padding:0}.supplement-photo{width:125px;min-height:260px}.supplements h2{font-size:2rem}.supplements>div{padding-right:18px}.supplements p:not(.eyebrow){font-size:.75rem}.supplements .eyebrow{font-size:.5rem}.supplements .text-link{font-size:.75rem}.welcome-panel{grid-template-columns:1fr}.welcome-photo{height:440px;max-width:560px;width:100%}.welcome-copy{padding-top:5px}.welcome-copy p:not(.eyebrow){max-width:560px}.club-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-toolbar{align-items:start;flex-direction:column;gap:15px}.gallery-filters{gap:7px}.gallery-filters button{padding:9px 13px;font-size:.68rem}.club-photo-caption{inset:auto 14px 17px}.club-photo-caption strong{font-size:1.45rem}.club-photo-caption small{font-size:.48rem}.photo-expand{width:32px;height:32px;top:10px;right:10px}.photo-viewer{padding:12px;max-height:96dvh}.viewer-stage{grid-template-columns:36px minmax(0,1fr) 36px;gap:6px}.viewer-stage>button{width:36px;height:44px}.viewer-stage>img{height:64dvh}.viewer-caption{padding:16px 4px}.viewer-caption h3{font-size:1.3rem}.viewer-caption>span{font-size:.55rem}}
@media(max-width:479px){.hero-photos{padding-right:18px}.hero-photo-main{height:420px}.hero-photo-inset{width:37%;height:46%}.hero h1{font-size:clamp(2.9rem,10.3vw,4.8rem)}.hero-copy .eyebrow{font-size:.5rem}.photo-caption{left:19px;bottom:28px}.photo-caption>span{font-size:1.9rem}.photo-topline{left:18px;font-size:.48rem}.photo-side-label{right:0;font-size:.45rem}.hero-photo-inset>span{font-size:.39rem;padding-inline:7px}.program-photo{height:250px}.program-card:has(.program-photo)>.card-number{top:263px}.welcome-photo{height:390px}.club-photo{aspect-ratio:3/4}.club-photo-caption{left:12px;right:9px;bottom:16px}.club-photo-caption strong{font-size:1.2rem}.gallery-footer>span{font-size:.5rem}.supplements{grid-template-columns:1fr}.supplement-photo{grid-row:auto;width:100%;height:200px;min-height:0;object-position:center 40%}.supplements>div{padding:8px 24px 0}.supplements .text-link{margin:0 24px 25px}}
@media(max-height:600px) and (orientation:landscape){.hero-grid{grid-template-columns:1.1fr 1fr}.hero h1{font-size:3.3rem}.hero-photo-main{height:350px}.hero-photos{padding-right:20px}.hero-photo-inset{height:40%;width:40%}.photo-topline{font-size:.42rem}.photo-caption>span{font-size:1.7rem}.photo-caption{bottom:75px}.hero-note{display:none}.viewer-stage>img{height:55dvh}.viewer-caption{padding-top:8px}}
@media(prefers-reduced-motion:reduce){.photo-open img{transition:none}}
