@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/cormorant-300-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/cormorant-300-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:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/cormorant-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/cormorant-400-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:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-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:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400-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:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500-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:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/manrope-600-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/manrope-600-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;}

/* Дефолти теми = fallback до applyTheme() (anti-flash); JS-джерело правди — salon.json.theme */
:root { --primary:#A2664A; --bg:#F8F7F4; --card:#FFFFFF; --text:#2A2622; --muted:#8C8781;
        --line:#E9E6E1; --serif:'Cormorant Garamond',Georgia,serif; --sans:'Manrope',system-ui,sans-serif; }
* { box-sizing:border-box; }
html { overflow-x:hidden; }                              /* full-bleed .hero (100vw) не має давати горизонтальний скрол */
body { margin:0; font-family:var(--sans);
       background:var(--bg); color:var(--text); line-height:1.5; }
main { max-width:1080px; margin:0 auto; padding:0 24px; }
#steps { max-width:1080px; margin:0 auto; padding:20px 24px 0; color:var(--muted);
         font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.step > h2 { font-family:var(--serif); font-weight:400; font-size:2.1rem; }
.card { display:block; width:100%; text-align:left; background:var(--card); border:1px solid #eee;
        border-radius:14px; padding:14px 16px; margin:8px 0; font-size:1rem; cursor:pointer; }
.card:hover { border-color:var(--primary); }
.card .meta { color:var(--muted); font-size:.9rem; margin-top:4px; }
.primary { width:100%; padding:14px; border:0; border-radius:2px; background:var(--primary);
           color:#fff; font-size:1rem; font-weight:600; letter-spacing:.06em; cursor:pointer; margin-top:16px; }
input { width:100%; padding:12px; border:1px solid var(--line); border-radius:2px; font-size:1rem;
        font-family:var(--sans); background:var(--card); margin-top:4px; }
label { display:block; margin-top:14px; }
.slot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:8px; }
.slot { padding:13px 0; text-align:center; border:1px solid var(--line); border-radius:2px;
        font-size:.95rem; cursor:pointer; background:var(--card); }
.slot:hover { border-color:var(--primary); }
.slot.busy { color:#C4BFB8; border-color:#F1EEE9; text-decoration:line-through; cursor:default; }
.slot.busy:hover { border-color:#F1EEE9; }
.legend { color:var(--muted); font-size:.82rem; margin-top:14px; }
.busy-hint { margin-top:12px; padding:12px 14px; background:var(--card); border:1px solid var(--line);
             border-radius:2px; font-size:.95rem; }
.busy-hint a { color:var(--primary); font-weight:600; white-space:nowrap; }

.wrap { max-width:1080px; margin:0 auto; padding:0 24px; }

/* — шапка: CTA видно на кожному екрані — */
#brand { position:sticky; top:0; z-index:10; background:var(--bg); border-bottom:1px solid var(--line); }
.bar-in { max-width:1080px; margin:0 auto; padding:0 24px; height:68px;
          display:flex; align-items:center; justify-content:space-between; }
.logo { font-family:var(--serif); font-size:1.5rem; letter-spacing:.34em; text-transform:uppercase; }
.cta { background:var(--primary); color:#fff; font-size:.82rem; font-weight:600; letter-spacing:.1em;
       text-transform:uppercase; padding:13px 26px; border:0; border-radius:2px; cursor:pointer;
       text-decoration:none; display:inline-block; }
.cta:hover { background:#8E5940; }

/* — hero: фото зверху, слово під ним. Фото не псуємо накладкою — */
.hero { height:62vh; min-height:380px; width:100vw; margin-left:calc(50% - 50vw); }
.hero img { width:100%; height:100%; object-fit:cover; display:block; }
.intro { text-align:center; padding:64px 0 88px; }
.intro h1 { font-family:var(--serif); font-weight:300; font-size:clamp(2.6rem,6vw,4.4rem);
            line-height:1.1; margin:0 0 18px; white-space:pre-line; }
.intro p { color:var(--muted); max-width:44ch; margin:0 auto 34px; }

/* — групи послуг: фото + список, група = майстер — */
.group { display:grid; grid-template-columns:minmax(0,42%) minmax(0,1fr); gap:56px;
         align-items:center; padding:56px 0; border-top:1px solid var(--line); }
.group:nth-child(even) .shot { order:2; }
.shot { aspect-ratio:4/5; overflow:hidden; background:var(--card); }
.shot img { width:100%; height:100%; object-fit:cover; display:block; }
.group h2 { font-family:var(--serif); font-weight:400; font-size:2.3rem; margin:0; }
.master { color:var(--muted); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; margin:6px 0 26px; }
.items { list-style:none; margin:0; padding:0; }
.items li { display:flex; justify-content:space-between; align-items:baseline; gap:20px;
            padding:14px 0; border-bottom:1px solid var(--line); cursor:pointer; }
.items li:hover { color:var(--primary); }
.price { color:var(--muted); font-size:.9rem; white-space:nowrap; }
.price b { color:var(--text); font-weight:500; }
@media (max-width:720px){ .group{ grid-template-columns:1fr; gap:26px; padding:40px 0; }
  .group:nth-child(even) .shot{ order:0; } .hero{ height:46vh; } .intro{ padding:44px 0 56px; } }

/* — підвал — */
footer { border-top:1px solid var(--line); padding:44px 0 60px; color:var(--muted); font-size:.9rem;
         display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; }
footer b { color:var(--text); font-weight:500; }
