/* Editorial sections, club directory and document tools. */
.ca-eyebrow { margin:0 0 .6rem; color:#466454; font:650 .76rem/1.4 var(--ca-font-sans); letter-spacing:.13em; text-transform:uppercase; }
.ca-page-heading { padding:3.5rem 0 2rem; max-width:800px; }
.ca-page-heading h1 { margin:.4rem 0 1rem; color:#173e32; font-size:clamp(2rem,3.7vw,3.3rem); line-height:1.12; letter-spacing:-.035em; }
.ca-page-heading>p:last-child { font-size:1.12rem; line-height:1.75; color:#466052; }
.ca-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2rem; }
.ca-section-heading h2 { color:#173e32; font-size:clamp(1.8rem,3vw,2.6rem); letter-spacing:-.03em; margin:.35rem 0 .65rem; }
.ca-section-heading p { margin-bottom:0; max-width:620px; }
.ca-text-link { display:inline-flex; align-items:center; gap:.8rem; min-height:44px; font-weight:650; text-decoration:underline; text-underline-offset:.25em; white-space:nowrap; }
.ca-help-text { color:#4e6558; font-size:.88rem; line-height:1.6; margin:.7rem 0 0; }
.ca-upcoming { padding:4.5rem 0; background:#f7f5ef; }
.ca-event-list { list-style:none; padding:0; margin:0; display:grid; gap:1rem; }
.ca-event-card { display:grid; grid-template-columns:78px minmax(0,1fr) auto; gap:1.6rem; align-items:center; padding:1.5rem 1.8rem; background:#fff; border:1px solid #d4dfd3; border-radius:5px; transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease; }
.ca-event-card:hover,.ca-event-card:focus-within { border-color:#668a70; box-shadow:0 8px 24px #173e320c; transform:translateY(-2px); }
.ca-event-date { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:82px; border:1px solid #b9cebc; background:#eff3ec; color:#173e32; border-radius:3px; }
.ca-event-date>span:first-child { font-size:2.05rem; font-weight:600; line-height:1.1; letter-spacing:-.03em; }
.ca-event-date>span:nth-child(2) { font-size:.8rem; font-weight:650; text-transform:uppercase; letter-spacing:.1em; margin-top:.3rem; }
.ca-event-info h3 { font-size:1.2rem; line-height:1.4; margin:0 0 .35rem; }
.ca-event-info h3 a { text-decoration:none; }
.ca-event-info h3 a:hover { text-decoration:underline; }
.ca-event-venue { margin:0; color:#354b43; font-size:.95rem; }
.ca-event-meta { margin:.35rem 0 0; color:#4e6558; font-size:.85rem; }
.ca-event-fee { text-align:right; margin:0; padding-left:1rem; }
.ca-event-fee span { display:block; color:#4e6558; font-size:.76rem; }
.ca-event-fee strong { font-size:1.3rem; color:#173e32; }
.ca-directory,.ca-laws-page,.ca-contact-page,.ca-search-page { width:100%; min-width:0; padding-bottom:3rem; }
.ca-directory-tools { padding:1.5rem; background:#fff; border:1px solid #d4dfd3; border-radius:5px; }
#club-filters { display:grid; grid-template-columns:1.6fr 1fr 1.1fr .8fr; gap:1rem; margin:0; }
#club-filters .ca-filter-field { min-width:0; }
.ca-directory-location { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-top:1.2rem; }
.ca-location-actions { display:flex; align-items:flex-end; gap:1rem; }
.ca-location-actions .ca-filter-field { flex:0 1 150px; }
.ca-directory .ca-filter-field label,.ca-sort-field label { font-size:.82rem; }
.ca-directory input,.ca-directory select { min-height:46px; margin:0; }
.ca-directory-summary { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:2rem 0 1.25rem; }
.ca-directory-summary>p { margin:0; color:#173e32; font-weight:600; }
.ca-sort-field { display:flex; align-items:center; gap:.7rem; }
.ca-sort-field select { width:150px; }
.ca-club-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.ca-club-card { display:flex; flex-direction:column; margin:0; padding:1.4rem; min-height:205px; border:1px solid #d4dfd3; border-radius:5px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease; }
.ca-club-card:hover,.ca-club-card:focus-within { border-color:#668a70; box-shadow:0 8px 24px #173e320c; }
.ca-club-card-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:1rem; }
.ca-club-county { color:#466454; font-size:.75rem; letter-spacing:.03em; }
.ca-club-distance { color:#173e32; font-size:.8rem; font-weight:600; white-space:nowrap; }
.ca-club-card h2 { font-size:1.12rem; line-height:1.45; margin:0 0 .65rem; }
.ca-club-card h2 a { display:inline; font-size:inherit; color:#173e32; text-decoration:none; }
.ca-club-card h2 a:hover { text-decoration:underline; }
.ca-club-card h2 a span { white-space:nowrap; }
.ca-club-federation { color:#4e6558; font-size:.86rem; line-height:1.6; }
.ca-club-card-bottom { display:flex; justify-content:space-between; align-items:center; gap:.7rem; border-top:1px solid #e2e8df; padding-top:.9rem; margin-top:auto; color:#466052; font-size:.75rem; }
.ca-load-more { text-align:center; margin:2rem 0 0; }
.site-content .ca-secondary-button,.site-content .ca-quiet-button { background:transparent; color:#245442; border:1px solid #789680; border-radius:3px; padding:.65rem 1rem; }
.site-content .ca-secondary-button:hover { background:#e9eee7; color:#102d25; border-color:#245442; }
.site-content .ca-quiet-button { border:0; text-decoration:underline; text-underline-offset:.2em; }
.site-content .ca-quiet-button:hover { color:#102d25; background:#e9eee7; }
.ca-empty-state { padding:2rem; border:1px dashed #9db29e; background:#f0f3ed; border-radius:5px; margin:2rem 0; }
.ca-empty-state h2 { font-size:1.4rem; color:#173e32; }
.ca-empty-state p:last-child { margin-bottom:0; }
.ca-empty-state>div { display:flex; gap:1.5rem; flex-wrap:wrap; }
.ca-empty-state a { min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; }
.ca-back-link { display:inline-flex; min-height:44px; align-items:center; margin-bottom:1.2rem; text-decoration:underline; text-underline-offset:.2em; font-size:.85rem; }
.ca-laws-heading { max-width:930px; }
.ca-laws-heading h1 { max-width:22ch; }
.ca-document-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.5rem; margin-top:1.3rem; }
.ca-document-layout { display:grid; grid-template-columns:255px minmax(0,1fr); gap:3rem; align-items:start; }
.ca-document-sidebar { position:sticky; top:1.5rem; max-height:calc(100vh - 3rem); overflow:auto; border:1px solid #d4dfd3; background:#fffdf8; border-radius:4px; }
.ca-document-contents summary { padding:1.1rem; font-size:.95rem; font-weight:650; color:#173e32; cursor:pointer; }
.ca-document-contents nav { padding:0 1rem 1rem; }
.ca-document-contents ol { list-style:none; margin:0; padding:0; }
.ca-document-contents li { border-top:1px solid #e2e8df; }
.ca-document-contents a { display:flex; align-items:center; min-height:42px; padding:.55rem .2rem; color:#354b43; font-size:.76rem; line-height:1.6; text-decoration:none; }
.ca-document-contents a:hover { text-decoration:underline; background:#eff3ec; }
.ca-document-main { min-width:0; }
.ca-document-search { padding:1.4rem; border:1px solid #d4dfd3; background:#fff; border-radius:5px; margin-bottom:2.4rem; }
.ca-document-search label { display:block; color:#173e32; font-weight:650; margin-bottom:.6rem; }
.ca-document-search-row { display:flex; gap:.6rem; }
.ca-document-search-row input { flex:1; min-width:0; }
.ca-document-search-row button { padding:.65rem 1rem; }
#ca-law-search-status { font-size:.85rem; margin:1rem 0 0; color:#354b43; }
#ca-law-search-status:empty { display:none; }
#searchResults.ca-law-search-results { padding:0; margin:1rem 0; list-style:none; }
.ca-law-search-results .law-search-result { padding:1.1rem 0; border-top:1px solid #d4dfd3; margin:0; }
.ca-law-search-results .law-search-result>p { margin:.6rem 0 0; font-size:.9rem; line-height:1.7; }
.ca-law-search-results .ca-law-context { color:#4e6558; font-size:.78rem!important; }
.ca-law-search-results .law-view-link { font-weight:650; text-decoration:underline; display:inline-flex; min-height:36px; align-items:center; }
.ca-law-search-results mark { color:#173e32; background:#f4dfac; padding:.05em .12em; }
.ca-laws-body { font-family:var(--ca-font-sans); font-size:1.065rem; line-height:1.85; color:#233c30; overflow-wrap:anywhere; }
.ca-laws-body :where(p,li,td,th,span,font) { font-family:inherit!important; font-size:inherit!important; line-height:inherit; }
.ca-laws-body p { margin:.75em 0; }
.ca-laws-body h2 { margin:2.8rem 0 1rem; font-size:1.45rem; line-height:1.4; color:#173e32; border-top:1px solid #cbd8cb; padding-top:1.5rem; }
.ca-laws-body h3 { font-size:1.25rem; line-height:1.45; }
.ca-laws-body table { max-width:100%; font:inherit; }
.ca-laws-body td,.ca-laws-body th { vertical-align:top; padding:.4rem .55rem; }
.ca-laws-body a { text-decoration:underline; text-underline-offset:.17em; }
.ca-laws-body [id] { scroll-margin-top:1.5rem; }
.ca-laws-body [id]:target { background:#fff6d9; outline:2px solid #a87522; outline-offset:5px; animation:none; }
.ca-contact-layout { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.3fr); gap:4rem; align-items:start; }
.ca-contact-details { padding:1.7rem; background:#eaf0e7; border:1px solid #cad9c9; border-radius:5px; }
.ca-contact-details h2 { font-size:1.3rem; line-height:1.4; }
.ca-contact-details address { font-style:normal; line-height:1.8; margin:1.2rem 0; }
.ca-contact-details dt { color:#173e32; font-size:.8rem; font-weight:650; margin-top:1.1rem; }
.ca-contact-details dd { margin:.25rem 0 0; font-size:.95rem; line-height:1.7; overflow-wrap:anywhere; }
.ca-contact-details a { text-decoration:underline; }
.ca-contact-form-panel h2 { font-size:1.6rem; color:#173e32; }
.ca-contact-form-panel>p { color:#466052; }
.ca-contact-form { position:relative; }
.ca-form-field { margin:1.25rem 0; }
.ca-form-field>label { display:block; margin-bottom:.4rem; font-size:.9rem; font-weight:650; color:#173e32; }
.ca-form-field input,.ca-form-field select,.ca-form-field textarea { width:100%; }
.ca-form-field input,.ca-form-field select { min-height:48px; }
.ca-form-field textarea { resize:vertical; }
.ca-contact-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ca-field-error { color:#9a2837; font-size:.85rem; margin:.4rem 0 0; }
[aria-invalid=true] { border:2px solid #9a2837!important; }
.ca-form-errors { padding:1.2rem; background:#fff0ed; border:1px solid #b4535b; border-radius:4px; margin:1.4rem 0; }
.ca-form-errors h3,.ca-success-message h3 { font-size:1.15rem; margin:0 0 .5rem; }
.ca-form-errors li { margin:.45rem 0; }
.ca-form-errors a { color:#7d1d28; text-decoration:underline; }
.ca-success-message { padding:1.2rem; margin:1.4rem 0; background:#eaf0e7; border:1px solid #799b7c; border-radius:4px; }
.ca-results-search { max-width:800px; padding:1.3rem; border:1px solid #d4dfd3; border-radius:5px; background:#fff; margin:0 0 2rem; }
.ca-results-search>label { display:block; font-size:.85rem; font-weight:600; margin-bottom:.5rem; }
.ca-results-search>div { display:flex; gap:.75rem; }
.ca-results-search input { flex:1; min-width:0; }
.ca-search-results { list-style:none; margin:0; padding:0; max-width:900px; }
.ca-search-card { border-bottom:1px solid #cbd8cb; padding:1.8rem 0; }
.ca-search-card h2 { font-size:1.4rem; line-height:1.4; margin:.5rem 0 .7rem; }
.ca-search-card h2 a { color:#173e32; text-decoration:none; }
.ca-search-card h2 a:hover { text-decoration:underline; }
.ca-search-card>p { margin-bottom:.6rem; line-height:1.75; }
.ca-search-card .ca-search-date { font-size:.8rem; color:#4e6558; }
.ca-pagination { margin:2rem 0; }
.ca-pagination ul { display:flex; list-style:none; padding:0; margin:0; gap:.5rem; flex-wrap:wrap; }
.ca-pagination a,.ca-pagination span { min-width:44px; min-height:44px; padding:.6rem .85rem; display:inline-flex; align-items:center; justify-content:center; border:1px solid #9ab19b; background:#fff; color:#173e32; border-radius:3px; }
.ca-pagination .current,.ca-pagination a:hover { background:#173e32; color:#fff; }
.site-content a:not(.wp-block-button__link):not(.uagb-buttons-repeater):not(.news-category):not(.page-numbers):hover { color:#102d25; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.2em; }
.ca-footer a:hover { color:#f1cf83; text-decoration:underline; text-decoration-thickness:2px; }
@media(max-width:64rem) { #club-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .ca-club-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ca-document-layout { grid-template-columns:220px minmax(0,1fr); gap:1.8rem; } .ca-contact-layout { gap:2rem; } }
@media(max-width:56rem) { .ca-document-layout { grid-template-columns:1fr; gap:1.5rem; } .ca-document-sidebar { position:static; max-height:none; } .ca-document-contents[open] nav { max-height:55vh; overflow:auto; } .ca-contact-layout { grid-template-columns:1fr; } .ca-contact-details { display:grid; grid-template-columns:1fr 1fr; gap:.5rem 2rem; } .ca-contact-details h2 { grid-column:1/-1; } .ca-contact-details dl { grid-column:2; grid-row:2/5; margin:0; } }
@media(max-width:40rem) {
    .ca-page-heading { padding:2.4rem 0 1.5rem; }
    .ca-page-heading h1 { font-size:2rem; }
    .ca-section-heading { display:block; margin-bottom:1.3rem; }
    .ca-section-heading .ca-text-link { margin-top:1rem; }
    .ca-upcoming { padding:3rem 0; }
    .ca-event-card { grid-template-columns:60px minmax(0,1fr); gap:1rem; padding:1.15rem; }
    .ca-event-date { min-height:70px; align-self:start; }
    .ca-event-date>span:first-child { font-size:1.7rem; }
    .ca-event-info h3 { font-size:1.05rem; }
    .ca-event-fee { grid-column:2; display:flex; gap:.6rem; align-items:baseline; text-align:left; padding:0; }
    .ca-event-fee strong { font-size:1rem; }
    .ca-directory-tools { padding:1.1rem; }
    #club-filters { grid-template-columns:1fr; }
    .ca-club-grid { grid-template-columns:1fr; }
    .ca-directory-location,.ca-location-actions { flex-wrap:wrap; }
    .ca-location-actions { width:100%; }
    .ca-location-actions .ca-filter-field { flex:1; }
    .ca-directory-summary { display:block; }
    .ca-sort-field { margin-top:1rem; }
    .ca-document-search { padding:1.1rem; }
    .ca-document-search-row { flex-wrap:wrap; }
    .ca-document-search-row input { flex-basis:100%; }
    .ca-document-search-row button { flex:1; }
    .ca-laws-body { font-size:1rem; }
    .ca-contact-details { display:block; padding:1.3rem; }
    .ca-results-search>div { flex-wrap:wrap; }
    .ca-results-search input { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .ca-event-card:hover { transform:none; } }
@media print {
    .ca-header,.ca-footer,.ca-document-sidebar,.ca-document-search,.ca-document-actions,.ca-back-link,.skip-link { display:none!important; }
    .ca-document-layout { display:block; }
    .ca-laws-page,.ca-document-main,#content,.ast-container { display:block!important; width:100%!important; max-width:none!important; padding:0!important; margin:0!important; }
    .ca-laws-body { color:#000; font-size:11pt; }
    .ca-laws-body h2 { break-after:avoid; }
    .ca-laws-body p { orphans:3; widows:3; }
    .ca-table-scroll { overflow:visible; }
}
.ca-contact-page { width:min(1200px,calc(100% - 5rem)); margin-inline:auto; }
.ca-location-actions>button { white-space:nowrap; flex-shrink:0; }
.ca-directory button,.ca-document-search button,.ca-document-actions button,.ca-contact-form button,.ca-results-search button { text-transform:none; letter-spacing:normal; font-size:.9rem; border-radius:3px; }
.ca-laws-body a:hover { background:#f2e5c9; }
@media(max-width:64rem) { .ca-contact-page { width:calc(100% - 2.5rem); } }

.site-content .news-category:hover { color:#173e32; background:#dce8d8; text-decoration:underline; }
.site-content .news-category.active:hover { color:#fff; background:#16392e; }
.ca-document-search #laws-search { margin:0; }
.ca-laws-body { max-width:74ch; }
#searchResults.ca-law-search-results { max-width:78ch; }
#searchResults.ca-law-search-results .law-search-result { border-left:0; border-bottom:0; border-top:1px solid #d4dfd3; padding:1.2rem 1rem; background:transparent; }
.ca-document-find { display:flex; align-items:center; min-height:44px; padding:.9rem 1.1rem; border-bottom:1px solid #d4dfd3; color:#173e32; font-size:.82rem; text-decoration:underline; }

.ca-court-diagram { margin:2.5rem 0; padding:1rem; border:1px solid #d4dfd3; background:#fff; border-radius:5px; }
.ca-court-diagram img { display:block; width:100%; height:auto; max-width:700px; margin-inline:auto; }
.ca-court-diagram figcaption { margin:1rem .3rem .2rem; font: .85rem/1.7 var(--ca-font-sans); color:#354b43; }
.ca-contacts-directory { width:100%; min-width:0; padding-bottom:4rem; }
.ca-contacts-intro { padding:1.5rem; background:#eaf0e7; border:1px solid #cad9c9; border-radius:5px; margin-bottom:2rem; }
.ca-contacts-intro h2 { font-size:1.4rem; }
.ca-contacts-intro address { font-style:normal; line-height:1.8; }
.ca-contacts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.ca-contacts-grid section { padding:1.5rem; background:#fff; border:1px solid #d4dfd3; border-radius:5px; min-width:0; }
.ca-contacts-grid h2 { font-size:1.25rem; line-height:1.4; color:#173e32; }
.ca-contacts-directory a { text-decoration:underline; text-underline-offset:.2em; overflow-wrap:anywhere; }
.ca-contacts-directory .ca-text-link { white-space:normal; }
@media(max-width:40rem) { .ca-contacts-grid { grid-template-columns:1fr; } }
@media print { .ca-court-diagram { break-inside:avoid; } .ca-court-diagram img { max-height:220mm; width:auto; max-width:100%; } }

/* Keep native select behaviour, with room for an inset, consistently placed arrow. */
.ca-directory #club-filters select, .ca-directory .ca-directory-location select, .ca-directory .ca-sort-field select, .ca-event-filters select {
    appearance:none; -webkit-appearance:none; padding-inline:.8rem 2.75rem;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23354b43' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-size:16px; background-position:right 1rem center;
}
@media(forced-colors:active) {
    .ca-directory #club-filters select, .ca-directory .ca-directory-location select, .ca-directory .ca-sort-field select, .ca-event-filters select { appearance:auto; background-image:none; }
}

/* Give the homepage's main call to action a clear, high-contrast emphasis. */
.home .site-content .uagb-block-ea1e98f0 .uagb-infobox-cta-link {
    display:inline-flex; align-items:center; justify-content:center; gap:.8rem;
    min-height:52px; padding:.95rem 1.8rem; border:2px solid #e3c58d; border-radius:4px;
    color:#173e32; background:#e3c58d; font-size:1rem; font-weight:700;
    text-transform:none; letter-spacing:.015em; text-decoration:none;
    box-shadow:0 5px 18px #06190f40; transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.home .site-content .uagb-block-ea1e98f0 .uagb-infobox-cta-link::after { content:"→"; font-size:1.2em; }
.home .site-content .uagb-block-ea1e98f0 .uagb-infobox-cta-link:hover {
    color:#102d25; background:#f4dfac; border-color:#f4dfac; text-decoration:none;
    box-shadow:0 7px 24px #06190f55; transform:translateY(-2px);
}
.home .site-content .uagb-block-ea1e98f0 .uagb-infobox-cta-link:focus-visible { outline-color:#fff!important; outline-offset:4px!important; }

@media(max-width:40rem) {
    .home .homepage-news { padding-inline:1.25rem; }
    .home .homepage-news .news-cards { grid-template-columns:minmax(0,1fr); }
}

.ca-about-page { width:min(1200px,calc(100% - 5rem)); margin-inline:auto; padding-bottom:4rem; }
.ca-about-page .ca-page-heading { padding-bottom:1rem; }
.ca-about-intro { max-width:800px; font-size:1.15rem; line-height:1.8; color:#354b43; }
.ca-about-page .entry-content h2 { margin-top:2.5rem; font-size:1.8rem; line-height:1.3; color:#173e32; }
.ca-about-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3rem; margin-block:1.5rem 3rem; }
.ca-about-cards>.wp-block-group { margin:0; min-width:0; padding:1.6rem; border:1px solid #d4dfd3; border-radius:5px; background:#fff; }
.ca-about-cards h3 { font-size:1.2rem; line-height:1.4; color:#173e32; margin:0 0 .8rem; }
.ca-about-cards p { margin-bottom:0; }
.ca-about-community { max-width:800px; }
.ca-about-join { padding:1.8rem; margin-top:2.5rem; border:1px solid #cad9c9; border-radius:5px; background:#eaf0e7; }
.ca-about-page .ca-about-join h2 { margin-top:0; }
.ca-about-actions { display:flex; flex-wrap:wrap; gap:.5rem 2rem; }
@media(max-width:64rem) { .ca-about-page { width:calc(100% - 2.5rem); } }
@media(max-width:48rem) { .ca-about-cards { grid-template-columns:1fr; } }

.ca-about-page .entry-content>.wp-block-group { padding:0; }
.ca-about-page .entry-content>.ca-about-join { padding:1.8rem; }

.ca-events-page { width:min(1200px,calc(100vw - 5rem)); margin-inline:auto; min-width:0; padding-bottom:4rem; }
.ca-events-page .ca-page-heading { max-width:850px; }
.ca-event-filter-panel { border:1px solid #d4dfd3; border-radius:5px; background:#fff; }
.ca-event-filter-panel summary { padding:1.1rem 1.5rem; cursor:pointer; color:#173e32; font-weight:650; }
.ca-event-filter-panel summary span { margin-left:.7rem; color:#4e6558; font-size:.8rem; font-weight:400; }
.ca-event-filter-panel[open] summary { border-bottom:1px solid #d4dfd3; }
.ca-event-filters { padding:1.5rem; margin:0; }
.ca-event-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem; }
.ca-event-filters .ca-filter-field { min-width:0; }
.ca-event-filters label { font-size:.85rem; font-weight:650; color:#173e32; }
.ca-event-filters input,.ca-event-filters select { width:100%; min-height:48px; margin:0; }
.ca-event-filter-actions { display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:.4rem; }
.ca-event-filter-actions button { box-sizing:border-box; width:100%; min-height:48px; text-transform:none; border-radius:3px; padding:.7rem 1rem; }
.ca-event-filter-actions a { display:inline-flex; align-items:center; min-height:36px; font-size:.85rem; text-decoration:underline; }
.ca-event-results { scroll-margin-top:1rem; }
.ca-event-results-heading { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; margin:2.5rem 0 1.3rem; }
.ca-event-results-heading h2 { margin:0; font-size:1.7rem; color:#173e32; }
.ca-event-results-heading p { margin:0; color:#4e6558; font-size:.9rem; }
.ca-tournament-list { list-style:none; padding:0; margin:0; display:grid; gap:1.2rem; }
.ca-tournament-list>li { margin:0; }
.ca-tournament-card { display:grid; grid-template-columns:76px minmax(0,1fr) 165px; gap:1.6rem; padding:1.7rem; border:1px solid #d4dfd3; border-radius:5px; background:#fff; }
.ca-tournament-card:focus-within,.ca-tournament-card:hover { border-color:#668a70; box-shadow:0 6px 20px #173e320c; }
.ca-tournament-date { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; align-self:start; min-height:106px; background:#eff3ec; border:1px solid #b9cebc; border-radius:3px; color:#173e32; }
.ca-tournament-date strong { font-size:2rem; line-height:1.1; font-weight:600; }
.ca-tournament-date span { font-size:.75rem; }
.ca-tournament-date span:nth-child(2) { text-transform:uppercase; letter-spacing:.08em; font-weight:650; }
.ca-tournament-info { min-width:0; }
.ca-tournament-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.65rem; }
.ca-tournament-tags>span { padding:.2rem .55rem; background:#eff3ec; color:#354b43; border-radius:3px; font-size:.72rem; line-height:1.6; }
.ca-tournament-tags .ca-entry-open { background:#e2eddf; color:#245442; font-weight:650; }
.ca-tournament-info h3 { font-size:1.3rem; line-height:1.4; margin:0 0 .5rem; }
.ca-tournament-info h3 a { text-decoration:none; }
.ca-tournament-info h3 a:hover { text-decoration:underline; }
.ca-tournament-info p { margin:.35rem 0; }
.ca-tournament-dates { font-size:.95rem; color:#354b43; }
.ca-tournament-venue { font-size:.9rem; }
.ca-tournament-venue a { text-decoration:underline; }
.ca-tournament-detail { font-size:.82rem; color:#4e6558; }
.ca-tournament-detail strong { font-weight:600; }
.ca-tournament-entry { border-left:1px solid #e2e8df; padding-left:1.5rem; align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; }
.ca-tournament-entry dl { margin:0 0 .8rem; }
.ca-tournament-entry dt { font-size:.72rem; color:#4e6558; }
.ca-tournament-entry dd { margin:0 0 .6rem; font-weight:650; font-size:1.15rem; color:#173e32; }
.ca-tournament-entry .ca-text-link { white-space:normal; font-size:.85rem; }
@media(max-width:64rem) { .ca-events-page { width:calc(100vw - 2.5rem); } .ca-event-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ca-tournament-card { grid-template-columns:65px minmax(0,1fr) 145px; gap:1.1rem; padding:1.3rem; } .ca-tournament-entry { padding-left:1rem; } }
@media(max-width:40rem) {
    .ca-event-filter-grid { grid-template-columns:1fr; gap:1rem; }
    .ca-event-filters { padding:1.2rem; }
    .ca-event-filter-actions { align-items:flex-start; }
    .ca-event-results-heading { display:block; }
    .ca-event-results-heading p { margin-top:.6rem; }
    .ca-tournament-card { grid-template-columns:55px minmax(0,1fr); gap:1rem; padding:1.1rem; }
    .ca-tournament-date { min-height:94px; }
    .ca-tournament-date strong { font-size:1.65rem; }
    .ca-tournament-info h3 { font-size:1.1rem; }
    .ca-tournament-entry { grid-column:1/-1; border-left:0; border-top:1px solid #e2e8df; padding:1rem 0 0; }
    .ca-tournament-entry dl { display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; margin-bottom:0; }
    .ca-tournament-entry dt { grid-row:1; }
    .ca-tournament-entry dd { grid-row:2; }
}

.ca-account-page { width:min(1200px,calc(100vw - 5rem)); margin-inline:auto; padding-bottom:4rem; }
.ca-account-page .ca-page-heading { max-width:850px; }
.ca-account-layout { display:grid; grid-template-columns:minmax(230px,.65fr) minmax(0,1.5fr); gap:2.5rem; align-items:start; }
.ca-account-summary { padding:1.6rem; border:1px solid #cad9c9; border-radius:5px; background:#eaf0e7; min-width:0; }
.ca-account-summary h2 { font-size:1.25rem; line-height:1.4; margin:0 0 1.2rem; }
.ca-account-summary dl { margin-bottom:1rem; }
.ca-account-summary dt { font-size:.8rem; font-weight:650; color:#173e32; }
.ca-account-summary dd { margin:.25rem 0 1.1rem; font-size:.95rem; overflow-wrap:anywhere; }
.ca-account-summary .ca-text-link { white-space:normal; font-size:.9rem; }
.ca-account-summary a { text-decoration:underline; }
.ca-account-forms { min-width:0; display:grid; gap:1.5rem; }
.ca-account-panel { padding:1.8rem; border:1px solid #d4dfd3; border-radius:5px; background:#fff; }
.ca-account-panel h2 { font-size:1.45rem; color:#173e32; margin:0 0 .7rem; }
.ca-account-panel>p { color:#4e6558; font-size:.9rem; line-height:1.7; }
.ca-account-panel form { margin:0; }
.ca-account-name-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.ca-account-name-row .ca-form-field { min-width:0; margin-bottom:0; }
.ca-account-panel button { text-transform:none; font-size:.9rem; letter-spacing:normal; border-radius:3px; min-height:48px; }
.ca-account-page>.ca-success-message,.ca-account-page>.ca-form-errors { margin:0 0 1.5rem; }
.ca-account-page .ca-form-errors h2 { font-size:1.2rem; margin:0 0 .7rem; }
@media(max-width:64rem) { .ca-account-page { width:calc(100vw - 2.5rem); } }
@media(max-width:48rem) { .ca-account-layout { grid-template-columns:1fr; gap:1.5rem; } .ca-account-name-row { grid-template-columns:1fr; gap:0; } .ca-account-panel { padding:1.3rem; } }
