/* Catalog layout and interactions come from cities.css and neighborhoods.css. */
#programas-resultados, #gns-program-index, #gns-programs-catalog-title { scroll-margin-top: 8rem; }
#programas-resultados:focus, #gns-program-index:focus, #gns-programs-catalog-title:focus, .gns-programs-page .gns-city-group__track:focus { outline: none; }
.gns-programs-page .gns-city-featured-hero__visual iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gns-programs-page [data-city-video-start][hidden] { display: none; }

/* Individual editions use the shared city/neighborhood presentation. */
.gns-program-destination { background: #071b38; }
.gns-programs-intro { padding-block: clamp(8.5rem, 15vw, 11rem) clamp(3rem, 6vw, 4.5rem); color: #d9e4f3; background: linear-gradient(145deg, #071b38, #0b3268); }
.gns-programs-intro h1 { max-width: 1000px; margin: 0; color: #fff; font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.08; overflow-wrap: anywhere; }
.gns-program-card__places { display: flex; flex-wrap: wrap; gap: .25rem 1rem; padding-top: .5rem; border-top: 1px solid #e2e8ef; }
.gns-program-card__places a { display: inline-flex; min-height: 44px; align-items: center; color: #325176; font-size: .8rem; overflow-wrap: anywhere; }
.gns-program-destination a:focus-visible { outline: 3px solid #4cb7c5; outline-offset: 4px; }
.gns-programs-back { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: 1rem; color: #d9e4f3; }
.gns-program-destination__body { padding-block: 3rem; }
.gns-program-destination__videos { display: grid; max-width: 920px; gap: 2rem; margin-top: 2rem; }
.gns-city-player[id] { scroll-margin-top: 8rem; }
/* Edition targeting remains functional; city/bairro cards do not keep a selection frame. */
.gns-program-destination .gns-city-player[data-program-selected], .gns-program-destination .gns-city-player[id]:focus { outline: none; }
.gns-city-refined .gns-city-player[id]:focus { outline: none; }
.gns-program-selection-notice { padding: 1rem; margin: 1rem 0; border-left: 3px solid #4cb7c5; background: #eaf4f7; color: #163957; }
.gns-program-selected-label { margin: 0 0 .6rem; color: #276b55; font-size: .8rem; font-weight: 700; }
.gns-program-video-help { margin: .8rem 0 0; color: var(--gns-muted); font-size: .8rem; }

/* Long program names retain the shared typeface without overwhelming the video. */
.gns-programs-page .gns-city-featured-hero h2.gns-program-title--long{font-size:clamp(2rem,4vw,3.25rem);line-height:1.08;overflow-wrap:anywhere;text-wrap:balance}
.gns-program-destination .gns-city-v2-hero h1.gns-program-title--long{font-size:clamp(2rem,4vw,3.25rem);line-height:1.08;text-wrap:balance}
.gns-program-locations{display:flex;flex-wrap:wrap;gap:0 8px}
@media(max-width:767px){.gns-programs-page .gns-city-featured-hero h2.gns-program-title--long{font-size:clamp(1.75rem,7vw,2.5rem)}}
