.catalog-page {
  --catalog-site-header-height: 95px;
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background: #181b1d;
  font-family: var(--font-body, "Segoe UI", Arial, sans-serif);
}

.catalog-page *,
.catalog-page *::before,
.catalog-page *::after { box-sizing: border-box; }

:where(.catalog-page) :where(button, input, textarea) { font: inherit; }

.catalog-page button,
.catalog-page a { -webkit-tap-highlight-color: transparent; }

.catalog-page a { text-decoration: none; }
.catalog-page [hidden] { display: none !important; }

.catalog-page granit-site-widget::part(launcher),
.catalog-page granit-site-widget::part(mobile-actions) { display: none; }

.catalog-page main {
  width: 100%;
  margin: 0;
}

.catalog-top {
  position: relative;
  z-index: 5;
  padding: 0 var(--hero-gutter);
  color: var(--text);
  background: var(--surface-header);
}

.catalog-viewer-loading,
.catalog-viewer-load-error {
  display: grid;
  min-height: calc(100dvh - var(--catalog-site-header-height));
  place-content: center;
  gap: 16px;
  color: #f4f1ed;
  text-align: center;
}

.catalog-viewer-loading p,
.catalog-viewer-load-error h1,
.catalog-viewer-load-error p {
  margin: 0;
}

.catalog-viewer-loading p,
.catalog-viewer-load-error p {
  font-size: 18px;
}

.catalog-viewer-loading a,
.catalog-viewer-load-error a {
  color: var(--catalog-viewer-bronze-light, #d49a67);
}

.catalog-viewer-shell {
  --catalog-viewer-dark: #181b1d;
  --catalog-viewer-dark-soft: #202325;
  --catalog-viewer-line: rgba(255, 255, 255, .1);
  --catalog-viewer-bronze: #b87943;
  --catalog-viewer-bronze-light: #d49a67;
  --catalog-viewer-paper: #fffefd;
  --catalog-viewer-sheet-width: var(--catalog-viewer-page-base-width, 1040px);
  position: relative;
  display: flex;
  height: calc(100dvh - var(--catalog-site-header-height));
  min-height: 560px;
  flex-direction: column;
  color: #f4f1ed;
  background: var(--catalog-viewer-dark);
  overflow: hidden;
}

.catalog-pdf-frame {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  height: calc(100dvh - var(--catalog-site-header-height));
  border: 0;
  background: var(--catalog-viewer-dark);
}

.catalog-pdf-poster {
  position: absolute;
  z-index: 5;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 24px;
  background: var(--catalog-viewer-dark);
  transition: opacity .45s ease;
}

.catalog-pdf-poster-cover {
  display: block;
  max-width: min(92%, 860px);
  max-height: calc(100% - 70px);
  width: auto;
  height: auto;
  border: 1px solid var(--catalog-viewer-line);
  border-radius: 4px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .45);
  object-fit: contain;
}

.catalog-pdf-poster-note {
  margin: 0;
  color: var(--catalog-viewer-bronze-light);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
}

.catalog-pdf-poster.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.catalog-pdf-cta,
.catalog-pdf-call,
.catalog-pdf-write {
  position: fixed;
  z-index: 30;
  right: 24px;
  bottom: 24px;
  display: none;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  padding: 0 20px 0 16px;
  border: 1px solid transparent;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(135deg, #c1854d, #aa6737);
  box-shadow: 0 7px 14px rgba(0, 0, 0, .28);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background .18s ease;
}

.catalog-page.catalog-pdf-mode .catalog-pdf-cta { display: inline-flex; }

.catalog-pdf-cta:hover,
.catalog-pdf-call:hover,
.catalog-pdf-write:hover { background: linear-gradient(135deg, #d09155, #b36e3a); }
.catalog-pdf-cta img,
.catalog-pdf-write img { display: block; filter: brightness(0) invert(1); }
.catalog-pdf-cta:focus-visible,
.catalog-pdf-call:focus-visible,
.catalog-pdf-write:focus-visible { outline: 2px solid var(--catalog-viewer-bronze-light, #d49a67); outline-offset: 3px; }

.catalog-pdf-toc-trigger {
  position: fixed;
  z-index: 30;
  left: 24px;
  bottom: 24px;
  display: none;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  padding: 0 18px 0 14px;
  border: 1px solid rgba(212, 154, 103, .55);
  border-radius: 22px;
  color: #f5f1ed;
  background: rgba(24, 27, 29, .88);
  box-shadow: 0 7px 14px rgba(0, 0, 0, .28);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background-color .18s ease, border-color .18s ease;
}

.catalog-page.catalog-pdf-mode .catalog-pdf-toc-trigger { display: inline-flex; }
.catalog-pdf-toc-trigger:hover { border-color: #d49a67; color: #fff; background: #b87943; }
.catalog-pdf-toc-trigger:focus-visible { outline: 2px solid #d49a67; outline-offset: 3px; }

/* Мобильная лента страниц каталога (вместо pdf.js на узких экранах) */
.catalog-pdf-pages {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 14px 12px 130px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--catalog-viewer-dark);
}

.catalog-pdf-page {
  display: block;
  width: 100%;
  max-width: 720px;
  height: auto;
  border: 1px solid var(--catalog-viewer-line);
  border-radius: 4px;
  background: #17191b;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35);
}

.catalog-pdf-openpdf {
  position: fixed;
  z-index: 30;
  left: 24px;
  bottom: 80px;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  padding: 0 16px;
  border: 1px solid rgba(212, 154, 103, .55);
  border-radius: 20px;
  color: #f5f1ed;
  background: rgba(24, 27, 29, .88);
  box-shadow: 0 7px 14px rgba(0, 0, 0, .28);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .18s ease, border-color .18s ease;
}

.catalog-pdf-openpdf:hover { border-color: #d49a67; color: #fff; background: #b87943; }
.catalog-pdf-openpdf:focus-visible { outline: 2px solid #d49a67; outline-offset: 3px; }

.catalog-viewer-toolbar {
  --catalog-viewer-ctl-size: 40px;
  position: relative;
  z-index: 3;
  display: grid;
  min-height: 60px;
  flex: 0 0 auto;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 0 20px;
  border-bottom: 1px solid var(--catalog-viewer-line);
  background: rgba(24, 27, 29, .97);
}

.catalog-viewer-toolbar-side,
.catalog-viewer-toolbar-center,
.catalog-viewer-zoom-controls {
  display: flex;
  min-width: 0;
  align-items: center;
}

.catalog-viewer-toolbar-side { gap: 10px; }
.catalog-viewer-toolbar-side--left { justify-content: flex-start; }
.catalog-viewer-toolbar-side--right { justify-content: flex-end; }
.catalog-viewer-toolbar-center { justify-content: center; gap: 6px; }

.catalog-viewer-brand { display: block; flex: 0 0 auto; margin-right: 6px; }
.catalog-viewer-brand img { display: block; width: auto; height: 38px; }
.catalog-viewer-brand:focus-visible { outline: 2px solid var(--catalog-viewer-bronze-light); outline-offset: 4px; }

@media (min-width: 821px) {
  .catalog-page:not(.catalog-pdf-mode) .catalog-top { display: none; }
}

.catalog-viewer-svg { display: block; width: 20px; height: 20px; flex: 0 0 20px; }

.catalog-viewer-ctl,
.catalog-viewer-zoom-controls {
  height: var(--catalog-viewer-ctl-size);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: calc(var(--catalog-viewer-ctl-size) / 2);
}

.catalog-viewer-ctl {
  position: relative;
  display: inline-flex;
  min-width: var(--catalog-viewer-ctl-size);
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px 0 12px;
  color: #f2efec;
  background: transparent;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.catalog-viewer-ctl::before { position: absolute; inset: -3px; content: ''; }
.catalog-viewer-ctl--icon { width: var(--catalog-viewer-ctl-size); padding: 0; }

.catalog-viewer-ctl:not(:disabled):hover,
.catalog-viewer-zoom-step:not(:disabled):hover {
  border-color: rgba(212, 154, 103, .7);
  color: var(--catalog-viewer-bronze-light);
}

.catalog-viewer-ctl:disabled,
.catalog-viewer-zoom-step:disabled,
.catalog-viewer-round-button:disabled,
.catalog-viewer-stage-arrow:disabled {
  cursor: default;
  opacity: .3;
}

.catalog-viewer-ctl:focus-visible,
.catalog-viewer-zoom-step:focus-visible,
.catalog-viewer-round-button:focus-visible,
.catalog-viewer-toc-close:focus-visible,
.catalog-viewer-stage-arrow:focus-visible,
.catalog-viewer-toc-item:focus-visible,
.catalog-viewer-consultation:focus-visible,
.catalog-viewer-slot--entity:focus-visible,
.catalog-viewer-empty-cta:focus-visible,
.catalog-viewer-lightbox-cta:focus-visible,
.catalog-viewer-lightbox-close:focus-visible,
.catalog-viewer-lightbox-step:focus-visible {
  outline: 2px solid var(--catalog-viewer-bronze-light);
  outline-offset: 3px;
}

.catalog-viewer-counter {
  min-width: 76px;
  color: #f2efec;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  line-height: var(--catalog-viewer-ctl-size);
  text-align: center;
}

.catalog-viewer-focus-title,
.catalog-viewer-focus-close { display: none; }

.catalog-viewer-zoom-controls { gap: 0; padding: 0 3px; }
.catalog-viewer-zoom-step {
  display: grid;
  width: calc(var(--catalog-viewer-ctl-size) - 8px);
  height: calc(var(--catalog-viewer-ctl-size) - 8px);
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #f2efec;
  background: transparent;
  cursor: pointer;
}

.catalog-viewer-zoom-step:not(:disabled):hover { background: rgba(255, 255, 255, .08); }
.catalog-viewer-zoom-controls output,
.catalog-viewer-focus-controls output { min-width: 48px; color: #f2efec; font-size: 13px; font-variant-numeric: tabular-nums; line-height: 1; text-align: center; }

.catalog-viewer-round-button {
  display: inline-grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  color: #f2efec;
  background: transparent;
  cursor: pointer;
}

.catalog-viewer-round-button:not(:disabled):hover { border-color: var(--catalog-viewer-bronze-light); color: var(--catalog-viewer-bronze-light); }

.catalog-viewer-toolbar-cta {
  padding: 0 18px 0 14px;
  border-color: transparent;
  color: #fff;
  background: linear-gradient(135deg, #c1854d, #aa6737);
  font-weight: 600;
}

.catalog-viewer-toolbar-cta:not(:disabled):hover { border-color: transparent; color: #fff; background: linear-gradient(135deg, #d09155, #b36e3a); }
.catalog-viewer-toolbar-cta img,
.catalog-viewer-lightbox-cta img { display: block; filter: brightness(0) invert(1); }

.catalog-viewer-stage {
  position: relative;
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  grid-template-columns: 1fr;
  align-items: center;
  justify-items: center;
  padding: 12px 88px;
  background: radial-gradient(circle at 50% 46%, rgba(58, 63, 65, .5), transparent 70%), var(--catalog-viewer-dark);
  overflow: hidden;
}

.catalog-viewer-page-host {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.catalog-viewer-shell.is-zoomed .catalog-viewer-stage { overflow: auto; }
.catalog-viewer-shell.is-zoomed .catalog-viewer-page-host { width: max-content; min-width: 100%; height: max-content; min-height: 100%; }

.catalog-viewer-page-slot {
  position: relative;
  display: grid;
  width: var(--catalog-viewer-page-width, min(1040px, calc(100vw - 176px)));
  height: var(--catalog-viewer-page-height, auto);
  aspect-ratio: 1.7 / 1;
  flex: 0 0 auto;
  place-items: start;
}

.catalog-viewer-page-slot::after {
  position: absolute;
  z-index: 0;
  top: 4px;
  right: -12px;
  bottom: 4px;
  width: 10px;
  border: 1px solid rgba(222, 218, 212, .7);
  background: #eeebe8;
  box-shadow: 6px 0 16px rgba(0, 0, 0, .25);
  content: '';
}

.catalog-viewer-sheet {
  position: relative;
  z-index: 1;
  display: flex;
  width: var(--catalog-viewer-page-base-width, 100%);
  height: var(--catalog-viewer-page-base-height, 100%);
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  padding: calc(var(--catalog-viewer-sheet-width) * .032) calc(var(--catalog-viewer-sheet-width) * .042) calc(var(--catalog-viewer-sheet-width) * .02);
  border: 1px solid #e2ded9;
  color: #24282a;
  background: var(--catalog-viewer-paper);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .32), 0 3px 9px rgba(0, 0, 0, .2);
  overflow: hidden;
  container-type: inline-size;
  transform: scale(var(--catalog-viewer-page-scale, 1));
  transform-origin: top left;
}

.catalog-viewer-sheet-header {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2cqw;
  padding-bottom: .7cqw;
  border-bottom: 1px solid #be885e;
}

.catalog-viewer-sheet-header h2 {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #a96435;
  font-family: var(--font-display, Georgia, serif);
  font-size: 2.1cqw;
  font-weight: 600;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.catalog-viewer-sheet-wordmark {
  flex: 0 0 auto;
  color: #d4d5d5;
  font-family: Arial, sans-serif;
  font-size: 3.5cqw;
  font-weight: 700;
  letter-spacing: -.05em;
  line-height: .78;
}

.catalog-viewer-sheet-intro {
  flex: 0 0 auto;
  margin: 1cqw 0 0;
  color: #4d5051;
  font-size: 1.12cqw;
  line-height: 1.3;
}

.catalog-viewer-sheet-body {
  position: relative;
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding-top: 1.5cqw;
}

.catalog-viewer-sheet-footer {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 1.6cqw;
  margin-top: 1.2cqw;
}

.catalog-viewer-sheet-footer > :first-child { flex: 1 1 auto; }

.catalog-viewer-sheet-note {
  margin: 0;
  padding: .55cqw 1.1cqw;
  color: #4d5051;
  background: #f3e9df;
  font-size: 1.1cqw;
  line-height: 1.3;
}

.catalog-viewer-sheet-number {
  color: #b3a89f;
  font-family: var(--font-display, Georgia, serif);
  font-size: 1.15cqw;
  font-variant-numeric: tabular-nums;
}

.catalog-viewer-sheet-part {
  margin-left: .6cqw;
  color: #b3a89f;
  font-family: Arial, sans-serif;
  font-size: 1.1cqw;
  font-weight: 400;
}

.catalog-viewer-sheet-header h2 { flex: 1 1 auto; }

.catalog-viewer-size-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  align-self: center;
  gap: .6cqw;
  padding: .55cqw 1.2cqw;
  border: 1px solid #dcc6b3;
  border-radius: 2cqw;
  color: #8f552c;
  background: #fbf6f1;
  cursor: pointer;
  font-size: 1.1cqw;
  font-weight: 600;
  line-height: 1;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.catalog-viewer-size-toggle .catalog-viewer-svg { width: 1.5cqw; height: 1.5cqw; flex-basis: 1.5cqw; }
.catalog-viewer-size-toggle:hover,
.catalog-viewer-size-toggle[aria-expanded='true'] { border-color: var(--catalog-viewer-bronze); color: #fff; background: var(--catalog-viewer-bronze); }
.catalog-viewer-size-toggle:focus-visible,
.catalog-viewer-size-close:focus-visible { outline: 2px solid var(--catalog-viewer-bronze); outline-offset: 2px; }

.catalog-viewer-sheet-body > .catalog-viewer-grid,
.catalog-viewer-sheet-body > .catalog-viewer-upcoming { flex: 1 1 auto; }

.catalog-viewer-grid {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-columns: repeat(var(--catalog-viewer-grid-columns, 6), minmax(0, 1fr));
  grid-auto-rows: minmax(0, 1fr);
  gap: 1.6cqw;
  transition: margin-right .25s ease;
}

.catalog-viewer-grid.is-rows-1 { grid-auto-rows: auto; align-content: center; }
.catalog-viewer-grid.is-rows-1 > .catalog-viewer-slot { max-height: 100%; aspect-ratio: .84; }
.catalog-viewer-sheet--steps .catalog-viewer-grid.is-rows-1 > .catalog-viewer-slot,
.catalog-viewer-sheet--materials .catalog-viewer-grid.is-rows-1 > .catalog-viewer-slot { aspect-ratio: 1.1; }
.catalog-viewer-sheet.is-sizes-open .catalog-viewer-grid { margin-right: calc(30% + 1.6cqw); }

.catalog-viewer-slot {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  padding: 0;
  border: 1px solid #e6e1dc;
  color: #2a2d2f;
  background: #fff;
  overflow: hidden;
  cursor: zoom-in;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.catalog-viewer-slot:hover,
.catalog-viewer-slot.is-selected {
  border-color: var(--catalog-viewer-bronze);
  box-shadow: 0 .6cqw 1.6cqw rgba(74, 46, 22, .14);
}

.catalog-viewer-slot.is-selected { box-shadow: inset 0 0 0 1px var(--catalog-viewer-bronze), 0 .6cqw 1.6cqw rgba(74, 46, 22, .14); }

.catalog-viewer-slot-media {
  position: relative;
  display: block;
  min-height: 0;
  flex: 1 1 0;
  overflow: hidden;
  background: #fff;
}

.catalog-viewer-slot-media img {
  position: absolute;
  inset: 3% 4% 0;
  display: block;
  width: 92%;
  height: 97%;
  object-fit: contain;
  object-position: center bottom;
  transition: transform .3s ease;
}

.catalog-viewer-sheet--vertical .catalog-viewer-slot-media img,
.catalog-viewer-sheet--horizontal .catalog-viewer-slot-media img { inset: -2% -6% 0; width: 112%; height: 102%; }
.catalog-viewer-slot--steps .catalog-viewer-slot-media img,
.catalog-viewer-slot--materials .catalog-viewer-slot-media img { inset: 5%; width: 90%; height: 90%; object-position: center; }
.catalog-viewer-slot:hover .catalog-viewer-slot-media img { transform: scale(1.03); }
.catalog-viewer-slot-media.has-broken-media { background: #f4f2ef; }
.catalog-viewer-slot-media img.is-broken { display: none; }

.catalog-viewer-slot-footer {
  display: flex;
  min-width: 0;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: .8cqw;
  padding: .7cqw 1cqw;
  border-top: 1px solid #f0ebe6;
}

.catalog-viewer-slot-caption {
  min-width: 0;
  overflow: hidden;
  color: #8f552c;
  font-family: var(--font-display, Georgia, serif);
  display: -webkit-box;
  font-size: 1.45cqw;
  line-height: 1.2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.catalog-viewer-slot--steps .catalog-viewer-slot-caption,
.catalog-viewer-slot--materials .catalog-viewer-slot-caption { color: #2f3233; font-family: Arial, sans-serif; font-size: 1.2cqw; }

.catalog-viewer-slot-zoom {
  display: grid;
  width: 2.3cqw;
  height: 2.3cqw;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  color: #b3a397;
  transition: color .18s ease, background-color .18s ease;
}

.catalog-viewer-slot-zoom .catalog-viewer-svg { width: 62%; height: 62%; flex-basis: auto; }
.catalog-viewer-slot:hover .catalog-viewer-slot-zoom { color: #fff; background: var(--catalog-viewer-bronze); }

.catalog-viewer-size-panel {
  position: absolute;
  z-index: 2;
  top: 1.5cqw;
  right: 0;
  bottom: 0;
  display: flex;
  width: 30%;
  flex-direction: column;
  border: 1px solid #e6dcd2;
  background: #fffdfb;
  box-shadow: -.8cqw 0 2cqw rgba(60, 40, 20, .08);
  opacity: 0;
  pointer-events: none;
  transform: translateX(1.5cqw);
  transition: opacity .22s ease, transform .22s ease;
  visibility: hidden;
}

.catalog-viewer-sheet.is-sizes-open .catalog-viewer-size-panel { opacity: 1; pointer-events: auto; transform: none; visibility: visible; }
.catalog-viewer-size-panel header { display: flex; align-items: center; justify-content: space-between; gap: 1cqw; padding: .8cqw .8cqw .8cqw 1.2cqw; border-bottom: 1px solid #efe7df; }
.catalog-viewer-size-panel h3 { margin: 0; color: #25282a; font-family: Arial, sans-serif; font-size: 1.2cqw; font-weight: 700; }
.catalog-viewer-size-close { display: grid; width: 2.6cqw; height: 2.6cqw; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #5d5f60; background: #f1ebe5; cursor: pointer; }
.catalog-viewer-size-close .catalog-viewer-svg { width: 60%; height: 60%; flex-basis: auto; }
.catalog-viewer-size-close:hover { color: #fff; background: var(--catalog-viewer-bronze); }
.catalog-viewer-size-scroll { min-height: 0; flex: 1 1 auto; overflow: auto; scrollbar-width: thin; }

.catalog-viewer-size-table { width: 100%; border-collapse: collapse; color: #4a4d4f; font-size: 1.05cqw; font-variant-numeric: tabular-nums; line-height: 1.2; }
.catalog-viewer-size-table th,
.catalog-viewer-size-table td { padding: .22cqw .6cqw; border-bottom: 1px solid #eee8e2; text-align: center; white-space: nowrap; }
.catalog-viewer-size-table th { position: sticky; top: 0; padding-block: .45cqw; color: #454749; background: #ecdfd4; font-weight: 600; }
.catalog-viewer-size-table tbody tr:nth-child(even) { background: #f7f5f3; }

.catalog-viewer-upcoming { display: flex; min-height: 0; flex-direction: column; align-items: center; justify-content: center; gap: 2.4cqw; }
.catalog-viewer-upcoming-intro { max-width: 60cqw; margin: 0; color: #4d5051; font-size: 1.3cqw; line-height: 1.45; text-align: center; }
.catalog-viewer-upcoming-list { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6cqw; margin: 0; padding: 0; list-style: none; }
.catalog-viewer-upcoming-list li { display: flex; min-height: 9cqw; flex-direction: column; justify-content: center; gap: .6cqw; padding: 1.6cqw 2cqw; border: 1px solid #ebe2d9; border-left: .35cqw solid #d2b59b; background: linear-gradient(180deg, #fdfbf9, #f8f3ee); }
.catalog-viewer-upcoming-list b { color: #8f552c; font-family: var(--font-display, Georgia, serif); font-size: 1.7cqw; font-weight: 500; }
.catalog-viewer-upcoming-list span { color: #5d6062; font-size: 1.15cqw; line-height: 1.4; }
.catalog-viewer-empty-cta { padding: .9cqw 2.4cqw; border-radius: 3cqw; color: #fff; background: linear-gradient(135deg, #c1854d, #aa6737); font-size: 1.2cqw; font-weight: 600; }
.catalog-viewer-empty-cta:hover { background: linear-gradient(135deg, #d09155, #b36e3a); }

.catalog-viewer-stage-arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 52px; height: 52px; min-width: 52px; min-height: 52px; place-items: center; padding: 0; border: 1px solid rgba(212, 154, 103, .7); border-radius: 50%; color: #f5f1ed; background: rgba(24, 27, 29, .6); cursor: pointer; transform: translateY(-50%); transition: background-color .18s ease, border-color .18s ease; }
.catalog-viewer-stage-arrow:not(:disabled):hover { border-color: var(--catalog-viewer-bronze-light); color: #fff; background: var(--catalog-viewer-bronze); }
.catalog-viewer-stage-arrow--prev { left: 20px; }
.catalog-viewer-stage-arrow--next { right: 20px; }
.catalog-viewer-stage-arrow .catalog-viewer-svg { width: 24px; height: 24px; flex-basis: 24px; }

.catalog-viewer-mobile-hint,
.catalog-viewer-focus-controls { display: none; }

.catalog-viewer-filmstrip { position: relative; z-index: 2; display: flex; flex: 0 0 auto; align-items: center; gap: 20px; padding: 10px 20px; border-top: 1px solid var(--catalog-viewer-line); background: var(--catalog-viewer-dark-soft); }
.catalog-viewer-filmstrip-list { display: flex; min-width: 0; flex: 1 1 auto; align-items: center; justify-content: center; gap: 8px; padding: 2px; overflow-x: auto; scrollbar-width: none; }
.catalog-viewer-filmstrip-list::-webkit-scrollbar { display: none; }
.catalog-viewer-tab { display: inline-flex; height: 40px; flex: 0 0 auto; align-items: center; gap: 8px; padding: 0 8px 0 16px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 20px; color: #e9e4df; background: transparent; cursor: pointer; font-size: 14px; line-height: 1; white-space: nowrap; transition: color .18s ease, border-color .18s ease, background-color .18s ease; }
.catalog-viewer-tab-count { display: grid; min-width: 26px; height: 26px; place-items: center; padding: 0 7px; border-radius: 13px; color: rgba(233, 228, 223, .75); background: rgba(255, 255, 255, .08); font-size: 12px; font-variant-numeric: tabular-nums; }
.catalog-viewer-tab:hover { border-color: rgba(212, 154, 103, .7); color: var(--catalog-viewer-bronze-light); }
.catalog-viewer-tab.is-active { border-color: var(--catalog-viewer-bronze); color: #fff; background: var(--catalog-viewer-bronze); }
.catalog-viewer-tab.is-active .catalog-viewer-tab-count { color: #fff; background: rgba(0, 0, 0, .18); }
.catalog-viewer-tab--upcoming { border-style: dashed; }
.catalog-viewer-tab:focus-visible { outline: 2px solid var(--catalog-viewer-bronze-light); outline-offset: 3px; }
.catalog-viewer-filmstrip-side { display: none; }
.catalog-viewer-consultation { display: inline-flex; min-width: 234px; min-height: 60px; align-items: center; justify-content: center; gap: 11px; padding: 0 20px; border: 0; border-radius: 44px; color: #fff; background: linear-gradient(135deg, #c1854d, #aa6737); box-shadow: 0 7px 14px rgba(0, 0, 0, .15); cursor: pointer; font-size: 16px; font-weight: 600; line-height: 1.15; text-align: left; }
.catalog-viewer-consultation:hover { background: linear-gradient(135deg, #d09155, #b36e3a); }
.catalog-viewer-chat-icon { display: block; width: 27px; height: 27px; object-fit: contain; }
.catalog-viewer-touch-icon { position: relative; display: inline-block; width: 18px; height: 18px; flex: 0 0 18px; border: 1px solid currentColor; border-radius: 50%; }
.catalog-viewer-touch-icon::before { position: absolute; top: 2px; left: 5px; width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 50%; content: ''; }
.catalog-viewer-touch-icon i { position: absolute; top: 7px; left: 8px; width: 2px; height: 9px; border-radius: 2px; background: currentColor; transform: rotate(-18deg); transform-origin: top; }
.catalog-viewer-touch-icon i::after { position: absolute; right: -5px; bottom: 0; width: 7px; height: 5px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; border-radius: 0 0 5px; content: ''; }

.catalog-viewer-toc-backdrop { position: fixed; z-index: 20; inset: 0; background: rgba(0, 0, 0, .48); }
.catalog-viewer-toc-sheet { position: fixed; z-index: 21; top: 96px; right: 28px; bottom: 24px; display: flex; width: min(410px, calc(100vw - 56px)); flex-direction: column; padding: 25px 26px 24px; border: 1px solid #e4d8cd; border-radius: 10px; color: #2b3032; background: #fffdfb; box-shadow: 0 16px 38px rgba(0, 0, 0, .28); overflow: hidden; }
.catalog-viewer-toc-handle { display: none; }
.catalog-viewer-toc-sheet header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.catalog-viewer-toc-sheet h2 { margin: 0; color: #2b3032; font-family: var(--font-display, Georgia, serif); font-size: 28px; font-weight: 400; }
.catalog-viewer-toc-close { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #3e4243; background: #eeeae4; cursor: pointer; }
.catalog-viewer-toc-list { display: grid; min-height: 0; margin-top: 18px; overflow-y: auto; }
.catalog-viewer-toc-item { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 14px; padding: 0 10px 0 15px; border: 0; border-bottom: 1px solid #e7e1dc; color: #292d2f; background: transparent; cursor: pointer; font-family: var(--font-display, Georgia, serif); font-size: 16px; text-align: left; }
.catalog-viewer-toc-item::before { width: 4px; height: 34px; margin-left: -15px; border-radius: 2px; background: transparent; content: ''; }
.catalog-viewer-toc-item span { flex: 1 1 auto; }
.catalog-viewer-toc-item b { flex: 0 0 auto; font-family: Arial, sans-serif; font-size: 14px; font-weight: 400; }
.catalog-viewer-toc-item:hover { color: #8f552c; background: #faf3ed; }
.catalog-viewer-toc-item.is-active { background: #f2e5da; }
.catalog-viewer-toc-item.is-active::before { background: var(--catalog-viewer-bronze); }

/* Подразделы (сейчас — внутри «Памятники») в pdf-оглавлении. */
.catalog-viewer-toc-item--sub { font-size: .9em; }
.catalog-viewer-toc-item--sub span { padding-left: 22px; }

/* В pdf-режиме шторка оглавления лежит ниже плавающих кнопок по z-index —
   на время открытия прячем их, как и чат-виджет. */
body.catalog-viewer-toc-open .catalog-pdf-cta,
body.catalog-viewer-toc-open .catalog-pdf-call,
body.catalog-viewer-toc-open .catalog-pdf-write,
body.catalog-viewer-toc-open .catalog-pdf-toc-trigger,
body.catalog-viewer-toc-open .catalog-pdf-openpdf { display: none !important; }

.catalog-viewer-lightbox { position: fixed; z-index: 40; inset: 0; display: grid; place-items: center; padding: 28px; }
.catalog-viewer-lightbox-backdrop { position: absolute; inset: 0; background: rgba(10, 11, 12, .88); }
.catalog-viewer-lightbox-panel { position: relative; display: grid; width: min(1320px, 100%); height: min(880px, 100%); grid-template-columns: minmax(0, 1fr) 340px; border-radius: 8px; color: #2b3032; background: #fffdfb; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); overflow: hidden; }
.catalog-viewer-lightbox-figure { position: relative; min-width: 0; min-height: 0; margin: 0; background: radial-gradient(circle at 50% 45%, #fff 0, #fff 45%, #f3efeb 100%); }
.catalog-viewer-lightbox-figure img { position: absolute; inset: 32px; display: block; width: calc(100% - 64px); height: calc(100% - 64px); object-fit: contain; }
.catalog-viewer-lightbox-sizes { border: 1px solid #ece5de; border-radius: 6px; }
.catalog-viewer-lightbox-sizes summary { display: flex; min-height: 44px; align-items: center; gap: 10px; padding: 0 14px; color: #8f552c; cursor: pointer; font-size: 14px; font-weight: 600; list-style: none; }
.catalog-viewer-lightbox-sizes summary::-webkit-details-marker { display: none; }
.catalog-viewer-lightbox-sizes summary::after { width: 8px; height: 8px; margin-left: auto; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; content: ''; transform: rotate(45deg) translateY(-3px); transition: transform .18s ease; }
.catalog-viewer-lightbox-sizes[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.catalog-viewer-lightbox-sizes summary:focus-visible { outline: 2px solid var(--catalog-viewer-bronze-light); outline-offset: 2px; }
.catalog-viewer-lightbox-sizes-body { max-height: 260px; overflow: auto; border-top: 1px solid #ece5de; }
.catalog-viewer-lightbox-sizes .catalog-viewer-size-table { font-size: 13px; }
.catalog-viewer-lightbox-sizes .catalog-viewer-size-table th,
.catalog-viewer-lightbox-sizes .catalog-viewer-size-table td { padding: 5px 8px; }
.catalog-viewer-lightbox-siblings { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.catalog-viewer-lightbox-siblings:empty { display: none; }
.catalog-viewer-lightbox-siblings-title { margin: 6px 0 -4px; color: #8b8580; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.catalog-viewer-lightbox-siblings-title[hidden] + .catalog-viewer-lightbox-siblings { display: none; }
.catalog-viewer-lightbox-sibling { display: block; aspect-ratio: 1; padding: 4px; border: 1px solid #e6dfd8; border-radius: 4px; background: #fff; cursor: pointer; }
.catalog-viewer-lightbox-sibling img { display: block; width: 100%; height: 100%; object-fit: contain; }
.catalog-viewer-lightbox-sibling:hover { border-color: var(--catalog-viewer-bronze-light); }
.catalog-viewer-lightbox-sibling[aria-current='true'] { border: 2px solid var(--catalog-viewer-bronze); }
.catalog-viewer-lightbox-sibling:focus-visible { outline: 2px solid var(--catalog-viewer-bronze-light); outline-offset: 2px; }
.catalog-viewer-lightbox-info { display: flex; min-height: 0; flex-direction: column; gap: 14px; padding: 56px 32px 28px; overflow-y: auto; border-left: 1px solid #ece5de; }
.catalog-viewer-lightbox-eyebrow { margin: 0; color: #a96435; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.catalog-viewer-lightbox-info h2 { margin: 0; color: #24282a; font-family: var(--font-display, Georgia, serif); font-size: 36px; font-weight: 500; line-height: 1.1; }
.catalog-viewer-lightbox-text { margin: 0; color: #5a5d5f; font-size: 15px; line-height: 1.5; }
.catalog-viewer-lightbox-cta { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; margin-top: 10px; padding: 0 22px; border-radius: 28px; color: #fff; background: linear-gradient(135deg, #c1854d, #aa6737); font-size: 15px; font-weight: 600; }
.catalog-viewer-lightbox-cta:hover { background: linear-gradient(135deg, #d09155, #b36e3a); }
.catalog-viewer-lightbox-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid #ece5de; color: #6a6d6f; font-size: 14px; font-variant-numeric: tabular-nums; }
.catalog-viewer-lightbox-step { display: grid; width: 48px; height: 48px; place-items: center; padding: 0; border: 1px solid #d9cabd; border-radius: 50%; color: #8f552c; background: transparent; cursor: pointer; }
.catalog-viewer-lightbox-step:hover { border-color: var(--catalog-viewer-bronze); color: #fff; background: var(--catalog-viewer-bronze); }
.catalog-viewer-lightbox-hint { margin: 0; color: #a39b94; font-size: 12px; text-align: center; }
.catalog-viewer-lightbox-close { position: absolute; top: 12px; right: 12px; display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #3e4243; background: #efe9e3; cursor: pointer; }
.catalog-viewer-lightbox-close:hover { background: #e4d9ce; }

body.catalog-viewer-focus-open,
body.catalog-viewer-toc-open,
body.catalog-viewer-lightbox-open { overflow: hidden; }

body.catalog-viewer-focus-open granit-site-widget,
body.catalog-viewer-toc-open granit-site-widget,
body.catalog-viewer-lightbox-open granit-site-widget { display: none; }

@media (min-width: 821px) {
  .catalog-viewer-sheet--installation .catalog-viewer-sheet-note { display: none; }
}

@media (min-width: 821px) and (max-width: 1180px) {
  .catalog-viewer-exit .catalog-viewer-ctl-label,
  .catalog-viewer-toolbar-cta .catalog-viewer-ctl-label { display: none; }
  .catalog-viewer-exit,
  .catalog-viewer-toolbar-cta { width: var(--catalog-viewer-ctl-size); padding: 0; }
  .catalog-viewer-stage { padding-inline: 72px; }
  .catalog-viewer-stage-arrow--prev { left: 12px; }
  .catalog-viewer-stage-arrow--next { right: 12px; }
}

@media (max-width: 820px) {
  .catalog-top {
    padding-inline: var(--mobile-page-gutter);
  }

  /* Компактная шапка: логотип и телефоны в одну строку, навигация ниже. */
  .catalog-page .site-header {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 8px;
  }

  .catalog-page .logo-link {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
  }

  .catalog-page .logo-link img {
    width: 104px;
  }

  .catalog-page .header-contacts {
    grid-column: 2;
    grid-row: 1;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    font-size: 13px;
    text-align: right;
  }

  .catalog-page .main-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    gap: 10px 14px;
  }

  .catalog-viewer-shell {
    height: auto;
    min-height: calc(100dvh - var(--catalog-site-header-height));
    overflow: visible;
  }

  .catalog-viewer-toolbar-cta,
  .catalog-viewer-slot-zoom {
    display: none;
  }

  .catalog-viewer-toolbar {
    --catalog-viewer-ctl-size: 44px;
    min-height: 60px;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 8px;
    padding: 0 12px;
  }

  .catalog-viewer-toolbar-side--left {
    display: contents;
  }

  .catalog-viewer-exit,
  .catalog-viewer-focus-close {
    grid-column: 1;
    grid-row: 1;
  }

  .catalog-viewer-toc-trigger {
    grid-column: 3;
    grid-row: 1;
  }

  .catalog-viewer-exit,
  .catalog-viewer-toc-trigger {
    width: 44px;
    padding: 0;
  }

  .catalog-viewer-toolbar-center {
    grid-column: 2;
    grid-row: 1;
  }

  .catalog-viewer-ctl-label,
  .catalog-viewer-toolbar-side--right,
  .catalog-viewer-top-nav {
    display: none;
  }

  .catalog-viewer-counter {
    min-width: 56px;
  }

  .catalog-viewer-stage {
    flex: 0 0 auto;
    min-height: 0;
    grid-template-rows: auto auto;
    align-items: start;
    row-gap: 24px;
    padding: 24px 16px 10px;
    overflow: visible;
  }

  .catalog-viewer-page-host {
    width: 100%;
    height: auto;
    align-items: flex-start;
  }

  .catalog-viewer-page-slot {
    width: var(--catalog-viewer-page-width, calc(100vw - 32px));
    height: var(--catalog-viewer-page-height, auto);
    max-width: 100%;
    aspect-ratio: 1.7 / 1;
  }

  .catalog-viewer-stage-arrow {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    font-size: 25px;
  }

  .catalog-viewer-stage-arrow--prev {
    left: 1px;
  }

  .catalog-viewer-stage-arrow--next {
    right: 1px;
  }

  .catalog-viewer-mobile-hint {
    position: static;
    display: flex;
    width: 100%;
    min-height: 17px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    color: rgba(245, 241, 237, .55);
    font-size: 11px;
    text-align: center;
  }

  .catalog-viewer-filmstrip {
    min-height: 0;
    flex: 1 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom));
  }

  .catalog-viewer-filmstrip-list {
    flex: 0 0 auto;
    justify-content: flex-start;
    gap: 10px;
    margin-top: auto;
    padding: 0 2px 4px;
    scrollbar-width: none;
  }

  .catalog-viewer-filmstrip-list::-webkit-scrollbar {
    display: none;
  }

  .catalog-viewer-brand {
    display: none;
  }

  .catalog-viewer-filmstrip-list {
    justify-content: flex-start;
  }

  .catalog-viewer-filmstrip-side {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-top: 10px;
  }

  .catalog-viewer-consultation {
    width: 100%;
    min-width: 0;
    min-height: 60px;
    padding: 0 17px;
    font-size: 13px;
    white-space: nowrap;
  }

  .catalog-viewer-chat-icon {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    filter: brightness(0) invert(1);
  }

  .catalog-viewer-lightbox {
    padding: 0;
  }

  .catalog-viewer-lightbox-panel {
    width: 100%;
    height: 100%;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    border-radius: 0;
  }

  .catalog-viewer-lightbox-figure img {
    inset: 56px 16px 12px;
    width: calc(100% - 32px);
    height: calc(100% - 68px);
  }

  .catalog-viewer-lightbox-info {
    gap: 8px;
    padding: 16px 18px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid #ece5de;
    border-left: 0;
  }

  .catalog-viewer-lightbox-info h2 {
    font-size: 26px;
  }

  .catalog-viewer-lightbox-text,
  .catalog-viewer-lightbox-hint,
  .catalog-viewer-lightbox-siblings-title,
  .catalog-viewer-lightbox-siblings {
    display: none;
  }

  .catalog-viewer-lightbox-cta {
    min-height: 48px;
    margin-top: 4px;
  }

  .catalog-viewer-lightbox-nav {
    padding-top: 10px;
  }

  .catalog-viewer-toc-sheet {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 78dvh;
    padding: 54px 18px calc(18px + env(safe-area-inset-bottom));
    border-radius: 17px 17px 0 0;
    overflow-y: auto;
  }

  .catalog-viewer-toc-handle {
    position: absolute;
    top: 14px;
    left: 50%;
    display: block;
    width: 42px;
    height: 5px;
    border-radius: 5px;
    background: #d4cfcb;
    transform: translateX(-50%);
  }

  .catalog-viewer-toc-sheet h2 {
    font-size: 28px;
  }

  .catalog-viewer-toc-list {
    margin-top: 13px;
  }

  .catalog-viewer-toc-item {
    min-height: 53px;
    padding-right: 5px;
    font-size: 17px;
  }

  /* На мобильном вместо «Обсудить» — пара «Позвонить» + «Написать»:
     хром виджета на каталоге скрыт (catalog.css:22), так что чат
     открывает наша кнопка. */
  .catalog-page.catalog-pdf-mode .catalog-pdf-cta { display: none; }
  .catalog-page.catalog-pdf-mode .catalog-pdf-call { display: inline-flex; }
  .catalog-pdf-write { right: 24px; bottom: 80px; }
  .catalog-page.catalog-pdf-mode .catalog-pdf-write { display: inline-flex; }

  /* На узких экранах кнопка «Содержание» не должна наезжать на кнопку
     «Позвонить» — оставляем круглую иконку. */
  .catalog-pdf-toc-trigger {
    width: 46px;
    min-height: 46px;
    padding: 0;
    justify-content: center;
  }

  .catalog-pdf-toc-trigger .catalog-pdf-toc-label { display: none; }

  .catalog-viewer-toc-item b {
    font-size: 13px;
  }

  .catalog-viewer-shell.is-focus-mode {
    min-height: 100dvh;
    height: 100dvh;
    overflow: hidden;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-toolbar {
    grid-template-columns: 54px minmax(0, 1fr) 54px;
    padding: 0 10px;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-exit,
  .catalog-viewer-shell.is-focus-mode .catalog-viewer-top-nav,
  .catalog-viewer-shell.is-focus-mode .catalog-viewer-toc-trigger {
    display: none;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-counter {
    position: absolute;
    top: 50%;
    right: 16px;
    display: block;
    min-width: 44px;
    font-size: 13px;
    transform: translateY(-50%);
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-focus-close {
    display: grid;
    place-items: center;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-toolbar-center {
    min-width: 0;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-focus-title {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: #f2efec;
    font-family: var(--font-display, Georgia, serif);
    font-size: 15px;
    line-height: 1.2;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-stage {
    display: flex;
    flex: 1 1 auto;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 16px;
    overflow: auto;
    touch-action: none;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-page-host {
    width: max-content;
    min-width: 100%;
    height: max-content;
    min-height: 100%;
    align-items: flex-start;
    justify-content: flex-start;
    flex: 0 0 auto;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-page-slot {
    width: var(--catalog-viewer-page-width);
    height: var(--catalog-viewer-page-height);
    max-width: none;
    aspect-ratio: 1.7 / 1;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-stage-arrow,
  .catalog-viewer-shell.is-focus-mode .catalog-viewer-mobile-hint,
  .catalog-viewer-shell.is-focus-mode .catalog-viewer-filmstrip {
    display: none;
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-focus-controls {
    display: flex;
    min-height: 70px;
    flex: 0 0 70px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 16px calc(4px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--catalog-viewer-line);
    background: var(--catalog-viewer-dark-soft);
  }

  .catalog-viewer-shell.is-focus-mode .catalog-viewer-focus-divider {
    width: 1px;
    height: 28px;
    margin: 0 5px;
    background: var(--catalog-viewer-line);
  }

  body.catalog-viewer-focus-open .catalog-top {
    display: none;
  }

  body.catalog-viewer-focus-open main {
    min-height: 100dvh;
  }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-page *,
  .catalog-page *::before,
  .catalog-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
