:root {
  --brand: #7b0057;
  --brand-dark: #5d0042;
  --accent: #ff1649;
  --ink: #211c22;
  --muted: #756c75;
  --line: #e8e2e7;
  --soft: #f7f3f6;
  --white: #fff;
  --shell: 1380px;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #fff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; font-size: 16px; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.shell { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }

.holding-bar { min-height: 34px; background: #241e23; color: #fff; }
.holding-bar__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.holding-name { font-size: 12px; font-weight: 850; letter-spacing: .07em; white-space: nowrap; }
.holding-name span { margin-left: 7px; color: #bdb4bb; font-weight: 500; letter-spacing: 0; text-transform: none; }
.holding-bar nav { display: flex; align-self: stretch; overflow-x: auto; scrollbar-width: none; }
.holding-bar nav a { display: grid; place-items: center; padding: 0 15px; color: #cfc7cd; white-space: nowrap; font-size: 11px; font-weight: 750; letter-spacing: .035em; }
.holding-bar nav a:hover, .holding-bar nav a.active { background: #3a3038; color: #fff; }
.site-header { position: sticky; top: 0; z-index: 30; background: #fff; box-shadow: 0 1px 0 var(--line); }
.header-main { min-height: 86px; display: grid; grid-template-columns: 225px minmax(260px, 1fr) auto auto; align-items: center; gap: 22px; }
.brand img { display: block; width: 212px; height: 64px; object-fit: cover; object-position: center; border-radius: 4px; }
.search { height: 48px; display: flex; overflow: hidden; border: 1px solid #d9d1d7; border-radius: 8px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.search:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(123,0,87,.09); }
.search input { flex: 1; min-width: 0; padding: 0 16px; border: 0; outline: 0; background: transparent; font-size: 15px; }
.search button { width: 52px; border: 0; background: var(--brand); color: white; }
.search svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 2; }
.header-contacts { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.header-contacts a { font-size: 18px; font-weight: 750; }
.header-contacts span { margin-top: 3px; color: var(--muted); font-size: 13px; }
.mobile-menu { display: none; }
.cart-button { display: flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid var(--brand); border-radius: 8px; background: #fff; color: var(--brand); font-weight: 700; }
.cart-button span { display: grid; min-width: 23px; height: 23px; place-items: center; padding: 0 6px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 12px; }
.category-nav { background: var(--brand); color: white; }
.category-nav__inner { height: 48px; display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.category-nav a { display: grid; place-items: center; padding: 0 25px; white-space: nowrap; font-size: 15px; font-weight: 650; }
.category-nav a:hover, .category-nav a.active { background: var(--brand-dark); }

.season-banner { position: relative; display: block; min-height: 118px; overflow: hidden; border-bottom: 1px solid #d7c5cf; background-color: #760050; background-image: url('./gingerbread-2027-banner.webp'); background-position: calc(50% + 470px) center; background-size: auto 220%; background-repeat: no-repeat; }
.season-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #760050 0%, #760050 51%, rgba(118,0,80,.93) 58%, rgba(27,65,43,.18) 78%, rgba(8,45,31,.08) 100%); }
.season-banner__inner { position: relative; z-index: 1; min-height: 118px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-block: 15px; text-align: left; }
.season-banner span { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.season-banner strong { margin-top: 3px; font-family: "Roboto Slab", Georgia, serif; color: #fff; font-size: clamp(22px, 2.4vw, 34px); font-weight: 600; line-height: 1.04; letter-spacing: .015em; text-shadow: 0 2px 12px rgba(0,0,0,.42); }
.season-banner b { margin-top: 7px; color: #fff; font-size: 12px; font-weight: 750; }
.season-banner:hover b { text-decoration: underline; }
.eyebrow, .section-label { margin: 0; color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.breadcrumbs { display: flex; gap: 9px; align-items: center; min-height: 54px; color: #8a8189; font-size: 13px; }
.breadcrumbs a:hover { color: var(--brand); }

.catalog-home { padding: 10px 0 84px; }
.catalog-home[hidden] { display: none; }
.catalog-home h1 { margin: 6px 0 8px; font-family: Georgia, "Times New Roman", serif; color: var(--brand); font-size: clamp(36px, 5vw, 56px); font-weight: 500; line-height: 1.05; }
.catalog-home__intro { margin: 0 0 28px; color: var(--muted); }
.catalog-sections { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.catalog-section-card { position: relative; display: block; min-height: 300px; overflow: hidden; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--brand), #ad0b79); color: #fff; text-align: left; box-shadow: 0 4px 18px rgba(39,0,28,.08); }
.catalog-section-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.catalog-section-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(24,8,19,.02) 34%, rgba(44,0,31,.86) 100%); }
.catalog-section-card__text { position: absolute; right: 18px; bottom: 18px; left: 18px; z-index: 1; }
.catalog-section-card small { display: block; margin-bottom: 5px; font-size: 11px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; opacity: .84; }
.catalog-section-card strong { display: block; font: 600 23px/1.12 Georgia, serif; }
.catalog-section-card span { display: block; margin-top: 9px; font-size: 12px; font-weight: 700; }
.catalog-section-card:hover img { transform: scale(1.035); }
.catalog-section-card:hover span { text-decoration: underline; }

.catalog-layout { display: grid; grid-template-columns: 235px minmax(0, 1fr); gap: 42px; padding-bottom: 84px; }
.catalog-layout[hidden] { display: none; }
.filters { border-right: 1px solid var(--line); padding-right: 26px; }
.filters__head { display: flex; align-items: center; justify-content: space-between; padding: 13px 0 16px; border-bottom: 2px solid var(--ink); font-size: 20px; }
.filters__head > a { color: inherit; font-family: "Roboto Slab", Georgia, serif; font-size: 16px; font-weight: 700; }
.filters__head > a:hover { color: var(--brand); }
.filters__head button { display: none; border: 0; background: transparent; font-size: 30px; }
.catalog-tree { display: flex; flex-direction: column; padding: 13px 0; border-bottom: 1px solid var(--line); }
.catalog-tree details { border: 0; }
.catalog-tree summary { list-style: none; cursor: pointer; }
.catalog-tree summary::-webkit-details-marker { display: none; }
.catalog-tree details[open] > summary span { transform: rotate(90deg); }
.tree-parent span { transition: transform .18s ease; }
.tree-parent { display: flex; justify-content: space-between; padding: 11px 0; font-weight: 650; }
.tree-parent:hover, .tree-parent.active { color: var(--brand); }
.tree-children { display: flex; flex-direction: column; padding: 0 0 8px 13px; }
.tree-children a { display: flex; justify-content: space-between; padding: 8px 0; color: var(--muted); font-size: 14px; }
.tree-children a.active { color: var(--accent); font-weight: 750; }
.tree-children b { min-width: 24px; padding: 2px 5px; border-radius: 999px; background: #f3e7ef; color: var(--brand); font-size: 11px; text-align: center; }
.filter-block { padding: 22px 0; }
.filter-block > strong { display: block; margin-bottom: 13px; }
.size-filter-list { display: grid; gap: 9px; }
.size-filter-list label { display: flex; align-items: center; gap: 9px; color: #514951; font-size: 14px; cursor: pointer; }
.size-filter-list input { width: 17px; height: 17px; accent-color: var(--brand); }

.catalog-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 7px 0 24px; border-bottom: 1px solid var(--line); }
.catalog-heading h1 { margin: 5px 0 7px; font-family: Georgia, "Times New Roman", serif; color: var(--brand); font-size: clamp(32px, 4vw, 48px); font-weight: 500; line-height: 1; }
.catalog-heading p:last-child { margin: 0; color: var(--muted); font-size: 14px; }
.catalog-heading > div > p:last-child { display: none; }
.filter-toggle { display: none; padding: 10px 16px; border: 1px solid var(--brand); border-radius: 7px; background: white; color: var(--brand); font-weight: 700; }
.catalog-toolbar { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.chip { padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #574f56; white-space: nowrap; font-size: 13px; }
.chip:hover, .chip.active { border-color: var(--brand); background: var(--brand); color: white; }
.sort-label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; white-space: nowrap; }
.sort-label select { border: 0; background: transparent; color: var(--ink); outline: 0; }
.catalog-status { display: grid; place-items: center; min-height: 300px; color: var(--muted); }
.catalog-status[hidden] { display: none; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 18px; }
.product-card { min-width: 0; }
.product-card__image { position: relative; display: block; width: 100%; aspect-ratio: 3 / 4; overflow: hidden; border: 0; border-radius: 6px; background: var(--soft); }
.product-card__image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.product-card:hover .product-card__image img { transform: scale(1.025); }
.product-card__badge { position: absolute; top: 10px; left: 10px; padding: 5px 8px; border-radius: 4px; background: rgba(255,255,255,.94); color: var(--brand); font-size: 11px; font-weight: 800; box-shadow: 0 2px 8px rgba(33,28,34,.09); }
.product-card__body { padding-top: 12px; }
.product-card h2 { display: -webkit-box; min-height: 57px; margin: 0 0 8px; overflow: hidden; font-family: Manrope, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; line-height: 1.35; letter-spacing: -.005em; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.product-card__sizes { display: flex; gap: 6px; min-height: 27px; overflow: hidden; }
.size-pill { padding: 4px 7px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); background: #fff; font: inherit; font-size: 11px; white-space: nowrap; }
button.size-pill { cursor: pointer; transition: border-color .18s ease, background .18s ease, color .18s ease; }
button.size-pill:hover { border-color: var(--brand); color: var(--brand); }
button.size-pill.active { border-color: var(--brand); background: var(--brand); color: #fff; }
button.size-pill--more { font-weight: 700; }
.product-card__bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: 12px; }
.price { display: flex; flex-direction: column; }
.price small { color: var(--muted); font-size: 11px; }
.price strong { margin-top: 2px; font-size: 19px; }
.details-button { padding: 9px 12px; border: 1px solid var(--brand); border-radius: 6px; background: #fff; color: var(--brand); font-size: 13px; font-weight: 750; }
.details-button:hover { background: var(--brand); color: #fff; }
.empty-state { min-height: 300px; display: grid; place-content: center; text-align: center; }
.empty-state[hidden] { display: none; }
.empty-state strong { font-family: Georgia, serif; color: var(--brand); font-size: 27px; }
.empty-state p { color: var(--muted); }
.empty-state button { justify-self: center; padding: 10px 16px; border: 0; border-radius: 6px; background: var(--brand); color: white; }

.product-dialog { width: min(950px, calc(100% - 32px)); max-height: calc(100vh - 36px); padding: 0; border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgba(39,0,28,.28); }
.product-dialog::backdrop { background: rgba(32,18,29,.62); }
.dialog-close { position: absolute; top: 12px; right: 14px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); font-size: 25px; }
.dialog-grid { display: grid; grid-template-columns: 52% 48%; }
.dialog-gallery { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 10px; min-width: 0; padding: 12px; background: #fff; }
.dialog-thumbnails { display: flex; flex-direction: column; gap: 8px; max-height: 656px; overflow-y: auto; scrollbar-width: thin; }
.dialog-thumbnail { flex: 0 0 auto; width: 68px; height: 84px; padding: 3px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; }
.dialog-thumbnail.active { border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
.dialog-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.dialog-photo { position: relative; min-height: 570px; overflow: hidden; background: var(--soft); }
.dialog-photo img { display: block; width: 100%; height: 100%; max-height: 680px; object-fit: cover; }
.gallery-arrow { position: absolute; top: 50%; z-index: 2; width: 42px; height: 42px; border: 1px solid rgba(123,0,87,.18); border-radius: 50%; background: rgba(255,255,255,.94); color: var(--brand); font: 500 31px/1 Georgia, serif; cursor: pointer; transform: translateY(-50%); box-shadow: 0 4px 16px rgba(39,0,28,.14); }
.gallery-arrow--prev { left: 12px; }
.gallery-arrow--next { right: 12px; }
.gallery-counter { position: absolute; right: 12px; bottom: 12px; padding: 5px 9px; border-radius: 99px; background: rgba(39,0,28,.72); color: #fff; font-size: 11px; font-weight: 700; }
.dialog-info { padding: 44px 38px 36px; }
.dialog-info .section-label { margin-bottom: 8px; }
.dialog-info h2 { margin: 0 0 10px; font-family: Georgia, serif; color: var(--brand); font-size: 34px; font-weight: 500; line-height: 1.08; }
.dialog-meta { margin: 0 0 24px; color: var(--muted); font-size: 13px; }
.variant-options { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 22px; }
.variant-button { padding: 9px 11px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.variant-button.active { border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); color: var(--brand); }
.dialog-price { margin: 0 0 20px; font-size: 27px; font-weight: 800; }
.product-description { margin: 2px 0 6px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-description summary { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 30px 0 0; list-style: none; color: var(--ink); font-size: 15px; font-weight: 650; cursor: pointer; }
.product-description summary::-webkit-details-marker { display: none; }
.product-description summary::after { content: "+"; position: absolute; right: 3px; color: var(--brand); font-size: 23px; font-weight: 400; line-height: 1; transition: transform .18s ease; }
.product-description[open] summary::after { transform: rotate(45deg); }
.dialog-description { padding: 0 0 16px; color: #5f565e; font-size: 14px; line-height: 1.55; }
.dialog-note { margin-top: 22px; padding: 13px 15px; border-left: 3px solid var(--accent); background: #fff4f6; color: #594e56; font-size: 13px; line-height: 1.4; }
.add-cart-button, .checkout-submit { width: 100%; margin-top: 18px; padding: 13px 18px; border: 0; border-radius: 8px; background: var(--brand); color: #fff; font-weight: 750; }
.add-cart-button:hover, .checkout-submit:hover { background: var(--brand-dark); }

.product-page { padding: 8px 0 84px; }
.product-page[hidden] { display: none; }
.product-page__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.product-page__back, .product-page__copy { padding: 10px 14px; border: 1px solid var(--brand); border-radius: 7px; background: #fff; color: var(--brand); font-weight: 700; }
.product-page__back:hover, .product-page__copy:hover { background: var(--brand); color: #fff; }
.product-page .dialog-grid { grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 8px 32px rgba(39,0,28,.08); }
.product-page .dialog-gallery { padding: 18px; }
.product-page .dialog-photo { min-height: 680px; }
.product-page .dialog-info { padding: 52px 48px 42px; }
.dialog-info h1 { max-width: 34ch; margin: 0 0 12px; font-family: Manrope, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); font-size: clamp(25px, 2.15vw, 34px); font-weight: 650; line-height: 1.18; letter-spacing: -.018em; overflow-wrap: anywhere; }

.checkout-dialog { width: min(1120px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgba(39,0,28,.28); }
.checkout-dialog::backdrop { background: rgba(32,18,29,.62); }
.checkout-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.checkout-cart, .checkout-form-wrap { padding: 38px; }
.checkout-cart { background: var(--soft); }
.checkout-layout h2 { margin: 6px 0 24px; font-family: Georgia, serif; color: var(--brand); font-size: 31px; font-weight: 500; }
.cart-item { display: grid; grid-template-columns: 64px 1fr auto auto; align-items: center; gap: 13px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.cart-item img { width: 64px; height: 76px; object-fit: contain; border-radius: 5px; background: #fff; }
.cart-item div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.cart-item div > strong { font-size: 14px; line-height: 1.3; }
.cart-item small { color: var(--muted); font-size: 11px; }
.cart-item b { font-size: 14px; }
.quantity { display: flex; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.quantity button { width: 28px; height: 31px; border: 0; background: #fff; color: var(--brand); }
.quantity span { min-width: 24px; text-align: center; font-size: 13px; }
.cart-remove { width: 28px; height: 28px; border: 0; background: transparent; color: var(--muted); font-size: 22px; }
.cart-total { display: flex; justify-content: space-between; margin-top: 20px; padding-top: 18px; border-top: 2px solid var(--brand); font-size: 18px; }
.cart-minimum { margin: 9px 0 0; color: var(--accent); font-size: 12px; line-height: 1.4; }
.cart-minimum.reached { color: #347833; }
.cart-origin { margin: 7px 0 0; color: #347833; font-size: 12px; line-height: 1.4; }
.cart-origin.error { color: var(--accent); }
.cart-empty { padding: 40px 10px; text-align: center; color: var(--muted); }
.cart-empty strong { color: var(--ink); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.form-grid label, .field { display: flex; flex-direction: column; gap: 7px; }
.form-wide { grid-column: 1 / -1; }
.form-grid span, .field span { font-size: 13px; font-weight: 650; }
.form-grid input, .field input { width: 100%; min-height: 46px; padding: 0 13px; border: 1px solid #d9d1d7; border-radius: 8px; outline: none; }
.form-grid input:focus, .field input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(123,0,87,.08); }
.delivery-choice { margin: 20px 0 15px; padding: 0; border: 0; }
.delivery-choice legend { margin-bottom: 9px; font-size: 13px; font-weight: 650; }
.delivery-option { display: flex; gap: 11px; padding: 13px; border: 1px solid var(--brand); border-radius: 8px; background: #fff8fc; }
.delivery-option input { margin-top: 3px; accent-color: var(--brand); }
.delivery-option span { display: flex; flex-direction: column; gap: 3px; }
.delivery-option small, .form-hint { color: var(--muted); font-size: 12px; }
.pvz-button { width: 100%; margin-top: 12px; padding: 12px; border: 1px solid var(--brand); border-radius: 8px; background: #fff; color: var(--brand); font-weight: 700; }
.form-hint { margin: 7px 0 17px; }
.consent { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.consent input { margin-top: 2px; accent-color: var(--brand); }
.checkout-submit:disabled { cursor: not-allowed; opacity: .45; }
.checkout-message { min-height: 20px; margin: 10px 0 0; color: var(--brand); font-size: 12px; }

.pvz-dialog { width: min(980px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 24px; border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgba(39,0,28,.28); }
.pvz-dialog::backdrop { background: rgba(32,18,29,.62); }
.pvz-dialog__head { padding-right: 42px; }
.pvz-dialog__head h2 { margin: 4px 0 6px; font-family: Georgia, serif; color: var(--brand); font-size: 29px; font-weight: 500; }
.pvz-dialog__head p:last-child { margin: 0 0 16px; color: var(--muted); font-size: 13px; }
.pvz-map { width: 100%; height: min(58vh, 560px); border: 1px solid var(--line); border-radius: 10px; background: #f2eef1; }
.pvz-cluster { display: grid; place-items: center; width: 34px; height: 34px; border: 3px solid #fff; border-radius: 50%; background: var(--brand); box-shadow: 0 2px 9px rgba(0,0,0,.25); color: #fff; font: 700 12px/1 Manrope, sans-serif; }
.pvz-card { margin-top: 12px; border: 1px solid var(--brand); border-radius: 9px; background: #fff8fc; overflow: hidden; }
.pvz-card-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; }
.pvz-card-row + .pvz-card-row { border-top: 1px solid #ead5e2; }
.pvz-card strong, .pvz-card span { display: block; }
.pvz-card span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.pvz-card button { flex: 0 0 auto; padding: 10px 14px; border: 0; border-radius: 7px; background: var(--brand); color: #fff; font-weight: 700; }
.pvz-map-status { margin-bottom: 0; }
.pvz-attribution { margin: 4px 0 0; font-size: 10px; text-align: right; }
.pvz-attribution a { color: var(--muted); }

.site-footer { padding: 38px 0; background: var(--brand-dark); color: rgba(255,255,255,.74); }
.site-footer .shell { display: flex; align-items: flex-start; gap: 30px; }
.site-footer img { width: 150px; height: 56px; object-fit: cover; }
.site-footer p { margin: 0 0 6px; font-size: 12px; line-height: 1.5; }
.site-footer a { color: inherit; }
.site-footer__info { max-width: 520px; }
.site-footer__legal { display: grid; gap: 8px; margin-left: auto; max-width: 300px; font-size: 12px; line-height: 1.4; text-align: right; }
.consent a { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 39; background: rgba(30,18,27,.48); }

.cookie-banner { position: fixed; right: 22px; bottom: 22px; left: 22px; z-index: 80; display: flex; align-items: center; justify-content: space-between; gap: 28px; max-width: 1180px; margin: 0 auto; padding: 20px 22px; border: 1px solid rgba(126,0,82,.18); border-radius: 12px; background: #fff; box-shadow: 0 16px 48px rgba(39,0,28,.22); }
.cookie-banner[hidden] { display: none; }
.cookie-banner__text strong { display: block; margin-bottom: 5px; color: var(--brand); font-size: 16px; }
.cookie-banner__text p { max-width: 760px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.cookie-banner__text a { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner__actions { display: flex; flex: 0 0 auto; gap: 10px; }
.cookie-button { padding: 11px 18px; border: 1px solid var(--brand); border-radius: 7px; background: var(--brand); color: #fff; font: 700 13px Manrope, sans-serif; cursor: pointer; }
.cookie-button--secondary { background: #fff; color: var(--brand); }

@media (max-width: 1120px) {
  .header-main { grid-template-columns: 195px 1fr auto auto; gap: 14px; }
  .brand img { width: 184px; height: 56px; }
  .header-contacts span { display: none; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-sections { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .shell { width: min(calc(100% - 28px), var(--shell)); }
  .header-main { min-height: 70px; grid-template-columns: 160px 1fr auto; gap: 12px; }
  .brand img { width: 154px; height: 48px; }
  .header-contacts { display: none; }
  .mobile-menu { display: block; padding: 9px 11px; border: 1px solid var(--brand); border-radius: 6px; background: white; color: var(--brand); font-size: 13px; font-weight: 750; }
  .category-nav { display: none; }
  .holding-bar__inner { width: 100%; padding-left: 14px; }
  .holding-name span { display: none; }
  .holding-bar nav a { padding: 0 11px; }
  .season-banner, .season-banner__inner { min-height: 96px; }
  .breadcrumbs { min-height: 46px; }
  .catalog-layout { grid-template-columns: 1fr; gap: 0; }
  .filters { position: fixed; inset: 0 auto 0 0; z-index: 40; width: min(340px, 88vw); padding: 18px 24px; overflow-y: auto; border: 0; background: #fff; transform: translateX(-105%); transition: transform .25s ease; }
  .filters.open { transform: translateX(0); }
  .filters__head button { display: block; }
  .filter-toggle { display: block; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-sections { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .catalog-section-card { min-height: 250px; }
  .dialog-grid { grid-template-columns: 1fr; }
  .product-page .dialog-grid { grid-template-columns: 1fr; }
  .dialog-gallery { grid-template-columns: 68px minmax(0, 1fr); }
  .dialog-thumbnail { width: 58px; height: 72px; }
  .dialog-photo { min-height: 320px; }
  .dialog-photo img { max-height: 480px; }
  .dialog-info { padding: 28px 24px; }
  .product-page .dialog-info { padding: 32px 26px; }
  .checkout-layout { grid-template-columns: 1fr; }
  .checkout-cart, .checkout-form-wrap { padding: 30px; }
}
@media (max-width: 560px) {
  .holding-bar__inner { justify-content: flex-start; overflow: hidden; }
  .holding-name { display: none; }
  .header-main { grid-template-columns: 146px 1fr auto; }
  .search { grid-column: 1 / -1; grid-row: 2; height: 43px; margin: -4px 0 12px; }
  .brand img { width: 142px; height: 43px; }
  .mobile-menu { justify-self: end; }
  .cart-button { justify-self: end; padding: 8px; font-size: 0; }
  .cart-button::before { content: 'Корзина'; font-size: 12px; }
  .season-banner, .season-banner__inner { min-height: 86px; }
  .season-banner { background-position: center 48%; background-size: cover; }
  .season-banner::before { background: rgba(8,45,31,.48); }
  .season-banner__inner { align-items: center; text-align: center; }
  .season-banner span { display: none; }
  .season-banner strong { max-width: 260px; font-size: 19px; }
  .season-banner b { margin-top: 5px; font-size: 11px; }
  .breadcrumbs { overflow-x: auto; white-space: nowrap; }
  .catalog-home { padding-top: 2px; }
  .catalog-home h1 { font-size: 38px; }
  .catalog-home__intro { margin-bottom: 20px; }
  .catalog-sections { gap: 10px; }
  .catalog-section-card { min-height: 205px; border-radius: 7px; }
  .catalog-section-card__text { right: 12px; bottom: 13px; left: 12px; }
  .catalog-section-card strong { font-size: 18px; }
  .catalog-heading { align-items: center; }
  .catalog-heading h1 { font-size: 34px; }
  .catalog-toolbar { align-items: stretch; flex-direction: column; padding: 14px 0 18px; }
  .sort-label { justify-content: space-between; }
  .product-grid { gap: 24px 10px; }
  .product-card h2 { min-height: 57px; font-size: 14px; }
  .product-card__bottom { align-items: stretch; flex-direction: column; }
  .details-button { width: 100%; }
  .product-card__sizes .size-pill:nth-child(n+3) { display: none; }
  .site-footer .shell { align-items: flex-start; flex-direction: column; gap: 10px; }
  .site-footer p { margin: 0; }
  .site-footer__legal { margin-left: 0; text-align: left; }
  .dialog-info h2 { font-size: 29px; }
  .dialog-info h1 { font-size: 24px; line-height: 1.22; }
  .product-page__toolbar { align-items: stretch; flex-direction: column; }
  .product-page__back, .product-page__copy { width: 100%; }
  .dialog-gallery { grid-template-columns: 1fr; }
  .dialog-thumbnails { flex-direction: row; grid-row: 2; max-height: none; overflow-x: auto; overflow-y: hidden; }
  .dialog-thumbnail { width: 58px; height: 68px; }
  .gallery-arrow { width: 36px; height: 36px; font-size: 27px; }
  .checkout-dialog { width: calc(100% - 16px); max-height: calc(100vh - 16px); }
  .checkout-cart, .checkout-form-wrap { padding: 24px 18px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .cart-item { grid-template-columns: 54px 1fr auto; }
  .cart-item img { width: 54px; height: 66px; }
  .cart-remove { grid-column: 3; grid-row: 1; align-self: start; }
  .quantity { grid-column: 3; grid-row: 1; margin-top: 34px; }
  .pvz-dialog { width: calc(100% - 12px); max-height: calc(100vh - 12px); padding: 16px; }
  .pvz-map { height: 55vh; }
  .pvz-card-row { align-items: stretch; flex-direction: column; }
  .cookie-banner { right: 10px; bottom: 10px; left: 10px; align-items: stretch; flex-direction: column; gap: 14px; padding: 17px; }
  .cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-button { padding-right: 10px; padding-left: 10px; }
}

.product-card__image{padding:6px;background:#fff}.product-card__image img{object-fit:contain!important;object-position:center!important;transform:none!important}.dialog-photo{padding:12px;background:#fff}.dialog-photo img{object-fit:contain!important;object-position:center!important}

.cart-total[hidden]{display:none!important}

.cart-item strong,.cart-item small,.cart-item b{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default;cursor:text}.cart-item button{user-select:none;-webkit-user-select:none}
/* icon-category-tiles-v1 */
.catalog-sections{align-items:start}
.catalog-section-card{aspect-ratio:1/1;min-height:0;background:linear-gradient(145deg,#a00072,#7f0058);isolation:isolate}
.catalog-section-card__image{inset:9% 10% 24%;width:80%;height:67%;object-fit:contain;object-position:center;opacity:.28;transform:scale(.95);transition:opacity .3s ease,transform .3s ease;z-index:0}
.catalog-section-card.has-image:after{background:linear-gradient(180deg,rgba(76,0,51,0) 48%,rgba(67,0,45,.78) 100%)}
.catalog-section-card.has-image .catalog-section-card__text{color:#fff;text-shadow:none}
.catalog-section-card:hover .catalog-section-card__image{opacity:.76;transform:scale(1)}
@media(max-width:700px){.catalog-section-card{aspect-ratio:1/1;min-height:0}.catalog-section-card__image{opacity:.42;transform:none}.catalog-section-card:hover .catalog-section-card__image{opacity:.42;transform:none}}

/* Calm unified catalog icon system, 2026-09-20 */
.catalog-home h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(28px,3vw,44px);font-weight:800;letter-spacing:.01em;text-transform:uppercase}
.catalog-section-card._has-image{background:linear-gradient(145deg,#a00072,#6f0058);isolation:isolate}
.catalog-section-card._has-image:after{background:linear-gradient(180deg,rgba(76,0,51,0) 52%,rgba(49,0,35,.82) 100%)}
.catalog-section-card._has-image .catalog-section-card__image{inset:8% 14% auto;width:72%;height:54%;object-fit:contain;object-position:center;opacity:.34;transform:none;transition:opacity .3s ease,transform .3s ease;z-index:0}
.catalog-section-card:hover .catalog-section-card__image{opacity:.46;transform:scale(1.02)}
.catalog-section-card__text{z-index:2}
@media(max-width:700px){.catalog-section-card._has-image .catalog-section-card__image{inset:8% 15% auto;width:70%;height:52%}.catalog-home h1{font-size:30px}}

/* Restore catalog heading and restrained icon scale */
.catalog-home h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:0;text-transform:none}
.catalog-section-card._has-image .catalog-section-card__image{inset:9% 16% auto;width:68%;height:50%;object-fit:contain;object-position:center;opacity:.30;transform:none}
.catalog-section-card:hover .catalog-section-card__image{opacity:.42;transform:scale(1.015)}

/* Main sections: original plum gradients without icons */
.catalog-home h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:0;text-transform:none}
.catalog-section-card:not(._has-image){background:linear-gradient(145deg,#a00072 0%,#8a0b69 48%,#62004b 100%)}
.catalog-section-card:not(._has-image):after{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(35,0,28,.30))}
/* Inner category tiles keep calm product photography under plum veil */
.catalog-section-card._has-image .catalog-section-card__image{inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.34;transform:scale(1.08)}
.catalog-section-card._has-image:after{background:linear-gradient(180deg,rgba(100,0,72,.58),rgba(55,0,43,.82))}
.catalog-section-card._has-image:hover .catalog-section-card__image{opacity:.40;transform:scale(1.11)}

/* whole-product-covers-v1 */
.catalog-section-card._has-image .catalog-section-card__image{inset:2% 3% 20%!important;width:94%!important;height:78%!important;object-fit:contain!important;object-position:center!important;transform:none!important}
.catalog-section-card._has-image:hover .catalog-section-card__image{transform:none!important}

/* whole-product-covers-v2 */
.catalog-section-card.has-image .catalog-section-card__image{inset:2% 3% 20%!important;width:94%!important;height:78%!important;object-fit:contain!important;object-position:center!important;transform:none!important;opacity:.34!important}
.catalog-section-card.has-image:hover .catalog-section-card__image{transform:none!important;opacity:.42!important}
