/* Sports photo previews follow the site's circular imagery and category colors. */
.sport-gallery{position:relative;flex:0 0 100px;width:100px;min-width:0}
.sport-gallery>summary{position:relative;list-style:none;cursor:pointer;transition:box-shadow .2s ease;background:linear-gradient(145deg,var(--cat-light),#ffffffcc)}
.sport-gallery>summary::-webkit-details-marker{display:none}
.sport-gallery>summary:focus-visible{outline:3px solid var(--cat-dark);outline-offset:5px}
.sport-gallery[open]>summary,.sport-gallery>summary:hover{box-shadow:0 0 0 5px #ffffff70}
.sport-photo-hint{position:absolute;right:2px;bottom:0;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--cat-dark);color:white;font:18px/1 sans-serif}
.sport-popup{position:fixed;z-index:70;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain;padding:20px 22px 22px;border:1px solid #ffffffed;border-radius:24px;background:linear-gradient(140deg,#fffffff5,var(--cat-light));box-shadow:0 16px 65px #143f4930;backdrop-filter:blur(18px);text-align:left;color:#173f43;box-sizing:border-box}
.sport-gallery:not([open])>.sport-popup{display:none}
.sport-gallery-enhanced .sport-popup{left:var(--popup-left,12px);top:var(--popup-top,12px);transform:none}
.sport-gallery[open] .sport-popup{animation:sport-popup-in .22s ease-out both}
.sport-popup-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.sport-popup-heading h4{font-size:1.15rem;line-height:1.5;margin:0;color:var(--cat-dark)}
.sport-popup-heading h4 span{display:block;font-size:.7rem;font-weight:500;letter-spacing:.06em}
.sport-popup-close{border:1px solid #aec8be;border-radius:50%;width:34px;height:34px;flex:0 0 34px;padding:0;display:grid;place-items:center;background:#ffffffb3;color:#173f43;font:24px/1 sans-serif;cursor:pointer}
.sport-popup-close:focus-visible{outline:3px solid var(--cat-dark);outline-offset:3px}
.sport-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 22px}
.sport-popup-grid figure{margin:0;min-width:0}
.sport-popup-grid img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:2px solid #ffffffd9;box-sizing:border-box;filter:saturate(.85) contrast(.97) brightness(1.03)}
.sport-popup-grid figcaption{font-size:.72rem;line-height:1.5;text-align:center;margin-top:7px;font-weight:500}
@keyframes sport-popup-in{from{opacity:0;scale:.96}to{opacity:1;scale:1}}
@media(max-width:1050px){.sport-gallery{flex-basis:80px;width:80px}}
@media(max-width:700px){.sport-gallery{width:105px;margin:0 auto 12px}.sport-gallery>.sport-badge{margin:0}.sport-category:last-child .sport-gallery{margin:0}.sport-popup{padding:17px;max-height:calc(100dvh - 24px)}.sport-popup-grid{gap:15px}}
.large-text .sport-popup{width:min(600px,calc(100vw - 24px))}
.motion-stopped .sport-popup{animation:none!important}
@media(prefers-reduced-motion:reduce){.sport-popup,.sport-gallery>summary{animation:none!important;transition:none!important}}
@media(forced-colors:active){.sport-popup,.sport-popup-close{background:Canvas;color:CanvasText;border:1px solid CanvasText}.sport-photo-hint{background:Highlight;color:HighlightText}}

/* Native disclosure remains usable when JavaScript is unavailable. */
.sport-gallery:not(.sport-gallery-enhanced) .sport-popup{position:relative;left:0;top:0;transform:none;margin-top:12px;width:min(400px,75vw);max-height:none}
.sport-gallery:not(.sport-gallery-enhanced) .sport-popup-close{display:none}
.sport-category:has(.sport-gallery:not(.sport-gallery-enhanced)[open]){grid-column:1/-1;max-width:none;display:block}
.sport-gallery:not(.sport-gallery-enhanced)[open]{width:100%;margin:0}
.sport-gallery:not(.sport-gallery-enhanced)[open] .sport-popup{width:min(440px,100%);margin:12px auto}
.sport-gallery:not(.sport-gallery-enhanced)[open]>summary{margin:0 auto 12px}

/* Explicit sport lists wrap independently of the category percentage. */
.composition-with-photos .sport-category>div{min-width:0}
.composition-with-photos .sport-list{line-height:1.7;overflow-wrap:anywhere;margin-top:5px}
