/*
Theme Name: Галерея Брусницыных
Theme URI: https://brusnitsyn-gallery.ru
Description: Кастомная тема онлайн-галереи современного искусства. Каталог работ с фильтрами (таксономии), художники, события, новости и инфо-страницы. Поля на бесплатном ACF, фильтры — таксономии (легко редактируются в админке). ACF Pro не требуется.
Author: Cowork
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: brusnitsyn
*/

@font-face{font-family:'Jun';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/Jun_Regular.otf') format('opentype');}
@font-face{font-family:'Jun';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/Jun_Italic.otf') format('opentype');}

:root{
  --blue:#4079E2;--pink:#E24076;--black:#000;--grey:#A29C9C;--line:#D8D8D8;--bg:#ECECEC;--dark:#2C2C2C;
  --body:'Google Sans','Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --display:'Jun','PT Serif',Georgia,'Times New Roman',serif;
  --max:1320px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--black);background:#fff;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:calc(var(--max) + 120px);margin:0 auto;padding:0 clamp(16px,4.2vw,60px)}
.cover{width:100%;height:100%;object-fit:cover;background:#D9D9D9}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 20px;font-size:16px;cursor:pointer;border:none;font-family:var(--body)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:#356ad0}
.btn-ghost{color:var(--blue);border-radius:5px;border-bottom:1px solid var(--blue);background:transparent}

/* header */
.site-header{border-bottom:1px solid var(--line);position:relative;background:#fff;z-index:40}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:65px}
.logo{font-family:var(--display);font-size:20px;line-height:1;white-space:nowrap}
.logo b{color:var(--blue);font-weight:400}
.nav{display:flex;gap:41px;margin-left:auto}
.nav a{font-size:16px}
.nav a:hover{color:var(--blue)}
.nav a.active,.nav .current-menu-item>a{font-weight:700;color:var(--blue);text-decoration:underline;text-underline-offset:5px}
.nav-toggle{display:none}
.burger{display:none;margin-left:auto;width:30px;height:22px;flex-direction:column;justify-content:space-between;cursor:pointer;background:none;border:none;padding:0}
.burger span{display:block;height:2px;width:100%;background:var(--black);transition:.25s}

/* breadcrumb / titles */
.breadcrumb{margin-top:32px;font-size:16px}
.breadcrumb a:hover{color:var(--blue)}
.page-title{font-family:var(--display);font-weight:400;font-size:clamp(32px,3.6vw,46px);color:var(--blue);margin-top:18px}
.section{margin-top:64px}
.section-title{font-family:var(--display);font-weight:400;font-size:24px;text-align:center}
.center-action{display:flex;justify-content:center;margin-top:32px}

/* hero (home) */
.hero{padding-top:27px}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.6vw,46px);line-height:1.15;max-width:790px}
.hero h1 .accent{color:var(--blue)}
.hero p{max-width:919px;margin-top:24px;font-size:16px}
.hero .btn-primary{margin-top:30px}

/* artwork card */
.card{break-inside:avoid;-webkit-column-break-inside:avoid;display:inline-block;width:100%}
.card .thumb{width:100%;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover;background:#D9D9D9;transition:transform .35s ease}
.card:hover .thumb img{transform:scale(1.04)}
.card:hover .title{color:var(--blue)}
.card .meta-top{display:flex;justify-content:space-between;margin-top:14px;font-size:16px;gap:10px}
.card .title{font-family:var(--display);font-size:18px;margin-top:6px}
.card .meta-bottom{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px;gap:10px}
.card .size{color:var(--blue);font-family:var(--display);font-size:14px}
.card .price{font-size:20px;white-space:nowrap}

/* home catalog masonry */
.home-catalog{margin-top:56px;column-count:4;column-gap:24px}
.home-catalog .card{margin-bottom:60px}

/* artists carousel (home) */
.artists{margin-top:44px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.artists-track{display:flex;width:max-content;animation:marquee 50s linear infinite}
.artists:hover .artists-track{animation-play-state:paused}
.artists-set{display:flex;gap:24px;padding-right:24px}
.artist-c{flex:0 0 315px}
.artist-c .photo{width:100%;aspect-ratio:315/366;overflow:hidden}
.artist-c .row{display:flex;justify-content:space-between;margin-top:14px;font-size:16px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.artists-track{animation:none}.artists{overflow-x:auto}}

/* events / news cards (home + archives) */
.events-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.event-c{display:block}
.event-c .pic{width:100%;aspect-ratio:427/284;overflow:hidden}
.event-c .pic img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.event-c:hover .pic img{transform:scale(1.03)}
.event-c:hover h3{color:var(--blue)}
.event-c .row{display:flex;justify-content:space-between;margin-top:14px;font-size:16px;gap:10px}
.event-c .loc{color:var(--grey);text-align:right;white-space:nowrap}
.event-c h3{font-family:var(--display);font-weight:400;font-size:20px;margin-top:8px}
.event-c p{margin-top:8px;font-size:16px}
.news-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}

/* ============ CATALOG (archive-artwork) ============ */
.cat-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:36px;gap:16px;flex-wrap:wrap}
.filter-label{font-family:var(--display);font-size:16px;color:var(--blue);background:none;border:none;cursor:default;display:inline-flex;align-items:center;gap:8px}
.filter-label .chev{display:none}
.sort{position:relative}
.sort select{appearance:none;background:none;border:none;font-family:var(--body);font-size:16px;color:var(--black);cursor:pointer;padding-right:26px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none'><path d='M1 1L7 7L13 1' stroke='black' stroke-width='1.5' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right center}
.cat-body{display:grid;grid-template-columns:315px 1fr;margin-top:24px;align-items:start}
.filters{padding-right:0}
.works{border-left:1px solid var(--line);padding-left:60px;margin-left:10px}
.fgroup{padding:20px 0;border-bottom:1px solid var(--line)}
.fgroup:first-child{padding-top:0}
.fgroup h3{font-family:var(--display);font-weight:400;font-size:16px;text-transform:uppercase;margin-bottom:16px}
.opt{display:flex;align-items:center;gap:13px;margin-bottom:12px;font-size:16px;cursor:pointer}
.opt:last-child{margin-bottom:0}
.opt input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1px solid var(--black);margin:0;flex:0 0 20px;display:grid;place-content:center;cursor:pointer;background:#fff}
.opt input[type=radio]{border-radius:50%;width:16px;height:16px;flex-basis:16px}
.opt input[type=checkbox]:checked::after{content:"";width:9px;height:6px;border-left:2px solid var(--black);border-bottom:2px solid var(--black);transform:translateY(-1px) rotate(-45deg)}
.opt input[type=radio]:checked::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--black)}
.artist-search{width:100%;height:44px;padding:0 14px;border:1px solid var(--blue);font-family:var(--body);font-size:16px;margin-bottom:18px}
.artist-search::placeholder{color:var(--line)}
.filters .btn-primary{width:100%;margin-top:24px}
.reset{display:block;text-align:center;margin-top:16px;font-size:16px;cursor:pointer}
.reset:hover{color:var(--blue)}
.works-grid{column-count:3;column-gap:24px}
.works-grid .card{margin-bottom:40px}
.show-more{display:flex;justify-content:center;margin-top:24px}
.no-results{padding:40px 0;color:var(--grey)}

/* ============ SINGLE ARTWORK ============ */
.work-hero{display:grid;grid-template-columns:623px 1fr;gap:48px;margin-top:24px;align-items:start}
.work-img{position:relative;aspect-ratio:623/733;overflow:hidden}
.work-img img{width:100%;height:100%;object-fit:cover}
.sold-overlay{position:absolute;right:36px;bottom:36px;width:112px;height:112px;border-radius:50%;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:16px}
.badge{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 14px;font-size:16px}
.badge-available{border:1px solid var(--blue);color:var(--blue);background:#fff}
.badge-sold{background:var(--pink);color:#fff}
.work-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.price-top{font-family:var(--display);font-size:36px;white-space:nowrap}
.work-title{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,48px);margin-top:28px;line-height:1.1}
.spec{display:grid;grid-template-columns:130px 1fr;gap:24px;font-size:16px;margin-top:12px}
.spec .k{font-weight:700;text-transform:uppercase}
.spec .v{text-transform:uppercase}
.author-row{margin-top:24px}
.specs{margin-top:24px}
.buy{margin-top:32px;width:312px;max-width:100%}
.sec-2col{display:grid;grid-template-columns:315px 1fr;column-gap:20px;margin-top:80px}
.sec-label{font-family:var(--display);font-size:16px;text-transform:uppercase}
.sec-2col p{font-size:16px}
.sec-2col p + p{margin-top:20px}
.about-toggle{display:none;margin-top:14px;color:var(--blue);background:none;border:none;border-bottom:1px solid var(--blue);border-radius:5px;font-family:var(--body);font-size:15px;cursor:pointer;padding:8px 0}
.artist-block{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start}
.artist-photo{width:100%;aspect-ratio:315/366;overflow:hidden}
.artist-name{font-family:var(--display);font-size:20px}
.artist-bio{margin-top:16px;font-size:16px;max-width:651px}
.artist-actions{display:flex;gap:20px;margin-top:28px;flex-wrap:wrap}
.related{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
/* статус работы */
.work-single[data-state="sold"] .badge-available{display:none}
.work-single[data-state="available"] .badge-sold{display:none}
.work-single[data-state="available"] .sold-overlay{display:none}
.work-single[data-state="sold"] .price-top,.work-single[data-state="sold"] .buy{display:none}
/* статус события */
.event-single[data-ev="past"] .buy-ticket{display:none}
.event-single[data-ev="upcoming"] #photoreport{display:none}

/* ============ ARTISTS ARCHIVE / SINGLE ============ */
.artists-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 20px;margin-top:24px}
.artist-card .photo{width:100%;aspect-ratio:315/366;overflow:hidden}
.artist-card .photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.artist-card:hover .photo img{transform:scale(1.04)}
.artist-card:hover .name{color:var(--blue)}
.artist-card .row{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;gap:10px}
.artist-card .name{font-family:var(--display);font-size:18px}
.artist-card .count{font-size:16px;white-space:nowrap}
.artist-hero{display:grid;grid-template-columns:623px 1fr;gap:48px;margin-top:24px;align-items:start}
.artist-hero .ph{width:100%;aspect-ratio:623/733;overflow:hidden}
.artist-hero h1{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,48px);line-height:1.05}
.artist-hero .bio{margin-top:24px;font-size:16px;max-width:646px}
.artist-hero .bio p + p{margin-top:20px}
.hero-actions{display:flex;gap:20px;margin-top:40px;flex-wrap:wrap}
.exhibitions{display:grid;grid-template-columns:1fr 1fr}
.exh-col{display:flex;flex-direction:column;gap:32px}
.exh-col:first-child{padding-right:60px}
.exh-col:last-child{border-left:1px solid var(--line);padding-left:60px}
.exh{display:grid;grid-template-columns:90px 1fr;gap:23px}
.exh .year{font-family:var(--display);font-size:20px}
.exh-title{font-weight:700;font-size:16px;margin-bottom:8px}
.exh-body p{font-size:16px}
.others-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}

/* sort dropdown (artists) */
.sort-btn{display:inline-flex;align-items:center;gap:14px;background:none;border:none;cursor:pointer;font-family:var(--body);font-size:16px;color:var(--black)}
.toolbar{display:flex;justify-content:flex-end;margin-top:36px}

/* ============ EVENTS ============ */
.featured{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start;margin-top:30px}
.featured-side{display:flex;flex-direction:column;gap:32px}
.event-c.event-lg .pic{aspect-ratio:870/768}
.ev-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:34px;flex-wrap:wrap}
.ev-head h1{font-family:var(--display);font-weight:400;font-size:clamp(32px,3.6vw,46px);color:var(--blue)}
.ev-actions{display:flex;gap:20px;flex-wrap:wrap}
.hero-img{width:100%;aspect-ratio:1317/768;overflow:hidden;margin-top:24px}
.hero-img img{width:100%;height:100%;object-fit:cover}
.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.photo-tile{aspect-ratio:315/250;overflow:hidden}
.photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.photo-tile:hover img{transform:scale(1.04)}
.sec > .sec-label{margin-bottom:32px;display:block}

/* ============ NEWS ============ */
.news-item .pic{width:100%;aspect-ratio:427/258;overflow:hidden}
.news-item .pic img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.news-item:hover .pic img{transform:scale(1.03)}
.news-item:hover h3{color:var(--blue)}
.news-item .date{margin-top:14px;font-size:16px}
.news-item h3{font-family:var(--display);font-weight:400;font-size:20px;margin-top:8px}
.news-item p{margin-top:8px;font-size:16px}

/* ============ ABOUT ============ */
.about-hero{display:grid;grid-template-columns:1fr 647px;gap:40px;align-items:start;margin-top:24px}
.about-hero .pic{width:100%;aspect-ratio:647/292;overflow:hidden}
.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:80px}
.about-cols .lbl{font-family:var(--display);font-size:16px;text-transform:uppercase;margin-bottom:24px}
.about-cols p{font-size:16px}
.about-cols p + p{margin-top:20px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:40px}
.stat .num{font-family:var(--display);font-size:clamp(40px,5vw,64px);line-height:1}
.stat .slbl{font-size:16px;margin-top:8px}
.about-big{width:100%;aspect-ratio:1314/498;overflow:hidden;margin-top:56px}

/* ============ CONTACTS / FORM ============ */
.c-sub{margin-top:10px;font-size:16px;color:var(--grey)}
.c-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:40px;align-items:start}
.c-block{margin-bottom:36px}
.c-block h3{font-family:var(--display);font-size:20px;margin-bottom:14px}
.c-block p{font-size:16px;margin-bottom:6px}
.c-block a:hover{color:var(--blue)}
.c-socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.chip{display:inline-flex;align-items:center;height:36px;padding:0 16px;border:1px solid var(--line);border-radius:20px;font-size:15px;cursor:pointer}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.c-note{font-size:16px;color:var(--grey)}
.form-card{border:1px solid var(--line);padding:36px}
.form-card h2{font-family:var(--display);font-weight:400;font-size:24px}
.form-card .lead{margin-top:8px;color:var(--grey);font-size:16px}
.fgrid{margin-top:24px;display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px}
.control{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);background:#fff;font-family:var(--body);font-size:16px;color:var(--black);transition:border-color .2s}
textarea.control{height:auto;min-height:110px;padding:12px 14px;resize:vertical}
select.control{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none'><path d='M1 1L7 7L13 1' stroke='%234079E2' stroke-width='1.5' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.control::placeholder{color:var(--line)}
.control:focus{outline:none;border-color:var(--blue)}
.submit{margin-top:24px;width:100%;height:52px;background:var(--blue);color:#fff;border:none;font-family:var(--body);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .2s}
.submit:hover{background:#356ad0}
.form-note{margin-top:14px;font-size:14px;color:var(--grey)}

/* ============ 404 ============ */
.e404{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;min-height:60vh;padding:60px 0}
.e404 .big{font-family:var(--display);font-size:clamp(96px,16vw,200px);color:var(--blue);line-height:.9}
.e404 h2{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,32px);margin-top:24px}
.e404 p{margin-top:16px;font-size:16px;max-width:460px}
.e404 .acts{display:flex;gap:20px;margin-top:32px;flex-wrap:wrap}
.e404 .frame{aspect-ratio:1/1;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:14px}

/* ============ INFO PAGES ============ */
.i-lead{margin-top:16px;font-size:18px;max-width:820px;color:#222}
.info-section{margin-top:72px}
.info-section:first-of-type{margin-top:48px}
.eyebrow{font-family:var(--display);font-size:15px;text-transform:uppercase;color:var(--grey);letter-spacing:.05em}
.info-section h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,34px);margin-top:8px}
.info-section .sub{margin-top:12px;font-size:16px;max-width:780px;color:#333}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}
.card-f{border:1px solid var(--line);padding:28px;background:#fff;transition:border-color .2s,transform .2s}
.card-f:hover{border-color:var(--blue);transform:translateY(-2px)}
.card-f .ic{width:46px;height:46px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--blue)}
.card-f h3{font-family:var(--display);font-size:20px;margin-bottom:10px}
.card-f p{font-size:15px;color:#333}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:32px}
.step{padding-top:22px;border-top:2px solid var(--blue)}
.step .n{font-family:var(--display);font-size:14px;color:var(--blue);margin-bottom:8px}
.step h3{font-family:var(--display);font-size:18px;margin-bottom:8px}
.step p{font-size:15px;color:#333}
.checklist{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:16px 48px;max-width:940px}
.check{display:flex;gap:14px;align-items:flex-start;font-size:16px}
.check .tick{flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;margin-top:1px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:stretch;margin-top:32px}
.panel{background:var(--bg);padding:40px;display:flex;flex-direction:column;justify-content:center}
.panel h3{font-family:var(--display);font-size:24px;margin-bottom:12px}
.panel p{font-size:16px;color:#333}
.panel p + p{margin-top:10px}
.faq{margin-top:28px;max-width:940px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 0;font-family:var(--display);font-size:20px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{color:var(--blue);font-size:26px;line-height:1;transition:transform .2s}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .ans{padding:0 0 22px;font-size:16px;color:#333;max-width:780px}
.cta-band{margin-top:72px;background:var(--bg);padding:44px 48px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta-band h2{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,30px)}
.cta-band p{margin-top:8px;color:#333;font-size:16px}
.cta-actions{display:flex;gap:16px;flex-wrap:wrap}
.cert{border:1px solid var(--line);padding:36px;background:linear-gradient(135deg,#fff,#eef3fc);position:relative;min-height:300px}
.cert .seal{position:absolute;right:28px;top:28px;width:72px;height:72px;border-radius:50%;border:2px solid var(--blue);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:11px;text-align:center;font-family:var(--display);line-height:1.2}
.cert .kicker{font-family:var(--display);font-size:13px;text-transform:uppercase;color:var(--grey);letter-spacing:.08em}
.cert .ct{font-family:var(--display);font-size:26px;margin:6px 0 22px}
.cert .crow{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid rgba(0,0,0,.1);font-size:15px}
.cert .crow span:first-child{color:var(--grey)}

/* ============ PRIVACY ============ */
.p-meta{margin-top:10px;font-size:16px;color:var(--grey)}
.p-callout{border-left:3px solid var(--blue);background:var(--bg);padding:18px 20px;margin-top:32px;font-size:16px;max-width:900px}
.p-list{margin-top:40px}
.p-sec{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--line);max-width:1100px}
.p-sec:first-child{border-top:none;padding-top:0}
.p-num{font-family:var(--display);font-size:24px;color:var(--blue)}
.p-sec h3{font-family:var(--display);font-weight:400;font-size:22px;margin-bottom:12px}
.p-sec p{font-size:16px}

/* ============ FOOTER ============ */
.site-footer{background:var(--dark);color:#fff;margin-top:80px;padding:90px 0 48px}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1.1fr 1.3fr 1.5fr;gap:30px}
.foot-col h4{font-size:16px;font-weight:700;margin-bottom:15px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.foot-col a:hover{opacity:.8}
.socials{display:flex;align-items:center;gap:17.5px}
.socials a{display:inline-flex}
.foot-note{max-width:246px;font-size:16px;margin-bottom:15px}
.subscribe{display:flex;gap:5px;max-width:261px}
.subscribe input{flex:1;min-width:0;height:44px;padding:0 14px;border:1px solid #fff;background:transparent;color:#fff;font-family:var(--body);font-size:16px}
.subscribe input::placeholder{color:var(--line)}
.subscribe button{width:49px;height:44px;background:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 49px}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:64px;font-size:16px;gap:30px}
.foot-bottom .links{display:flex;gap:30px}

/* ============ RESPONSIVE ============ */
@media (max-width:1200px){
  .home-catalog{column-count:3}
  .works-grid{column-count:3}
  .artists-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr 1fr;row-gap:40px}
  .foot-grid .foot-col:first-child{grid-column:1 / -1}
}
@media (max-width:980px){
  .nav{position:absolute;top:100%;left:0;right:0;margin:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(0,0,0,.08);display:none;z-index:50}
  .nav a{padding:14px clamp(16px,4.2vw,60px);border-top:1px solid var(--line)}
  .nav a.active,.nav .current-menu-item>a{text-decoration:none}
  .nav-toggle:checked ~ .nav{display:flex}
  .burger{display:flex}
  .nav-toggle:checked ~ .burger span:nth-child(1){transform:translateY(10px) rotate(45deg)}
  .nav-toggle:checked ~ .burger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .burger span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
}
@media (max-width:960px){
  .section{margin-top:48px}
  .works-grid{column-count:2}
  .events-grid{grid-template-columns:repeat(2,1fr)}
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .cat-body{grid-template-columns:1fr;margin-top:16px}
  .works{border-left:none;padding-left:0;margin-left:0}
  .filters{display:none;margin-bottom:32px;padding-bottom:8px;border-bottom:1px solid var(--line)}
  .fil-toggle:checked ~ .cat-body .filters{display:block}
  .fil-toggle:checked ~ .cat-toolbar .filter-label .chev{transform:rotate(180deg)}
  .filter-label{cursor:pointer} .filter-label .chev{display:inline-flex}
  .work-hero,.artist-hero{grid-template-columns:1fr;gap:28px}
  .sec-2col{grid-template-columns:1fr;gap:16px}
  .artist-block{grid-template-columns:1fr;gap:20px}
  .artist-photo{max-width:315px}
  .related,.others-grid,.people-grid,.photo-grid{grid-template-columns:repeat(2,1fr)}
  .featured{grid-template-columns:1fr;gap:32px}.featured-side{flex-direction:row}.featured-side .event-c{flex:1}.event-c.event-lg .pic{aspect-ratio:16/10}
  .about-hero{grid-template-columns:1fr;gap:24px}.about-cols{grid-template-columns:1fr;gap:40px;margin-top:48px}
  .cards{grid-template-columns:repeat(2,1fr)} .steps{grid-template-columns:repeat(2,1fr)} .split{grid-template-columns:1fr;gap:24px}
  .artists-grid{grid-template-columns:repeat(2,1fr);gap:28px 12px}
}
@media (max-width:860px){.c-grid{grid-template-columns:1fr;gap:32px}.e404{grid-template-columns:1fr;gap:32px}.e404 .frame{display:none}}
@media (max-width:760px){
  .wrap{padding-left:12px;padding-right:12px}
  body{font-size:14px}
  .nav a,.breadcrumb,.hero p,.card .meta-top,.event-c .row,.event-c p,.news-item .date,.news-item p,
  .spec,.sec-2col p,.artist-bio,.artist-card .count,.opt,.sort select,.sort-btn,.foot-col h4,.foot-col ul,
  .foot-note,.subscribe input,.foot-bottom,.c-block p,.control,.i-lead,.card-f p,.step p,.faq .ans,.cta-band p,.p-sec p{font-size:14px}
  .card .price{font-size:16px}.card .title{font-size:16px}
  .event-c h3,.news-item h3,.event h3{font-size:18px}
  .home-catalog{margin-top:60px;column-count:1}.home-catalog .card{margin-bottom:24px}
  .works-grid{column-count:1;margin-top:40px}.works-grid .card{margin-bottom:24px}
  .events-grid,.news-grid{grid-template-columns:1fr;margin-top:24px;gap:24px}
  .cat-toolbar{flex-direction:column;align-items:flex-start;gap:14px}
  .section-title{font-size:20px}
  .work-title{font-size:clamp(28px,7vw,34px)}
  .buy{width:100%}
  .about-text{max-height:260px;overflow:hidden;position:relative;transition:max-height .35s ease}
  .about-text.open{max-height:4000px}
  .about-text:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:linear-gradient(rgba(255,255,255,0),#fff)}
  .about-toggle{display:inline-block}
  .sold-overlay{right:10px;bottom:10px;width:92px;height:92px;font-size:14px}
  .related,.others-grid{grid-template-columns:repeat(2,1fr);gap:24px 12px}
  .people-grid{grid-template-columns:repeat(2,1fr);gap:28px 12px}
  .photo-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .exhibitions{grid-template-columns:1fr}.exh-col:first-child{padding-right:0}.exh-col:last-child{border-left:none;padding-left:0;margin-top:32px}
  .featured-side{flex-direction:column}
  .ev-actions .btn,.hero-actions .btn,.artist-actions .btn,.acts .btn,.cta-actions .btn{flex:1}
  .stats{grid-template-columns:1fr 1fr;gap:24px 16px}
  .checklist{grid-template-columns:1fr;gap:14px}
  .cta-band{padding:28px 18px;flex-direction:column;align-items:flex-start}
  .panel{padding:28px}
  .faq summary{font-size:18px}
  .p-sec{grid-template-columns:1fr;gap:8px}
  .info-section{margin-top:56px}
  .site-footer{margin-top:60px;padding:40px 0 28px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 16px}
  .fc-soc{order:5;grid-column:1 / -1}.fc-razdel{order:1}.fc-buyer{order:2}.fc-partner{order:3;grid-column:1 / -1}.fc-news{order:4;grid-column:1 / -1}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:12px;margin-top:32px}
  .foot-bottom .links{flex-direction:row;flex-wrap:wrap;gap:18px}
}
@media (max-width:520px){
  .works-grid{column-count:1}
  .related,.others-grid,.cards,.steps{grid-template-columns:1fr}
  .artists-grid{grid-template-columns:1fr 1fr}
  .artist-c{flex-basis:78vw}
}

/* ---------- Редактируемый контент инфо-страниц ---------- */
.info-editable .rich{max-width:820px;font-size:17px;line-height:1.6;color:#1a1a1a}
.info-editable .rich h2{font-family:var(--display);font-size:28px;margin:34px 0 12px}
.info-editable .rich h3{font-size:21px;margin:26px 0 10px}
.info-editable .rich p{margin:0 0 16px}
.info-editable .rich ul,.info-editable .rich ol{margin:0 0 16px 22px}
.info-editable .rich li{margin:0 0 8px}
.info-editable .rich a{color:var(--blue);text-decoration:underline}
.info-editable .rich img{margin:18px 0;border-radius:6px}

/* ---------- Сообщение подписки ---------- */
.subscribe-msg{margin-top:10px;font-size:14px;min-height:18px;line-height:1.4}
.subscribe button{cursor:pointer}
.subscribe button:disabled{opacity:.5;cursor:default}

/* ===== Главная: каталог — кладка по высоте фото, ширина одинаковая, 4 колонки ===== */
.home-catalog{display:block;column-count:4;column-gap:24px;margin-top:56px}
.home-catalog .card{display:inline-block;width:100%;margin:0 0 48px;break-inside:avoid;-webkit-column-break-inside:avoid}
.home-catalog .card .thumb{aspect-ratio:auto}
.home-catalog .card .thumb img{height:auto}
@media (max-width:880px){.home-catalog{column-count:3}}
@media (max-width:680px){.home-catalog{column-count:2;column-gap:16px}.home-catalog .card{margin-bottom:28px}}
@media (max-width:460px){.home-catalog{column-count:1}}

/* ===== Каталог: фильтр — отдельный «липкий» скролл ===== */
@media (min-width:961px){
  .cat-body{align-items:start}
  .filters{position:sticky;top:88px;align-self:start;max-height:calc(100vh - 110px);overflow-y:auto;padding-right:10px;scrollbar-width:thin;scrollbar-color:#cfcfcf transparent}
  .filters::-webkit-scrollbar{width:6px}
  .filters::-webkit-scrollbar-thumb{background:#cfcfcf;border-radius:3px}
  .filters::-webkit-scrollbar-track{background:transparent}
}

/* ===== Микроанимации ===== */
.btn{transition:transform .2s ease,background .2s ease,color .2s ease}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost:hover{transform:translateY(-1px)}
.chip{transition:transform .15s ease,border-color .15s ease,color .15s ease}
.chip:hover{transform:translateY(-2px);color:var(--blue)}
.socials a{transition:transform .2s ease,opacity .2s ease}
.socials a:hover{transform:translateY(-3px)}
.logo{transition:opacity .2s ease}
.logo:hover{opacity:.75}
.opt,.fgroup h3{transition:color .15s ease}
.opt:hover{color:var(--blue)}
/* Появление цифр на «О галерее» */
/* Цифры всегда видимы; «появление по очереди» делает счётчик в reveal.js */
.stat{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.stat .num{display:inline-block}

/* ===== Красивая сортировка ===== */
.sort label{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-size:15px;color:var(--blue)}
.sortui{position:relative;display:inline-block}
.sortui-btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-family:var(--body);font-size:15px;color:var(--black);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}
.sortui-btn:hover{border-color:var(--blue)}
.sortui.open .sortui-btn{border-color:var(--blue);box-shadow:0 0 0 3px rgba(64,121,226,.12)}
.sortui .cv{color:var(--blue);transition:transform .2s ease}
.sortui.open .cv{transform:rotate(180deg)}
.sortui-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.13);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:60}
.sortui.open .sortui-pop{opacity:1;visibility:visible;transform:none}
.sortui-opt{display:block;width:100%;text-align:left;border:none;background:none;font-family:var(--body);font-size:15px;padding:11px 14px;border-radius:9px;cursor:pointer;color:var(--black);transition:background .15s ease,color .15s ease}
.sortui-opt:hover{background:#f3f6fd;color:var(--blue)}
.sortui-opt.is-sel{color:var(--blue);font-weight:500}
@media (max-width:520px){.sortui-pop{right:auto;left:0}}

/* Каталог: высота карточек по фото (как и на главной) */
.works-grid .card .thumb{aspect-ratio:auto}
.works-grid .card .thumb img{height:auto}

/* ===== Кладка колонками (JS-распределение): всегда нужное число колонок, высота по фото ===== */
.home-catalog,.works-grid{display:flex !important;align-items:flex-start;gap:24px;column-count:auto}
.masco{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:48px}
.works-grid .masco{gap:40px}
.home-catalog .card,.works-grid .card{display:block;width:100%;margin:0;break-inside:auto}
.home-catalog .card .thumb,.works-grid .card .thumb{aspect-ratio:auto}
.home-catalog .card .thumb img,.works-grid .card .thumb img{height:auto;width:100%}
@media (max-width:700px){.masco{gap:28px}.home-catalog,.works-grid{gap:16px}}

/* ===== Ровная сетка каталога: общая верхняя линия, следующий ряд от самого высокого фото ===== */
.home-catalog{display:grid !important;grid-template-columns:repeat(4,1fr);gap:48px 24px;align-items:start}
.works-grid{display:grid !important;grid-template-columns:repeat(3,1fr);gap:40px 24px;align-items:start}
.home-catalog .card,.works-grid .card{display:block;width:auto;margin:0;break-inside:auto}
.home-catalog .card .thumb,.works-grid .card .thumb{aspect-ratio:auto}
.home-catalog .card .thumb img,.works-grid .card .thumb img{height:auto;width:100%}
@media (max-width:880px){.home-catalog{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){.home-catalog{grid-template-columns:repeat(2,1fr);gap:28px 16px}.works-grid{grid-template-columns:repeat(2,1fr);gap:28px 16px}}
@media (max-width:460px){.home-catalog,.works-grid{grid-template-columns:1fr}}
#bg-contact select.control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'><path d='M1 1l6 6 6-6' stroke='%23120F0F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 16px center;background-size:14px 8px;padding-right:42px;cursor:pointer}
.sortui.field{display:block;width:100%}.sortui.field .sortui-btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;height:44px;border-radius:0;padding:0 14px;font-size:16px}.sortui.field .sortui-pop{left:0;right:0;min-width:0;width:100%;top:calc(100% + 6px)}
.bg-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;opacity:0;pointer-events:none}
.site-header{position:sticky;top:0}
body.admin-bar .site-header{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
.bg-modal{position:fixed;inset:0;z-index:200;display:none}
.bg-modal.open{display:block}
.bg-modal-back{position:absolute;inset:0;background:rgba(15,15,20,.55)}
.bg-modal-card{position:relative;max-width:460px;margin:7vh auto 0;background:#fff;padding:34px 30px;box-shadow:0 30px 80px rgba(0,0,0,.32);max-height:86vh;overflow:auto}
.bg-modal-x{position:absolute;top:12px;right:16px;border:none;background:none;font-size:26px;line-height:1;color:#999;cursor:pointer}
.bg-modal-x:hover{color:var(--black)}
.bg-modal-h{font-family:var(--display);font-weight:400;font-size:26px;margin:0 0 6px}
.bg-modal-sub{color:#555;font-size:15px;margin:0 0 18px;line-height:1.4}
.bg-modal .fgrid{margin-top:0}
.bg-modal .btn-primary{width:100%;justify-content:center;text-align:center;margin-top:4px}
@media(max-width:520px){.bg-modal-card{margin:0;min-height:100vh;max-width:none}}
.card{position:relative}
.card .thumb{position:relative}
.card-buy{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.93);color:var(--black);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.16);opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s,background .2s,color .2s;cursor:pointer;z-index:3}
.card:hover .card-buy,.card-buy:focus{opacity:1;transform:none}
.card-buy:hover{background:var(--blue);color:#fff}
@media(hover:none){.card-buy{opacity:1;transform:none}}

.work-img{aspect-ratio:auto}.work-img img{width:100%;height:auto;object-fit:contain}.works-grid .card .thumb,.home-catalog .card .thumb,.related .card .thumb{aspect-ratio:auto;overflow:visible}.works-grid .card .thumb img,.home-catalog .card .thumb img,.related .card .thumb img{height:auto!important;object-fit:contain}.card .meta-top{flex-wrap:wrap}

.card .meta-top{margin-top:14px}.card .title{margin-top:18px}.card .tech{margin-top:32px;color:#9a9a9a;font-size:15px;line-height:1.35}

.card .meta-top{margin-top:20px}.card .title{margin-top:8px}

.bg-modal-img{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:2px;margin:0 0 16px}
