:root {
    --brand-gradient: linear-gradient(115deg, #ffb329 0%, #ff9100 48%, #ed6a08 100%);
    --brand-gradient-hover: linear-gradient(115deg, #ffc24d 0%, #ffa21a 48%, #f17a1b 100%);
    --brand-ink: #202024;
}

.public-site .button,
.public-site .catalog-pagination .button,
.public-site .contact-map .contact-map-route,
.public-site .basket-add {
    background: var(--brand-gradient);
    border-color: #e87510;
    color: var(--brand-ink);
    letter-spacing: 0;
}

.public-site .button:hover,
.public-site .catalog-pagination .button:hover,
.public-site .contact-map .contact-map-route:hover,
.public-site .basket-add:hover {
    background: var(--brand-gradient-hover);
    border-color: #b74c00;
    color: var(--brand-ink);
}

.public-site .button:focus-visible,
.public-site .basket-add:focus-visible,
.public-site .contact-map-route:focus-visible,
.public-site .brand-tool:focus-visible {
    outline: 3px solid #a54600;
    outline-offset: 3px;
}

.public-site .header-grid,
.public-site .header-grid.has-header-actions {
    --header-brand-width: 160px;
    --header-control-size: 44px;
    --header-control-gap: 8px;
}

.public-site .brand img {
    width: 160px;
    height: 80px;
    object-fit: cover;
    object-position: center;
}

.public-site .footer-brand img {
    width: 176px;
    height: 88px;
    object-fit: cover;
    background: white;
    border-radius: 4px;
    filter: none;
    mix-blend-mode: normal;
}

.public-site .brand-tool {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--brand-ink);
    cursor: pointer;
}

.public-site .brand-tool:hover { background: #ffedcf; }
.public-site .brand-tool:disabled { color: #76767c; cursor: default; }
.public-site .brand-tool:disabled:hover { background: transparent; }
.public-site .brand-tool-wrap { display: inline-flex; flex: 0 0 44px; position: relative; }
.brand-tool svg, .basket-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.brand-tool .basket-count { position: absolute; right: 0; top: 0; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: #a54600; color: white; font: 700 11px/18px Arial, sans-serif; text-align: center; }
.brand-tool .basket-count[hidden] { display: none; }
.brand-tool-wrap::after, .brand-tool[data-tooltip]::after {
    position: absolute; z-index: 5; top: calc(100% + 4px); right: 0; content: attr(data-tooltip);
    width: max-content; max-width: 190px; padding: 6px 8px; background: #202024; color: white;
    border-radius: 4px; font-size: 12px; line-height: 1.4; pointer-events: none; visibility: hidden;
}
.brand-tool-wrap:hover::after, .brand-tool-wrap:focus-within::after,
.brand-tool[data-tooltip]:hover::after, .brand-tool[data-tooltip]:focus-visible::after { visibility: visible; }

.basket-add { margin-top: 14px; min-height: 44px; padding: 10px 14px; border: 1px solid #e87510; border-radius: 6px; font: 700 14px/1.35 Arial, sans-serif; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.basket-add[aria-pressed="true"] { background: #fff4df; border-color: #b74c00; }
.basket-dialog { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(100%, 480px); height: 100%; max-width: 100%; max-height: 100%; padding: 0; border: 0; color: #202024; background: white; }
.basket-dialog::backdrop { background: rgb(0 0 0 / 42%); }
.basket-dialog[open] { display: flex; flex-direction: column; }
.basket-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; border-bottom: 1px solid #dedee2; }
.basket-heading h2 { margin: 0; font-size: 22px; line-height: 1.3; }
.basket-body { flex: 1; min-height: 0; overflow: auto; padding: 20px; }
.basket-list { list-style: none; padding: 0; margin: 0; }
.basket-item { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px 12px; padding: 16px 0; border-bottom: 1px solid #dedee2; }
.basket-item:first-child { padding-top: 0; }
.basket-item strong { font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.basket-item > .brand-tool { grid-column: 2; grid-row: 1; }
.basket-footer { padding: 16px 20px; border-top: 1px solid #dedee2; display: grid; grid-template-columns: 1fr; gap: 10px; }
.basket-footer .button { min-height: 48px; margin: 0; text-align: center; }
.basket-footer .button:disabled { opacity: .5; cursor: default; transform: none; }
.basket-footer [hidden] { display: none; }
.basket-notice { font-size: 14px; line-height: 1.5; color: #65656d; margin: 0 0 16px; }
.basket-status { min-height: 20px; margin: 0; font-size: 13px; }
.basket-empty { margin: 0; }
html.basket-open { overflow: hidden; }

@media (max-width: 1120px) {
    .public-site .header-grid, .public-site .header-grid.has-header-actions { --header-brand-width: 128px; --header-control-gap: 2px; }
    .public-site .brand img { width: 128px; height: 64px; }
}

@media (max-width: 400px) {
    .public-site .header-grid, .public-site .header-grid.has-header-actions { --header-brand-width: 112px; column-gap: 2px; }
    .public-site .brand img { width: 112px; height: 60px; }
    .public-site .header-actions { gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .public-site .button, .public-site .basket-add { transition: none; transform: none; }
}
