/* P2.1 full-site system. Paper and typography match the approved homepage. */
body.p21{padding-bottom:0}button,input,select,textarea{font-family:var(--body)}
:focus-visible{outline:2px solid var(--fg);outline-offset:4px}
[hidden]{display:none!important}body.modal-open{overflow:hidden}
.p21 .site-header nav a{min-height:44px;display:flex;align-items:center}
.p21 .site-footer{margin:0 var(--gutter);padding:36px 0 42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:36px;font-size:15px}
.site-footer .footer-name{font-family:var(--display);font-size:24px;letter-spacing:-.025em}
.site-footer p{margin-top:10px;color:var(--muted)}.site-footer nav{display:flex;gap:20px;margin-top:12px;flex-wrap:wrap}.site-footer a{display:inline-block;padding:8px 0}
.inner-content{margin:0 var(--gutter);padding:0 0 88px;min-height:55vh}
.inner-content .breadcrumb{font-size:14px;color:var(--muted);margin:20px 0 30px}.breadcrumb a{display:inline-block;padding:10px 0}
.inner-content h1{font-size:clamp(38px,4.4vw,68px);line-height:1.12;max-width:21ch;letter-spacing:-.035em;text-wrap:balance;overflow-wrap:break-word;margin:0 0 26px}
.inner-content h2{font-size:clamp(29px,2.7vw,42px);line-height:1.16;letter-spacing:-.025em;margin:48px 0 20px}
.inner-content h3{font-size:clamp(24px,2.2vw,30px);line-height:1.2;margin:24px 0 14px}
.inner-content p{font-size:18px;line-height:1.65;margin:0 0 18px;max-width:68ch}
.inner-content .vvod{font-size:clamp(19px,1.7vw,24px);line-height:1.5;color:var(--muted);max-width:62ch}
.inner-content a:not(.knopka):not(.portfolio-cover):not([data-art]):not([data-lightbox]){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.inner-content h1 a,.inner-content h2 a,.inner-content .breadcrumb a{text-decoration:none!important}
.inner-content a:hover{text-decoration-thickness:2px!important;opacity:1}
.inner-content :is(.sources,.tzp-sources,.bem-sources,.bem-role,.bem-note){font-size:14px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.inner-content .eyebrow{font-size:12px;letter-spacing:.08em;line-height:1.5;margin-bottom:18px}
.inner-content :is(article>header,.geroy){padding:0 0 42px;border-bottom:1px solid var(--line);margin-bottom:38px}
.inner-content .prose{max-width:none}
.inner-content .prose>p,.inner-content .prose>ul:not(.heritage-index),.inner-content .prose>ol{max-width:760px}
.inner-content li{line-height:1.65;margin-bottom:10px}.inner-content ul,.inner-content ol{padding-left:24px}
.inner-content blockquote{border-left:2px solid var(--line);padding:4px 0 4px 24px;margin:24px 0;color:var(--muted);max-width:72ch}
.inner-content details{border-top:1px solid var(--line);padding:18px 0;margin-top:26px}
.inner-content summary{cursor:pointer;padding:8px 0;font-size:17px}.inner-content details[open]>summary{margin-bottom:20px}
.inner-content :is(.deystviya,.dalshe){margin-top:28px}
.inner-content .knopka,.inner-content button[data-reset-filters]{display:inline-flex;align-items:center;min-height:48px;border:1px solid var(--fg);border-radius:0;padding:12px 20px;background:var(--fg);color:var(--bg);font-size:16px;text-decoration:none}
.page--service .geroy h1{max-width:25ch;font-size:clamp(36px,3.8vw,58px)}
.page--service .dveri-setka,.page--service .cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;border-top:1px solid var(--line);padding-top:30px;margin:44px 0}
.page--service .dveri-setka h2,.page--service .cases h3{font-size:29px;margin-top:0}.page--service .dveri-setka p,.page--service .cases p{font-size:17px}
.inner-content .tabl{overflow-x:auto;max-width:100%;margin:30px 0}.inner-content table{width:100%;border-collapse:collapse;font-size:16px;text-align:left}
.inner-content th,.inner-content td{border-bottom:1px solid var(--line);padding:18px 18px 18px 0;vertical-align:top}.inner-content th{font-weight:500}
.heritage-index{list-style:none;padding:0!important;margin:38px 0 0;counter-reset:family}
.heritage-index>li{position:relative;counter-increment:family;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 0 32px 56px;margin:0!important}
.heritage-index>li:before{content:'0' counter(family);position:absolute;top:37px;left:0;font-size:13px;color:var(--muted)}
.heritage-index h2{margin:0;font-size:clamp(27px,2.5vw,38px)}.heritage-index p{font-size:17px;margin:0}
.heritage-portrait{float:right;width:min(25%,220px);margin:0 0 32px 48px}.heritage-portrait img{max-height:300px;object-fit:contain;object-position:left center}.heritage-portrait figcaption{font-size:13px}
.bem-catalogue,.tzp-catalogue{clear:both}.bem-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px;margin:30px 0 60px}
.bem-gallery figure{min-width:0}.bem-gallery img{height:320px;object-fit:contain;object-position:left bottom}.bem-gallery figcaption{margin-top:20px}.bem-gallery figcaption p{font-size:16px;line-height:1.5}
.bem-bibliography{list-style:none;padding:0!important;max-width:900px}.bem-bibliography>li{border-top:1px solid var(--line);padding:20px 0}.bem-bibliography h3{font-family:var(--body);font-size:20px;letter-spacing:0;font-weight:500;margin-top:0}.bem-small-cover{max-width:160px;margin:20px 0}
.art-gallery{margin:56px 0;clear:both}.art-gallery figure.artwork{width:min(82%,920px);margin:0 0 76px;--frame-h:min(780px,calc(100svh - 100px));scroll-margin-top:24px}
.art-gallery figure.artwork:nth-of-type(even){margin-left:auto}
.art-gallery a[data-art]{display:flex;width:100%;height:max(100px,calc(var(--frame-h) - var(--caption-h,160px) - 20px));align-items:center;justify-content:center;background:transparent}
.art-gallery a[data-art] img{width:100%;height:100%;object-fit:contain;max-height:100%}
.art-gallery figcaption{margin:20px 0 0;border-top:1px solid var(--line);padding:16px 0 0;max-width:100%;color:var(--fg)}
.art-gallery figcaption p{font-size:16px;line-height:1.5;margin-bottom:8px;max-width:none}.art-gallery figcaption .tzp-sources{font-size:13px;margin:0}
.tzp-category{padding-top:24px}.tzp-category h3{margin:0 0 24px}.tzp-reference{border-top:1px solid var(--line);padding:22px 0;max-width:760px}
.page--artwork .object-card>h1{max-width:26ch;font-size:clamp(30px,3vw,46px)}
.page--artwork .object-card>a[data-lightbox]{display:block;width:100%;height:clamp(230px,48svh,560px);margin:30px 0}.page--artwork .object-card>a img{width:100%;height:100%;object-fit:contain}
.page--artwork .object-card>p{max-width:820px;font-size:17px}
.portfolio-filters{display:grid;grid-template-columns:1.4fr .65fr 1fr;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin-bottom:20px}
.portfolio-filters label{font-size:14px;display:flex;flex-direction:column;gap:10px;min-width:0}.portfolio-filters input,.portfolio-filters select{width:100%;min-height:48px;font-size:16px;line-height:1.5;padding:10px;border:1px solid #8a8983;border-radius:0;background:transparent;color:var(--fg)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 32px;margin-top:32px}.portfolio-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:22px}
.portfolio-cover{display:block;margin-bottom:22px}.portfolio-cover img{width:100%;aspect-ratio:466/264;object-fit:cover}
.portfolio-card .eyebrow{font-size:12px;color:var(--muted);margin:0 0 12px}.portfolio-card h2{font-size:28px;line-height:1.2;margin:0 0 18px;overflow-wrap:break-word}
.portfolio-card p{font-size:16px;line-height:1.6}.portfolio-card .dalshe{margin-top:22px;font-size:15px}
.portfolio-empty{padding:32px 0}.project-film video,.intro-film video{width:100%;height:auto;max-height:76svh;background:#181817;aspect-ratio:16/9;display:block;object-fit:contain}
.project-film h2{margin-top:0}.project-film .sources{margin-top:16px}.portfolio-project>header h1{max-width:26ch;font-size:clamp(34px,4vw,60px)}
.portfolio-project>.prose{max-width:800px;margin-top:48px}.portfolio-project>header p:first-child{display:none}
.page--photo-gallery .prose{display:grid;grid-template-columns:1fr 1fr;gap:44px 32px}.page--photo-gallery .prose>header,.page--photo-gallery .prose>p{grid-column:1/-1}.page--photo-gallery .prose>header{margin-bottom:0}
.heritage-work img{width:100%;height:340px;object-fit:contain;object-position:center}.heritage-work figcaption{font-size:15px}
.p21 .media-lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:24px;background:var(--bg);color:var(--fg);border:0;margin:0;overflow:auto;overscroll-behavior:contain}
.media-lightbox[open]{display:grid;grid-template-rows:auto minmax(140px,1fr) auto;gap:16px}
.media-lightbox::backdrop{background:rgba(24,24,23,.8)}.media-lightbox .lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:20px}.lightbox-bar p{font-size:15px;max-width:70ch}.lightbox-bar button{flex-shrink:0;min-width:44px;min-height:44px;border:1px solid var(--line);padding:10px 16px;background:transparent;font-size:16px}
.media-lightbox>img{width:100%;height:100%;min-height:0;object-fit:contain}.media-lightbox .lightbox-caption{font-size:15px;max-width:1000px;margin:auto;width:100%}.lightbox-caption p{margin:0 0 8px;max-width:none}.lightbox-caption a{font-size:14px;text-decoration:underline;text-underline-offset:3px}.media-lightbox .tzp-sources{font-size:13px;color:var(--muted)}
@media(min-width:1700px){.inner-content{margin-inline:85px}}
@media(max-width:1100px){.portfolio-grid{grid-template-columns:1fr 1fr}.page--service .dveri-setka,.page--service .cases{grid-template-columns:1fr;gap:24px}.bem-gallery{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 .p21 .site-footer{display:block;padding:30px 0}.site-footer>div+div{margin-top:18px}.site-footer .footer-name{font-size:22px}
 .inner-content{padding-bottom:56px}.inner-content .breadcrumb{margin:12px 0 24px}.inner-content h1{font-size:36px;max-width:none;line-height:1.15;margin-bottom:22px;text-wrap:initial}
 .inner-content h2{font-size:30px;line-height:1.2;margin:36px 0 18px}.inner-content h3{font-size:25px}
 .inner-content p{font-size:17px;line-height:1.6}.inner-content .vvod{font-size:19px}.inner-content :is(article>header,.geroy){padding-bottom:26px;margin-bottom:28px}
 .page--service .geroy h1{font-size:34px}.inner-content th,.inner-content td{padding:14px 14px 14px 0;font-size:14px;min-width:70px}.inner-content td:last-child{min-width:190px}
 .heritage-index>li{display:block;padding:25px 0 25px 34px}.heritage-index>li:before{top:31px}.heritage-index h2{font-size:27px;margin-bottom:15px}.heritage-index p{font-size:16px}
 .heritage-portrait{float:none;width:160px;margin:0 0 26px}.bem-gallery{grid-template-columns:1fr;gap:36px}.bem-gallery img{height:min(54svh,360px);object-position:center}.bem-gallery figcaption{margin-top:18px}
 .art-gallery{margin-top:38px}.art-gallery figure.artwork{width:100%;margin:0 0 48px;--frame-h:calc(100svh - 70px)}
 .art-gallery figcaption{padding-top:12px;margin-top:16px}.art-gallery figcaption p{font-size:15px;line-height:1.45}.art-gallery figcaption .tzp-sources{font-size:13px}
 .page--artwork .object-card>h1{font-size:30px}.page--artwork .object-card>p{font-size:16px}
 .portfolio-filters{grid-template-columns:1fr 1fr;gap:16px}.portfolio-filters label:first-child{grid-column:1/-1}.portfolio-filters select{font-size:16px}
 .portfolio-grid{grid-template-columns:1fr;gap:38px}.portfolio-card h2{font-size:28px}.portfolio-cover{margin-bottom:18px}
 .portfolio-project>header h1{font-size:34px}.portfolio-project>.prose{margin-top:34px}
 .page--photo-gallery .prose{grid-template-columns:1fr;gap:32px}.heritage-work img{height:auto;max-height:60svh;object-fit:contain}
 .p21 .media-lightbox{padding:16px;gap:12px}.lightbox-bar p{font-size:13px}.lightbox-bar button{font-size:14px;padding:10px 12px}.media-lightbox .lightbox-caption{font-size:14px}
}
@media(max-width:360px){.inner-content h1,.page--service .geroy h1,.portfolio-project>header h1{font-size:30px}.p21 .wordmark{font-size:13px}.p21 .header-actions{gap:12px}.p21 .site-header{gap:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.tzp-reference>a[data-lightbox]{display:block;width:fit-content;margin:24px 0}.tzp-reference .tzp-small{width:auto;height:auto;max-height:300px;max-width:100%}

.heritage-summary{min-width:0}.heritage-summary p+p{margin-top:12px}.heritage-summary>a{display:inline-block;margin-top:12px}
