:root{--fed-red:#ee0a17;--fed-black:#111;--fed-ink:#202022;--fed-muted:#696b70;--fed-line:#e4e4e5;--fed-surface:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
.federation-web{background:#f5f5f4;color:var(--fed-ink);-webkit-font-smoothing:antialiased}
.federation-web a{color:inherit;text-decoration:none}
.federation-web button,.federation-web input{font:inherit}
.federation-web img{max-width:100%}
.federation-container{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.federation-directory-hero{min-height:0}
.federation-eyebrow,.federation-section-label{margin:0 0 10px;color:var(--fed-red);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.federation-search-controls{display:grid;grid-template-columns:minmax(200px,1.3fr) repeat(3,minmax(150px,.8fr)) minmax(130px,auto);align-items:end;gap:14px}
.federation-search-controls .service-search-submit{min-width:150px}
.federation-web .service-search-heading>a{color:#b9080f;text-decoration:underline}
.federation-directory-body{padding-block:54px 100px}
.federation-directory-top{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}
.federation-directory-top h2,.federation-content-section h2{font-size:clamp(25px,3vw,33px);line-height:1.14;letter-spacing:-.035em;margin:0;font-weight:900}
.federation-results-count{font-size:13px;font-weight:800;color:var(--fed-muted);white-space:nowrap}
.federation-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.federation-directory-card{overflow:hidden;background:#fff;border:1px solid var(--fed-line);border-radius:20px;box-shadow:0 12px 34px rgba(0,0,0,.035);transition:transform .18s ease,box-shadow .18s ease}
.federation-directory-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.10)}
.federation-directory-cover{height:178px;display:block;background:#202020;overflow:hidden}
.federation-directory-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.federation-directory-card:hover .federation-directory-cover img{transform:scale(1.04)}
.federation-cover-fallback{color:rgba(255,255,255,.18);font-size:100px;font-weight:900;display:block;text-align:center}
.federation-directory-card-body{position:relative;padding:50px 22px 21px;min-height:198px;display:flex;flex-direction:column}
.federation-directory-logo,.federation-detail-logo{display:grid;place-items:center;overflow:hidden;background:#111;border:4px solid #fff;border-radius:50%;color:#fff;font-size:18px;font-weight:900}
.federation-directory-logo{position:absolute;left:19px;top:-36px;width:72px;height:72px}
.federation-directory-logo img,.federation-detail-logo img{width:100%;height:100%;object-fit:contain}
.federation-directory-territory{margin:0 0 8px;color:var(--fed-red);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.075em}
.federation-directory-card h3{font-size:20px;line-height:1.25;letter-spacing:-.02em;margin:0 0 24px;font-weight:900}
.federation-directory-card h3 a:hover{color:var(--fed-red)}
.federation-card-cta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--fed-line);font-size:13px;font-weight:800}
.federation-card-cta span{color:var(--fed-red);font-size:20px}
.federation-empty{background:#fff;border:1px solid var(--fed-line);border-radius:18px;padding:35px;color:var(--fed-muted)}
.federation-detail{padding-bottom:100px;background:#fff;color:#171717}
.federation-detail-hero{position:relative;display:flex;align-items:end;min-height:510px;overflow:hidden;color:#fff;background:linear-gradient(120deg,#171717,#303030)}
.federation-detail-hero-image,.federation-detail-hero-shade{position:absolute;inset:0;width:100%;height:100%}
.federation-detail-hero-image{object-fit:cover;object-position:center}
.federation-detail-hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.35) 38%,rgba(0,0,0,.89))}
.federation-detail-hero-content{position:relative;z-index:1;padding-top:120px;padding-bottom:52px}
.federation-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:62px;color:rgba(255,255,255,.72);font-size:12px;font-weight:800;text-transform:uppercase}
.federation-breadcrumb a:hover{color:#fff;text-decoration:underline}
.federation-detail-identity{display:flex;align-items:center;gap:28px}
.federation-detail-logo{width:144px;height:144px;flex:none;border-width:5px;box-shadow:0 12px 28px rgba(0,0,0,.35);font-size:27px}
.federation-detail-identity-copy{min-width:0}
.federation-detail-territory{margin:0 0 12px;color:rgba(255,255,255,.83);font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.federation-detail-identity h1{max-width:950px;margin:0;font-size:clamp(38px,5.8vw,84px);line-height:.95;font-weight:900;overflow-wrap:anywhere}
.federation-web .detail-share{font-size:14px;font-weight:700;line-height:1.3}
.federation-detail-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.8fr);gap:50px;align-items:start;padding-top:50px}
.federation-detail-main{display:grid;gap:26px}
.federation-content-section{padding:8px 0 18px;background:transparent}
.federation-aside-card{padding:24px;border:1px solid #dedede;border-radius:18px;background:#f4f4f4}
.federation-content-section h2{margin-bottom:18px}
.federation-content-section>p:not(.federation-section-label){font-size:15px;line-height:1.7;color:#47484a}
.federation-description{margin:0;white-space:normal}
.federation-about-section h2{margin-bottom:22px}
.federation-about-intro{display:flex;align-items:flex-start;gap:19px;padding:25px 27px;border:1px solid var(--fed-line);border-radius:19px;background:#f5f5f5}
.federation-about-icon{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:15px;background:#fff;color:var(--fed-red)}
.federation-about-icon svg{width:31px;height:31px}
.federation-about-copy{min-width:0;padding-top:2px}
.federation-about-copy p{margin:0;color:#444;font-size:15px;line-height:1.72}
.federation-about-copy p+p{margin-top:14px}
.federation-about-copy .federation-about-lead{color:#202022;font-size:18px;font-weight:700;line-height:1.48;letter-spacing:-.012em}
.federation-about-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;margin-top:12px}
.federation-about-fact{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 17px;border:1px solid var(--fed-line);border-radius:15px;background:#fff}
.federation-about-fact>span:first-child{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:10px;background:#f3f3f3;color:var(--fed-red)}
.federation-about-fact svg{width:20px;height:20px}
.federation-about-fact div{min-width:0;display:grid;gap:3px}
.federation-about-fact small{color:var(--fed-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.federation-about-fact strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.federation-about-fact-link:hover,.federation-about-fact-link:focus-visible{border-color:var(--fed-red)}
.federation-about-fact-link:hover strong,.federation-about-fact-link:focus-visible strong{color:var(--fed-red)}
.federation-about-arrow{margin-left:auto;color:var(--fed-red);font-size:19px;font-weight:800}
.federation-section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:23px}
.federation-section-heading h2{margin:0}
.federation-count{font-size:12px;font-weight:800;border:1px solid #ddd;padding:9px 12px;border-radius:999px;white-space:nowrap}
.federation-calendar-panel{border:1px solid #dedede;border-radius:17px;padding:18px 19px;background:#f4f4f4}
.federation-calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.federation-calendar-controls strong{text-align:center;font-size:17px;text-transform:capitalize}
.federation-calendar-controls button{border:1px solid #d9d9d9;background:#fff;width:36px;height:36px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer;color:#292929}
.federation-calendar-controls button:hover{border-color:var(--fed-red);color:var(--fed-red)}
.federation-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.federation-calendar-weekday{text-align:center;color:#737373;font-size:11px;font-weight:800;padding:7px 0}
.federation-calendar-empty-cell{min-height:39px}
.federation-calendar-day{min-height:39px;display:flex;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;border-radius:10px;font-size:13px;color:#343434;cursor:default}
.federation-calendar-day.has-race{background:#181818;color:#fff;font-weight:800;cursor:pointer}
.federation-calendar-day.has-race:hover,.federation-calendar-day.has-race:focus-visible{background:var(--fed-red)}
.federation-calendar-day small{font-size:10px;color:#ff5760}
.federation-races-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:22px}.federation-races-heading h3{margin:0;font-size:17px;text-transform:capitalize}.federation-races-heading span{font-size:12px;color:var(--fed-muted);white-space:nowrap}
.federation-races{display:grid;gap:9px;margin-top:11px}
.federation-race[hidden],.federation-calendar-empty[hidden]{display:none!important}.federation-calendar-empty{margin:11px 0 0;color:var(--fed-muted);font-size:13px}
.federation-race{display:flex;align-items:center;gap:17px;border:1px solid var(--fed-line);border-radius:15px;padding:13px;background:#fff;scroll-margin-top:28px;transition:border-color .18s,box-shadow .18s}
.federation-race.is-highlighted{border-color:var(--fed-red);box-shadow:0 0 0 3px rgba(238,10,23,.12)}
.federation-race-date{width:58px;min-width:58px;height:59px;border-radius:10px;background:#1c1c1c;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1}
.federation-race-date strong{font-size:23px}.federation-race-date span{font-size:10px;margin-top:4px;font-weight:800}
.federation-race-main{min-width:0;flex:1}.federation-race-main h3{margin:0 0 5px;font-size:15px;line-height:1.25}.federation-race-main p{margin:0;color:var(--fed-muted);font-size:12px;line-height:1.35}
.federation-race>a{font-size:12px;color:var(--fed-red);font-weight:800;white-space:nowrap}.federation-race>a:hover{text-decoration:underline}
.federation-calendar-note{font-size:12px!important;color:#737373!important;margin:16px 0 0}
.federation-calendar-sources{margin-top:18px}
.federation-detail-aside{display:grid;gap:20px;position:sticky;top:24px}
.federation-aside-card h2{font-size:21px;letter-spacing:-.03em;margin:0 0 17px}
.federation-link-list{display:grid}.federation-link-list a{padding:14px 0;border-top:1px solid var(--fed-line);display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:800}.federation-link-list a:hover{color:var(--fed-red)}.federation-link-list a span{color:var(--fed-red)}
.federation-aside-card dl{margin:0}.federation-aside-card dt{color:var(--fed-muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin:17px 0 4px}.federation-aside-card dd{margin:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.federation-aside-card dd a{text-decoration:underline;text-decoration-color:#aaa;text-underline-offset:3px}.federation-aside-card dd a:hover{color:var(--fed-red);text-decoration-color:var(--fed-red)}
.federation-resource-grid{display:grid;gap:9px}.federation-resource{display:flex;align-items:center;gap:12px;padding:15px;border-radius:13px;background:#f5f5f5}.federation-resource:hover{background:#ececec}.federation-resource-icon{font-size:22px;color:var(--fed-red)}.federation-resource span:nth-child(2){flex:1;display:grid;gap:4px}.federation-resource strong{font-size:14px}.federation-resource small{color:var(--fed-muted);font-size:12px}
.federation-detail-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ddd;padding-top:22px;margin-top:45px;font-size:13px;font-weight:800}.federation-detail-bottom a:hover{color:var(--fed-red)}
@media(max-width:1100px){.federation-search-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.federation-search-controls .service-search-submit{grid-column:1/-1}}
@media(max-width:920px){.federation-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.federation-detail-columns{grid-template-columns:1fr}.federation-detail-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.federation-directory-hero h1{font-size:clamp(2.25rem,10vw,4rem);line-height:1}}
@media(max-width:620px){.federation-search-band .service-search-heading h2{font-size:clamp(1.375rem,6vw,1.8rem)}}
@media(max-width:620px){.federation-container{width:min(100% - 32px,1240px)}.federation-search-controls{grid-template-columns:1fr}.federation-directory-body{padding-block:37px 65px}.federation-directory-top{display:flex;align-items:center;flex-wrap:wrap}.federation-directory-grid,.federation-detail-aside{grid-template-columns:1fr}.federation-directory-cover{height:190px}.federation-detail-hero{min-height:460px}.federation-detail-hero-content{padding-top:105px;padding-bottom:30px}.federation-breadcrumb{margin-bottom:45px;font-size:11px}.federation-detail-identity{flex-direction:column;align-items:flex-start;gap:14px}.federation-detail-identity-copy{width:100%}.federation-detail-logo{width:82px;height:82px;border-width:3px;font-size:17px}.federation-detail-identity h1{font-size:clamp(28px,8vw,46px)}.federation-detail-territory{font-size:10px;margin-bottom:8px}.federation-detail-columns{gap:25px;padding-top:32px}.federation-content-section{padding:8px 0 18px}.federation-aside-card{padding:20px;border-radius:16px}.federation-calendar-panel{padding:13px 10px}.federation-calendar-grid{gap:2px}.federation-calendar-day,.federation-calendar-empty-cell{min-height:37px}.federation-race{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;column-gap:12px;row-gap:8px}.federation-race-date{grid-column:1;grid-row:1}.federation-race-main{grid-column:2;grid-row:1}.federation-race>a{grid-column:2;grid-row:2;justify-self:start}.federation-detail-bottom{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.federation-directory-card,.federation-directory-cover img{transition:none}}
@media(max-width:620px){.federation-about-intro{gap:13px;padding:18px}.federation-about-icon{width:42px;height:42px;border-radius:12px}.federation-about-icon svg{width:25px;height:25px}.federation-about-copy .federation-about-lead{font-size:16px}.federation-about-facts{grid-template-columns:1fr}.federation-about-fact{padding:12px 15px}}
@media(max-width:420px){.federation-about-intro{flex-direction:column}}
