/* Public design direction: navy wayfinding, yellow actions, quiet street geometry. */
:root {
    --civic-navy-950: #082449;
    --civic-navy-800: #0b3a70;
    --civic-blue-600: #075eae;
    --civic-yellow: #ffd42a;
    --civic-ice-100: #edf5fc;
    --civic-canvas: #f7fbff;
    --civic-ink: #15395e;
    --civic-muted: #526b85;
    --civic-border: #d5e4f2;
    --civic-shadow: 0 10px 30px rgba(15, 62, 108, .07);
}
body { color: var(--civic-ink); background-color: var(--civic-canvas) !important; }
::selection { color: var(--civic-navy-950); background: #ffe78c; }
a { text-underline-offset: 4px; }
a:hover { color: #064c8b; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid #b27b00 !important; outline-offset: 4px; }
#main-content { position: relative; isolation: isolate; background: var(--civic-canvas); --civic-map-opacity: .17; }
#main-content.civic-page-home { --civic-map-opacity: .46; }
#main-content::before { position: absolute; z-index: -1; inset: 0; content: ""; pointer-events: none; background: url('../brand/maps/belgrade-streets-light.svg') center top / 100% auto repeat-y; opacity: var(--civic-map-opacity); }
#main-content::after { position: absolute; z-index: -1; inset: 0; content: ""; pointer-events: none; background-image: url('../brand/traffic-signs/school.svg?v=commons-20261022'), url('../brand/traffic-signs/parking.svg?v=commons-20261022'), url('../brand/traffic-signs/direction.svg?v=commons-20261022'); background-repeat: no-repeat; background-size: 180px auto, 145px auto, 125px auto; background-position: calc(100% + 24px) 18%, -26px 56%, 96% 90%; opacity: .12; }

/* One navigation bar: preserve its existing links and script controls. */
#header.civic-header { background: var(--civic-navy-800); }
.civic-navigation-row { min-height: 66px; gap: 18px; }
.civic-navigation-row .civic-nav { background: transparent; }
.civic-navigation-row .civic-nav > .container > ul > li > a { min-height: 66px; padding: 0 15px; color: #fff; font-family: "IBM Plex Sans", sans-serif; font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.civic-navigation-row .civic-nav > .container > ul > li > a:hover, .civic-navigation-row .civic-nav > .container > ul > li > a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .07); }
.civic-nav > .container > ul > li > a::after { left: 15px; right: 15px; bottom: 0; height: 4px; background: var(--civic-yellow); }
.civic-nav-languages a { color: #fff; font-weight: 500; }
.civic-nav-languages a[aria-current="true"] { background: var(--civic-yellow); color: var(--civic-navy-950); text-decoration: none; }
.civic-nav-languages a:hover { background: #fff; color: var(--civic-navy-800); }
.civic-nav__has-submenu > ul { border-radius: 0 0 12px 12px; border-top-color: var(--civic-yellow); }
.civic-nav__has-submenu > ul a { color: var(--civic-navy-800); font-family: "IBM Plex Sans", sans-serif; letter-spacing: 0; }
.civic-menu-toggle { background: transparent; color: white; border-color: rgba(255,255,255,.35); border-radius: 8px !important; }

/* City identity and existing traffic photograph; no invented headline or section. */
.civic-hero::before { background-position: center 52%; }
.civic-hero::after { background: linear-gradient(90deg, rgba(4,36,73,.95) 0%, rgba(5,44,84,.79) 48%, rgba(6,41,77,.17) 100%); }
.civic-hero__route { position: absolute; inset: 0; z-index: 0; background: url('../brand/maps/belgrade-streets-hero.svg') center / 100% auto; opacity: .12; pointer-events: none; -webkit-mask-image: linear-gradient(to right, transparent 40%, #000 82%); mask-image: linear-gradient(to right, transparent 40%, #000 82%); }
.civic-hero__grid { position: relative; z-index: 1; min-height: 550px; padding-top: 72px; padding-bottom: 76px; grid-template-columns: minmax(0, 910px); }
.civic-hero .civic-eyebrow { color: #e0edfa; font-size: 12px; letter-spacing: .09em; }
.civic-hero__identity { gap: 26px; align-items: center; margin-bottom: 26px; }
.civic-hero__crest { width: 104px; height: 130px; padding: 0; border-radius: 0; background: transparent; object-fit: contain; }
.civic-hero__identity h1 { max-width: 720px; font-family: "IBM Plex Sans", sans-serif; font-size: clamp(42px, 4.5vw, 64px); line-height: 1.08; font-weight: 700; letter-spacing: -.03em; }
.civic-hero__lead { max-width: 720px; color: #edf4fc; font-size: 19px; line-height: 1.6; }
.civic-hero__actions { gap: 16px; margin-top: 32px; }
.civic-button { min-height: 54px; gap: 12px; padding: 14px 22px; border-radius: 11px; font-size: 15px; letter-spacing: 0; }
.civic-button--light { color: var(--civic-navy-950); background: var(--civic-yellow); border-color: var(--civic-yellow); }
.civic-button--light:hover { color: var(--civic-navy-950); background: #ffe16a; border-color: #ffe16a; }
.civic-button--ghost { color: white; border-color: rgba(255,255,255,.8); background: rgba(5,33,67,.24); }
.civic-button--ghost:hover { color: var(--civic-navy-950); background: white; }

/* Keep the section order and editorial hierarchy, changing their visual rhythm. */
.civic-section, .civic-section:nth-of-type(even) { background: rgba(249,252,255,.7); padding: 70px 0; }
.civic-section-heading { align-items: center; gap: 32px; margin-bottom: 30px; }
.civic-section-heading h2 { position: relative; max-width: 850px; padding-bottom: 18px; font-family: "IBM Plex Sans", sans-serif; font-size: clamp(28px, 3.1vw, 42px); font-weight: 700; line-height: 1.15; letter-spacing: -.025em; }
.civic-section-heading h2::after, .civic-section--institutions h2::after { position: absolute; bottom: 0; left: 0; width: 48px; height: 4px; background: var(--civic-yellow); border-radius: 2px; content: ""; }
.civic-section-heading .civic-eyebrow { display: none; }
.civic-arrow-link { color: var(--civic-blue-600); border: 0; font-size: 15px; }
.civic-arrow-link:hover { text-decoration: underline; }
.civic-section-description { color: var(--civic-muted); }
.civic-section--alerts { background: rgba(255,255,255,.9) !important; }
.civic-alert-list { margin-top: 2rem; border-top: 1px solid var(--civic-border); }
.civic-alert-row { grid-template-columns: 80px minmax(0,1fr) 44px; gap: 24px; min-height: 136px; padding: 22px 0; border-bottom-color: var(--civic-border); }
.civic-alert-row time { align-content: center; min-height: 78px; padding: 8px 4px; color: var(--civic-navy-800); background: #fff8da; border: 1px solid #ebd47b; border-radius: 10px; }
.civic-alert-row time strong { font-family: "IBM Plex Sans", sans-serif; font-size: 32px; font-weight: 700; }
.civic-alert-row time span { margin-top: 5px; font-size: 10px; letter-spacing: .02em; }
.civic-alert-row p { color: var(--civic-blue-600); font-size: 11px; letter-spacing: .03em; }
.civic-alert-row h3 { max-width: 70ch; font-family: "IBM Plex Sans", sans-serif; font-size: clamp(18px,1.8vw,24px); line-height: 1.4; }
.civic-alert-row h3 a { color: var(--civic-navy-800); }
.civic-alert-row h3 a:hover { color: var(--civic-blue-600); text-decoration: underline; }
.civic-alert-row__arrow { background: #edf5fc; border: 0; border-radius: 50%; color: var(--civic-navy-800); }
.civic-alert-row:hover .civic-alert-row__arrow { color: var(--civic-navy-950); background: var(--civic-yellow); }

/* Newly authored, consistent service symbols. CMS grouping remains unchanged. */
.civic-section--services { background: rgba(239,247,254,.63) !important; }
.civic-service-grid--catalog { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 16px; }
.civic-service-grid--catalog .civic-service-card { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 11px; height: 188px; min-height: 188px; padding: 18px 12px 14px; background: rgba(255,255,255,.96); border: 1px solid #d0e3f5; border-radius: 12px; box-shadow: 0 6px 18px rgba(15,62,108,.045); text-align: center; }
.civic-service-card__icon { display: grid; place-items: center; background: #edf5fc; border-radius: 50%; }
.civic-service-grid--catalog .civic-service-card__icon { flex: 0 0 64px; width: 64px; height: 64px; }
.civic-service-grid--catalog .civic-service-card__icon img { display: block; width: 44px; height: 44px; max-width: 44px; max-height: 44px; object-fit: contain; filter: none; }
.civic-service-grid--catalog .civic-service-card__title { align-self: center; text-align: center; max-width: 18ch; min-height: 40px; color: var(--civic-navy-800); font-family: "IBM Plex Sans", sans-serif; font-size: 15px; line-height: 1.3; font-weight: 600; }
.civic-service-card__arrow { display: block; flex-shrink: 0; margin-top: auto; color: var(--civic-navy-800); }
.civic-service-card:hover { border-color: #88b1d7; box-shadow: 0 10px 22px rgba(15,62,108,.09); }
.civic-service-card:hover .civic-service-card__icon { background: #fff1ae; }
.civic-service-card:hover .civic-service-card__arrow { transform: translateX(3px); }
.civic-services-more { margin-top: 26px; }
.civic-services-more summary { padding: 11px 22px; border-radius: 9px; border-color: #a7c4df; background: white; }
.civic-services-more[open] summary { background: var(--civic-navy-800); color: white; }
.civic-service-grid--sidebar { gap: 10px; }
.civic-service-grid--sidebar .civic-service-card { display: flex; flex-direction: column; align-items: center; gap: 8px; min-height: 128px; padding: 12px 6px; border-radius: 10px; border-color: var(--civic-border); box-shadow: none; background: #fff; }
.civic-service-grid--sidebar .civic-service-card__icon { width: 52px; height: 52px; flex: 0 0 52px; }
.civic-service-grid--sidebar .civic-service-card__icon img { width: 36px; height: 36px; max-width: 36px; max-height: 36px; }
.civic-service-grid--sidebar .civic-service-card__title { align-self: stretch; width: 100%; text-align: center; font-size: 13px; line-height: 1.35; color: var(--civic-navy-800); }
.civic-service-grid--sidebar .civic-service-card__arrow { display: none; }
.civic-service-sidebar > h2 { color: var(--civic-navy-800); font-family: "IBM Plex Sans", sans-serif; font-size: 23px; }

.civic-map-card, .civic-story-card { border-color: #d0e3f5; border-radius: 12px; box-shadow: var(--civic-shadow); }
.civic-map-card__body { background: white; padding: 22px; }
.civic-map-card__body h3, .civic-story-card h3 { font-family: "IBM Plex Sans", sans-serif; font-size: 22px; line-height: 1.4; }
.civic-story-card h3 { padding: 22px; }
.civic-story-card img { height: 210px; }
.civic-section--institutions { background: rgba(232,243,253,.86) !important; border-top: 1px solid #d9e8f6; padding: 44px 0; }
.civic-section--institutions h2 { position: relative; padding-bottom: 16px; font-family: "IBM Plex Sans", sans-serif; font-size: 30px; font-weight: 700; }
.civic-institution-list > li { border-bottom-color: #c9deef; }
.civic-institution { font-size: 14px; color: var(--civic-navy-800); }

/* Shared inner pages: clear article surfaces, lighter borders, consistent forms. */
#page-title { background: var(--civic-navy-800) !important; }
#page-title::after { opacity: .07; background: url('../brand/maps/belgrade-streets-hero.svg') center / 100% auto; }
#page-title .container { position: relative; }
#page-title.page-title-mini h1, #page-title h1 { font-family: "IBM Plex Sans", sans-serif; font-size: clamp(26px,3vw,38px) !important; font-weight: 600; letter-spacing: -.02em; text-transform: none; }
#page-title .breadcrumb { font-family: "IBM Plex Sans", sans-serif; font-size: 13px; }
#content { background: transparent; }
#content .content-wrap { padding: 48px 0 64px; }
#content .content-wrap > .container { padding: clamp(22px,3.4vw,44px); border: 1px solid #dce9f5; border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 10px 30px rgba(15,62,108,.045); }
#content h2, #content h3, #content h4, #content h5, #content .entry-title h2, #content .entry-title h3 { color: var(--civic-navy-800); font-family: "IBM Plex Sans", sans-serif; font-weight: 600; letter-spacing: -.01em; }
#content .entry-title h2, #content .entry-title h3 { font-size: 22px !important; line-height: 1.4; }
#content .entry-content { font-size: 16px; line-height: 1.75; }
#content .entry-meta li, #content .entry-meta a { font-family: "IBM Plex Sans", sans-serif; font-style: normal; font-size: 12px; }
#content .entry-title a { color: var(--civic-navy-800); }
#content .entry-title a:hover { color: var(--civic-blue-600); }
#content .entry-sm { border: 0; border-bottom: 1px solid var(--civic-border); border-radius: 0; padding: 22px 0; box-shadow: none; }
#content .entry-sm:hover { box-shadow: none; transform: none; }
#content .sidebar-widgets-wrap { padding: 16px; border-color: #d5e5f3; border-radius: 12px; background: #f1f7fc; }
#content .entry-meta, #content .entry-meta a { color: var(--civic-muted); }
.civic-search input, .form-control { border: 1px solid #bdcfe1; border-radius: 9px; background: #fff; caret-color: var(--civic-navy-800); }
.civic-search input:focus, .form-control:focus { border-color: var(--civic-blue-600); box-shadow: 0 0 0 3px rgba(7,94,174,.1); }
.civic-search button, #content .button, #content .btn-primary, #content input[type="submit"] { min-height: 48px; border: 0; border-radius: 9px !important; box-shadow: none; background: var(--civic-navy-800); color: #fff; }
.civic-search button:hover, #content .button:hover, #content .btn-primary:hover { background: #0759a1; color: white; }
.pagination a, .pagination span { min-height: 44px; }
.page-item.active .page-link { background: var(--civic-navy-800); border-color: var(--civic-navy-800); }
#content .grad-back { background: #fff; }
#content .list-group-item { border-bottom: 1px solid var(--civic-border) !important; border-radius: 0; }
#content .list-group-item a { display: flex; align-items: center; gap: 14px; min-height: 58px; padding: 8px 0; color: var(--civic-blue-600); }
#content .icon-folder { color: #a97800; }

#footer.civic-footer { border-top: 1px solid var(--civic-yellow); background: var(--civic-navy-950); }
.civic-footer__grid { padding-top: 48px; padding-bottom: 44px; gap: 48px; }
.civic-footer__mark { display: flex; align-items: center; gap: 18px; max-width: 370px; }
.civic-footer__identity .civic-footer__mark img { flex: 0 0 64px; width: 64px; height: 80px; padding: 0; background: transparent; border-radius: 0; object-fit: contain; }
.civic-footer__mark strong { max-width: 20ch; color: #fff; font-size: 23px; line-height: 1.3; }
.civic-footer h2 { color: #fff; font-size: 14px; letter-spacing: .04em; }
.civic-footer address { font-size: 15px; line-height: 1.8; }
.civic-footer a:hover { color: var(--civic-yellow); }
.civic-footer__bottom { border-top-color: rgba(255,255,255,.18); }

@media (min-width: 992px) and (max-width: 1199px) {
    .civic-navigation-row { gap: 8px; }
    .civic-navigation-row .civic-nav > .container > ul > li > a { padding: 0 9px; font-size: 14px; }
    .civic-nav-languages a { padding: 8px 7px; font-size: 13px; }
    .civic-service-grid--catalog { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 991px) {
    .civic-navigation-row { min-height: 68px; }
    .civic-navigation-row .civic-nav > .container > ul > li > a { min-height: 48px; padding: 10px 12px; }
    .civic-nav__has-submenu > ul { background: rgba(255,255,255,.05); border-radius: 8px; }
    .civic-nav__has-submenu > ul a { color: #fff; }
    .civic-nav__has-submenu > ul a:hover { background: white; color: var(--civic-navy-800); }
    .civic-service-grid--catalog { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .civic-hero__grid { min-height: 500px; padding-top: 58px; padding-bottom: 60px; }
    .civic-hero__crest { width: 88px; height: 110px; }
    .civic-footer__grid { gap: 32px; }
}
@media (max-width: 767px) {
    #main-content::after { background-size: 120px auto, 100px auto, 90px auto; opacity: .07; }
    .civic-hero__grid { min-height: 0; padding: 48px 22px 50px; }
    .civic-hero::after { background: linear-gradient(90deg,rgba(4,36,73,.94),rgba(4,36,73,.76)); }
    .civic-hero__route { inset: 0; opacity: .06; }
    .civic-hero__identity { gap: 16px; margin-bottom: 22px; }
    .civic-hero__crest { width: 64px; height: 80px; padding: 0; border-radius: 0; }
    .civic-hero__identity h1 { font-size: clamp(27px,7vw,40px); line-height: 1.14; }
    .civic-hero .civic-eyebrow { max-width: 34ch; font-size: 10px; line-height: 1.6; }
    .civic-hero__lead { font-size: 17px; line-height: 1.6; }
    .civic-hero__actions { display: grid; gap: 12px; margin-top: 26px; }
    .civic-button { min-height: 52px; padding: 12px 14px; font-size: 14px; }
    .civic-section, .civic-section:nth-of-type(even) { padding: 44px 0; }
    .civic-section-heading { margin-bottom: 26px; }
    .civic-section-heading h2 { padding-bottom: 16px; font-size: 29px; line-height: 1.2; }
    .civic-alert-row { grid-template-columns: 58px minmax(0,1fr); gap: 16px; padding: 20px 0; }
    .civic-alert-row time { min-height: 70px; }
    .civic-alert-row time strong { font-size: 26px; }
    .civic-alert-row time span { font-size: 9px; }
    .civic-alert-row h3 { font-size: 18px; }
    .civic-alert-row p { font-size: 10px; }
    .civic-service-grid--catalog { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .civic-service-grid--catalog .civic-service-card { height: 174px; min-height: 174px; padding: 15px 8px 12px; gap: 8px; }
    .civic-service-grid--catalog .civic-service-card__title { font-size: 15px; }
    .civic-service-grid--sidebar .civic-service-card__title { font-size: 12px; }
    .civic-map-card__body { padding: 20px; gap: 16px; }
    .civic-map-card__body h3, .civic-story-card h3 { font-size: 20px; }
    .civic-section--institutions { padding: 36px 0; }
    .civic-section--institutions h2 { font-size: 26px; }
    #page-title { padding: 28px 0 !important; }
    #content .content-wrap { padding: 24px 0 36px; }
    #content .content-wrap > .container { width: calc(100% - 24px); padding: 20px 16px; border-radius: 12px; }
    #content .sidebar-widgets-wrap { padding: 12px; }
    .civic-footer__grid { padding-top: 36px; padding-bottom: 32px; }
    .civic-footer__mark strong { font-size: 21px; }
}
@media (prefers-reduced-motion: no-preference) {
    .civic-service-card__icon, .civic-service-card__arrow { transition: background-color .18s ease, transform .18s ease; }
}

.civic-map-credit { font-size: 12px; line-height: 1.6; }
.civic-map-credit a { text-decoration: underline; text-underline-offset: 3px; }
.civic-footer__bottom { flex-wrap: wrap; }
