/* Shared compact catalog/services navigation; isolated from legacy menu scripts. */
.lpm-header { position: relative; z-index: 100; }
.lpm-header > .inner-min.mobile-menu { display: block; padding-top: 24px; padding-bottom: 24px; }
.lpm-header .main-header { position: relative; display: grid; grid-template-columns: minmax(170px, 1fr) auto auto auto; align-items: center; gap: 20px; padding: 0; width: 100%; }
.lpm-header .hb_r { display: contents; }
.lpm-header .header-logo-pc { grid-column: 1; grid-row: 1; display: flex; gap: 14px; align-items: center; margin: 0; border: 0; max-width: none; }
.lpm-header .header-logo { font-size: 40px; line-height: 1; white-space: nowrap; }
.lpm-header .logo_sitename { font-size: 14px; line-height: 1.25; max-width: 105px; }
.lpm-header .header-logo-mobile { display: none; }
.lpm-header .h_contacts { grid-column: 3; grid-row: 1; display: flex; flex-direction: column; gap: 2px; align-items: flex-start; margin: 0; }
.lpm-header .h_tel { font-size: 21px; line-height: 1.25; white-space: nowrap; }
.lpm-header .h_mail { grid-column: 4; grid-row: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; }
.lpm-header .h_mail-label { font-size: 14px; line-height: 1.25; }
.lpm-header .h_mail a { font-size: 17px; line-height: 1.2; }
.lpm-header .header-mobile-email { display: none; }
.lpm-navigation { grid-column: 2; grid-row: 1; min-width: 0; }
.lpm-navrow { display: flex; align-items: center; gap: 8px; }
.lpm-entry { display: flex; align-items: center; border-radius: 6px; background: #272727; transition: background .15s; }
.lpm-header .lpm-toplink, .lpm-header .lpm-simplelink { display: flex; align-items: center; min-height: 40px; padding: 10px 12px; color: #fff; font-size: 13px; line-height: 1.2; font-weight: 600; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.lpm-header .lpm-toplink { padding-right: 2px; }
.lpm-header .lpm-simplelink { border-radius: 6px; background: #272727; }
.lpm-toggle { display: flex; justify-content: center; align-items: center; min-width: 28px; align-self: stretch; padding: 0 6px; color: #f0a73c; border: 0; background: transparent; cursor: pointer; }
.lpm-toggle .lpm-chevron { transform: rotate(90deg); }
.lpm-navitem.is-open .lpm-entry, .lpm-entry:hover, .lpm-header .lpm-simplelink:hover { background: #34312b; }
.lpm-navitem.is-open .lpm-toggle .lpm-chevron { transform: rotate(-90deg); }
.lpm-entry.is-current .lpm-toplink, .lpm-header .lpm-simplelink.is-current { color: #f0a73c; }
.lpm-panel { position: absolute; top: calc(100% + 14px); left: 0; right: 0; z-index: 120; background: #272727; border: 1px solid #333; border-radius: 10px; box-shadow: 0 24px 45px #0006; padding: 26px 28px 0; color: #fff; text-align: left; }
.lpm-panel[hidden], .lpm-group[hidden] { display: none !important; }
.lpm-panel::before { content: ''; position: absolute; top: -18px; left: 0; right: 0; height: 18px; }
.lpm-panel__body { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 30px; min-height: 214px; padding: 8px 0 24px; }
.lpm-categories { display: flex; flex-direction: column; gap: 4px; padding-right: 22px; border-right: 1px solid #444; }
.lpm-category { display: grid; grid-template-columns: 22px minmax(0, 1fr) 14px; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 10px 12px; margin: 0; color: #e7e7e7; background: transparent; border: 0; border-left: 3px solid transparent; border-radius: 5px; font: inherit; font-size: 15px; line-height: 1.3; text-align: left; cursor: pointer; transition: color .15s, background .15s; }
.lpm-category.is-selected { border-left-color: #f0a73c; background: #f0a73c17; color: #f0a73c; }
.lpm-category:hover { background: #ffffff08; }
.lpm-category.is-selected:hover { background: #f0a73c20; }
.lpm-icon { display: block; width: 22px; height: 22px; color: #aaa; }
.lpm-category.is-selected .lpm-icon { color: #f0a73c; }
.lpm-chevron { flex: 0 0 14px; width: 14px; height: 14px; }
.lpm-arrow { flex: 0 0 16px; width: 16px; height: 16px; color: #f0a73c; }
.lpm-header .lpm-group__title { margin: 0 0 17px; padding: 0 0 12px; border-bottom: 1px solid #444; font-size: 21px; line-height: 1.3; font-weight: 500; color: #fff; text-transform: none; letter-spacing: normal; }
.lpm-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; row-gap: 4px; }
.lpm-header .lpm-sublink { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; min-height: 49px; padding: 10px 0; border-bottom: 1px solid #ffffff15; font-size: 15px; line-height: 1.4; color: #f3f3f3; text-decoration: none; font-weight: 400; text-transform: none; overflow-wrap: anywhere; }
.lpm-header .lpm-sublink:hover, .lpm-header .lpm-sublink[aria-current="page"] { color: #f0a73c; }
.lpm-featured { display: flex; align-items: center; gap: 20px; min-height: 90px; padding: 12px 16px; margin-bottom: 18px; border: 1px solid #ffffff0d; border-radius: 7px; background: #1e1e1e; color: #fff; text-decoration: none; }
.lpm-featured > img { display: block; width: 110px; height: 64px; object-fit: cover; border-radius: 4px; }
.lpm-featured__arrow .lpm-arrow { width: 25px; height: 25px; }
.lpm-featured__title { display: block; font-size: 21px; font-weight: 600; line-height: 1.3; }
.lpm-featured__subtitle { display: block; color: #bbb; font-size: 14px; line-height: 1.4; margin-top: 5px; }
.lpm-featured > .lpm-chevron { margin-left: auto; color: #f0a73c; }
.lpm-featured:hover .lpm-featured__title { color: #f0a73c; }
/* Desktop featured service spans the dropdown content width. */
@media (min-width: 1200px) {
    .lpm-featured { width: 100%; max-width: 100%; box-sizing: border-box; }
}
.lpm-panel__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 68px; padding: 14px 0; border-top: 1px solid #444; }
.lpm-all, .lpm-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; color: #fff; text-decoration: none; font: inherit; font-size: 14px; line-height: 1.3; }
.lpm-all:hover { color: #f0a73c; }
.lpm-cta { min-height: 38px; padding: 8px 13px; border: 1px solid #f0a73c; border-radius: 5px; background: transparent; color: #f0a73c; cursor: pointer; }
.lpm-cta:hover { background: #f0a73c; color: #1d1d1d; }
.lpm-cta:hover .lpm-arrow { color: currentColor; }
.lpm-burger { display: none; }
.lpm-header :is(a, button):focus-visible { outline: 2px solid #f0a73c; outline-offset: 3px; }
/* ProductsPage application form on templates without Bootstrap. */
.lpm-application-modal[hidden] { display: none !important; }
.lpm-application-modal { position: fixed; inset: 0; z-index: 1050; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 28px 16px; box-sizing: border-box; background: #0009; }
.lpm-application-dialog { width: 790px; max-width: 100%; }
.lpm-application-modal .modal-content { box-sizing: border-box; }
.lpm-application-modal .modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 0; border: 0; }
.lpm-application-modal .close { flex: 0 0 26px; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; cursor: pointer; }
.lpm-application-modal .input-wrapper { flex: 1 1 0; min-width: 0; }
.lpm-application-modal input { box-sizing: border-box; }
@media (max-width: 600px) {
    .lpm-application-modal { padding: 16px 12px; }
    .lpm-application-modal .modal-content { padding: 24px 20px; }
    .lpm-application-modal .modal-title { font-size: 26px; line-height: 1.2; padding-top: 0; }
    .lpm-application-modal .modal-subtitle { font-size: 15px; line-height: 1.5; }
    .lpm-application-modal .modal-body { margin-top: 32px; }
    .lpm-application-modal .modal-inputs { flex-direction: column; gap: 20px; }
}
.footer .bottom-menu ul { flex-wrap: wrap; }
/* Keep the footer links in two deliberate rows; retain the mobile list. */
@media (min-width: 1001px) {
    .footer .bottom-menu { min-width: 0; }
    .footer .bottom-menu ul { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 20px; }
    .footer .bottom-menu li { justify-self: stretch; display: flex; }
    .footer .bottom-menu li > a { flex: 1; box-sizing: border-box; padding: 9px 20px; }
}
@media (min-width: 1500px) {
    .lpm-header .header-logo { font-size: 44px; }
    .lpm-header .logo_sitename, .lpm-header .h_mail-label { font-size: 16px; }
    .lpm-header .lpm-toplink, .lpm-header .lpm-simplelink { font-size: 14px; }
}
@media (min-width: 1200px) and (max-width: 1399px) {
    .lpm-header .main-header { grid-template-columns: minmax(145px, 1fr) auto auto auto; gap: 12px; }
    .lpm-header .header-logo-pc { gap: 8px; }
    .lpm-header .header-logo { font-size: 32px; }
    .lpm-header .logo_sitename { font-size: 12px; max-width: 85px; }
    .lpm-header .h_tel { font-size: 18px; }
    .lpm-header .h_mail a { font-size: 15px; }
    .lpm-header .h_mail-label { font-size: 12px; }
    .lpm-header .lpm-toplink, .lpm-header .lpm-simplelink { font-size: 12px; padding-left: 9px; padding-right: 9px; }
    .lpm-header .lpm-toplink { padding-right: 0; }
    .lpm-navrow { gap: 6px; }
}
@media (max-width: 1199px) {
    .lpm-header > .inner-min.mobile-menu { padding-top: 18px; padding-bottom: 18px; }
    .lpm-header .main-header { display: grid; grid-template-columns: minmax(70px, 1fr) auto 48px; gap: 16px; width: 100%; }
    .lpm-header .header-logo-pc { display: none; }
    .lpm-header .header-logo-mobile { display: block; grid-column: 1; grid-row: 1; }
    .lpm-header .header-logo-mobile svg { width: 72px; height: auto; }
    .lpm-header .h_contacts { display: flex; grid-column: 2; grid-row: 1; gap: 5px; }
    .lpm-header .h_tel { font-size: 18px; line-height: 1.1; }
    .lpm-header .h_mail { display: none; }
    .lpm-header .header-mobile-email { display: inline-flex; font-size: 13px; margin-top: 3px; }
    .lpm-header .header-mobile-email::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0A73C' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 6 9 7 9-7'/%3E%3C/svg%3E"); }
    .lpm-burger { display: flex; grid-column: 3; grid-row: 1; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 48px; height: 42px; padding: 10px; background: #222; border: 0; border-radius: 5px; color: #fff; cursor: pointer; }
    .lpm-burger span { display: block; width: 26px; height: 1px; background: currentColor; transition: transform .15s; }
    .lpm-mobile-open .lpm-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .lpm-mobile-open .lpm-burger span:nth-child(2) { opacity: 0; }
    .lpm-mobile-open .lpm-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    .lpm-navigation { display: none; position: absolute; top: calc(100% + 12px); left: 0; right: 0; grid-column: auto; grid-row: auto; max-height: calc(100dvh - 125px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #373737; border-radius: 8px; background: #222; box-shadow: 0 20px 40px #0007; padding: 10px; }
    .lpm-mobile-open .lpm-navigation { display: block; }
    .lpm-navrow { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
    .lpm-entry { justify-content: space-between; }
    .lpm-header .lpm-toplink, .lpm-header .lpm-simplelink { font-size: 14px; padding: 13px 12px; min-height: 44px; white-space: normal; }
    .lpm-toggle { min-width: 44px; }
    .lpm-panel { position: static; left: auto; right: auto; border: 0; box-shadow: none; border-radius: 0; padding: 12px; background: #272727; }
    .lpm-panel::before { display: none; }
    .lpm-panel__body { grid-template-columns: 210px minmax(0, 1fr); gap: 20px; min-height: 0; padding-bottom: 18px; }
    .lpm-categories { padding-right: 16px; }
    .lpm-category { min-height: 44px; font-size: 14px; padding: 9px 7px; gap: 8px; }
    .lpm-header .lpm-group__title { font-size: 18px; }
    .lpm-links { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 15px; }
    .lpm-header .lpm-sublink { font-size: 14px; min-height: 46px; }
    .lpm-featured { gap: 12px; padding: 10px; min-height: 72px; }
    .lpm-featured > img { width: 85px; height: 52px; }
    .lpm-featured__title { font-size: 18px; }
    .lpm-featured__subtitle { font-size: 12px; }
    .lpm-featured__arrow { display: none; }
    .lpm-panel__footer { min-height: 54px; padding: 12px 0 0; }
    .lpm-all, .lpm-cta { font-size: 13px; }
}
@media (max-width: 700px) {
    .lpm-header .main-header { grid-template-columns: minmax(62px, 1fr) auto 44px; gap: 10px; }
    .lpm-header .header-logo-mobile svg { width: 65px; }
    .lpm-header .h_tel { font-size: 16px; }
    .lpm-header .header-mobile-email { font-size: 12px; }
    .lpm-burger { width: 44px; }
    .lpm-panel__body { display: block; }
    .lpm-categories { border: 0; border-bottom: 1px solid #444; padding: 0 0 10px; margin-bottom: 16px; gap: 1px; }
    .lpm-category { grid-template-columns: 20px minmax(0, 1fr) 14px; min-height: 40px; padding: 8px 10px; }
    .lpm-icon { width: 20px; height: 20px; }
    .lpm-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
    .lpm-header .lpm-sublink { font-size: 13px; line-height: 1.4; min-height: 46px; }
    .lpm-header .lpm-group__title { font-size: 17px; margin-bottom: 5px; padding-bottom: 10px; }
    .lpm-featured { gap: 10px; margin-bottom: 14px; }
    .lpm-featured > img { width: 62px; height: 52px; }
    .lpm-featured__title { font-size: 16px; }
    .lpm-featured__subtitle { font-size: 11px; margin-top: 3px; }
    .lpm-panel__footer { gap: 12px; flex-wrap: wrap; }
    .lpm-cta { min-height: 36px; padding: 7px 10px; }
}
@media (max-width: 360px) {
    .lpm-header .main-header { gap: 8px; grid-template-columns: 58px auto 40px; }
    .lpm-header .header-logo-mobile svg { width: 58px; }
    .lpm-header .h_tel { font-size: 14px; }
    .lpm-header .h_contacts { gap: 4px; }
    .lpm-burger { width: 40px; }
    .lpm-links { grid-template-columns: 1fr; }
}
/* Mobile/tablet categories are inline, collapsible lists instead of desktop tabs. */
@media (max-width: 1199px) {
    .lpm-panel__body { display: block; min-height: 0; padding: 0 0 12px; }
    .lpm-categories { display: block; padding: 0; margin: 0; border: 0; }
    .lpm-groups { display: none; }
    .lpm-category { min-height: 44px; margin: 2px 0; }
    .lpm-category .lpm-chevron { transform: rotate(90deg); }
    .lpm-category[aria-expanded="true"] .lpm-chevron { transform: rotate(-90deg); }
    .lpm-categories > .lpm-group { padding: 0; margin: 0 0 10px; border: 0; }
    .lpm-header .lpm-group__title { display: none; }
    .lpm-links { display: flex; flex-direction: column; gap: 0; }
    .lpm-header .lpm-sublink { min-height: 42px; padding: 10px 0; font-size: 14px; line-height: 1.4; }
    .lpm-header .lpm-sublink .lpm-arrow { display: none; }
}
