.fo-gallery { max-width: 1400px; }
.fo-gallery .page-header { min-height:100px; height:auto; margin-bottom:45px; }
.fo-gallery .fo-back { font-size:14px; margin:0 0 12px; }
.fo-row { margin:0 0 60px; }
.fo-row-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.fo-row h2 { font-size:26px; font-weight:400; margin:0; }
.fo-count { font-size:13px; color:#666; margin:7px 0 0; }
.fo-controls { display:flex; gap:8px; }
.fo-controls[hidden] { display:none; }
.fo-controls button { background:transparent; color:inherit; border:1px solid #bbb; border-radius:50%; padding:0; width:42px; height:42px; font-size:22px; line-height:1; cursor:pointer; }
.fo-controls button:disabled { opacity:.25; cursor:default; }
.fo-track { display:flex; gap:24px; overflow-x:auto; padding:2px 2px 16px; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#999 transparent; scroll-snap-type:x proximity; cursor:grab; }
.fo-track.fo-dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
.fo-track .fo-card { flex:0 0 auto; width:max-content; max-width:75vw; text-decoration:none; color:inherit; scroll-snap-align:start; }
.fo-track .fo-card img { display:block; height:clamp(230px,38vw,430px); width:auto; max-width:75vw; object-fit:contain; object-position:left center; margin:0; }
.fo-caption { display:block; font-size:14px; line-height:1.5; margin-top:12px; max-width:300px; }
.fo-track a:focus-visible,.fo-track:focus-visible,.fo-controls button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
@media(max-width:600px) { .fo-track { gap:16px; } .fo-row { margin-bottom:40px; } .fo-row h2 { font-size:22px; } }
