/* BARBERSHOP template (Pochatok). Ported from Templates/barbershop-template (Claude Design artboards Main.dc.html +
   Mobile.dc.html). Desktop is laid out on the 1440 artboard and scales with the viewport; ≤900 px = the mobile artboard
   (the design's own 760 px container breakpoint, moved to the Pochatok-wide 900). One font: Playfair Display (OFL),
   self-hosted, cyrillic + latin + latin-ext.
   Wider than 1440 (10.10): the scaling stops at the 1440 artboard — the hero collage is a centred 1440 frame, the
   content keeps the artboard's 1376 column (--side), type stops at its 1440 size; bars, lines, the parallax band
   and the gallery strip run edge to edge. */

/* ---------- fonts ---------- */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url(../fonts/playfair-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url(../fonts/playfair-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url(../fonts/playfair-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/playfair-italic-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/playfair-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap;
  src: url(../fonts/playfair-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- tokens / base ---------- */
:root{--bg:#FFFFFF;--ink:#0E0E0E;--ink2:#55524E;--line:#E4E1DC;--acc:#6A1B14;--ph:#EDEBE7;--ph2:#E1DDD6;
  --ease:cubic-bezier(.2,.7,.2,1);--ease2:cubic-bezier(.7,0,.2,1);--serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --side:max(32px,calc((100% - 1376px) / 2))}   /* side padding: 32 up to 1440, then the 1376 column centred */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg)}
.site{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip;min-height:100vh}
.site *,.site *::before,.site *::after{box-sizing:border-box}
.site :focus-visible{outline:2px solid var(--acc);outline-offset:3px}
a{color:var(--ink)}
a:hover{color:var(--ink)}
img{max-width:100%}
button{font-family:inherit}
[hidden]{display:none !important}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{padding:0 var(--side)}
.eyebrow{font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink2)}
main section[id]{scroll-margin-top:68px}

/* ---------- header ---------- */
.bar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.bar-in{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:16px}
.nav{display:flex;gap:26px;min-width:0}
.nav a{position:relative;text-decoration:none;font-size:22px;padding:8px 0;white-space:nowrap}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease2)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1);transform-origin:left}
.tools{display:flex;align-items:center;gap:18px;margin-left:auto}
.lang{position:relative;width:46px;height:46px}
.lang:empty{display:none}
.lang-cur,.lang-opt{appearance:none;-webkit-appearance:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--ink);background:var(--bg);color:var(--ink);font:inherit;font-size:14px;letter-spacing:.06em;cursor:pointer;display:grid;place-items:center;padding:0;transition:background .35s var(--ease),color .35s,transform .45s var(--ease)}
.lang-cur:hover,.lang-opt:hover{background:var(--ink);color:var(--bg)}
.lang.open .lang-cur{background:var(--ink);color:var(--bg)}
.lang-drop{position:absolute;top:100%;left:0;display:flex;flex-direction:column;gap:8px;padding-top:8px;z-index:40}
.lang-opt{animation:langIn .45s var(--ease) both}
.lang-opt:hover{transform:scale(1.06)}
@keyframes langIn{from{opacity:0;transform:translateY(-14px) scale(.7)}to{opacity:1;transform:none}}
.burger{display:none;appearance:none;-webkit-appearance:none;border:1px solid var(--ink);background:transparent;width:46px;height:46px;border-radius:50%;cursor:pointer;position:relative;color:var(--ink);padding:0}
.burger i{position:absolute;left:13px;right:13px;height:1px;background:currentColor;transition:transform .45s var(--ease),top .45s var(--ease),opacity .3s}
.burger i:nth-child(1){top:17px}.burger i:nth-child(2){top:22px}.burger i:nth-child(3){top:27px}
.burger.x i:nth-child(1){top:22px;transform:rotate(45deg)}
.burger.x i:nth-child(2){opacity:0}
.burger.x i:nth-child(3){top:22px;transform:rotate(-45deg)}
.mmenu{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 28px;animation:drop .5s var(--ease) both;max-height:calc(100vh - 64px);overflow-y:auto}
.mmenu nav{display:flex;flex-direction:column}
.mmenu nav a{font-weight:400;font-size:34px;line-height:1.2;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line);animation:fade .6s var(--ease) both}
.mmenu nav a:nth-child(2){animation-delay:.05s}.mmenu nav a:nth-child(3){animation-delay:.1s}.mmenu nav a:nth-child(4){animation-delay:.15s}
.mmenu .row{display:flex;flex-direction:column;gap:12px;margin-top:22px}
@keyframes drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- pills, links ---------- */
.pill{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 26px;border:1px solid var(--ink);border-radius:999px;font:inherit;font-size:21px;line-height:1.2;text-decoration:none;color:var(--ink);background:transparent;cursor:pointer;transition:color .5s var(--ease2),opacity .3s;white-space:nowrap}
.pill::before{content:'';position:absolute;inset:-1px;background:var(--ink);border-radius:inherit;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease2);z-index:-1}
.pill:hover{color:var(--bg)}
.pill:hover::before{transform:scaleX(1);transform-origin:left}
.pill svg{flex:none;transition:transform .5s var(--ease)}
.pill:hover svg{transform:translateX(4px)}
.pill.fill{background:var(--ink);color:var(--bg)}
.pill.fill::before{background:var(--acc)}
.pill.sm{min-height:46px;font-size:17px;padding:0 22px}
.pill.pill-xs{min-height:40px;font-size:16px;padding:0 18px}
.pill.dis{opacity:.35}
.pill.dis::before{display:none}
.pill.dis:hover{color:var(--bg)}
.pill[disabled]{pointer-events:none}
.ulink{position:relative;text-decoration:none;font-size:21px;padding-bottom:2px;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--ease2)}
.ulink:hover{background-size:0 1px;background-position:100% 100%}
.ulink.ulink-sm{font-size:18px}
.ulink.ulink-xs{font-size:14px}

/* ---------- photo boxes ---------- */
.ph{position:relative;overflow:hidden;background:var(--ph);width:100%}
.ph.alt{background:var(--ph2)}
.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
/* black-and-white photography is the template's look: the owner's uploads are greyed too (user 04.10) */
.ph-img,.plx-img{filter:grayscale(1)}
.zoom:hover .ph-img{transform:scale(1.06)}

/* ---------- hero collage (desktop: the 1440 artboard, every block placed in % of it) ---------- */
.hero{padding:14px 0 min(calc(120 / 1440 * 100vw),120px)}
.hgrid{position:relative;width:100%;max-width:1440px;margin:0 auto;aspect-ratio:1440 / 820}
.hgrid>div{position:absolute}
.hgrid .ph{width:100%;height:100%}
.h-a{left:0;top:0;width:calc(459 / 1440 * 100%);height:calc(815 / 820 * 100%)}
.h-b{left:calc(473 / 1440 * 100%);top:0;width:calc(205 / 1440 * 100%);height:calc(305 / 820 * 100%)}
.h-txt{left:calc(692 / 1440 * 100%);top:0;width:calc(716 / 1440 * 100%);min-height:calc(340 / 820 * 100%);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(16px,1.95vw,28px);padding:0 0 6px 8px}
.h-d{left:calc(473 / 1440 * 100%);top:calc(319 / 820 * 100%);width:calc(140 / 1440 * 100%);height:calc(270 / 820 * 100%)}
.h-c{left:calc(627 / 1440 * 100%);top:calc(433 / 820 * 100%);width:calc(353 / 1440 * 100%);height:calc(476 / 820 * 100%)}
.h-e{left:calc(994 / 1440 * 100%);top:calc(255 / 820 * 100%);width:calc(441 / 1440 * 100%);height:calc(382 / 820 * 100%)}
.wm{margin:0;font-weight:400;font-size:inherit;line-height:.86;overflow:hidden;padding-bottom:.04em;width:100%}
.wm svg{display:block;width:100%;height:auto;overflow:visible}
.wm text{font-family:var(--serif);font-size:148px;font-weight:400;fill:currentColor}
.h-sub{font-style:italic;font-size:clamp(16px,1.6vw,23px);line-height:1.35;margin:0;width:calc(243 / 716 * 100%);min-width:150px;color:var(--ink)}
.h-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.h-foot .ulink{font-size:clamp(17px,1.46vw,21px)}
/* load-in: photos open from the bottom one after another, the wordmark rises, the texts fade up */
html[data-anim="on"]:not(.is-ready) .hgrid .ph{clip-path:inset(100% 0 0 0)}
html[data-anim="on"]:not(.is-ready) .wm svg{transform:translateY(105%)}
html[data-anim="on"]:not(.is-ready) .h-sub,html[data-anim="on"]:not(.is-ready) .h-foot{opacity:0}
.is-ready .hgrid .ph{animation:clipUp 1.4s var(--ease) both}
.is-ready .h-a .ph{animation-delay:.35s}.is-ready .h-b .ph{animation-delay:.5s}.is-ready .h-c .ph{animation-delay:.65s}.is-ready .h-d .ph{animation-delay:.8s}.is-ready .h-e .ph{animation-delay:.95s}
.is-ready .wm svg{animation:wmUp 1.2s var(--ease) both}
.is-ready .h-sub{animation:fade 1s .5s var(--ease) both}
.is-ready .h-foot{animation:fade 1s .7s var(--ease) both}
@keyframes clipUp{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes wmUp{from{transform:translateY(105%)}to{transform:none}}

/* ---------- section heads ---------- */
.sec{padding:120px 0}
.shead{text-align:center;max-width:720px;margin:0 auto 72px}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,51.84px);line-height:1.08;letter-spacing:-.01em;margin:12px 0 14px}
.shead p{margin:0;color:var(--ink2);font-size:19px}

/* ---------- services ---------- */
#services{padding:40px var(--side) 120px}
.sgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}
.slist{grid-column:1/6;position:sticky;top:96px;border-top:1px solid var(--line)}
.sitem{border-bottom:1px solid var(--line);text-align:left;cursor:pointer;width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:22px 0;position:relative;outline-offset:-2px}
.sitem::before{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.sitem.on::before{transform:scaleX(1)}
.s-n{font-size:14px;letter-spacing:.14em;color:var(--ink2);transition:color .4s}
.s-name{display:block;font-weight:400;font-size:30px;line-height:1.15;letter-spacing:-.015em;transition:transform .6s var(--ease),color .4s;color:var(--ink2)}
.s-line{display:block;font-size:17px;color:var(--ink2);margin-top:6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ease),opacity .5s}
.s-meta{font-size:16px;color:var(--ink2);white-space:nowrap}
.sitem:hover .s-name,.sitem.on .s-name{color:var(--ink);transform:translateX(8px)}
.sitem.on .s-n{color:var(--ink)}
.sitem.on .s-line{max-height:120px;opacity:1}
.smedia{grid-column:7/13;position:sticky;top:96px}
.sbig{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--ph)}
.sbig .ph{position:absolute;inset:0;height:100%;opacity:0;transform:scale(1.06);transition:opacity .8s var(--ease),transform 1.4s var(--ease);pointer-events:none}
.sbig .ph.on{opacity:1;transform:none;pointer-events:auto;z-index:1}
.sbig-cap{position:absolute;left:24px;right:24px;top:24px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:2}
.tag{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border-radius:999px;background:var(--bg);font-size:16px}

/* ---------- parallax band: a fixed photo the page slides over (clip + fixed image; no JS) ---------- */
.plx{position:relative;width:100%;aspect-ratio:2/1;max-height:720px;overflow:hidden;margin:0 0 120px;background:#1a1a1a}
.plx-clip{position:absolute;inset:0;clip-path:inset(0 0 0 0)}
.plx-img{position:fixed;top:0;left:0;width:100%;height:100vh;object-fit:cover;display:block}

/* ---------- gallery marquee ---------- */
#gallery{padding-top:40px}
#gallery .shead{padding:0 32px}
.gflow{overflow:hidden;width:100%}
.gtrack{display:flex;gap:14px;padding-right:14px;width:max-content;animation:mq 50s linear infinite}
.gflow:hover .gtrack{animation-play-state:paused}
.gitem{width:clamp(220px,26vw,380px);flex:none}
.gitem .ph{aspect-ratio:1/1}
@keyframes mq{to{transform:translateX(-50%)}}
.gflow.static{overflow-x:auto}
.gflow.static .gtrack{animation:none;padding-left:32px}

/* ---------- reviews ---------- */
#reviews{padding:40px var(--side) 120px}
.rgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:stretch}
.rtxt{grid-column:1/6;display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding-right:24px}
.rtxt .h2{text-align:left;margin-top:0}
.slides{display:grid;min-height:260px;align-content:center}
.slide{grid-area:1/1;margin:0;opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .9s var(--ease);pointer-events:none}
.slide.on{opacity:1;transform:none;pointer-events:auto}
.quote{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.1vw,30.24px);line-height:1.35;letter-spacing:-.01em;margin:0 0 24px}
.who{font-size:16px;letter-spacing:.14em;text-transform:uppercase}
.who i{color:var(--ink2);letter-spacing:0;text-transform:none;font-style:italic;font-size:17px;margin-left:10px}
.who i:first-child{margin-left:0}
.rctrl{display:flex;align-items:center;gap:14px}
.rctrl.solo{display:none}
.arrow{appearance:none;-webkit-appearance:none;width:52px;height:52px;flex:none;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .4s,color .4s,transform .4s var(--ease)}
.arrow:hover{background:var(--ink);color:var(--bg)}
.arrow:active{transform:scale(.94)}
.count{font-size:16px;letter-spacing:.14em;margin-left:8px;min-width:70px;white-space:nowrap}
.dots{display:flex;gap:8px;margin-left:auto}
.dot{appearance:none;-webkit-appearance:none;border:0;padding:10px 0;background:transparent;cursor:pointer;width:28px;transition:width .5s var(--ease)}
.dot::before{content:'';display:block;height:2px;background:var(--line);transition:background .4s}
.dot.on{width:48px}
.dot.on::before{background:var(--ink)}
.rimg{grid-column:7/13;position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--ph)}
.rimg .ph{position:absolute;inset:0;height:100%;opacity:0;transform:scale(1.05);transition:opacity .8s var(--ease),transform 1.4s var(--ease);pointer-events:none}
.rimg .ph.on{opacity:1;transform:none;pointer-events:auto;z-index:1}

/* ---------- booking (multi-step) ---------- */
.book{padding:140px var(--side);border-top:1px solid var(--line)}
.bk-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}
.bk-side{grid-column:1/6;position:sticky;top:96px;padding-right:24px}
.bk-side .h2{margin:14px 0 18px;font-size:clamp(40px,4.4vw,63.36px)}
.bk-side>p{color:var(--ink2);font-size:18px;max-width:440px;margin:0 0 40px}
.bk-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bk-st-btn{appearance:none;-webkit-appearance:none;border:0;border-bottom:1px solid var(--line);background:transparent;font:inherit;color:inherit;text-align:left;width:100%;display:flex;align-items:center;gap:18px;padding:18px 0;cursor:default}
.bk-st.done .bk-st-btn{cursor:pointer}
.bk-num{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:14px;color:var(--ink2);transition:background .4s,color .4s,border-color .4s}
.bk-st.on .bk-num{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.bk-st.done .bk-num{border-color:var(--ink);color:var(--ink)}
.bk-st.done .bk-st-btn:hover .bk-num{background:var(--ink);color:var(--bg)}
.bk-st-l{display:block;font-size:18px;color:var(--ink2);transition:color .4s}
.bk-st.on .bk-st-l,.bk-st.done .bk-st-l{color:var(--ink)}
.bk-st-v{display:block;font-size:15px;font-style:italic;color:var(--ink2)}
.bk-card{grid-column:7/13;border:1px solid var(--ink);padding:40px;min-height:620px;display:flex;flex-direction:column;min-width:0;scroll-margin-top:84px}
.bk-form{flex-grow:1;display:flex;flex-direction:column;min-width:0}
.bk-head{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.bk-bar{position:relative;height:2px;background:var(--line)}
.bk-bar span{position:absolute;left:0;top:0;bottom:0;background:var(--ink);transition:width .7s var(--ease)}
.bk-pane{flex-grow:1;min-width:0}
.bk-pane.anim{animation:bkIn .55s var(--ease) both}
@keyframes bkIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
.bk-title{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.15;margin:0 0 24px}
.bk-opts{display:grid;gap:10px}
.bk-opts+.bk-lbl{margin-top:24px}
.bk-opt{appearance:none;-webkit-appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto 28px;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--line);background:transparent;transition:border-color .3s,background .3s,transform .4s var(--ease)}
.bk-opt:hover{border-color:var(--ink);transform:translateX(4px)}
.bk-opt.on{border-color:var(--ink);background:#F6F4F0}
.bk-opt-n{font-size:18px;line-height:1.3}
.bk-opt-m{font-size:15px;color:var(--ink2);white-space:nowrap}
.bk-check{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:transparent;transition:background .3s,border-color .3s,color .3s}
.bk-opt.on .bk-check{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.bk-master{grid-template-columns:48px minmax(0,1fr) 28px}
.bk-av{display:block;width:48px;height:48px;border-radius:50%;background:var(--ph)}
.bk-lbl{margin:0 0 12px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2)}
.bk-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:28px;scrollbar-width:none;scroll-snap-type:x proximity}
.bk-days::-webkit-scrollbar{display:none}
.bk-day{appearance:none;-webkit-appearance:none;flex:none;width:76px;padding:12px 0;border:1px solid var(--line);background:transparent;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;scroll-snap-align:start;transition:background .3s,color .3s,border-color .3s}
.bk-day b{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1}
.bk-day span{font-size:13px;color:var(--ink2);text-transform:capitalize;transition:color .3s}
.bk-day:hover,.bk-time:hover{border-color:var(--ink)}
.bk-day.on,.bk-time.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.bk-day.on span{color:rgba(255,255,255,.7)}
.bk-day[disabled]{opacity:.32;cursor:default;border-color:var(--line)}
.bk-day[disabled] b{text-decoration:line-through;text-decoration-thickness:1px}
.bk-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.bk-time{appearance:none;-webkit-appearance:none;min-height:46px;border:1px solid var(--line);background:transparent;font:inherit;font-size:16px;color:inherit;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.bk-skel{min-height:46px;background:linear-gradient(90deg,var(--ph) 0%,#F6F4F0 50%,var(--ph) 100%) 0 0/200% 100%;animation:skel 1.2s linear infinite}
@keyframes skel{to{background-position:-200% 0}}
.bk-hint{margin:0;font-size:16px;font-style:italic;color:var(--ink2)}
.bk-field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.bk-field label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2)}
.bk-field input,.bk-field textarea{font:inherit;font-size:18px;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);outline:none;resize:none;transition:border-color .3s;width:100%}
.bk-field input:focus,.bk-field textarea:focus{border-bottom-color:var(--ink)}
.bk-field input::placeholder,.bk-field textarea::placeholder{color:#9A968F;opacity:1}
.bk-field.bad label{color:var(--acc)}
.bk-field.bad input{border-bottom-color:var(--acc)}
/* the owner's own fields (clones of the name field, marked by the runtime's P.checkFields) */
.bk-field [aria-invalid]{border-bottom-color:var(--acc)}
.bk-field:has([aria-invalid]) label{color:var(--acc)}
.bk-consent{font-size:13px;color:var(--ink2);margin:4px 0 0}
.bk-consent a{color:var(--ink2)}
.bk-err{margin:16px 0 0;font-size:15px;color:var(--acc)}
.bk-foot{display:flex;align-items:center;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.bk-foot .grow{flex-grow:1}
.bk-done{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;animation:bkIn .55s var(--ease) both}
.bk-ok{width:76px;height:76px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;animation:pop .6s var(--ease) both}
@keyframes pop{from{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}
.bk-done-sub{margin:0;max-width:400px;color:var(--ink2)}
.bk-sum{width:100%;max-width:440px;border-top:1px solid var(--line);margin:8px 0 12px;text-align:left}
.bk-sum div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.bk-sum span{color:var(--ink2)}
.bk-sum b{font-weight:400;text-align:right}
.bk-off{flex-grow:1;display:flex;flex-direction:column;justify-content:center}
.bk-off-txt{margin:0 0 32px;color:var(--ink2);font-size:18px;max-width:460px}

/* ---------- how to find us ---------- */
.find{padding:120px var(--side);border-top:1px solid var(--line)}
.fd-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:stretch}
.fd-info{grid-column:1/6;display:flex;flex-direction:column;gap:36px;padding-right:32px}
.fd-info .h2{margin:14px 0 14px}
.fd-lead{margin:0;color:var(--ink2);font-size:18px;max-width:440px}
.fd-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;border-top:1px solid var(--line);padding-top:28px}
.fd-row h4,.f-col h4{margin:0 0 8px;font-weight:400;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2)}
.fd-row p{margin:0;font-size:17px;line-height:1.55}
.fd-btns{display:flex;gap:12px;flex-wrap:wrap}
.bk-links{display:contents}
[data-hours] span{display:block}
.fd-map{grid-column:6/13;position:relative;display:block;min-height:560px;overflow:hidden;border:1px solid var(--ink);text-decoration:none;color:var(--ink);background:#ECE9E3}
.fd-svg{position:absolute;inset:0;width:100%;height:100%;filter:grayscale(1);transition:transform 1.4s var(--ease)}
.fd-map:hover .fd-svg{transform:scale(1.05)}
.fd-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);display:block;animation:pinDrop .9s .3s var(--ease) both}
.fd-pin svg{display:block;position:relative;filter:drop-shadow(0 8px 12px rgba(14,14,14,.25));transition:transform .5s var(--ease)}
.fd-map:hover .fd-pin svg{transform:translateY(-6px)}
.fd-pulse{position:absolute;left:50%;bottom:-6px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:rgba(14,14,14,.35);animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(3.4);opacity:0}}
@keyframes pinDrop{from{transform:translate(-50%,-160%);opacity:0}to{transform:translate(-50%,-100%);opacity:1}}
.fd-name{position:absolute;left:50%;top:50%;transform:translate(-50%,14px);padding:6px 14px;background:var(--bg);border:1px solid var(--ink);border-radius:999px;font-size:14px;letter-spacing:.14em;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis}
.fd-open{position:absolute;right:20px;bottom:20px;display:inline-flex;text-decoration:none;align-items:center;gap:10px;min-height:44px;padding:0 20px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:16px;transition:background .4s,transform .5s var(--ease)}
.fd-open:hover,.fd-open:focus-visible{background:var(--acc);color:var(--bg);transform:translateY(-3px)}
/* the runtime's «Показати карту Google» gate: at the top, so it never covers the «Відкрити в Google Картах» pill */
.fd-map .p-map-gate{top:20px;bottom:auto}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--ink);padding:28px var(--side) 32px}
.fgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;font-size:15px;line-height:1.5}
.f-logo{grid-column:1/4;font-weight:400;font-size:22px;letter-spacing:.06em;text-decoration:none;align-self:start;overflow-wrap:anywhere}
.f-col{grid-column:span 2;display:flex;flex-direction:column;gap:4px;min-width:0}
.f-col h4{margin-bottom:6px}
.f-col p{margin:0}
.f-links{display:flex;flex-direction:column;gap:4px}
.f-col a{text-decoration:none;width:fit-content;max-width:100%;overflow-wrap:anywhere;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease2)}
.f-col a:hover{background-size:100% 1px}
.f-sub{grid-column:10/13}
.fbot{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 24px;margin-top:56px;font-size:14px;color:var(--ink2)}
.f-meta{display:flex;gap:20px;flex-wrap:wrap}
.f-meta a{color:var(--ink)}

/* ---------- privacy page ---------- */
.pv{padding:72px var(--side) 120px}
.pv-in{max-width:820px}
.pv-title{margin:14px 0 18px;font-size:clamp(40px,4.4vw,63.36px)}
.pv-lead{margin:0 0 56px;color:var(--ink2);font-size:19px;max-width:640px}
.pv-list{border-top:1px solid var(--line)}
.pv-sec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:14px 32px;padding:28px 0;border-bottom:1px solid var(--line)}
.pv-sec h2{margin:0;font-weight:400;font-size:22px;line-height:1.25}
.pv-paras p{margin:0 0 10px;color:var(--ink2)}
.pv-paras p:last-child{margin-bottom:0}
.pv-back{margin-top:48px}
html[data-anim="on"]:not(.is-ready) .pv-intro{opacity:0}
.is-ready .pv-intro{animation:fade 1s var(--ease) both}
.is-ready .pv-title{animation-delay:.1s}.is-ready .pv-lead{animation-delay:.2s}

/* ---------- the owner's logo: the runtime swaps a [data-logo] name mark for <img class="p-logo"> + .p-has-logo.
   Contained (never wider than its column), never grayscaled or recoloured (the photo filter is only .ph-img/.plx-img).
   Hero: the full text column at most and 140 px tall on the 1440 artboard (scales like the collage) — a taller mark
   would push the subtitle and the link into the photos below; wide logos fill the width, square ones stop at the height. ---------- */
.wm .p-logo{width:100%;height:auto;max-height:min(calc(140 / 1440 * 100vw),140px);object-fit:contain;object-position:left top}
html[data-anim="on"]:not(.is-ready) .wm .p-logo{transform:translateY(105%)}
.is-ready .wm .p-logo{animation:wmUp 1.2s var(--ease) both}
.f-logo.p-has-logo{--p-logo-h:56px}
.pv-intro.p-has-logo{--p-logo-h:48px}

/* ---------- scroll reveals (IntersectionObserver adds .in once; html.rv-on only when JS runs) ---------- */
.rv-on .rv:not(.in){opacity:0}
.rv-on .rv.in{animation:rvUp 1.1s var(--ease) both}
.rv-on .rv-img:not(.in){clip-path:inset(22% 0 0 0);opacity:.2}
.rv-on .rv-img.in{animation:rvClip 1.3s var(--ease) both}
@keyframes rvUp{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
@keyframes rvClip{from{clip-path:inset(22% 0 0 0);opacity:.2}to{clip-path:inset(0 0 0 0);opacity:1}}

/* ---------- editor (mode edit) ---------- */
[data-mode="edit"] .sbig-cap{top:auto;bottom:24px}
[data-mode="edit"] .h-b .p-replace,[data-mode="edit"] .h-d .p-replace{font-size:0;gap:0;padding:0 12px;top:8px;right:8px}
[data-mode="edit"] .sitem [data-p-ed]{cursor:text}

/* ---------- 1001–1180: no artboard here — only keep things from colliding ---------- */
@media (max-width:1180px){
  .slist{grid-column:1/7}
  .rtxt{grid-column:1/7}
  .fd-info{grid-column:1/7;padding-right:16px}
  .fd-map{grid-column:7/13}
  .bk-side{grid-column:1/6}
  .bk-card{grid-column:6/13;padding:32px}
}
/* ---------- tablet (the design's 1000 px container rule) ---------- */
@media (max-width:1000px){
  .nav{gap:20px}
  .nav a,.pill,.ulink{font-size:18px}
  .s-name{font-size:24px}
  .sitem{grid-template-columns:40px minmax(0,1fr) auto;gap:12px}
  .bk-times{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fd-rows{grid-template-columns:1fr}
  .wm .p-logo{max-height:calc(100 / 1440 * 100vw)}   /* the subtitle font stops shrinking here → it takes more lines */
}

/* ---------- mobile (≤900: the 390 px artboard) ---------- */
@media (max-width:900px){
  .wrap{padding:0 16px}
  .nav,.bar-book{display:none}
  .burger{display:block}
  .bar-in{min-height:64px;justify-content:flex-end}
  .lang-cur,.lang-opt{font-size:14px}
  main section[id]{scroll-margin-top:64px}

  .hero{padding:12px 16px 72px}
  .hgrid{display:flex;flex-direction:column;gap:28px;aspect-ratio:auto}
  .hgrid>div{position:static;left:auto;top:auto;width:auto;height:auto;min-height:0}
  .h-a,.h-b,.h-c,.h-d{display:none}
  .h-txt{padding:0;gap:22px}
  .h-sub{font-size:20px;width:auto;min-width:0;max-width:none}
  .h-foot{flex-direction:column;align-items:flex-start;gap:18px}
  .h-foot .ulink{font-size:18px}
  .h-e .ph{height:auto;aspect-ratio:4/3}

  .sec{padding:80px 0}
  .shead{margin-bottom:44px}
  .shead p{font-size:17px}
  #services,#reviews{padding:40px 16px 80px}
  #gallery{padding-top:40px}
  #gallery .shead{padding:0 16px}
  .sgrid{grid-template-columns:1fr;gap:28px}
  .slist{grid-column:1;position:static}
  .sitem{grid-template-columns:36px minmax(0,1fr);gap:16px;padding:18px 0}
  .s-meta{grid-column:2;font-size:15px;white-space:normal}
  .s-name{font-size:24px}
  .sitem.on .s-name,.sitem:hover .s-name{transform:none}
  .smedia{grid-column:1;grid-row:1;position:static}
  .sbig-cap{left:14px;right:14px;top:14px}
  [data-mode="edit"] .sbig-cap{bottom:14px}

  .plx{margin-bottom:80px}

  .rgrid{grid-template-columns:1fr;gap:32px}
  .rtxt{grid-column:1;padding:0;gap:32px}
  .rimg{grid-column:1;grid-row:1;aspect-ratio:4/5}
  .slides{min-height:200px}

  .book{padding:88px 16px}
  .bk-grid{grid-template-columns:1fr;gap:28px}
  .bk-side{grid-column:1;position:static;padding:0}
  .bk-side>p{margin-bottom:0}
  .bk-steps{display:none}
  .bk-card{grid-column:1;padding:22px;min-height:0;scroll-margin-top:76px}
  .bk-title{font-size:26px}
  .bk-opt{padding:14px;gap:12px}
  .bk-opt-n{font-size:17px}
  .bk-times{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bk-day{width:68px}
  .bk-foot .pill.sm{padding:0 18px}

  .find{padding:80px 16px}
  .fd-grid{grid-template-columns:1fr;gap:32px}
  .fd-info{grid-column:1;padding:0;gap:28px}
  .fd-rows{grid-template-columns:1fr;gap:20px}
  .fd-btns{flex-direction:column;align-items:stretch}
  .fd-map{grid-column:1;min-height:340px}

  .ft{padding:28px 16px 32px}
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
  .f-logo{grid-column:1/3}
  .f-col{grid-column:span 1}
  .f-sub{grid-column:1/3}
  .fbot{flex-direction:column;margin-top:40px}

  .pv{padding:48px 16px 80px}
  .wm .p-logo{max-height:140px}
  .f-logo.p-has-logo{--p-logo-h:48px}
  .pv-intro.p-has-logo{--p-logo-h:40px}
  .pv-sec{grid-template-columns:1fr;gap:10px}
}
@media (max-width:400px){
  .bk-opt{grid-template-columns:minmax(0,1fr) 28px}
  .bk-opt-m{grid-column:1;grid-row:2;white-space:normal}
  .bk-opt .bk-check{grid-column:2;grid-row:1/3}
}

/* ---------- reduced motion: everything visible, nothing moves on its own ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site *,.site *::before,.site *::after{animation:none !important;transition:none !important}
  html[data-anim="on"] .hgrid .ph{clip-path:none}
  html[data-anim="on"] .wm svg,html[data-anim="on"] .wm .p-logo{transform:none}
  html[data-anim="on"] .h-sub,html[data-anim="on"] .h-foot,html[data-anim="on"] .pv-intro{opacity:1}
  .rv-on .rv:not(.in),.rv-on .rv-img:not(.in){opacity:1;clip-path:none}
  .plx-img{position:absolute;height:100%}
}
