.public-directory,.public-court-entry,.public-courts{max-width:1120px;margin:auto;padding:38px 24px}
.public-directory,.public-court-entry{border-top:1px solid var(--line)}
.public-section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}
.public-section-heading h2{font-size:1.5rem;margin:0 0 10px;line-height:1.5}
.public-section-heading p:not(.coverage-label){margin:0;color:var(--muted);line-height:1.7}
.public-section-heading>a{flex-shrink:0}
.organizer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;padding:0;margin:0;list-style:none}
.organizer-links li{min-width:0;border-bottom:1px solid var(--line)}
.organizer-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:14px 4px;color:var(--ink);text-decoration:none;font-size:.9rem;line-height:1.6}
.organizer-links a span:first-child{overflow-wrap:anywhere}
.organizer-links a span:last-child{color:var(--green);flex-shrink:0}
.organizer-links a:hover{background:var(--paper);color:var(--green)}
.organizer-links a:focus-visible,.court-region-links a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.public-court-entry{padding-block:40px 48px}
.court-region-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.court-region-links a{color:var(--blue);font-weight:650;text-underline-offset:5px;padding:8px 0}
.public-courts h1{font-size:1.8rem;line-height:1.5;margin:4px 0 24px}
.court-breadcrumb{font-size:.8rem;margin-bottom:26px;color:var(--muted)}
.court-breadcrumb a{color:var(--green)}
.court-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.court-controls label{display:grid;gap:6px;font-size:.85rem;font-weight:700;min-width:180px}
.court-controls select,.court-results input{font:inherit;border:1px solid #9cafaa;border-radius:5px;padding:12px;background:white;color:var(--ink);min-height:48px;max-width:100%}
.court-controls button,.court-map-wrap button{font:inherit;cursor:pointer;border:1px solid var(--green)}
.court-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:24px}
.court-map-wrap{position:relative;min-width:0}
#court-map{height:480px;background:#e9eeec;z-index:0}
#court-map-search{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);white-space:nowrap;box-shadow:0 2px 8px #0003}
.court-results{min-width:0;max-height:480px;overflow:auto}
.court-results>label{display:block;font-size:.85rem;font-weight:700;margin-bottom:8px}
.court-results input{width:100%}
#court-status{font-size:.85rem;line-height:1.7;color:var(--muted)}
#court-list{list-style:none;padding:0;margin:0}
#court-list li{border-bottom:1px solid var(--line)}
#court-list button{font:inherit;text-align:left;border:0;background:transparent;color:var(--green);width:100%;padding:14px 4px;line-height:1.6;cursor:pointer;overflow-wrap:anywhere}
#court-list button:hover{background:var(--paper)}
.court-official-catalog{font-size:.9rem;line-height:1.6;margin:14px 0;color:var(--muted)}
.court-official-catalog a,.court-official-facilities a{color:var(--green);font-weight:700}
.court-official-heading{font-size:1rem;margin:22px 0 8px}
.court-official-facilities{list-style:none;padding:0;margin:0}
.court-official-facilities li{border-bottom:1px solid var(--line)}
.court-official-facilities a{display:block;padding:10px 4px;line-height:1.5;overflow-wrap:anywhere}
.court-directory{border-top:1px solid var(--line);padding:30px 0 10px;margin:20px 0}
.court-directory-filter{display:block;font-size:.9rem;font-weight:700;margin:0 0 8px}
#court-directory-search{font:inherit;border:1px solid #9cafaa;border-radius:5px;padding:12px;background:white;color:var(--ink);min-height:48px;width:min(100%,520px)}
#court-directory-count{font-size:.85rem;color:var(--muted);margin:10px 0 22px}
.court-directory-region{padding:8px 0 20px;border-bottom:1px solid var(--line)}
.court-directory-region h3{font-size:1.05rem;margin:8px 0}
.court-directory-region>p{font-size:.85rem;margin:6px 0}
.court-directory-region>p a,.court-directory-region li a{color:var(--green);text-underline-offset:3px}
.court-directory-region ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;list-style:none;padding:0;margin:0}
.court-directory-region li{min-width:0;border-bottom:1px solid var(--line)}
.court-directory-region li a{display:block;padding:10px 4px;line-height:1.5;overflow-wrap:anywhere}
.court-directory-region li[hidden],.court-directory-region[hidden]{display:none}
.court-source{font-size:.78rem;line-height:1.7;color:var(--muted);margin:18px 0 32px}
.court-venues{border-top:1px solid var(--line);padding-top:24px}
.court-venues h2{font-size:1.25rem}.court-venues>p{color:var(--muted);line-height:1.7;font-size:.9rem}
.school-directory-entry{margin:16px 0 0}.school-directory-entry a{color:var(--green);font-weight:700;text-underline-offset:4px}
.tennis-schools{max-width:1120px;margin:auto;padding:28px 24px 56px}
.tennis-schools h1{font-size:1.8rem;line-height:1.45;margin:8px 0 12px}
.tennis-schools .school-intro{max-width:820px;line-height:1.8;color:var(--muted);margin:0 0 22px}
.school-scope{border-left:4px solid var(--green);padding:12px 16px;background:#f3f8f5;line-height:1.7;margin:20px 0 28px}
.school-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}
.school-filter label{display:grid;gap:6px;font-size:.88rem;font-weight:700}
.school-filter input,.school-filter select{font:inherit;min-height:46px;padding:10px 12px;border:1px solid #9cafaa;border-radius:5px;background:#fff;color:var(--ink);width:min(100%,380px)}
.school-filter select{width:200px}
.school-count{color:var(--muted);font-size:.88rem;margin:12px 0}
.school-region{border-top:1px solid var(--line);padding:20px 0 12px}
.school-region h2{font-size:1.25rem;margin:0 0 14px}
.school-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}
.school-list li{min-width:0;border-bottom:1px solid var(--line);padding:13px 2px}
.school-list li[hidden],.school-region[hidden]{display:none}
.school-list a{font-weight:700;color:var(--green);line-height:1.55;text-underline-offset:3px;overflow-wrap:anywhere}
.school-list .school-meta{display:block;color:var(--muted);font-size:.83rem;line-height:1.6;margin-top:4px}
.school-sources{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;line-height:1.8;color:var(--muted);font-size:.88rem}
.school-sources a{color:var(--green)}
@media(max-width:720px){.public-directory,.public-court-entry,.public-courts{padding:28px 20px}.public-section-heading{align-items:start;flex-direction:column;gap:12px}.public-section-heading h2{font-size:1.25rem}.organizer-links,.court-directory-region ul{grid-template-columns:1fr}.organizer-links a{min-height:56px}.public-courts h1{font-size:1.4rem}.court-workspace{grid-template-columns:1fr}.court-controls{gap:10px}.court-controls label{flex:1;min-width:130px}.court-controls button{padding-inline:12px;font-size:.9rem}#court-map{height:360px}.court-results{max-height:360px}.court-region-links{gap:10px 24px}}
@media(max-width:720px){.tennis-schools{padding:24px 20px 42px}.tennis-schools h1{font-size:1.45rem}.school-list{grid-template-columns:1fr}.school-filter label{flex:1;min-width:150px}.school-filter input{width:100%}.school-filter select{width:100%}}
