.sports-page { font-size:16px; line-height:1.6; }
.sports-page [hidden] { display:none !important; }
.sports-page :focus-visible { outline:3px solid var(--terracotta-dark); outline-offset:4px; }
.sports-page .eyebrow { font-size:12px; }
.tennis-intro { padding:30px max(24px,calc((100vw - 1240px)/2)); background:var(--cream); display:grid; grid-template-columns:2.3fr 1fr; gap:55px; align-items:center; }
.tennis-intro h1 { font-size:clamp(34px,3.4vw,46px); line-height:1.07; }
.tennis-lede { max-width:760px; font-size:16px; color:#4f5e59; margin:12px 0 0; }
.tennis-advisor { border-left:1px solid #c5cec2; padding:8px 0 8px 30px; }
.tennis-advisor h2 { font-size:30px; line-height:1.15; }
.tennis-advisor p:not(.eyebrow) { margin:15px 0; }
.tennis-advisor a { font-weight:750; text-underline-offset:5px; }
.tennis-advisor small { display:block; font-size:14px; color:#526459; margin-top:12px; }
.tennis-directory { max-width:1288px; padding:28px 24px 70px; margin:auto; }
.directory-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.directory-heading h2 { font-size:clamp(24px,2.3vw,30px); line-height:1.15; }
.directory-heading .eyebrow { margin-bottom:8px; }
.directory-heading > p { color:var(--muted); font-size:14px; margin:0; white-space:nowrap; }
.country-choices { display:flex; flex-wrap:wrap; gap:8px; overflow:visible; padding:3px; }
.country-choices button { cursor:pointer; white-space:normal; max-width:100%; overflow-wrap:anywhere; background:transparent; color:var(--forest); border:1px solid #bbc7bc; padding:9px 17px; border-radius:99px; font-size:14px; font-weight:650; min-height:44px; }
.country-choices button[aria-pressed=true] { background:var(--forest); color:var(--paper); border-color:var(--forest); }
.country-choices button:hover { border-color:var(--terracotta-dark); }
.tennis-filters { background:var(--cream); padding:24px; border:1px solid #dedfd5; border-radius:12px; }
.tennis-destination-filter { display:grid; grid-template-columns:200px minmax(0,1fr); gap:20px; align-items:start; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid #d7dacd; }
.tennis-destination-filter .country-choices { flex-wrap:wrap; min-width:0; padding:2px; }
.filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.tennis-filters label { display:flex; flex-direction:column; gap:5px; color:var(--forest); font-size:14px; font-weight:650; }
.tennis-filters input:not([type=checkbox]), .tennis-filters select, .tennis-results-bar select { min-width:0; width:100%; min-height:46px; border:1px solid #b6c2b7; border-radius:5px; background:var(--paper); color:var(--ink); padding:10px 12px; font-size:16px; }
.tennis-filters input::placeholder { color:#6b756f; }
.more-filters { border-top:1px solid #d7dacd; margin-top:23px; }
.more-filters > summary { cursor:pointer; font-size:15px; font-weight:700; color:var(--forest); padding:16px 0 6px; }
.more-filters > summary span { float:right; font-size:22px; font-weight:400; }
.more-filters[open] > summary span { transform:rotate(45deg); }
.advanced-grid { margin:20px 0; }
.budget-fields { border:1px solid #c9d1c4; border-radius:6px; padding:12px 16px 18px; margin:24px 0 18px; }
.budget-fields legend { font-size:14px; font-weight:700; color:var(--forest); padding:0 7px; }
.budget-fields p { font-size:14px; color:#58655a; margin:0 0 14px; }
.budget-grid { display:grid; grid-template-columns:1fr 1.7fr 1fr; gap:16px; }
.filter-checks, .filter-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.tennis-filters .filter-checks label, .tennis-filters .filter-actions label { display:flex; flex-direction:row; align-items:center; gap:8px; }
.tennis-filters input[type=checkbox] { accent-color:var(--forest); width:18px; height:18px; flex-shrink:0; }
.filter-note { font-size:14px; color:#56665b; line-height:1.6; }
.filter-actions { justify-content:space-between; margin-top:14px; }
.text-button { background:none; border:none; padding:5px 0; color:var(--forest); text-decoration:underline; text-underline-offset:4px; cursor:pointer; font-size:14px; font-weight:700; min-height:40px; }
#savedCount { border-radius:99px; background:#dee5d8; padding:0 7px; }
.tennis-results-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:30px 0 4px; }
#tennisCount { font-size:18px; color:var(--forest); font-weight:700; }
.tennis-results-bar label { display:flex; align-items:center; gap:10px; font-size:14px; white-space:nowrap; }
.tennis-results-bar select { width:auto; font-size:14px; min-height:40px; }
#activeFilterNote:empty { display:none; }
.tennis-results { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:20px; align-items:start; }
.tennis-card { border:1px solid #d3dacc; border-radius:12px; overflow:hidden; background:var(--paper); }
.tennis-card-header { padding:25px 25px 18px; position:relative; }
.tennis-location { color:var(--terracotta-dark); font-size:13px; font-weight:750; margin:0 60px 8px 0; }
.tennis-card h3 { font-family:var(--serif); font-size:29px; line-height:1.15; color:var(--forest); letter-spacing:-.5px; margin:8px 0 12px; font-weight:500; }
.tennis-card-header > p:not(.tennis-location) { margin:14px 0 0; color:#506055; }
.tennis-save { position:absolute; right:18px; top:18px; cursor:pointer; border:1px solid #c5cfc0; border-radius:5px; background:transparent; color:var(--forest); padding:8px 10px; font-size:14px; min-height:40px; }
.tennis-save[aria-pressed=true] { background:var(--forest); color:white; }
.tennis-tags { display:flex; flex-wrap:wrap; gap:6px; }
.tennis-tag { display:inline-block; font-size:12px; padding:3px 8px; border-radius:4px; color:var(--forest); background:#e8ecdf; }
.tennis-tag.stay-tag { background:#eee3d6; color:#665039; }
.tennis-facts { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0; padding:0 25px 22px; font-size:14px; }
.tennis-facts div { min-width:0; }
.tennis-facts dt { color:#6d786a; margin:0 0 2px; }
.tennis-facts dd { margin:0; color:var(--forest); font-weight:600; }
.tennis-card-details { border-top:1px solid #dbe1d4; }
.tennis-card-details > summary { cursor:pointer; padding:14px 25px; color:var(--forest); font-size:15px; font-weight:750; background:#f3f4ea; }
.tennis-programme { padding:21px 25px; border-top:1px solid #e3e6dc; }
.tennis-programme h4 { margin:0 0 7px; font-size:18px; line-height:1.4; color:var(--forest); }
.tennis-programme .programme-meta { font-size:14px; color:#536150; margin:0 0 10px; }
.tennis-programme p { margin:10px 0; font-size:16px; }
.programme-date { border-left:3px solid #c6cfb8; padding-left:10px; }
.programme-price { color:var(--forest); font-weight:700; }
.programme-price small { display:block; font-weight:400; font-size:14px; color:#566459; margin-top:4px; }
.programme-source { font-size:14px; font-weight:650; text-underline-offset:3px; color:var(--forest); }
.tennis-stays { padding:20px 25px; background:#f8f4eb; border-top:1px solid #dfded3; }
.tennis-stays h4 { margin:0 0 12px; color:var(--forest); font-size:18px; }
.tennis-stay + .tennis-stay { border-top:1px solid #dfded3; padding-top:15px; margin-top:15px; }
.tennis-stay a { font-weight:700; color:var(--forest); text-underline-offset:3px; }
.tennis-stay small { display:block; font-size:13px; color:#795a3b; margin-top:3px; }
.tennis-stay p { font-size:14px; margin:6px 0; }
.tennis-access { padding:18px 25px; border-top:1px solid #e1e5da; font-size:14px; }
.tennis-access p { margin:0 0 8px; }
.tennis-sources { padding:13px 25px 18px; font-size:13px; border-top:1px solid #e1e5da; }
.tennis-sources a { display:inline-block; margin:5px 12px 0 0; text-underline-offset:3px; color:#52634f; }
.tennis-empty { grid-column:1/-1; border:1px dashed #bdc8b5; padding:40px; text-align:center; background:var(--cream); }
.tennis-empty h3 { font-family:var(--serif); font-weight:500; font-size:28px; color:var(--forest); margin:0; }
.directory-method { margin-top:45px; border-top:1px solid #d5dccc; padding-top:28px; max-width:940px; }
.directory-method h2 { font-size:28px; }
.directory-method p { color:#5d6a5a; font-size:14px; }
.tennis-footer { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:35px max(24px,calc((100vw - 1240px)/2)); border-top:1px solid #dce0d4; background:var(--cream); font-size:14px; }
@media(min-width:1101px) { .sports-page .site-header nav a { font-size:14px; } }
@media(max-width:850px) { .tennis-intro { gap:35px; grid-template-columns:1.4fr 1fr; } .directory-heading { display:block; } .directory-heading > p { margin-top:12px; } .tennis-results { grid-template-columns:1fr; } .filter-grid { grid-template-columns:1fr 1fr; } .budget-grid { grid-template-columns:1fr 1fr; } .budget-grid label:nth-child(2) { grid-column:1/-1; grid-row:2; } }
@media(max-width:580px) { .tennis-intro { display:block; padding:25px 22px; } .tennis-intro h1 { font-size:35px; } .tennis-advisor { padding:12px 0 0; border-left:0; border-top:1px solid #c5cec2; margin-top:18px; } .tennis-advisor p { display:none; } .tennis-advisor small { display:inline; margin-left:12px; font-size:12px; } .tennis-directory { padding:25px 16px 50px; } .tennis-filters { padding:17px; } .filter-grid { gap:14px 10px; } .filter-search { grid-column:1/-1; } .tennis-results-bar { align-items:start; flex-direction:column; gap:6px; } #tennisCount { margin:0; } .tennis-results-bar label { align-self:flex-end; } .tennis-card-header { padding:22px 20px 18px; } .tennis-card h3 { font-size:28px; } .tennis-card-details > summary, .tennis-stays, .tennis-programme, .tennis-access, .tennis-sources { padding-left:20px; padding-right:20px; } .tennis-facts { padding-left:20px; padding-right:20px; } .tennis-footer { flex-wrap:wrap; } .tennis-footer .brand { flex-basis:100%; } }
@media(prefers-reduced-motion:reduce) { .sports-page { scroll-behavior:auto; } }
@media(max-width:850px) { .tennis-destination-filter { grid-template-columns:minmax(0,1fr); gap:14px; } .tennis-destination-filter > label { max-width:280px; } }
@media(max-width:580px) { .tennis-destination-filter .country-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:2px; } .tennis-destination-filter .country-choices button { width:100%; padding:9px 10px; } .directory-heading > p { white-space:normal; } }
