/* Временные токены в направлении «Шалфей». Точные согласованные коды ожидаются. */
:root{--paper:#f8f9f5;--surface:#fff;--ink:#26342f;--muted:#66756a;--sage:#7e9a88;--sage-dark:#425f4e;--sage-light:#e7eee8;--line:#dbe4dc;--shadow:0 18px 45px rgba(36,61,45,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.58 Arial,"Helvetica Neue",sans-serif}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--sage-dark);outline-offset:3px}.wrap{width:min(1200px,calc(100% - 48px));margin:auto}.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:80px}.brand{font-family:Georgia,serif;font-size:20px;line-height:1.12;text-decoration:none;max-width:350px}.brand strong{font-weight:normal;display:block}.site-header nav{display:flex;gap:29px;align-items:center}.site-header nav a{text-decoration:none;font-size:14px;font-weight:600}.site-header nav a:hover,.text-link:hover,.article-side a:hover{color:var(--sage-dark);text-decoration:underline}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:9px 13px;border-radius:3px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--sage-dark);font-size:11px;font-weight:700;display:block;margin-bottom:17px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.14}h1{font-size:clamp(42px,5.2vw,76px);letter-spacing:-.045em}h2{font-size:clamp(29px,3vw,42px);letter-spacing:-.035em}p{color:#526158}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--sage-dark);color:#fff!important;text-decoration:none;border:0;border-radius:2px;padding:14px 21px;min-height:52px;font-weight:700;cursor:pointer}.button:hover{background:#304b3b}.button.light{background:var(--paper);color:var(--ink)!important}.hero{display:grid;grid-template-columns:44% 56%;align-items:center;min-height:570px;padding-top:42px;padding-bottom:48px}.hero-copy{padding-right:10%;position:relative;z-index:1}.hero-copy p{font-size:18px;max-width:500px;margin-bottom:33px}.hero-photo{height:490px;background:var(--sage-light);overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover}.section{padding:70px 0 90px}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.section-head h2{margin-bottom:0}.text-link{text-decoration:none;font-weight:700;white-space:nowrap}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 28px}.work-card{min-width:0}.gallery{position:relative;background:#e8ece6;overflow:hidden}.slide{display:none;border:0;padding:0;width:100%;background:transparent;cursor:zoom-in}.slide.active{display:block}.slide img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover;object-position:center}.gallery-controls{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;background:rgba(250,252,249,.96);box-shadow:var(--shadow);border-radius:2px}.gallery-controls button{border:0;background:none;width:40px;height:40px;cursor:pointer;font-size:18px}.counter{font-size:12px;min-width:42px;text-align:center}.work-meta{font-size:11px;color:var(--sage-dark);text-transform:uppercase;letter-spacing:.13em;font-weight:700;margin-top:18px}.work-card h2{font-size:29px;margin:5px 0 9px}.work-card p{margin:0;max-width:560px}.statement{background:var(--sage-dark);color:#fff;padding:75px 0}.statement .wrap{max-width:800px}.statement .eyebrow,.statement p{color:#dbe9dc}.statement h2{font-size:clamp(38px,5vw,62px)}.statement p{font-size:18px;margin-bottom:30px}.site-footer{background:#22372b;color:#e9f0e9;padding:35px 0}.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.site-footer span{color:#bbd0c0;font-size:14px}.site-footer a{color:#fff}.page{min-height:70vh;padding-top:66px;padding-bottom:100px}.page-intro{max-width:800px;margin-bottom:45px}.page-intro p{font-size:18px;max-width:720px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:37px;border-bottom:1px solid var(--line);padding-bottom:20px}.filters a{padding:9px 15px;text-decoration:none;border:1px solid var(--line);font-size:13px;font-weight:700;border-radius:2px;background:var(--surface)}.filters a.selected,.filters a:hover{background:var(--sage-dark);color:#fff}.page-cta{margin-top:75px;background:var(--sage-light);padding:38px;display:flex;justify-content:space-between;align-items:center;gap:25px}.page-cta h2{margin:0;font-size:32px}.article-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.article-card{display:block;background:var(--surface);border:1px solid var(--line);padding:32px;text-decoration:none;min-height:265px;transition:transform .2s,box-shadow .2s}.article-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.article-card h2{font-size:29px}.article-card p{margin-bottom:20px}.article-card>span:last-child{font-weight:700;color:var(--sage-dark)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:65px}.article-content{min-width:0}.article-content h1{font-size:clamp(38px,4.5vw,64px)}.lead{font-size:20px;color:#405649}.article-cover{width:100%;max-height:540px;object-fit:cover;margin:30px 0}.article-side{align-self:start;position:sticky;top:110px;border-top:2px solid var(--sage-dark);padding-top:18px}.article-side strong{font-family:Georgia,serif;font-size:22px;font-weight:400}.article-side nav{display:grid;margin-top:17px}.article-side a{text-decoration:none;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.article-side a.current{font-weight:700;color:var(--sage-dark)}.prose{font-size:18px;line-height:1.7;max-width:720px}.prose h2{font-size:34px;margin:35px 0 16px}.prose h3{font-size:25px;margin:28px 0 12px}.prose img{width:100%;height:auto;margin:30px 0}.prose a{color:var(--sage-dark)}.back{display:inline-block;margin-bottom:30px;color:var(--sage-dark)}.about-content{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:60px}.about-aside{background:var(--sage-light);padding:40px;display:flex;flex-direction:column;justify-content:end;min-height:350px}.about-aside span{font-family:Georgia,serif;font-size:110px;line-height:1;color:var(--sage-dark)}.about-aside p{font-size:20px;margin:10px 0 0}.portrait{width:100%;height:auto}.contact-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:70px}.contact-layout h2{font-size:30px}.contact-link{display:block;padding:18px 0;border-bottom:1px solid var(--line);font-weight:700;text-decoration:none}.inquiry-form,.login-panel form{display:grid;gap:17px}.inquiry-form label,.login-panel label,.form-grid label{display:grid;gap:6px;font-size:14px;font-weight:700}.inquiry-form input,.inquiry-form textarea,.login-panel input,.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:12px;border:1px solid #b9cabe;border-radius:2px;background:#fff;color:var(--ink)}.inquiry-form input[type=file],.form-grid input[type=file]{padding:9px}.form-note{font-size:12px;margin:0}.empty{padding:30px;background:var(--sage-light)}.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:100;background:rgba(14,24,17,.96);display:flex;align-items:center;justify-content:center;gap:10px;padding:45px 15px 30px;color:#fff}.lightbox figure{margin:0;max-width:min(85vw,1300px);height:100%;display:grid;place-items:center;align-content:center}.lightbox img{max-height:82vh;width:auto;object-fit:contain}.lightbox figcaption{text-align:center;font-size:13px;margin-top:10px}.lightbox button{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;width:45px;height:45px;font-size:24px}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:15px}.lightbox-next{right:15px}.lightbox-close{position:absolute;right:20px;top:15px}.lightbox button:focus-visible{outline-color:#fff}.login-panel{width:min(430px,calc(100% - 36px));margin:10vh auto;padding:32px;background:#fff;border:1px solid var(--line)}.login-panel h1{font-size:35px}.admin-head{background:#e7eee8;border-bottom:1px solid var(--line)}.admin-head>.wrap{display:flex;align-items:center;gap:25px;padding:14px 0;flex-wrap:wrap}.admin-head .brand{font-size:20px}.admin-head nav{display:flex;gap:15px;flex-wrap:wrap;flex:1}.admin-head nav a{font-size:13px;text-decoration:none;font-weight:700}.admin-head button,.admin-card button:not(.button){border:1px solid var(--line);background:#fff;padding:8px 12px;cursor:pointer}.admin-main{padding:35px 0 90px}.admin-main>h1{font-size:42px}.admin-card{padding:23px;background:#fff;border:1px solid var(--line);margin:0 0 20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-grid label:has(textarea),.form-grid label:has(input[type=file]),.form-grid .button,.form-grid img{grid-column:1/-1}.form-grid .check{display:flex;align-items:center;gap:8px}.form-grid .check input{width:auto}.form-grid button.button{justify-self:start}.admin-list-item{display:grid;grid-template-columns:1.4fr 1fr auto;gap:20px;padding:19px;background:#fff;border:1px solid var(--line);margin-bottom:8px;text-decoration:none}.admin-list-item:hover{border-color:var(--sage-dark)}.admin-list-item span{font-size:13px;color:var(--muted)}.photo-editor{display:grid;grid-template-columns:180px 1fr auto;gap:18px;padding:15px;background:#fff;border:1px solid var(--line);margin-bottom:10px}.photo-editor img{width:180px;height:135px;object-fit:cover}.photo-editor .form-grid{grid-template-columns:1fr 1fr 1fr;align-items:end}.photo-editor .form-grid button{align-self:end}.link-button{color:#8a302b!important}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stats>div{padding:25px;background:#fff;border:1px solid var(--line)}.stats strong{font:46px Georgia,serif;display:block}.stats span{font-size:13px;color:var(--muted)}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;padding:20px;border:1px solid var(--line)}
@media(max-width:900px){.site-header nav{gap:15px}.hero{grid-template-columns:1fr 1fr;min-height:0}.hero-photo{height:430px}.article-layout{grid-template-columns:minmax(0,1fr) 210px;gap:30px}.about-content{grid-template-columns:1fr 260px;gap:30px}.contact-layout{gap:30px}.photo-editor{grid-template-columns:140px 1fr}.photo-editor img{width:140px}.photo-editor>form:last-child{grid-column:2}}
@media(max-width:700px){.wrap{width:min(100% - 32px,1200px)}.header-inner{min-height:68px}.brand{font-size:17px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:12px 16px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.site-header nav a{padding:8px 0}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:35px;gap:28px}.hero-copy{padding:0}.hero-copy h1{font-size:43px}.hero-copy p{font-size:16px}.hero-photo{height:300px}.section{padding:42px 0}.section-head{align-items:start;flex-direction:column;gap:8px}.work-grid,.article-list,.contact-layout,.about-content,.article-layout{grid-template-columns:1fr}.work-grid{gap:45px}.page{padding-top:38px;padding-bottom:70px}.page-intro{margin-bottom:30px}.page-cta{padding:25px;align-items:start;flex-direction:column;margin-top:45px}.article-side{position:static;grid-row:1;margin-bottom:24px}.article-side nav{display:flex;overflow:auto;gap:15px}.article-side a{min-width:160px}.about-aside{min-height:180px}.about-aside span{font-size:75px}.site-footer .wrap{align-items:start;flex-direction:column}.lightbox{padding:50px 3px 22px;gap:2px}.lightbox-prev{left:3px}.lightbox-next{right:3px}.lightbox figure{max-width:calc(100vw - 100px)}.lightbox img{max-height:73vh}.lightbox button{width:40px;height:40px;flex:none}.form-grid,.photo-editor,.photo-editor .form-grid{grid-template-columns:1fr}.photo-editor>form:last-child{grid-column:auto}.admin-list-item{grid-template-columns:1fr;gap:5px}.stats{grid-template-columns:1fr}.admin-head>.wrap{gap:10px}.admin-head nav{order:3;overflow:auto;flex-wrap:nowrap;width:100%}.admin-head nav a{white-space:nowrap}.admin-head form{margin-left:auto}}
/* Separate the workshop label, maker's name and location in the public header. */
.site-header .header-inner{min-height:100px;padding-top:16px;padding-bottom:16px}
.site-header .brand{display:flex;flex-direction:column;flex-shrink:0;line-height:1.25}
.site-header .brand-caption{font:400 16px/1.4 Arial,"Helvetica Neue",sans-serif;letter-spacing:.02em;color:var(--ink)}
.site-header .brand strong{font-size:22px;line-height:1.25;margin-top:4px}
.site-header .brand-location{display:block;margin-top:9px;color:var(--sage-dark);font:500 10px/1.4 Arial,"Helvetica Neue",sans-serif;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:700px){.site-header .header-inner{min-height:94px;gap:12px;padding-top:14px;padding-bottom:14px}.site-header .brand-caption{font-size:14px}.site-header .brand strong{font-size:19px}.site-header .brand-location{margin-top:8px}}

.form-grid .photo-guidance{grid-column:1/-1}

.home-contact-actions{align-self:center}.home-contact-actions>.button{margin-top:24px}.home-contacts h2{font-size:clamp(32px,3.5vw,46px)}.home-contacts p:last-child{margin-bottom:0}

.master-portrait{margin:0;align-self:start}.master-portrait figcaption{margin-top:10px;font-size:12px;color:var(--muted)}

/* Portrait and biography share one composition, starting at the same level. */
.about-page .about-content{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);grid-template-areas:"portrait intro" "portrait biography";column-gap:72px;row-gap:24px;align-items:start}
.about-page .page-intro{grid-area:intro;margin:0;max-width:none}
.about-page :is(h1,h2){font-size:clamp(40px,4.3vw,60px);margin-bottom:20px}
.about-page .lead{font-size:18px;line-height:1.6;margin:0}
.about-page .master-portrait{grid-area:portrait}
.about-page .portrait{width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;object-position:center 25%}
.about-page .prose{grid-area:biography;font-size:17px;line-height:1.7}
.about-page .prose .button{margin-top:10px}
@media(max-width:900px) and (min-width:701px){.about-page .about-content{grid-template-columns:minmax(0,290px) minmax(0,1fr);column-gap:36px}.about-page :is(h1,h2){font-size:42px}}
@media(max-width:700px){.about-page .about-content{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "portrait" "biography";gap:28px}.about-page .master-portrait{width:100%;max-width:440px}.about-page :is(h1,h2){font-size:42px}.about-page .prose{font-size:16px}}

.home-about{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

.contact-label{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-bottom:6px}
.contact-phone{display:block;font-size:clamp(23px,2.5vw,30px);font-weight:400;line-height:1.3}
.contact-page .contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start}
.contact-page h1{font-size:clamp(40px,4.5vw,60px);margin:0 0 24px;max-width:480px}
.contact-description{font-size:17px;max-width:450px;margin-bottom:30px}
.contact-details{max-width:450px}
.contact-invitation{max-width:450px;margin:26px 0 0;font-size:15px}
.contact-form-panel{padding:32px;background:var(--surface);border:1px solid var(--line)}
.contact-form-panel h2{margin-bottom:24px}
@media(max-width:900px){.contact-page .contact-layout{gap:36px}.contact-form-panel{padding:24px}}
@media(max-width:700px){.contact-page .contact-layout{grid-template-columns:minmax(0,1fr);gap:36px}.contact-page h1{font-size:42px}.contact-description{margin-bottom:16px}.contact-form-panel{padding:24px 20px}}

.hero-photo-preview{margin:20px 0;max-width:360px}.hero-photo-preview img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover}.hero-photo-preview figcaption{font-size:13px;margin-top:8px;color:var(--muted)}
.hero-photo-auto{display:flex;align-items:center;gap:8px;margin:20px 0}
.hero-photo-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:24px}
.hero-photo-choice{position:relative;display:grid;align-content:start;border:2px solid var(--line);padding:8px;cursor:pointer;background:var(--surface);min-width:0}
.hero-photo-choice:has(input:checked){border-color:var(--sage-dark);background:var(--sage-light)}
.hero-photo-choice input{position:absolute;top:16px;left:16px;z-index:1;accent-color:var(--sage-dark)}
.hero-photo-choice img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover}
.hero-photo-choice>span{display:grid;gap:4px;padding-top:8px;font-size:12px;overflow-wrap:anywhere}.hero-photo-choice>span>span{color:var(--muted)}

.hero-photo{position:relative}.hero-photo .slide{height:100%}.hero-photo .slide img{height:100%;aspect-ratio:auto;object-fit:cover}.hero-photo .gallery-controls{z-index:2}.hero-photo .slide:focus-visible{outline-offset:-4px}

/* Place previous/next controls at the sides of each carousel. */
.gallery-controls{inset:0;display:block;background:transparent;box-shadow:none;border-radius:0;pointer-events:none}
.gallery-controls button{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:52px;display:grid;place-items:center;padding:0;background:rgba(250,252,249,.94);border:1px solid rgba(38,52,47,.12);border-radius:2px;color:var(--ink);font:36px/1 Arial,sans-serif;pointer-events:auto;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.gallery-controls .prev{left:12px}.gallery-controls .next{right:12px}
.gallery-controls button:hover{background:#fff}.gallery-controls button:active{background:var(--sage-light)}
.gallery-controls .counter{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:5px 10px;min-width:52px;background:rgba(250,252,249,.94);border-radius:2px;color:var(--ink);font-size:12px}
@media(max-width:700px){.gallery-controls button{width:40px;height:48px;font-size:32px}.gallery-controls .prev{left:8px}.gallery-controls .next{right:8px}.gallery-controls .counter{bottom:8px}}

.gallery-controls .counter{display:none}
.gallery-controls button,.gallery-controls button:hover,.gallery-controls button:active{background:transparent;border:0;box-shadow:none;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8),0 0 2px rgba(0,0,0,.6)}

.works-page .page-intro h1{font-size:clamp(32px,3.7vw,52px);line-height:1.16;margin-bottom:24px}
