.catalog-standalone { margin: 0; color: #202020; background: #fff; font: 16px/1.6 Arial, sans-serif; }
.catalog-product-header { max-width: 1200px; margin: 0 auto; padding: 24px; }
.catalog-product-header a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.site-catalog {
  color: var(--catalog-color, #202020);
  background: var(--catalog-background, #fff);
  font-family: var(--catalog-font, inherit);
  padding: clamp(32px, 5vw, 80px) max(16px, calc((100% - 1200px) / 2));
}
.site-catalog *, .catalog-dialog * { box-sizing: border-box; }
.site-catalog [hidden], .catalog-dialog [hidden] { display: none !important; }
.catalog-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin-bottom: 24px; }
.catalog-toolbar label { display: flex; flex: 1 1 220px; flex-direction: column; gap: 8px; }
.catalog-toolbar input, .catalog-toolbar select, .catalog-dialog select {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px;
  color: inherit; background: var(--catalog-card-background, #fff); border: 1px solid var(--catalog-border, #b7b7b7);
  border-radius: 5px; font: inherit;
}
[data-catalog-count] { margin: 0 0 12px; font-size: 14px; }
[data-catalog-grid] { display: grid; grid-template-columns: repeat(var(--catalog-columns, 3), minmax(0, 1fr)); gap: 24px; }
.catalog-card { min-width: 0; background: var(--catalog-card-background, transparent); }
.catalog-card > a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.catalog-card img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.catalog-card h3 { margin: 16px 0 8px; font-size: clamp(17px, 1.6vw, 22px); line-height: 1.3; overflow-wrap: anywhere; }
.catalog-card p { margin: 0 0 10px; line-height: 1.5; }
.catalog-card a:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
[data-catalog-more] { display: block; min-height: 46px; margin: 32px auto 0; padding: 12px 28px; border: 1px solid currentColor; border-radius: 5px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.site-catalog :focus-visible, .catalog-dialog :focus-visible { outline: 3px solid var(--catalog-accent, #3659b8); outline-offset: 4px; }
.catalog-dialog {
  box-sizing: border-box; width: min(1080px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px);
  padding: 0; border: 0; border-radius: 12px; background: var(--catalog-background, #fff); color: var(--catalog-color, #202020);
  font-family: var(--catalog-font, sans-serif); box-shadow: 0 20px 80px #0005; overscroll-behavior: contain;
}
.catalog-dialog::backdrop { background: #0009; }
body:has(.catalog-dialog[open]) { overflow: hidden; }
.catalog-dialog__body { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; padding: 56px 32px 32px; }
.catalog-product-page { box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; max-width: 1200px; margin: 0 auto; padding: 40px 24px; color: var(--catalog-color, inherit); background: var(--catalog-background, transparent); font-family: var(--catalog-font, inherit); }
.catalog-product-page *, .catalog-product-page *::before, .catalog-product-page *::after { box-sizing: border-box; }
.catalog-product-page [hidden] { display: none !important; }
.catalog-product-page :focus-visible { outline: 3px solid var(--catalog-accent, #3659b8); outline-offset: 4px; }
.catalog-product-page select { max-width: 100%; min-height: 44px; margin: 8px 0 20px; padding: 8px; font: inherit; }
.catalog-product-page h1 { margin-top: 0; font-size: clamp(26px, 4vw, 40px); line-height: 1.2; overflow-wrap: anywhere; }
.catalog-dialog__close { position: absolute; z-index: 2; top: 8px; right: 10px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; font-size: 32px; line-height: 1; background: var(--catalog-card-background, #f1f1f1); color: inherit; cursor: pointer; }
.catalog-dialog__gallery, .catalog-dialog__details { min-width: 0; }
.catalog-dialog__image-wrap { position: relative; display: grid; place-items: center; min-height: 120px; }
.catalog-dialog__image { display: block; width: 100%; aspect-ratio: 1; max-height: 55dvh; object-fit: contain; }
.catalog-dialog__previous, .catalog-dialog__next { position: absolute; top: calc(50% - 22px); min-width: 44px; min-height: 44px; border: 1px solid #aaa; border-radius: 50%; font-size: 28px; background: #fffe; color: #202020; cursor: pointer; }
.catalog-dialog__previous { left: 0; }
.catalog-dialog__next { right: 0; }
.catalog-dialog__image-count { margin: 8px 0; text-align: center; font-size: 13px; }
.catalog-dialog__thumbnails { display: flex; gap: 8px; padding: 5px; overflow-x: auto; }
.catalog-dialog__thumbnails button { flex: 0 0 64px; height: 64px; padding: 3px; border: 2px solid transparent; border-radius: 5px; background: var(--catalog-card-background, #fff); cursor: pointer; }
.catalog-dialog__thumbnails button[aria-pressed=true] { border-color: var(--catalog-accent, currentColor); }
.catalog-dialog__thumbnails img { width: 100%; height: 100%; object-fit: contain; }
.catalog-dialog h2 { margin: 0 0 16px; font-size: clamp(23px, 3vw, 34px); line-height: 1.2; overflow-wrap: anywhere; }
.catalog-dialog h3 { margin: 24px 0 12px; font-size: 20px; }
.catalog-dialog__sku { margin: 0 0 20px; font-size: 14px; }
.catalog-dialog__variants { display: flex; flex-direction: column; gap: 8px; margin: 0 0 20px; }
.catalog-dialog__summary, .catalog-dialog__description { line-height: 1.6; overflow-wrap: anywhere; }
.catalog-dialog__description p { margin: 0 0 1em; }
.catalog-dialog__description a, .catalog-dialog__shops a { color: inherit; text-underline-offset: 3px; }
.catalog-dialog__description table { display: block; max-width: 100%; overflow-x: auto; }
.catalog-dialog__characteristics { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 16px; margin: 24px 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.catalog-dialog__characteristics dt { opacity: .75; }
.catalog-dialog__characteristics dd { margin: 0; }
.catalog-dialog__shops > div { display: flex; flex-wrap: wrap; gap: 10px; }
.catalog-dialog__shops a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid currentColor; border-radius: 5px; font-size: 14px; }
@media (max-width: 760px) {
  [data-catalog-grid] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
  .catalog-dialog__body { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 56px 20px 24px; }
  .catalog-product-page { grid-template-columns: minmax(0, 1fr); padding: 24px 16px; }
  .catalog-dialog__image { max-height: 45dvh; }
}
@media (max-width: 380px) {
  [data-catalog-grid] { grid-template-columns: minmax(0, 1fr); }
  .catalog-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .catalog-dialog__body { padding-right: 16px; padding-left: 16px; }
}
