/* Home geometry: shared spacing, readable labels, content-driven heights. */
body.home-overview{--home-gap:12px;--home-gutter:16px}
body.home-overview #app{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--home-gap);padding:12px var(--home-gutter) 24px;min-height:0}
body.home-overview #app>*{min-width:0;max-width:100%;margin-block:0}
body.home-overview #app>.home-media.home-media-banner,
body.home-overview #app>#culture-home.culture-home{margin:0;padding:0}
body.home-overview .media-banner-button,
body.home-overview #culture-home .culture-swipe>.culture-mini{display:flex;align-items:center;gap:12px;width:100%;height:auto;min-height:80px;padding:12px 14px;box-sizing:border-box}
body.home-overview .media-banner-copy,
body.home-overview #culture-home .culture-mini-copy{flex:1;min-width:0;gap:4px}
body.home-overview .media-banner-copy .home-media-title,
body.home-overview #culture-home .home-media-title{font-size:18px;line-height:1.25;letter-spacing:-.3px;overflow-wrap:anywhere}
body.home-overview .media-banner-caption,
body.home-overview #culture-home .media-banner-caption{display:block;font-size:13px;line-height:1.4;overflow:visible;-webkit-line-clamp:unset}
body.home-overview .media-banner-copy .home-media-kicker{display:none}
body.home-overview .media-banner-button .module-feature-icon,
body.home-overview #culture-home .culture-mini .module-feature-icon{width:32px;height:32px;flex:0 0 32px}
body.home-overview .media-banner-open{flex:0 0 24px;align-self:center;padding:0}
body.home-overview .media-banner-open>span{width:24px;height:24px}
body.home-overview #culture-home .culture-swipe{padding:0;gap:0}
body.home-overview #culture-home .culture-mini .culture-poster,
body.home-overview #culture-home .culture-mini .culture-image-fallback{width:32px;height:48px;flex:0 0 32px}
body.home-overview #app>.city-scenes{height:auto;min-height:128px}
body.home-overview .city-scene-copy{position:relative;inset:auto;min-height:128px;padding:16px 16px 28px;gap:4px;pointer-events:none}
body.home-overview .city-scene-kicker{font-size:10px;line-height:1.4;padding-right:116px}
body.home-overview .city-scene-title{font-size:clamp(22px,5.8vw,28px);line-height:1.18;max-width:32ch}
body.home-overview .city-scene-place{font-size:12px;line-height:1.4}
body.home-overview .city-scene-controls{top:0;right:4px}
body.home-overview .city-scene-controls button{width:40px;height:44px}
body.home-overview .city-scene-controls .city-scene-pause{background:transparent}
body.home-overview .city-scene-credit{font-size:10px;bottom:0;min-height:24px;display:flex;align-items:center}
body.home-overview .service-info-ticker{border-radius:8px}
body.home-overview .service-ticker-item{min-height:44px;font-size:12px;padding-inline:16px}
body.home-overview .service-ticker-more{font-size:11px}
body.home-overview .masthead .icon-button,
body.home-overview .mascot-about{min-width:44px;min-height:44px}
body.home-overview .header-actions{gap:4px}
body.home-overview .section-nav button,
body.home-overview .section-nav a{min-height:44px;display:inline-flex;align-items:center}
body.home-overview .guide-featured--home{padding:12px;border-radius:12px}
body.home-overview .guide-featured--home .guide-featured-head{gap:12px}
body.home-overview .guide-featured--home .guide-featured-head h2{font-size:18px!important;line-height:1.3}
body.home-overview .guide-featured--home .guide-featured-controls button{width:44px;height:44px;flex:none}
body.home-overview .guide-featured--home .guide-featured-card{height:auto;min-height:140px;flex:0 0 44%}
body.home-overview .guide-featured--home .guide-featured-cover{height:56px;flex:none}
body.home-overview .guide-featured--home .guide-featured-copy{padding:8px;gap:4px}
body.home-overview .guide-featured--home .guide-featured-copy h3{font-size:15px!important;line-height:1.3!important}
body.home-overview .guide-featured--home .guide-featured-category{font-size:11px!important}
body.home-overview .guide-featured--home .guide-featured-open{min-height:44px;font-size:12px;padding-block:8px;align-items:center}
body.home-overview .guide-featured--home .guide-featured-foot{font-size:12px;gap:8px;margin-top:8px}
body.home-overview .guide-featured--home .guide-featured-foot a{display:inline-flex;align-items:center;min-height:44px}
body.home-overview .footer-inner{padding-inline:var(--home-gutter)}
body.home-overview .site-footer .footer-links a,
body.home-overview .site-footer .footer-links button{min-height:44px;display:inline-flex;align-items:center;font-size:12px}
@media(min-width:681px){
 body.home-overview{--home-gap:16px;--home-gutter:24px}
 body.home-overview #app{padding-top:16px}
 body.home-overview .media-banner-button,
 body.home-overview #culture-home .culture-swipe>.culture-mini{min-height:96px;padding:16px 20px;gap:16px}
 body.home-overview .media-banner-copy .home-media-title,
 body.home-overview #culture-home .home-media-title{font-size:21px}
 body.home-overview .media-banner-caption,
 body.home-overview #culture-home .media-banner-caption{font-size:14px}
 body.home-overview .city-scene-copy{min-height:168px;padding:20px 24px 28px}
 body.home-overview #app>.city-scenes{min-height:168px}
 body.home-overview .city-scene-title{font-size:32px}
 body.home-overview .guide-featured--home{padding:16px}
 body.home-overview .guide-featured--home .guide-featured-card{flex-basis:calc((100% - 28px)/3)}
}
@media(min-width:1100px){
 body.home-overview{--home-gap:20px;--home-gutter:32px}
 body.home-overview #app{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.home-overview #app>*{grid-column:1/-1}
 body.home-overview #app>.home-media.home-media-banner,
 body.home-overview #app>#culture-home{grid-column:auto}
 body.home-overview .media-banner-button,
 body.home-overview #culture-home .culture-swipe>.culture-mini{min-height:148px;height:100%;padding:20px 16px;gap:12px}
 body.home-overview #culture-home .culture-swipe{height:100%}
 body.home-overview .media-banner-copy .home-media-title,
 body.home-overview #culture-home .home-media-title{font-size:20px}
 body.home-overview .city-scene-copy{min-height:184px;padding:24px 28px 32px}
 body.home-overview #app>.city-scenes{min-height:184px}
 body.home-overview .city-scene-title{font-size:36px}
}
@media(max-width:360px){
 body.home-overview{--home-gutter:12px;--home-gap:10px}
 body.home-overview .media-banner-button,
 body.home-overview #culture-home .culture-swipe>.culture-mini{gap:8px;padding-inline:10px}
 body.home-overview .guide-featured--home .guide-featured-card{flex-basis:64%}
 body.home-overview .city-scene-title{font-size:22px}
}

/* A stable masthead and one predictable Home destination for the brand. */
body.fixed-header-layout>header{isolation:isolate}
header .masthead{min-height:88px;padding-block:12px;gap:16px}
header .brand-home{display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;letter-spacing:normal;flex-shrink:1}
header .brand-home:hover{opacity:1}
header .brand-home .brand-mascot,
body.home-overview header .brand-home .brand-mascot{width:40px;height:40px;object-fit:contain;flex:none}
header .brand-home .brand-wordmark,
body.home-overview header .brand-home .brand-wordmark{width:140px;height:auto;aspect-ratio:218/68;object-fit:contain}
header .brand-home .brand-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
header .brand-descriptor{font-size:12px;line-height:1.3;letter-spacing:0;white-space:nowrap;color:#526c75}
header .header-actions .icon-button{min-width:44px;min-height:44px}
header .menu-toggle{display:inline-flex}
header #headerMenu{position:absolute;top:100%;left:0;right:0;width:100%;max-height:calc(100dvh - var(--chivi-header-height,120px) - 16px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 24px #12364b14;border-bottom:1px solid var(--line);border-radius:0 0 14px 14px}
header #headerMenu:not([hidden]){padding-top:16px;padding-bottom:16px;gap:16px}
header .searchbar{flex-wrap:wrap;padding-block:12px;gap:8px}
header .searchbar label{flex-basis:100%;font-size:13px}
header .searchbar input{min-width:0;min-height:44px;font-size:16px}
header .searchbar>button{width:44px;height:44px}
.skip-to-content{position:fixed;top:8px;left:16px;z-index:200;padding:12px 16px;background:#12364b;color:#fff;border-radius:8px;transform:translateY(-160%)}
.skip-to-content:focus{transform:translateY(0)}
#app:focus{outline:none}
.footer-services a[aria-current=page]{background:#e7f1ed;color:#185d50;box-shadow:inset 0 2px #287166}
body .footer-services a[aria-current=page] span{font-weight:700!important}
body.home-overview #app>.city-scenes{border-radius:12px}
body.home-overview .media-banner-button,
body.home-overview #culture-home .culture-swipe>.culture-mini{border:1px solid #dce5df;border-radius:12px;text-align:left}
body.home-overview #culture-home .culture-swipe{border-radius:12px}
body.home-overview .media-banner-open{font-size:0;gap:0}
body.home-overview .media-banner-open>span{width:26px;height:26px;font-size:20px}
body.home-overview .media-banner-caption{color:#526b72}
@media(max-width:680px){
 header .masthead,body.home-overview header .masthead{min-height:76px;padding:8px 16px;gap:8px}
 header .brand-home,body.home-overview header .brand-home{gap:8px}
 header .brand-home .brand-mascot,body.home-overview header .brand-home .brand-mascot{width:32px;height:32px}
 header .brand-home .brand-wordmark,body.home-overview header .brand-home .brand-wordmark{width:126px;height:auto}
 header .brand-descriptor{font-size:11px}
 header .location-strip .topline,body.home-overview header .location-strip .topline{padding-block:0;min-height:32px;font-size:11px}
 header .header-actions{gap:0}
 header .searchbar label{display:none}
 header .searchbar{flex-wrap:nowrap}
 #headerMenu .menu-access{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){
 header .masthead,body.home-overview header .masthead{padding-inline:12px}
 header .brand-home .brand-wordmark,body.home-overview header .brand-home .brand-wordmark{width:112px}
 header .brand-home,body.home-overview header .brand-home{gap:6px}
}
@media(prefers-reduced-motion:reduce){.skip-to-content{transition:none}}

/* Flat brand symbol follows the favicon geometry. */
header .brand-home .brand-mascot{filter:none;box-shadow:none;border-radius:0;aspect-ratio:1}

/* Home balance: consistent rhythm, full tap targets, and safe fixed controls. */
body.home-overview .media-banner-open{flex:0 0 32px}
body.home-overview .media-banner-open>span{width:32px;height:32px}
body.home-overview .media-banner-button .module-feature-icon,
body.home-overview #culture-home .culture-mini .module-feature-icon{width:32px;height:32px;flex:0 0 32px}
body.home-overview .media-banner-copy .chivi-freshness{font-size:11px;line-height:1.4;margin-top:2px}
body.home-overview .guide-featured--home .guide-featured-head{align-items:center}
body.home-overview .guide-featured--home .guide-featured-head>div:first-child{min-width:0}
body.home-overview .guide-featured--home .guide-featured-controls{flex-shrink:0;gap:4px}
body.home-overview #app>.city-scenes{min-height:132px}
body.home-overview #city-scenes .city-scene-copy{min-height:132px;height:100%;padding:12px 16px;gap:2px;justify-content:center}
body.home-overview #city-scenes .city-scene-kicker{padding-right:0;font-size:10px}
body.home-overview #city-scenes .city-scene-title{font-size:22px;line-height:1.2;height:2lh;max-width:30ch}
body.home-overview #city-scenes .city-scene-history{min-height:28px;max-width:100%}
body.home-overview #city-scenes .city-scene-history .city-scene-place{font-size:11px;line-height:1.4}
body.home-overview #city-scenes .city-scene-credit{pointer-events:none}
@media(max-width:680px){
 body.home-overview{--home-gap:12px;--home-gutter:16px;--home-nav-height:64px}
 body.home-overview header .masthead{min-height:72px;padding-block:8px}
 body.home-overview header .brand-home .brand-wordmark{width:120px}
 body.home-overview header .brand-home .brand-mascot{width:36px;height:36px}
 body.home-overview #app{padding-bottom:20px}
 body.home-overview .media-banner-button,
 body.home-overview #culture-home .culture-swipe>.culture-mini{min-height:96px;padding:14px 12px;gap:10px}
 body.home-overview .media-banner-copy .home-media-title,
 body.home-overview #culture-home .home-media-title{font-size:19px;line-height:1.25;letter-spacing:-.3px}
 body.home-overview .media-banner-caption,
 body.home-overview #culture-home .media-banner-caption{font-size:13px;line-height:1.4}
 body.home-overview .guide-featured--home{padding:14px 12px}
 body.home-overview .guide-featured--home .guide-featured-head h2{font-size:18px!important;margin:6px 0;letter-spacing:-.3px}
 body.home-overview .guide-featured--home .guide-featured-rail{gap:12px;scroll-padding-inline:0}
 body.home-overview .guide-featured--home .guide-featured-card{flex-basis:44%;min-width:0}
 body.home-overview>.footer-services{height:calc(var(--home-nav-height) + env(safe-area-inset-bottom,0px));padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));gap:0;overflow:visible}
 body.home-overview>.footer-services a{min-width:0;min-height:52px;padding:6px 2px;gap:4px;font-size:11px;line-height:1.2}
 body.home-overview>.footer-services a svg{width:22px;height:22px;flex-shrink:0}
 body.home-overview>.footer-services a span{font-size:11px;white-space:nowrap}
 body.home-overview #chivi-assistant-launcher{width:44px;height:44px;min-width:44px;bottom:calc(var(--home-nav-height) + 12px + env(safe-area-inset-bottom,0px));right:16px}
 body.home-overview .site-footer{padding-bottom:calc(var(--home-nav-height) + 68px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:360px){
 body.home-overview{--home-gutter:12px}
 body.home-overview header .brand-home .brand-wordmark{width:108px}
 body.home-overview #city-scenes .city-scene-title{font-size:20px}
 body.home-overview .media-banner-copy .home-media-title,
 body.home-overview #culture-home .home-media-title{font-size:18px}
 body.home-overview .guide-featured--home .guide-featured-card{flex-basis:52%}
}
@media(min-width:681px){
 body.home-overview #app>.city-scenes{min-height:168px}
 body.home-overview #city-scenes .city-scene-copy{min-height:168px;padding:20px 24px}
 body.home-overview #city-scenes .city-scene-title{font-size:28px}
}
@media(min-width:1100px){
 body.home-overview .media-banner-button,
 body.home-overview #culture-home .culture-swipe>.culture-mini{display:flex;align-items:center;min-height:120px;gap:12px}
 body.home-overview #culture-home .culture-swipe>.culture-mini{width:100%}
}

/* Compact on scroll, keeping the original content offset to avoid jumps. */
body.fixed-header-layout{padding-top:var(--chivi-header-flow-height,var(--chivi-header-height,190px))}
body.fixed-header-layout.header-compact>header{margin:0;padding:0}
body.header-compact>header .location-strip,body.header-compact>header .section-nav{display:none!important}
body.header-compact>header .masthead{height:56px!important;min-height:56px!important;padding-block:6px!important;gap:12px}
body.header-compact>header .brand-home{width:auto!important;height:32px!important;min-height:32px!important;gap:8px!important;padding:0}
body.header-compact>header .brand-mascot{width:28px!important;height:28px!important}
body.header-compact>header .brand-wordmark{width:83px!important;height:26px!important;max-width:none}
body.header-compact>header .brand-descriptor{display:none!important}
body.header-compact>header .header-actions{margin-left:auto;gap:4px}
