:root{--bg:#f8f9fc;--bg2:#f0f2f8;--bg3:#e8ebf4;--card:#fff;--bdr:rgba(30,50,100,.1);--t:#1a2340;--td:#4a5568;--tm:#8899b4;--elec:#2563eb;--elec2:#1d4ed8;--elec-g:rgba(37,99,235,.07);--gold:#d97706;--gold-l:#fef3c7;--gold-g:rgba(217,119,6,.08);--rose:#db2777;--rose-g:rgba(219,39,119,.07);--mint:#059669;--mint-g:rgba(5,150,105,.07);--lav:#7c3aed;--lav-g:rgba(124,58,237,.07);--w:#fff;--r:14px}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:'Instrument Sans',sans-serif;background:var(--bg);color:var(--t);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0}
::selection{background:var(--elec);color:var(--w)}
a{color:var(--elec2);text-decoration:none;transition:.2s}a:hover{color:var(--elec)}

/* NAV */
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:blur(24px);border-bottom:1px solid var(--bdr);box-shadow:0 1px 8px rgba(30,50,100,.06)}
.ni{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:54px}
.logo{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:700;color:#1a2340;display:flex;align-items:center;gap:8px;letter-spacing:.01em}
a.logo,a.logo:hover,a.logo:visited{color:#1a2340 !important}
.logo .badge{background:linear-gradient(135deg,var(--elec),var(--lav));color:var(--w);padding:2px 8px;border-radius:5px;font-size:.6rem;font-weight:700;letter-spacing:.5px}
nav{display:flex;align-items:center;gap:2px}nav a{color:var(--td);text-decoration:none;font-size:.8rem;font-weight:500;padding:6px 14px;border-radius:8px;transition:.2s}nav a:hover{color:var(--elec2);background:var(--elec-g)}
.ham{display:none;background:none;border:none;color:var(--t);font-size:1.3rem;cursor:pointer;padding:4px}

/* BREADCRUMB */
.bc{max-width:1120px;margin:0 auto;padding:12px 24px 0;display:flex;align-items:center;gap:6px;font-size:.74rem;flex-wrap:wrap}
.bc a{color:var(--td)}.bc a:hover{color:var(--elec2)}.bc span{color:var(--tm)}.bc .cur{color:var(--t);font-weight:600}

/* HERO INNER */
.hero-inner{max-width:1120px;margin:0 auto;padding:24px 24px 28px;position:relative}
.hero-inner::before{content:'';position:absolute;top:-150px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(59,130,246,.06),transparent 60%);pointer-events:none}
.hero-inner h1{font-family:'Syne',sans-serif;font-size:clamp(1.6rem,4vw,2.6rem);font-weight:700;line-height:1.15;letter-spacing:-.01em;max-width:700px;margin-bottom:10px}
.hero-inner h1 .gr{background:linear-gradient(135deg,var(--elec2),var(--lav),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-inner .sub{color:var(--td);font-size:.9rem;max-width:600px;margin-bottom:16px}

/* STATS ROW */
.stats{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:20px}
.stat{position:relative;padding-left:14px}
.stat::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:2px}
.stat-1::before{background:var(--elec)}.stat-2::before{background:var(--gold)}.stat-3::before{background:var(--rose)}.stat-4::before{background:var(--mint)}
.stat .n{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:700;color:#1a2340;line-height:1;letter-spacing:-.01em}
.stat .l{font-size:.68rem;color:#4a5568;margin-top:2px;font-weight:600}

/* CONTENT */
.ctn{max-width:1120px;margin:0 auto;padding:0 24px}
section{padding:28px 0}
.sec-dark{background:var(--bg2);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr)}
.sl{font-family:'Syne',sans-serif;font-size:.63rem;letter-spacing:4px;text-transform:uppercase;font-weight:700;display:inline-block;padding:3px 10px;border-radius:4px;margin-bottom:6px}
.sl-b{background:var(--elec-g);color:var(--elec2)}.sl-g{background:var(--gold-g);color:var(--gold)}.sl-r{background:var(--rose-g);color:var(--rose)}.sl-m{background:var(--mint-g);color:var(--mint)}.sl-l{background:var(--lav-g);color:var(--lav)}
.sh{font-family:'Syne',sans-serif;font-size:clamp(1.2rem,2.5vw,1.6rem);font-weight:700;margin:6px 0;letter-spacing:-.01em}
.si{color:var(--td);font-size:.86rem;max-width:560px;margin-bottom:16px}

/* DEPT / CITY GRID */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:20px;transition:.25s;position:relative;overflow:hidden;display:block;color:var(--t);box-shadow:0 1px 4px rgba(30,50,100,.05)}
.card:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.2);color:var(--t);box-shadow:0 4px 16px rgba(37,99,235,.09)}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--elec),var(--lav))}
.card .code{font-family:'Syne',sans-serif;font-size:2rem;font-weight:700;color:rgba(26,35,64,.05);position:absolute;top:12px;right:16px;line-height:1}
.card h3{font-family:'Syne',sans-serif;font-size:.95rem;font-weight:700;margin-bottom:3px;letter-spacing:0}
.card .meta{color:var(--td);font-size:.74rem;line-height:1.45}
.card .tags{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}
.tag{font-size:.58rem;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.3px}
.tag-m{background:var(--elec-g);color:var(--elec2)}.tag-f{background:var(--rose-g);color:var(--rose)}
.tag-r{background:rgba(30,50,100,.06);color:#64748b}.tag-n{background:var(--gold-g);color:var(--gold)}
.tag-e{background:var(--mint-g);color:var(--mint)}.tag-cf{background:var(--lav-g);color:var(--lav)}

/* CLUB LIST (city page) */
.club-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px;margin-bottom:10px;position:relative;overflow:hidden;box-shadow:0 1px 4px rgba(30,50,100,.05)}
.club-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.club-card.has-cf::before{background:linear-gradient(90deg,var(--gold),var(--rose))}.club-card.no-cf::before{background:linear-gradient(90deg,var(--elec),var(--lav))}
.club-card h3{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;margin-bottom:4px}
.club-card .league{font-size:.72rem;color:var(--gold);font-weight:600;margin-bottom:8px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
.cat-item{background:var(--bg3);border:1px solid var(--bdr);padding:8px 12px;border-radius:8px;text-align:center}
.cat-item .cat-name{font-family:'Syne',sans-serif;font-size:.78rem;font-weight:700}.cat-item .cat-level{font-size:.64rem;color:var(--td);margin-top:1px}

/* SEO TEXT */
.seo-text{padding:20px 0}
.seo-text h2{font-family:'Syne',sans-serif;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;margin:16px 0 6px;letter-spacing:-.01em}
.seo-text h3{font-family:'Syne',sans-serif;font-size:.95rem;font-weight:700;margin:12px 0 4px}
.seo-text p{color:var(--td);font-size:.86rem;margin-bottom:8px;max-width:800px}
.seo-text ul{margin:0 0 8px 16px;color:var(--td);font-size:.84rem}
.seo-text li{margin-bottom:2px}

/* INTERNAL LINKS */
.link-section{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);padding:18px;margin:14px 0}
.link-section h3{font-family:'Syne',sans-serif;font-size:.85rem;font-weight:700;margin-bottom:10px}
.link-grid{display:flex;flex-wrap:wrap;gap:6px}
.link-pill{display:inline-flex;align-items:center;padding:5px 14px;border-radius:100px;font-size:.72rem;font-weight:600;border:1px solid var(--bdr);color:var(--td);transition:.2s}
.link-pill:hover{border-color:var(--elec);color:var(--elec2);background:var(--elec-g)}

/* FOOTER */
footer{background:var(--bg3);border-top:1px solid var(--bdr);padding:32px 24px 20px;margin-top:20px}
.fg{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:22px}
.fb p{color:var(--td);font-size:.74rem;margin-top:8px;max-width:260px}
footer h4{font-family:'Syne',sans-serif;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;font-weight:700;color:var(--elec2)}
footer ul{list-style:none}footer ul li{margin-bottom:3px}footer ul a{color:var(--td);font-size:.74rem}footer ul a:hover{color:var(--t)}
.fbt{max-width:1120px;margin:18px auto 0;padding-top:14px;border-top:1px solid var(--bdr);font-size:.64rem;color:var(--td);text-align:center}

/* RESPONSIVE */
@media(max-width:768px){
nav{display:none;position:absolute;top:54px;left:0;right:0;background:rgba(255,255,255,.98);backdrop-filter:blur(20px);flex-direction:column;padding:12px 24px 16px;border-bottom:1px solid var(--bdr);gap:0;box-shadow:0 8px 20px rgba(30,50,100,.08)}
nav.open{display:flex}
nav a{padding:10px 0;border-bottom:1px solid var(--bdr);font-size:.88rem}
nav a:last-child{border-bottom:none}
.ham{display:block}
.fg{grid-template-columns:1fr 1fr}.fb{grid-column:1/-1}
.grid{grid-template-columns:1fr 1fr}
.cat-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
.grid{grid-template-columns:1fr}
.stats{gap:12px}
.cat-grid{grid-template-columns:1fr}
}

/* ANIMATIONS */
.fd{opacity:0;transform:translateY(14px);transition:.6s ease}.fd.v{opacity:1;transform:translateY(0)}

/* ALERT FORM STICKY */
.alert-sticky{position:fixed;bottom:0;left:0;right:0;z-index:99;background:#fff;border-top:1px solid #e2e8f0;padding:22px 28px;transform:translateY(0);transition:.4s ease;box-shadow:0 -4px 24px rgba(0,0,0,.08)}
.alert-sticky.hidden{transform:translateY(100%)}
.alert-sticky .alert-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.alert-sticky .alert-text{flex:1;min-width:180px}
.alert-sticky h3,.alert-sticky .alert-title{font-family:'Syne',sans-serif;font-size:1.18rem;font-weight:700;color:#1a2340;margin-bottom:2px}
.alert-sticky .alert-desc{color:#64748b;font-size:.95rem;line-height:1.4}
.alert-sticky form{display:flex;gap:10px;flex:1;min-width:340px}
.alert-sticky input[type="email"]{flex:1;padding:16px 18px;font-size:17px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#1a2340;outline:none;font-family:'Instrument Sans',sans-serif;-webkit-text-fill-color:#1a2340}
.alert-sticky input[type="email"]::placeholder{color:#94a3b8}
.alert-sticky input[type="email"]:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.12);background:#fff}
.alert-sticky .alert-btn{padding:16px 32px;font-size:1rem;font-weight:700;border:none;border-radius:8px;cursor:pointer;font-family:'Syne',sans-serif;background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;transition:.2s;white-space:nowrap;box-shadow:0 2px 8px rgba(124,58,237,.3);position:relative;overflow:hidden}
.alert-sticky .alert-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(124,58,237,.4)}
.alert-sticky .alert-btn::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(to right,rgba(255,255,255,0),rgba(255,255,255,.25),rgba(255,255,255,0));animation:alert-shine 2.2s infinite linear;pointer-events:none}
@keyframes alert-shine{to{left:130%}}
.alert-sticky .alert-close{position:absolute;top:6px;right:10px;background:none;border:none;color:#94a3b8;font-size:1.2rem;cursor:pointer;padding:6px;line-height:1}
.alert-sticky .alert-close:hover{color:#1a2340}
.alert-sticky .alert-fine{color:#94a3b8;font-size:.62rem;width:100%;text-align:center;margin-top:4px}
@media(max-width:768px){
.alert-sticky .alert-inner{flex-direction:column;align-items:stretch;gap:10px}
.alert-sticky .alert-text{text-align:center}
.alert-sticky form{flex-direction:column}
}
/* fix1017b-mobile */
@media(max-width:768px){.hero-inner::before{right:0;max-width:100%}.alert-sticky form{min-width:0}div[style*="grid-template-columns:1fr 280px"],div[style*="grid-template-columns:1fr 300px"],div[style*="grid-template-columns:1fr 320px"]{grid-template-columns:1fr!important}div[style*="grid-template-columns:1fr 280px"] aside,div[style*="grid-template-columns:1fr 300px"] aside,div[style*="grid-template-columns:1fr 320px"] aside{position:static!important}img,video,iframe,table{max-width:100%}}
