/*
Theme Name: ЭКЖИЛФОНД 2026
Theme URI: https://oby48.ru/
Author: ОБУ «ЭКЖИЛФОНД»
Description: Современная адаптивная тема официального сайта ОБУ «ЭКЖИЛФОНД».
Version: 1.9.3
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 7.4
Text Domain: ekzhilfond-2026
*/

:root {
  --ezhf-blue: #145da0;
  --ezhf-blue-dark: #0b3f73;
  --ezhf-blue-soft: #eaf4ff;
  --ezhf-green: #2e8b62;
  --ezhf-green-soft: #eaf7f0;
  --ezhf-amber: #d99316;
  --ezhf-amber-soft: #fff7e5;
  --ezhf-ink: #172033;
  --ezhf-muted: #5b6678;
  --ezhf-line: #dce4ee;
  --ezhf-surface: #ffffff;
  --ezhf-bg: #f4f7fb;
  --ezhf-radius: 18px;
  --ezhf-shadow: 0 12px 34px rgba(23, 62, 98, 0.09);
  --ezhf-container: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ezhf-ink);
  background: var(--ezhf-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  text-rendering: optimizeLegibility;
}
img, video, iframe, embed, object { max-width: 100%; }
img { height: auto; }
figure { max-width: 100%; margin-inline: 0; }
a { color: var(--ezhf-blue); text-underline-offset: 0.18em; }
a:hover { color: var(--ezhf-blue-dark); }
button, input, textarea, select { max-width: 100%; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.screen-reader-text:focus, .skip-link:focus {
  z-index: 100000;
  top: 8px; left: 8px;
  width: auto; height: auto;
  clip: auto;
  padding: 12px 16px;
  background: #fff;
  color: #111;
  border-radius: 8px;
  box-shadow: var(--ezhf-shadow);
}
.skip-link { position: absolute; left: -9999px; }
:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; }

.site-container { width: min(calc(100% - 36px), var(--ezhf-container)); margin-inline: auto; }
.site-main { min-height: 55vh; }

.a11y-toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; border: 0; padding: 2px 3px; color: #d8e8f6; background: transparent; cursor: pointer; border-radius: 7px; font-size: 13px; font-weight: 500; }
.a11y-toggle__icon { display: inline-grid; place-items: center; width: 25px; height: 25px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: -.04em; }
.a11y-toggle:hover { color: #fff; }
.a11y-toggle:hover .a11y-toggle__icon { border-color: #fff; background: rgba(255,255,255,.1); }

.site-header { background: linear-gradient(135deg, #061a33 0%, #0b3f73 60%, #145da0 100%); border-bottom: 1px solid rgba(255,255,255,.18); }
.site-branding { display: flex; align-items: center; gap: 22px; min-height: 132px; }
.site-branding__text { min-width: 0; }
.site-header__actions { display: flex; flex: 0 0 min(330px, 31vw); flex-direction: column; align-items: flex-end; gap: 6px; width: min(330px, 31vw); margin-left: auto; }
.header-search { position: relative; display: flex; width: 100%; padding: 3px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; background: rgba(255,255,255,.97); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.header-search__toggle { display: none; place-items: center; border: 0; cursor: pointer; }
.header-search__toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }
.header-search__field { min-width: 0; min-height: 38px; flex: 1 1 auto; padding: 7px 13px; border: 0; outline: 0; border-radius: 999px; color: var(--ezhf-ink); background: transparent; }
.header-search__field::placeholder { color: #69788a; }
.header-search__field:focus { box-shadow: inset 0 0 0 2px var(--ezhf-blue); }
.header-search__submit { min-height: 38px; flex: 0 0 auto; padding: 7px 16px; border: 0; border-radius: 999px; color: #fff; background: var(--ezhf-blue); cursor: pointer; font-size: 14px; font-weight: 600; white-space: nowrap; }
.header-search__submit:hover { background: var(--ezhf-blue-dark); }
.header-search__suggestions { position: absolute; z-index: 80; top: calc(100% + 7px); right: 0; left: 0; max-height: 330px; margin: 0; padding: 6px; overflow-y: auto; list-style: none; border: 1px solid var(--ezhf-line); border-radius: 13px; background: #fff; box-shadow: var(--ezhf-shadow); text-align: left; }
.header-search__suggestions[hidden] { display: none; }
.header-search__suggestions li { margin: 0; padding: 0; }
.header-search__suggestions a { display: block; padding: 9px 10px; border-radius: 8px; color: var(--ezhf-ink); font-size: 14px; font-weight: 500; line-height: 1.35; text-decoration: none; }
.header-search__suggestions a:hover, .header-search__suggestions a.is-active { color: var(--ezhf-blue-dark); background: var(--ezhf-blue-soft); }
.header-search__empty { padding: 10px; color: var(--ezhf-muted); font-size: 14px; }
.custom-logo-link { display: flex; flex: 0 0 auto; }
.custom-logo { display: block; max-height: 92px; width: auto; }
.brand-mark {
  display: grid; place-items: center;
  width: 76px; height: 76px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--ezhf-blue), #287fd0);
  color: #fff; font-weight: 800; font-size: 22px; letter-spacing: .04em;
  text-decoration: none;
}
.site-title { margin: 0; color: #fff; font-size: clamp(29px, 3.2vw, 44px); font-weight: 800; letter-spacing: .012em; line-height: 1.08; overflow-wrap: anywhere; text-shadow: 0 2px 12px rgba(0,0,0,.2); }
.site-title a { color: inherit; text-decoration: none; }
.site-description { margin: 5px 0 0; color: #d8e8f6; font-size: 15px; }

.primary-nav-slot { position: relative; }
.primary-nav { width: 100%; background: var(--ezhf-blue); border-top: 1px solid rgba(255,255,255,.15); transition: box-shadow .2s ease, background-color .2s ease; }
.primary-nav.is-sticky { position: fixed; z-index: 1000; top: 0; right: 0; left: 0; background: rgba(20,93,160,.98); box-shadow: 0 8px 24px rgba(4,35,65,.18); backdrop-filter: blur(8px); }
.admin-bar .primary-nav.is-sticky { top: 32px; }
.primary-nav__inner { position: relative; display: flex; align-items: center; }
.menu-toggle { display: none; align-items: center; width: 100%; min-height: 48px; padding: 8px 0; border: 0; color: #fff; background: transparent; font-weight: 600; text-align: left; cursor: pointer; }
.menu-toggle__icon { display: inline-block; margin-right: 9px; }
.primary-menu, .primary-menu ul { margin: 0; padding: 0; list-style: none; }
.primary-menu { display: flex; align-items: center; gap: 4px; padding: 6px 0; }
.primary-nav.is-sticky .primary-menu { padding-block: 2px; }
.primary-menu > li { position: relative; }
.menu-parent { display: flex; align-items: stretch; }
.primary-menu a { display: flex; align-items: center; min-height: 42px; padding: 0 12px; color: #fff; font-size: 14px; font-weight: 500; text-decoration: none; }
.primary-nav.is-sticky .primary-menu > li > .menu-parent > a { min-height: 38px; }
.primary-menu > li > .menu-parent > a { border-radius: 9px; }
.primary-menu > li > .menu-parent > a::after { content: ""; width: 6px; height: 6px; margin: -3px 0 0 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .65; transform: rotate(45deg); }
.primary-menu > li > .menu-parent > a:hover, .primary-menu > li.current-menu-item > .menu-parent > a, .primary-menu > li.current-menu-ancestor > .menu-parent > a { background: rgba(5,43,79,.38); }
.submenu-toggle { display: none; }
.primary-menu .sub-menu {
	position: absolute; z-index: 50; top: 100%; left: 0;
  min-width: 290px; padding: 8px;
	background: #fff; border: 1px solid var(--ezhf-line); border-radius: 14px;
  box-shadow: var(--ezhf-shadow);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.primary-menu .mega-menu { align-items: start; gap: 8px 22px; padding: 20px; }
.primary-menu .mega-menu--2 { min-width: 640px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.primary-menu .mega-menu--3 { min-width: 840px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mega-menu__group { min-width: 0; }
.mega-menu__heading { display: block; margin: 0 8px 7px; color: var(--ezhf-blue); font-size: 12px; font-weight: 800; letter-spacing: .055em; line-height: 1.3; text-transform: uppercase; }
.primary-menu .mega-menu__links { display: block; }
.primary-menu .sub-menu a { min-height: 42px; padding: 9px 12px; color: var(--ezhf-ink); border-radius: 8px; font-size: 14px; font-weight: 500; line-height: 1.35; }
.primary-menu .sub-menu a:hover { background: var(--ezhf-blue-soft); color: var(--ezhf-blue-dark); }
.primary-menu .sub-menu .current-menu-item > a { color: var(--ezhf-blue-dark); background: var(--ezhf-blue-soft); font-weight: 700; }
.primary-menu > li:nth-last-child(-n+2) > .sub-menu { right: 0; left: auto; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display: block; opacity: 1; visibility: visible; transform: none; }
.primary-menu li:hover > .mega-menu, .primary-menu li:focus-within > .mega-menu { display: grid; }

.breadcrumbs { padding: 18px 0 0; color: var(--ezhf-muted); font-size: 14px; line-height: 1.45; }
.breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs__item { display: inline-flex; align-items: center; min-width: 0; }
.breadcrumbs__item + .breadcrumbs__item::before { margin-right: 8px; color: #94a3b5; content: "→"; }
.breadcrumbs a { color: var(--ezhf-blue-dark); font-weight: 600; text-decoration: none; text-underline-offset: 3px; }
.breadcrumbs a:hover, .breadcrumbs a:focus-visible { color: var(--ezhf-blue); text-decoration: underline; }
.breadcrumbs__current { color: var(--ezhf-muted); overflow-wrap: anywhere; }

.content-shell { padding: 32px 0 64px; }
.content-card { padding: clamp(24px, 4vw, 48px); background: #fff; border: 1px solid var(--ezhf-line); border-radius: 22px; box-shadow: 0 8px 24px rgba(23,62,98,.05); }
.entry-header { margin-bottom: 28px; }
.entry-title { margin: 0; color: var(--ezhf-blue-dark); font-size: clamp(32px, 5vw, 50px); line-height: 1.15; overflow-wrap: anywhere; }
.entry-meta { margin-top: 10px; color: var(--ezhf-muted); font-size: 14px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { margin: 1.8em 0 .55em; color: var(--ezhf-blue-dark); font-size: clamp(25px, 3vw, 33px); line-height: 1.2; }
.entry-content h3 { margin: 1.5em 0 .45em; color: var(--ezhf-blue-dark); font-size: 22px; }
.entry-content > ul, .entry-content > ol { padding-left: 1.35em; }
.entry-content pre { max-width: 100%; padding: 16px; overflow-x: auto; border-radius: 10px; background: #f0f4f8; }
.entry-content iframe, .entry-content video { width: 100%; }
.entry-content .wp-block-columns { gap: clamp(16px, 3vw, 28px); }
.entry-content .wp-block-image, .entry-content .wp-block-embed, .entry-content .wp-block-table { max-width: 100%; margin-inline: 0; }
.entry-content .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.entry-content table { width: 100%; margin: 24px 0; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 12px 14px; border: 1px solid var(--ezhf-line); text-align: left; vertical-align: top; }
.entry-content th { background: var(--ezhf-blue-soft); color: var(--ezhf-blue-dark); }
.entry-content blockquote { margin: 24px 0; padding: 18px 22px; border-left: 4px solid var(--ezhf-blue); background: var(--ezhf-blue-soft); }
.entry-content a[href$=".pdf"], .entry-content a[href$=".doc"], .entry-content a[href$=".docx"], .entry-content a[href$=".xlsx"] { font-weight: 700; }
.service-route-intro { margin-bottom: 34px; padding: 26px 28px; border: 1px solid #cfe1f2; border-radius: 18px; background: linear-gradient(135deg,var(--ezhf-blue-soft),#f7fbff); }
.service-route-intro__eyebrow { display: block; margin-bottom: 7px; color: var(--ezhf-blue); font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.entry-content .service-route-intro h2 { margin: 0; font-size: clamp(27px,3.5vw,38px); }
.service-route-intro p { margin: 10px 0 0; color: var(--ezhf-muted); }
.entry-content .service-route { margin: 0; padding: 0; list-style: none; }
.service-step { position: relative; display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 18px; padding: 0 0 26px; }
.service-step:not(:last-child)::before { content: ""; position: absolute; top: 59px; bottom: 0; left: 24px; width: 2px; background: #c9dced; }
.service-step__number { position: relative; z-index: 1; grid-column: 1; grid-row: 1; display: grid; width: 50px; height: 50px; margin-top: 9px; place-items: center; border: 2px solid #b8d3ea; border-radius: 50%; color: #fff; background: var(--ezhf-blue); box-shadow: 0 0 0 6px #fff; font-size: 18px; font-weight: 800; }
.service-step__body { grid-column: 2; grid-row: 1; min-width: 0; padding: 20px 22px; border: 1px solid var(--ezhf-line); border-radius: 16px; background: #f8fafc; }
.service-step > p:empty, .service-step > br, .service-route-intro > p:empty, .service-alert > p:empty { display: none; }
.entry-content .service-step__body h3 { margin: 0; color: var(--ezhf-blue-dark); font-size: 22px; line-height: 1.25; }
.service-step__body p { margin: 10px 0 0; }
.service-step__note { color: var(--ezhf-green); font-weight: 700; }
.service-step__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.service-step__action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; margin-top: 16px; padding: 8px 14px; border: 1px solid var(--ezhf-blue); border-radius: 10px; color: #fff; background: var(--ezhf-blue); font-size: 14px; font-weight: 700; text-decoration: none; }
.service-step__actions .service-step__action { margin-top: 0; }
.service-step__action:hover, .service-step__action:focus-visible { color: #fff; background: var(--ezhf-blue-dark); }
.service-step__action--secondary { color: var(--ezhf-blue-dark); background: #fff; }
.service-step__action--secondary:hover, .service-step__action--secondary:focus-visible { color: #fff; }
.service-step__details { margin-top: 16px; border: 1px solid #cbd9e7; border-radius: 11px; background: #fff; }
.service-step__details summary { padding: 11px 14px; color: var(--ezhf-blue-dark); cursor: pointer; font-weight: 700; }
.service-step__details[open] summary { border-bottom: 1px solid var(--ezhf-line); }
.service-step__details ul { margin: 13px 18px 0; padding-left: 20px; }
.service-step__details p { margin: 10px 18px 15px; color: var(--ezhf-muted); font-size: 14px; }
.service-alert { display: flex; align-items: flex-start; gap: 14px; margin-top: 10px; padding: 18px 20px; border-left: 4px solid var(--ezhf-amber); border-radius: 12px; color: #5f481c; background: var(--ezhf-amber-soft); }
.service-alert__icon { display: grid; flex: 0 0 32px; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: #fff; background: var(--ezhf-amber); font-weight: 800; }
.service-alert p { margin: 1px 0 0; }
.service-alert a { color: #734e07; font-weight: 800; }
.service-reminder { margin-top: 30px; padding: 22px 24px; border-radius: 16px; background: var(--ezhf-green-soft); }
.entry-content .service-reminder h2 { margin: 0 0 12px; font-size: 26px; }
.service-reminder ul { margin: 0; padding-left: 21px; }
.page-updated { margin-top: 38px; padding-top: 16px; border-top: 1px solid var(--ezhf-line); color: var(--ezhf-muted); font-size: 14px; }

.home-section { padding: 48px 0; }
.home-section--white { background: #fff; }
.home-entry { padding: 52px 0 48px; background: radial-gradient(circle at 85% 12%, rgba(46,139,98,.1), transparent 34%), var(--ezhf-bg); }
.home-entry__title { margin: 0; color: var(--ezhf-blue-dark); font-size: clamp(36px, 5vw, 54px); line-height: 1.08; }
.home-entry__intro { max-width: 720px; margin: 12px 0 28px; color: var(--ezhf-muted); font-size: 18px; }
.entry-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 16px; }
.entry-route { display: grid; grid-column: span 2; grid-template-columns: 50px minmax(0,1fr) 30px; grid-template-rows: auto auto; align-content: center; column-gap: 15px; min-height: 122px; padding: 22px; color: var(--ezhf-ink); background: #fff; border: 1px solid var(--ezhf-line); border-radius: var(--ezhf-radius); box-shadow: 0 8px 24px rgba(23,62,98,.055); text-decoration: none; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.entry-route--primary { grid-column: span 3; min-height: 136px; background: linear-gradient(180deg,#fff,var(--ezhf-green-soft)); border-color: #bcdcca; box-shadow: 0 10px 28px rgba(34,111,75,.08); }
.entry-route:hover, .entry-route:focus-visible { color: var(--ezhf-ink); border-color: #86add2; box-shadow: var(--ezhf-shadow); transform: translateY(-3px); }
.entry-route--primary:hover, .entry-route--primary:focus-visible { border-color: #75b894; }
.entry-route__icon { display: grid; grid-row: 1 / span 2; place-items: center; align-self: start; width: 50px; height: 50px; border-radius: 14px; background: var(--ezhf-blue-soft); font-size: 25px; }
.entry-route--primary .entry-route__icon { background: #dff2e7; }
.entry-route__title { grid-column: 2; align-self: center; color: var(--ezhf-blue-dark); font-size: 20px; line-height: 1.25; }
.entry-route--primary .entry-route__title { color: #236f4b; font-size: 22px; }
.entry-route__text { grid-column: 2; margin-top: 6px; color: var(--ezhf-muted); font-size: 14px; line-height: 1.45; }
.entry-route__arrow { display: grid; grid-column: 3; grid-row: 1 / span 2; place-items: center; align-self: center; width: 30px; height: 30px; border-radius: 50%; color: var(--ezhf-blue); background: var(--ezhf-blue-soft); font-size: 19px; line-height: 1; transition: transform .18s ease, color .18s ease, background-color .18s ease; }
.entry-route--primary .entry-route__arrow { color: #236f4b; background: rgba(255,255,255,.84); }
.entry-route:hover .entry-route__arrow, .entry-route:focus-visible .entry-route__arrow { color: #fff; background: var(--ezhf-blue); transform: translateX(3px); }
.entry-route--primary:hover .entry-route__arrow, .entry-route--primary:focus-visible .entry-route__arrow { background: #236f4b; }
.home-audiences { padding-block: 34px; }
.home-audiences__title { margin: 0; color: var(--ezhf-blue-dark); font-size: clamp(24px,3vw,30px); line-height: 1.2; }
.audience-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.audience-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 13px 16px; border: 1px solid var(--ezhf-line); border-radius: 12px; color: var(--ezhf-blue-dark); background: var(--ezhf-blue-soft); font-weight: 700; text-decoration: none; transition: border-color .18s ease, background-color .18s ease; }
.audience-link:hover, .audience-link:focus-visible { color: var(--ezhf-blue-dark); border-color: #86add2; background: #fff; }
.home-section__heading { margin: 0; color: var(--ezhf-blue-dark); font-size: clamp(30px, 4vw, 44px); line-height: 1.15; }
.home-section__intro { max-width: 760px; margin: 12px 0 24px; color: var(--ezhf-muted); }
.home-section__heading + .card-grid, .home-section__heading + .work-panel, .home-section__heading + .news-grid { margin-top: 24px; }
.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.card-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.route-card, .section-card, .news-card {
  display: block; padding: 24px;
  color: var(--ezhf-ink); background: #fff;
  border: 1px solid var(--ezhf-line); border-radius: var(--ezhf-radius);
  box-shadow: 0 8px 24px rgba(23,62,98,.055);
}
.route-card, .section-card, .news-card {
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.route-card:hover, .section-card:hover, .news-card:hover { transform: translateY(-3px); border-color: #86add2; box-shadow: var(--ezhf-shadow); }
.route-card { display: grid; grid-template-columns: 46px minmax(0,1fr) 30px; grid-template-rows: auto auto; align-content: start; column-gap: 16px; background: linear-gradient(180deg, #fff, var(--ezhf-green-soft)); border-color: #bcdcca; box-shadow: 0 10px 28px rgba(34,111,75,.08); }
.card-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; margin-bottom: 16px; border-radius: 13px; background: var(--ezhf-blue-soft); font-size: 24px; }
.route-card .card-icon { background: #dff2e7; }
.card-title { display: block; color: var(--ezhf-blue-dark); font-size: 21px; line-height: 1.25; }
.route-card .card-title { color: #236f4b; }
.card-text { display: block; margin-top: 8px; color: var(--ezhf-muted); font-size: 15px; }
.route-card .card-icon { grid-row: 1 / span 2; margin: 0; }
.route-card .card-title { grid-column: 2; align-self: center; }
.route-card .card-text { grid-column: 2; margin-top: 6px; }
.route-card__arrow { display: grid; grid-column: 3; grid-row: 1 / span 2; place-items: center; align-self: center; width: 30px; height: 30px; border-radius: 50%; color: #236f4b; background: rgba(255,255,255,.82); font-size: 20px; line-height: 1; transition: transform .18s ease, color .18s ease, background-color .18s ease; }
.route-card:hover .route-card__arrow, .route-card:focus-visible .route-card__arrow { color: #fff; background: #236f4b; transform: translateX(3px); }
.work-panel { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 12px; border: 1px solid #d7e2ed; border-radius: var(--ezhf-radius); background: #f4f7fa; }
.work-item { display: grid; grid-template-columns: 42px minmax(0,1fr); grid-template-rows: auto auto; align-content: start; column-gap: 14px; padding: 20px 22px; cursor: default; }
.work-item + .work-item { border-left: 1px solid #d7e2ed; }
.work-item .card-icon { grid-row: 1 / span 2; width: 42px; height: 42px; margin: 0; border-radius: 11px; color: var(--ezhf-blue-dark); background: #e6edf4; font-size: 21px; }
.work-item .card-title { grid-column: 2; align-self: center; font-size: 19px; }
.work-item .card-text { grid-column: 2; margin-top: 7px; }
.section-card { display: flex; gap: 16px; align-items: flex-start; }
.section-card .card-icon { flex: 0 0 46px; margin: 0; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.news-card__date { display: block; margin-bottom: 10px; color: var(--ezhf-muted); font-size: 13px; }
.news-card h3 { margin: 0; color: var(--ezhf-blue-dark); font-size: 20px; line-height: 1.35; }
.news-card p { color: var(--ezhf-muted); font-size: 15px; }
.section-action { margin-top: 24px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 18px; border-radius: 12px; background: var(--ezhf-blue); color: #fff; font-weight: 800; text-decoration: none; }
.button:hover { background: var(--ezhf-blue-dark); color: #fff; }
.max-channel { display: grid; grid-template-columns: 76px minmax(0,1fr) auto; align-items: center; gap: 24px; padding: 30px 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: var(--ezhf-radius); color: #fff; background: linear-gradient(135deg, #061a33 0%, #0b3f73 62%, #145da0 100%); box-shadow: 0 14px 34px rgba(4,35,65,.14); }
.max-channel__mark { display: grid; width: 76px; height: 76px; place-items: center; border: 1px solid rgba(255,255,255,.38); border-radius: 22px; color: #fff; background: rgba(255,255,255,.1); font-size: 20px; font-weight: 800; letter-spacing: -.03em; }
.max-channel__logo { display: block; width: 52px; height: 52px; object-fit: contain; }
.max-channel__eyebrow { margin: 0 0 5px; color: #a9d8ff; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.max-channel__title { margin: 0; color: #fff; font-size: clamp(25px,3vw,34px); line-height: 1.15; }
.max-channel__text { max-width: 720px; margin: 9px 0 0; color: #d8e8f6; }
.max-channel__button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 18px; border: 1px solid rgba(255,255,255,.38); border-radius: 12px; color: var(--ezhf-blue-dark); background: #fff; font-weight: 700; white-space: nowrap; text-decoration: none; transition: transform .18s ease, background-color .18s ease; }
.max-channel__button:hover, .max-channel__button:focus-visible { color: var(--ezhf-blue-dark); background: #eef7ff; transform: translateY(-2px); }
.emergency-strip { padding: 18px 0; border-top: 1px solid #f0d69f; background: var(--ezhf-amber-soft); color: #5f481c; }
.emergency-strip__inner { display: flex; align-items: center; gap: 14px; }
.emergency-strip__icon { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: var(--ezhf-amber); font-weight: 800; }
.emergency-strip p { margin: 0; }
.emergency-strip a { color: #734e07; font-weight: 800; }

.posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.pagination { margin-top: 34px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; min-height: 42px; padding: 6px 10px; border-radius: 9px; background: #fff; border: 1px solid var(--ezhf-line); text-decoration: none; }
.page-numbers.current { color: #fff; background: var(--ezhf-blue); border-color: var(--ezhf-blue); }

.search-form { display: flex; max-width: 680px; gap: 10px; }
.search-field { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #aab8c7; border-radius: 10px; background: #fff; }
.search-submit { min-height: 48px; padding: 10px 18px; border: 0; border-radius: 10px; background: var(--ezhf-blue); color: #fff; font-weight: 800; cursor: pointer; }

.site-footer { padding: 22px 0; background: #082f57; color: #dce8f4; }
.site-footer__compact { display: flex; align-items: center; gap: 14px 26px; font-size: 13px; }
.site-footer__compact address { flex: 1 1 auto; margin: 0; font-style: normal; }
.site-footer__contacts { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.site-footer a { color: #fff; }
.site-footer__privacy { white-space: nowrap; }

/* Interactive directory of utility providers. */
.rso-directory { margin-top: 24px; }
.rso-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.rso-intro p { margin: 0; }
.rso-intro > p:first-child { max-width: 740px; color: var(--ezhf-muted); font-size: 18px; }
.rso-intro__date { flex: 0 0 auto; color: var(--ezhf-muted); font-size: 13px; }
.rso-picker { display: grid; grid-template-columns: max-content minmax(260px, 430px); align-items: center; gap: 14px; margin-bottom: 22px; padding: 16px 18px; border: 1px solid #cfe0ef; border-radius: 14px; background: var(--ezhf-blue-soft); }
.rso-picker label { color: var(--ezhf-blue-dark); font-size: 14px; font-weight: 800; }
.rso-picker select { width: 100%; min-height: 46px; padding: 8px 42px 8px 13px; border: 1px solid #a9bfd4; border-radius: 10px; color: var(--ezhf-ink); background: #fff; cursor: pointer; }
.rso-layout { display: grid; grid-template-columns: minmax(440px, .96fr) minmax(420px, 1.04fr); align-items: start; gap: 24px; }
.rso-map, .rso-results { min-width: 0; }
.rso-map { padding: 0; border: 0; border-radius: 0; background: transparent; }
.rso-map__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.entry-content .rso-map__heading h2, .entry-content .rso-results h2 { margin: 0; font-size: 24px; }
.rso-map__heading span { color: var(--ezhf-muted); font-size: 13px; }
.rso-map__canvas { position: relative; height: 500px; overflow: hidden; border: 0; border-radius: 0; background: transparent; }
.rso-map__canvas.leaflet-container { background: transparent; font-family: inherit; cursor: default; }
.rso-map__canvas .leaflet-control-zoom { display: none !important; }

.rso-map__canvas .leaflet-interactive { transition: fill .16s ease, fill-opacity .16s ease, stroke .16s ease; }
.rso-map__canvas .leaflet-interactive:focus { outline: none; filter: drop-shadow(0 0 3px #ffbf47); stroke: #ffbf47; stroke-width: 4; }
.rso-map__tooltip { padding: 5px 8px; border: 0; border-radius: 7px; color: #fff; background: var(--ezhf-blue-dark); box-shadow: 0 4px 12px rgba(14,52,86,.22); font-size: 12px; font-weight: 700; }
.rso-map__tooltip::before { border-top-color: var(--ezhf-blue-dark); }
.rso-map__note { margin: 10px 2px 0; color: var(--ezhf-muted); font-size: 12px; line-height: 1.4; }
.rso-results { padding: 22px; border: 1px solid var(--ezhf-line); border-radius: 18px; background: #fff; box-shadow: 0 10px 26px rgba(23,62,98,.06); }
.rso-results__eyebrow { margin: 0 0 4px; color: var(--ezhf-blue); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.rso-services { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; margin: 18px 0; }
.rso-service { display: grid; min-width: 0; min-height: 62px; padding: 8px 4px; place-items: center; gap: 2px; border: 1px solid var(--ezhf-line); border-radius: 11px; color: var(--ezhf-muted); background: #f7f9fc; cursor: pointer; font-size: 11px; font-weight: 700; line-height: 1.15; text-align: center; }
.rso-service > span:first-child { font-size: 20px; }
.rso-service:hover, .rso-service:focus-visible { border-color: #90b5d5; color: var(--ezhf-blue-dark); background: var(--ezhf-blue-soft); }
.rso-service.is-active { border-color: var(--ezhf-blue); color: #fff; background: var(--ezhf-blue); }
.rso-card { border-top: 1px solid var(--ezhf-line); padding-top: 20px; }
.rso-card__header { display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: start; gap: 13px; }
.rso-card__icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 13px; background: var(--ezhf-blue-soft); font-size: 23px; }
.rso-card__header p { margin: 0 0 3px; color: var(--ezhf-muted); font-size: 13px; }
.entry-content .rso-card__header h3 { margin: 0; font-size: 21px; line-height: 1.3; }
.rso-card dl { margin: 20px 0 0; }
.rso-card__row { display: grid; grid-template-columns: minmax(128px,.42fr) minmax(0,1fr); gap: 12px; padding: 11px 0; border-top: 1px solid #edf1f5; }
.rso-card__row dt { color: var(--ezhf-muted); font-size: 12px; font-weight: 700; line-height: 1.45; }
.rso-card__row dd { margin: 0; font-size: 14px; line-height: 1.5; white-space: pre-line; }
.rso-card__row--emergency { margin: 8px -10px 0; padding: 12px 10px; border: 0; border-left: 3px solid var(--ezhf-amber); border-radius: 8px; color: #5f481c; background: var(--ezhf-amber-soft); }
.rso-card__row--note { margin-top: 8px; padding: 12px; border: 0; border-radius: 8px; background: var(--ezhf-green-soft); }
.rso-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.rso-action { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 12px; border: 1px solid #9eb8cf; border-radius: 9px; color: var(--ezhf-blue-dark); background: #fff; font-size: 13px; font-weight: 700; text-decoration: none; }
.rso-action:hover, .rso-action:focus-visible { color: #fff; border-color: var(--ezhf-blue-dark); background: var(--ezhf-blue-dark); }
.rso-action--primary { color: #fff; border-color: var(--ezhf-blue); background: var(--ezhf-blue); }
.rso-action--emergency { color: #794d00; border-color: #dfa737; background: var(--ezhf-amber-soft); }
.rso-card__sources { margin-top: 16px; color: var(--ezhf-muted); font-size: 12px; }
.rso-card__sources summary { cursor: pointer; font-weight: 700; }
.rso-card__sources div { display: flex; flex-wrap: wrap; gap: 5px 14px; margin-top: 8px; }
.rso-card__sources a { font-weight: 600; }

.a11y-mode { --ezhf-bg: #fff; --ezhf-ink: #000; --ezhf-muted: #222; --ezhf-line: #000; }
.a11y-mode body { font-size: 20px; background: #fff; }
.a11y-mode .site-topbar, .a11y-mode .primary-nav, .a11y-mode .site-footer { background: #000; }
.a11y-mode .site-header { background: #fff; border-color: #000; }
.a11y-mode .site-title, .a11y-mode .site-description { color: #000; }
.a11y-mode .header-search__field, .a11y-mode .header-search__submit { border: 2px solid #000; }
.a11y-mode .header-search__toggle { color: #000; border: 2px solid #000; background: #fff; }
.a11y-mode .a11y-toggle { color: #000; background: #fff; border: 2px solid #000; padding: 4px 8px; }
.a11y-mode .route-card, .a11y-mode .work-panel, .a11y-mode .section-card, .a11y-mode .news-card, .a11y-mode .content-card { background: #fff; border: 2px solid #000; box-shadow: none; }
.a11y-mode .emergency-strip { border-block: 2px solid #000; background: #fff; color: #000; }
.a11y-mode .emergency-strip a { color: #000; }
.a11y-mode .rso-results, .a11y-mode .rso-picker, .a11y-mode .rso-service { border: 2px solid #000; background: #fff; box-shadow: none; color: #000; }
.a11y-mode .rso-map { border: 0; background: transparent; box-shadow: none; color: #000; }
.a11y-mode .rso-map__canvas { border: 0; background: transparent; }
.a11y-mode .rso-service.is-active { color: #fff; background: #000; }
.a11y-mode .rso-map__canvas .leaflet-interactive { stroke: #000; }

@media (max-width: 1100px) {
  .site-branding { min-height: 118px; gap: 16px; }
  .custom-logo { max-width: 175px; max-height: 80px; }
  .site-title { font-size: clamp(28px, 3.8vw, 38px); }
  .site-header__actions { flex-basis: min(300px, 30vw); width: min(300px, 30vw); }
  .menu-toggle { display: flex; }
  .primary-nav__inner { display: block; }
  .primary-menu { display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 0 0 12px; }
  .primary-menu.is-open { display: flex; }
  .primary-nav.is-sticky .menu-toggle { min-height: 42px; }
  .menu-parent { width: 100%; }
  .menu-parent > a { flex: 1 1 auto; min-width: 0; }
  .primary-menu > li > .menu-parent > a { border-radius: 8px 0 0 8px; }
  .primary-menu > li > .menu-parent > a::after { display: none; }
  .submenu-toggle { display: grid; place-items: center; flex: 0 0 42px; min-height: 44px; margin: 2px 0; padding: 0; border: 0; border-left: 1px solid rgba(255,255,255,.18); border-radius: 0 8px 8px 0; -webkit-appearance: none; appearance: none; color: #fff; background: rgba(4,45,82,.16); cursor: pointer; font-size: 18px; }
  .submenu-toggle:hover { background: rgba(4,45,82,.35); }
  .submenu-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
  .submenu-toggle span { display: block; transition: transform .16s ease; }
  .primary-menu a { min-height: 44px; padding-inline: 12px; font-size: 15px; }
  .primary-menu .sub-menu, .primary-menu .mega-menu { display: none; position: static; min-width: 0; margin-left: 14px; padding: 6px 0 8px; opacity: 1; visibility: visible; transform: none; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
  .primary-menu .is-submenu-open > .sub-menu, .primary-menu .is-submenu-open > .mega-menu { display: block; }
  .mega-menu__group + .mega-menu__group { margin-top: 8px; }
  .mega-menu__heading { margin: 6px 12px 3px; color: #b9daf7; font-size: 11px; }
  .primary-menu .mega-menu__links { display: block; }
  .primary-menu .sub-menu a { color: #fff; opacity: .9; }
  .primary-menu .sub-menu a:hover { color: #fff; background: var(--ezhf-blue-dark); }
  .card-grid, .news-grid, .posts-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .entry-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .entry-route, .entry-route--primary { grid-column: auto; }
  .entry-route:last-child { grid-column: 1 / -1; }
  .home-section { padding: 40px 0; }
  .content-card { padding: clamp(24px, 3.5vw, 38px); }
  .rso-layout { grid-template-columns: minmax(390px,.88fr) minmax(380px,1.12fr); gap: 18px; }
  .rso-map__canvas { height: 460px; }
}

@media (min-width: 681px) {
  .header-search { width: 44px; min-height: 44px; align-self: flex-end; justify-self: end; overflow: visible; border-color: transparent; background: transparent; box-shadow: none; transition: width .24s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
  .header-search__toggle { display: grid; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; color: var(--ezhf-blue-dark); background: rgba(255,255,255,.96); box-shadow: 0 5px 16px rgba(0,0,0,.14); }
  .header-search__field { width: 0; flex: 0 1 0; padding-inline: 0; opacity: 0; pointer-events: none; transition: opacity .16s ease, flex-basis .24s ease, padding .24s ease; }
  .header-search__submit { max-width: 0; padding-inline: 0; overflow: hidden; opacity: 0; pointer-events: none; transition: opacity .16s ease, max-width .24s ease, padding .24s ease; }
  .header-search.is-open { width: 100%; border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.97); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
  .header-search.is-open .header-search__toggle { color: var(--ezhf-blue); background: transparent; box-shadow: none; }
  .header-search.is-open .header-search__field { width: auto; flex: 1 1 150px; padding-inline: 8px; opacity: 1; pointer-events: auto; }
  .header-search.is-open .header-search__submit { max-width: 88px; padding-inline: 15px; opacity: 1; pointer-events: auto; }
}

@media (min-width: 1101px) and (hover: hover) {
  .header-search:hover { width: 100%; border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.97); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
  .header-search:hover .header-search__toggle { color: var(--ezhf-blue); background: transparent; box-shadow: none; }
  .header-search:hover .header-search__field { width: auto; flex: 1 1 150px; padding-inline: 8px; opacity: 1; pointer-events: auto; }
  .header-search:hover .header-search__submit { max-width: 88px; padding-inline: 15px; opacity: 1; pointer-events: auto; }
}

@media (max-width: 900px) {
  .site-branding { display: grid; grid-template-columns: auto minmax(0,1fr); min-height: 0; padding-block: 18px; }
  .custom-logo { max-width: 150px; max-height: 72px; }
  .site-title { font-size: clamp(27px, 5vw, 36px); }
  .site-header__actions { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; width: 100%; margin-left: 0; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.2); }
  .a11y-toggle { justify-self: end; white-space: nowrap; }
  .site-footer__compact { flex-wrap: wrap; }
  .entry-content .wp-block-columns { flex-wrap: wrap !important; }
  .entry-content .wp-block-column { flex-basis: 100% !important; }
  .work-panel { grid-template-columns: 1fr; }
  .work-item + .work-item { border-top: 1px solid #d7e2ed; border-left: 0; }
  .max-channel { grid-template-columns: 64px minmax(0,1fr); padding: 26px; }
  .max-channel__mark { width: 64px; height: 64px; border-radius: 18px; font-size: 18px; }
  .max-channel__logo { width: 44px; height: 44px; }
  .max-channel__button { grid-column: 2; justify-self: start; }
  .rso-intro { align-items: flex-start; flex-direction: column; gap: 7px; }
  .rso-layout { grid-template-columns: 1fr; }
  .rso-picker { position: sticky; z-index: 4; top: 58px; }
}

@media (max-width: 680px) {
  body { font-size: 16px; }
  .rso-map { display: none; }
  .site-container { width: min(calc(100% - 24px), var(--ezhf-container)); }
  .site-branding { grid-template-columns: 110px minmax(0,1fr); min-height: 0; gap: 12px; padding-block: 15px; }
  .brand-mark { width: 58px; height: 58px; border-radius: 15px; font-size: 18px; }
  .custom-logo { max-width: 110px; max-height: 58px; }
  .site-title { font-size: clamp(23px, 7vw, 30px); }
  .site-description { display: none; }
  .site-header__actions { display: flex; grid-column: 1 / -1; flex-basis: 100%; width: 100%; margin-left: 0; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.22); }
  .header-search__suggestions { max-height: min(330px, 52vh); }
  .a11y-toggle { width: auto; align-self: flex-end; }
  .entry-title { font-size: clamp(28px, 9vw, 36px); }
  .entry-content h2 { font-size: clamp(23px, 7vw, 29px); }
  .entry-content h3 { font-size: 20px; }
  .content-shell { padding: 18px 0 40px; }
  .content-card { padding: 22px 17px; border-radius: 16px; }
  .home-section { padding: 32px 0; }
  .home-entry { padding: 36px 0 32px; }
  .home-entry__title { font-size: clamp(32px,10vw,40px); }
  .home-entry__intro { margin: 10px 0 22px; font-size: 16px; }
  .entry-grid, .audience-links { grid-template-columns: 1fr; }
  .entry-route, .entry-route--primary, .entry-route:last-child { grid-column: 1; min-height: 0; padding: 20px; }
  .entry-route--primary .entry-route__title { font-size: 20px; }
  .home-section__heading { font-size: clamp(28px, 9vw, 36px); }
  .card-grid, .card-grid--two, .news-grid, .posts-grid { grid-template-columns: 1fr; }
  .route-card, .section-card, .news-card { padding: 20px; }
  .route-card { grid-template-columns: 42px minmax(0,1fr) 30px; column-gap: 13px; }
  .work-panel { padding: 6px; }
  .work-item { padding: 18px 14px; }
  .max-channel { grid-template-columns: 1fr; gap: 16px; padding: 22px 20px; }
  .max-channel__mark { width: 58px; height: 58px; border-radius: 16px; }
  .max-channel__logo { width: 40px; height: 40px; }
  .max-channel__button { grid-column: 1; width: 100%; }
  .section-card { gap: 13px; }
  .entry-content table { display: block; width: 100%; overflow-x: auto; white-space: normal; -webkit-overflow-scrolling: touch; }
  .entry-content th, .entry-content td { min-width: 135px; padding: 10px 11px; }
  .entry-content blockquote { margin-inline: 0; padding: 16px 17px; }
  .service-route-intro { margin-bottom: 26px; padding: 21px 18px; }
  .service-step { grid-template-columns: 40px minmax(0,1fr); gap: 12px; padding-bottom: 20px; }
  .service-step:not(:last-child)::before { top: 49px; left: 19px; }
  .service-step__number { width: 40px; height: 40px; box-shadow: 0 0 0 4px #fff; font-size: 16px; }
  .service-step__body { padding: 17px 15px; border-radius: 13px; }
  .entry-content .service-step__body h3 { font-size: 19px; }
  .service-step__action { width: 100%; }
  .service-alert { padding: 16px; }
  .service-reminder { padding: 19px 17px; }
  .search-form { flex-direction: column; }
  .search-submit, .section-action .button { width: 100%; }
  .breadcrumbs { padding-top: 13px; font-size: 13px; line-height: 1.45; }
  .emergency-strip__inner { align-items: flex-start; }
  .site-footer { padding: 20px 0; }
  .site-footer__compact { align-items: flex-start; flex-direction: column; gap: 7px; }
  .rso-directory { margin-top: 18px; }
  .rso-intro > p:first-child { font-size: 16px; }
  .rso-picker { position: static; grid-template-columns: 1fr; gap: 6px; padding: 14px; }
  .rso-results { padding: 18px 15px; border-radius: 14px; }
  .entry-content .rso-results h2 { font-size: 22px; }
  .rso-services { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rso-service { min-height: 58px; }
  .rso-card__row { grid-template-columns: 1fr; gap: 4px; }
  .rso-card__row dt { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
  .rso-card__actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 782px) {
  .admin-bar .primary-nav.is-sticky { top: 46px; }
}

@media (max-width: 480px) {
  .site-container { width: min(calc(100% - 20px), var(--ezhf-container)); }
  .site-branding { grid-template-columns: 84px minmax(0,1fr); gap: 10px; padding-block: 13px; }
  .custom-logo { max-width: 84px; max-height: 48px; }
  .brand-mark { width: 52px; height: 52px; }
  .site-title { font-size: clamp(21px, 7vw, 25px); }
  .header-search__field { padding-inline: 11px; }
  .header-search__submit { padding-inline: 13px; }
  .a11y-toggle { font-size: 12px; }
  .a11y-toggle__icon { width: 23px; height: 23px; }
  .menu-toggle { min-height: 46px; }
  .home-section { padding: 32px 0; }
  .entry-route, .entry-route--primary { grid-template-columns: 44px minmax(0,1fr) 28px; column-gap: 12px; padding: 18px 15px; }
  .entry-route__icon { width: 44px; height: 44px; border-radius: 12px; font-size: 22px; }
  .entry-route__title, .entry-route--primary .entry-route__title { font-size: 18px; }
  .entry-route__text { font-size: 13px; }
  .route-card, .section-card, .news-card { padding: 18px; }
  .card-icon { width: 42px; height: 42px; margin-bottom: 13px; font-size: 21px; }
  .section-card .card-icon { flex-basis: 42px; margin: 0; }
  .card-title { font-size: 19px; }
  .card-text, .news-card p { font-size: 14px; }
  .content-card { padding: 20px 15px; border-radius: 14px; }
  .entry-header { margin-bottom: 22px; }
  .entry-content > ul, .entry-content > ol { padding-left: 1.2em; }
  .page-numbers { min-width: 40px; min-height: 40px; }
  .rso-services { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rso-service:last-child { grid-column: 1 / -1; }
  .rso-card__header { grid-template-columns: 42px minmax(0,1fr); gap: 11px; }
  .rso-card__icon { width: 42px; height: 42px; font-size: 20px; }
  .entry-content .rso-card__header h3 { font-size: 19px; }
  .rso-card__actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Problem-in-apartment service cards */
.issue-lead {
  max-width: 850px;
  margin-bottom: 20px;
  font-size: 1.08rem;
  color: var(--ezhf-muted);
}
.issue-alert {
  margin: 0 0 32px;
  padding: 18px 20px;
  border: 1px solid #f0c36b;
  border-left: 5px solid #c97800;
  border-radius: 14px;
  background: #fff8e8;
}
.issue-alert strong {
  display: block;
  margin-bottom: 4px;
  color: #7a3d00;
  font-size: 1.05rem;
}
.issue-alert p { margin: 0; }
.issue-alert a { font-weight: 800; }
.issue-guide { margin: 0 0 34px; }
.issue-guide h2 { margin-bottom: 4px; }
.issue-guide__hint {
  margin: 0 0 18px;
  color: var(--ezhf-muted);
}
.issue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.issue-card {
  min-width: 0;
  border: 1px solid var(--ezhf-line);
  border-radius: 16px;
  background: var(--ezhf-surface);
  box-shadow: 0 7px 22px rgba(23, 62, 98, 0.06);
  overflow: hidden;
}
.issue-card[open] { grid-column: 1 / -1; }
.issue-card summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 78px;
  padding: 15px 52px 15px 16px;
  cursor: pointer;
  list-style: none;
  transition: background-color .18s ease;
}
.issue-card summary::-webkit-details-marker { display: none; }
.issue-card summary::after {
  content: "⌄";
  position: absolute;
  right: 18px;
  top: 50%;
  color: var(--ezhf-blue);
  font-size: 26px;
  line-height: 1;
  transform: translateY(-56%);
  transition: transform .18s ease;
}
.issue-card[open] summary::after { transform: translateY(-44%) rotate(180deg); }
.issue-card summary:hover,
.issue-card summary:focus-visible,
.issue-card[open] summary {
  background: var(--ezhf-blue-soft);
}
.issue-card summary:focus-visible {
  outline: 3px solid rgba(20, 93, 160, .35);
  outline-offset: -3px;
}
.issue-card__icon {
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #edf5fc;
  font-size: 24px;
}
.issue-card summary strong {
  display: block;
  color: var(--ezhf-blue-dark);
  font-size: 1.05rem;
  line-height: 1.3;
}
.issue-card summary small {
  display: block;
  margin-top: 3px;
  color: var(--ezhf-muted);
  font-size: .88rem;
  line-height: 1.35;
}
.issue-card--urgent .issue-card__icon { background: #fff3dd; }
.issue-card--danger { border-color: #e4a7a7; }
.issue-card--danger .issue-card__icon { background: #fff0f0; }
.issue-card--danger summary strong { color: #8b1e1e; }
.issue-card__body {
  padding: 0 18px 18px;
  border-top: 1px solid var(--ezhf-line);
}
.issue-card__steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
  padding: 0;
  list-style: none;
  counter-reset: issue-step;
}
.issue-card__steps li {
  position: relative;
  min-width: 0;
  padding: 15px 15px 15px 50px;
  border-radius: 13px;
  background: #f6f9fc;
  counter-increment: issue-step;
}
.issue-card__steps li::before {
  content: counter(issue-step);
  position: absolute;
  left: 14px;
  top: 14px;
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: #fff;
  background: var(--ezhf-blue);
  font-size: .82rem;
  font-weight: 800;
}
.issue-card__steps strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ezhf-ink);
}
.issue-card__steps p {
  margin: 0;
  color: var(--ezhf-muted);
  font-size: .95rem;
  line-height: 1.48;
}
.issue-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.issue-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid #9db8cf;
  border-radius: 10px;
  color: var(--ezhf-blue-dark);
  background: #fff;
  font-weight: 750;
  text-decoration: none;
}
.issue-action:hover,
.issue-action:focus-visible {
  color: #fff;
  border-color: var(--ezhf-blue-dark);
  background: var(--ezhf-blue-dark);
}
.issue-action--primary {
  color: #fff;
  border-color: var(--ezhf-blue);
  background: var(--ezhf-blue);
}
.issue-action--danger {
  color: #fff;
  border-color: #a92c2c;
  background: #a92c2c;
}
.issue-followup {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}
.issue-followup > div {
  padding: 20px;
  border: 1px solid var(--ezhf-line);
  border-radius: 16px;
  background: #fff;
}
.issue-followup h2 {
  margin-top: 0;
  font-size: 1.25rem;
}
.issue-followup ul,
.issue-followup p { margin-bottom: 0; }
@media (max-width: 760px) {
  .issue-grid,
  .issue-card__steps,
  .issue-followup { grid-template-columns: 1fr; }
  .issue-card[open] { grid-column: auto; }
  .issue-card summary { min-height: 72px; padding: 13px 45px 13px 13px; }
  .issue-card__icon { flex-basis: 40px; width: 40px; height: 40px; font-size: 22px; }
  .issue-card__body { padding: 0 13px 14px; }
  .issue-card__steps { gap: 9px; margin: 13px 0; }
  .issue-card__steps li { padding: 13px 12px 13px 46px; }
  .issue-card__steps li::before { left: 12px; top: 12px; }
  .issue-card__actions { display: grid; grid-template-columns: 1fr; }
  .issue-action { width: 100%; }
}

/* Compact sticky header */
.compact-nav-brand,
.compact-nav-search {
  display: none;
}
@media (min-width: 1101px) {
  .site-branding {
    min-height: 96px;
  }
  .site-branding > .custom-logo-link .custom-logo {
    max-height: 66px;
  }
  .site-title {
    font-size: 36px;
  }
  .primary-nav.is-sticky .primary-nav__inner {
    min-height: 58px;
    gap: 10px;
  }
  .primary-nav.is-sticky .compact-nav-brand {
    display: flex;
    flex: 0 0 74px;
    align-items: center;
    justify-content: flex-start;
    height: 48px;
    color: #fff;
    text-decoration: none;
  }
  .compact-nav-brand__image {
    display: block;
    width: auto;
    max-width: 70px;
    max-height: 38px;
    object-fit: contain;
  }
  .compact-nav-brand__mark {
    display: grid;
    place-items: center;
    width: 46px;
    height: 34px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
  }
  .primary-nav.is-sticky .primary-menu {
    flex: 1 1 auto;
    min-width: 0;
    padding-block: 6px;
  }
  .primary-nav.is-sticky .primary-menu > li > .menu-parent > a {
    min-height: 42px;
    padding-inline: 9px;
  }
  .primary-nav.is-sticky .compact-nav-search {
    display: flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: flex-end;
    width: 42px;
    min-width: 42px;
    height: 42px;
    margin-left: auto;
    padding: 2px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    transition: width .2s ease, flex-basis .2s ease, background-color .2s ease;
  }
  .primary-nav.is-sticky .compact-nav-search.is-open {
    flex-basis: 208px;
    width: 208px;
    background: #fff;
  }
  .compact-nav-search__field {
    width: 0;
    min-width: 0;
    height: 36px;
    padding: 0;
    border: 0;
    outline: 0;
    opacity: 0;
    color: var(--ezhf-ink);
    background: transparent;
    transition: width .2s ease, padding .2s ease, opacity .15s ease;
  }
  .compact-nav-search.is-open .compact-nav-search__field {
    width: 158px;
    padding: 6px 9px;
    opacity: 1;
  }
  .compact-nav-search__field:focus {
    box-shadow: none;
  }
  .compact-nav-search__toggle {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: transparent;
    cursor: pointer;
  }
  .compact-nav-search.is-open .compact-nav-search__toggle {
    color: var(--ezhf-blue-dark);
  }
  .compact-nav-search__toggle:hover,
  .compact-nav-search__toggle:focus-visible {
    background: rgba(255,255,255,.18);
    outline: 2px solid rgba(255,255,255,.72);
    outline-offset: 1px;
  }
  .compact-nav-search.is-open .compact-nav-search__toggle:hover,
  .compact-nav-search.is-open .compact-nav-search__toggle:focus-visible {
    background: var(--ezhf-blue-soft);
    outline-color: var(--ezhf-blue);
  }
  .compact-nav-search__toggle svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.9;
  }
  .a11y-mode .compact-nav-search {
    border-color: #fff;
  }
}
@media (max-width: 1100px) {
  .primary-nav.is-sticky .menu-toggle {
    min-height: 58px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .compact-nav-search,
  .compact-nav-search__field {
    transition: none;
  }
}

/* Smart search results */
.header-search__suggestions {
  right: 0;
  left: auto;
  width: min(430px, calc(100vw - 24px));
  max-height: min(520px, 68vh);
  padding: 7px;
}
.header-search__suggestions li + li {
  border-top: 1px solid #edf1f5;
}
.header-search__suggestions .header-search__result {
  display: grid;
  gap: 3px;
  padding: 11px 12px;
}
.header-search__result-title {
  color: var(--ezhf-ink);
  font-size: 15px;
  font-weight: 750;
  line-height: 1.3;
}
.header-search__result-path {
  color: var(--ezhf-blue);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}
.header-search__result-excerpt {
  display: -webkit-box;
  margin-top: 2px;
  overflow: hidden;
  color: var(--ezhf-muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.42;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.header-search__result:hover .header-search__result-title,
.header-search__result.is-active .header-search__result-title {
  color: var(--ezhf-blue-dark);
}
.compact-nav-search__suggestions {
  top: calc(100% + 8px);
  right: 0;
  left: auto;
  width: min(420px, calc(100vw - 24px));
}
@media (min-width: 1101px) and (hover: hover) {
  .primary-nav.is-sticky .compact-nav-search:hover,
  .primary-nav.is-sticky .compact-nav-search:focus-within {
    flex-basis: 208px;
    width: 208px;
    background: #fff;
  }
  .compact-nav-search:hover .compact-nav-search__field,
  .compact-nav-search:focus-within .compact-nav-search__field {
    width: 158px;
    padding: 6px 9px;
    opacity: 1;
  }
  .compact-nav-search:hover .compact-nav-search__toggle,
  .compact-nav-search:focus-within .compact-nav-search__toggle {
    color: var(--ezhf-blue-dark);
  }
}
@media (max-width: 680px) {
  .header-search__suggestions {
    right: 0;
    left: 0;
    width: 100%;
    max-height: min(460px, 62vh);
  }
}


/* Header quick actions */
.mobile-nav-phone { display: none; }
.site-header__actions {
  position: relative;
  display: flex;
  flex: 0 0 min(460px, 42vw);
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: min(460px, 42vw);
}
.header-quick-action {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  color: #e8f3fc;
  background: rgba(255,255,255,.08);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}
.header-quick-action__icon {
  display: grid;
  flex: 0 0 22px;
  place-items: center;
  width: 22px;
  height: 22px;
}
.header-quick-action__icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
.header-quick-action:hover,
.header-quick-action:focus-visible {
  color: #fff;
  border-color: rgba(255,255,255,.68);
  background: rgba(255,255,255,.16);
  outline: 2px solid transparent;
}
.a11y-toggle.header-quick-action { padding: 7px 10px; color: #e8f3fc; }
.header-contact-link { color: #e8f3fc; }

@media (min-width: 681px) {
  .site-header__actions .header-search.is-open {
    position: absolute;
    z-index: 20;
    right: 0;
    width: 100%;
  }
}

@media (min-width: 1101px) and (hover: hover) {
  .site-header__actions .header-search:hover {
    position: absolute;
    z-index: 20;
    right: 0;
    width: 100%;
  }
}

@media (min-width: 681px) and (max-width: 900px) {
  .site-header__actions {
    grid-column: 1 / -1;
    flex-basis: 100%;
    justify-content: flex-end;
    width: 100%;
    margin-left: 0;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.2);
  }
}

@media (max-width: 680px) {
  .site-header__actions { display: none; }
  .primary-nav__inner {
    display: grid;
    grid-template-columns: 44px 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 0 8px;
    min-height: 56px;
  }
  .compact-nav-search {
    position: relative;
    z-index: 3;
    display: flex;
    grid-column: 1;
    grid-row: 1;
    align-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 2px;
    overflow: visible;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
  }
  .compact-nav-search.is-open {
    z-index: 12;
    grid-column: 1 / -1;
    width: 100%;
    background: #fff;
    border-color: #fff;
    box-shadow: 0 8px 22px rgba(4,35,65,.2);
  }
  .compact-nav-search__field {
    width: 0;
    min-width: 0;
    height: 38px;
    padding: 0;
    border: 0;
    outline: 0;
    opacity: 0;
    color: var(--ezhf-ink);
    background: transparent;
  }
  .compact-nav-search.is-open .compact-nav-search__field {
    width: auto;
    flex: 1 1 auto;
    padding: 6px 10px;
    opacity: 1;
  }
  .compact-nav-search__toggle {
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: transparent;
    cursor: pointer;
  }
  .compact-nav-search.is-open .compact-nav-search__toggle {
    color: var(--ezhf-blue-dark);
    background: var(--ezhf-blue-soft);
  }
  .compact-nav-search__toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.9;
  }
  .compact-nav-search__suggestions {
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    width: 100%;
    max-height: min(420px, 62vh);
  }
  .mobile-nav-phone {
    display: grid;
    z-index: 2;
    grid-column: 2;
    grid-row: 1;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.1);
  }
  .mobile-nav-phone:hover,
  .mobile-nav-phone:focus-visible {
    color: #fff;
    background: rgba(255,255,255,.2);
    outline: 2px solid #fff;
    outline-offset: 2px;
  }
  .mobile-nav-phone svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }
  .menu-toggle,
  .primary-nav.is-sticky .menu-toggle {
    z-index: 2;
    display: flex;
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 10px;
    background: rgba(255,255,255,.1);
  }
  .menu-toggle__icon { margin: 0; font-size: 24px; line-height: 1; }
  .menu-toggle__label { display: none; }
  .primary-menu,
  .primary-menu.is-open {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
  }
}


/* Visual language: sections, actions, services and information */
.ui-card { position: relative; }
.ui-card--section,
.section-card,
.audience-link {
  box-shadow: none;
}
.ui-card--section:hover,
.ui-card--section:focus-visible,
.section-card:hover,
.section-card:focus-visible {
  transform: none;
}
.ui-card--action,
.entry-route,
.route-card {
  border-color: #bcdcca;
  background: linear-gradient(180deg, #fff, var(--ezhf-green-soft));
  box-shadow: 0 9px 24px rgba(34,111,75,.08);
}
.ui-card--service,
.rso-picker {
  border: 2px solid #9cc2e3;
  background: linear-gradient(135deg, #eef7ff, #e3f1ff);
  box-shadow: none;
}
.ui-panel,
.ui-panel--info,
.ui-panel--warning,
.issue-alert,
.service-alert,
.service-reminder,
.issue-followup,
.emergency-strip {
  cursor: default;
  box-shadow: none;
  transform: none;
}
.issue-alert::before {
  display: block;
  margin-bottom: 5px;
  color: #8a4a00;
  content: "Важно";
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rso-picker::before {
  grid-column: 1 / -1;
  color: var(--ezhf-blue);
  content: "Сервис";
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Section directory cards */
.entry-content .ezhf-directory > a {
  position: relative;
  min-height: 108px;
  padding: 20px 58px 20px 20px;
  border: 1px solid var(--ezhf-line);
  border-left: 4px solid #a9bfd4;
  border-radius: 14px;
  color: var(--ezhf-blue-dark);
  background: #fff;
  box-shadow: none;
  transition: border-color .18s ease, background-color .18s ease;
}
.entry-content .ezhf-directory > a::after {
  position: absolute;
  top: 50%;
  right: 18px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: var(--ezhf-blue);
  background: var(--ezhf-blue-soft);
  content: "→";
  font-size: 19px;
  line-height: 1;
  transform: translateY(-50%);
  transition: transform .18s ease, color .18s ease, background-color .18s ease;
}
.entry-content .ezhf-directory > a:hover,
.entry-content .ezhf-directory > a:focus-visible {
  border-color: #86add2;
  border-left-color: var(--ezhf-blue);
  color: var(--ezhf-blue-dark);
  background: #f8fbff;
}
.entry-content .ezhf-directory > a:hover::after,
.entry-content .ezhf-directory > a:focus-visible::after {
  color: #fff;
  background: var(--ezhf-blue);
  transform: translate(3px, -50%);
}

/* Route and action cards inside directories */
.entry-content .ezhf-directory > a:is(
  [href*="page_id=4031"],
  [href*="/poluchil-kvartiru"],
  [href*="page_id=4037"],
  [href*="/problema-v-kvartire"]
) {
  min-height: 118px;
  padding-left: 78px;
  border: 1px solid #bcdcca;
  color: #236f4b;
  background: linear-gradient(180deg, #fff, var(--ezhf-green-soft));
  box-shadow: 0 8px 22px rgba(34,111,75,.075);
}
.entry-content .ezhf-directory > a:is([href*="page_id=4031"], [href*="/poluchil-kvartiru"])::before,
.entry-content .ezhf-directory > a:is([href*="page_id=4037"], [href*="/problema-v-kvartire"])::before {
  position: absolute;
  top: 50%;
  left: 20px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: #dff2e7;
  font-size: 23px;
  transform: translateY(-50%);
}
.entry-content .ezhf-directory > a:is([href*="page_id=4031"], [href*="/poluchil-kvartiru"])::before { content: "🔑"; }
.entry-content .ezhf-directory > a:is([href*="page_id=4037"], [href*="/problema-v-kvartire"])::before { content: "🔧"; }
.entry-content .ezhf-directory > a:is(
  [href*="page_id=4031"],
  [href*="/poluchil-kvartiru"],
  [href*="page_id=4037"],
  [href*="/problema-v-kvartire"]
):hover,
.entry-content .ezhf-directory > a:is(
  [href*="page_id=4031"],
  [href*="/poluchil-kvartiru"],
  [href*="page_id=4037"],
  [href*="/problema-v-kvartire"]
):focus-visible {
  border-color: #75b894;
  background: linear-gradient(180deg, #fff, #e4f5eb);
  transform: translateY(-2px);
}

/* Service cards and controls */
.entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"]) {
  grid-column: 1 / -1;
  min-height: 126px;
  padding: 45px 76px 22px 22px;
  border: 2px solid #9cc2e3;
  color: var(--ezhf-blue-dark);
  background: linear-gradient(135deg, #eef7ff, #e3f1ff);
}
.entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"])::before {
  position: absolute;
  top: 17px;
  left: 22px;
  color: var(--ezhf-blue);
  content: "Сервис";
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"])::after {
  right: 22px;
  width: 42px;
  height: 42px;
  color: var(--ezhf-blue-dark);
  background: #fff;
  content: "🔎";
  font-size: 20px;
}
.entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"]):hover,
.entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"]):focus-visible {
  border-color: var(--ezhf-blue);
  background: linear-gradient(135deg, #e5f3ff, #d8ebfb);
  transform: none;
}

/* Expandable situation cards remain actions, not static information */
.issue-card {
  border-color: #bed6ea;
  box-shadow: 0 7px 20px rgba(20,93,160,.065);
}
.issue-card summary strong { color: var(--ezhf-blue-dark); }
.issue-card summary::after {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ezhf-blue-soft);
}
.issue-card[open] {
  border-color: #86add2;
  box-shadow: 0 9px 24px rgba(20,93,160,.09);
}

@media (max-width: 700px) {
  .entry-content .ezhf-directory > a { min-height: 96px; padding: 17px 52px 17px 17px; }
  .entry-content .ezhf-directory > a:is(
    [href*="page_id=4031"],
    [href*="/poluchil-kvartiru"],
    [href*="page_id=4037"],
    [href*="/problema-v-kvartire"]
  ) { min-height: 106px; padding-left: 70px; }
  .entry-content .ezhf-directory > a:is([href*="page_id=4031"], [href*="/poluchil-kvartiru"])::before,
  .entry-content .ezhf-directory > a:is([href*="page_id=4037"], [href*="/problema-v-kvartire"])::before {
    left: 15px;
    width: 42px;
    height: 42px;
  }
  .entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"]) {
    min-height: 122px;
    padding: 43px 66px 18px 18px;
  }
  .entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"])::before { left: 18px; }
  .entry-content .ezhf-directory > a:is([href*="page_id=4039"], [href*="/rso-po-municzipalitetam"])::after { right: 16px; }
}

/* Единая ширина фирменного блока шапки */
.site-branding__text {
  flex: 0 1 395px;
  width: min(395px, 100%);
  max-width: 395px;
}

.site-description {
  max-width: 100%;
  font-size: 14px;
  line-height: 1.3;
}

/* Полное название в одну строку под основным */
.site-description {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  font-size: clamp(10.5px, .88vw, 12px);
  line-height: 1.3;
  letter-spacing: -.01em;
}

@media (max-width: 680px) {
  .site-description { display: none; }
}


@media (min-width: 681px) and (max-width: 900px) {
  .site-branding__text {
    width: min(374px, 100%);
    max-width: 374px;
  }
}


/* Однострочный фирменный блок на планшетах */
@media (min-width: 681px) {
  .site-title { white-space: nowrap; }
}

@media (min-width: 901px) and (max-width: 1100px) {
  .site-branding__text {
    flex: 0 1 360px;
    width: min(360px, 100%);
    max-width: 360px;
  }

  .site-title { font-size: 34px; }
  .site-description { font-size: 10.5px; }
}

@media (min-width: 681px) and (max-width: 900px) {
  .site-branding__text {
    width: min(340px, 100%);
    max-width: 340px;
  }

  .site-title { font-size: 32px; }
  .site-description { font-size: 9.8px; }
}


/* Однострочная полная подпись на ПК */
@media (min-width: 1101px) {
  .site-description {
    width: 481px;
    max-width: none;
    font-size: 14px;
    font-size: 14.5px;
    font-weight: 500;
    letter-spacing: 0;
    transform: scaleX(.775);
    transform-origin: left center;
  }
}


/* Structure and leadership directory */
.staff-section { margin-top: 34px; }
.staff-section > h2 { margin-bottom: 18px; }
.staff-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.staff-card {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--ezhf-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(23,62,98,.055);
}
.staff-card__role {
  min-height: 2.7em;
  margin: 0 0 9px;
  color: var(--ezhf-muted);
  font-size: 14px;
  line-height: 1.35;
}
.staff-card h3 {
  margin: 0 0 14px;
  color: var(--ezhf-blue-dark);
  font-size: clamp(18px, 2vw, 21px);
  line-height: 1.25;
}
.staff-card__phone {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 8px 13px;
  border-radius: 10px;
  color: var(--ezhf-blue-dark);
  background: var(--ezhf-blue-soft);
  font-weight: 750;
  text-decoration: none;
}
.staff-card__phone:hover,
.staff-card__phone:focus-visible {
  color: #fff;
  background: var(--ezhf-blue);
}
.staff-note {
  margin-top: 28px;
  padding: 18px 20px;
  border-left: 4px solid var(--ezhf-blue);
  border-radius: 10px;
  background: var(--ezhf-blue-soft);
}
@media (max-width: 700px) {
  .staff-section { margin-top: 28px; }
  .staff-grid { grid-template-columns: 1fr; gap: 12px; }
  .staff-card { padding: 18px; }
  .staff-card__role { min-height: 0; }
  .staff-card__phone { width: 100%; justify-content: center; }
}


/* Cookie consent */
.cookie-consent {
  position: fixed;
  z-index: 10000;
  right: 18px;
  bottom: 18px;
  left: 18px;
  color: var(--ezhf-ink);
}
.cookie-consent[hidden] { display: none !important; }
.cookie-consent__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: 17px 18px;
  border: 1px solid #c9d8e6;
  border-radius: 15px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 14px 40px rgba(4,35,65,.2);
  backdrop-filter: blur(8px);
}
.cookie-consent__copy { min-width: 0; }
.cookie-consent__copy strong {
  display: block;
  margin-bottom: 4px;
  color: var(--ezhf-blue-dark);
  font-size: 17px;
}
.cookie-consent__copy p {
  max-width: 700px;
  margin: 0;
  color: var(--ezhf-muted);
  font-size: 14px;
  line-height: 1.45;
}
.cookie-consent__copy a { font-weight: 700; }
.cookie-consent__actions {
  display: flex;
  flex: 0 0 auto;
  gap: 9px;
}
.cookie-consent__button {
  min-height: 42px;
  margin: 0;
  white-space: nowrap;
}
.cookie-settings-button {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  margin-top: 10px;
}
@media (max-width: 760px) {
  .cookie-consent { right: 10px; bottom: 10px; left: 10px; }
  .cookie-consent__inner {
    display: block;
    padding: 16px;
    border-radius: 13px;
  }
  .cookie-consent__actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 14px;
  }
  .cookie-consent__button {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
}


/* Показывать компактный логотип только после ухода большой шапки */
@media (max-width: 680px) {
  .compact-nav-brand {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, visibility .16s ease;
  }
  .primary-nav.is-sticky .compact-nav-brand {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
}


/* Исправление показа логотипа в закреплённой мобильной панели */
@media (max-width: 680px) {
  .compact-nav-brand { display: flex; }
  .primary-nav.is-sticky .compact-nav-brand { display: flex; }
}


/* Однострочная компоновка закреплённой мобильной панели */
@media (max-width: 680px) {
  .compact-nav-brand {
    position: absolute;
    left: 0;
    width: 70px;
    height: 44px;
    align-items: center;
    justify-content: flex-start;
  }
  .compact-nav-brand__image {
    display: block;
    width: auto;
    max-width: 68px;
    max-height: 34px;
    object-fit: contain;
  }
  .primary-nav.is-sticky .primary-nav__inner {
    grid-template-columns: minmax(62px, 1fr) 44px 44px 44px;
    grid-template-rows: auto auto;
  }
  .primary-nav.is-sticky .compact-nav-brand {
    position: static;
    grid-column: 1;
    grid-row: 1;
  }
  .primary-nav.is-sticky .compact-nav-search { grid-column: 2; grid-row: 1; }
  .primary-nav.is-sticky .mobile-nav-phone { grid-column: 3; grid-row: 1; }
  .primary-nav.is-sticky .menu-toggle { grid-column: 4; grid-row: 1; }
}


/* Корректное открытие и закрытие мобильных подменю по стрелке */
@media (max-width: 1100px) {
  .primary-menu .menu-item-has-children:not(.is-submenu-open) > .sub-menu,
  .primary-menu .menu-item-has-children:not(.is-submenu-open) > .mega-menu {
    display: none;
  }
  .primary-menu .menu-item-has-children.is-submenu-open > .sub-menu,
  .primary-menu .menu-item-has-children.is-submenu-open > .mega-menu {
    display: block;
  }
}


/* Более ясная визуальная иерархия mega-menu */
@media (min-width: 1101px) {
  .primary-menu .mega-menu {
    gap: 12px;
    padding: 14px;
  }
  .primary-menu .mega-menu__group {
    min-width: 0;
    padding: 13px;
    border: 1px solid #e1eaf3;
    border-radius: 11px;
    background: #f8fbff;
  }
  .primary-menu .mega-menu__heading {
    margin: 0 0 7px;
    padding: 0 2px 8px;
    border-bottom: 1px solid #d9e6f2;
    color: var(--ezhf-blue-dark);
    font-size: 13px;
    letter-spacing: .025em;
    text-transform: none;
  }
  .primary-menu .mega-menu__links > li + li {
    border-top: 1px solid #e9eff5;
  }
  .primary-menu .mega-menu__links a {
    position: relative;
    min-height: 40px;
    padding: 8px 27px 8px 9px;
  }
  .primary-menu .mega-menu__links a::after {
    position: absolute;
    top: 50%;
    right: 9px;
    color: #7b9ab7;
    content: "→";
    font-size: 15px;
    transform: translateY(-50%);
  }
  .primary-menu .mega-menu__links > li:first-child > a {
    color: var(--ezhf-blue-dark);
    font-weight: 700;
  }
}
@media (max-width: 1100px) {
  .primary-menu .mega-menu__group {
    margin: 8px 6px;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 10px;
    background: rgba(4,45,82,.18);
  }
  .primary-menu .mega-menu__group + .mega-menu__group { margin-top: 10px; }
  .primary-menu .mega-menu__heading {
    margin: 2px 6px 5px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(255,255,255,.18);
    color: #d6eaff;
    font-size: 12px;
    letter-spacing: .035em;
    text-transform: none;
  }
  .primary-menu .mega-menu__links > li + li {
    border-top: 1px solid rgba(255,255,255,.1);
  }
  .primary-menu .mega-menu__links a { padding-inline: 9px; }
  .primary-menu .mega-menu__links > li:first-child > a {
    font-weight: 700;
    opacity: 1;
  }
}


/* Ровные строки и понятное активное состояние мобильного меню */
@media (max-width: 1100px) {
  .primary-menu > li { margin: 2px 0; }
  .primary-menu > li > .menu-parent {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    align-items: stretch;
    overflow: hidden;
    border-radius: 10px;
  }
  .primary-menu > li > .menu-parent > a {
    min-height: 52px;
    padding: 0 14px;
    border-radius: 0;
    background: transparent;
  }
  .primary-menu > li > .menu-parent > .submenu-toggle {
    width: 54px;
    min-height: 52px;
    margin: 0;
    border-radius: 0;
  }
  .primary-menu > li.current-menu-item > .menu-parent,
  .primary-menu > li.current-menu-ancestor > .menu-parent {
    background: rgba(4,45,82,.28);
    box-shadow: inset 3px 0 0 #9fd1f7;
  }
  .primary-menu > li.current-menu-item > .menu-parent > a,
  .primary-menu > li.current-menu-ancestor > .menu-parent > a,
  .primary-menu > li.current-menu-item > .menu-parent > .submenu-toggle,
  .primary-menu > li.current-menu-ancestor > .menu-parent > .submenu-toggle {
    background: transparent;
  }
}
@media (max-width: 1100px) and (hover: none) {
  .primary-menu > li > .menu-parent > a:hover { background: transparent; }
  .primary-menu > li > .menu-parent > .submenu-toggle:hover { background: rgba(4,45,82,.16); }
}
