/* About page: shared club typography and palette, with replaceable photo slots. */
.about-page { color:#182840; }
.about-page h1,.about-page h2,.about-page h3,.about-page p,.about-page figure { margin:0; }
.about-page a:focus-visible,.about-page summary:focus-visible { outline:3px solid #1671cf; outline-offset:5px; }
.about-page h1,.about-page h2,.about-page h3 { color:#123a66; }
.about-page h1,.about-page h2 { font-family:'Days One',sans-serif; font-weight:400; }
.about-page h1 { font-size:44px; line-height:1.22; }
.about-page h2 { font-size:28px; line-height:38px; }
.about-page h3 { font-size:20px; line-height:28px; font-weight:600; }
.about-page p { font-size:15px; line-height:25px; color:#5b6c80; }
.about-page .button { min-height:46px; padding:12px 22px; font-size:13px; }
.about-breadcrumb { display:inline-block; font-size:13px; line-height:20px; color:#34516f; margin-bottom:30px; }
.about-hero { padding-top:8px; }
.about-hero__grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:56px; }
.about-hero__text { display:flex; flex-direction:column; align-items:flex-start; gap:20px; padding:10px 0; }
.about-page .about-lead { color:#244869; font-size:21px; line-height:31px; }
.about-hero__text > p:not(.about-lead):not(.about-hero__hours) { max-width:490px; }
.about-hero__actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:2px; }
.about-page .about-hero__hours { font-size:13px; line-height:21px; }
.about-text-link { display:inline-flex; gap:8px; align-items:center; color:#234d78; font-size:14px; line-height:23px; text-decoration:underline; text-underline-offset:4px; }
.about-text-link:hover { color:#a52c25; }
.about-photo { position:relative; overflow:hidden; border-radius:12px; background:#e7eef6; }
.about-photo img { display:block; width:100%; height:280px; object-fit:cover; }
.about-photo--hero img { height:390px; }
.about-photo figcaption { position:absolute; left:18px; bottom:18px; padding:8px 12px; border-radius:5px; background:#ffffffed; color:#34516f; font-size:13px; line-height:20px; }
.about-numbers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:48px; border-top:1px solid #d9e3ef; border-bottom:1px solid #d9e3ef; padding-top:26px; padding-bottom:26px; }
.about-numbers > div { display:flex; flex-direction:column; gap:7px; padding:0 26px; border-left:1px solid #d9e3ef; }
.about-numbers > div:first-child { padding-left:0; border:0; }
.about-numbers strong { color:#123a66; font-family:'Days One',sans-serif; font-size:38px; line-height:46px; font-weight:400; }
.about-numbers span { color:#5b6c80; font-size:14px; line-height:23px; }
.about-section { margin-top:64px; scroll-margin-top:25px; }
.about-section__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:28px; }
.about-section__heading p { margin-top:10px; }
.about-section__heading > a { flex-shrink:0; }
.about-sports { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.about-sport { overflow:hidden; background:#fff; border:1px solid #dce3eb; border-radius:12px; min-width:0; display:flex; flex-direction:column; }
.about-sport--sand { --sport-accent:#b27624; }
.about-sport--parquet { --sport-accent:#278863; }
.about-sport--squash { --sport-accent:#a08012; }
.about-sport--table { --sport-accent:#4974bc; }
.about-sport__photo img { display:block; width:100%; height:155px; object-fit:cover; }
.about-sport__body { display:flex; flex-direction:column; gap:12px; padding:20px; flex:1; }
.about-sport__number { color:#65758a; font-size:12px; line-height:20px; display:flex; align-items:center; gap:7px; }
.about-sport__number::before { content:''; width:7px; height:7px; background:var(--sport-accent); border-radius:50%; flex-shrink:0; }
.about-sport h3 { font-size:19px; line-height:27px; }
.about-sport p { font-size:13px; line-height:22px; }
.about-sport a { display:flex; justify-content:space-between; gap:8px; margin-top:auto; padding-top:10px; border-top:1px solid #edf0f4; color:#234d78; font-size:13px; line-height:22px; }
.about-sport a:hover { text-decoration:underline; text-underline-offset:4px; }
.about-page .about-section__note { margin-top:20px; font-size:13px; line-height:22px; }
.about-comfort { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.about-comfort h3 { margin:20px 0 10px; }
.about-comfort__features { display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.about-comfort__features span { display:block; color:#45627f; background:#eaf0f7; padding:7px 10px; border-radius:5px; font-size:12px; line-height:19px; }
.about-details { border-bottom:1px solid #d7e1ed; padding:15px 0; font-size:14px; line-height:23px; }
.about-details summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; color:#244869; font-size:14px; line-height:23px; font-weight:600; list-style:none; }
.about-details summary::-webkit-details-marker { display:none; }
.about-details summary::after { content:'+'; font-size:21px; font-weight:400; line-height:24px; flex-shrink:0; }
.about-details[open] summary::after { content:'−'; }
.about-details > p { margin-top:12px; font-size:14px; line-height:24px; }
.about-lockers { margin-top:16px; }
.about-lockers table { width:100%; border-collapse:collapse; font-size:13px; line-height:21px; }
.about-lockers th,.about-lockers td { text-align:left; border-bottom:1px solid #dfe6ef; padding:8px 6px; }
.about-lockers thead th { color:#123a66; font-weight:600; }
.about-lockers tbody th { font-weight:400; }
.about-lockers td { font-variant-numeric:tabular-nums; }
.about-page .about-lockers p { margin-top:10px; font-size:12px; line-height:20px; }
.about-story { display:grid; grid-template-columns:1fr 1.5fr; gap:60px; padding-top:36px; padding-bottom:36px; border-top:1px solid #d9e3ef; border-bottom:1px solid #d9e3ef; }
.about-story__intro p { margin-top:14px; }
.about-timeline { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:30px; }
.about-timeline li { display:grid; grid-template-columns:100px 1fr; gap:22px; position:relative; }
.about-timeline li > strong { font-family:'Days One',sans-serif; font-size:29px; line-height:38px; font-weight:400; color:#4478aa; }
.about-timeline li > div { border-left:2px solid #c9d9eb; padding-left:22px; }
.about-timeline h3 { font-size:18px; line-height:27px; margin-bottom:8px; }
.about-timeline p { font-size:14px; line-height:24px; }
.about-formats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.about-formats article { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:24px; background:#fff; border-radius:12px; border:1px solid #dce3eb; }
.about-formats article > span { color:#74a2ca; font-family:'Days One',sans-serif; font-size:26px; line-height:36px; }
.about-formats p { font-size:14px; line-height:24px; }
.about-formats a { font-size:13px; margin-top:auto; padding-top:8px; }
.about-before { display:grid; grid-template-columns:1fr 1.5fr; gap:60px; }
.about-before > div:first-child p { margin:14px 0 18px; }
.about-before__list > details:first-child { padding-top:0; }
.about-visit { display:flex; justify-content:space-between; gap:40px; align-items:center; padding:32px; background:#e9f0f7; border-radius:12px; }
.about-visit h2 { font-size:26px; line-height:36px; margin-bottom:12px; }
.about-page .about-visit__address { color:#34516f; margin-top:18px; font-size:14px; }
.about-visit__phone { display:inline-block; color:#123a66; font-weight:600; font-size:20px; line-height:29px; margin-top:8px; }
.about-visit__actions { display:flex; flex-direction:column; gap:12px; flex-shrink:0; }
@media(max-width:1180px) {
 .about-hero__grid { gap:32px; }
 .about-page h1 { font-size:38px; }
 .about-photo--hero img { height:365px; }
 .about-sports { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .about-sport__photo img { height:185px; }
 .about-story,.about-before { gap:35px; }
 .about-formats { gap:20px; }
 .about-formats article { padding:20px; }
}
@media(max-width:780px) {
 .about-hero__grid { grid-template-columns:1fr; gap:28px; }
 .about-hero__text { max-width:600px; }
 .about-page h1 { font-size:34px; }
 .about-page h2 { font-size:24px; line-height:33px; }
 .about-photo--hero img { height:300px; }
 .about-numbers { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; margin-top:32px; }
 .about-numbers > div:nth-child(3) { border:0; padding-left:0; }
 .about-numbers strong { font-size:32px; line-height:41px; }
 .about-section { margin-top:44px; }
 .about-section__heading { flex-direction:column; align-items:flex-start; gap:14px; }
 .about-comfort,.about-story,.about-before { grid-template-columns:1fr; gap:28px; }
 .about-photo img { height:280px; }
 .about-formats { grid-template-columns:1fr; }
 .about-formats article { padding:22px; }
 .about-visit { flex-direction:column; align-items:flex-start; gap:24px; padding:24px; }
 .about-visit__actions { flex-direction:row; flex-wrap:wrap; }
}
@media(max-width:480px) {
 .about-breadcrumb { margin-bottom:22px; }
 .about-page h1 { font-size:31px; }
 .about-hero__text { gap:16px; }
 .about-page .about-lead { font-size:18px; line-height:28px; }
 .about-hero__actions { gap:16px; }
 .about-hero .about-photo img { height:230px; }
 .about-photo figcaption { left:12px; bottom:12px; font-size:12px; }
 .about-numbers { padding-top:22px; padding-bottom:22px; }
 .about-numbers > div { padding-left:18px; padding-right:0; }
 .about-numbers span { font-size:12px; line-height:21px; }
 .about-sports { gap:14px; }
 .about-sport__body { padding:15px; gap:10px; }
 .about-sport__photo img { height:125px; }
 .about-sport h3 { font-size:16px; line-height:24px; overflow-wrap:anywhere; }
 .about-sport__number,.about-sport p,.about-sport a { font-size:12px; line-height:20px; }
 .about-comfort .about-photo img { height:220px; }
 .about-timeline li { grid-template-columns:72px 1fr; gap:12px; }
 .about-timeline li > strong { font-size:24px; line-height:32px; }
 .about-timeline li > div { padding-left:14px; }
 .about-lockers table { font-size:12px; }
 .about-lockers th,.about-lockers td { padding:7px 3px; }
 .about-visit__actions { width:100%; }
 .about-visit__actions .button { width:100%; }
}
@media(max-width:360px) { .about-sports { grid-template-columns:1fr; } .about-sport__photo img { height:170px; } }
