:root {
    --ink: #132d49;
    --ink-soft: #485c70;
    --navy: #12355b;
    --navy-light: #194879;
    --accent: #f1797d;
    --accent-strong: #c52e3b;
    --blue: #4384c2;
    --paper: #f2f5f9;
    --white: #fff;
    --line: #dfe6ee;
    --shadow: 0 18px 48px rgba(16, 35, 52, .1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: inherit; }
p { color: var(--ink-soft); }
.container { max-width: 1190px; }
.skip-link {
    position: absolute;
    z-index: 1100;
    top: 8px;
    left: 8px;
    padding: 10px 14px;
    transform: translateY(-150%);
    color: var(--ink);
    background: var(--accent-strong);
    border-radius: 6px;
}
.skip-link:focus { transform: translateY(0); }
.topbar {
    color: rgba(255,255,255,.72);
    background: var(--navy);
    font-size: 12px;
    letter-spacing: .04em;
}
.topbar-inner { display:flex; justify-content:space-between; padding-top:7px; padding-bottom:7px; }
.topbar a { text-decoration:none; }
.topbar a span { color:var(--accent); margin-left:5px; }
.site-header { position:relative; z-index:10; background:#fff; border-bottom:1px solid rgba(16,35,52,.07); }
.site-header .navbar { min-height:82px; padding:12px 0; }
.brand-lockup { display:flex; align-items:center; gap:12px; }
.brand-logo { display:block; width:270px; height:auto; }
.navbar-nav { gap:5px; }
.site-header .nav-link { padding:10px 12px !important; color:#52616d; font-size:14px; font-weight:600; }
.site-header .nav-link:hover,.site-header .nav-link.active { color:var(--ink); }
.site-header .nav-link.active { position:relative; }
.site-header .nav-link.active:after { position:absolute; right:12px; bottom:2px; left:12px; height:2px; background:var(--accent-strong); content:""; }
.nav-contact { display:inline-flex; align-items:center; gap:12px; margin-left:8px; padding:11px 17px; color:#fff; background:var(--accent-strong); border-radius:5px; font-size:14px; font-weight:700; text-decoration:none; transition:background .2s,transform .2s; }
.nav-contact:hover { color:#fff; background:#a9212d; transform:translateY(-1px); }
.navbar-toggler { border-color:var(--line); }
.navbar-toggler:focus { box-shadow:0 0 0 .2rem rgba(197,46,59,.2); }

.home-hero {
    position:relative;
    display:flex;
    align-items:center;
    min-height:640px;
    overflow:hidden;
    color:#fff;
    background:var(--navy);
}
.home-carousel,.home-carousel .carousel-inner,.home-carousel .carousel-item { position:absolute; inset:0; width:100%; height:100%; }
.home-carousel { z-index:0; }
.home-carousel .carousel-item { overflow:hidden; }
.home-carousel .carousel-item:first-child { background:#12355b url("../Gallery/hero-team.jpg") center 42% / cover no-repeat; }
.home-carousel .carousel-item img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.home-carousel .carousel-item:after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,27,48,.9) 0%,rgba(8,27,48,.75) 47%,rgba(8,27,48,.2) 100%),linear-gradient(0deg,rgba(8,27,48,.35),transparent 55%); content:""; }
.home-carousel .carousel-indicators { z-index:3; bottom:24px; left:50%; width:max-content; margin:0; transform:translateX(-50%); }
.home-carousel .carousel-indicators [data-bs-target] { width:24px; height:3px; margin:0 4px; border:0; opacity:.65; }
.home-carousel .carousel-indicators [data-bs-target].active { background-color:var(--accent); opacity:1; }
.home-carousel .carousel-control-prev,.home-carousel .carousel-control-next { z-index:2; width:7%; opacity:.8; }
.home-carousel .carousel-control-prev-icon,.home-carousel .carousel-control-next-icon { width:2.6rem; height:2.6rem; border:1px solid rgba(255,255,255,.62); border-radius:50%; background-size:42%; }
.home-carousel .carousel-control-prev:focus-visible,.home-carousel .carousel-control-next:focus-visible,.home-carousel .carousel-indicators button:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.hero-content { position:relative; z-index:2; max-width:760px; padding-top:80px; padding-bottom:105px; pointer-events:none; }
.hero-content a { pointer-events:auto; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; margin-bottom:22px; color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.eyebrow:before { width:27px; height:2px; background:currentColor; content:""; }
.home-hero h1,.page-hero h1 { margin:0; font-family:Manrope,sans-serif; font-size:clamp(42px,6.6vw,80px); font-weight:700; letter-spacing:-.055em; line-height:1.04; }
.home-hero h1 span { color:var(--accent); }
.hero-lede { max-width:590px; margin:24px 0 30px; color:rgba(255,255,255,.8); font-size:18px; }
.button-primary,.button-outline { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:50px; padding:0 20px; border:1px solid var(--accent-strong); border-radius:4px; font-size:14px; font-weight:700; text-decoration:none; transition:transform .2s,background .2s,color .2s; }
.button-primary { color:#fff; background:var(--accent-strong); }
.button-primary:hover { color:#fff; background:#a9212d; transform:translateY(-2px); }
.button-outline { color:#fff; border-color:rgba(255,255,255,.38); }
.button-outline:hover { color:var(--navy); background:#fff; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero-note { position:absolute; right:max(24px,calc((100vw - 1190px)/2)); bottom:35px; z-index:1; color:rgba(255,255,255,.72); font-size:11px; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; }
.section-space { padding-top:92px; padding-bottom:92px; }
.section-soft { background:var(--paper); }
.section-heading { max-width:650px; margin-bottom:38px; }
.section-heading .eyebrow { margin-bottom:14px; color:var(--accent-strong); }
.section-heading h2 { margin:0 0 14px; font-family:Manrope,sans-serif; font-size:clamp(30px,4vw,47px); font-weight:700; letter-spacing:-.045em; line-height:1.15; }
.section-heading p { max-width:590px; margin:0; }
.section-heading.centered { margin-right:auto; margin-left:auto; text-align:center; }
.section-heading.centered p { margin-right:auto; margin-left:auto; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.intro-photo { position:relative; min-height:430px; overflow:hidden; border-radius:8px; background:#dce4d8; }
.intro-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.photo-tag { position:absolute; right:18px; bottom:18px; padding:12px 16px; color:#fff; background:var(--accent-strong); border-radius:4px; font-size:12px; font-weight:700; }
.intro-copy h2 { margin:0 0 18px; font-family:Manrope,sans-serif; font-size:clamp(30px,4vw,45px); letter-spacing:-.05em; line-height:1.14; }
.intro-copy p { margin-bottom:20px; }
.text-link { display:inline-flex; gap:10px; align-items:center; color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; border-bottom:1px solid var(--accent-strong); padding-bottom:5px; }
.text-link:hover { color:var(--accent-strong); }
.stats-band { color:#fff; background:var(--navy); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.stat-item { padding:33px 28px; border-right:1px solid rgba(255,255,255,.13); }
.stat-item:first-child { padding-left:0; }
.stat-item:last-child { border:0; }
.stat-number { display:block; color:#8db9e6; font-family:Manrope,sans-serif; font-size:36px; font-weight:700; letter-spacing:-.04em; line-height:1.1; }
.stat-label { display:block; margin-top:8px; color:rgba(255,255,255,.69); font-size:13px; }
.sports-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sport-card { min-height:260px; padding:26px; border:1px solid var(--line); border-radius:7px; background:#fff; transition:transform .2s,box-shadow .2s,border-color .2s; }
.sport-card:hover { transform:translateY(-4px); border-color:#b9cde3; box-shadow:var(--shadow); }
.sport-icon { width:54px; height:54px; margin-bottom:25px; object-fit:contain; }
.sport-card h3 { margin:0 0 9px; font-family:Manrope,sans-serif; font-size:20px; font-weight:700; }
.sport-card p { margin:0; font-size:14px; }
.cta-panel { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:42px 48px; color:#fff; background:var(--navy-light); border-radius:8px; }
.cta-panel h2 { max-width:630px; margin:0; font-family:Manrope,sans-serif; font-size:clamp(26px,4vw,38px); letter-spacing:-.04em; line-height:1.2; }

.page-hero { position:relative; display:flex; align-items:flex-end; min-height:350px; overflow:hidden; color:#fff; background:var(--navy) url("../Gallery/IMG-20220911-WA0021.jpg") center 45% / cover no-repeat; }
.page-hero:before { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,19,30,.88),rgba(6,19,30,.25)),linear-gradient(0deg,rgba(6,19,30,.55),transparent 80%); content:""; }
.page-hero .container { position:relative; z-index:1; padding-top:74px; padding-bottom:58px; }
.page-hero .eyebrow { margin-bottom:12px; }
.page-hero h1 { font-size:clamp(40px,6vw,62px); }
.page-hero p { max-width:570px; margin:14px 0 0; color:rgba(255,255,255,.78); font-size:16px; }
.page-content { padding-top:72px; padding-bottom:88px; }
.content-narrow { max-width:920px; }
.content-narrow > p { font-size:16px; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px; }
.value-card { padding:25px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.value-card .card-index { color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.14em; }
.value-card h2,.value-card h3 { margin:10px 0; font-family:Manrope,sans-serif; font-size:20px; font-weight:700; }
.value-card p { margin:0; font-size:14px; }
.facility-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.facility-card { overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#fff; }
.facility-card img { display:block; width:100%; height:230px; object-fit:cover; background:var(--paper); }
.facility-card-body { padding:22px; }
.facility-card h2 { margin:0 0 8px; font-family:Manrope,sans-serif; font-size:20px; font-weight:700; }
.facility-card p { margin:0; font-size:14px; }
.schedule { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; }
.schedule-item { padding:20px; border-left:3px solid var(--accent-strong); background:var(--paper); }
.schedule-item strong { display:block; font-size:14px; }
.schedule-item span { color:var(--ink-soft); font-size:13px; }
.rules-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0; list-style:none; counter-reset:rules; }
.rules-list li { position:relative; min-height:74px; padding:17px 18px 17px 58px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink-soft); font-size:14px; counter-increment:rules; }
.rules-list li:before { position:absolute; top:17px; left:17px; color:var(--blue); font-family:Manrope,sans-serif; font-size:12px; font-weight:700; content:counter(rules,decimal-leading-zero); }
.achievement-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.achievement-card { min-height:250px; padding:26px; border-radius:7px; color:#fff; background:var(--navy-light); }
.achievement-card:nth-child(2n) { color:var(--ink); background:var(--paper); }
.achievement-card .achievement-year { color:#a51f2b; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.achievement-card h2 { margin:17px 0 10px; font-family:Manrope,sans-serif; font-size:21px; font-weight:700; }
.achievement-card p { margin:0; color:inherit; opacity:.76; font-size:14px; }

.gallery-intro { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:28px; }
.gallery-intro h2 { margin:0; font-family:Manrope,sans-serif; font-size:clamp(28px,4vw,42px); letter-spacing:-.045em; }
.gallery-intro p { max-width:470px; margin:0; font-size:14px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.gallery-item { position:relative; display:block; width:100%; padding:0; overflow:hidden; border:0; border-radius:5px; background:#e8ede5; cursor:zoom-in; }
.gallery-item:nth-child(7n+1),.gallery-item:nth-child(7n+5) { grid-row:span 2; }
.gallery-item img { display:block; width:100%; height:220px; object-fit:cover; transition:transform .4s; }
.gallery-item:nth-child(7n+1) img,.gallery-item:nth-child(7n+5) img { height:100%; min-height:452px; position:absolute; inset:0; }
.gallery-item:hover img { transform:scale(1.035); }
.gallery-item:focus-visible { outline:3px solid var(--accent-strong); outline-offset:3px; }
.gallery-dialog { width:min(92vw,1050px); max-width:none; padding:0; border:0; border-radius:8px; background:transparent; }
.gallery-dialog::backdrop { background:rgba(4,14,23,.9); }
.gallery-dialog img { display:block; max-width:100%; max-height:82vh; margin:auto; border-radius:5px; object-fit:contain; }
.dialog-close { display:block; margin:0 0 12px auto; padding:8px 13px; border:1px solid rgba(255,255,255,.5); border-radius:4px; color:#fff; background:transparent; font:inherit; cursor:pointer; }
.empty-gallery { padding:36px; border:1px dashed var(--line); border-radius:6px; text-align:center; }

.site-footer { color:rgba(255,255,255,.75); background:var(--navy); }
.footer-main { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:55px; padding-top:60px; padding-bottom:54px; }
.footer-brand { display:inline-block; max-width:295px; padding:6px; overflow:hidden; background:#fff; border-radius:5px; }
.footer-logo { display:block; width:100%; height:auto; }
.footer-copy { max-width:310px; margin-top:18px; color:rgba(255,255,255,.63); font-size:14px; }
.footer-heading { margin:0 0 15px; color:#fff; font-family:Manrope,sans-serif; font-size:14px; font-weight:700; }
.footer-details { margin:0; padding:0; list-style:none; }
.footer-details li { margin:8px 0; font-size:14px; }
.footer-details a { color:inherit; text-decoration:none; }
.footer-details a:hover { color:var(--accent); }
.footer-bottom { display:flex; justify-content:space-between; gap:15px; padding-top:17px; padding-bottom:17px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.52); font-size:12px; }
.footer-bottom p { margin:0; color:inherit; }
.scroll-top { position:fixed; right:22px; bottom:22px; z-index:8; display:grid; width:42px; height:42px; place-items:center; color:#fff; background:var(--accent-strong); border-radius:50%; font-size:20px; text-decoration:none; box-shadow:0 5px 16px rgba(0,0,0,.15); }
.scroll-top:hover { color:#fff; background:#a9212d; }

@media (prefers-reduced-motion: reduce) {
    .home-carousel .carousel-item { transition:none; }
}

@media (max-width: 991.98px) {
    .navbar-nav { align-items:stretch !important; padding:13px 0 8px; }
    .site-header .nav-link.active:after { display:none; }
    .nav-contact { margin:8px 0; }
    .home-hero { min-height:590px; }
    .intro-grid { gap:35px; }
    .sports-grid,.facility-grid,.achievement-grid { grid-template-columns:repeat(2,1fr); }
    .gallery-grid { grid-template-columns:repeat(3,1fr); }
    .footer-main { gap:30px; }
}
@media (max-width: 767.98px) {
    .topbar-inner { font-size:10px; }
    .site-header .navbar { min-height:72px; }
    .home-hero { min-height:570px; }
    .hero-content { padding-top:62px; padding-bottom:86px; }
    .hero-lede { font-size:16px; }
    .hero-note { display:none; }
    .home-carousel .carousel-control-prev,.home-carousel .carousel-control-next { width:12%; }
    .home-carousel .carousel-control-prev-icon,.home-carousel .carousel-control-next-icon { width:2rem; height:2rem; }
    .home-carousel .carousel-indicators { bottom:16px; }
    .section-space { padding-top:65px; padding-bottom:65px; }
    .intro-grid { grid-template-columns:1fr; gap:28px; }
    .intro-photo { min-height:310px; }
    .stats-grid { grid-template-columns:1fr 1fr; }
    .stat-item { padding:24px 15px; border-bottom:1px solid rgba(255,255,255,.13); }
    .stat-item:first-child { padding-left:15px; }
    .stat-item:nth-child(2) { border-right:0; }
    .stat-number { font-size:31px; }
    .sports-grid,.facility-grid,.achievement-grid,.value-grid { grid-template-columns:1fr; }
    .sport-card { min-height:unset; }
    .cta-panel { align-items:flex-start; flex-direction:column; padding:30px 25px; }
    .page-hero { min-height:310px; }
    .page-content { padding-top:52px; padding-bottom:65px; }
    .rules-list { grid-template-columns:1fr; }
    .schedule { grid-template-columns:1fr; }
    .gallery-intro { align-items:flex-start; flex-direction:column; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); gap:8px; }
    .gallery-item img { height:170px; }
    .gallery-item:nth-child(7n+1) img,.gallery-item:nth-child(7n+5) img { min-height:348px; }
    .footer-main { grid-template-columns:1fr; gap:25px; padding-top:45px; padding-bottom:38px; }
    .footer-bottom { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
