/* Правки для телефонов и планшетов. Подключается после стилей страницы; сайт определяется по html[data-site]. */
a,button,summary{touch-action:manipulation}

/* --- закреплённые элементы: пока скрыты, не должны торчать или ловить нажатия --- */
.sticky-cta{visibility:hidden;transition:transform .35s,visibility 0s .35s;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
.sticky-cta.show{visibility:visible;transition:transform .35s,visibility 0s}
html[data-site=cafe] .ob{visibility:hidden;opacity:0;transition:transform .4s,opacity .3s,visibility 0s .4s}
html[data-site=cafe] .ob.show{visibility:visible;opacity:1;transition:transform .4s,opacity .3s,visibility 0s}

/* --- магазин: верхняя полоска в одну строку, тень закрытой корзины не видна --- */
html[data-site=shop] .top{height:36px;display:flex;align-items:center;justify-content:center;padding:0 8px;white-space:nowrap;overflow:hidden}
html[data-site=shop] .dr{visibility:hidden;box-shadow:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s .35s}
html[data-site=shop].cart-open .dr,body.cart-open .dr{visibility:visible;box-shadow:-30px 0 80px #0004;transition:transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s}

/* --- фитнес: пустая строка старой цены не занимает место --- */
html[data-site=fit] .pc .old:empty{display:none}

@media(max-width:860px){
  /* колонки сетки не раздуваются длинным содержимым и не вылезают за экран */
  .bk>*,.fm>*,.sym>*,.gw>*,.mp>*,.pr>*,.cc>*,.svc>*,.menu>*,.ab>*,.sv>*,.cl2>*,.hero>*,.ct>*,.bm>*,.nl>*,.pm>*{min-width:0}
  /* кнопки и чипы под палец: не меньше 44 px */
  .btn,.ch button,.chs button,.tabs button,.cats button,.fl button,.sw button,.cr{min-height:44px}
  .toast{bottom:96px}
  body:has(.sticky-cta) footer{padding-bottom:104px}

  /* магазин */
  html[data-site=shop] .hr{width:44px;height:44px}
  html[data-site=shop] .sz{gap:6px}
  html[data-site=shop] .sz button{min-width:40px;min-height:40px}
  html[data-site=shop] .add{width:44px;height:44px}
  html[data-site=shop] .qt button{width:40px;height:40px}
  html[data-site=shop] .ci .rm{padding:10px 0}
  html[data-site=shop] .dr{width:100vw}
  html[data-site=shop] .pr{gap:8px}

  /* барбершоп: цифры героя не ломаются */
  html[data-site=barber] .st{flex-wrap:wrap;gap:18px 30px}
  html[data-site=barber] .st .num{font-size:30px;white-space:nowrap}

  /* кофейня */
  html[data-site=cafe] .bk h2{font-size:32px}
  html[data-site=cafe] .ch.days button{min-width:58px}
  html[data-site=cafe] .it button{width:44px;height:44px}
  html[data-site=cafe] .ob{bottom:88px}

  /* фитнес */
  html[data-site=fit] .st{flex-wrap:wrap;gap:16px 28px}
  html[data-site=fit] .st .num{font-size:22px;white-space:nowrap}
  html[data-site=fit] .sr{grid-template-columns:100px 1fr;gap:8px 14px;padding:18px 0}
  html[data-site=fit] .sr b{font-size:18px}
  html[data-site=fit] .sr button{min-height:44px}
  html[data-site=fit] .fm h2{font-size:26px}
  html[data-site=fit] .tabs button{min-width:48px}

  /* автосервис: название и цена в разных строках */
  html[data-site=auto] .row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center}
  html[data-site=auto] .row>div{grid-column:1/-1}
  html[data-site=auto] .row em{grid-column:1;grid-row:2}
  html[data-site=auto] .row b{grid-column:2;grid-row:2;font-size:22px}
  html[data-site=auto] .bk h2{font-size:34px}

  /* стоматология */
  html[data-site=dental] .fm h2{font-size:28px}
  html[data-site=dental] .tr{flex-wrap:wrap;gap:14px 24px}

  /* главная */
  html[data-site=index] .ct .btn{font-size:16px;padding:12px 14px;gap:8px}
  html[data-site=index] .tr{gap:12px}
  html[data-site=index] .tr b{font-size:21px}
}

@media(max-width:600px){
  html[data-site=shop] .top .tx{display:none}
  /* фитнес: карточки программ в одну колонку, заголовки не обрезаются */
  html[data-site=fit] .pg{grid-template-columns:1fr}
  html[data-site=fit] .g{height:230px}
}

/* --- узкие экраны (320–480 px) --- */
input[type=range]{padding:18px 0;box-sizing:content-box;background-clip:content-box}
html[data-site=index] .logo{min-height:44px}
html[data-site=auto] .mp li a{display:inline-block;padding:10px 0}
@media(max-width:860px){
  html[data-site=dental] .cl{padding:6px 16px}
  html[data-site=dental] .cr{gap:12px}
  html[data-site=dental] .cr b{font-size:14px}
  html[data-site=dental] .cs{padding:24px}
}
@media(max-width:480px){
  html[data-site=index] .st,html[data-site=dental] .st,html[data-site=auto] .st{grid-template-columns:1fr}
  html[data-site=barber] .fe{grid-template-columns:1fr}
  html[data-site=barber] .sum div:last-child{width:100%;justify-content:space-between}
  html[data-site=barber] .bk .r{padding:20px 16px}
  html[data-site=barber] .ch.days button{min-width:56px}
  html[data-site=cafe] .ch.days button{min-width:52px}
  html[data-site=fit] .sr{grid-template-columns:90px 1fr}
  .wrap{padding-left:18px;padding-right:18px}
}

/* уведомления не перекрывают открытую корзину */
body.cart-open .toast{opacity:0;visibility:hidden}
