/* Раздел «Сувениры с логотипом» /gifts/ (ТЗ-15). Поверх style.css v3-2: те же переменные, кнопки, чипы, крошки. */

:root {
  --g-green: #1e7e34;
  --g-way: #0077b3;
  --g-order: #c7500d;
  --g-mark: #fff1c2;
  --g-radius: 12px;
}

/* ---------- полоса раздела ---------- */
.g-bar { background: #fff; border-bottom: 1px solid var(--pc-border); position: relative; z-index: 20; }
.g-bar-in { display: flex; align-items: center; gap: 18px; min-height: 64px; }
.g-bar-home { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--pc-dark); white-space: nowrap; }
.g-bar-home i { color: var(--pc-cta); font-size: 20px; }
.g-req-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--pc-dark); white-space: nowrap;
  border: 1px solid var(--pc-border); border-radius: 100px; padding: 7px 8px 7px 16px; }
.g-req-link:hover { border-color: var(--pc-dark); color: var(--pc-dark); }
.g-req-link i { font-size: 18px; }
.g-req-count { min-width: 26px; height: 26px; border-radius: 100px; background: var(--pc-light-gray); color: var(--pc-text-light);
  display: inline-flex; align-items: center; justify-content: center; font-size: 14px; padding: 0 7px; }
.g-req-link.has-items .g-req-count { background: var(--pc-cta); color: #fff; }

/* ---------- поиск + подсказки ---------- */
.g-search { position: relative; flex: 1; display: flex; align-items: center; max-width: 640px; }
.g-search > i { position: absolute; left: 14px; color: var(--pc-text-light); pointer-events: none; }
.g-search input { flex: 1; min-width: 0; height: 44px; border: 1px solid var(--pc-border); border-radius: var(--pc-radius) 0 0 var(--pc-radius);
  padding: 0 14px 0 40px; font: inherit; font-size: 16px; background: #fff; }
.g-search input:focus { outline: none; border-color: var(--pc-cta); box-shadow: 0 0 0 3px rgba(255,107,26,.15); }
.g-search-btn { height: 44px; border: 1px solid var(--pc-dark); background: var(--pc-dark); color: #fff; padding: 0 18px;
  border-radius: 0 var(--pc-radius) var(--pc-radius) 0; font-weight: 500; }
.g-search-btn:hover { background: var(--pc-dark-soft); }
.g-suggest { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--g-radius); box-shadow: var(--pc-shadow-lg); z-index: 1000; max-height: 70vh; overflow: auto; padding: 6px 0; }
.g-sg-h { font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--pc-text-light); padding: 8px 16px 4px; }
.g-sg-i { display: flex; align-items: center; gap: 12px; padding: 7px 16px; color: var(--pc-text); }
.g-sg-i:hover, .g-sg-i.is-act { background: var(--pc-light-gray); color: var(--pc-text); }
.g-sg-i img { width: 44px; height: 44px; object-fit: contain; border-radius: 6px; background: #fff; flex: none; }
.g-sg-i .g-sg-n { flex: 1; min-width: 0; font-size: 15px; line-height: 1.3; }
.g-sg-i .g-sg-n small { display: block; color: var(--pc-text-light); font-size: 12.5px; }
.g-sg-i .g-sg-p { font-weight: 700; white-space: nowrap; font-size: 15px; }
.g-sg-all { display: block; padding: 10px 16px; font-weight: 500; border-top: 1px solid var(--pc-border); margin-top: 6px; }
.g-sg-empty { padding: 12px 16px; color: var(--pc-text-light); font-size: 15px; }

/* ---------- шапка страниц ---------- */
.g-head { padding-bottom: 22px; }
.g-head h1 { font-size: clamp(28px, 4vw, 40px); }
.g-head-meta { margin: 0; color: var(--pc-text-light); font-size: 15.5px; }
.g-updated { color: var(--pc-text-light); font-size: 13.5px; }
.g-head-meta .g-updated { white-space: nowrap; }
.g-subcats { margin-top: 18px; gap: 8px; }
.g-subcats .chip { padding: 6px 14px; font-size: 14px; }
.g-chip-n { color: var(--pc-text-light); font-weight: 400; margin-left: 2px; font-size: 13px; }
.chip.is-active .g-chip-n { color: rgba(255,255,255,.7); }
.g-section { padding: 28px 0 64px; }
.g-noprint { display: inline-block; background: var(--g-mark); color: var(--pc-dark); font-weight: 700; padding: 1px 8px; border-radius: 4px; }

/* ---------- фильтры + сетка ---------- */
.g-list { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 32px; align-items: start; }
.g-fbox-head { list-style: none; font-weight: 700; font-size: 18px; color: var(--pc-dark); padding-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.g-fbox-head::-webkit-details-marker { display: none; }
@media (min-width: 992px) {
  .g-side { position: sticky; top: var(--g-top, 12px); max-height: calc(100vh - var(--g-top, 12px) - 12px); overflow: auto; padding-right: 6px; scrollbar-width: thin; }
  .g-fbox-head { pointer-events: none; }
}
.g-f { border: 0; border-bottom: 1px solid var(--pc-border); margin: 0; padding: 14px 0; min-width: 0; }
.g-f legend { float: left; width: 100%; font-weight: 700; font-size: 15px; color: var(--pc-dark); margin: 0 0 8px; padding: 0; }
.g-f legend + * { clear: both; }
.g-f-sel { display: inline-flex; min-width: 20px; height: 20px; align-items: center; justify-content: center; border-radius: 100px;
  background: var(--pc-cta); color: #fff; font-size: 12px; padding: 0 6px; vertical-align: 2px; }
.g-f-vals { display: flex; flex-direction: column; gap: 2px; }
.g-fv { display: flex; align-items: flex-start; gap: 9px; font-size: 14.5px; line-height: 1.3; padding: 4px 0; cursor: pointer; color: var(--pc-text); }
.g-fv input { margin-top: 2px; accent-color: var(--pc-cta); width: 16px; height: 16px; flex: none; }
.g-fv-l { flex: 1; }
.g-fv-n { color: var(--pc-text-light); font-size: 13px; }
.g-fv.is-empty, .g-fc.is-empty { opacity: .45; }
.g-f-colors .g-f-vals { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.g-fc { position: relative; cursor: pointer; }
.g-fc input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.g-fc .g-sw { width: 28px; height: 28px; }
.g-fc input:checked + .g-sw { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pc-cta); }
.g-fc input:focus-visible + .g-sw { outline: 2px solid var(--pc-cta); outline-offset: 3px; }
.g-f-rest summary, .g-f-more > summary { cursor: pointer; color: var(--pc-link); font-size: 14px; padding: 6px 0 2px; list-style: none; }
.g-f-rest summary::-webkit-details-marker, .g-f-more > summary::-webkit-details-marker { display: none; }
.g-f-rest[open] summary { display: none; }
.g-f-more > summary { font-weight: 500; font-size: 15px; padding: 14px 0; border-bottom: 1px solid var(--pc-border); }
.g-f-more > summary::after { content: "\F282"; font-family: "bootstrap-icons"; font-size: 12px; margin-left: 6px; }
.g-f-more[open] > summary::after { content: "\F286"; }
.g-price { display: flex; align-items: center; gap: 8px; }
.g-price input { width: 100%; min-width: 0; height: 40px; border: 1px solid var(--pc-border); border-radius: var(--pc-radius); padding: 0 10px; font: inherit; font-size: 15px; }
.g-price input:focus { outline: none; border-color: var(--pc-cta); }
.g-switch { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 15px; font-weight: 500; margin: 0; }
.g-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.g-switch-ui { width: 40px; height: 22px; border-radius: 100px; background: #cfcfcf; position: relative; flex: none; transition: background .2s; }
.g-switch-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .2s; }
.g-switch input:checked + .g-switch-ui { background: var(--pc-cta); }
.g-switch input:checked + .g-switch-ui::after { transform: translateX(18px); }
.g-switch input:focus-visible + .g-switch-ui { outline: 2px solid var(--pc-cta); outline-offset: 2px; }
.g-f-actions { display: flex; gap: 10px; padding: 16px 0 4px; flex-wrap: wrap; }
.g-f-actions .btn { min-height: 40px; padding: 8px 18px; font-size: 15px; }
html.g-js .g-f-actions .btn-cta { display: none; }

.g-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px 24px; flex-wrap: wrap; margin-bottom: 14px; }
.g-found { font-size: 15.5px; color: var(--pc-text-light); }
.g-found b { color: var(--pc-dark); }
.g-sort { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14.5px; }
.g-sort-l { color: var(--pc-text-light); }
.g-sort a { color: var(--pc-text); border-bottom: 1px dashed transparent; }
.g-sort a:hover { color: var(--pc-cta); }
.g-sort a.is-cur { color: var(--pc-cta); font-weight: 700; }
.g-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.g-chip { padding: 5px 10px 5px 14px; font-size: 14px; display: inline-flex; align-items: center; gap: 4px; }

.g-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(214px, 1fr)); gap: 18px; }
.g-grid--row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-grid-sep { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; font-weight: 500; color: var(--g-order);
  padding: 10px 0 0; border-top: 1px solid var(--pc-border); margin-top: 8px; font-size: 15px; }
.g-empty { background: var(--pc-light-gray); border-radius: var(--g-radius); padding: 32px; text-align: center; }
.g-empty .btn { margin: 4px; }

/* ---------- плитка ---------- */
.g-tile { background: #fff; border: 1px solid var(--pc-border); border-radius: var(--g-radius); padding: 12px; display: flex; flex-direction: column;
  transition: box-shadow .2s, border-color .2s; min-width: 0; }
.g-tile:hover { box-shadow: var(--pc-shadow); border-color: #d2d2d2; }
.g-tile-img { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 8px; overflow: hidden; background: #fff; margin-bottom: 10px; }
.g-tile-img > img { width: 100%; height: 100%; object-fit: contain; }
.g-badge { position: absolute; top: 6px; left: 6px; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 100px; line-height: 1.3; }
.g-badge-new { background: var(--pc-cyan); color: #fff; }
.g-tile-cz { position: absolute; bottom: 4px; left: 4px; background: rgba(255,255,255,.92); border-radius: 4px; padding: 3px 4px; line-height: 0; }
.g-tile-cz img { width: 64px; height: auto; }
.g-cz img { display: block; height: auto; }
.g-tile-sw { display: flex; align-items: center; gap: 5px; margin-bottom: 8px; min-height: 20px; flex-wrap: wrap; }
.g-tile-sw a { line-height: 0; border-radius: 50%; }
.g-tile-sw a.is-cur .g-sw { box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--pc-dark); }
.g-sw-more { font-size: 13px; color: var(--pc-text-light); line-height: 1 !important; margin-left: 2px; }
.g-sw { display: inline-block; width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); flex: none; vertical-align: middle; }
.g-sw.sw-light { border-color: rgba(0,0,0,.25); }
.g-sw.sw-unknown { background: repeating-linear-gradient(45deg, #ddd 0 3px, #f5f5f5 3px 6px) !important; }
.g-tile-name { color: var(--pc-text); font-size: 15px; line-height: 1.3; font-weight: 500; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 2.6em; }
.g-tile-name:hover { color: var(--pc-cta); }
.g-tile-code { color: var(--pc-text-light); font-size: 13px; margin-top: 3px; }
.g-tile-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; }
.g-tile-price { font-weight: 700; font-size: 18px; color: var(--pc-dark); line-height: 1.2; }
.g-stock { font-size: 13px; font-weight: 500; line-height: 1.3; margin-top: 2px; }
.g-stock-in { color: var(--g-green); }
.g-stock-way { color: var(--g-way); }
.g-stock-order { color: var(--g-order); }
.g-stock-none { color: var(--pc-text-light); }
.g-tile-add { flex: none; display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--pc-cta); background: #fff; color: var(--pc-cta);
  border-radius: var(--pc-radius); padding: 6px 9px; font-size: 13px; font-weight: 500; line-height: 1.2; }
.g-tile-add:hover { background: var(--pc-cta); color: #fff; }
.g-tile-add.is-added { background: var(--g-green); border-color: var(--g-green); color: #fff; }
.g-tile-add--sizes { border-color: var(--pc-border); color: var(--pc-text); }
.g-tile-add--sizes:hover { background: var(--pc-dark); border-color: var(--pc-dark); }

/* ---------- пагинация ---------- */
.g-pages { margin-top: 32px; }
.g-pages ul { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; list-style: none; padding: 0; margin: 0; }
.g-pages a, .g-pages .cur, .g-pages .gap { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 10px;
  border-radius: var(--pc-radius); border: 1px solid var(--pc-border); color: var(--pc-text); font-weight: 500; }
.g-pages a:hover { border-color: var(--pc-dark); }
.g-pages .cur { background: var(--pc-dark); border-color: var(--pc-dark); color: #fff; }
.g-pages .gap { border: 0; min-width: 20px; }

/* ---------- вход в раздел ---------- */
.g-home-head .lead { max-width: 860px; }
.g-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.g-cat { background: #fff; border: 1px solid var(--pc-border); border-radius: var(--pc-radius-lg); padding: 18px 20px; transition: box-shadow .2s; }
.g-cat:hover { box-shadow: var(--pc-shadow); }
.g-cat-head { display: grid; grid-template-columns: 64px 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; color: var(--pc-dark); }
.g-cat-head:hover { color: var(--pc-cta); }
.g-cat-ico { grid-row: 1 / 3; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; }
.g-cat-ico img { width: 64px; height: 64px; object-fit: contain; }
.g-cat-ico i { font-size: 40px; color: var(--pc-cta); }
.g-cat-name { font-weight: 700; font-size: 18px; line-height: 1.25; align-self: end; }
.g-cat-n { color: var(--pc-text-light); font-size: 14px; align-self: start; }
.g-cat-kids { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 4px; font-size: 15px; }
.g-cat-kids a { color: var(--pc-text); }
.g-cat-kids a:hover { color: var(--pc-cta); }
.g-cat-more a { color: var(--pc-link); }
.g-az { margin-top: 28px; }
.g-az > summary { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--pc-dark); list-style: none;
  border: 1px solid var(--pc-border); border-radius: 100px; padding: 8px 18px; }
.g-az > summary::-webkit-details-marker { display: none; }
.g-az > summary:hover { border-color: var(--pc-dark); }
.g-az-list { columns: 4 220px; column-gap: 32px; margin-top: 20px; font-size: 15px; }
.g-az-list a { display: block; color: var(--pc-text); padding: 2px 0; break-inside: avoid; }
.g-az-list a:hover { color: var(--pc-cta); }
.g-az-list a span { color: var(--pc-text-light); font-size: 13px; }
.g-az-l { font-weight: 700; color: var(--pc-cta); font-size: 18px; margin-top: 10px; break-after: avoid; }
.g-steps { list-style: none; counter-reset: gs; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.g-steps li { counter-increment: gs; background: #fff; border-radius: var(--pc-radius-lg); padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.g-steps li::before { content: counter(gs); width: 36px; height: 36px; border-radius: 50%; background: var(--pc-cta); color: #fff; font-weight: 700;
  display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.g-steps b { color: var(--pc-dark); font-size: 17px; }
.g-steps span { color: var(--pc-text-light); font-size: 15px; }
.g-min-note { margin: 22px 0 0; font-size: 16px; }
.g-prints { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px 24px; margin-top: 18px; }
.g-print { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-top: 1px solid var(--pc-border); }
.g-print b { color: var(--pc-dark); }
.g-print span { color: var(--pc-text-light); font-size: 14.5px; }
.g-pick { position: sticky; top: var(--g-top, 16px); }
.g-faq .accordion-button { font-weight: 500; }
.g-message { min-height: 40vh; }

/* ---------- карточка ---------- */
.g-product { padding-bottom: 40px; }
.g-pr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.g-pr-gallery { position: sticky; top: var(--g-top, 12px); }
.g-pr-main { position: relative; aspect-ratio: 1 / 1; border: 1px solid var(--pc-border); border-radius: var(--pc-radius-lg); background: #fff; overflow: hidden; }
.g-pr-main img { width: 100%; height: 100%; object-fit: contain; }
.g-pr-thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.g-pr-thumb { flex: none; width: 72px; height: 72px; padding: 2px; border: 1px solid var(--pc-border); border-radius: 8px; background: #fff; }
.g-pr-thumb img { width: 100%; height: 100%; object-fit: contain; }
.g-pr-thumb.is-cur { border-color: var(--pc-cta); box-shadow: 0 0 0 1px var(--pc-cta); }
.g-pr-title { font-size: clamp(24px, 3vw, 32px); margin-bottom: 8px; }
.g-pr-meta { display: flex; flex-wrap: wrap; gap: 4px 20px; color: var(--pc-text-light); font-size: 15px; margin-bottom: 16px; }
.g-pr-meta b { color: var(--pc-text); font-weight: 500; }
.g-pr-label { font-size: 15px; color: var(--pc-text-light); margin-bottom: 8px; }
.g-pr-label b { color: var(--pc-text); font-weight: 500; }
.g-pr-colors { margin-bottom: 18px; }
.g-pr-colors-list { display: flex; flex-wrap: wrap; gap: 6px; }
.g-pr-color { position: relative; width: 58px; height: 58px; border: 1px solid var(--pc-border); border-radius: 8px; background: #fff; padding: 1px; }
.g-pr-color img { width: 100%; height: 100%; object-fit: contain; border-radius: 6px; }
.g-pr-colors-list.is-collapsed .g-pr-color:nth-child(n+18) { display: none; }
.g-colors-all { width: 58px; height: 58px; border: 1px dashed var(--pc-border); border-radius: 8px; background: #fff; font-size: 13px; line-height: 1.2; color: var(--pc-link); }
.g-colors-all:hover { border-color: var(--pc-dark); }
.g-pr-color.is-cur { border-color: var(--pc-cta); box-shadow: 0 0 0 1px var(--pc-cta); }
.g-pr-color.is-none { opacity: .45; }
.g-pr-color:hover { border-color: var(--pc-dark); }
.g-sw-dot { position: absolute; right: 3px; bottom: 3px; width: 12px; height: 12px; }
.g-pr-buy { background: var(--pc-light-gray); border-radius: var(--pc-radius-lg); padding: 22px; }
.g-pr-price { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.g-pr-price-v { font-size: 32px; font-weight: 700; color: var(--pc-dark); line-height: 1.1; }
.g-pr-price-n { color: var(--pc-text-light); font-size: 15px; }
.g-pr-price-n b { color: var(--pc-text); }
.g-pr-next { font-size: 14.5px; color: var(--g-order); margin-top: 6px; }
.g-pr-stock { font-size: 15px; margin-top: 8px; }
.g-pr-demand { font-size: 14.5px; margin-top: 4px; color: var(--pc-text); }
.g-pr-buy > .g-updated { margin-top: 4px; }
.g-order { margin-top: 16px; }
.g-sizes { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--pc-radius); overflow: hidden; font-size: 15px; }
.g-sizes th, .g-sizes td { padding: 7px 10px; border-bottom: 1px solid var(--pc-border); text-align: left; white-space: nowrap; }
.g-sizes thead th { font-size: 13px; font-weight: 500; color: var(--pc-text-light); background: #fafafa; }
.g-sizes tbody th { font-weight: 700; color: var(--pc-dark); white-space: normal; }
.g-sizes tr.is-zero td:nth-child(3) { color: var(--pc-text-light); }
.g-sizes td:last-child { width: 96px; }
.g-qty { width: 84px; height: 36px; border: 1px solid var(--pc-border); border-radius: 6px; padding: 0 8px; font: inherit; font-size: 15px; text-align: right; }
.g-qty:focus { outline: none; border-color: var(--pc-cta); box-shadow: 0 0 0 3px rgba(255,107,26,.15); }
.g-qty.is-bad { border-color: #dc3545; }
.g-qty-one { display: flex; align-items: center; gap: 12px; font-weight: 500; margin: 0; }
.g-qty-one .g-qty { width: 140px; height: 44px; min-height: 44px; }
.g-pr-mult { font-size: 14px; color: var(--g-order); margin-top: 8px; }
.g-qty-err { color: #dc3545; font-size: 14px; margin-top: 8px; }
.g-print-sel { border: 0; padding: 0; margin: 18px 0 0; }
.g-print-sel legend { font-weight: 700; font-size: 16px; color: var(--pc-dark); margin-bottom: 8px; }
.g-print-opt { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid var(--pc-border); border-radius: var(--pc-radius);
  padding: 9px 12px; margin-bottom: 6px; cursor: pointer; }
.g-print-opt:has(input:checked) { border-color: var(--pc-cta); box-shadow: 0 0 0 1px var(--pc-cta); }
.g-print-opt input { margin-top: 4px; accent-color: var(--pc-cta); flex: none; }
.g-print-opt b { display: block; font-weight: 500; font-size: 15px; color: var(--pc-text); }
.g-print-opt small { display: block; color: var(--pc-text-light); font-size: 13px; line-height: 1.35; }
.g-print-more { display: grid; grid-template-columns: 1fr 140px; gap: 10px; margin-top: 10px; }
.g-print-more label { font-size: 13.5px; color: var(--pc-text-light); margin: 0; }
.g-print-more .form-control { min-height: 40px; padding: 8px 12px; font-size: 15px; margin-top: 3px; }
.g-order-sum { margin-top: 14px; font-size: 15.5px; }
.g-order-sum b { color: var(--pc-dark); }
.g-order-btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.g-min { margin-top: 18px; border-left: 3px solid var(--pc-cta); background: #fff; padding: 10px 14px; border-radius: 0 var(--pc-radius) var(--pc-radius) 0; font-size: 15px; }
.g-min .g-noprint { margin-top: 4px; }
.g-pr-cz { display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 14px; color: var(--pc-text-light); }
.g-pr-cz .g-cz { flex: none; background: #fff; border-radius: 6px; padding: 4px 6px; }
.g-pr-gone { margin-top: 14px; }
.g-pr-details { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 44px; }
.g-descr { font-size: 16px; }
.g-descr { overflow-x: auto; }
.g-descr table { width: 100%; }
.g-alerts { margin-top: 14px; font-size: 14.5px; color: var(--g-order); }
.g-alerts p { margin-bottom: 6px; }
.g-print-info details { border-bottom: 1px solid var(--pc-border); padding: 10px 0; }
.g-print-info summary { cursor: pointer; }
.g-print-text { font-size: 14.5px; color: var(--pc-text-light); margin-top: 8px; }
.g-print-text p { margin-bottom: 8px; }
.g-print-methods { font-size: 14.5px; margin: 6px 0 4px; padding-left: 20px; }
.g-print-imgs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.g-print-imgs img { width: 120px; height: 120px; object-fit: contain; border: 1px solid var(--pc-border); border-radius: 8px; background: #fff; }
.g-props { width: 100%; border-collapse: collapse; font-size: 15px; }
.g-props th, .g-props td { padding: 8px 0; border-bottom: 1px solid var(--pc-border); vertical-align: top; text-align: left; }
.g-props th { font-weight: 400; color: var(--pc-text-light); width: 42%; padding-right: 16px; }
.g-files { list-style: none; padding: 0; font-size: 15px; }
.g-files li { padding: 4px 0; }

/* ---------- запрос на расчёт /gifts/request/ ---------- */
.g-rq-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start; }
.g-rq-side { position: sticky; top: var(--g-top, 12px); display: flex; flex-direction: column; gap: 16px; }
.g-rq-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 4px; color: var(--pc-text-light); font-size: 15px; }
.g-rq-clear { border: 0; background: none; color: var(--pc-text-light); text-decoration: underline; font-size: 14px; padding: 0; }
.g-rq-clear:hover { color: #dc3545; }
.g-rq-item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--pc-border); }
.g-rq-item.is-gone .g-rq-img img { opacity: .5; }
.g-rq-img img { width: 96px; height: 96px; object-fit: contain; border: 1px solid var(--pc-border); border-radius: 10px; background: #fff; }
.g-rq-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.g-rq-name { font-weight: 700; color: var(--pc-dark); font-size: 16.5px; line-height: 1.3; }
.g-rq-name:hover { color: var(--pc-cta); }
.g-rq-meta { font-size: 14px; color: var(--pc-text-light); margin-top: 3px; }
.g-rq-meta .g-stock { font-size: 14px; }
.g-rq-del { border: 0; background: none; color: var(--pc-text-light); font-size: 18px; padding: 2px 4px; line-height: 1; }
.g-rq-del:hover { color: #dc3545; }
.g-rq-warns p { margin: 8px 0 0; font-size: 14px; color: var(--g-order); }
.g-rq-warns p::before { content: "\F333"; font-family: "bootstrap-icons"; margin-right: 6px; }
.g-rq-sizes { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; margin-top: 12px; }
.g-rq-sizes.is-collapsed .g-rq-size.is-zero { display: none; }
.g-rq-size { display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--pc-border); border-radius: 8px; padding: 8px; margin: 0; background: #fff; }
.g-rq-size b { font-size: 14px; color: var(--pc-dark); }
.g-rq-size .g-qty { width: 100%; }
.g-rq-size small { font-size: 12.5px; color: var(--pc-text-light); line-height: 1.25; }
.g-rq-size.is-over, .g-rq-one.is-over .g-qty { border-color: var(--g-order); }
.g-rq-size.is-bad .g-qty, .g-rq-one.is-bad .g-qty { border-color: #dc3545; }
.g-rq-more { border: 1px dashed var(--pc-border); border-radius: 8px; background: none; color: var(--pc-text-light); font-size: 14px; padding: 8px; }
.g-rq-more:hover { border-color: var(--pc-dark); color: var(--pc-dark); }
.g-rq-one { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 12px 0 0; font-weight: 500; }
.g-rq-one .g-qty { width: 120px; height: 40px; }
.g-rq-one small { flex-basis: 100%; font-weight: 400; font-size: 13px; color: var(--pc-text-light); }
.g-rq-print { display: grid; grid-template-columns: 1.3fr 1.3fr .7fr; gap: 8px; margin-top: 12px; }
.g-rq-print label, .g-rq-note { margin: 0; display: block; }
.g-rq-print span { display: block; font-size: 13px; color: var(--pc-text-light); margin-bottom: 2px; }
.g-rq-print .form-select, .g-rq-print .form-control, .g-rq-note .form-control { height: 40px; font-size: 14.5px; }
.g-rq-note { margin-top: 8px; }
.g-rq-sum { margin-top: 10px; font-size: 15px; }
.g-rq-sum .g-noprint { font-size: 13px; font-weight: 600; }
.g-rq-need { color: #dc3545; font-weight: 500; }
.g-rq-addmore { display: inline-flex; gap: 6px; align-items: center; margin-top: 18px; font-weight: 500; }
.g-rq-total { background: #fff; border: 1px solid var(--pc-border); border-radius: var(--g-radius); padding: 18px 20px; box-shadow: var(--pc-shadow-sm, none); }
.g-rq-tl { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; font-size: 15px; }
.g-rq-tl span { color: var(--pc-text-light); }
.g-rq-tl--sum { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--pc-border); font-size: 18px; }
.g-rq-tl--sum span { color: var(--pc-dark); font-weight: 500; }
.g-rq-tl--sum b { font-size: 24px; color: var(--pc-dark); }
.g-rq-tl-note { text-align: right; margin-top: 2px; }
.g-rq-small { font-size: 13.5px; color: var(--pc-text-light); margin: 8px 0 0; }
.g-rq-minwarn { display: flex; gap: 10px; margin-top: 14px; background: #fff4ec; border: 1px solid #ffc9a3; border-radius: 10px; padding: 12px 14px; font-size: 15px; }
.g-rq-minwarn > i { color: var(--pc-cta); font-size: 20px; line-height: 1.2; }
.g-rq-minwarn .g-noprint { margin-top: 4px; }
.g-rq-minwarn p { margin: 8px 0 10px; font-size: 14.5px; }
.g-rq-total .g-updated { margin-top: 12px; }
.g-rq-form { background: var(--pc-light-gray); border-radius: var(--g-radius); padding: 20px; }
.g-rq-form h2 { margin-bottom: 12px; }
.g-rq-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-bottom: 12px; }
.g-rq-fields .form-label { font-size: 14px; margin-bottom: 3px; }
.g-rq-hint { font-size: 13px; color: var(--pc-text-light); margin: 0 0 14px; }
.g-quick-item { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; padding: 10px; border: 1px solid var(--pc-border); border-radius: 10px; }
.g-quick-item img { width: 64px; height: 64px; object-fit: contain; flex: none; }
.g-quick-item b { display: block; font-size: 15px; line-height: 1.3; }
.g-quick-item small { display: block; font-size: 13px; color: var(--pc-text-light); }

.g-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); opacity: 0; z-index: 1100; background: var(--pc-dark); color: #fff;
  border-radius: 12px; padding: 12px 18px; box-shadow: var(--pc-shadow-lg); font-size: 15px; transition: opacity .25s, transform .25s; pointer-events: none;
  max-width: calc(100vw - 32px); display: flex; gap: 14px; align-items: center; }
.g-toast.is-shown { opacity: 1; transform: translateX(-50%); pointer-events: auto; }
.g-toast a { color: var(--pc-cta); font-weight: 700; white-space: nowrap; }

/* ---------- адаптив ---------- */
@media (max-width: 1199.98px) {
  .g-grid--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .g-list { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .g-fbox { border: 1px solid var(--pc-border); border-radius: var(--g-radius); padding: 10px 14px; background: #fff; }
  .g-fbox-head { cursor: pointer; padding: 2px 0; font-size: 16px; }
  .g-fbox-head::after { content: "\F282"; font-family: "bootstrap-icons"; font-size: 13px; margin-left: auto; }
  .g-fbox[open] .g-fbox-head::after { content: "\F286"; }
  .g-f-actions .btn-cta { display: inline-flex !important; }
  .g-pr, .g-pr-details { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .g-rq-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .g-rq-side { position: static; }
  .g-pr-gallery { position: static; }
  .g-bar-in { flex-wrap: wrap; gap: 8px 14px; padding: 10px 0; }
  .g-bar .g-search { order: 3; flex-basis: 100%; max-width: none; }
  .g-bar-home { flex: 1; }
}
@media (max-width: 767.98px) {
  .g-subcats { flex-wrap: nowrap; overflow-x: auto; margin-right: calc(var(--bs-gutter-x, 1.5rem) * -.5); padding-bottom: 6px; scrollbar-width: none; }
  .g-subcats::-webkit-scrollbar { display: none; }
  .g-subcats .chip { white-space: nowrap; flex: none; }
}
@media (max-width: 575.98px) {
  .g-grid, .g-grid--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .g-tile { padding: 8px; }
  .g-tile-name { font-size: 14px; }
  .g-tile-price { font-size: 16px; }
  .g-tile-bottom { flex-direction: column; align-items: stretch; }
  .g-tile-add { justify-content: center; }
  .g-req-label { display: none; }
  .g-steps { grid-template-columns: 1fr; }
  .g-cats { grid-template-columns: 1fr; }
  .g-sizes { font-size: 14px; }
  .g-sizes th, .g-sizes td { padding: 6px 6px; }
  .g-sizes thead th:nth-child(4), .g-sizes tbody td:nth-child(4) { display: none; }
  .g-qty { width: 70px; }
  .g-print-more { grid-template-columns: 1fr; }
  .g-rq-item { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .g-rq-img img { width: 64px; height: 64px; }
  .g-rq-print { grid-template-columns: 1fr 1fr; }
  .g-rq-print label:first-child { grid-column: 1 / -1; }
  .g-rq-fields { grid-template-columns: 1fr; }
  .g-rq-form { padding: 16px; margin: 0 -4px; }
  .g-order-btns .btn { width: 100%; }
  .g-pr-buy { padding: 16px; margin: 0 -4px; }
  .g-pr-price-v { font-size: 28px; }
}
