/* Case typography and rhythm from projects.css and the Ozon editorial case.
   Shared font, gutter and theme variables remain the source of truth. */
.gpb-page {
  --gpb-title-size: clamp(32px, 4.4vw, 64px);
  --gpb-title: 600 var(--gpb-title-size)/1.05 var(--sans);
  --gpb-title-tracking: -.04em;
  --gpb-h2: 600 clamp(29px, 2.7vw, 40px)/1.08 var(--sans);
  --gpb-h3: 600 clamp(26px, 2.4vw, 34px)/1.12 var(--sans);
  --gpb-step-title: 600 16px/1.2 var(--sans);
  --gpb-body-size: clamp(17px, 1.45vw, 21px);
  --gpb-body: 400 var(--gpb-body-size)/1.5 var(--sans);
  --gpb-caption: 400 13px/1.4 var(--sans);
  --gpb-label: 500 12px/1.4 var(--mono);
  --gpb-heading-tracking: -.035em;
  --gpb-section-space: clamp(96px, 8.333vw, 120px);
  --gpb-media-space: clamp(40px, 3.333vw, 48px);
  --gpb-heading-space: 20px;
  --gpb-paragraph-space: 17px;
  --gpb-grid-gap: 64px;
  --gpb-image-radius: 0px;
  --gpb-caption-space: 16px;
  --gpb-media-gap: clamp(16px, 2vw, 32px);
  --gpb-page-width: 1440px;
}
@media (max-width: 720px) {
  .gpb-page {
    --gpb-section-space: 64px;
    --gpb-media-space: 32px;
    --gpb-paragraph-space: 14px;
    --gpb-grid-gap: 20px;
  }
}
.gpb-page{background:var(--paper);color:var(--ink);overflow-x:clip}
/* The hero stylesheet owns the wall and title layout. */
.gpb-section{scroll-margin-top:100px}
.gpb-print{display:block;position:relative;cursor:zoom-in;outline-offset:12px}
.gpb-print:nth-child(3n+2){margin-top:100px}
.gpb-print:nth-child(3n){margin-top:40px}
.gpb-print img{display:block;width:100%;height:auto;background:#e5e5e1}
.gpb-print.is-3d img{opacity:0}
.gpb-page .gpb-intro{min-width:0}
.gpb-page .gpb-intro>div{width:100%;min-width:0}
.gpb-intro p{text-wrap:pretty}
.gpb-events{padding:var(--gpb-section-space) var(--page-gutter) 0}
.gpb-events-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gpb-grid-gap);align-items:start;margin-bottom:var(--gpb-media-space)}
.gpb-events-intro p{margin:0;max-width:48ch;font:var(--gpb-body);color:var(--theme-muted);text-wrap:pretty}
.gpb-events figure{margin:0}
.gpb-events-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gpb-media-gap);margin-top:var(--gpb-media-space)}
@media(max-width:800px){.gpb-events-photos{grid-template-columns:minmax(0,1fr)}}
.gpb-events img{display:block;width:100%;height:auto}
.gpb-events-photos img{aspect-ratio:4/3;object-fit:cover;object-position:center}
@media(max-width:800px){.gpb-events-intro{grid-template-columns:minmax(0,1fr);gap:var(--gpb-heading-space);margin-bottom:var(--gpb-media-space)}.gpb-events{padding-bottom:0}}
.gpb-viewer{box-sizing:border-box;position:fixed;inset:0;width:min(1040px,calc(100vw - 48px));height:min(880px,calc(100dvh - 64px));max-width:100%;max-height:100%;margin:auto;padding:60px 20px 20px;border:0;background:#fff;color:var(--ink);overflow:hidden}
.gpb-viewer[open]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}
.gpb-viewer::backdrop{background:rgba(16,16,16,.78)}
.gpb-viewer figure{display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;min-width:0;min-height:0;height:100%;margin:0;overflow:hidden}
.gpb-viewer img{display:block;width:100%;height:100%;min-height:0;max-width:100%;max-height:100%;object-fit:contain;touch-action:pan-y}
.gpb-viewer figcaption{padding-top:var(--gpb-caption-space);font:var(--gpb-caption);color:var(--theme-muted)}
.gpb-viewer button{appearance:none;border:0;background:transparent;color:var(--ink);font:500 28px/1 var(--sans);cursor:pointer}
.gpb-viewer-nav{width:52px;height:52px;transition:background .2s,color .2s}
.gpb-viewer-nav:hover,.gpb-viewer-nav:focus-visible{background:var(--ink);color:#fff;outline:0}
.gpb-viewer-close{position:absolute;top:22px;right:25px;display:grid;place-items:center;box-sizing:border-box;width:48px;height:48px;padding:0;border-radius:0;transition:opacity .18s ease}
.gpb-viewer-close svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:square;pointer-events:none}
.gpb-viewer-close:hover{opacity:.55}
.gpb-viewer-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:767px){.gpb-viewer{width:calc(100vw - 24px);height:min(680px,calc(100dvh - 48px));padding:58px 12px 12px}.gpb-viewer[open]{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 48px;gap:10px}.gpb-viewer figure{grid-column:1 / -1;grid-row:1}.gpb-viewer-nav{align-self:end;width:100%;border-top:1px solid var(--line)!important}.gpb-viewer-prev{grid-column:1}.gpb-viewer-next{grid-column:2}.gpb-viewer-close{top:9px;right:10px}}
.gpb-page :focus-visible{outline:2px solid var(--theme-focus);outline-offset:5px}
@media(max-width:800px){.gpb-print:nth-child(n){margin-top:0}.gpb-print:nth-child(even){margin-top:48px}}
.gpb-kv{position:relative;padding:clamp(48px,6vw,96px) var(--page-gutter) clamp(64px,8vw,128px)}
.gpb-kv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense;gap:clamp(16px,2.4vw,40px)}
.gpb-kv .gpb-kv-tile{margin:0;border:0;outline:none;box-shadow:none}
.gpb-kv .gpb-kv-tile:focus-visible img{filter:brightness(.7)}
.gpb-kv .gpb-kv-tile img{aspect-ratio:1;background:none;border-radius:var(--gpb-image-radius)}
.gpb-kv-tile.is-large{grid-column:span 2;grid-row:span 2}
.gpb-kv-tile.is-right{grid-column:3/span 2}
@media(max-width:800px){.gpb-kv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gpb-kv-tile.is-large,.gpb-kv-tile.is-right{grid-column:1/-1;grid-row:auto}}
.gpb-kv-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}

@media (max-width: 800px) {
  .gpb-page { --gpb-title-size: clamp(24px, 7vw, 48px); }
}
