/*
 * Шапка — раскладка по образцу photo.yarkiy.ru, но в палитре сайта:
 * тёмно-коричневый #2B2620 и бронза #ed7c23 вместо чёрного с синим.
 *
 * Полосы:
 *   .hdr-mid  — логотип, адрес, телефон, поиск, кнопка расчёта;
 *   .hdr-bott — «Каталог услуг» с мега-меню, ссылки информации
 *               и выпадающий пункт с остальными разделами.
 */

.hdr{
    --hdr-dark: #2B2620;
    --hdr-accent: #ed7c23;
    --hdr-accent-dark: #c96a19;
    --hdr-light: #ed7c23;
    --hdr-cream: #F6F1E8;
    --hdr-border: #E6DDCE;
    --hdr-text: #2B2620;
    --hdr-muted: #5A5148;

    position: relative;
    z-index: 200;
    background: #fff;
    font-family: inherit;
}

.hdr-container{
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

/* ============ Полоса 1: логотип и контакты ============ */

.hdr-mid{ padding: 14px 0; background: #fff; }
.hdr-mid .hdr-container{ gap: 30px; }

.hdr-logo{ flex: 0 0 auto; line-height: 0; }
.hdr-logo img,
.hdr-logo .custom-logo{
    width: 190px;
    height: 60px;
    max-width: none;
    object-fit: contain;
    object-position: left center;
}
.hdr-logo .site-title{
    font-size: 22px;
    font-weight: 500;
    color: var(--hdr-text);
    line-height: 1.2;
}

.hdr-contacts{
    display: flex;
    align-items: center;
    gap: 22px;
    margin-left: auto;
}

.hdr-contact{
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--hdr-text);
    font-size: 14px;
    line-height: 1.3;
    transition: color .15s;
}
.hdr-contact svg{
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: var(--hdr-accent);
}
.hdr-contact:hover{ color: var(--hdr-accent); }

.hdr-contact-address span{
    display: block;
    max-width: 260px;
    font-size: 13px;
    color: var(--hdr-muted);
}
.hdr-contact-phone{
    font-weight: 500;
    font-size: 17px;
    white-space: nowrap;
}

.hdr-search{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.hdr-search svg{ width: 18px; height: 18px; fill: var(--hdr-accent); }
.hdr-search:hover{ background: var(--hdr-cream); border-color: var(--hdr-accent); }

/* Кнопка расчёта стоит на месте корзины образца — акцент справа сохранён,
   но ведёт в калькулятор, а не в магазин. */
.hdr-cta{
    display: inline-flex;
    align-items: center;
    padding: 11px 20px;
    /* Как у кнопок темы (.global-btn): скругление одно на весь сайт. */
    border-radius: 10px;
    background: var(--hdr-accent);
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
    transition: background .15s;
}
.hdr-cta:hover,
.hdr-cta:focus{ background: var(--hdr-accent-dark); color: #fff; }

/* ============ Город, адрес и пункты выдачи ============ */
/* Стоит слева, сразу за логотипом: город определяет и цены, и сроки,
   поэтому его видно раньше телефона. */

.hdr-city{
    position: relative;
    display: flex;
    align-items: center;
    gap: 50px;
    margin-left: 26px;
}

.hdr-city-main{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.hdr-city-btn{
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 15px;
    font-weight: 500;
    color: var(--hdr-text);
    cursor: pointer;
    transition: color .15s;
}
.hdr-city-btn.is-static{ cursor: default; }
.hdr-city-btn:hover{ color: var(--hdr-accent); }
.hdr-city-btn .hdr-pin{ width: 15px; height: 15px; flex: 0 0 15px; fill: var(--hdr-accent); }
.hdr-city-btn .hdr-chevron-down{ width: 9px; height: 5px; }
/* Что город можно сменить, показывает стрелка рядом — подчёркивание
   в паре с ней выглядит уже как две пометки об одном и том же. */
.hdr-city-name{ border-bottom: 0; }

.hdr-city-address{
    max-width: 260px;
    font-size: 13px;
    line-height: 1.3;
    color: var(--hdr-muted);
}
.hdr-city-address:hover{ color: var(--hdr-accent); }

/* Пункты выдачи: прерывистая линия под текстом — привычный знак того,
   что строка кликабельна, но это не обычная ссылка навигации.
   Подчёркивание через border, а не text-decoration: так линия отходит
   от букв и не режет их нижние выносные элементы. */
.hdr-city-points{
    font-size: 13px;
    line-height: 1.3;
    color: var(--hdr-muted);
    white-space: nowrap;
    text-decoration: none;
    border-bottom: 1px dashed currentColor;
    padding-bottom: 1px;
}
.hdr-city-points:hover{
    color: var(--hdr-accent);
    border-bottom-color: var(--hdr-accent);
}

.hdr-city-drop{
    position: absolute;
    top: calc(100% + 14px);
    left: 0;
    z-index: 400;
    width: 460px;
    padding: 16px;
    background: #fff;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 7px 20px rgba(43,38,32,.25);
}
.hdr-city-drop[hidden]{ display: none; }

.hdr-city-search input{
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--hdr-border);
    border-radius: 3px;
    background: #fff;
    font: inherit;
    font-size: 14px;
    color: var(--hdr-text);
}
.hdr-city-search input:focus{ outline: none; border-color: var(--hdr-accent); }

.hdr-city-list{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 14px;
    max-height: 300px;
    margin: 14px 0 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}
.hdr-city-list li[hidden]{ display: none; }
.hdr-city-list a{
    display: block;
    padding: 5px 0;
    font-size: 14px;
    line-height: 1.3;
    color: var(--hdr-muted);
}
.hdr-city-list a:hover{ color: var(--hdr-accent); }
.hdr-city-list .is-current a{ color: var(--hdr-accent); font-weight: 500; }

.hdr-city-empty{
    margin: 14px 0 0;
    font-size: 13px;
    color: var(--hdr-muted);
}
.hdr-city-empty[hidden]{ display: none; }

/* ============ Полоса 2: каталог и информация ============ */

.hdr-bott{ height: 60px; border-top: 1px solid rgba(0,0,0,.05); }
.hdr-bott .hdr-container{ height: 100%; }

.hdr-navbar{
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: 100%;
    padding: 0 13px;
    background: #fff;
    position: relative;
}

.hdr-catalog{ position: relative; height: 100%; display: flex; align-items: center; }

.hdr-catalog-btn{
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 15px;
    border: 0;
    border-radius: 3px;
    background: var(--hdr-cream);
    color: var(--hdr-accent);
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.hdr-catalog-btn svg{ width: 16px; height: 16px; fill: currentColor; }
.hdr-catalog-btn:hover,
.hdr-catalog-btn[aria-expanded="true"]{ background: var(--hdr-accent); color: #fff; }

.hdr-catalog-drop{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 300;
    box-shadow: 0 7px 10px rgba(43,38,32,.25);
    border-radius: 0 0 0 10px;
}
.hdr-catalog.is-open .hdr-catalog-drop{ display: block; }

.hdr-catalog-list{
    width: 300px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
    border-radius: 0 0 0 10px;
}
.hdr-catalog-item{ position: relative; }
.hdr-catalog-item:not(:last-child) .hdr-catalog-link{ box-shadow: 0 1px 0 0 var(--hdr-border); }
.hdr-catalog-item:last-child .hdr-catalog-link{ border-radius: 0 0 0 10px; }

.hdr-catalog-link{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    font-size: 14px;
    font-weight: 500;
    color: var(--hdr-text);
    line-height: 1.3;
}
.hdr-chevron{ width: 6px; height: 12px; flex: 0 0 6px; fill: currentColor; opacity: .6; }

.hdr-catalog-item.is-active > .hdr-catalog-link{ background: var(--hdr-accent); color: #fff; }

/* Правая панель мега-меню. Высоту тянем не меньше списка, чтобы карточка
   выглядела цельной, а не «ступенькой» под конкретным пунктом. */
.hdr-catalog-panel{
    display: none;
    position: absolute;
    top: 0;
    left: 300px;
    min-width: 420px;
    min-height: 100%;
    padding: 18px 26px 24px;
    background: #fff;
    border-left: 1px solid var(--hdr-border);
    border-radius: 0 0 10px 0;
}
.hdr-catalog-item.is-active > .hdr-catalog-panel{ display: block; }

.hdr-panel-head{ margin-bottom: 14px; }
.hdr-panel-head a{
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    color: var(--hdr-text);
}
.hdr-panel-head a:hover{ color: var(--hdr-accent); }

.hdr-panel-list{
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 8px 30px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.hdr-panel-list a{
    display: block;
    padding: 3px 0;
    font-size: 14px;
    color: var(--hdr-muted);
    line-height: 1.4;
}
.hdr-panel-list a:hover{ color: var(--hdr-accent); }

.hdr-nav{
    display: flex;
    align-items: center;
    height: 100%;
    margin-left: 10px;
    flex-wrap: nowrap;
}
.hdr-nav-item{
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    color: var(--hdr-text);
    white-space: nowrap;
    position: relative;
    transition: color .15s;
}
.hdr-nav-item:hover{ color: var(--hdr-accent); }
.hdr-nav-toggle{
    gap: 7px;
    border: 0;
    background: none;
    font-family: inherit;
    letter-spacing: inherit;
    cursor: pointer;
}
.hdr-chevron-down{
    width: 10px;
    height: 5px;
    fill: currentColor;
    opacity: .7;
    transition: transform .15s;
}

.hdr-nav-drop{ position: relative; height: 100%; display: flex; align-items: center; }

.hdr-nav-menu{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 300;
    min-width: 230px;
    padding: 6px 0;
    background: #fff;
    box-shadow: 0 7px 10px rgba(43,38,32,.25);
    border-radius: 0 0 10px 10px;
}
.hdr-nav-drop:hover .hdr-nav-menu,
.hdr-nav-drop.is-open .hdr-nav-menu{ display: block; }
.hdr-nav-drop:hover .hdr-chevron-down{ transform: rotate(180deg); }

.hdr-nav-menu a{
    display: block;
    padding: 9px 18px;
    font-size: 14px;
    line-height: 1.3;
    color: var(--hdr-muted);
}
.hdr-nav-menu a:hover,
.hdr-nav-menu a.is-current{ background: var(--hdr-cream); color: var(--hdr-accent); }
.hdr-nav-item:hover:before,
.hdr-nav-item.is-current:before{
    content: '';
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 0;
    height: 4px;
    background: var(--hdr-accent);
}

/* ============ Мобильная кнопка и подложка ============ */

.hdr-burger{
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 0 7px;
    border: 0;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
}
.hdr-burger span{
    display: block;
    height: 2px;
    background: var(--hdr-accent);
    transition: transform .2s, opacity .2s;
}
.hdr-burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hdr-burger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.hdr-burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* Кнопку закрытия скрипт добавляет в разметку сразу — на десктопе она не нужна. */
.hdr-mobile-close{ display: none; }

.hdr-overlay{
    display: none;
    position: fixed;
    inset: 0;
    z-index: 150;
    background: rgba(43,38,32,.5);
}
.hdr.is-menu-open .hdr-overlay{ display: block; }

/* ============ Планшет ============ */

@media (max-width: 1199px){
    /* Города прижимаем к правой группе. Свободное место делят два auto —
       у города и у контактов, поэтому у контактов его снимаем, иначе блок
       встаёт ровно посередине полосы. */
    .hdr-city{ gap: 14px; margin-left: auto; }
    .hdr-contacts{ margin-left: 0; }
    .hdr-city-address{ display: none; }
    .hdr-nav-item{ padding: 0 9px; font-size: 12px; }
    .hdr-catalog-panel{ min-width: 360px; }
    .hdr-panel-list{ grid-template-columns: 1fr; }
}

/* ============ Мобильные ============ */

@media (max-width: 991px){
    .hdr-burger{ display: flex; }

    /* Метка города встаёт сразу за бургером, слева. */
    .hdr-city{ order: -1; margin-left: 0; gap: 0; }
    .hdr-burger{ order: -2; }
    .hdr-contacts{ margin-left: auto; }
    .hdr-city-points{ display: none; }
    .hdr-city-btn{ font-size: 14px; }
    .hdr-city-drop{
        position: fixed;
        top: 70px;
        left: 10px;
        right: 10px;
        width: auto;
        border-radius: 10px;
    }
    .hdr-city-list{ grid-template-columns: repeat(2, 1fr); max-height: 50vh; }
    .hdr-mid .hdr-container{ position: relative; gap: 18px; }
    .hdr-logo{
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
    .hdr-logo img,
    .hdr-logo .custom-logo{ width: 150px; height: 48px; }
    .hdr-contacts{ gap: 9px; }
    .hdr-contact-phone{ font-size: 15px; }
    .hdr-contact-phone span{ display: none; }
    .hdr-cta{ display: none; }

    /* Нижняя полоса превращается в выезжающую панель со всеми пунктами:
       каталогом, информацией и разделами, которые скрыты вместе с тёмной полосой. */
    .hdr-bott{
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 200;
        width: 300px;
        max-width: 85vw;
        height: auto;
        border: 0;
        background: #fff;
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform .25s ease;
    }
    .hdr.is-menu-open .hdr-bott{ transform: translateX(0); }
    .hdr-bott .hdr-container{ display: block; padding: 60px 0 30px; max-width: none; }

    .hdr-navbar{ display: block; height: auto; padding: 0; box-shadow: none; }

    .hdr-catalog{ display: block; height: auto; }
    .hdr-catalog-btn{
        width: 100%;
        justify-content: flex-start;
        border-radius: 0;
        padding: 14px 20px;
    }

    .hdr-catalog-drop{
        position: static;
        display: none;
        box-shadow: none;
        border-radius: 0;
    }
    .hdr-catalog.is-open .hdr-catalog-drop{ display: block; }
    .hdr-catalog-list{ width: auto; min-height: 0; border-radius: 0; }
    .hdr-catalog-link{ padding: 12px 20px; }
    .hdr-catalog-item.is-active > .hdr-catalog-link{ background: var(--hdr-cream); color: var(--hdr-text); }
    .hdr-catalog-item .hdr-chevron{ transform: rotate(90deg); }

    .hdr-catalog-panel{
        position: static;
        display: none;
        min-width: 0;
        min-height: 0;
        padding: 4px 20px 12px 32px;
        border: 0;
        border-radius: 0;
        background: var(--hdr-cream);
    }
    .hdr-catalog-item.is-open > .hdr-catalog-panel{ display: block; }
    .hdr-catalog-item.is-active:not(.is-open) > .hdr-catalog-panel{ display: none; }
    .hdr-catalog-item.is-open > .hdr-catalog-link .hdr-chevron{ transform: rotate(-90deg); }
    .hdr-panel-head{ display: none; }
    .hdr-panel-list{ grid-template-columns: 1fr; gap: 2px; }

    .hdr-nav{ display: block; height: auto; margin: 0; overflow: visible; }
    .hdr-nav-item{
        display: block;
        height: auto;
        padding: 12px 20px;
        border-bottom: 1px solid var(--hdr-border);
        text-transform: none;
        font-size: 14px;
        white-space: normal;
    }
    .hdr-nav-item:hover:before,
    .hdr-nav-item.is-current:before{ display: none; }

    .hdr-nav-drop{ display: block; height: auto; }
    .hdr-nav-toggle{
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }
    .hdr-nav-menu,
    .hdr-nav-drop:hover .hdr-nav-menu{
        display: none;
        position: static;
        min-width: 0;
        padding: 0;
        box-shadow: none;
        border-radius: 0;
        background: var(--hdr-cream);
    }
    .hdr-nav-drop.is-open .hdr-nav-menu{ display: block; }
    .hdr-nav-drop.is-open .hdr-chevron-down{ transform: rotate(180deg); }
    .hdr-nav-menu a{ padding: 10px 20px 10px 32px; }

    /* Крестик встаёт на место бургера — там, где палец уже был. */
    .hdr-mobile-close{
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 10px;
        left: 12px;
        right: auto;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 0;
        background: none;
        font-size: 40px;
        line-height: 1;
        color: var(--hdr-text);
        cursor: pointer;
    }
}

@media (max-width: 575px){
    /* Поиск на самых узких экранах нужен — оставляем кнопку видимой. */
    .hdr-search{ display: flex; }

    /* Город сжимается до одной метки: название и адрес не помещаются. */
    .hdr-city-btn .hdr-city-name,
    .hdr-city-btn .hdr-chevron-down,
    .hdr-city-address{ display: none; }
    .hdr-city-btn{ gap: 0; }
    /* Метка города в один ряд с телефоном и поиском — тот же размер значка. */
    .hdr-city-btn .hdr-pin{ width: 18px; height: 18px; flex: 0 0 18px; }
    .hdr-city{ gap: 0; }

    .hdr-city-list{ grid-template-columns: 1fr; }
    .hdr-logo img,
    .hdr-logo .custom-logo{ width: 130px; height: 42px; }
}

/* Экраны уже 1400px: нижняя полоса не вмещает все пункты, поэтому самый
   длинный прячем — он остаётся в подвале и в разделе «Информация». */
@media (max-width: 1399px){
    .hdr-nav-item[href*="/metod-ocifrovki/"]{ display: none; }
}

/* Только планшет: город прижат к правой группе. Ниже 992px он уезжает
   влево, к бургеру, поэтому нижнюю границу задаём явно — иначе это
   правило стоит в файле последним и перебивает мобильное. */
@media (min-width: 992px) and (max-width: 1399px){
    .hdr-city{ margin-left: auto; }
    .hdr-contacts{ margin-left: 0; }
}
