/* Mobile owner: styles/v7/mobile-core.css */
:root{
  --bg:#0A0A0A; --card:#151310; --card2:#1b1613; --line:#2B2722;
  --text:#F0EDE8; --muted:#B0ABA2;
  --accent:#CF8A52; --accent-text:#E4A971; --accent-dim:#8D5E38;
  --panel:var(--card); --panel2:var(--card2); --gold:var(--accent); --gold-dim:var(--accent-dim);
  --r:22px;
  --r-sm:8px;
  --r-md:14px;
  --r-lg:28px;
  --r-pill:999px;
  --r-focus:var(--r-sm);
  --r-card:var(--r);
  --t-micro:.18s;
  --t-base:.2s;
  --t-reveal:.28s;
  --t-ambient:9s;
  --border-emphasis:1px solid var(--accent-dim);
  --surface-accent:linear-gradient(155deg,rgba(207,138,82,.07),var(--panel) 62%);
  --surface-medallion:linear-gradient(155deg,rgba(207,138,82,.10),var(--card2) 70%);
  --hdr-h:60px;
  --gutter:clamp(20px,3vw,56px);
  --wrap-max:1440px;
  --measure:min(72ch,720px);
  --rhythm-section:24px;
  --rhythm-cluster:20px;
  --rhythm-inline:14px;
  --rhythm-cluster-grid:14px;
  --rhythm-heading-body:16px;
  --rhythm-proof:14px;
  --rhythm-action:24px;
  /* --rhythm-card-row/-action закреплены контрактом ритма карточек. */
  --rhythm-card-row:10px;
  --rhythm-card-action:4px;
  --rhythm-section-wide:clamp(44px,5vw,80px);
  --rhythm-module-footer:48px;
  /* Шаг M09 и --card-pad* объявлены в styles/v7/shell.css. */
  --grid-gap:var(--rhythm-cluster-grid);
  --sp-section:var(--rhythm-section);
  --sp-block:var(--rhythm-cluster);
  --sp-eyebrow:var(--rhythm-inline);
  --sp-headlead:var(--rhythm-heading-body);
  --fs-h1:clamp(29px,4.5vw,38px);
  --fs-h2:clamp(24px,3vw,30px);
  --fs-h3:clamp(19px,2vw,22px);
  --fs-lead:clamp(15px,1.6vw,17px);
  --fs-body:16px;
  --fs-body-sm:14.5px;
  --fs-meta:12.5px;
  --fs-eyebrow:11.5px;
  --row-min-h:68px;
  --row-pad-y:6px;
  --row-pad-y-card:10px;
  --row-pad-open:16px;
}
@media(max-width:359px){:root{--gutter:16px}}
@media(min-width:768px) and (max-width:1023px){
  /* Планшет: 48; карточки 20 — дефолт shell. */
  :root{--rhythm-section:48px;--rhythm-cluster-grid:20px}
}
*{margin:0;padding:0;box-sizing:border-box}
*{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:'Manrope','Manrope Fallback',system-ui,sans-serif;font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;
  min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
main,footer{overflow-x:clip}
.wrap{width:100%;max-width:calc(var(--wrap-max) + var(--gutter)*2);
      margin-inline:auto;padding-inline:var(--gutter)}
img,svg{max-width:100%;display:block}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}
.g12>.c5,.g12>.c7{grid-column:span 12}
.g12>.c12{grid-column:1 / -1}
.g12--top{align-items:start}
main>section+section,main>section+div,main>div+section,main>section+article,main>details+section,main>*+details.faq{margin-top:var(--sp-section)}
.crumb{margin-bottom:var(--sp-eyebrow)}
h1+.lead,h2+.lead{margin-top:var(--sp-headlead)}
.hero-trust{margin-top:var(--rhythm-proof)}
.cta-row{margin-top:var(--rhythm-action)}
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
h1,h2{font-family:'Manrope',sans-serif;font-weight:500}
h1{font-size:var(--fs-h1);line-height:1.16;letter-spacing:.005em}
h2{font-size:var(--fs-h2);line-height:1.22}
h3{font-family:'Manrope',sans-serif;font-weight:400;font-size:var(--fs-h3);line-height:1.3}
.lead{color:var(--muted);max-width:var(--measure);font-size:var(--fs-lead);line-height:1.5;margin-top:16px}
.lead b{color:var(--text);font-weight:600}
.g12>.c7 p,main>section>p,main>section>div>p{max-width:var(--measure)}
main.wrap > section > p,main.wrap > section > .panel > p{max-width:720px}
.crumb{font-size:var(--fs-meta);letter-spacing:.28em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px;font-weight:600}
/* wave6: role --card-pad-lg instead of clamp() */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--card-pad-lg)}
.bridge{margin-top:var(--rhythm-transition);padding:var(--card-pad) 0;border-block:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:var(--rhythm-cluster);flex-wrap:wrap;
  text-align:left;color:var(--muted);font-size:var(--fs-body-sm);line-height:1.5}
.bridge>span:first-child{flex:1 1 260px}
.bridge a{color:var(--accent-text);text-decoration:none;white-space:normal;
  display:inline-flex;align-items:center;min-height:24px;padding:0;margin:0;position:relative;font-weight:600}
.bridge a::before{content:"";position:absolute;inset:-10px 0}
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-meta);color:var(--muted);padding-top:20px}
.crumbs a{display:inline-flex;align-items:center;min-height:24px;margin-block:-3px;color:var(--muted);text-decoration:none}
@media(max-width:760px){.crumbs{display:none}}
.bc-sep{color:#847f76}
@media(hover:hover) and (pointer:fine){
  .crumbs a:hover{color:var(--accent-text)}
  .rel-card:hover{border-color:var(--gold-dim)}
  .x:hover{color:var(--text)}
}
.residency{margin-top:var(--rhythm-section-dense);padding:clamp(28px,4vw,44px);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--panel)}
.residency p{color:var(--muted);font-size:var(--fs-body-sm);max-width:640px;margin-top:10px}
.residency .res-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px;align-items:center}
.related{margin-top:var(--rhythm-transition)}
.related+section{margin-top:var(--rhythm-transition)}
.related h2{margin-bottom:var(--related-head-gap)}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.rel-grid{grid-template-columns:1fr}}
.rel-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--v7-surface-radius);padding:var(--card-pad);text-decoration:none;color:var(--text);display:block;transition:border-color var(--t-base)}
.rel-cat{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:10px;display:block}
.rel-card h3,.rel-card h2{font-size:15.5px;font-weight:400;line-height:1.4}
.related-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:var(--related-head-gap)}
.related-head h2{margin-bottom:0}
@media(min-width:761px){.related-head .hs-nav{display:none}}
.rel-grid.h-swipe .rel-card{flex:0 0 100%;max-width:none}
@media(min-width:761px){
  .rel-grid.h-swipe{display:grid}
  .rel-card--clone{display:none}
}
.faq{max-width:var(--faq-max-width,900px)}
.faq h2{margin-bottom:24px}
.faq--split{max-width:none}
details{border-bottom:1px solid var(--line);padding:0 4px}
summary{cursor:pointer;font-size:16.5px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:var(--row-min-h);padding-block:var(--row-pad-y)}
summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
summary::-webkit-details-marker{display:none}
summary::after{content:"›";font-family:'Manrope';font-size:22px;color:var(--accent-text);flex-shrink:0;transition:transform var(--t-base) ease}
details[open] summary::after{transform:rotate(90deg)}
main details p{color:var(--muted);font-size:var(--fs-body-sm);margin-top:10px;margin-bottom:var(--row-pad-open);max-width:720px}
p a{color:var(--accent-text);text-decoration:underline;
  text-decoration-color:var(--gold-dim);text-decoration-thickness:1px;text-underline-offset:3px}
.ovl{position:fixed;inset:0;background:rgba(9,6,4,.72);backdrop-filter:blur(6px);display:none;
     align-items:center;justify-content:center;z-index:100;padding:20px}
.ovl.open{display:flex}
.modal{background:var(--panel2);border:1px solid var(--line);border-radius:24px;width:100%;max-width:420px;padding:30px;position:relative;
  max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
.modal h3{margin-bottom:4px}
.modal .sub{color:var(--muted);font-size:13.5px;margin-bottom:20px}
.modal .sub b{color:var(--accent-text);font-weight:500}
.fld{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);
     padding:13px 15px;font-size:var(--fs-body-sm);font-family:inherit;margin-bottom:11px}
.fld:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
textarea.fld{resize:vertical;min-height:88px}
.send{width:100%;margin-top:6px;padding:14px}
.x{position:absolute;top:16px;right:18px;background:none;border:none;color:var(--muted);font-size:26px;cursor:pointer;line-height:1;
  min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}
.ok{text-align:center;padding:26px 0 10px;display:none}
.ok .ic{font-size:40px;color:var(--gold)}
.cp-sheet{background:var(--panel2);border-bottom:1px solid var(--line);border-radius:0 0 24px 24px;
  max-width:480px;margin:0 auto;padding:22px 22px calc(22px + env(safe-area-inset-bottom));
  box-shadow:0 24px 50px rgba(0,0,0,.5);position:relative;max-height:100%;overflow-y:auto;overscroll-behavior:contain}
.cp-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.cp-sheet-head h3{margin:0}
.cp-sheet .x{position:static}
.cp-legal-overlay{display:flex;align-items:flex-end;padding:0 16px}
.cp-legal-sheet{width:100%;max-width:760px;margin:0 auto;border-top:1px solid var(--line);border-bottom:0;
  border-radius:24px 24px 0 0;padding-bottom:calc(26px + env(safe-area-inset-bottom))}
.cp-legal-grid{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr);gap:28px}
.cp-legal-data{color:var(--muted);font-size:var(--fs-meta);line-height:1.7}
.cp-legal-data span{display:block}
.cp-legal-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.cp-legal-links a{display:flex;align-items:center;min-height:44px;color:var(--muted);font-size:var(--fs-meta);text-decoration:none}
@media(hover:hover) and (pointer:fine){.cp-legal-links a:hover{color:var(--text)}}
@media(max-width:640px){
  .cp-legal-overlay{padding:0}
  .cp-legal-sheet{border-radius:20px 20px 0 0}
  .cp-legal-grid{grid-template-columns:1fr;gap:14px}
  .cp-legal-links{grid-template-columns:1fr}
}
.cp-sub{color:var(--muted);font-size:13.5px;margin:0 0 16px}
.cp-sheet-head:has(+ .cp-sub){margin-bottom:8px}
@media(prefers-reduced-motion:no-preference){
  .cp-sheet{animation:cpDrop var(--t-reveal) ease}
  .cp-legal-overlay.open .cp-legal-sheet{animation:cpRise var(--t-reveal) ease}
}
@keyframes cpDrop{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes cpRise{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
.cp-channels{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-ch{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  color:var(--text);text-decoration:none;cursor:pointer;font:inherit;font-size:var(--fs-meta)}
.cp-ch small{color:var(--muted);font-size:var(--fs-eyebrow);font-weight:400}
.cp-ic{width:34px;height:34px;border-radius:50%;background:rgba(207,138,82,.14);color:var(--accent-text);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
@media(hover:hover) and (pointer:fine){.cp-ch:hover{border-color:var(--accent-dim)}}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-meta);color:var(--muted);
  line-height:1.5;margin-bottom:11px;cursor:pointer}
.consent input{margin-top:3px;flex-shrink:0;accent-color:var(--gold)}
.consent a{color:var(--accent-text);text-decoration:none;border-bottom:1px solid var(--gold-dim)}
@media print{header,footer{display:none}}
.subbrand-mark{margin-bottom:12px}
.subbrand-mark .sm-name{display:block;font-size:19px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent-text)}
.subbrand-mark .sm-desc{display:block;font-size:var(--fs-meta);font-weight:400;color:var(--muted);
  margin-top:3px;text-transform:none;letter-spacing:normal}
.hb-ring{position:relative;width:var(--hb-size,38px);height:var(--hb-size,38px);flex-shrink:0}
.hb-ring::before{content:"";position:absolute;inset:-4px;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(207,138,82,0) 0deg,rgba(207,138,82,.6) 40deg,rgba(207,138,82,0) 85deg);
  animation:hbHalo var(--t-ambient) linear infinite}
@keyframes hbHalo{to{transform:rotate(360deg)}}
.hb-badge{position:relative;width:100%;height:100%;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(207,138,82,.28);
  background:var(--surface-medallion)}
.hb-badge svg{width:16px;height:16px;color:var(--accent-text);flex-shrink:0;transition:color var(--t-reveal)}
@media(hover:hover) and (pointer:fine){
  .hb-item:hover .hb-badge{border-color:var(--accent);box-shadow:0 0 16px rgba(207,138,82,.4)}
  .hb-item:hover svg{color:#F0C896}
}
@media(prefers-reduced-motion:reduce){
  .hb-ring::before{animation:none;opacity:.4}
}
.hb-item{isolation:isolate}
.h-swipe{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.h-swipe::-webkit-scrollbar{display:none}
.h-swipe>*{scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 auto}
.hs-nav{display:flex;gap:8px;flex-shrink:0}
.hs-arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);
  color:var(--text);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.hs-arrow::before{content:'‹'}
.hs-arrow.next::before{content:'›'}
.hs-arrow:disabled{opacity:.35;cursor:default}
.hs-arrow:focus-visible{outline:2px solid var(--text);outline-offset:2px}
@media(hover:hover) and (pointer:fine){.hs-arrow:not(:disabled):hover{border-color:var(--accent-dim)}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
}

/* Mobile owner: styles/v7/mobile-massage-core.css */
/* Explicit V7 mobile owner for the massage catalogue family. 17.09.2026:
   общие примитивы читаются из mobile-core.css (входит в mobileSources
   семейства massage), здесь — только правила, которых в общем слое нет. */
@media (width < 1024px) {

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bridge-links{display:flex;align-items:center;gap:0 18px;flex-wrap:wrap}
.price-nowrap{white-space:nowrap;font-variant-numeric:tabular-nums}
.col-flow{display:block}
.faq--wide{max-width:calc(var(--wrap-max) + var(--gutter)*2)}
.pdisc-body{padding:0 var(--card-pad) var(--card-pad)}
.pdisc-static[open]>.pdisc-body{padding-top:12px;border-top:1px solid var(--line)}
.fld-invalid{border-color:#e37b6b}
.article-cta .crumb{margin-bottom:10px}
.article-cta-actions .btn{justify-content:center;text-align:center}
@media(min-width:640px){
  .article-cta-actions .btn.g{width:100%}
}
.tw-action .btn{display:flex;width:100%;margin:0;padding:14px 18px;font-size:13.5px}
@media(max-width:400px){
  .tw-action .btn{font-size:13px;padding:14px 12px}
}
@media(max-width:1023px){
  .eco-trust--split .tw-action .btn{width:100%;margin:0;padding:13px 20px;border:var(--border-emphasis);border-radius:var(--r-pill);background:transparent}
}
}

/* Mobile owner: styles/v7/mobile-massage.css */
/* Explicit V7 mobile owner for the massage catalogue family. */
@media (width < 1024px) {
  .hero{padding:24px 0 0}
  .hero .lead{font-size:15px;font-weight:600;color:var(--text)}
  .dv2-massage-index .hero{padding-top:8px}
  /* Подзаголовок семантического пакета: агрегаты по мастерам. */
  .dv2-massage-index .massage-hero-sub{margin-top:10px;color:var(--muted);font-size:14.5px;line-height:21px;text-wrap:pretty}
  /* H1 каталога на 320–430 px: формула «строка минус поле ÷ 11.6» плюс
     balance/pretty, иначе «Мастера тантрического» не влезает целиком. */
  .dv2-massage-index .hero h1{font-size:min(var(--fs-h1),calc(8.5vw - 3.4px));text-wrap:pretty;text-wrap:balance;overflow-wrap:break-word}
  /* Мобильный владелец блока «Виды массажа»: нативный выбор вида во всю ширину
     колонки, без горизонтальной прокрутки; ниже — контекстная ссылка на
     описание выбранного вида. */
  /* «Вид программы» — первая группа управления каталога, а не блок героя
     (Д5, 17.09.2026): 24px от героя даёт .catalog-controls, до следующей
     группы управления — 14px, прежний margin-top в герое не возвращается. */
  .dv2-massage-index .massage-kinds{display:grid;gap:10px;margin:0 0 var(--rhythm-cluster-grid);min-width:0}
  .dv2-massage-index .massage-kinds__title{color:var(--muted);font-size:12px;line-height:16px;letter-spacing:.1em;text-transform:uppercase}
  .dv2-massage-index .massage-kinds__select{width:100%;min-width:0;height:48px;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);color:var(--text);font:inherit;font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .dv2-massage-index .massage-kinds__select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .dv2-massage-index .massage-kinds__about{color:var(--muted);font-size:14px;line-height:20px}
  .dv2-massage-index .massage-kinds__about a{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}
  .dv2-massage-index>.sigma-master-grid{margin-top:var(--sp-section)}
  .mm-info-intro{margin-top:12px;color:var(--muted);font-size:14px;line-height:22px}

  @media(max-width:767px){body.pg-massage .subbrand-mark .sm-desc{display:none}}
  body.pg-massage main .grid{margin-top:var(--sp-block)}
.mm-copy-note{margin-top:10px;color:var(--muted);font-size:14px;line-height:1.65}
  .mm-info-head{margin-bottom:var(--sp-block)}
  .mm-acc{border:1px solid var(--line);border-radius:var(--r);padding:0 20px;background:var(--panel)}
  .mm-acc details{padding:0}
  .mm-acc details+details{border-top:1px solid var(--line)}
  .mm-strip{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
  .mm-strip-i{padding:14px 16px;font-size:14px;font-weight:500;text-align:center}
  .mm-strip-i+.mm-strip-i{border-top:1px solid var(--line)}
  @media(min-width:900px){
    .mm-strip{display:flex}
    .mm-strip-i{flex:1 1 0;min-width:0}
    .mm-strip-i+.mm-strip-i{border-top:none;border-left:1px solid var(--line)}
  }
  .mm-unsure{margin-top:var(--sp-section);padding:clamp(20px,3vw,28px);border-radius:var(--r);border:1px solid var(--line);background:var(--panel);max-width:720px;
    display:flex;flex-direction:column;gap:6px;align-items:flex-start}
  .mm-unsure h2{font-size:18px;font-weight:500}
  .mm-unsure p{color:var(--muted);font-size:14.5px;max-width:560px}
  .mm-unsure .btn{margin-top:10px}
  .mm-unsure--pro{border:var(--border-emphasis);margin-top:var(--rhythm-section-break)}
  /* Д3 (17.09.2026): хвост клиентского сценария — не самостоятельная полоса, а
     действие, привязанное к своему блоку: полос нет, ссылка внутри сохраняет
     44px цели и не выезжает отрицательными полями за край блока. */
  #massageBottomB2C{border-block:0;padding-block:0}
  #massageBottomB2C a{margin-block:0;padding-block:0;min-height:44px}

.service-hero-note{max-width:68ch;margin-top:16px;color:var(--muted);font-size:14.5px;line-height:1.7}
  .master-grid-help{margin-top:14px;margin-bottom:var(--sp-section);max-width:68ch;color:var(--muted);font-size:14px;line-height:20px}
  .master-grid-help a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
  .service-depth-intro{max-width:68ch;color:var(--muted);font-size:14.5px;line-height:1.7}
  .service-depth-grid{display:grid;gap:12px;margin-top:22px}
  .service-depth details{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
  .service-depth summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:12px 18px;-webkit-tap-highlight-color:transparent}
  .service-depth summary::-webkit-details-marker{display:none}
  .service-depth summary::after{content:'+';flex:0 0 auto;color:var(--gold);font-size:22px;font-weight:400;line-height:1}
  .service-depth details[open] summary::after{content:'−'}
  .service-depth h3{margin:0;font-size:16px;line-height:1.4;font-weight:600;color:var(--text)}
  .service-depth-body{padding:0 18px 18px;color:var(--muted);font-size:14px;line-height:1.72}
  .service-depth details:not([open])>.service-depth-body{display:none}
  .service-depth-body p+p{margin-top:12px}
  .catalog-controls{margin-top:var(--sp-section)}
  .catalog-controls__top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,420px)}
  .catalog-filter{min-width:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
  .catalog-filter>summary{min-height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-weight:600}
  .catalog-filter>summary::-webkit-details-marker{display:none}.catalog-filter>summary span{color:var(--accent-text);font-size:13px}
  .catalog-filter__body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:4px 16px 16px;border-top:1px solid var(--line)}
  .catalog-filter__body label,.cf-aud-title{display:grid;gap:6px;color:var(--muted);font-size:12px}.catalog-filter__body select{min-height:44px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:0 10px;font:inherit}
  /* Тот же дефект, что и на десктопе: системная рамка фокуса поверх нашей
     границы. Одна рамка в языке сайта плюс подсветка границы. */
  .catalog-filter__body select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
  .catalog-filter__body .catalog-filter__check input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  /* A-021: select поднят до 44px; цель чекбокса — обёртка label (44px),
     глиф остаётся нативным 13×13 (axe target-size, WCAG 2.5.8). */
  .catalog-filter__body .catalog-filter__check{display:flex;align-items:center;gap:8px;min-height:44px}.catalog-filter__check input{accent-color:var(--gold)}
  .catalog-filter__body .btn{align-self:end;justify-content:center}
  /* «Для кого»: та же панель, три кнопки в строку; цель не ниже 44 px, как у select. */
  .cf-aud{display:grid;grid-column:1/-1;gap:6px}
    .cf-aud-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .cf-aud-btn.is-active{border-color:var(--gold);color:var(--accent-text)}
  .catalog-filter [data-catalog-apply]:not([hidden]){display:flex;width:100%;justify-content:center;align-self:end}
  .catalog-filter__body [data-catalog-apply][hidden]{display:none}.catalog-filter__body .catalog-filter__map{display:none}.catalog-map-button{min-height:50px;height:50px;width:100%;padding-block:0;justify-content:center;white-space:nowrap}
  @media(min-width:768px){
    .master-grid-help{margin-top:var(--rhythm-cluster)}
    .catalog-filter{position:relative}
    .catalog-filter__body{position:absolute;top:calc(100% + 8px);left:-1px;z-index:20;box-sizing:border-box;width:min(620px,calc(100vw - 40px));grid-template-columns:repeat(3,minmax(0,1fr));padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
    .catalog-filter__body select,.catalog-filter__body .catalog-filter__check{box-sizing:border-box;height:44px;min-height:44px;align-self:end}
    /* Кнопки панели держат общий 48-й ряд вместе с select: это не кнопка
       действия страницы, а компактная сетка фильтра. */
    .catalog-filter__body .btn.o{box-sizing:border-box;height:44px;align-self:end}
  }
  .catalog-controls__result{margin:0;color:var(--muted);font-size:13px}.catalog-controls__result:not(.sr-only){margin-top:12px}.catalog-map{width:min(680px,calc(100vw - 40px));max-height:min(720px,calc(var(--catalog-vvh,100dvh) - 40px));margin:auto;padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);color:var(--text);overflow:auto;overscroll-behavior:contain}.catalog-map::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}
  .catalog-map__head{display:flex;align-items:center;justify-content:space-between;gap:16px}.catalog-map__head h2{margin:0;font:600 24px/1.15 'Manrope','Manrope Fallback',system-ui,sans-serif}.catalog-map p{margin:16px 0;color:var(--muted);font-size:13px}.catalog-map__close{min-width:44px;min-height:44px;border:0;background:none;color:var(--accent-text);font:inherit;cursor:pointer}.catalog-map__canvas{width:100%;height:360px;margin:16px 0;border:1px solid var(--line);border-radius:14px;background:var(--bg);overflow:hidden}.catalog-map__venues,.catalog-map__metro-search-zone{display:grid;gap:10px}.catalog-map__metro-search-zone{position:sticky;top:0;z-index:2;padding-bottom:8px;background:var(--panel)}.catalog-map .catalog-map__metro-selected{margin:0;color:var(--muted);font-size:13px}.catalog-map .catalog-map__metro-selected strong{color:var(--text);font-weight:600}.catalog-map__metro-search{color:var(--muted);font-size:12px}.catalog-map__venues input[type="search"]{box-sizing:border-box;width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font:inherit}.catalog-map__venues input[type="search"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.catalog-map__venues .catalog-map__metro-toggle{width:100%;min-height:44px;justify-content:center}.catalog-map__metro-results{max-height:min(300px,calc(var(--catalog-vvh,100dvh) - 170px));min-height:156px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.catalog-map .catalog-map__metro-line{margin:0;padding:10px}.catalog-map .catalog-map__metro-line+.catalog-map__metro-line{border-top:1px solid var(--line)}.catalog-map .catalog-map__metro-line-title{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:var(--text);font-size:13px;font-weight:600}.catalog-map__metro-line-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--catalog-metro-line,var(--muted))}.catalog-map__metro-line-stations{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.catalog-map__metro-station{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}.catalog-map__metro-station .catalog-map__metro-name{flex:1 1 auto;min-width:0}.catalog-map__metro-lines{display:flex;flex:none;gap:4px}.catalog-map__metro-line-chip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--catalog-metro-line,#8A8A8A);font-size:11px;line-height:1;font-weight:600}.catalog-map__metro-check{display:none;flex:none;color:var(--accent-text)}.catalog-map__metro-station[aria-pressed="true"]{border-color:var(--accent-text)}.catalog-map__metro-station[aria-pressed="true"] .catalog-map__metro-name{color:var(--accent-text)}.catalog-map__metro-station[aria-pressed="true"] .catalog-map__metro-check{display:inline}.catalog-map .catalog-map__metro-message{margin:0;color:var(--muted);font-size:13px}.catalog-map__metro-message:empty{display:none}.catalog-map__metro-flat{padding:10px}.catalog-map [hidden],.catalog-map__venues [hidden]{display:none}.catalog-map__fallback{margin-bottom:12px;color:var(--muted)}
  .catalog-map__details{margin:0 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.catalog-map__details h3{margin:0 0 8px;font-size:17px}.catalog-map__details p{margin:0;display:grid;gap:8px}.catalog-map__details a{display:flex;justify-content:space-between;gap:12px;color:var(--text);text-decoration:none}.catalog-map__details a span{color:var(--accent-text);white-space:nowrap;font-size:13px}
  .catalog-map__master-list{display:grid;gap:8px}.catalog-map__master-list a{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none}.catalog-map__master-list img{width:44px;height:44px;flex:none;border-radius:50%;object-fit:cover}.catalog-map__master-list a>span{display:grid;min-width:0;gap:2px}.catalog-map__master-list small{color:var(--muted);font-size:11px;white-space:normal}
  /* C-5 (21.09.2026, волна h6-c135): display скрытия `.master-card[hidden]` —
     единый владелец в общем слое master-card.css (ungated). Дубликат здесь
     (mobile /massage) удалён — оба файла задавали одно значение none, владелец
     свойства остаётся один. */
  .catalog-empty__reset{margin-top:16px}.catalog-empty{grid-column:1/-1;padding:24px;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--muted);text-align:center}
  @media(max-width:767px){body.catalog-filter-is-open{overflow:hidden}.catalog-filter__body{grid-template-columns:1fr}.catalog-map-button{min-width:0;padding-inline:10px;white-space:normal}.catalog-filter[open]{position:fixed;inset:0;z-index:1000;overflow:auto;overscroll-behavior:contain;border:0;border-radius:0;background:var(--bg);padding:max(16px,env(safe-area-inset-top)) 0 max(20px,env(safe-area-inset-bottom))}.catalog-filter[open]>summary{position:sticky;top:calc(-1 * max(16px,env(safe-area-inset-top)));z-index:1;min-height:56px;margin:0;padding:0 20px;background:var(--bg);border-bottom:1px solid var(--line)}.catalog-filter[open]>summary::after{content:'Закрыть';flex:none;white-space:nowrap;color:var(--accent-text);font-size:14px;transform:none}.catalog-filter[open] .catalog-filter__body{padding:20px}.catalog-filter[open] .catalog-filter__body .btn{margin-top:8px}.catalog-filter[open] .catalog-filter__map{display:flex}.catalog-map{box-sizing:border-box;width:100vw;max-width:none;height:var(--catalog-vvh,100dvh);max-height:var(--catalog-vvh,100dvh);margin:0;border:0;border-radius:0;padding:max(20px,env(safe-area-inset-top)) 0 max(24px,env(safe-area-inset-bottom))}.catalog-map__head{position:sticky;top:calc(-1 * max(20px,env(safe-area-inset-top)));z-index:2;margin:0;padding:0 20px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.catalog-map__head h2{font-size:22px}.catalog-map__canvas{height:52dvh;min-height:300px;max-height:480px}.catalog-map__metro-search-zone{top:calc(var(--catalog-map-head-h,0px) - max(20px,env(safe-area-inset-top)));z-index:3;margin:0;padding:0 20px 10px}
  /* Полноширинная шапка карты объявлена нулевым горизонтальным padding у
     диалога и положительным отступом у содержимого, а не отрицательным
     margin у sticky-элементов (замена заплатки, 18.09.2026). */
  .catalog-map>p,.catalog-map__canvas,.catalog-map__details,.catalog-map__fallback{margin-inline:20px}
  .catalog-map__venues>p,.catalog-map__venues>button{margin-inline:20px}}
}

/* Mobile owner: styles/v7/mobile-massage-components.css */
/* Explicit V7 mobile owner for the massage family. */
@media (width < 1024px) {
.sigma-master-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px;
}
.sigma-master-grid>.master-card{
  min-width:0;
  width:auto;
  flex:0 0 100%;
  align-self:stretch;
  justify-self:auto;
}

@media(min-width:768px){
  .sigma-master-grid{gap:20px}
  .sigma-master-grid>.master-card{flex-basis:min(342px,calc((100% - 20px)/2))}
  [data-collection-tracks="page"]>*:nth-child(2n+1):last-child{grid-column:span 2;max-width:var(--measure)}
  [data-collection-tracks="triple"]>*:nth-child(3n+1 of :not([aria-hidden="true"])):nth-last-child(1 of :not([aria-hidden="true"])){grid-column:span 2;max-width:var(--measure)}
}
.sigma-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lead-cta__error,.lead-cta__ok,.lead-cta__form--sent{display:none}
.lead-cta__error{margin:0;color:#e37b6b;font-size:var(--fs-meta)}
.lead-cta__error.show,.lead-cta__ok.show{display:block}
.lead-cta .btn{width:100%}
.lead-cta__copy h2{margin-bottom:8px}
.lead-cta__form{margin-top:var(--rhythm-inline)}
.lead-cta__note{margin-top:var(--rhythm-inline);color:var(--muted);font-size:var(--fs-meta);line-height:1.5}
}
