/* ==========================================================================
   Массажка на горном воздухе — основной стиль.
   Дизайн-токены в :root. Размеры в rem: корневой размер шрифта растёт от 1rem
   (ноутбук 1280–1440) до 1.25rem (монитор 2560), поэтому композиция и пропорции
   на больших экранах те же, что на ноутбуке. Телефон (≤47.9375rem) — свой дизайн.
   ========================================================================== */
:root{
  --berry:#4A0028;--berry-2:#6E1F4A;--berry-hi:#7C2654;--berry-lo:#3E0021;
  --text:#2B1621;--muted:#6A4F5E;--text-soft:#4F3644;--bg:#F7EFF3;
  --rose:#EAD7E0;--mauve:#BF8DA5;--pale:#D9B8C8;--pale-2:#E0C6D3;--pale-3:#F3E4EC;
  --line:#E3CCD8;--line-2:#EBDCE4;--line-3:#D3B9C6;--white:#fff;
  --f-disp:'Montserrat Alternates','Manrope',sans-serif;
  --f-text:'Manrope',system-ui,sans-serif;
  --f-it:'Cormorant Garamond',Georgia,serif;
  --grad-berry:linear-gradient(180deg,#7C2654,#3E0021);
  --grad-btn:linear-gradient(180deg,#7C2654 0%,#560032 48%,#3E0021 100%);
  --sh-dark:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.1875rem 0 rgba(0,0,0,.22),0 1px 0.125rem rgba(74,0,40,.35),0 0.75rem 1.5rem -0.625rem rgba(74,0,40,.7);
  --sh-dark-h:inset 0 1px 0 rgba(255,255,255,.34),inset 0 -0.1875rem 0 rgba(0,0,0,.22),0 0.125rem 0.25rem rgba(74,0,40,.3),0 1.25rem 2rem -0.75rem rgba(74,0,40,.75);
  --sh-light:inset 0 1px 0 #fff,inset 0 -0.125rem 0 rgba(74,0,40,.07),0 0 0 1px #E3CCD8,0 0.625rem 1.25rem -0.75rem rgba(74,0,40,.4);
  --sh-light-h:inset 0 1px 0 #fff,inset 0 -0.125rem 0 rgba(74,0,40,.07),0 0 0 1px #D3B9C6,0 1rem 1.75rem -0.75rem rgba(74,0,40,.45);
  --sh-cream:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.16),0 0.125rem 0.1875rem rgba(0,0,0,.25),0 0.875rem 1.75rem -0.625rem rgba(0,0,0,.55);
  --sh-cream-h:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.16),0 0.1875rem 0.3125rem rgba(0,0,0,.25),0 1.375rem 2.125rem -0.75rem rgba(0,0,0,.6);
  --sh-press:inset 0 0.1875rem 0.5rem rgba(0,0,0,.3),0 1px 0.125rem rgba(0,0,0,.12);
  --sh-circ:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.125rem 0 rgba(0,0,0,.25),0 0.5rem 1rem -0.375rem rgba(74,0,40,.6);
  --sh-card:inset 0 1px 0 #fff,inset 0 -0.25rem 0 #F1E5EB,0 0 0 1px #EFE3E9,0 1.875rem 3.75rem -1.875rem rgba(74,0,40,.3);
  --sh-tile:inset 0 1px 0 #fff,0 0 0 1px #EBDCE4,0 0.25rem 0 #EBDCE4,0 1.875rem 3.125rem -2.125rem rgba(74,0,40,.45);
  --sh-chip:inset 0 1px 0 #fff,inset 0 -0.125rem 0 rgba(74,0,40,.08),0 0 0 1px #E6D3DD,0 0.375rem 0.75rem -0.5rem rgba(74,0,40,.4);
  --sh-chip-on:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.1875rem 0 rgba(0,0,0,.25),0 0.625rem 1.125rem -0.5rem rgba(74,0,40,.7);
  --r-card:1.875rem;--r-big:2.5rem;--r-xl:2.75rem;
  --mbar-h:0px;
  /* контейнер: ширина и боковые поля (на широких экранах шире и с полями от ширины окна) */
  --wrap:100rem;--gut:clamp(2rem,3vw,4rem);
  --ease:cubic-bezier(.2,.7,.2,1);
}
/* Масштаб: 1rem до 1440, затем плавно до 1.25rem на 2560 */
html{font-size:clamp(100%,.679rem + .357vw,125%);scroll-padding-top:5.625rem;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-text);-webkit-font-smoothing:antialiased;line-height:1.4}
a{color:var(--berry)}a:hover{color:var(--berry-2)}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{max-width:100%}
button,input,select,textarea{font-family:inherit;font-size:inherit}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
:focus-visible{outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.sr-only,.menu-chk,.tab-radio,.opt-radio{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}
.sprite{position:absolute;width:0;height:0}
.skip{position:absolute;left:0.75rem;top:-3.75rem;z-index:100;background:var(--berry);color:#fff;padding:0.75rem 1.125rem;border-radius:0.75rem;text-decoration:none}
.skip:focus{top:0.75rem}
.page{min-height:60vh;overflow-x:clip}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sec{margin-top:8.75rem}
.sec-first{padding-top:3rem}
.narrow{max-width:40rem;margin:0 auto}
.card-box{background:#fff;border-radius:var(--r-big);padding:2.5rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.patbg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ui{width:1.125rem;height:1.125rem;flex:none}
.ico{stroke:var(--icon-ink,currentColor);width:100%;height:100%}

/* --- типографика --- */
.disp{font-family:var(--f-disp);font-weight:500;letter-spacing:-0.035em;line-height:1}
.it{font-family:var(--f-it);font-style:italic;font-weight:500;letter-spacing:-0.01em;font-size:1.14em;line-height:.9;color:var(--berry)}
.eyebrow{display:inline-flex;align-items:center;gap:0.625rem;font-size:0.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.eyebrow::before{content:'';width:0.5rem;height:0.5rem;border-radius:50%;background:var(--berry)}
.ey-l{color:var(--pale)}.ey-l::before{background:var(--pale)}
.h2{font-size:clamp(2.5rem,4.6vw,4.25rem);margin-top:1rem}
.lead{font-size:1.125rem;line-height:1.6;color:var(--muted)}
.sec-lead{max-width:23.75rem;font-size:1rem}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.center-more{margin-top:2.25rem;display:flex;justify-content:center}

/* --- кнопки (объёмные) --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.625rem;height:3.375rem;padding:0 1.75rem;border-radius:62.4375rem;font-weight:600;font-size:0.9375rem;text-decoration:none;border:0;cursor:pointer;transition:background .25s,color .25s,transform .25s,box-shadow .25s;white-space:nowrap;font-family:inherit}
.btn-dark{background:var(--grad-btn);color:#fff;box-shadow:var(--sh-dark)}
.btn-dark:hover{color:#fff;transform:translateY(-0.125rem);box-shadow:var(--sh-dark-h)}
.btn-light{background:linear-gradient(180deg,#fff 0%,#F4E9EE 100%);color:var(--berry);box-shadow:var(--sh-light)}
.btn-light:hover{color:var(--berry);transform:translateY(-0.125rem);box-shadow:var(--sh-light-h)}
.btn-cream{background:linear-gradient(180deg,#fff 0%,#EEDDE6 100%);color:var(--berry);box-shadow:var(--sh-cream)}
.btn-cream:hover{color:var(--berry);transform:translateY(-0.125rem);box-shadow:var(--sh-cream-h)}
.btn:active{transform:translateY(1px);box-shadow:var(--sh-press)}
.btn-sm{height:2.75rem;padding:0 1.25rem;font-size:0.875rem}
.btn-wide{width:100%}
.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.circ{width:2.75rem;height:2.75rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;background:#fff;color:var(--berry);border:0;cursor:pointer;transition:background .25s,color .25s,transform .3s}
.circ .ui{width:1.125rem;height:1.125rem}
.chips{display:flex;flex-wrap:wrap;gap:0.5rem}
.chip-s{height:2.25rem;padding:0 0.875rem;border-radius:62.4375rem;background:var(--rose);color:var(--berry);font-size:0.8438rem;font-weight:600;display:inline-flex;align-items:center}
.crumbs{display:flex;gap:0.625rem;align-items:center;padding-top:1.75rem;font-size:0.875rem;color:var(--muted)}
.crumbs a{font-weight:600;text-decoration:none;min-height:2.75rem;display:inline-flex;align-items:center}

/* --- тона карточек (паттерн + цвет линий иконки) --- */
.t-berry{--icon-ink:#F3E4EC}
.t-rose,.t-white{--icon-ink:#4A0028}
.t-mauve{--icon-ink:#3A0020}

/* --- промо-полоса и шапка --- */
.ann{background:linear-gradient(180deg,#6E1F4A,#3E0021);color:#fff;font-size:0.875rem;font-weight:600}
.ann-in{max-width:var(--wrap);margin:0 auto;padding:0.625rem var(--gut);display:flex;align-items:center;justify-content:center;gap:0.875rem;flex-wrap:wrap;text-align:center}
.ann b{background:#fff;color:var(--berry);border-radius:62.4375rem;padding:0.1875rem 0.625rem;font-family:var(--f-disp);font-size:0.8125rem}
.ann a{color:#fff;text-decoration:underline;text-underline-offset:0.1875rem;font-weight:700;display:inline-flex;align-items:center;min-height:2rem}
.ann a:hover{color:var(--rose)}
.hdr{position:sticky;top:0;z-index:50;padding:0.875rem 0;background:rgba(247,239,243,.88);backdrop-filter:blur(0.875rem);-webkit-backdrop-filter:blur(0.875rem)}
.hdr-in{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;gap:1.25rem;position:relative}
.logo{display:flex;align-items:center;gap:0.75rem;text-decoration:none;color:var(--berry);flex:none}
.logo-mark{width:2.625rem;height:2.625rem}
.logo-t{display:flex;flex-direction:column;line-height:1}
.logo-t b{font-family:var(--f-disp);font-weight:600;font-size:1.375rem;letter-spacing:-0.02em}
.logo-t small{font-size:0.7812rem;margin-top:0.1875rem;color:var(--muted);font-weight:500}
.nav{display:flex;gap:0.25rem;margin:0 auto;background:#fff;padding:0.3125rem;border-radius:62.4375rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.nav a{height:2.5rem;display:inline-flex;align-items:center;padding:0 1.125rem;border-radius:62.4375rem;text-decoration:none;color:var(--text);font-size:0.875rem;font-weight:600;transition:background .2s,color .2s}
.nav a:hover{background:var(--bg);color:var(--berry)}
.nav a.on{background:var(--berry);color:#fff}
.nav-extra{display:none!important}
.hdr-r{display:flex;align-items:center;gap:0.875rem;flex:none}
.tel{display:none;font-weight:700;font-size:0.9375rem;text-decoration:none;color:var(--text);white-space:nowrap}
.burger{display:none;box-shadow:inset 0 0 0 1px var(--line-2)}
.menu-chk:focus-visible ~ .hdr .burger,.menu-chk:focus-visible ~ .mbar .mb-menu{outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
/* выбор салона */
.salon-pick{position:relative}
.salon-pick summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:0.625rem;min-height:2.75rem;padding:0 0.875rem 0 0.375rem;border-radius:62.4375rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text)}
.salon-pick summary::-webkit-details-marker{display:none}
.sp-ic{width:2rem;height:2rem;border-radius:50%;background:var(--rose);color:var(--berry);display:inline-flex;align-items:center;justify-content:center;flex:none}
.sp-ic .ui{width:1rem;height:1rem}
.sp-t{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.sp-t small{font-size:0.6875rem;color:var(--muted);font-weight:700}
.sp-t b{font-size:0.875rem;max-width:9.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.salon-pick summary>.ui{width:1rem;height:1rem;transition:transform .25s}
.salon-pick[open] summary>.ui{transform:rotate(180deg)}
.sp-list{position:absolute;right:0;top:calc(100% + 0.5rem);z-index:70;min-width:17.5rem;background:#fff;border-radius:1.5rem;padding:0.5rem;box-shadow:0 1.25rem 3.125rem rgba(74,0,40,.18),inset 0 0 0 1px var(--line-2)}
.sp-list a{display:flex;flex-direction:column;gap:0.125rem;padding:0.75rem 1rem;border-radius:1rem;text-decoration:none;color:var(--text);min-height:2.75rem}
.sp-list a:hover{background:var(--bg)}
.sp-list small{font-size:0.8125rem;color:var(--muted)}
.sp-all{display:flex;align-items:center;flex-wrap:wrap;color:var(--muted)}
.sp-all a{font-weight:700;color:var(--berry);flex-direction:row;align-items:center;padding:0.75rem}

/* --- подвал --- */
.foot{margin-top:8.75rem;background:var(--berry);color:var(--pale-3);position:relative;overflow:hidden;border-radius:2.75rem 2.75rem 0 0}
.foot-in{position:relative;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem;padding:5rem var(--gut) 3.5rem;max-width:var(--wrap);margin:0 auto}
.foot .logo{color:#fff}.foot .logo-t small{color:var(--pale)}
.foot h4{font-size:0.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pale);margin-bottom:1.125rem;font-weight:700}
.foot a{color:#fff;text-decoration:none}.foot a:hover{color:var(--pale)}
.foot li{margin-bottom:0.75rem;font-size:0.9375rem;line-height:1.4}
.foot-tag{margin-top:1.5rem;font-size:0.9375rem;line-height:1.6;color:var(--pale);max-width:18.75rem}
.foot-hash{margin-top:1.25rem;font-family:var(--f-disp);font-weight:600;font-size:1.125rem;color:#fff}
.foot-band{height:6.875rem;position:relative}
.foot-bot{position:relative;max-width:var(--wrap);margin:0 auto;padding:1.375rem var(--gut);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:0.8125rem;color:var(--pale)}
.foot-bot a{color:var(--pale)}

/* --- нижняя панель телефона --- */
.mbar{display:none}

/* --- hero --- */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:1.5rem;padding-top:1rem;align-items:start}
/* первый экран: заголовок ограничен и шириной, и высотой окна — кнопки всегда видны без прокрутки */
.hero-l{padding:clamp(1rem,4.5svh,3rem) 0.5rem 0.5rem 0;display:flex;flex-direction:column}
.hero-h{font-size:clamp(2.75rem,min(5.4vw,9.6svh),6.25rem);margin-top:clamp(1rem,2.6svh,1.75rem);color:var(--text);text-wrap:balance}
.hero-p{margin-top:clamp(1rem,2.6svh,1.75rem);max-width:31.25rem}
.hero-btns{display:flex;gap:0.75rem;flex-wrap:wrap;margin-top:clamp(1.25rem,3.4svh,2.25rem)}
.hero-list{margin-top:auto;padding-top:3.5rem}
.hl-head{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.375rem;font-size:0.9375rem}
.pill-s{height:1.625rem;padding:0 0.625rem;border-radius:62.4375rem;background:var(--rose);color:var(--berry);font-size:0.75rem;font-weight:700;display:inline-flex;align-items:center}
.srow{display:flex;align-items:center;gap:1rem;padding:0.75rem 0;border-bottom:1px solid #E6D3DD;text-decoration:none;color:var(--text);transition:padding .3s;min-height:2.75rem}
.srow:hover{padding-left:0.5rem;color:var(--berry)}
.srow:hover .circ{background:var(--berry);color:#fff}
.sthumb{width:3.5rem;height:3.5rem;border-radius:1rem;overflow:hidden;position:relative;flex:none;color:var(--berry)}
.sthumb .ico{position:absolute;inset:0}
.sname{font-weight:600;font-size:1rem;flex:1}
.scount{font-size:0.8125rem;color:var(--muted);font-weight:600;padding:0 0.75rem;height:1.875rem;border-radius:62.4375rem;box-shadow:inset 0 0 0 1px var(--line);display:inline-flex;align-items:center;white-space:nowrap}
/* правая карточка — ровно в первый экран; список направлений слева прокручивается мимо неё */
.hero-r{position:sticky;top:6rem;border-radius:2.5rem;overflow:hidden;height:clamp(30rem,calc(100svh - 11rem),52rem);background:var(--berry);color:#fff}
.hero-ill{position:absolute;left:50%;top:50%;width:92%;max-width:42.5rem;transform:translate(-50%,-54%)}
.hchip{position:absolute;display:inline-flex;align-items:center;gap:0.625rem;background:rgba(255,255,255,.1);backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);border-radius:62.4375rem;padding:0.5rem 1.125rem 0.5rem 0.5rem;font-size:0.8125rem;font-weight:600;color:#fff}
.hchip small{display:block;font-size:0.6875rem;color:var(--pale);font-weight:600}
.hchip .ic{width:2.25rem;height:2.25rem;border-radius:50%;background:var(--bg);color:var(--berry);display:inline-flex;align-items:center;justify-content:center}
.hc-tl{top:1.5rem;left:1.5rem}
.hc-tr{top:1.5rem;right:1.5rem;padding:0 1.125rem;height:3.25rem;font-family:var(--f-disp)}
.hcard{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;background:var(--bg);color:var(--text);border-radius:1.75rem;padding:1.375rem 1.375rem 1.375rem 1.625rem;display:flex;align-items:center;gap:1.25rem;text-decoration:none;box-shadow:inset 0 1px 0 #fff,inset 0 -0.25rem 0 rgba(74,0,40,.08),0 1.875rem 3.125rem -1.25rem rgba(0,0,0,.55);transition:transform .3s}
.hcard:hover{color:var(--text);transform:translateY(-0.1875rem)}
.hcard:hover .circ{background:var(--berry-2)}
.hcard .k{font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.hcard h3{font-family:var(--f-disp);font-weight:500;font-size:1.375rem;letter-spacing:-0.02em;margin-top:0.375rem}
.hcard p{font-size:0.875rem;color:var(--muted);margin-top:0.25rem}
.hcard .pr{margin-left:auto;text-align:right;font-family:var(--f-disp);font-weight:600;font-size:1.75rem;color:var(--berry);white-space:nowrap}
.hcard .pr small{display:block;font-family:var(--f-text);font-size:0.75rem;color:var(--muted);font-weight:600}
.hcard .circ{background:var(--grad-berry);color:#fff;width:3.5rem;height:3.5rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.1875rem 0 rgba(0,0,0,.25),0 0.625rem 1.125rem -0.375rem rgba(74,0,40,.6)}

/* --- бегущая строка --- */
.marq{margin-top:4.5rem;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.625rem 0}
.marq-track{display:flex;width:max-content;animation:mq 42s linear infinite}
.marq-g{display:flex;align-items:center;gap:2.75rem;padding-right:2.75rem}
.marq-g span{font-family:var(--f-disp);font-size:2.125rem;font-weight:500;color:var(--berry);white-space:nowrap;letter-spacing:-0.02em}
.marq-g i{width:0.875rem;height:0.875rem;border-radius:50%;box-shadow:inset 0 0 0 0.1875rem #B9849E;flex:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* --- почему мы --- */
.why{position:relative;height:42.5rem;margin-top:2.5rem}
.why-rings{position:absolute;left:50%;top:0;width:62.5rem;height:42.5rem;transform:translateX(-50%)}
.why-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center}
.why-center h2{font-size:3.625rem;margin-top:0.875rem;color:var(--text)}
.why-c{position:absolute;width:22.5rem;border-radius:1.875rem;padding:1.625rem 1.75rem 1.75rem;background:linear-gradient(180deg,#fff,#FBF6F8);box-shadow:var(--sh-card);display:flex;flex-direction:column;gap:1.125rem;transition:transform .4s}
.why-c:hover{transform:translateY(-0.375rem)}
.w1{left:0;top:2.5rem}.w2{right:0;top:2.5rem}.w3{left:0;bottom:2.5rem}.w4{right:0;bottom:2.5rem}
.why-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.why-c h3{font-size:1.375rem;line-height:1.15;letter-spacing:-0.02em}
.num{height:2rem;padding:0 0.75rem;border-radius:62.4375rem;background:var(--bg);display:inline-flex;align-items:center;font-size:0.75rem;color:var(--muted);font-weight:700;flex:none}
.num b{color:var(--berry);margin-right:0.125rem}
.why-c p{font-size:0.9375rem;line-height:1.55;color:#5A4250}
.why-ic{width:3.25rem;height:3.25rem;border-radius:1rem;background:var(--grad-berry);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.1875rem 0 rgba(0,0,0,.25),0 0.625rem 1.125rem -0.5rem rgba(74,0,40,.6);color:var(--pale-3);display:flex;align-items:center;justify-content:center}
.why-ic .ico{width:1.875rem;height:1.875rem}

/* --- вкладки направлений и плитки (только CSS) --- */
.tabs-wrap{position:relative}
.tabs{display:flex;flex-wrap:wrap;gap:0.25rem 1rem;margin-top:1rem}
.tab{cursor:pointer;font-family:var(--f-disp);font-size:clamp(2rem,4vw,3.625rem);font-weight:500;letter-spacing:-0.035em;color:#A27C91;transition:color .3s;display:flex;align-items:center;gap:1rem;line-height:1.15;min-height:2.75rem}
.tab:hover{color:var(--berry-2)}
.tab+.tab::before{content:'/';color:var(--line-3);font-weight:400}
.hint-top{display:flex;align-items:center;gap:0.75rem;max-width:23.75rem;font-size:0.9375rem;line-height:1.5;color:var(--muted)}
.hint-top .circ{background:var(--grad-berry);color:#fff;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(74,0,40,.35)}50%{box-shadow:0 0 0 0.625rem rgba(74,0,40,0)}}
.panels{margin-top:3rem}
.bento{display:none;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:18.75rem;gap:1rem}
.c2{grid-column:span 2}.c4{grid-column:span 4}.r2{grid-row:span 2}
/* активная вкладка: n-я радиокнопка → n-я подпись и n-я панель */
.tab-radio:nth-of-type(1):checked ~ .sec-head .tab:nth-child(1),.tab-radio:nth-of-type(2):checked ~ .sec-head .tab:nth-child(2),.tab-radio:nth-of-type(3):checked ~ .sec-head .tab:nth-child(3),.tab-radio:nth-of-type(4):checked ~ .sec-head .tab:nth-child(4),.tab-radio:nth-of-type(5):checked ~ .sec-head .tab:nth-child(5),.tab-radio:nth-of-type(6):checked ~ .sec-head .tab:nth-child(6){color:var(--text)}
.tab-radio:nth-of-type(1):checked ~ .panels .bento:nth-child(1),.tab-radio:nth-of-type(2):checked ~ .panels .bento:nth-child(2),.tab-radio:nth-of-type(3):checked ~ .panels .bento:nth-child(3),.tab-radio:nth-of-type(4):checked ~ .panels .bento:nth-child(4),.tab-radio:nth-of-type(5):checked ~ .panels .bento:nth-child(5),.tab-radio:nth-of-type(6):checked ~ .panels .bento:nth-child(6){display:grid}
.tab-radio:nth-of-type(1):focus-visible ~ .sec-head .tab:nth-child(1),.tab-radio:nth-of-type(2):focus-visible ~ .sec-head .tab:nth-child(2),.tab-radio:nth-of-type(3):focus-visible ~ .sec-head .tab:nth-child(3),.tab-radio:nth-of-type(4):focus-visible ~ .sec-head .tab:nth-child(4),.tab-radio:nth-of-type(5):focus-visible ~ .sec-head .tab:nth-child(5),.tab-radio:nth-of-type(6):focus-visible ~ .sec-head .tab:nth-child(6){outline:0.1875rem solid var(--berry-hi);outline-offset:0.25rem;border-radius:0.75rem}
.tile{position:relative;border-radius:1.875rem;overflow:hidden;isolation:isolate}
.t-berry.tile{background:var(--berry);color:#fff}.t-rose.tile{background:var(--rose);color:var(--text)}.t-mauve.tile{background:var(--mauve);color:var(--text)}.t-white.tile{background:#fff;color:var(--text)}
.tile-chk{position:absolute;opacity:0;width:1px;height:1px}
.tile-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .8s var(--ease)}
.tile-ico{position:relative;width:8rem;height:8rem;transition:transform .8s var(--ease)}
.tile-ico .ico{stroke-width:2.2}
.c2 .tile-ico{width:10rem;height:10rem}
.r2 .tile-ico{width:17.5rem;height:17.5rem}
.tile-name{position:absolute;top:1.625rem;left:1.75rem;right:1.75rem;font-family:var(--f-disp);font-weight:500;font-size:1.4375rem;letter-spacing:-0.02em;line-height:1.15;z-index:2}
.r2 .tile-name{font-size:2.375rem;right:7.5rem}
.tile-info{position:absolute;left:0.625rem;right:0.625rem;bottom:0.625rem;background:#fff;color:var(--text);border-radius:1.375rem;padding:1.25rem 1.375rem 0.5rem;display:flex;flex-direction:column;gap:0.625rem;transform:translateY(calc(100% + 1rem));transition:transform .7s var(--ease);z-index:3;box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.06),0 1.5rem 2.75rem -0.75rem rgba(74,0,40,.35);visibility:hidden}
.t-white .tile-info{background:var(--bg)}
.tile-cat{font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.tile-info p{font-size:0.9062rem;line-height:1.5;color:var(--text-soft)}
.tile-meta{display:flex;justify-content:space-between;align-items:baseline;gap:0.625rem;padding-top:0.625rem;border-top:1px solid #EFE2E9;font-size:0.8125rem;color:var(--muted);font-weight:600}
.tile-meta b{font-family:var(--f-disp);font-size:1.375rem;color:var(--berry);font-weight:600;white-space:nowrap}
.tile-link{height:2.75rem;display:flex;align-items:center;font-size:0.8125rem;font-weight:700;text-decoration:none}
.tile-btn{position:absolute;right:1.125rem;bottom:1.125rem;z-index:4;display:flex;align-items:center;gap:0.5rem;cursor:pointer;min-height:2.75rem}
.tile-hint{height:1.875rem;padding:0 0.75rem;border-radius:62.4375rem;background:rgba(255,255,255,.94);color:var(--berry);font-size:0.75rem;font-weight:700;display:inline-flex;align-items:center;gap:0.375rem;transition:opacity .3s,transform .3s}
.tile-hint::before{content:'';width:0.375rem;height:0.375rem;border-radius:50%;background:var(--berry);animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.2}}
.tile-plus{background:linear-gradient(180deg,#fff,#EEDDE6);box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.14),0 0.125rem 0.1875rem rgba(0,0,0,.18),0 0.75rem 1.375rem -0.5rem rgba(0,0,0,.4)}
.tile-plus .ui{transition:transform .45s}
.tile:has(.tile-chk:checked) .tile-art{transform:translateY(-32%)}
.tile:has(.tile-chk:checked) .tile-ico{transform:scale(.82)}
.tile:has(.tile-chk:checked) .tile-info{transform:none;visibility:visible}
.tile:has(.tile-chk:checked) .tile-plus{background:var(--grad-berry);color:#fff;box-shadow:var(--sh-circ)}
.tile:has(.tile-chk:checked) .tile-plus .ui{transform:rotate(45deg)}
.tile:has(.tile-chk:checked) .tile-hint{opacity:0;transform:translateX(0.625rem)}
.tile:has(.tile-chk:focus-visible) .tile-plus{outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
@media(hover:hover){.tile:not(:has(.tile-chk:checked)):hover .tile-ico{transform:scale(1.06) rotate(-3deg)}}
.more{border-radius:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:1.75rem;text-decoration:none;color:var(--text);transition:background .3s}
.more:hover{background:var(--berry);color:#fff}
.more:hover .circ{background:var(--bg);color:var(--berry)}
.more b{display:block;font-family:var(--f-disp);font-weight:500;font-size:1.625rem;letter-spacing:-0.02em;margin-bottom:0.5rem}
.more span{font-size:0.9375rem;line-height:1.5}
.more .circ{background:var(--grad-berry);color:#fff;width:3.5rem;height:3.5rem;align-self:flex-end;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.1875rem 0 rgba(0,0,0,.25),0 0.625rem 1.125rem -0.375rem rgba(74,0,40,.6)}
.more.c4{flex-direction:row;align-items:center}

/* --- тёмный блок цен --- */
.dark{width:calc(100% - 2rem);max-width:calc(var(--wrap) + 2rem);margin:8.75rem auto 0;border-radius:2.75rem;background:var(--berry);color:#fff;position:relative;overflow:hidden}
.dark-in{position:relative;max-width:calc(var(--wrap) - 4rem);margin:0 auto;padding:6rem var(--gut)}
.dark .h2{color:#fff}.dark .it{color:var(--pale-3)}
.dark-p{max-width:23.75rem;font-size:1rem;line-height:1.6;color:var(--pale)}
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:3.5rem}
.pcard{border-radius:1.875rem;padding:1.625rem;display:flex;flex-direction:column;gap:1.375rem;background:rgba(74,0,40,.55);backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.16),inset 0 -0.25rem 0 rgba(0,0,0,.18),0 1.875rem 3.125rem -1.75rem rgba(0,0,0,.6);min-height:27.5rem;transition:transform .4s}
.pcard:hover{transform:translateY(-0.375rem)}
.pcard.light{background:linear-gradient(180deg,#fff 0%,#F2E4EB 100%);color:var(--text);box-shadow:inset 0 1px 0 #fff,inset 0 -0.3125rem 0 rgba(74,0,40,.1),0 2.25rem 3.75rem -1.5rem rgba(0,0,0,.65)}
.pc-top{display:flex;justify-content:space-between;align-items:center}
.pc-cat{font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--pale)}
.light .pc-cat{color:var(--muted)}
.pc-ico{width:3.125rem;height:3.125rem;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);color:var(--pale-3)}
.light .pc-ico{box-shadow:inset 0 0 0 1px var(--line);color:var(--berry)}
.pc-ico .ico{width:1.875rem;height:1.875rem}
.pc-name{font-family:var(--f-disp);font-weight:500;font-size:clamp(1.375rem,1.7vw,1.625rem);letter-spacing:-0.02em;line-height:1.12;min-height:2.24em}
.pc-opts{flex:1;display:flex;flex-direction:column;gap:1.375rem}
.pc-lbl{display:block;font-size:0.75rem;color:var(--pale);margin-bottom:0.625rem;font-weight:600}
.light .pc-lbl{color:var(--muted)}
.pc-pills{display:flex;gap:0.375rem}
.dur{flex:0 1 auto;min-width:0;justify-content:center;white-space:nowrap;height:2.75rem;padding:0 clamp(0.5rem,0.8vw,1rem);border-radius:62.4375rem;cursor:pointer;font-weight:600;font-size:0.875rem;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.32);transition:background .2s,color .2s,box-shadow .2s;display:inline-flex;align-items:center}
.dur:hover{box-shadow:inset 0 0 0 1px #fff}
.light .dur{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-3)}
.light .dur:hover{box-shadow:inset 0 0 0 1px var(--berry)}
.pws{margin-top:auto}
.pw{display:none;flex-direction:column;gap:0.625rem;min-height:7.5rem;justify-content:flex-end}
.pc-oldrow{display:flex;align-items:center;gap:0.625rem}
.pc-oldrow s{font-family:var(--f-disp);font-size:1.375rem;font-weight:500;opacity:.6;text-decoration-thickness:0.125rem}
.dbadge{font-style:normal;height:1.75rem;padding:0 0.625rem;border-radius:62.4375rem;font-family:var(--f-disp);font-size:0.8125rem;font-weight:600;display:inline-flex;align-items:center;background:linear-gradient(180deg,#F7EFF3,#E6C9D7);color:var(--berry);box-shadow:inset 0 1px 0 #fff,0 0.25rem 0.5rem -0.25rem rgba(0,0,0,.4)}
.light .dbadge,.dbadge.lg,.pr-disc{background:var(--grad-berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0.25rem 0.5rem -0.25rem rgba(74,0,40,.6)}
.pc-price{display:flex;align-items:flex-start;gap:0.375rem;font-family:var(--f-disp)}
.pc-price b{font-size:3.5rem;font-weight:600;letter-spacing:-0.045em;line-height:1}
.pc-price span{font-size:1.5rem;margin-top:0.25rem}
.pc-note{font-size:0.8125rem;color:var(--pale);margin-top:0.25rem}
.light .pc-note{color:var(--muted)}
.pcard .btn{width:100%}
/* n-я радиокнопка → n-я «пилюля» и n-я цена */
.opt-radio:nth-of-type(1):checked ~ .pws .pw:nth-child(1),.opt-radio:nth-of-type(2):checked ~ .pws .pw:nth-child(2),.opt-radio:nth-of-type(3):checked ~ .pws .pw:nth-child(3),.opt-radio:nth-of-type(4):checked ~ .pws .pw:nth-child(4),.opt-radio:nth-of-type(5):checked ~ .pws .pw:nth-child(5),.opt-radio:nth-of-type(6):checked ~ .pws .pw:nth-child(6){display:flex}
.opt-radio:nth-of-type(1):checked ~ div .dur:nth-child(1),.opt-radio:nth-of-type(2):checked ~ div .dur:nth-child(2),.opt-radio:nth-of-type(3):checked ~ div .dur:nth-child(3),.opt-radio:nth-of-type(4):checked ~ div .dur:nth-child(4),.opt-radio:nth-of-type(5):checked ~ div .dur:nth-child(5),.opt-radio:nth-of-type(6):checked ~ div .dur:nth-child(6){background:linear-gradient(180deg,#fff,#EEDDE6);color:var(--berry);box-shadow:inset 0 1px 0 #fff,inset 0 -0.125rem 0 rgba(74,0,40,.16),0 0.375rem 0.75rem -0.375rem rgba(0,0,0,.5)}
.light .opt-radio:nth-of-type(1):checked ~ div .dur:nth-child(1),.light .opt-radio:nth-of-type(2):checked ~ div .dur:nth-child(2),.light .opt-radio:nth-of-type(3):checked ~ div .dur:nth-child(3),.light .opt-radio:nth-of-type(4):checked ~ div .dur:nth-child(4),.light .opt-radio:nth-of-type(5):checked ~ div .dur:nth-child(5),.light .opt-radio:nth-of-type(6):checked ~ div .dur:nth-child(6){background:var(--grad-berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.125rem 0 rgba(0,0,0,.25),0 0.375rem 0.75rem -0.375rem rgba(74,0,40,.6)}
.opt-radio:nth-of-type(1):focus-visible ~ div .dur:nth-child(1),.opt-radio:nth-of-type(2):focus-visible ~ div .dur:nth-child(2),.opt-radio:nth-of-type(3):focus-visible ~ div .dur:nth-child(3),.opt-radio:nth-of-type(4):focus-visible ~ div .dur:nth-child(4){outline:0.1875rem solid #fff;outline-offset:0.1875rem}
.also{margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.16)}
.also-l{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center}
.also-l>span:first-child{font-size:0.875rem;color:var(--pale);margin-right:0.5rem;font-weight:600}
.ach{height:2.5rem;padding:0 1rem;border-radius:62.4375rem;background:rgba(255,255,255,.08);display:inline-flex;align-items:center;gap:0.5rem;font-size:0.875rem;color:var(--pale-3)}
.ach b{color:#fff}

/* --- акции --- */
/* карточки растягиваются на всю ширину при любом их числе: 1, 2, 3 и больше (переносятся рядами) */
.promos{display:flex;flex-wrap:wrap;gap:1rem;margin-top:3rem}
.promos>.promo{flex:1 1 22rem;min-width:0}
.promos>.pr-big{flex-grow:1.3}
.promos-page{margin-top:3.5rem}
.promo{position:relative;overflow:hidden;border-radius:2.25rem;padding:2rem;min-height:29.375rem;display:flex;flex-direction:column;gap:1.125rem;isolation:isolate}
.promo.pr-big{background:var(--berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -0.375rem 0 rgba(0,0,0,.28),0 2.5rem 3.75rem -1.875rem rgba(74,0,40,.7)}
.promo.pr-light{background:linear-gradient(180deg,#fff,#F2E4EB);box-shadow:inset 0 1px 0 #fff,inset 0 -0.375rem 0 rgba(74,0,40,.1),0 0 0 1px var(--line-2),0 1.875rem 3.125rem -1.75rem rgba(74,0,40,.45)}
.promo.pr-rose{background:linear-gradient(180deg,#EFDDE6,#E3C9D7);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -0.375rem 0 rgba(74,0,40,.1),0 1.875rem 3.125rem -1.75rem rgba(74,0,40,.45)}
.promo-top{position:relative;display:flex;justify-content:space-between;align-items:center;gap:0.75rem}
.ptag{height:2.125rem;padding:0 0.875rem;border-radius:62.4375rem;font-size:0.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.ptag:empty{display:none}
.pr-light .ptag,.pr-rose .ptag{background:var(--berry);color:#fff;box-shadow:none}
.puntil{font-size:0.8125rem;font-weight:600;opacity:.8}
.pbig{position:relative;font-family:var(--f-disp);font-weight:600;letter-spacing:-0.05em;line-height:.9;font-size:clamp(4.5rem,6.4vw,7.375rem);margin-top:0.5rem;overflow-wrap:anywhere}
.pbig small{font-size:.26em;letter-spacing:-0.01em;display:block;font-weight:500;margin-top:0.75rem;line-height:1.25}
.pr-light .pbig,.pr-rose .pbig{color:var(--berry)}
.promo h3{position:relative;font-family:var(--f-disp);font-weight:500;font-size:1.75rem;letter-spacing:-0.02em}
.promo p{position:relative;font-size:0.9688rem;line-height:1.55;opacity:.9;max-width:26.25rem}
.pcond{position:relative;margin-top:auto;border-top:0.125rem dashed rgba(255,255,255,.3);padding-top:1.25rem;display:flex;justify-content:space-between;align-items:center;gap:0.875rem;flex-wrap:wrap}
.pr-light .pcond,.pr-rose .pcond{border-top-color:rgba(74,0,40,.25)}
.pcond span{font-size:0.8125rem;font-weight:600;opacity:.85}

/* --- авторская практика --- */
.feat{display:grid;grid-template-columns:1fr 28.75rem 1fr;gap:3rem;align-items:center;margin-top:1.75rem;padding-top:2.5rem;border-top:1px solid var(--line)}
.feat-l{display:flex;flex-direction:column;gap:3rem}
.feat-l .h2{margin-top:0}
.feat-sub{font-size:0.875rem;font-weight:700;margin-bottom:0.75rem;color:var(--text)}
.feat-c{position:relative;aspect-ratio:1/1}
.feat-circle{position:absolute;inset:1.875rem;border-radius:50%;overflow:hidden;background:var(--berry)}
.feat-circle .fl{position:absolute;left:50%;top:50%;width:52%;transform:translate(-50%,-50%)}
.orbit{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-3);animation:spin 30s linear infinite}
.orbit::before{content:'';position:absolute;top:50%;left:-0.4375rem;width:0.875rem;height:0.875rem;border-radius:50%;background:var(--berry)}
@keyframes spin{to{transform:rotate(360deg)}}
.feat-badge{position:absolute;right:0.5rem;bottom:3.5rem;height:3.25rem;padding:0 1.25rem;border-radius:62.4375rem;background:#fff;box-shadow:0 0.875rem 1.875rem rgba(74,0,40,.18);display:inline-flex;align-items:center;font-family:var(--f-disp);font-weight:600;font-size:1.125rem;color:var(--berry)}
.feat-r{display:flex;flex-direction:column;gap:1.5rem}
.flist li{display:flex;gap:0.75rem;align-items:flex-start;font-size:0.9375rem;line-height:1.5;padding:0.625rem 0;border-bottom:1px solid var(--line-2)}
.flist li::before{content:'';width:0.5rem;height:0.5rem;border-radius:50%;background:#B9849E;margin-top:0.4375rem;flex:none}
.fprices{display:flex;gap:0.5rem;flex-wrap:wrap}
.fprices span{height:2.5rem;padding:0 0.875rem;border-radius:62.4375rem;box-shadow:inset 0 0 0 1px var(--line-3);display:inline-flex;align-items:center;font-size:0.875rem;font-weight:600}
.fprices b{color:var(--berry);margin-left:0.375rem}

/* --- команда: карусель (главная и салон) --- */
.arrows{display:flex;gap:0.625rem}
.arrows .circ{width:3.5rem;height:3.5rem;box-shadow:inset 0 0 0 1px var(--line)}
.arrows .circ:hover{background:var(--berry);color:#fff}
.team-track{display:flex;gap:1.25rem;margin-top:3rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:0.25rem}
.team-track::-webkit-scrollbar{display:none}
.mem{width:18.75rem;flex:none;scroll-snap-align:start}
.mem-ph{position:relative;height:23.75rem;border-radius:1.75rem;overflow:hidden}
.mem-ph .sil{position:absolute;inset:0;width:100%;height:100%}
.mem-tag{position:absolute;left:1rem;bottom:1rem;height:1.875rem;padding:0 0.75rem;border-radius:62.4375rem;background:rgba(255,255,255,.9);font-size:0.75rem;font-weight:700;color:var(--berry);display:inline-flex;align-items:center}
.mem h3{margin-top:1.125rem;font-family:var(--f-disp);font-weight:500;font-size:1.25rem;letter-spacing:-0.02em}
.mem p{margin-top:0.375rem;font-size:0.875rem;color:var(--muted)}

/* --- запись / заявка --- */
.book{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.book-l{position:relative;overflow:hidden;border-radius:2.5rem;background:var(--berry);color:#fff;padding:3.5rem;display:flex;flex-direction:column;min-height:38.75rem}
.book-l .h2{color:#fff}.book-l .it{color:var(--pale-3)}
.book-l-in{position:relative;display:flex;flex-direction:column;height:100%;flex:1}
.cinfo{margin-top:auto;display:flex;flex-direction:column;gap:0.75rem;padding-top:3rem}
.crow{display:flex;align-items:center;gap:1rem;padding:1rem 1.125rem;border-radius:1.375rem;background:rgba(74,0,40,.6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);text-decoration:none;color:#fff;backdrop-filter:blur(0.375rem);-webkit-backdrop-filter:blur(0.375rem)}
.crow:hover{color:#fff;background:rgba(110,31,74,.8)}
.crow .ic{width:2.75rem;height:2.75rem;border-radius:50%;background:var(--bg);color:var(--berry);display:flex;align-items:center;justify-content:center;flex:none}
.crow small{display:block;font-size:0.75rem;color:var(--pale);font-weight:600;margin-bottom:0.125rem}
.crow span{font-size:1rem;font-weight:600}
.book-r{border-radius:2.5rem;background:#fff;padding:3.5rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.book-r.bare{padding:0;box-shadow:none;border-radius:0;background:none}
.req-wrap{max-width:47.5rem;margin:0 auto}
.form{display:flex;flex-direction:column;gap:1.25rem}
.form h3{font-family:var(--f-disp);font-weight:500;font-size:2.125rem;letter-spacing:-0.03em}
.form>p{color:var(--muted);font-size:0.9375rem;line-height:1.5;margin-top:-0.5rem}
.form-err{background:#FBE8EE;color:#7A1031;border-radius:1rem;padding:0.75rem 1rem;font-size:0.875rem;font-weight:600}
.fld{display:flex;flex-direction:column;gap:0.5rem}
.fld>span,.fld>legend{font-size:0.8125rem;font-weight:700;color:var(--text)}
.fld input[type=text],.fld input[type=tel]{height:3.5rem;border-radius:1.125rem;border:0;background:var(--bg);box-shadow:inset 0 0 0 1px #E6D3DD;padding:0 1.25rem;font-size:1rem;color:var(--text);outline:none;transition:box-shadow .2s;width:100%}
.fld input:focus{box-shadow:inset 0 0 0 0.125rem var(--berry)}
.fld input::placeholder{color:#8C7282}
.opt-l{position:relative;cursor:pointer}
.opt-l input{position:absolute;opacity:0;width:1px;height:1px}
.opt-l span{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;border-radius:62.4375rem;background:var(--bg);color:var(--text);box-shadow:inset 0 0 0 1px #E6D3DD;font-size:0.875rem;font-weight:600;transition:background .2s,color .2s}
.opt-l:hover span{box-shadow:inset 0 0 0 1px var(--berry)}
.opt-l input:checked+span{background:var(--grad-berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.125rem 0 rgba(0,0,0,.25),0 0.5rem 0.875rem -0.375rem rgba(74,0,40,.6)}
.opt-l input:focus-visible+span{outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.hp{position:absolute;left:-624.9375rem;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:0.75rem;align-items:flex-start;font-size:0.8125rem;line-height:1.5;color:var(--muted);cursor:pointer;min-height:2.75rem}
.consent input{width:1.375rem;height:1.375rem;flex:none;margin-top:1px;accent-color:var(--berry)}
.done{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1.125rem;min-height:28.75rem}
.done .circ{width:4.5rem;height:4.5rem;background:var(--berry);color:#fff}
.done .circ .ui{width:1.875rem;height:1.875rem}
.done h3{font-family:var(--f-disp);font-weight:500;font-size:2.125rem;letter-spacing:-0.03em}
.done p{color:var(--muted);font-size:1rem;line-height:1.6;max-width:26.25rem}

/* --- каталог услуг --- */
.shero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;align-items:end;padding-top:3.5rem}
.shero-h{font-size:clamp(3.75rem,8vw,8rem);margin-top:1.5rem}
.flts,.filters{display:flex;gap:0.5rem;flex-wrap:wrap}
.flts{margin-top:3.5rem;padding-bottom:1.75rem;border-bottom:1px solid var(--line)}
.filters{margin-top:3rem}
.flt{height:3rem;padding:0 1.375rem;border-radius:62.4375rem;background:#fff;color:var(--text);box-shadow:inset 0 0 0 1px var(--line);font-weight:700;font-size:0.9375rem;cursor:pointer;display:inline-flex;align-items:center;gap:0.625rem;text-decoration:none;transition:background .2s,color .2s}
.flt:hover{box-shadow:inset 0 0 0 1px var(--berry);color:var(--text)}
.flt small{font-size:0.75rem;color:var(--muted);font-weight:700}
.flt.on{background:var(--grad-berry);color:#fff;box-shadow:var(--sh-chip-on)}
.flt.on small{color:var(--pale)}
.sgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:2rem}
.scard{display:flex;flex-direction:column;gap:1.125rem;padding:0.75rem;border-radius:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);text-decoration:none;color:var(--text);transition:transform .4s,box-shadow .4s}
.scard:hover{transform:translateY(-0.375rem);box-shadow:inset 0 0 0 1px var(--line-3),0 1.875rem 3.75rem -1.875rem rgba(74,0,40,.35);color:var(--text)}
.scard:hover .circ{background:var(--berry);color:#fff;transform:rotate(45deg)}
.sc-top{display:flex;justify-content:space-between;gap:0.875rem;padding:0.875rem 0.75rem 0 0.875rem}
.sc-cat{font-size:0.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.sc-top h3{font-family:var(--f-disp);font-weight:500;font-size:1.375rem;letter-spacing:-0.02em;line-height:1.12;margin-top:0.5rem}
.sc-top p{font-size:0.875rem;line-height:1.5;color:var(--muted);margin-top:0.5rem}
.sc-top .circ{box-shadow:inset 0 0 0 1px var(--line)}
.sc-art{position:relative;height:13.75rem;border-radius:1.375rem;overflow:hidden;margin-top:auto}
.ico-wrap{position:absolute;left:50%;top:50%;width:7.5rem;height:7.5rem;transform:translate(-50%,-50%);transition:transform .6s}
.ico-wrap .ico{stroke-width:2.4}
.scard:hover .ico-wrap{transform:translate(-50%,-50%) scale(1.1)}
.sc-price{position:absolute;left:0.75rem;bottom:0.75rem;height:2.125rem;padding:0 0.875rem;border-radius:62.4375rem;background:rgba(255,255,255,.94);font-size:0.8125rem;font-weight:700;color:var(--berry);display:inline-flex;align-items:center}
.sc-more{position:absolute;right:0.75rem;bottom:0.75rem;height:2.125rem;padding:0 0.875rem;border-radius:62.4375rem;background:var(--berry);color:#fff;font-size:0.75rem;font-weight:700;display:inline-flex;align-items:center}
.cta{position:relative;overflow:hidden;border-radius:2.75rem;background:var(--berry);color:#fff;margin-top:8.75rem}
.cta-in{position:relative;padding:4.5rem 4rem;display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:2.5rem;align-items:center}
.cta h2{font-size:clamp(2.25rem,4vw,3.75rem);color:#fff;margin-top:1rem}
.cta .it{color:var(--pale-3)}
.cta p{color:var(--pale-2);font-size:1.0625rem;line-height:1.6;margin-top:1.125rem;max-width:35rem}
.cta-b{display:flex;gap:0.75rem;flex-wrap:wrap}
/* страница услуги */
.det-page{padding-bottom:0}
.det{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:4rem;align-items:start;margin-top:1.75rem}
.det-art{position:sticky;top:6.875rem;aspect-ratio:4/5;border-radius:2.5rem;overflow:hidden;isolation:isolate}
.det-art .ico-wrap{width:48%;height:auto;aspect-ratio:1}
.det-art .ico{stroke-width:1.8}
.det-pr{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;display:flex;gap:0.5rem;flex-wrap:wrap}
.det-pr span{min-height:2.75rem;padding:0 1rem;border-radius:62.4375rem;background:rgba(255,255,255,.94);display:inline-flex;align-items:center;gap:0.5rem;font-size:0.875rem;font-weight:600;color:var(--text);color:#2B1621}
.det-pr b{font-family:var(--f-disp);color:var(--berry);font-size:1rem}
.det-r{display:flex;flex-direction:column;gap:1.75rem;padding-top:0.75rem}
.det-h{font-size:clamp(2.5rem,4.4vw,4rem)}
.det-lead{background:var(--berry);color:#fff;border-radius:1.75rem;padding:1.75rem 2rem;font-size:1.25rem;line-height:1.5;font-weight:500}
.det-body{font-size:1.0312rem;line-height:1.7;color:var(--text-soft)}
.lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem}
.lbox{border-radius:1.625rem;padding:1.625rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}
.lbox.alt{background:var(--rose);box-shadow:none}
.lbox h2{font-family:var(--f-disp);font-weight:500;font-size:1.25rem;letter-spacing:-0.02em;margin-bottom:0.875rem}
.lbox li{display:flex;gap:0.75rem;font-size:0.9375rem;line-height:1.5;padding:0.4375rem 0}
.lbox li::before{content:'';width:0.5rem;height:0.5rem;border-radius:50%;background:var(--berry);margin-top:0.4375rem;flex:none}
.lbox.alt li::before{background:#fff;box-shadow:inset 0 0 0 0.125rem var(--berry)}
.det-cta{display:flex;gap:0.75rem;flex-wrap:wrap}

/* --- прайс --- */
.phero{position:relative;overflow:hidden;width:calc(100% - 2rem);max-width:calc(var(--wrap) + 2rem);margin:1rem auto 0;border-radius:2.75rem;background:var(--berry);color:#fff}
.phero-in{position:relative;max-width:calc(var(--wrap) - 4rem);margin:0 auto;padding:5rem var(--gut) 2.5rem;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2.5rem;align-items:end}
.phero-h{font-size:clamp(4rem,9vw,9.375rem);color:#fff;margin-top:1.5rem}
.phero .it{color:#E6C9D7}
.phero p{font-size:1.0625rem;line-height:1.6;color:var(--pale-2);max-width:28.75rem}
.stats{position:relative;max-width:calc(var(--wrap) - 4rem);margin:0 auto;padding:0 var(--gut) 2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.75rem}
.stat{border-radius:1.625rem;padding:1.5rem 1.625rem;background:rgba(74,0,40,.6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);backdrop-filter:blur(0.375rem);-webkit-backdrop-filter:blur(0.375rem)}
.stat b{display:block;font-family:var(--f-disp);font-weight:600;font-size:2.375rem;letter-spacing:-0.04em}
.stat span{font-size:0.875rem;color:var(--pale);font-weight:600}
.pstrips-wrap{margin-top:1.75rem}
.pstrips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem}
.pstrip{display:flex;align-items:center;gap:1.125rem;padding:1.25rem 1.5rem;border-radius:1.625rem;background:linear-gradient(180deg,#fff,#F4E9EE);box-shadow:inset 0 1px 0 #fff,inset 0 -0.25rem 0 rgba(74,0,40,.07),0 0 0 1px #E6D3DD,0 1.125rem 1.875rem -1.25rem rgba(74,0,40,.45)}
.pstrip div b{display:block;font-family:var(--f-disp);font-weight:500;font-size:1.1875rem;letter-spacing:-0.02em}
.pstrip div span{display:block;font-size:0.875rem;color:var(--muted);margin-top:0.25rem}
.pstrip.gift{background:linear-gradient(180deg,#6E1F4A,#3E0021);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -0.25rem 0 rgba(0,0,0,.25),0 1.125rem 1.875rem -1.125rem rgba(74,0,40,.7)}
.pstrip.gift div span{color:var(--pale-2)}
.gift-ic{width:3.25rem;height:3.25rem;border-radius:1.125rem;flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#fff,#EEDDE6);color:var(--berry);box-shadow:inset 0 1px 0 #fff,0 0.5rem 0.875rem -0.375rem rgba(0,0,0,.5)}
.gift-ic .ui{width:1.625rem;height:1.625rem}
.dbadge.lg{height:3rem;padding:0 1.125rem;font-size:1.25rem}
.pgroup{display:grid;grid-template-columns:6.875rem minmax(0,1fr);gap:1.75rem;margin-top:4.5rem}
.vlabel{position:sticky;top:6.875rem;align-self:start;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-disp);font-weight:500;font-size:5.75rem;letter-spacing:.01em;text-transform:uppercase;color:#E2CCD7;line-height:1}
.g-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.25rem;padding-bottom:1.375rem;border-bottom:1px solid var(--line);margin-bottom:1rem;flex-wrap:wrap}
.g-head h2{font-size:2.75rem}
.g-head span{font-size:0.875rem;color:var(--muted);font-weight:600}
.rows{display:flex;flex-direction:column;gap:0.75rem}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center;padding:1.5rem 1.5rem 1.5rem 1.75rem;background:#fff;border-radius:1.875rem;box-shadow:inset 0 0 0 1px var(--line-2);transition:box-shadow .3s}
.prow:hover{box-shadow:inset 0 0 0 1px var(--line-3),0 1.5rem 3.125rem -1.75rem rgba(74,0,40,.3)}
.prow:has(input:checked){box-shadow:inset 0 0 0 0.125rem var(--berry)}
.pr-l{display:flex;align-items:center;gap:1.375rem;min-width:0}
.pr-ico{width:4.5rem;height:4.5rem;border-radius:1.375rem;overflow:hidden;position:relative;flex:none;padding:1rem}
.pr-ico .ico{position:relative;stroke-width:5}
.pr-name{font-family:var(--f-disp);font-weight:500;font-size:1.625rem;letter-spacing:-0.025em;line-height:1.1}
.pr-name a{color:var(--text);text-decoration:none}
.pr-name a:hover{color:var(--berry)}
.pr-desc{font-size:0.9375rem;color:var(--muted);margin-top:0.5rem;line-height:1.45}
.pr-tags{display:flex;gap:0.375rem;flex-wrap:wrap}
.pr-tag{display:inline-flex;height:1.625rem;align-items:center;padding:0 0.625rem;border-radius:62.4375rem;background:var(--rose);color:var(--berry);font-size:0.75rem;font-weight:700;margin-top:0.625rem}
.opts{display:flex;gap:0.625rem;flex-wrap:wrap;justify-content:flex-end}
.ot{width:9.75rem;height:7.375rem;border-radius:1.375rem;background:linear-gradient(180deg,#fff 0%,#F4E9EE 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.07),0 0 0 1px #E6D3DD,0 0.625rem 1.125rem -0.75rem rgba(74,0,40,.45);color:var(--text);padding:1rem 1.125rem;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s,transform .25s;position:relative}
.ot:hover{box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.07),0 0 0 1px #B9849E,0 1rem 1.5rem -0.75rem rgba(74,0,40,.5);transform:translateY(-0.1875rem)}
.ot .m{font-size:0.8125rem;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:0.5rem}
.ot .m i{width:1rem;height:1rem;border-radius:50%;box-shadow:inset 0 0 0 1.5px #B9849E;display:inline-block}
.ot .p{font-family:var(--f-disp);font-weight:600;font-size:1.875rem;letter-spacing:-0.04em;line-height:1}
.ot .p small{font-size:1.125rem;margin-left:0.1875rem}
.oldp{display:block;font-size:0.8125rem;font-weight:600;opacity:.6;letter-spacing:0;margin-bottom:0.125rem;text-decoration:line-through;font-family:var(--f-text)}
.ot:has(input:checked){background:linear-gradient(180deg,#7C2654 0%,#560032 50%,#3E0021 100%);color:#fff;transform:translateY(-0.1875rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.25rem 0 rgba(0,0,0,.25),0 1.125rem 1.75rem -0.75rem rgba(74,0,40,.7)}
.ot:has(input:checked) .m{color:#E6C9D7}
.ot:has(input:checked) .m i{box-shadow:inset 0 0 0 0.3125rem var(--bg)}
.ot:has(input:focus-visible){outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.sumbar{position:sticky;bottom:1rem;z-index:40;max-width:62.5rem;margin:3.5rem auto 0;background:var(--berry);color:#fff;border-radius:62.4375rem;padding:0.625rem 0.625rem 0.625rem 1.875rem;display:flex;align-items:center;gap:1.25rem;box-shadow:0 1.5rem 3.75rem rgba(74,0,40,.35)}
.sum-l{flex:1;min-width:0}
.sum-l small{display:block;font-size:0.75rem;color:var(--pale);font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.sum-l span{display:block;font-size:1rem;font-weight:600;margin-top:0.1875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sum-p{font-family:var(--f-disp);font-weight:600;font-size:1.875rem;letter-spacing:-0.04em;white-space:nowrap}
.sum-p s{font-size:1.125rem;opacity:.6;font-weight:500}
.know{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:3rem}
.kc{border-radius:1.875rem;padding:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);display:flex;flex-direction:column;gap:0.875rem}
.kc.dk{background:var(--rose);box-shadow:none}
.kc .n{font-family:var(--f-disp);font-weight:600;font-size:0.875rem;color:var(--berry)}
.kc h3{font-family:var(--f-disp);font-weight:500;font-size:1.5rem;letter-spacing:-0.02em}
.kc p{font-size:0.9375rem;line-height:1.55;color:#5A4250}
.kc a{margin-top:auto;font-weight:700;font-size:0.875rem;min-height:2.75rem;display:flex;align-items:center}
/* конструктор записи (витрина; рабочие шаги — на этапе 4) */
.booker-sec{margin-top:6rem}
.bk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}
.bk-head .lead{max-width:26.25rem;font-size:1rem;margin-top:0.875rem}
.prog{display:flex;gap:0.25rem;flex-wrap:wrap;background:#fff;padding:0.375rem;border-radius:62.4375rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.pg{height:2.5rem;padding:0 0.875rem 0 0.375rem;border-radius:62.4375rem;display:inline-flex;align-items:center;gap:0.5rem;font-size:0.8125rem;font-weight:700;color:var(--muted)}
.pg i{font-style:normal;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-size:0.75rem}
.pg.cur{background:var(--grad-berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0.5rem 1rem -0.5rem rgba(74,0,40,.7)}
.pg.cur i{background:rgba(255,255,255,.18);color:#fff}
.booker{display:grid;grid-template-columns:minmax(0,1fr) 25rem;gap:1.25rem;margin-top:2.5rem;align-items:start}
.bsteps{display:flex;flex-direction:column;gap:0.875rem}
.bstep{background:#fff;border-radius:2rem;padding:1.75rem;transition:opacity .35s;box-shadow:var(--sh-tile)}
.bstep.locked{opacity:.42}
.bs-h{display:flex;align-items:center;gap:1rem}
.bstep:not(.locked) .bs-h{margin-bottom:1.375rem}
.bs-n{width:2.75rem;height:2.75rem;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--f-disp);font-weight:600;color:#fff;background:var(--grad-berry);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -0.125rem 0 rgba(0,0,0,.25),0 0.375rem 0.875rem -0.375rem rgba(74,0,40,.6)}
.bs-h h3{font-family:var(--f-disp);font-weight:500;font-size:1.5rem;letter-spacing:-0.02em}
.bs-h p{font-size:0.875rem;color:var(--muted);margin-top:0.25rem}
.locs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.75rem}
.loc{cursor:pointer;text-align:left;border-radius:1.5rem;padding:1.125rem;background:linear-gradient(180deg,#fff,#F7EFF3);color:var(--text);display:flex;flex-direction:column;gap:0.375rem;box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.06),0 0 0 1px var(--line-2),0 0.625rem 1.25rem -0.875rem rgba(74,0,40,.35);transition:transform .25s,box-shadow .25s}
.loc:hover{transform:translateY(-0.1875rem)}
.loc-top{display:flex;justify-content:space-between;align-items:center}
.loc-pin{width:2.5rem;height:2.5rem;border-radius:0.875rem;background:var(--rose);color:var(--berry);display:flex;align-items:center;justify-content:center}
.loc-pin .ui{width:1.25rem;height:1.25rem}
.loc-radio{width:1.375rem;height:1.375rem;border-radius:50%;box-shadow:inset 0 0 0 0.125rem var(--line-3);transition:box-shadow .25s}
.loc b{font-family:var(--f-disp);font-weight:500;font-size:1.1875rem;letter-spacing:-0.02em;margin-top:0.625rem}
.loc-addr{font-size:0.875rem;line-height:1.4}
.loc-meta{font-size:0.7812rem;color:var(--muted);font-weight:600}
.loc:has(input:checked){background:linear-gradient(180deg,#6E1F4A,#3E0021);color:#fff;transform:translateY(-0.1875rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -0.25rem 0 rgba(0,0,0,.25),0 1.125rem 1.875rem -0.875rem rgba(74,0,40,.7)}
.loc:has(input:checked) .loc-meta{color:var(--pale-2)}
.loc:has(input:checked) .loc-pin{background:rgba(255,255,255,.14);color:#fff}
.loc:has(input:checked) .loc-radio{box-shadow:inset 0 0 0 0.375rem #fff}
.loc:has(input:focus-visible){outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.receipt{position:sticky;top:6.25rem;border-radius:2.25rem;overflow:hidden;background:var(--berry);color:#fff;isolation:isolate;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -0.3125rem 0 rgba(0,0,0,.25),0 2.5rem 4.375rem -1.875rem rgba(74,0,40,.7)}
.rc-in{position:relative;padding:1.875rem;display:flex;flex-direction:column;gap:1.125rem}
.rc-rows li{display:flex;justify-content:space-between;gap:1rem;padding:0.8125rem 0;border-bottom:1px dashed rgba(255,255,255,.22);font-size:0.875rem}
.rc-rows li span{color:var(--pale);flex:none}
.rc-rows li b{text-align:right;font-weight:600}
.rc-rows li.empty b{color:rgba(255,255,255,.55);font-weight:500}
.rc-total{display:flex;justify-content:space-between;align-items:baseline;gap:0.75rem}
.rc-total span{font-size:0.875rem;color:var(--pale);font-weight:600}
.rc-total b{font-family:var(--f-disp);font-size:2.75rem;font-weight:600;letter-spacing:-0.04em;white-space:nowrap}
.rc-note{font-size:0.7812rem;color:var(--pale);line-height:1.5}
.rc-btn{width:100%}
.rc-link{color:#fff;font-weight:700;font-size:0.875rem;text-align:center;min-height:2.75rem;display:flex;align-items:center;justify-content:center}

/* --- команда (страница) --- */
.thero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;align-items:end;padding-top:3.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}
.thero-h{font-size:clamp(3.5rem,7.4vw,7.375rem);margin-top:1.5rem}
.team{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.3fr);gap:1.5rem;margin-top:2.5rem;align-items:start}
.tm-feat{position:sticky;top:6.25rem;border-radius:2.5rem;background:var(--berry);color:#fff;overflow:hidden;isolation:isolate}
.f-ph{position:relative;height:27.5rem}
.f-ph .sil{position:absolute;inset:0;width:100%;height:100%}
.f-tag{position:absolute;left:1.5rem;top:1.5rem;height:2.125rem;padding:0 0.875rem;border-radius:62.4375rem;background:rgba(255,255,255,.92);color:var(--berry);font-size:0.75rem;font-weight:700;display:inline-flex;align-items:center}
.f-body{position:relative;padding:2rem;display:flex;flex-direction:column;gap:1.125rem}
.f-body h2{font-size:2.375rem;color:#fff}
.f-role{font-size:0.9375rem;color:var(--pale-2);font-weight:600;margin-top:0.625rem}
.f-q{font-family:var(--f-it);font-style:italic;font-size:1.625rem;line-height:1.3;color:var(--pale-3)}
.f-chips{display:flex;flex-wrap:wrap;gap:0.5rem}
.f-chips span{min-height:2.25rem;padding:0 0.875rem;border-radius:62.4375rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);display:inline-flex;align-items:center;font-size:0.8438rem;font-weight:600}
.f-meta{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem}
.f-meta div{border-radius:1.25rem;background:rgba(255,255,255,.08);padding:1rem 1.125rem}
.f-meta b{display:block;font-family:var(--f-disp);font-size:1.375rem;font-weight:600}
.f-meta span{font-size:0.7812rem;color:var(--pale);font-weight:600}
.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.mc{display:block;background:#fff;border-radius:1.75rem;padding:0.625rem 0.625rem 1.125rem;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line-2);transition:transform .35s,box-shadow .35s;color:var(--text);position:relative}
.mc:hover{transform:translateY(-0.3125rem);box-shadow:inset 0 0 0 1px var(--line-3),0 1.625rem 3.125rem -1.75rem rgba(74,0,40,.35)}
.mc:has(input:checked){box-shadow:inset 0 0 0 0.125rem var(--berry)}
.mc:has(input:focus-visible){outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.mc-ph{position:relative;display:block;height:15.625rem;border-radius:1.25rem;overflow:hidden}
.mc-ph .sil{position:absolute;inset:0;width:100%;height:100%}
.mc-dot{position:absolute;right:0.75rem;top:0.75rem;width:2.25rem;height:2.25rem;border-radius:50%;background:#fff;color:var(--berry);display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s}
.mc-dot .ui{width:1rem;height:1rem}
.mc:has(input:checked) .mc-dot{background:var(--berry);color:#fff}
.mc h3{margin:1rem 0.625rem 0;font-family:var(--f-disp);font-weight:500;font-size:1.125rem;letter-spacing:-0.02em}
.mc p{margin:0.375rem 0.625rem 0;font-size:0.8438rem;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:3rem}
.st{border-radius:1.875rem;padding:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);display:flex;flex-direction:column;gap:1rem;min-height:15rem}
.st .n{width:3.25rem;height:3.25rem;border-radius:50%;background:var(--rose);color:var(--berry);display:flex;align-items:center;justify-content:center;font-family:var(--f-disp);font-weight:600}
.st h3{font-family:var(--f-disp);font-weight:500;font-size:1.5rem;letter-spacing:-0.02em;margin-top:auto}
.st p{font-size:0.9375rem;line-height:1.55;color:#5A4250}
.join{position:relative;overflow:hidden;border-radius:2.75rem;background:var(--rose);margin-top:8.75rem}
.join-in{position:relative;padding:4rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.join h2{font-size:clamp(2.125rem,3.6vw,3.375rem);margin-top:1rem}
.join p{margin-top:0.875rem;color:#5A4250;font-size:1rem;line-height:1.6;max-width:32.5rem}

/* --- контакты, салоны --- */
.chero{padding-top:3.5rem}
.cgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1rem;margin-top:3rem;align-items:start}
.bk{border-radius:2.5rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);padding:3rem}
.side{display:flex;flex-direction:column;gap:1rem}
.map{position:relative;border-radius:2.5rem;overflow:hidden;background:var(--rose);height:26.25rem}
.map-art{position:relative}
.map-art .m{position:absolute;inset:0;width:100%;height:100%}
.pin{position:absolute;left:56%;top:46%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center}
.pin-b{background:var(--berry);color:#fff;border-radius:1.125rem;padding:0.75rem 1rem;font-size:0.8125rem;font-weight:700;white-space:nowrap;box-shadow:0 0.875rem 1.875rem rgba(74,0,40,.3)}
.pin-d{width:1.125rem;height:1.125rem;border-radius:50%;background:var(--berry);margin-top:0.5rem;box-shadow:0 0 0 0.5rem rgba(74,0,40,.18)}
.map-btn{position:absolute;left:1.25rem;bottom:1.25rem}
.ic-card{border-radius:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);padding:1.5rem 1.625rem;display:flex;align-items:center;gap:1.125rem;text-decoration:none;color:var(--text)}
a.ic-card:hover{color:var(--text);box-shadow:inset 0 0 0 1px var(--berry)}
.ic-card .ic{width:3.25rem;height:3.25rem;border-radius:50%;background:var(--berry);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.ic-card .ic .ui{width:1.375rem;height:1.375rem}
.ic-card small{display:block;font-size:0.75rem;color:var(--muted);font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:0.25rem}
.ic-card span{font-size:1.0625rem;font-weight:600;line-height:1.4}
.dark-card{position:relative;overflow:hidden;border-radius:1.875rem;background:var(--berry);color:#fff;padding:1.875rem}
.dark-card h3{position:relative;font-family:var(--f-disp);font-weight:500;font-size:1.625rem;letter-spacing:-0.02em}
.dark-card p{position:relative;margin-top:0.75rem;color:var(--pale-2);font-size:0.9375rem;line-height:1.6}
.salon-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem;margin-top:3rem;align-items:stretch}
.salon-grid .map-art{border-radius:2.5rem;overflow:hidden;background:var(--rose);min-height:30rem}
.salon-list{display:flex;flex-direction:column;gap:0.75rem}
.salon-list-wide{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.salon-card{display:flex;align-items:center;gap:1.125rem;padding:1.375rem 1.5rem;border-radius:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);text-decoration:none;color:var(--text);transition:transform .35s,box-shadow .35s}
.salon-card:hover{transform:translateY(-0.25rem);box-shadow:inset 0 0 0 1px var(--line-3),0 1.625rem 3.125rem -1.75rem rgba(74,0,40,.35);color:var(--text)}
.salon-card:hover .circ{background:var(--berry);color:#fff}
.salon-card div{flex:1;min-width:0}
.salon-card b{display:block;font-family:var(--f-disp);font-weight:500;font-size:1.375rem;letter-spacing:-0.02em}
.salon-card span{display:block;font-size:0.875rem;color:var(--text-soft);margin-top:0.375rem}
.salon-card small{display:block;font-size:0.8125rem;color:var(--muted);margin-top:0.25rem;font-weight:600}
.sc-pin{width:3rem;height:3rem;border-radius:1rem;background:var(--rose);color:var(--berry);display:flex;align-items:center;justify-content:center;flex:none}
.sc-pin .ui{width:1.375rem;height:1.375rem}
.prose{max-width:47.5rem;padding-top:3.5rem}
.prose h1{margin:1.5rem 0 1.25rem}
.prose h2{font-family:var(--f-disp);font-weight:500;font-size:1.625rem;letter-spacing:-0.02em;margin:2.5rem 0 0.75rem}
.prose p{font-size:1rem;line-height:1.7;color:var(--text-soft);margin-top:0.625rem}
.err{padding-top:6rem;padding-bottom:2.5rem}
.err-h{font-size:clamp(3rem,7vw,7rem);margin:1.5rem 0 1.25rem}

/* ==========================================================================
   АДАПТИВ
   ========================================================================== */
@media(min-width:1500px){.tel{display:inline}}
@media(max-width:1279px){.sp-t small{display:none}}
@media(max-width:1180px){
  .nav{display:none;position:absolute;top:calc(100% + 0.625rem);left:2rem;right:2rem;flex-direction:column;border-radius:1.5rem;padding:0.5rem;box-shadow:0 1.25rem 3.125rem rgba(74,0,40,.18);margin:0}
  .nav a{height:3rem}
  .nav-extra{display:inline-flex!important}
  .burger{display:inline-flex}
  .menu-chk:checked ~ .hdr .nav{display:flex}
  .hdr-r{margin-left:auto}
  .hdr-r>.btn{display:none}
}
@media(max-width:1100px){
  .why{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .why-rings{display:none}
  .why-center,.why-c{position:static;transform:none;width:auto}
  .why-center{grid-column:1/-1;align-items:flex-start;text-align:left;margin-bottom:0.75rem}
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promos .pr-big{grid-column:1/-1}
  .feat{grid-template-columns:1fr 1fr}
  .feat-c{grid-row:span 2;max-width:28.75rem;width:100%}
  .booker{grid-template-columns:1fr}
  .receipt{position:relative;top:auto}
  .team{grid-template-columns:1fr}
  .tm-feat{position:relative;top:auto}
  .tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cgrid,.salon-grid{grid-template-columns:1fr}
  .salon-list-wide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1000px){
  .hero{grid-template-columns:1fr}
  .hero-l{padding:1.5rem 0 0}
  .hero-r{position:relative;top:auto;height:auto;min-height:35rem}
  .hero-h{font-size:clamp(3rem,min(8.4vw,10svh),5.5rem)}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c4{grid-column:span 2}
  .r2 .tile-name{font-size:1.875rem}
  .book{grid-template-columns:1fr}
  .book-l{min-height:0}
  .det{grid-template-columns:1fr;gap:1.75rem}
  .det-art{position:relative;top:auto;aspect-ratio:16/11}
  .lists{grid-template-columns:1fr}
  .pgroup{grid-template-columns:1fr}
  .vlabel{display:none}
  .prow{grid-template-columns:1fr}
  .opts{justify-content:flex-start}
}
@media(max-width:900px){.know{grid-template-columns:1fr}.pstrips{grid-template-columns:1fr}.steps{grid-template-columns:1fr}}
@media(max-width:860px){
  :root{--gut:1rem}
  .wrap{padding:0 1rem}
  .hdr-in,.ann-in,.foot-bot{padding-left:1rem;padding-right:1rem}
  .nav{left:1rem;right:1rem}
  .sec{margin-top:6rem}
  .foot{margin-top:6rem;border-radius:2rem 2rem 0 0}
  .foot-in{grid-template-columns:1fr 1fr;padding:3.5rem 1rem 2rem}
  .shero,.thero,.phero-in,.cta-in{grid-template-columns:1fr}
  .cta{border-radius:2rem;margin-top:6rem}
  .cta-in{padding:3rem 1.5rem}
  .join-in{padding:2.5rem 1.5rem}
}

/* ---------- ТЕЛЕФОН: отдельный дизайн ---------- */
@media(max-width:767px){
  :root{--mbar-h:4.25rem}
  html{font-size:100%;scroll-padding-top:4.75rem}
  body{padding-bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom))}
  .hdr{padding:0.625rem 0;background:rgba(247,239,243,.97);backdrop-filter:none;-webkit-backdrop-filter:none}
  .logo-mark{width:2.25rem;height:2.25rem}
  .logo-t b{font-size:1.1875rem}
  .logo-t small{font-size:0.7188rem}
  .burger{display:none}
  .sp-t b{max-width:5.25rem}
  .salon-pick summary{padding:0 0.625rem 0 0.25rem;gap:0.375rem}
  .hdr-in{gap:0.625rem}
  /* меню — полноэкранный лист над нижней панелью */
  .nav{position:fixed;top:0;left:0;right:0;bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom));z-index:60;border-radius:0;box-shadow:none;background:var(--bg);padding:5.25rem 1rem 1.5rem;gap:0.5rem;overflow-y:auto;justify-content:flex-start;box-shadow:none}
  .nav a{height:3.75rem;font-size:1.25rem;font-family:var(--f-disp);padding:0 1.375rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}
  .nav a.on{background:var(--berry)}
  .nav-phone{margin-top:auto;background:var(--grad-btn)!important;color:#fff!important;justify-content:center}
  /* нижняя панель */
  .mbar{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:0.25rem;position:fixed;left:0;right:0;bottom:0;z-index:80;height:calc(var(--mbar-h) + env(safe-area-inset-bottom));padding:0.5rem 0.5rem calc(0.5rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(1rem);-webkit-backdrop-filter:blur(1rem);box-shadow:0 -1px 0 var(--line-2),0 -0.75rem 1.875rem -1rem rgba(74,0,40,.3)}
  .mb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.1875rem;border-radius:1.125rem;text-decoration:none;color:var(--muted);font-size:0.6875rem;font-weight:700;line-height:1.1;text-align:center;cursor:pointer;min-height:3rem;padding:0.125rem}
  .mb-ic{display:flex;align-items:center;justify-content:center;width:1.875rem;height:1.625rem}
  .mb-ic .ui{width:1.375rem;height:1.375rem}
  .mb-main{background:var(--grad-btn);color:#fff;box-shadow:var(--sh-dark)}
  .menu-chk:checked ~ .mbar .mb-menu{color:var(--berry);background:var(--rose)}
  .menu-chk:checked ~ .hdr .nav{display:flex}
  .menu-chk:checked ~ main,.menu-chk:checked ~ .foot{visibility:hidden}
  /* типографика и отступы */
  .wrap{padding:0 1rem}
  .sec{margin-top:4.5rem}
  .h2{font-size:clamp(2.125rem,10vw,2.75rem)}
  .lead{font-size:1rem}
  .btn{height:3.25rem}
  .sec-head{gap:1rem}
  .hint-top{max-width:none;font-size:0.875rem}
  /* hero */
  .hero{padding-top:0.5rem;gap:1rem}
  .hero-l{padding:0.75rem 0 0}
  .hero-h{font-size:clamp(2.875rem,14vw,3.75rem);margin-top:1.125rem}
  .hero-p{margin-top:1rem;font-size:0.9688rem}
  .hero-btns{margin-top:1.375rem}
  .hero-btns .btn{flex:1 1 100%}
  .hero-list{display:none}
  .hero-r{min-height:26.25rem;border-radius:1.875rem}
  .hero-ill{width:104%;top:44%}
  .hc-tr{display:none}
  .hc-tl{top:0.875rem;left:0.875rem}
  .hcard{left:0.75rem;right:0.75rem;bottom:0.75rem;padding:1rem;gap:0.875rem;flex-wrap:wrap}
  .hcard .pr{margin-left:0;text-align:left;font-size:1.5rem}
  .hcard .circ{width:3rem;height:3rem;margin-left:auto}
  .marq{margin-top:2.5rem;padding:1.125rem 0}
  .marq-g span{font-size:1.5rem}
  /* почему мы */
  .why{grid-template-columns:1fr;gap:0.75rem;margin-top:0}
  .why-center h2{font-size:2.75rem}
  .why-c{padding:1.25rem 1.375rem}
  /* карусели: услуги, цены, акции — свайп */
  .car-snap{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0.75rem;margin-left:-1rem;margin-right:-1rem;padding:0 1rem 0.5rem;scroll-padding:0 1rem;scrollbar-width:none;overscroll-behavior-x:contain}
  .car-snap::-webkit-scrollbar{display:none}
  .car-snap>*{scroll-snap-align:start}
  .tab-radio:nth-of-type(1):checked ~ .panels .bento:nth-child(1),.tab-radio:nth-of-type(2):checked ~ .panels .bento:nth-child(2),.tab-radio:nth-of-type(3):checked ~ .panels .bento:nth-child(3),.tab-radio:nth-of-type(4):checked ~ .panels .bento:nth-child(4),.tab-radio:nth-of-type(5):checked ~ .panels .bento:nth-child(5),.tab-radio:nth-of-type(6):checked ~ .panels .bento:nth-child(6){display:flex}
  .panels{margin-top:1.5rem}
  .tabs{gap:0.125rem 0.75rem}
  .tab{font-size:clamp(1.75rem,8.4vw,2.125rem)}
  .bento>.tile{flex:0 0 80%;height:23.75rem}
  .bento>.more{flex:0 0 62%;height:23.75rem}
  .bento>.c2,.bento>.c4{grid-column:auto}
  .r2 .tile-ico,.c2 .tile-ico,.tile-ico{width:9.375rem;height:9.375rem}
  .r2 .tile-name,.tile-name{font-size:1.625rem;right:1.75rem}
  .tile-hint{display:none}
  .more.c4{flex-direction:column;align-items:flex-start}
  .dark{width:auto;margin-top:4.5rem;border-radius:2rem}
  .dark-in{padding:3.5rem 1rem}
  .pgrid{margin-top:2rem;gap:0.75rem}
  .pgrid>.pcard{flex:0 0 84%;min-height:0}
  .pcard.light,.pcard.light:hover{transform:none}
  .pcard:hover{transform:none}
  .pc-price b{font-size:3.25rem}
  .also{margin-top:1.5rem;padding-top:1.5rem}
  .also .btn{width:100%}
  .promos{margin-top:1.75rem;display:flex;flex-wrap:nowrap;gap:0.75rem}
  .promos>.promo{flex:0 0 86%;min-height:0;padding:1.5rem}
  .promos-page{flex-wrap:wrap;display:grid;grid-template-columns:1fr;margin:1.75rem 0 0;padding:0;overflow:visible}
  .promos-page>.promo{flex:none}
  .pbig{font-size:5rem}
  .feat{grid-template-columns:1fr;gap:1.75rem}
  .feat-c{grid-row:auto;margin:0 auto}
  .team-track{margin-top:1.5rem;gap:0.75rem;margin-left:-1rem;margin-right:-1rem;padding:0 1rem 0.25rem;scroll-padding:0 1rem}
  .mem{width:68%}
  .mem-ph{height:18.75rem}
  .arrows{display:none}
  .book-l,.book-r{padding:1.75rem 1.25rem;border-radius:1.875rem}
  .book-l{min-height:0}
  .form h3,.done h3{font-size:1.75rem}
  .done{min-height:21.25rem}
  /* каталог и страницы */
  .shero,.thero{padding-top:1.5rem;gap:1rem}
  .shero-h{font-size:clamp(3rem,15vw,4rem);margin-top:1rem}
  .flts{margin-top:1.75rem;padding-bottom:1rem;flex-wrap:nowrap;overflow-x:auto;margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem;scrollbar-width:none}
  .flts::-webkit-scrollbar,.filters::-webkit-scrollbar{display:none}
  .filters{margin-top:1.75rem;flex-wrap:nowrap;overflow-x:auto;margin-left:-1rem;margin-right:-1rem;padding:0 1rem 0.25rem;scrollbar-width:none}
  .flt{flex:none}
  .sgrid{grid-template-columns:1fr;gap:0.75rem;margin-top:1.25rem}
  .sc-art{height:11.25rem}
  .det-art{aspect-ratio:4/3}
  .det-lead{font-size:1.0625rem;padding:1.375rem}
  .cta{margin-top:4.5rem}
  .cta-in{padding:2.25rem 1.375rem}
  .cta-b .btn{width:100%}
  .phero{width:auto;border-radius:1.875rem;margin-top:0.5rem}
  .phero-in{padding:2.75rem 1rem 1.25rem}
  .phero-h{font-size:clamp(3.25rem,17vw,4.5rem);margin-top:1rem}
  .stats{grid-template-columns:1fr;padding:0 1rem 1rem}
  .stat{padding:1rem 1.25rem}
  .stat b{font-size:1.875rem}
  .pgroup{margin-top:2.5rem}
  .g-head h2{font-size:2.125rem}
  .prow{padding:1.125rem}
  .pr-l{align-items:flex-start}
  .pr-ico{width:3.5rem;height:3.5rem;padding:0.75rem}
  .pr-name{font-size:1.375rem}
  .ot{flex:1 1 7.5rem;width:auto;height:6.5rem}
  /* итог выбора — компактная полоса над нижней панелью, не закрывает полэкрана */
  .sumbar{border-radius:1.375rem;gap:0.625rem;padding:0.5rem 0.5rem 0.5rem 1rem;margin:2rem 0 0;bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom) + 0.5rem)}
  .sum-l small{font-size:0.625rem}
  .sum-l span{white-space:normal;font-size:0.8125rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .sum-p{font-size:1.125rem}.sum-p s{font-size:0.8125rem}
  .sumbar .btn{height:2.75rem;padding:0 1rem;flex:none}
  .booker-sec{margin-top:4rem}
  .prog{display:none}
  .locs{grid-template-columns:1fr}
  .bstep{padding:1.25rem;border-radius:1.625rem}
  .bk-head{gap:0.75rem}
  .rc-in{padding:1.375rem}
  .know{margin-top:1.75rem}
  .kc{padding:1.5rem}
  .steps{margin-top:1.75rem}
  .st{min-height:0}
  .tm-grid{grid-template-columns:1fr 1fr;gap:0.625rem}
  .mc-ph{height:11.25rem}
  .f-ph{height:18.75rem}
  .tm-feat{border-radius:1.875rem}
  .join{margin-top:4.5rem;border-radius:2rem}
  .map{height:18.75rem;border-radius:1.875rem}
  .salon-grid .map-art{min-height:18.75rem;border-radius:1.875rem}
  .bk{padding:1.5rem 1.125rem;border-radius:1.875rem}
  .salon-list-wide{grid-template-columns:1fr}
  .ic-card{padding:1.125rem 1.25rem}
  .foot{margin-top:4.5rem}
  .foot-in{grid-template-columns:1fr}
  .foot-band{height:4.375rem}
  .foot li{margin-bottom:0}
  .foot li a{display:inline-flex;align-items:center;min-height:2.75rem}
  .foot li:not(:has(a)){padding:0.625rem 0}
  .foot-bot a{display:inline-flex;align-items:center;min-height:2.75rem}
  .err{padding-top:3rem}
}
@media(max-width:400px){.salon-pick summary>.ui{display:none}.logo-t small{display:none}}

/* --- уважение к «меньше движения» --- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* --- фото мастеров/салонов из админки, пустые состояния --- */
.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.f-bio{font-size:0.9375rem;line-height:1.6;color:var(--pale-2)}
.f-meta:empty{display:none}
.empty-box{margin-top:2.5rem;border-radius:2.5rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2);padding:3.5rem 2.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:1.125rem}
.empty-box h3{font-size:2.125rem}
.empty-box p{color:var(--muted);max-width:30rem;line-height:1.6}

/* --- фото салона на его странице --- */
.salon-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(16.25rem,1fr));gap:0.75rem;margin-top:2.5rem}
.salon-photos img{width:100%;height:clamp(13.75rem,28vw,23.75rem);object-fit:cover;border-radius:1.875rem}

/* --- онлайн-запись (мастер из HTMX-фрагментов) --- */
.bstep.fin{padding:1rem 1.25rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.bstep.fin .bs-h{margin:0}
.bstep.fin .bs-h>div{flex:1;min-width:0}
.bstep.fin .bs-h h3{font-size:0.9375rem;color:var(--muted);font-weight:600}
.bstep.fin .bs-h p{font-size:1rem;font-weight:700;color:var(--text);margin-top:0.125rem}
.bstep.fin .bs-n{width:2.25rem;height:2.25rem;background:var(--rose);color:var(--berry);box-shadow:none}
.bs-n .ui{width:1.125rem;height:1.125rem}
.change{min-height:2.75rem;display:inline-flex;align-items:center;padding:0 0.5rem;font-weight:700;font-size:0.875rem;white-space:nowrap}
.bstep.cur{box-shadow:inset 0 1px 0 #fff,0 0 0 0.125rem var(--berry),0 1.875rem 3.125rem -2.125rem rgba(74,0,40,.45)}
.bstep.locked .bs-h{margin:0}
a.loc{text-decoration:none}
.loc.on{background:linear-gradient(180deg,#6E1F4A,#3E0021);color:#fff;transform:translateY(-0.1875rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -0.25rem 0 rgba(0,0,0,.25),0 1.125rem 1.875rem -0.875rem rgba(74,0,40,.7)}
.loc.on .loc-meta{color:var(--pale-2)}.loc.on .loc-pin{background:rgba(255,255,255,.14);color:#fff}.loc.on .loc-radio{box-shadow:inset 0 0 0 0.375rem #fff}
.cats{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.625rem}
.cat{height:2.75rem;padding:0 1.125rem;border-radius:62.4375rem;background:var(--bg);color:var(--text);font-weight:700;font-size:0.875rem;box-shadow:inset 0 0 0 1px #E6D3DD;display:inline-flex;align-items:center;text-decoration:none}
.cat:hover{box-shadow:inset 0 0 0 1px var(--berry)}
.cat.on{background:var(--grad-berry);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0.5rem 0.875rem -0.375rem rgba(74,0,40,.6)}
.svc{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0.875rem 0;border-top:1px solid #F0E4EA;flex-wrap:wrap}
.svc-l{flex:1 1 13.75rem}
.svc-l b{display:block;font-weight:700;font-size:1rem}
.svc-l span{display:block;font-size:0.8438rem;color:var(--muted);margin-top:0.1875rem}
.svc-o{display:flex;gap:0.5rem;flex-wrap:wrap}
.so{min-width:6.5rem;min-height:3.625rem;padding:0.375rem 0.875rem;border-radius:1rem;background:linear-gradient(180deg,#fff,#F4E9EE);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0.125rem;color:var(--text);text-decoration:none;box-shadow:var(--sh-chip);transition:transform .2s}
.so span{font-size:0.75rem;color:var(--muted);font-weight:700}
.so b{font-family:var(--f-disp);font-size:1.0625rem;font-weight:600;color:var(--berry)}
.so:hover{transform:translateY(-0.125rem)}
.so.on{background:var(--grad-berry);transform:translateY(-0.125rem);box-shadow:var(--sh-chip-on)}
.so.on span{color:var(--pale-2)}.so.on b{color:#fff}
.dbadge.sm{height:1.375rem;padding:0 0.5rem;font-size:0.6875rem;margin-left:0.5rem;vertical-align:middle}
.mpicks{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:0.625rem}
.mpick{display:flex;flex-direction:column;gap:0.25rem;padding:1rem 1.125rem;min-height:4rem;border-radius:1.25rem;text-decoration:none;color:var(--text);background:linear-gradient(180deg,#fff,#F7EFF3);box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.06),0 0 0 1px var(--line-2),0 0.625rem 1.25rem -0.875rem rgba(74,0,40,.35);transition:transform .25s}
.mpick:hover{transform:translateY(-0.1875rem)}
.mpick b{font-family:var(--f-disp);font-weight:500;font-size:1.0625rem;letter-spacing:-0.02em}
.mpick span{font-size:0.8125rem;color:var(--muted)}
.mpick.on{background:var(--grad-berry);color:#fff}.mpick.on span{color:var(--pale-2)}
.bdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0.5rem}
.bd{min-height:6rem;border-radius:1.25rem;background:linear-gradient(180deg,#fff,#F4E9EE);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.1875rem;color:var(--text);text-decoration:none;box-shadow:inset 0 1px 0 #fff,inset 0 -0.1875rem 0 rgba(74,0,40,.07),0 0 0 1px #E6D3DD,0 0.5rem 0.875rem -0.625rem rgba(74,0,40,.45);transition:transform .2s}
.bd:hover{transform:translateY(-0.125rem)}
.bd small{font-size:0.6875rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.bd b{font-family:var(--f-disp);font-size:1.5rem;font-weight:600}
.bd span{font-size:0.7188rem;font-weight:700;color:var(--berry);text-align:center}
.bd.on{background:var(--grad-berry);color:#fff;transform:translateY(-0.125rem);box-shadow:var(--sh-chip-on)}
.bd.on small,.bd.on span{color:#E6C9D7}
.bd.off{background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-2);color:#8C7282}
.bd.off small,.bd.off span{color:#8C7282}
.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.5rem}
.sl{min-height:3.375rem;border-radius:1rem;font-weight:700;font-size:0.9375rem;color:var(--text);background:linear-gradient(180deg,#fff,#F4E9EE);box-shadow:var(--sh-chip);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s}
.sl:hover{transform:translateY(-0.125rem)}
.sl.on{background:var(--grad-berry);color:#fff;box-shadow:var(--sh-chip-on)}
.zform{display:flex;flex-direction:column;gap:1rem}
.zform .bs-h{margin-bottom:0.375rem}
.hint-box{margin-top:0.75rem;font-size:0.875rem;color:var(--muted);background:var(--bg);border-radius:1rem;padding:0.75rem 1rem;line-height:1.5}
.zdone{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding:2.5rem 2rem}
.zdone h3{font-size:2.125rem}
.zdone p{color:var(--muted);line-height:1.6;max-width:28.75rem}
.circ.ok{width:4.5rem;height:4.5rem;background:var(--berry);color:#fff}
.circ.ok .ui{width:1.875rem;height:1.875rem}
.zsum{width:100%;max-width:30rem;border-top:1px dashed var(--line-3)}
.zsum li{display:flex;justify-content:space-between;gap:1rem;padding:0.75rem 0;border-bottom:1px dashed var(--line-3);font-size:0.9375rem}
.zsum span{color:var(--muted)}.zsum b{text-align:right}
.rc-tr{display:flex;flex-direction:column;align-items:flex-end;gap:0.125rem}
.rc-tr s{font-family:var(--f-disp);font-size:1.125rem;opacity:.6}
.rc-save{font-size:0.8125rem;font-weight:700;color:var(--pale-3);background:rgba(255,255,255,.12);border-radius:0.75rem;padding:0.5rem 0.75rem}
@media(max-width:767px){
  .bstep.locked{display:none}
  .bstep.fin{padding:0.75rem 1rem}
  .bdays{grid-template-columns:repeat(4,minmax(0,1fr))}
  .slots{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zdone{padding:1.75rem 1.25rem}
  .receipt .rc-in{padding:1.125rem 1.25rem;gap:0.625rem}
  .rc-rows li{padding:0.5rem 0}
  .rc-total b{font-size:2rem}
}

/* --- акции: заметный блок сразу после первого экрана, коды и приглашения --- */
.promos-sec{margin-top:4.5rem}
.zcodes{border-radius:1rem;background:var(--bg);padding:0.25rem 1rem 0.75rem}
.zcodes summary{cursor:pointer;min-height:2.75rem;display:flex;align-items:center;font-weight:700;color:var(--berry);font-size:0.875rem}
.zcodes .fld{margin-top:0.625rem}
.zref{width:100%;max-width:30rem;border-radius:1.375rem;background:var(--rose);padding:1.125rem 1.25rem}
.zref b{font-family:var(--f-disp);font-weight:500;font-size:1.125rem}
.zref p{margin-top:0.5rem;font-size:0.875rem;color:var(--text-soft);word-break:break-all}
.zref code{font-weight:800;letter-spacing:.12em;color:var(--berry)}
a.pstrip{text-decoration:none;color:inherit}
.zoffer{display:flex;flex-direction:column;gap:0.25rem;border-radius:1.125rem;background:var(--rose);padding:0.875rem 1.125rem;font-size:0.875rem}
.zoffer b{font-family:var(--f-disp);font-weight:500;font-size:1.125rem;color:var(--berry)}
.zoffer s{opacity:.6;font-size:0.9375rem}
.zoffer span{color:var(--text-soft)}
.zoffer em{font-style:normal;font-weight:700;color:var(--berry)}
.zoffer small{color:var(--muted)}

/* --- запись через YCLIENTS (внутри сайта) --- */
.booker-ycl{display:block}
.ycl{display:flex;flex-direction:column;gap:0.75rem}
.ycl-frame{width:100%;height:clamp(40rem,calc(100vh - 8.75rem),62.5rem);border:0;border-radius:1.875rem;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2),0 1.875rem 3.125rem -2.125rem rgba(74,0,40,.45)}
@media(max-width:767px){.ycl-frame{height:calc(100svh - var(--mbar-h) - 5.625rem);min-height:35rem;border-radius:1.375rem}}

/* --- мессенджеры и соцсети --- */
.socs{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.375rem}
.soc{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 0.875rem;border-radius:62.4375rem;font-size:0.8125rem;font-weight:700;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);text-decoration:none}
.soc:hover{background:rgba(255,255,255,.12)}
.soc.primary{background:linear-gradient(180deg,#fff,#EEDDE6);color:var(--berry)!important;box-shadow:var(--sh-cream)}
.socs.on-dark{position:relative;margin-top:1rem}
.verify-box{display:flex;flex-direction:column;gap:1.125rem}
.verify-h{font-size:clamp(2.25rem,5vw,3.5rem)}
.form-ok{background:#E8F3EA;color:#1E5A2E;border-radius:1rem;padding:0.75rem 1rem;font-size:0.875rem;font-weight:600}

/* --- чат на сайте --- */
.chat-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:70;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;min-width:3.25rem;min-height:3.25rem;padding:0 1.25rem;border:0;border-radius:62.4375rem;background:var(--grad-btn);color:#fff;font:700 0.9375rem var(--f-text);cursor:pointer;box-shadow:var(--sh-dark);transition:transform .3s var(--ease),opacity .3s var(--ease),box-shadow .25s}
.chat-fab:hover{transform:translateY(-0.125rem);box-shadow:var(--sh-dark-h)}
.chat-fab:active{transform:translateY(1px);box-shadow:var(--sh-press)}
/* при прокрутке вниз кнопка уезжает и не закрывает контент; при прокрутке вверх — возвращается (ui.js) */
.chat-fab.fab-off{transform:translateY(calc(100% + 1.5rem));opacity:0;pointer-events:none}
@media(max-width:1279px){
  .chat-fab{padding:0;width:3.25rem}
  .chat-fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body:has(#sumbar) .chat-fab{bottom:6.5rem}
}
.chat-fab svg{width:1.375rem;height:1.375rem}
.chat-panel:empty{display:none}
.chat-panel{position:fixed;right:1.25rem;bottom:5.25rem;z-index:90;width:min(24rem,calc(100vw - 2rem))}
.chat{display:flex;flex-direction:column;background:#fff;border-radius:1.5rem;box-shadow:inset 0 0 0 1px var(--line-2),0 2rem 3.5rem -1.5rem rgba(74,0,40,.55);overflow:hidden}
.chat-h{display:flex;align-items:center;justify-content:space-between;padding:0.875rem 1.125rem;background:var(--berry);color:#fff}
.chat-h b{font-family:var(--f-disp);font-weight:500;font-size:1.125rem;display:block}
.chat-h small{opacity:.8;font-size:0.8125rem}
.chat-x{width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:1.5rem;cursor:pointer}
.chat-log{display:flex;flex-direction:column;gap:0.5rem;padding:1rem;height:min(22rem,50vh);overflow-y:auto;background:var(--bg)}
.cm{max-width:85%;border-radius:1.125rem;padding:0.625rem 0.875rem;font-size:0.9375rem;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.cm p{margin:0}
.cm time{display:block;margin-top:0.25rem;font-size:0.6875rem;opacity:.6}
.cm-bot{align-self:flex-start;background:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}
.cm-in{align-self:flex-end;background:var(--berry);color:#fff}
.chat-quick{display:flex;flex-wrap:wrap;gap:0.375rem;padding:0.625rem 1rem 0}
.chat-quick button{min-height:2.5rem;padding:0 0.875rem;border:0;border-radius:62.4375rem;background:var(--rose);color:var(--berry);font:700 0.8125rem var(--f-text);cursor:pointer}
.chat-form{display:flex;gap:0.5rem;padding:0.75rem 1rem;align-items:flex-end}
.chat-form textarea{flex:1;min-height:3rem;max-height:7rem;border:0;border-radius:1rem;background:var(--bg);box-shadow:inset 0 0 0 1px #E6D3DD;padding:0.75rem 1rem;font:inherit;font-size:1rem;resize:none}
.chat-form .btn{min-height:3rem;padding:0 1rem}
.chat-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.chat-ms{padding:0 1rem 0.875rem;font-size:0.8125rem;color:var(--text-soft)}
.chat-ms a{margin-left:0.5rem;font-weight:700;color:var(--berry)}
.chat-page .chat{margin-top:1rem}
.chat-page .chat-log{height:28rem}
@media(max-width:767px){
  .chat-fab{display:none}
  .chat-panel{left:0.5rem;right:0.5rem;width:auto;bottom:calc(var(--mbar-h) + 0.75rem + env(safe-area-inset-bottom))}
  .chat-log{height:min(20rem,45svh)}
}

/* --- гео: карта, ближайший салон, отзывы --- */
.map-art{position:relative}
.ymap{position:absolute;inset:0;opacity:0;transition:opacity .3s}
.ymap.ready{opacity:1}
.map-btn{z-index:2}
.nearest{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}
.nearest-in{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:1.25rem 1.5rem;border-radius:1.5rem;background:var(--rose)}
.nearest-in>div:first-child{flex:1 1 16rem;display:flex;flex-direction:column;gap:.25rem}
.nearest-in b{font-family:var(--f-disp);font-weight:500;font-size:1.25rem;color:var(--berry)}
.nearest-in span{color:var(--text-soft);font-size:.9375rem}
.nearest-form{display:flex;gap:.5rem;flex:1 1 20rem}
.nearest-form input{flex:1;min-height:3rem;border:0;border-radius:62.4375rem;padding:0 1.25rem;background:#fff;font:inherit;font-size:1rem;box-shadow:inset 0 0 0 1px #E6D3DD}
.near-card{display:flex;align-items:center;gap:1rem}
.near-card>div{flex:1;min-width:0}
.near-act{display:flex;gap:.5rem;flex-wrap:wrap}
.km{font-style:normal;font-size:.8125rem;font-weight:800;color:var(--berry);background:var(--rose);border-radius:62.4375rem;padding:.125rem .5rem;margin-left:.25rem}
.reviews{margin-top:1.5rem}
.reviews iframe{width:100%;height:36rem;border:0;border-radius:1.5rem;box-shadow:inset 0 0 0 1px var(--line-2)}
.navi-link{display:none}
@media(max-width:767px){.navi-link{display:inline-flex}.near-card{flex-wrap:wrap}.nearest-form{flex-wrap:wrap}}

/* ==========================================================================
   ДВИЖЕНИЕ. Анимируем только transform / opacity (translate — отдельным свойством,
   чтобы не конфликтовать с hover-сдвигами карточек). Всё отключается при
   prefers-reduced-motion (см. правило выше и ui.js).
   ========================================================================== */
/* появление при прокрутке: прячем только то, что ui.js пометил .rv (и только при html.js) */
.js .rv{opacity:0;translate:0 1.75rem;transition:opacity .45s var(--ease),translate .45s var(--ease);transition-delay:var(--rv-d,0ms)}
.js .rv.in{opacity:1;translate:none}

/* нажатие на «объёмные» элементы выбора — лёгкое вдавливание */
.btn{transition:background .25s,color .25s,transform .2s var(--ease),box-shadow .25s var(--ease)}
.circ{transition:background .25s,color .25s,transform .3s var(--ease),box-shadow .25s}
.circ:active,.flt:active,.cat:active,.so:active,.bd:active,.sl:active,.mpick:active,.loc:active,.ot:active,.dur:active,.chat-quick button:active,.mb:active,.opt-l:active span{transform:translateY(1px) scale(.98)}
.flt,.cat,.dur,.chat-quick button,.mb{transition:background .2s,color .2s,box-shadow .2s,transform .2s var(--ease)}
.chat-quick button:hover{background:var(--pale-2)}
.nav a{transition:background .2s,color .2s,transform .2s var(--ease)}
.nav a:active{transform:scale(.97)}
.crow,.ic-card,.pstrip,.kc,.st,.lbox{transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .25s}
a.pstrip:hover,a.ic-card:hover{transform:translateY(-0.1875rem)}
.crow:hover{transform:translateX(0.25rem)}
.mem-ph{transition:transform .5s var(--ease)}
@media(hover:hover){.mem:hover .mem-ph{transform:translateY(-0.25rem)}}
.srow .circ{transition:background .25s,color .25s,transform .3s var(--ease)}
.srow:hover .circ{transform:rotate(45deg)}
.chat-x{transition:background .2s,transform .2s var(--ease)}
.chat-x:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}
/* фокус с клавиатуры — заметный, со скруглением по форме элемента */
.btn:focus-visible,.circ:focus-visible,.flt:focus-visible,.cat:focus-visible,.chat-fab:focus-visible,.nav a:focus-visible,.mb:focus-visible{outline:0.1875rem solid var(--berry-hi);outline-offset:0.1875rem}
.dark .btn:focus-visible,.cta .btn:focus-visible,.book-l a:focus-visible,.foot a:focus-visible,.ann a:focus-visible,.chat-h .chat-x:focus-visible{outline-color:#fff}

/* выбор салона: раскрытие списка */
@keyframes drop-in{from{opacity:0;transform:translateY(-0.5rem) scale(.98)}to{opacity:1;transform:none}}
@keyframes drop-out{to{opacity:0;transform:translateY(-0.375rem) scale(.98)}}
.salon-pick[open] .sp-list{animation:drop-in .22s var(--ease);transform-origin:top right}
.salon-pick.closing .sp-list{animation:drop-out .16s ease-in forwards}
.salon-pick summary{transition:box-shadow .2s}
.salon-pick summary:hover{box-shadow:inset 0 0 0 1px var(--line-3)}
.sp-list a{transition:background .15s}
/* аккордеоны <details> (коды в записи) */
.zcodes[open]>summary~*{animation:drop-in .25s var(--ease)}
.zcodes summary::after{content:'';width:0.5rem;height:0.5rem;margin-left:0.625rem;border:solid currentColor;border-width:0 0.125rem 0.125rem 0;transform:translateY(-0.125rem) rotate(45deg);transition:transform .25s var(--ease)}
.zcodes[open] summary::after{transform:translateY(0.125rem) rotate(-135deg)}
.zcodes summary::-webkit-details-marker{display:none}
.zcodes summary{list-style:none}

/* бургер-меню (планшет) и полноэкранное меню (телефон) */
@keyframes menu-in{from{opacity:0;transform:translateY(-0.75rem)}to{opacity:1;transform:none}}
@keyframes sheet-in{from{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}
.menu-chk:checked ~ .hdr .nav{animation:menu-in .25s var(--ease)}
.burger .ui{transition:transform .3s var(--ease)}
.menu-chk:checked ~ .hdr .burger .ui{transform:rotate(90deg)}
@media(max-width:767px){
  .menu-chk:checked ~ .hdr .nav{animation:sheet-in .3s var(--ease)}
  .menu-chk:checked ~ .hdr .nav a{animation:sheet-in .35s var(--ease) both}
  .menu-chk:checked ~ .hdr .nav a:nth-child(2){animation-delay:30ms}
  .menu-chk:checked ~ .hdr .nav a:nth-child(3){animation-delay:60ms}
  .menu-chk:checked ~ .hdr .nav a:nth-child(4){animation-delay:90ms}
  .menu-chk:checked ~ .hdr .nav a:nth-child(5){animation-delay:120ms}
  .menu-chk:checked ~ .hdr .nav a:nth-child(n+6){animation-delay:150ms}
}

/* чат: панель «вырастает» из угла; закрытие — через hx-swap с задержкой (.htmx-swapping) */
@keyframes chat-in{from{opacity:0;transform:translateY(1rem) scale(.96)}to{opacity:1;transform:none}}
.chat-panel>.chat{animation:chat-in .3s var(--ease);transform-origin:bottom right;transition:opacity .18s ease-in,transform .18s ease-in}
.chat-panel.htmx-swapping>.chat{opacity:0;transform:translateY(0.75rem) scale(.97)}
@keyframes msg-in{from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:none}}
.cm.msg-new{animation:msg-in .3s var(--ease)}
.cm-in.msg-new{transform-origin:bottom right}

/* HTMX-обновления: шаги записи, прайс, выбор, мастер — мягко проявляются */
@keyframes swap-in{from{opacity:0;transform:translateY(0.75rem)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.swap-in{animation:swap-in .35s var(--ease)}
.swap-fade{animation:fade-in .3s ease-out}
[hx-get].htmx-request,[hx-post].htmx-request{opacity:.65;transition:opacity .2s}

/* декоративные циклы — мягче на маленьких экранах не нужны: остаются, но выключаются при reduce */
@media(prefers-reduced-motion:reduce){
  .js .rv{opacity:1;translate:none}
  .chat-fab.fab-off{transform:none;opacity:1;pointer-events:auto}
}

/* --- читаемость текста на фирменном узоре ---
   Узор полосатый: тонкий текст прямо на нём «рябит». Такому тексту даём мягкий ореол цвета поля —
   полосы под буквами уходят, узор вокруг остаётся. Текст внутри собственных подложек
   (карточки, кнопки, «таблетки») не трогаем: у него свой фон. */
:root{--halo-dark:0 0 .75rem rgba(52,0,26,.9),0 0 .25rem rgba(52,0,26,.85),0 .0625rem .125rem rgba(30,0,15,.6);--halo-light:0 0 .75rem rgba(255,247,251,.9),0 0 .25rem rgba(255,247,251,.85)}
:where(:has(> .patbg [fill="url(#pd)"])) :is(h1,h2,h3,h4,p,li,small,strong,em,time,dt,dd,.eyebrow,.it,.pbig,.ptxt):not(:where(.btn,.btn *,.pcard *,.card *,[class*="-card"] *,.dur,.chip *,.dbadge,.ptag,.tag,label)),
:where(:has(> .patbg [fill="url(#pd)"])) > :is(span,b):not(:where(.btn,.sc-price,.mem-tag,.chip,.tag,.ptag,.badge,.circ,.ico-wrap)){
  text-shadow:var(--halo-dark);
}
:where(:has(> .patbg :is([fill="url(#pl)"],[fill="url(#pm)"],[fill="url(#pw)"]))) :is(h1,h2,h3,h4,p,li,small,strong,em,time,dt,dd,.eyebrow,.it):not(:where(.btn,.btn *,.pcard *,.card *,[class*="-card"] *,.dur,.chip *,.dbadge,.ptag,.tag,label)){
  text-shadow:var(--halo-light);
}
/* полупрозрачные «таблетки» поверх узора — с размытием подложки, чтобы полосы не проступали сквозь текст */
:has(> .patbg) :is(.chip,.tag,.ptag,.badge,.mem-tag,.sc-price,.ann b){
  -webkit-backdrop-filter:blur(.375rem);backdrop-filter:blur(.375rem);
}
