/* Public-site palette. Status and data-visualization colours keep their meaning. */
:root{--cm-pink:#1d4ed8;--cm-pink-dark:#17335b;--cm-ink:#17335b;--cm-muted:#536174;--cm-line:#e2e8f0;--brand-pink:#1d4ed8;--brand-navy:#17335b;--brand-surface:#f5f7fa}
body{color:var(--brand-navy);background:#fff}
.cm-livebar{background:var(--brand-navy)}
.cm-brand__text small,.cm-mega a:hover,.cm-nav__link:hover,.cm-nav__link[aria-expanded=true]{color:var(--cm-pink-dark)}
.cm-nav__link,.cm-brand__text strong{color:var(--brand-navy)}
.cm-section-titlebar h2,.cm-egp-heading h2,h1.text-gray-900,h2.text-gray-900,h3.text-gray-900,h1.text-slate-900,h2.text-slate-900,h3.text-slate-900{color:var(--brand-navy)}
.text-blue-600,.text-blue-700,.text-rose-600{color:var(--cm-pink-dark)!important}
.bg-blue-600,.bg-rose-600{background-color:var(--brand-pink)!important}
.bg-gray-50,.bg-slate-50{background-color:var(--brand-surface)}
.cm-egp-kicker,.cm-section-kicker{color:var(--cm-pink-dark)}
#soft-power.soft-power-section{background:linear-gradient(135deg,#fff 0%,#f5f7fa 65%,#f1f5fe 100%)!important;border-color:#e2e8f0!important}
#soft-power .soft-power-kicker{color:var(--cm-pink-dark)!important;background:#f1f5fe!important;border-color:#bbcbf6!important}
#soft-power .soft-power-map-button{background:var(--brand-pink)!important;border-color:var(--brand-pink)!important;color:#fff!important}
#soft-power .soft-power-map-button:hover{background:var(--cm-pink-dark)!important;border-color:var(--cm-pink-dark)!important}
footer#contact{background:#f5f7fa!important;border-top-color:var(--brand-pink)!important;color:var(--brand-navy)}
footer#contact>div.absolute{display:none}
footer#contact h3,footer#contact h4{color:var(--brand-navy)!important}
footer#contact a:hover{color:var(--cm-pink-dark)}
.cm-font-controls button[aria-pressed="true"]{background:var(--brand-pink);border-color:var(--brand-pink)}

#siteScrollTop{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:106px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:2px solid white;background:#17335b;color:white;font-size:1.75rem;line-height:1;box-shadow:0 4px 14px #17335b33;z-index:9000;cursor:pointer}
#siteScrollTop[hidden]{display:none}#siteScrollTop:hover{background:#1d4ed8}#siteScrollTop:focus-visible{outline:3px solid #1d4ed8;outline-offset:3px}

footer#contact a[aria-label="Facebook"]{background:#1877f2!important;border-color:#1877f2!important;color:white!important}
footer#contact a[aria-label="YouTube"]{background:#ff0000!important;border-color:#ff0000!important;color:white!important}
footer#contact a[aria-label="Line"]{background:#06c755!important;border-color:#06c755!important;color:white!important}
footer#contact a[aria-label="TikTok"]{background:#111!important;border-color:#111!important;color:white!important}
footer#contact a[aria-label="TikTok"] i{text-shadow:1px 1px #3b6bef,-1px -1px #25f4ee}
footer#contact a[aria-label] i{color:inherit!important}footer#contact a[aria-label]:hover{filter:brightness(.9)}
footer#contact a[aria-label]{width:44px;height:44px}

#smart-env .iot-card__icon{width:56px;height:56px;min-width:56px;font-size:1.6rem}
#smart-env .iot-card__title{font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
#smart-env .iot-card__value,#smart-env .iot-card__metric{font-weight:400!important}
#smart-env .iot-card__header{gap:12px;align-items:center}
#smart-env .iot-card__heading-copy{min-width:0}



.cm-livebar [data-language-toggle],.cm-livebar [data-language-toggle]:hover,.cm-livebar [data-language-toggle][aria-expanded="true"]{color:#fff!important;background:#ffffff18;border:1px solid #ffffff55}
.cm-livebar [data-language-toggle] i,.cm-livebar [data-language-toggle] span{color:#fff!important}
.cm-language-menu .cm-language-option{color:#17335b!important}.cm-language-menu .cm-language-option.is-current{color:#17335b!important;background:#f1f5fe}
#city-economy .cm-section-titlebar{gap:20px;align-items:flex-start}#city-economy .cm-section-titlebar h2{font-size:clamp(1.4rem,2.4vw,2rem)}

#siteScrollTop,#chatFloatingBtn{width:56px!important;height:56px!important;min-width:56px;border:2px solid #fff!important;box-shadow:0 6px 18px #17335b2b!important}
#siteScrollTop{right:max(24px,env(safe-area-inset-right))!important;font-size:1.65rem}
#chatFloatingBtn{transform:none!important;background:#1d4ed8!important}
.site-floating-chat{right:max(24px,env(safe-area-inset-right))!important;bottom:calc(var(--site-floating-bottom,24px) + env(safe-area-inset-bottom))!important}
.site-floating-chat #liveChatWidget{width:min(360px,calc(100vw - 48px));max-height:calc(100dvh - var(--site-floating-bottom,24px) - 96px);overflow-y:auto;bottom:68px}
#btn-open-satisfaction{background:#1d4ed8!important;border-color:#1d4ed8!important;color:#fff!important;font-size:1.2rem;font-weight:600;min-height:52px;line-height:1.5}
#btn-open-satisfaction i,#btn-open-satisfaction svg,#btn-open-satisfaction span{color:#fff!important;stroke:currentColor}
#btn-open-satisfaction:hover,#btn-open-satisfaction:focus-visible{background:#17335b!important;border-color:#17335b!important;color:#fff!important}
#btn-open-satisfaction:focus-visible{outline:3px solid #1d4ed8;outline-offset:3px}

footer#contact a[aria-label="Instagram"]{background:linear-gradient(135deg,#833ab4,#305fe1,#f77737)!important;color:white!important;border:0}
footer#contact a[aria-disabled="true"]{cursor:default}
#city-vote .city-vote-heading-copy{max-width:none;flex:1;min-width:0}
#city-vote .city-vote-propose{flex-shrink:0}
#city-vote .city-vote-keep-word{white-space:nowrap}

footer#contact .footer-agency-logo{width:72px;height:72px;flex:0 0 72px;background:transparent;box-shadow:none!important;filter:none!important;border:0;padding:0}
footer#contact .footer-agency-logo img{box-shadow:none!important;filter:none!important}
@media(max-width:767px){footer#contact .footer-agency-logo{width:64px;height:64px;flex-basis:64px}}

footer#contact .footer-social-row{display:flex;flex-wrap:nowrap;align-items:center;gap:6px}
footer#contact .footer-social-row a{width:44px;height:44px;flex:0 0 44px}
footer#contact .footer-social-row i{font-size:32px!important;line-height:1}
@media(min-width:768px) and (max-width:1279px){footer#contact .footer-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1280px){footer#contact .footer-content-grid{grid-template-columns:repeat(3,minmax(0,1fr)) 244px}}

footer#contact .footer-agency-name{white-space:nowrap;line-height:1.35}
@media(min-width:1280px){footer#contact .footer-content-grid{grid-template-columns:310px minmax(0,1fr) minmax(0,1fr) 244px;column-gap:24px}}
@media(max-width:767px){footer#contact .footer-agency-name{font-size:18px}}

#smart-env .iot-card{display:grid;grid-template-rows:minmax(5.5rem,auto) 1fr;row-gap:16px;align-content:start}
#smart-env .iot-card__header{min-height:5.5rem;margin-bottom:0;align-self:start}
#smart-env .iot-card__body{align-self:start}

/* Homepage section rhythm: scope to content wrappers, never cards or dialogs. */
#homeSection>section,#homeSection>#executiveSection,#homeSection>#home-ebook-section,#homeSection>#stats-satisfaction,#homeSection>#systemsSection,#homeSection>.gis-wrapper{padding-block:40px!important}
#homeSection>div.py-8{padding-block:20px!important}
#homeSection>section>div[class*="max-w-"],#homeSection>div:not(#heroSliderContainer)>div[class*="max-w-"],#homeSection .city-vote-shell,#homeSection .iot-dashboard-shell{max-width:1160px}
#homeSection .cm-content-shell{max-width:1096px}
#homeSection>section>div>.mb-12,#homeSection>section>div>.mb-10,#homeSection>section>div>.mb-8,#homeSection>div:not(#heroSliderContainer)>div>.mb-12,#homeSection>div:not(#heroSliderContainer)>div>.mb-10,#homeSection>div:not(#heroSliderContainer)>div>.mb-8{margin-bottom:28px!important}
#homeSection .city-vote-heading,#homeSection .iot-dashboard-heading,#homeSection .cm-section-titlebar,#homeSection .cm-egp-heading{margin-bottom:28px!important}
#homeSection .popular-service-grid{gap:16px}
@media(max-width:767px){
 #homeSection>section,#homeSection>#executiveSection,#homeSection>#home-ebook-section,#homeSection>#stats-satisfaction,#homeSection>#systemsSection,#homeSection>.gis-wrapper{padding-block:28px!important}
 #homeSection>div.py-8{padding-block:16px!important}
 #homeSection>section>div>.mb-12,#homeSection>section>div>.mb-10,#homeSection>section>div>.mb-8,#homeSection>div:not(#heroSliderContainer)>div>.mb-12,#homeSection>div:not(#heroSliderContainer)>div>.mb-10,#homeSection>div:not(#heroSliderContainer)>div>.mb-8,#homeSection .city-vote-heading,#homeSection .iot-dashboard-heading,#homeSection .cm-section-titlebar,#homeSection .cm-egp-heading{margin-bottom:20px!important}
 #homeSection .popular-service-grid{gap:12px}
}

/* Allow long agency names to wrap within the footer column. */
footer#contact .footer-content-grid>div{min-width:0}footer#contact .footer-agency-name{white-space:normal!important;overflow-wrap:anywhere;line-height:1.45;font-size:18px}footer#contact .footer-agency-logo{flex-shrink:0;width:64px;height:64px}footer#contact .footer-content-grid>div:first-child>div>div:last-child{min-width:0}
@media(min-width:1280px){footer#contact .footer-content-grid{grid-template-columns:1.3fr 1fr 1.15fr 1fr;gap:28px}}
