/* Shared components for composed club pages; Shop remains separate. */
.sva-club-page .sva-page-intro { padding-bottom:38px; }
.sva-club-page .sva-shared-news-link { max-width:100%; box-sizing:border-box; }
.sva-club-section { padding:42px 0; scroll-margin-top:calc(var(--sva-header-height,88px) + 20px); }
.sva-club-section + .sva-club-section { border-top:1px solid #e2e9dd; }
.sva-club-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:26px; }
.sva-club-heading .sva-page-kicker { margin-bottom:10px; }
.sva-club-heading .sva-shared-news-link { flex-shrink:0; }
.sva-club-page h2 { font-size:clamp(27px,3vw,38px); }
.sva-club-page h3 { font-size:20px; }
.sva-club-page p { line-height:1.75; }
.sva-club-intro { color:#596b55; margin:-12px 0 24px; font-size:14px; }
.sva-club-split { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
.sva-info-card { padding:30px; border:1px solid #dfe8d9; border-radius:14px; background:#f5f8f2; min-width:0; }
.sva-info-card h2 { font-size:clamp(26px,2.6vw,34px); margin:0 0 22px; }
.sva-info-card p:not(.sva-page-kicker),.sva-info-card address { font-size:14px; font-style:normal; color:#53624e; line-height:1.9; }
.sva-info-card address { margin:18px 0; }
.sva-info-card a:not(.sva-shared-news-link) { color:#315d25; text-underline-offset:4px; }
.sva-info-card--dark { background:#15231a; color:#fff; border-color:#15231a; }
.sva-info-card--dark :is(h2,h3) { color:#fff; }
.sva-info-card--dark :is(p:not(.sva-page-kicker),address) { color:#d0dbca; }
.sva-info-card--dark .sva-page-kicker { color:#93cb70; }
.sva-info-card--dark a:not(.sva-shared-news-link) { color:#b2df91; }
.sva-club-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; }
.sva-info-card>.sva-shared-news-link { margin-top:18px; }
.sva-club-actions+.sva-shared-news-link { margin-top:12px; }
.sva-people-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sva-person { display:flex; gap:20px; align-items:center; padding:22px; border:1px solid #dfe8d9; border-radius:12px; background:#fff; min-width:0; }
.sva-person__photo { width:96px; height:120px; flex:0 0 96px; object-fit:cover; object-position:top; border-radius:8px; background:#edf3e8; }
.sva-person>div { min-width:0; }
.sva-person .sva-page-kicker { font-size:9px; line-height:1.5; margin:0 0 8px; }
.sva-person h3 { font-size:20px; margin:0; line-height:1.25; }
.sva-person a { display:block; font-size:12px; color:#315d25; overflow-wrap:anywhere; margin-top:9px; text-underline-offset:4px; }
.sva-person__scope { font-size:12px; color:#607159; margin:7px 0 0; }
.sva-info-card .sva-person { padding:0; border:0; background:none; margin:24px 0; }
.sva-club-section>.sva-person { max-width:650px; }
.sva-club-news { min-width:0; }
.sva-club-news .sva-shared-news { width:100%; }
.sva-club-news .sva-shared-news .elementor-heading-title { font-size:22px!important; line-height:1.3!important; word-break:normal!important; hyphens:auto; }
.sva-club-history { max-width:100%; }
.sva-chronicle { width:100%; border-collapse:collapse; text-align:left; font-size:14px; margin:0; }
.sva-chronicle th { background:#15231a; color:#fff; padding:14px 22px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.sva-chronicle td { padding:15px 22px; border-bottom:1px solid #dce6d6; }
.sva-chronicle td:first-child { width:30%; color:#4d7539; font-weight:700; }
.sva-chronicle tr:nth-child(even) { background:#f3f7ef; }
.sva-history-more { margin-top:12px; }
.sva-history-more summary { display:flex; justify-content:space-between; padding:18px 22px; border:1px solid #dce6d6; border-radius:6px; font-weight:600; font-size:13px; cursor:pointer; }
.sva-history-more summary span { color:#588940; }
.sva-history-more[open] summary { margin-bottom:12px; }
.sva-club-map .sva-club-split { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); align-items:start; }
.sva-image-zoom { display:block; position:relative; color:#15231a; text-decoration:none; }
.sva-image-zoom img { display:block; width:100%; height:auto; max-height:500px; object-fit:contain; border-radius:12px; background:#f2f6ee; }
.sva-image-zoom>span { display:inline-flex; align-items:center; padding:10px 14px; border-radius:5px; background:#15231a; color:#fff; font:600 11px/1.5 Poppins,Arial,sans-serif; margin-top:10px; }
.sva-image-zoom:hover>span { background:#315d25; }
.sva-club-logos { display:flex; align-items:center; gap:28px; margin:22px 0; }
.sva-club-logos img { width:64px; height:64px; object-fit:contain; }
.sva-operator-logo { display:block; width:160px; height:66px; object-fit:contain; object-position:left; margin:12px 0; }
.sva-info-card hr { border:0; border-top:1px solid #dce6d6; margin:24px 0; }
.sva-contact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sva-contact-grid .sva-info-card { display:flex; flex-direction:column; align-items:start; }
.sva-contact-grid .sva-info-card>.sva-shared-news-link { margin-top:auto; }
.sva-club-mail { display:block; font-size:13px; overflow-wrap:anywhere; margin:0 0 24px; }
.sva-clubhouse-logo { float:right; width:96px; height:96px; object-fit:contain; margin:0 0 18px 18px; }
.sva-rental-card .sva-page-kicker { margin-top:12px; }
.sva-department-lead { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:24px; align-items:start; }
.sva-department-photo .sva-image-zoom img { aspect-ratio:16/10; object-fit:cover; }
.sva-training-card .sva-step__number { font-size:44px; margin-bottom:18px; }
.sva-training-card>strong { color:#315d25; font-size:20px; margin-bottom:4px; }
.sva-training-card p { margin-bottom:22px; }
.sva-darts-league { display:flex; align-items:center; gap:30px; }
.sva-darts-league>div { flex:1; }
.sva-darts-league h2 { margin-bottom:8px; }
.sva-darts-league p:last-child { margin:0; }
.sva-departments-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.sva-department-card { border:1px solid #dfe8d9; border-radius:12px; overflow:hidden; background:#f5f8f2; }
.sva-department-card>img,.sva-department-wordmark { width:100%; height:220px; object-fit:cover; }
.sva-department-wordmark { display:flex; align-items:center; justify-content:center; background:#15231a; color:#6eb645; font-size:clamp(32px,4vw,60px); font-weight:750; letter-spacing:-.05em; }
.sva-department-card>div:not(.sva-department-wordmark) { padding:28px; }
.sva-department-card p { color:#53624e; font-size:14px; }
.sva-camp-flyer img { max-height:460px; }
.sva-club-page .sva-page-callout { margin-top:20px; }
.sva-image-open { overflow:hidden; }
.sva-image-dialog { border:0; padding:48px 18px 18px; border-radius:12px; background:#f5f8f2; max-width:94vw; max-height:94vh; }
.sva-image-dialog::backdrop { background:#102016e8; }
.sva-image-dialog img { display:block; width:auto; height:auto; max-width:88vw; max-height:80vh; object-fit:contain; }
.sva-image-dialog button { position:absolute; top:10px; right:18px; border:0; border-radius:4px; padding:6px 12px; font:600 13px Poppins,Arial,sans-serif; background:#15231a; color:white; cursor:pointer; }
.sva-image-dialog button:focus-visible { outline:3px solid #6eb645; outline-offset:2px; }
@media(max-width:1100px) { .sva-people-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .sva-person__photo { width:80px; flex-basis:80px; height:100px; } .sva-person h3 { font-size:18px; } }
@media(max-width:800px) { .sva-contact-grid { grid-template-columns:1fr; } .sva-department-lead { grid-template-columns:1fr; } .sva-club-map .sva-club-split { grid-template-columns:1fr; } .sva-darts-league { flex-wrap:wrap; } }
@media(max-width:650px) { .sva-club-section { padding:30px 0; } .sva-club-split,.sva-people-grid,.sva-departments-grid { grid-template-columns:1fr; } .sva-info-card { padding:24px; } .sva-club-heading { align-items:start; flex-direction:column; gap:18px; margin-bottom:22px; } .sva-person { padding:18px; } .sva-person__photo { width:76px; height:95px; flex-basis:76px; } .sva-chronicle td,.sva-chronicle th { padding:12px; } .sva-chronicle td:first-child { width:38%; } .sva-club-actions { gap:10px; } .sva-club-page .sva-page-intro { padding-bottom:30px; } }
