/* Shared directory shell controls both banner and content width. */
html.visitor-city .city-main.directory-page-shell{padding-top:36px;padding-bottom:64px}
html.visitor-city::-webkit-scrollbar{width:8px}
html.visitor-city::-webkit-scrollbar-thumb{background:#b8c4d2;border-radius:4px}
.place-media{position:relative;min-width:0}
#cityGallery .card-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:grid;place-items:center;width:36px;height:44px;padding:0;border:1px solid #ffffff80;border-radius:3px;background:#132943b8;color:#fff!important;font:30px/1 sans-serif;cursor:pointer}
#cityGallery .card-photo-arrow:hover{background:#153457}
#cityGallery .card-photo-arrow.previous{left:5px}#cityGallery .card-photo-arrow.next{right:5px}
.card-photo-count{position:absolute;bottom:7px;left:7px;padding:2px 6px;background:#10233dc9;color:#fff!important;font-size:10px;pointer-events:none}
#cityGallery .photo-hint{bottom:7px;right:7px}
html.visitor-city .ru-line-art--city .city-river{animation:city-river-drift 5s ease-in-out infinite!important}
html.visitor-city .ru-line-art--city .city-sun{transform-origin:279px 66px;animation:city-sun-glow 4s ease-in-out infinite!important}
@keyframes city-river-drift{50%{transform:translateX(9px)}}
@keyframes city-sun-glow{50%{opacity:.45;transform:scale(.88)}}
@media(prefers-reduced-motion:reduce){html.visitor-city .ru-line-art--city .city-river,html.visitor-city .ru-line-art--city .city-sun{animation:none!important}}

/* SVG chevrons stay geometrically centered inside the square controls. */
#cityGallery .card-photo-arrow{width:42px;height:44px;border-radius:0}
#cityGallery .card-photo-arrow svg,#photoDialog .photo-arrow svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
html.visitor-city .ru-line-art--city .city-river-flow{animation:city-river-current 4.6s linear infinite!important}
html.visitor-city .ru-line-art--city .city-river-flow path{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}
html.visitor-city .ru-line-art--city .city-daylight{animation:city-day-cycle 18s ease-in-out infinite!important}
html.visitor-city .ru-line-art--city .city-moonlight{animation:city-night-cycle 18s ease-in-out infinite!important}
html.visitor-city .ru-line-art--city .city-sun-rays{transform-origin:279px 66px;animation:city-rays-turn 18s linear infinite!important}
html.visitor-city .ru-line-art--city .city-sun-disc,html.visitor-city .ru-line-art--city .city-sun-rays path{stroke-dasharray:none!important;stroke-dashoffset:0!important;filter:drop-shadow(0 0 7px #fff9) drop-shadow(0 0 14px #fff5);animation:city-light-shimmer 3s ease-in-out infinite!important}
html.visitor-city .ru-line-art--city .city-sun-rays path{stroke-width:1.5}
html.visitor-city .ru-line-art--city .city-sun-rays path:nth-child(even){animation-delay:-1.3s!important}
html.visitor-city .ru-line-art--city .city-moonlight path{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important;filter:drop-shadow(0 0 6px #fff8)}
@keyframes city-river-current{to{transform:translateX(114px)}}
@keyframes city-day-cycle{0%,38%{opacity:1}48%,87%{opacity:0}98%,100%{opacity:1}}
@keyframes city-night-cycle{0%,38%{opacity:0}52%,84%{opacity:1}98%,100%{opacity:0}}
@keyframes city-rays-turn{to{transform:rotate(26deg)}}
@keyframes city-light-shimmer{50%{opacity:.55;filter:drop-shadow(0 0 11px #fff) drop-shadow(0 0 18px #fff9)}}
@media(prefers-reduced-motion:reduce){html.visitor-city .ru-line-art--city .city-daylight{animation:none!important;opacity:1}html.visitor-city .ru-line-art--city .city-moonlight{animation:none!important;opacity:0}html.visitor-city .ru-line-art--city .city-river-flow,html.visitor-city .ru-line-art--city .city-sun-rays,html.visitor-city .ru-line-art--city .city-sun-disc,html.visitor-city .ru-line-art--city .city-sun-rays path{animation:none!important}}

html.visitor-city::-webkit-scrollbar{width:15px}
html.visitor-city .directory-hero__heading-row{align-items:flex-start!important}
html.visitor-city .directory-hero__heading-row>.directory-hero__back{margin-top:16px!important;border-radius:2px!important}
@media(max-width:700px){html.visitor-city .directory-hero__heading-row>.directory-hero__back{margin-top:7px!important}}

/* Keep city discovery on the same canvas and banner grid as the primary routes. */
html.visitor-city .city-main.directory-page-shell{box-sizing:border-box;max-width:1432px!important;padding:56px 48px 64px!important}
html.visitor-city .directory-hero{box-sizing:border-box;height:350px!important;min-height:350px!important;max-height:350px!important;margin-bottom:42px!important;padding:48px clamp(30px,5vw,75px)!important}
html.visitor-city .directory-hero__content{padding:0!important}
@media(max-width:700px){
 html.visitor-city .city-main.directory-page-shell{padding:18px 18px 56px!important}
 html.visitor-city .directory-hero{height:auto!important;min-height:315px!important;max-height:none!important;padding:40px 23px!important}
}
