/* ==========================================================================
   Site chrome — shared header & footer.

   Loaded via frontend\assets\SiteChromeAsset in every theme that renders
   frontend/views/chrome/_header.php / _footer.php.

   Isolation contract:
   - every rule is scoped under .site-header / .site-footer;
   - no reliance on theme CSS (Tailwind utilities, legacy classes, preflight);
   - colors/fonts come from CSS variables — a theme can re-skin the chrome
     by overriding variables, without touching these rules;
   - JS hooks (js--catalog*, js-favorite-*, js--accordion*, overlay-show)
     are consumed by js/fr-devmall/{menu.js,favorite.js,main-new.js}.

   Breakpoints mirror fr-devmall: 575 / 768 ("sm") / 991 ("md") / 1280 ("lg") / 1600.
   ========================================================================== */

/* --- Fonts (same files as fr-devmall style.css) ------------------------- */

@font-face {
    font-family: 'Open Sans';
    src: local('Open Sans Regular'), local('OpenSans-Regular'),
    url(/shopping/fonts/OpenSans-Regular.woff) format('woff'),
    url(/shopping/fonts/OpenSans-Regular.ttf) format('truetype');
    font-weight: 400;
    font-display: swap;
    font-style: normal;
}

@font-face {
    font-family: 'Open Sans';
    src: local('Open Sans Bold'), local('OpenSans-Bold'),
    url(/shopping/fonts/OpenSans-Bold.woff) format('woff'),
    url(/shopping/fonts/OpenSans-Bold.ttf) format('truetype');
    font-weight: 700;
    font-display: swap;
    font-style: normal;
}

/* --- Scope: variables + self-contained reset ----------------------------- */

.site-header,
.site-footer {
    --sch-font: 'Open Sans', sans-serif;
    --sch-text: #363845;
    --sch-accent: #F26522;
    --sch-accent-soft: #FDBD89;
    --sch-accent-soft-hover-from: #f7c776;
    --sch-accent-soft-hover-to: #fa8d60;
    --sch-field-bg: #EFEFF0;
    --sch-grey: #C6C9D5;
    --sch-grey-dark: #7C808E;
    --sch-border: #DADEE3;
    --sch-icon-bg: #ECEDF0;

    font-family: var(--sch-font);
    font-size: 16px;
    line-height: 150%;
    font-weight: 400;
    color: var(--sch-text);
}

.site-header *, .site-header *::before, .site-header *::after,
.site-footer *, .site-footer *::before, .site-footer *::after {
    box-sizing: border-box;
}

.site-header p, .site-header ul,
.site-footer p, .site-footer ul, .site-footer h3, .site-footer h5 {
    margin: 0;
    padding: 0;
}

.site-header ul, .site-footer ul {
    list-style: none;
}

.site-header a, .site-footer a {
    color: inherit;
    text-decoration: none;
    background-color: transparent;
}

.site-header img, .site-footer img {
    max-width: 100%;
    border: 0;
}

.site-header button,
.site-header input {
    font-family: inherit;
}

.site-header .svg-primary svg path {
    fill: var(--sch-text);
}

/* --- Container (mirrors fr-devmall .container) --------------------------- */

.site-header__container,
.site-footer {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    position: relative;
}

@media (min-width: 575px) {
    .site-header__container,
    .site-footer {
        max-width: 575px;
    }
}

@media (min-width: 768px) {
    .site-header__container,
    .site-footer {
        max-width: 768px;
    }
}

@media (min-width: 991px) {
    .site-header__container,
    .site-footer {
        max-width: 960px;
        padding-left: 0;
        padding-right: 0;
    }
}

@media (min-width: 1280px) {
    .site-header__container,
    .site-footer {
        max-width: 1280px;
    }
}

/* --- Header layout -------------------------------------------------------- */

.site-header {
    width: 100%;
    padding-top: 18px;
    background-color: #fff;
}

.site-header__row {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

@media (min-width: 768px) {
    .site-header__row {
        flex-direction: row;
        justify-content: space-between;
        height: 100%;
    }
}

.site-header__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

@media (min-width: 768px) {
    .site-header__top {
        flex-direction: row-reverse;
        width: auto;
    }
}

.site-header__logo {
    display: block;
    flex-shrink: 0;
    margin-right: 18px;
}

@media (min-width: 991px) {
    .site-header__logo {
        margin-right: 24px;
    }
}

@media (min-width: 1280px) {
    .site-header__logo {
        margin-right: 60px;
    }
}

.site-header__logo-img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* --- Favorites ------------------------------------------------------------ */

.site-header__fav {
    align-items: center;
}

.site-header__fav--mobile {
    display: flex;
}

.site-header__fav--desktop {
    display: none;
}

@media (min-width: 768px) {
    .site-header__fav--mobile {
        display: none;
    }

    .site-header__fav--desktop {
        display: flex;
    }
}

.site-header__fav-link {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.site-header__fav-link svg {
    display: block;
}

.site-header__fav-count {
    margin-left: -6px;
    color: #fff;
    font-size: 12px;
    line-height: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-shrink: 0;
    background-color: var(--sch-accent);
    width: 17px;
    height: 17px;
    border: 1px solid #fff;
    border-radius: 50%;
}

/* --- Catalog button ------------------------------------------------------- */

.site-header__catalog-wrap {
    flex-shrink: 0;
}

.site-header__catalog-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 38px;
    width: max-content;
    min-width: 90px;
    cursor: pointer;
    user-select: none;
    border-radius: 9999px;
    border-width: 0;
    text-align: center;
    font-size: 13px;
    line-height: 150%;
    font-weight: 700;
    color: #fff;
    background-color: var(--sch-accent);
    padding: 10px 20px;
}

.site-header__catalog-btn--desktop {
    display: none;
}

@media (max-width: 990.98px) {
    .site-header__catalog-btn {
        padding: 10px 12px;
        min-width: max-content;
        min-height: max-content;
    }
}

@media (max-width: 767.98px) {
    .site-header__catalog-btn {
        padding: 0;
        width: 34px;
        height: 34px;
        background: none;
    }
}

@media (min-width: 991px) {
    .site-header__catalog-btn--desktop {
        display: flex;
    }

    .site-header__catalog-btn--mobile {
        display: none;
    }
}

.site-header__catalog-btn-label {
    margin-left: 12px;
}

/* Burger icon (classes are also JS hooks: main-new.js toggles .open) */

.site-header .burger {
    border: none;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 14px;
    min-width: 18px;
    width: 18px;
    overflow: hidden;
    background-color: transparent;
    z-index: 100;
    cursor: pointer;
}

.site-header .burger__line {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 50px;
    transition: 0.3s;
    background-color: #fff;
}

.site-header .burger-menu .burger__line:first-child {
    width: 12px;
}

.site-header .burger-menu .burger__line:last-child {
    width: 12px;
}

.site-header .burger-menu.open .burger__line {
    width: 100%;
}

.site-header .burger.open .burger__line:first-child {
    transform: translateY(6px) rotate(45deg);
}

.site-header .burger.open .burger__line:nth-child(2) {
    transform: translateX(calc(100% + 4px));
}

.site-header .burger.open .burger__line:last-child {
    transform: translateY(-6px) rotate(-45deg);
}

@media (max-width: 767.98px) {
    .site-header .burger-menu .burger__line {
        background-color: var(--sch-text);
    }
}

/* --- Search --------------------------------------------------------------- */

.site-header__search {
    width: 100%;
    margin-top: 30px;
}

@media (min-width: 768px) {
    .site-header__search {
        width: auto;
        margin-top: 0;
    }
}

.site-header__search-inner {
    display: flex;
    align-items: center;
}

.site-header__field {
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    border-radius: 9999px;
    background-color: var(--sch-field-bg);
}

@media (min-width: 768px) {
    .site-header__field {
        width: 260px;
    }
}

@media (min-width: 991px) {
    .site-header__field {
        width: 400px;
    }
}

@media (min-width: 1280px) {
    .site-header__field {
        width: 528px;
    }
}

.site-header__field-icon {
    position: absolute;
    left: 13px;
    width: 16px;
    z-index: 3;
    cursor: pointer;
}

.site-header__field-icon svg {
    display: block;
}

.site-header__field-icon svg path {
    fill: var(--sch-grey);
}

.site-header__input {
    height: 38px;
    padding: 15px 15px 15px 45px;
    width: 100%;
    border: 0;
    outline: none;
    border-radius: 9999px;
    background-color: var(--sch-field-bg);
    font-size: 13px;
    line-height: 150%;
    color: var(--sch-text);
}

.site-header__input::placeholder {
    color: var(--sch-grey);
    opacity: 1;
}

.site-header__submit {
    min-height: 38px;
    width: max-content;
    min-width: 90px;
    align-self: stretch;
    margin-left: 12px;
    cursor: pointer;
    user-select: none;
    border-radius: 9999px;
    border-width: 0;
    text-align: center;
    font-size: 13px;
    line-height: 150%;
    font-weight: 700;
    color: #fff;
    background-color: var(--sch-accent-soft);
    padding: 10px 16px;
}

.site-header__submit:hover {
    background: linear-gradient(180deg, var(--sch-accent-soft-hover-from) 0, var(--sch-accent-soft-hover-to) 100%);
}

/* Autocomplete dropdown (legacy .input-datalist hooks) */

.site-header .input-datalist__list {
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 60px 0 rgba(0, 0, 0, 0.15);
    list-style-type: none;
    cursor: pointer;
    z-index: 2;
    position: absolute;
    width: calc(100% - 1px);
    top: calc(100% + 27px);
    margin: 0;
    padding: 0;
}

.site-header .input-datalist__list li {
    border-radius: 5px;
}

.site-header .input-datalist__list li:hover {
    background-color: var(--sch-field-bg);
}

/* --- Catalog dropdown menu -------------------------------------------------
   Markup is rendered server-side (category/ajax-menu-categories,
   frontend/views/category/_menu-for-widget.php) and extended client-side
   by menu.js. State is driven by main-new.js: inline max-height + .catalog-show.
---------------------------------------------------------------------------- */

.site-header .catalog-menu {
    display: flex;
    background: #fff;
    position: fixed;
    top: 70px;
    height: calc(100vh - 70px);
    left: 0;
    overflow: auto;
    width: 100%;
    max-height: 0;
    transition: max-height 0.5s ease;
    z-index: 4;
}

@media (min-width: 991px) {
    .site-header .catalog-menu {
        height: 680px;
        box-shadow: 0 4px 60px 0 rgba(0, 0, 0, 0.15);
        border-radius: 10px;
        max-width: 100%;
        position: absolute;
        top: calc(100% + 24px);
        left: 0;
        overflow: hidden;
    }
}

@media (min-width: 1280px) {
    .site-header .catalog-menu {
        height: 580px;
        width: auto;
    }
}

/* Left column: root categories */

.site-header .catalog-menu--wrap {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    overflow: auto;
    width: 250px;
    scrollbar-color: #DADEE3 none;
}

@media (max-width: 990.98px) {
    .site-header .catalog-menu--wrap {
        width: 100%;
    }
}

@media (min-width: 991px) {
    .site-header .catalog-menu--wrap {
        padding: 5px;
    }
}

.site-header .catalog-menu__brand {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 18px;
    font-size: 16px;
    color: var(--sch-accent-soft);
}

.site-header .catalog-menu__brand svg {
    transform: rotate(-90deg);
}

.site-header .cat__item {
    margin-bottom: 6px;
}

.site-header .catalog-menu__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2px;
    cursor: pointer;
    border-radius: 5px;
    width: 100%;
    max-width: 100%;
    padding: 6px 0 6px 24px;
}

@media (min-width: 991px) {
    .site-header .catalog-menu__item {
        justify-content: flex-start;
        width: 255px;
        padding: 6px 18px;
    }
}

.site-header .catalog-menu__item:hover {
    background-color: var(--sch-field-bg);
}

.site-header .catalog-menu__item.active {
    color: var(--sch-accent-soft);
}

@media (min-width: 991px) {
    .site-header .catalog-menu__item.active {
        background-color: var(--sch-field-bg);
        color: var(--sch-text);
    }
}

.site-header .catalog-menu__item.active svg {
    transition: 0.4s;
    transform: rotate(180deg);
}

.site-header__catalog-item-inner {
    display: flex;
    align-items: center;
}

.site-header__catalog-item-icon {
    width: 16px;
    height: 16px;
    margin-right: 18px;
}

.site-header__catalog-item-chevron {
    display: flex;
    align-items: center;
    margin-right: 18px;
}

@media (min-width: 991px) {
    .site-header__catalog-item-chevron {
        display: none;
    }
}

/* Mobile subcategories (filled by menu.js) */

@media (min-width: 991px) {
    .site-header__catalog-mobile-sub {
        display: none;
    }
}

.site-header .catalog-menu__modile .catalog-menu__modile-item {
    border: 1px solid #DEDEDE;
    border-bottom: none;
}

.site-header .catalog-menu__modile .catalog-menu__modile-item:first-child {
    border-radius: 10px 10px 0 0;
}

.site-header .catalog-menu__modile .catalog-menu__modile-item:last-child {
    border-radius: 0 0 10px 10px;
    border-bottom: 1px solid #DEDEDE;
}

.site-header .catalog-menu__modile-item > div {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    padding: 18px;
}

.site-header .catalog-menu__modile-item ul {
    padding-bottom: 12px;
}

.site-header .catalog-menu__modile-item ul.hidden,
.site-header .catalog-menu__modile-item .icon-minus.hidden,
.site-header .catalog-menu__modile-item .icon-plus.hidden {
    display: none;
}

.site-header .catalog-menu__modile-item li {
    width: 100%;
    display: block;
    padding: 6px 18px 0;
}

.site-header .toggle-submenu {
    margin-left: 12px;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

/* Right column: subcategory detail (desktop) */

.site-header__catalog-detail {
    display: none;
}

@media (min-width: 991px) {
    .site-header__catalog-detail {
        display: flex;
        flex: 1 1 auto;
        min-width: 0;
        padding: 12px 0;
    }
}

.site-header .js--catalog-menu-detail {
    display: block;
    width: 100%;
    max-height: 680px;
    overflow: auto;
    scrollbar-color: #DADEE3 none;
}

.site-header__catalog-detail-list {
    padding: 12px 24px;
}

.site-header .js--catalog-menu-detail a {
    display: block;
}

.site-header .js--catalog-menu-detail a:hover {
    text-decoration: underline;
}

.site-header .catalog-menu-detail--title {
    font-size: 14px;
    color: var(--sch-accent-soft);
    margin-bottom: 6px;
}

@media (min-width: 768px) {
    .site-header .catalog-menu-detail--title {
        font-size: 16px;
        line-height: 150%;
    }
}

/* --- Footer --------------------------------------------------------------- */

.site-footer__body {
    margin-top: 60px;
}

@media (min-width: 991px) {
    .site-footer__body {
        padding-top: 30px;
    }
}

/* FAQ accordion (JS hooks: js--accordion*, main-new.js showAccordion) */

.site-footer__faq-title {
    font-size: 16px;
    line-height: 150%;
    font-weight: 700;
    margin-top: 32px;
}

@media (min-width: 768px) {
    .site-footer__faq-title {
        font-size: 18px;
    }
}

@media (min-width: 991px) {
    .site-footer__faq-title {
        margin-top: 64px;
    }
}

.site-footer__faq {
    margin-top: 24px;
}

@media (min-width: 991px) {
    .site-footer__faq {
        margin-top: 32px;
    }
}

.site-footer__faq-list {
    width: 100%;
}

.site-footer__faq-item {
    border: 1px solid var(--sch-grey);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 12px;
    transition: 0.2s;
    background-color: #fff;
}

.site-footer__faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 16px 12px;
    cursor: pointer;
}

.site-footer__faq-question-text {
    display: flex;
    align-items: center;
}

.site-footer__faq-arrow {
    cursor: pointer;
    width: max-content;
    transition: 0.3s;
}

.site-footer__faq-arrow svg {
    display: block;
}

.site-footer__faq-item.open .site-footer__faq-arrow {
    transform: rotate(180deg);
}

.site-footer__faq-answer {
    background-color: #fff;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
}

.site-footer__faq-answer-inner {
    padding: 16px;
}

/* Feature blocks */

.site-footer__blocks {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 60px;
}

@media (min-width: 768px) {
    .site-footer__blocks {
        gap: 24px;
        margin-top: 40px;
    }
}

.site-footer__block {
    display: flex;
    width: 100%;
    border: 1px solid var(--sch-border);
    padding: 12px;
}

@media (min-width: 768px) {
    .site-footer__block {
        padding: 18px;
    }
}

@media (min-width: 991px) {
    .site-footer__block {
        width: calc(50% - 12px);
    }
}

.site-footer__block-icon {
    border-radius: 50%;
    padding: 9px;
    background-color: var(--sch-icon-bg);
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.site-footer__block-icon img {
    width: 100%;
    height: 100%;
}

.site-footer__block-body {
    margin-left: 12px;
}

@media (min-width: 768px) {
    .site-footer__block-body {
        margin-left: 18px;
    }
}

.site-footer__block-name {
    font-size: 16px;
    font-weight: 400;
}

.site-footer__block-text {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .site-footer__block-text {
        font-size: 14px;
    }
}

/* Footer menu + links */

.site-footer__menu {
    margin-top: 30px;
    padding-bottom: 30px;
}

@media (min-width: 768px) {
    .site-footer__menu {
        padding-top: 18px;
        padding-bottom: 60px;
    }
}

.site-footer__menu-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

@media (min-width: 768px) {
    .site-footer__menu-row {
        flex-direction: row;
        align-items: flex-start;
    }
}

.site-footer__logo {
    display: flex;
    flex-shrink: 0;
    max-width: 172px;
    max-height: 40px;
}

.site-footer__logo-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.site-footer__menu-side {
    width: 100%;
}

@media (min-width: 768px) {
    .site-footer__menu-side {
        margin-left: 30px;
    }
}

@media (min-width: 991px) {
    .site-footer__menu-side {
        margin-left: 60px;
        padding-left: 18px;
    }
}

.site-footer__links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    margin-top: 30px;
}

@media (min-width: 768px) {
    .site-footer__links {
        justify-content: flex-start;
        margin-top: 0;
    }
}

.site-footer__link {
    margin-right: 12px;
    margin-bottom: 6px;
    font-size: 14px;
}

@media (min-width: 1280px) {
    .site-footer__link {
        margin-right: 18px;
    }
}

.site-footer__link:hover {
    text-decoration: underline;
}

.site-footer__text {
    margin-top: 30px;
    font-size: 13px;
    line-height: 150%;
    color: var(--sch-grey-dark);
}

@media (min-width: 768px) {
    .site-footer__text {
        margin-top: 18px;
        font-size: 14px;
    }
}

@media (max-width: 767.98px) {
    .site-footer__text {
        text-align: center;
    }
}

/* --- Favorites overlay (triggered from the header) -------------------------
   Behaviour: main-new.js showModal — inline z-index + .overlay-show class.
   Kept global (overlay markup lives in theme layouts, outside .site-header). */

.overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: -1;
    opacity: 0;
    transition: 0.3s;
}

.overlay.overlay-show {
    opacity: 1;
}
