/* Source header and hero proportions; intentionally scoped to this stage. */
.se-utility-nav { background: #f7f9fb; border-bottom: 1px solid #e8edf2; }
/* Match the exact container edges of the header, navigation and hero. */
.se-utility-nav > .se-utility-nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 40px; gap: 24px;
}
.se-utility-nav > .se-utility-nav__inner::before,
.se-utility-nav > .se-utility-nav__inner::after { content: none; }
.se-utility-hours {
  display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto;
  margin: 0; white-space: nowrap; color: #63717b;
  font: 400 12px/1.5 Arial,sans-serif;
}
.se-utility-hours__icon {
  display: block; width: 16px; height: 16px; flex: 0 0 16px;
  color: #315ecb;
}
.se-utility-nav ul {
  display: flex; justify-content: flex-end; align-items: center;
  flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 9px 0;
  min-width: 0; list-style: none;
}
.se-utility-nav a { display: inline-block; color: #63717b; font: 400 12px/1.5 Arial,sans-serif; text-decoration: none; }
.se-utility-nav a:hover { color: #315ecb; text-decoration: underline; text-underline-offset: 3px; }
.se-utility-nav a:focus-visible { outline: 2px solid #315ecb; outline-offset: 3px; }
@media (max-width: 1120px) {
  .site-header .se-utility-nav { display: none; }
  .se-drawer-details .se-utility-nav { background: transparent; border: 0; border-top: 1px solid #e8edf2; padding-top: 14px; }
  .se-drawer-details .se-utility-nav > .se-utility-nav__inner { width: 100% !important; max-width: none !important; margin: 0; padding: 0 !important; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 8px; }
  .se-drawer-details .se-utility-nav ul { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 0; }
  .se-drawer-details .se-utility-nav a { padding: 10px 0; font-size: 13px; }
}
.site-header .header_bg .stroyenergy-header-top { min-height: 86px; padding: 10px 0; }
.stroyenergy-header-logo img { width: 174px; height: 61px; max-width: 174px; }
.stroyenergy-header-region { border-color: #2fc16d; color: #555; padding-left: 14px; font-weight: 400; }
.site-header .stroyenergy-header-top__contacts { font-size: 15px; line-height: 20px; color: #1a243b; }
.stroyenergy-header-email, .site-header .stroyenergy-header-top__contacts .stroyenergy-header-email { margin-top: 0; font-size: 13px; }
.stroyenergy-header-address::before, .stroyenergy-header-email::before { font-family: 'Glyphicons Halflings'; color: #2196f3; display: inline-block; width: 24px; }
.stroyenergy-header-address::before { content: '\e062'; }
.stroyenergy-header-email::before { content: '\2709'; }
.stroyenergy-header-phone-link { color: #222; font: 400 18px/1.2 Arial,sans-serif; }
.stroyenergy-header-telegram { font: 400 12px/1.2 Arial,sans-serif; margin-top: 5px; color: #229ed9; }
body .stroyenergy-nav.navbar { min-height: 70px; background: rgba(49,86,187,.97); box-shadow: none; }
.stroyenergy-nav > .container { min-height: 70px; }
body .stroyenergy-nav .header_nav ul.navbar-nav > li > a { min-height: 70px; font-size: 16px; border-right: 1px solid rgba(26,36,59,.2); }
body .stroyenergy-nav .header_nav .btn { height: 90px; min-width: 244px; border-radius: 0 0 8px 8px; background: #2ebe63; align-self: flex-start; position: relative; margin-bottom: -20px; font-size: 16px; }
.header_bg_bt:not(.header_page_bg):not(.no-hero) { height: 564px; background-size: cover; background-position: center; }
.header_bg_bt::after { background: rgba(26,36,59,.7); }
#header_slider { max-width: none; height: 470px; padding: 130px 60px 100px 0; }
#header_slider .header_slider_title { max-width: none; font-size: 42px; line-height: 40px; }
#header_slider .header_slider_text { font-size: 19px; line-height: 1.4; }
@media (min-width: 1200px) {
  .site-header .container, .stroyenergy-nav > .container, .header_bg_bt > .container { width: min(1270px, calc(100% - 48px)); }
}
@media (max-width: 1199px) {
  body .stroyenergy-nav .header_nav .btn { min-width: 176px; height: 60px; margin-bottom: 0; border-radius: 6px; }
  #header_slider .header_slider_title { font-size: 36px; line-height: 1.15; }
}
@media (max-width: 767px) {
  .site-header .header_bg .stroyenergy-header-top { padding: 14px 0; }
  .stroyenergy-nav > .container { min-height: 60px; }
  body .stroyenergy-nav .header_nav ul.navbar-nav > li > a { min-height: 0; }
  .header_bg_bt:not(.header_page_bg):not(.no-hero) { height: auto; min-height: 420px; }
  #header_slider { height: auto; min-height: 420px; padding: 60px 56px 60px 0; }
  #header_slider .header_slider_title { font-size: 28px; line-height: 1.2; }
  #header_slider .header_slider_text { font-size: 17px; }
  #header_slider .header_slider_more { width: 210px; text-indent: 20px; font-size: 22px; }
}
@media (max-width: 380px) {
  #header_slider { padding-right: 0; padding-bottom: 140px; }
  #header_slider .carousel-control_div { top: auto; bottom: 12px; }
}
/* Contact alignment and a dedicated mobile drawer. */
.site-header .stroyenergy-header-top__brand { flex: 0 1 42%; }
.site-header .stroyenergy-header-top__contacts { flex: 1 1 auto; text-align: left; }
.stroyenergy-header-address, .stroyenergy-header-email { display: grid; grid-template-columns: 18px minmax(0,1fr); column-gap: 8px; align-items: start; }
.stroyenergy-header-address::before, .stroyenergy-header-email::before { width: auto; }
.site-header .stroyenergy-header-top__contacts .stroyenergy-header-email { margin-top: 7px; }
.stroyenergy-header-address { max-width: none; }
.se-menu-open, .se-drawer-heading, .se-menu-backdrop, .se-drawer-details { display: none; }
@media (max-width: 1120px) {
  .site-header { position: sticky; top: 0; z-index: 1200; box-shadow: 0 2px 12px rgba(26,36,59,.08); }
  body.admin-bar .site-header { top: 32px; }
  .site-header .header_bg .stroyenergy-header-top { display: flex; flex-wrap: nowrap; justify-content: space-between; min-height: 80px; padding: 8px 0; gap: 20px; }
  .site-header .stroyenergy-header-top__brand { flex: 0 1 auto; width: auto !important; }
  .site-header .stroyenergy-header-top__contacts, .site-header .stroyenergy-header-top__phone, .site-header .stroyenergy-header-region { display: none !important; }
  .se-menu-open { display: flex; flex-direction: column; justify-content: center; gap: 5px; flex: 0 0 44px; width: 44px; height: 44px; padding: 11px; border: 1px solid #dce4f1; border-radius: 8px; background: #f3f6fc; }
  .se-menu-open span { display: block; height: 2px; width: 22px; background: #3156bb; }
  body .stroyenergy-nav.navbar { position: static !important; min-height: 0; height: 0; background: transparent; }
  .stroyenergy-nav > .container { min-height: 0; }
  body .stroyenergy-nav .header_nav { display: flex !important; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; position: fixed; z-index: 1401; top: 0; right: 0; bottom: 0; width: min(390px, 100%); height: 100dvh; max-height: none; padding: 24px; margin: 0; overflow-y: auto; overscroll-behavior: contain; background: #fff; box-shadow: -12px 0 40px rgba(26,36,59,.16); transform: translateX(105%); visibility: hidden; transition: transform .25s ease, visibility .25s; }
  body.se-menu-is-open .stroyenergy-nav .header_nav { transform: translateX(0); visibility: visible; }
  body.se-menu-is-open { overflow: hidden !important; }
  .se-menu-backdrop:not([hidden]) { display: block; position: fixed; z-index: 1400; inset: 0; border: 0; background: rgba(15,28,48,.48); width: 100%; height: 100%; }
  .se-drawer-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; margin-bottom: 12px; border-bottom: 1px solid #e5eaf2; font-size: 22px; color: #243239; }
  .se-menu-close { width: 44px; height: 44px; border: 0; border-radius: 8px; background: #f3f6fc; color: #3156bb; font: 32px/1 Arial,sans-serif; }
  .stroyenergy-nav .menu-header { flex: 0 0 auto; }
  .stroyenergy-nav .navbar-nav { width: 100%; display: block; }
  .stroyenergy-nav .navbar-nav > li { position: relative; border-bottom: 1px solid #edf0f5; }
  body .stroyenergy-nav .header_nav ul.navbar-nav > li > a { color: #243239; border: 0; min-height: 48px; padding: 14px 42px 14px 0; text-align: left; background: transparent; font-size: 16px; }
  body .stroyenergy-nav .navbar-nav > li > a:hover, body .stroyenergy-nav .navbar-nav > li.current-menu-item > a { color: #3156bb; background: #f3f6fc; }
  .stroyenergy-nav .header_nav .nav-submenu-toggle { position: absolute; right: 0; top: 3px; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 6px; color: #3156bb; background: #f3f6fc; }
  .stroyenergy-nav .dropdown-menu { border: 0; padding: 0 0 10px 12px; }
  .stroyenergy-nav .dropdown-menu a { white-space: normal; overflow-wrap: anywhere; }
  body .stroyenergy-nav .header_nav .btn { height: 52px; margin: 16px 0 0; border-radius: 8px; width: 100%; }
  .se-drawer-details { display: flex; flex-direction: column; gap: 20px; padding-top: 28px; color: #243239; }
  .se-drawer-details .stroyenergy-header-region { border-left: 2px solid #2fc16d; font-size: 13px; }
  .se-drawer-details .stroyenergy-header-top__contacts { font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
  .se-drawer-details .stroyenergy-header-email { margin-top: 10px; font-size: 13px; }
  .se-drawer-details .stroyenergy-header-top__phone { text-align: left; }
  .se-drawer-details .stroyenergy-header-phone-link { font-size: 22px; }
  .se-drawer-details .stroyenergy-header-telegram { margin-top: 12px; font-size: 14px; }
}
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (prefers-reduced-motion: reduce) { body .stroyenergy-nav .header_nav { transition: none; } }
@media (max-width: 1120px) {
  .stroyenergy-nav .header_nav > * { flex-shrink: 0; }
  .stroyenergy-nav .header_nav .test { position: static; width: 100%; }
  body .stroyenergy-nav .header_nav .navbar-nav > li > a { display: block !important; color: #243239 !important; visibility: visible !important; }
  .stroyenergy-nav .header_nav .dropdown-menu { background: #f3f6fc; }
  .stroyenergy-nav .header_nav .dropdown-menu a { color: #334155; }
}
@media (max-width: 1120px) {
  .stroyenergy-nav .header_nav .dropdown-menu { background: #f3f6fc !important; border-radius: 6px; }
}
@media (max-width: 1120px) {
  .site-header .header_bg .container.header { padding-top: 0; padding-bottom: 0; }
  .site-header .header_bg .stroyenergy-header-top { flex-direction: row; align-items: center; height: 80px; min-height: 80px; padding: 8px 0; }
  .site-header .header_bg .stroyenergy-header-top::before,
  .site-header .header_bg .stroyenergy-header-top::after { display: none; }
  .site-header .stroyenergy-header-top__brand { flex: 0 1 auto; justify-content: flex-start; }
  .site-header .stroyenergy-header-logo { flex: 0 0 auto; }
  .site-header .stroyenergy-header-logo img { width: 174px; max-width: 174px; height: auto; }
  .se-menu-open { margin: 0 0 0 auto; align-self: center; }
  .se-menu-open:focus-visible, .se-menu-close:focus-visible, .stroyenergy-nav a:focus-visible,
  .stroyenergy-nav button:focus-visible { outline: 2px solid #3156bb; outline-offset: 3px; }
}
@media (max-width: 767px) {
  #header_slider { padding: 48px 0 104px; min-height: 0; }
  #header_slider .header_slider_title { font-size: clamp(24px, 6.5vw, 30px); line-height: 1.2; overflow-wrap: anywhere; }
  #header_slider .header_slider_text { margin-bottom: 28px; }
  #header_slider .carousel-control_div { top: auto; bottom: 28px; right: 0; width: 112px; height: 47px; }
  #header_slider .carousel-control.left { left: 0; top: 0; bottom: auto; }
  #header_slider .carousel-control.right { left: auto; right: 0; top: 0; }
}
@media (max-width: 1120px) {
  .stroyenergy-nav .header_nav .menu-item-has-children:not(.is-expanded) > .dropdown-menu { display: none !important; }
}
/* Accessible skip link; visible only when reached from the keyboard. */
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 48px; left: 16px; z-index: 100000; padding: 12px 18px; background: #fff; color: #243239; }
@media (max-width: 1120px) {
  .stroyenergy-nav .header_nav .test { margin-top: auto; padding-top: 24px; }
  .se-drawer-details { padding-top: 24px; padding-bottom: max(0px, env(safe-area-inset-bottom)); }
  body.admin-bar .stroyenergy-nav .header_nav { top: 32px; height: calc(100dvh - 32px); }
}
@media (max-width: 782px) {
  body.admin-bar .stroyenergy-nav .header_nav { top: 46px; height: calc(100dvh - 46px); }
}
/* A single, readable contact group with restrained SVG accents. */
.stroyenergy-header-address::before, .stroyenergy-header-email::before { content: none; display: none; }
.se-contact-icon { display: block; width: 19px; height: 19px; flex: 0 0 19px; color: #315ecb; }
.stroyenergy-header-address, .stroyenergy-header-email { grid-template-columns: 19px minmax(0,1fr); gap: 10px; align-items: center; }
.stroyenergy-header-address { color: #354650; line-height: 1.5; }
.stroyenergy-header-email a { color: #526773; text-decoration: none; }
.stroyenergy-header-email a:hover { color: #315ecb; }
.stroyenergy-header-telegram { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; margin-top: 7px; border-radius: 6px; background: #edf5fb; color: #287fa8; font-size: 12px; }
.stroyenergy-header-telegram .se-contact-icon { width: 15px; height: 15px; flex-basis: 15px; color: currentColor; }
.stroyenergy-header-phone-link { font-weight: 700; letter-spacing: -.02em; color: #233239; }
@media (min-width: 1121px) {
  .site-header .stroyenergy-header-top__contacts { padding: 12px 20px; border-left: 1px solid #e4eaf0; }
  .site-header .stroyenergy-header-top__phone { padding: 10px 16px; border: 1px solid #e4eaf0; border-radius: 10px; background: #f8fafc; }
}
/* Plain header contacts: typography and spacing, without cards or fills. */
.site-header .stroyenergy-header-top__contacts { padding: 0; border: 0; }
.site-header .stroyenergy-header-top__phone { padding: 0; border: 0; border-radius: 0; background: transparent; }
.stroyenergy-header-phone-link { font-size: 20px; line-height: 1.35; font-weight: 500; letter-spacing: 0; }
.stroyenergy-header-telegram { padding: 0; border-radius: 0; background: transparent; font-size: 13px; line-height: 1.5; margin-top: 5px; }
.stroyenergy-header-address { font-size: 14px; line-height: 1.5; }
.stroyenergy-header-email a { font-size: 13px; }
.stroyenergy-nav .header_nav .nav-submenu-toggle { display: inline-flex; align-items: center; justify-content: center; }
.nav-submenu-toggle svg { width: 16px; height: 16px; display: block; transition: transform .15s; }
.nav-submenu-toggle[aria-expanded=true] svg { transform: rotate(180deg); }
@media (min-width: 1121px) {
  .stroyenergy-nav .header_nav .nav-submenu-toggle { position: absolute; right: 5px; top: 23px; width: 20px; height: 24px; padding: 0; color: #fff; }
  body .stroyenergy-nav .header_nav ul.navbar-nav > li.menu-item-has-children > a { padding-right: 30px; }
}
/* Hero controls: previous on the left, next on the right on mobile. */
#header_slider .carousel-control { display: flex; align-items: center; justify-content: center; background: transparent; background-image: none; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; color: #fff; opacity: 1; transform: none; text-shadow: none; box-shadow: none; }
#header_slider .carousel-control svg { width: 22px; height: 22px; }
#header_slider .carousel-control:hover { background: rgba(255,255,255,.12); }
#header_slider .carousel-control:focus-visible { outline: 2px solid #fff !important; outline-offset: 4px; }
#header_slider .carousel-control.left, #header_slider .carousel-control.right { transform: none; }

/* Header alignment: flush navigation CTA, no 20px overlap with the hero. */
@media (min-width: 1121px) {
  .site-header .se-utility-nav ul { flex-wrap: nowrap; }
  .site-header .se-utility-nav a { white-space: nowrap; }
  .stroyenergy-nav .header_nav .test {
    display: flex; align-self: stretch; align-items: stretch;
  }
  body .stroyenergy-nav .header_nav .btn {
    position: static; display: inline-flex; align-items: center; justify-content: center;
    height: 70px; min-height: 70px; margin: 0;
    border-radius: 0; align-self: stretch;
  }
}
@media (min-width: 1121px) and (max-width: 1199px) {
  body .stroyenergy-nav .header_nav .btn { min-width: 176px; }
  .site-header .se-utility-nav ul { gap: 12px; }
}
