.venue-directory{--bg:#f4f7fa;--white:#fff;--ink:#17212f;--muted:#64748b;--border:#dbe4ed;--green:#0f7a62;--navy:#102a43;--radius:8px}
.venue-directory *{box-sizing:border-box}
.venue-directory{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif}
.venue-directory button,.venue-directory input,.venue-directory select{font:inherit}
.venue-directory a{color:var(--green);text-decoration:none}
.venue-directory a:hover{text-decoration:underline}
.venue-directory button,.venue-directory input,.venue-directory select,.venue-directory a,.venue-directory summary{touch-action:manipulation}
.venue-directory button,.venue-directory a,.venue-directory input,.venue-directory select,.venue-directory summary{outline-offset:3px}
.venue-directory button:focus-visible,.venue-directory a:focus-visible,.venue-directory input:focus-visible,.venue-directory select:focus-visible,.venue-directory summary:focus-visible,.venue-directory #venue-court-results:focus-visible{outline:3px solid #79bdae}
.venue-directory button{min-height:43px;border:1px solid var(--border);border-radius:var(--radius);background:white;color:var(--ink);padding:8px 16px;font-weight:600;cursor:pointer}
.venue-directory button:hover{background:#f0f5f7}
.venue-directory button:disabled{cursor:wait;opacity:.55}
.venue-directory [hidden]{display:none!important}
.venue-directory .venue-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.venue-directory .venue-skip-link{position:fixed;z-index:100;left:12px;top:-80px;background:white;border:1px solid var(--border);border-radius:6px;padding:10px 16px}
.venue-directory .venue-skip-link:focus{top:10px}
.venue-directory .venue-intro{margin-bottom:20px}
.venue-directory .venue-eyebrow{margin:0 0 9px;font-size:10px;font-weight:700;letter-spacing:2.2px;color:var(--green)}
.venue-directory .venue-intro h2{font-size:24px;line-height:1.4;letter-spacing:-.5px;margin:0 0 10px}
.venue-directory .venue-intro-copy{font-size:14px;color:var(--muted);margin:0 0 12px}
.venue-directory .venue-catalog-meta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:11px;color:#52667a}
.venue-directory .venue-catalog-meta span+span{padding-left:18px;border-left:1px solid #cbd5df}
.venue-directory .venue-catalog-meta span:empty{display:none}
.venue-directory .venue-coverage-note{font-size:11px;line-height:1.9;color:var(--muted);max-width:1000px;margin:9px 0 0}
.venue-directory .venue-filter-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:16px 24px;margin-bottom:22px}
.venue-directory .venue-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}
.venue-directory .venue-panel-heading h2{font-size:14px;margin:0}
.venue-directory .venue-text-button{border:0;background:none;color:var(--green);font-size:11px;padding:0 2px;min-height:32px}
.venue-directory .venue-text-button:hover{background:none;text-decoration:underline}
.venue-directory fieldset{border:0;padding:0;margin:0;min-width:0}
.venue-directory fieldset:disabled{opacity:.6}
.venue-directory .venue-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
.venue-directory .venue-filter-grid>label{display:flex;flex-direction:column;gap:6px;min-width:0}
.venue-directory .venue-filter-grid label>span{font-size:11px;font-weight:600;color:#475b70}
.venue-directory .venue-filter-grid label small{font-size:9px;font-weight:400;color:var(--muted);margin-left:5px}
.venue-directory .venue-search-field{grid-column:span 2}
.venue-directory .venue-filter-grid input,.venue-directory .venue-filter-grid select{width:100%;min-width:0;min-height:43px;border:1px solid var(--border);border-radius:6px;background:white;color:var(--ink);padding:9px 11px;font-size:12px}
.venue-directory .venue-filter-grid input::placeholder{color:#8796a6}
.venue-directory .venue-price-input{display:flex;align-items:center;gap:8px}
.venue-directory .venue-price-input>span{font-size:11px;color:var(--muted)}
.venue-directory .venue-filter-options{display:flex;gap:24px;flex-wrap:wrap;margin-top:10px}
.venue-directory .venue-checkbox-label{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer;min-height:30px}
.venue-directory .venue-checkbox-label input{width:16px;height:16px;accent-color:var(--green);margin:0}
.venue-directory .venue-filter-note{font-size:10px;color:var(--muted);margin:12px 0 0}
.venue-directory .venue-results-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}
.venue-directory .venue-results-heading h2{font-size:18px;margin:0;display:flex;align-items:center;gap:12px}
.venue-directory #venue-result-count{font-size:11px;font-weight:500;background:#e7f0ec;color:var(--green);padding:2px 8px;border-radius:5px}
.venue-directory #venue-result-count:empty{display:none}
.venue-directory .venue-visible-count{font-size:11px;color:var(--muted)}
.venue-directory .venue-results-note{font-size:11px;color:var(--muted);margin:8px 0 17px}
.venue-directory .venue-court-list{display:grid;gap:15px}
.venue-directory .venue-court-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr) minmax(0,1fr);gap:0 25px;padding:23px 24px 0;background:white;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.venue-directory .venue-court-main,.venue-directory .venue-court-price,.venue-directory .venue-court-booking{min-width:0;padding-bottom:19px}
.venue-directory .venue-court-location{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:10px;margin-bottom:9px}
.venue-directory .venue-operator-badge{display:inline-flex;border-radius:4px;background:#e8f3ee;color:#237055;padding:1px 7px;font-size:9px;font-weight:650}
.venue-directory .venue-operator-badge.venue-private{background:#edf0f9;color:#4f629b}
.venue-directory .venue-court-card h3{font-size:17px;line-height:1.65;margin:0 0 8px;overflow-wrap:anywhere}
.venue-directory .venue-court-address{font-size:11px;margin:0 0 14px;color:var(--muted);overflow-wrap:anywhere}
.venue-directory .venue-map-link{color:#526b7f}
.venue-directory .venue-court-features{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:5px}
.venue-directory .venue-court-features li{font-size:9px;border-radius:4px;background:#f2f5f7;color:#647589;padding:2px 6px;overflow-wrap:anywhere}
.venue-directory .venue-column-label{font-size:10px;font-weight:600;color:var(--muted);margin:1px 0 8px}
.venue-directory .venue-original-price{font-size:23px;font-weight:750;line-height:1.35;margin:0 0 5px;letter-spacing:-.5px}
.venue-directory .venue-original-price small{font-size:14px;margin-left:4px;font-weight:500}
.venue-directory .venue-unconfirmed{font-size:16px;letter-spacing:0;font-weight:650;color:#526479}
.venue-directory .venue-price-unit{font-size:11px;margin:0 0 9px;color:#526479;overflow-wrap:anywhere}
.venue-directory .venue-court-note{font-size:12px;line-height:1.9;margin:8px 0;color:#64748b;white-space:pre-wrap;overflow-wrap:anywhere}
.venue-directory .venue-hourly-price{font-size:10px;color:#536b62;border-top:1px dashed #dce6e0;padding-top:9px;margin:11px 0 0}
.venue-directory .venue-booking-method{font-size:12px;line-height:1.8;font-weight:650;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.venue-directory .venue-court-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:15px}
.venue-directory .venue-primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border-radius:6px;background:var(--green);color:white;padding:7px 12px;font-size:11px;font-weight:600}
.venue-directory .venue-primary-link:hover{background:#0b6652;text-decoration:none}
.venue-directory .venue-secondary-link{font-size:11px;min-height:30px;display:inline-flex;align-items:center}
.venue-directory .venue-link-unconfirmed{font-size:10px;color:var(--muted)}
.venue-directory .venue-court-details{grid-column:1/-1;border-top:1px solid #e5ecf1;margin:0 -24px;background:#fbfcfd}
.venue-directory .venue-court-details>summary{cursor:pointer;font-size:10px;font-weight:600;color:#607488;padding:10px 24px;min-height:38px}
.venue-directory .venue-court-details[open]>summary{border-bottom:1px solid #e5ecf1}
.venue-directory .venue-detail-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:20px;padding:18px 24px}
.venue-directory .venue-detail-content dl{display:grid;grid-template-columns:85px minmax(0,1fr);gap:10px;font-size:11px;margin:0;align-content:start}
.venue-directory .venue-detail-content dt{color:var(--muted)}
.venue-directory .venue-detail-content dd{margin:0;overflow-wrap:anywhere}
.venue-directory .venue-source-list{padding-left:18px;margin:6px 0 0;font-size:11px}
.venue-directory .venue-source-list li{margin:5px 0;overflow-wrap:anywhere}
.venue-directory .venue-source-note{font-size:10px;color:var(--muted);margin:10px 0 0}
.venue-directory .venue-pagination{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:24px 0}
.venue-directory .venue-primary-button{color:white;background:var(--green);border-color:var(--green)}
.venue-directory .venue-primary-button:hover{background:#0b6652}
.venue-directory .venue-message-panel{text-align:center;padding:45px 24px;background:white;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-size:12px}
.venue-directory .venue-message-panel h3{font-size:16px;color:var(--ink);margin:0 0 8px}
.venue-directory .venue-message-panel p{margin:7px 0 18px}
.venue-directory .venue-message-panel button{margin-top:4px}
.venue-directory .venue-spinner{display:inline-block;width:20px;height:20px;border:2px solid #d6e4e0;border-top-color:var(--green);border-radius:50%;animation:venue-spin .8s linear infinite}
@keyframes venue-spin{to{transform:rotate(360deg)}}
@media(max-width:1000px){
.venue-directory .venue-court-card{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:0 24px}
.venue-directory .venue-court-main{grid-row:span 2}
.venue-directory .venue-court-price{padding-bottom:15px}
.venue-directory .venue-court-booking{grid-column:2;border-top:1px solid #e5ecf1;padding-top:15px}
.venue-directory .venue-court-details{grid-column:1/-1}
.venue-directory .venue-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.venue-directory .venue-search-field{grid-column:span 2}
}
@media(max-width:640px){
.venue-directory .venue-intro h2{font-size:22px;letter-spacing:-.5px}
.venue-directory .venue-intro-copy{font-size:12px}
.venue-directory .venue-intro{margin-bottom:22px}
.venue-directory .venue-catalog-meta{font-size:10px;gap:10px}
.venue-directory .venue-catalog-meta span+span{padding-left:10px}
.venue-directory .venue-coverage-note{font-size:10px}
.venue-directory .venue-filter-panel{padding:17px 16px;margin-bottom:24px}
.venue-directory .venue-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
.venue-directory .venue-search-field{grid-column:1/-1}
.venue-directory .venue-filter-grid label>span{font-size:10px}
.venue-directory .venue-filter-grid label small{display:block;margin:0}
.venue-directory .venue-filter-grid input,.venue-directory .venue-filter-grid select{font-size:11px;min-height:43px;padding:9px}
.venue-directory .venue-filter-options{gap:12px 20px;margin-top:14px}
.venue-directory .venue-checkbox-label{font-size:11px}
.venue-directory .venue-filter-note{font-size:9px}
.venue-directory .venue-results-heading h2{font-size:16px;gap:8px}
.venue-directory .venue-visible-count{font-size:9px}
.venue-directory .venue-results-note{font-size:10px}
.venue-directory .venue-court-card{display:block;padding:19px 18px 0}
.venue-directory .venue-court-main{padding-bottom:16px}
.venue-directory .venue-court-card h3{font-size:17px}
.venue-directory .venue-court-price,.venue-directory .venue-court-booking{border-top:1px solid #e5ecf1;padding:16px 0}
.venue-directory .venue-court-price .venue-original-price{font-size:23px}
.venue-directory .venue-court-links{margin-top:12px}
.venue-directory .venue-court-details{margin:0 -18px}
.venue-directory .venue-court-details>summary{padding:10px 18px;font-size:10px}
.venue-directory .venue-detail-content{grid-template-columns:1fr;padding:16px 18px;gap:18px}
.venue-directory .venue-court-note{font-size:11px}
.venue-directory .venue-primary-link{min-height:42px;padding:9px 14px}
.venue-directory .venue-message-panel{padding:35px 18px}
.venue-directory .venue-message-panel h3{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
.venue-directory .venue-spinner{animation:none}
}
.venue-directory .venue-suspended-badge{border-radius:4px;background:#fff0d5;color:#815d22;padding:1px 7px;font-size:9px;font-weight:650}
.venue-directory .venue-availability-note{font-size:11px;line-height:1.8;background:#fff8e9;border:1px solid #f1e0b7;border-radius:5px;padding:8px 10px;margin:0 0 12px;color:#7d632f;white-space:pre-wrap;overflow-wrap:anywhere}
.venue-directory{position:relative;display:block;box-sizing:border-box;min-width:0;width:100%;background:transparent;font-size:14px}
.venue-directory .venue-filter-grid{padding:0;background:transparent;border:0}
.venue-directory .venue-checkbox-label input{width:16px;height:16px;min-width:16px;min-height:16px;padding:0;margin:0;border:0;border-radius:0;appearance:auto;background:transparent;box-shadow:none;flex:0 0 16px}
