/* Fill the complete preview area, independent of the original photo ratio. */
.card > .zoom-wrap { width:100%; min-width:0; }
.card > .zoom-wrap > .blurup { width:100%; height:100%; aspect-ratio:auto!important; }
.card > .zoom-wrap picture,.card > .zoom-wrap img { display:block; width:100%; height:100%; }
.card > .zoom-wrap img { object-fit:cover; object-position:center; }
.asilo-card-media { width:100%; height:100%; margin:0; background:var(--color-cream); }
.asilo-card-media img { object-fit:contain!important; }
.asilo-poster { margin:0; overflow:hidden; border-radius:24px; background:var(--color-cream); }
.asilo-poster img { display:block; width:100%; max-height:650px; object-fit:contain; }
.sport-stories { display:grid; gap:28px; margin-top:32px; }
.sport-story { overflow:hidden; border-radius:24px; background:white; box-shadow:var(--shadow-soft); }
.sport-story > summary { list-style:none; cursor:pointer; position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:28px; padding:24px; }
.sport-story > summary::-webkit-details-marker { display:none; }
.sport-story summary picture { display:block; width:100%; height:360px; border-radius:18px; overflow:hidden; background:var(--color-cream); }
.sport-story summary img { width:100%; height:100%; object-fit:contain; transition:transform .45s ease; }
.sport-story summary:hover img { transform:scale(1.025); }
.sport-caption { display:flex; flex-direction:column; gap:14px; color:var(--color-teal-dark); }
.sport-caption strong { font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.15; }
.sport-action { display:flex; align-items:center; gap:16px; font-weight:700; }
.sport-action b { display:grid; place-items:center; border-radius:50%; width:44px; height:44px; background:var(--color-yellow); transition:transform .3s; font-size:25px; }
.sport-story[open] .sport-action b { transform:rotate(45deg); }
.sport-description { padding:0 28px 28px; color:var(--color-ink-muted); animation:sport-appear .4s ease both; }
.sport-description p+p { margin-top:16px; }
.sport-description h3 { font-size:1.3rem; color:var(--color-teal-dark); margin:24px 0 12px; }
.sport-description ul { display:grid; gap:10px; padding-left:20px; list-style:disc; }
@media(min-width:900px){
 .sport-story[open] { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
 .sport-story[open] summary { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; }
 .sport-story[open] .sport-description { padding:28px; }
}
@keyframes sport-appear { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
.media-rail { display:flex; gap:16px; overflow-x:auto; max-width:100%; min-width:0; padding:20px 0 14px; scroll-snap-type:x mandatory; scrollbar-color:var(--color-teal) var(--color-teal-soft); }
.media-rail figure { flex:0 0 78%; margin:0; height:290px; border-radius:18px; overflow:hidden; scroll-snap-align:start; background:var(--color-cream); }
.media-rail picture,.media-rail img { display:block; width:100%; height:100%; object-fit:contain; }
/* Avoid min-content grid expansion when an image rail is inside a column. */
.container-page > div:has(> .media-rail),.sport-description { min-width:0; }
.gallery-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:32px; }
.gallery-filters button { min-height:44px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.gallery-tile { position:relative; display:block; width:100%; aspect-ratio:1; overflow:hidden; border-radius:18px; background:var(--color-teal-soft); box-shadow:var(--shadow-soft); cursor:pointer; }
.gallery-tile[hidden] { display:none!important; }
.gallery-tile img { width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s ease; }
.gallery-tile span { position:absolute; inset:auto 0 0; background:linear-gradient(transparent,rgba(14,62,78,.9)); color:white; font-weight:600; font-size:13px; text-align:left; padding:36px 14px 14px; }
.gallery-tile:hover img { transform:scale(1.05); }
#lightbox #lb-img { max-width:80vw; width:auto; height:auto; }
@media(max-width:899px){ .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media(max-width:639px){
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .gallery-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:4px 2px 14px;scrollbar-color:var(--color-teal) var(--color-teal-soft)}
 .gallery-filters button{flex:0 0 auto;white-space:nowrap}
 .sport-story > summary{grid-template-columns:1fr;padding:18px;gap:18px}
 .sport-story summary picture{height:340px}
 .sport-description{padding:0 20px 24px}
 .media-rail figure{height:250px;flex-basis:88%}
}
@media(prefers-reduced-motion:reduce){.sport-description{animation:none}.sport-story summary img,.sport-action b,.gallery-tile img{transition:none}}

.sport-section-title{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.15;color:var(--color-teal-dark);font-family:var(--font-display);font-weight:800}
