/* es-mobile v1.2 (17.10.2026) — мобильная версия по ТЗ mobile-native / break-ui.
   На компьютере вид не меняется: всё «телефонное» — под (pointer:coarse) или max-width, env() на компьютере = 0. */
:root{color-scheme:dark}
html{-webkit-tap-highlight-color:transparent}
input[type=checkbox],input[type=radio]{accent-color:#C9A96E}
a,button,summary,label,select,[role=button],input[type=submit],input[type=button]{touch-action:manipulation}

/* Поля не увеличивают страницу на iPhone */
@media (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),textarea,select{font-size:16px!important}
}

/* Отклик на нажатие: кнопки чуть «проседают» */
@keyframes esmPress{from{scale:1}to{scale:.97}}
@media (pointer:coarse){
  button,[role=button]:not(input),a[class*=btn],a[class*=cta],a[class*=button],input[type=submit],.lux-book-btn{-webkit-user-select:none;user-select:none}
  button:active,[role=button]:not(input):active,a[class*=btn]:active,a[class*=cta]:active,a[class*=button]:active,input[type=submit]:active,.lux-book-btn:active{animation:esmPress .14s cubic-bezier(.23,1,.32,1) forwards}
}

/* Вырезы экрана: прибитое к низу не заходит под полоску iPhone */
/* safe-area: поднимаем на высоту «полоски» iPhone, не трогая исходные отступы (у куки на телефоне — 84px над нижней панелью) */
.es-cookie,.es-cm-sticky,.es-su-sticky,.es-smc-dev,.es-top-btn,#es-chat-btn{translate:0 calc(-1 * env(safe-area-inset-bottom,0px))}
@media (min-width:561px){#es-chat-panel{translate:0 calc(-1 * env(safe-area-inset-bottom,0px))}}
@media (max-width:560px){#es-chat-panel{padding-bottom:env(safe-area-inset-bottom,0px)}}
@media (orientation:landscape) and (pointer:coarse){body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}}

/* Высота экрана на телефоне (панели браузера) */
@supports (height:100dvh){
  body{min-height:100svh}
  @media (min-width:561px){#es-chat-panel{max-height:calc(100dvh - var(--esc-bottom) - 28px - env(safe-area-inset-bottom,0px))}}
  .es-lb img{max-height:calc(100dvh - 140px)}
  html .esz-frame{height:calc(100dvh - 96px)}
  @media (max-width:640px){.es-lb img{max-height:calc(100dvh - 190px)} html .esz-frame{height:calc(100dvh - 64px)}}
}

/* Худшие данные: длинные слова не ломают вёрстку, цифры цен ровные */
@media (max-width:767px){
  h1,h2,h3,h4,h5,h6,p,li,td,th,dd,dt,blockquote,figcaption,label,a{overflow-wrap:break-word}
  td,th,[class*=price],[class*=Price],[class*=__sum],[class*=cost]{font-variant-numeric:tabular-nums}
  table.cmp,.es-blog-sh table.cmp{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .es-abp__sub{flex-wrap:wrap}
  .es-abp__sub small{white-space:normal}
}
@media (max-width:480px){
  .es-mh__price-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .es-mh__price-card-value{font-size:clamp(14px,4.6vw,22px)}
}
/* узкие телефоны (320–400 px): меню цен на главной и упаковка подарка не вылезают за экран */
@media (max-width:400px){
  .es-hp-m__row-head{gap:8px;flex-wrap:wrap}
  .es-hp-m__name{white-space:normal}
  .es-hp-m__dots{min-width:12px}
  .es-hp-m__price{margin-left:auto}
  .es-gp__tiers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .es-gp__tier span{font-size:clamp(18px,6vw,24px)}
  .es-gp__tier b{overflow-wrap:break-word}
  .es-cm-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}
  .es-cm-ladder li{padding:10px 8px}
  .es-cm-ladder b,.es-cm-ladder li:first-child b{font-size:clamp(15px,5vw,20px)}
}
/* мобильное меню: 6 главных пунктов + компактная сетка «Ещё» (разметку перестраивает mobile_patch.py) */
.lux-mobile.esm-menu .esm-main a{font-size:14px;padding:15px 28px}
.lux-mobile.esm-menu .lux-mobile-group{padding:18px 28px 8px}
.esm-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 20px 6px}
.lux-mobile .esm-more a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:11.5px;line-height:1.25;letter-spacing:.05em;border:1px solid rgba(201,169,110,.16);border-radius:10px}
.lux-mobile .esm-more a:not(.active){color:#bfb6a6}
@media (min-width:341px) and (max-width:820px){.lux-mobile.esm-menu>.es-lang{display:none}}
/* пока открыто меню, плавающие кнопки внизу не перекрывают его */
body:has(#lux-toggle:checked) :is(.es-cm-sticky,.es-hm-sticky,.es-su-sticky,.es-sticky,.es-smcta,.es-smc-cert,.es-smc-dev,.es-smc-prog,#es-cw3,.es-top-btn,.es-cookie){visibility:hidden}
/* окно записи во всплывающем окне: по высоте видимой части экрана; с клавиатурой — над клавиатурой */
@media (pointer:coarse){
  :is(.es-cw3-modal-iframe,#es-book-frame,#es-cpbook-frame,#es-hmbook-frame,#es-pc-frame,#es-spabook-frame){height:calc(var(--es-vvh,100svh) - 72px)!important;min-height:240px}
  html.es-kb :is(#es-cw3-overlay,#es-book-overlay,#es-cpbook-overlay,#es-hmbook-overlay,#es-pc-overlay,#es-spabook-overlay){top:var(--es-vvt,0px)!important;bottom:auto!important;height:var(--es-vvh)!important}
}
.lux-mobile .esm-more a:last-child:nth-child(odd){grid-column:1/-1}
