/*
 * ОДИН ЗАМОК НА ВСЕ МОДАЛКИ — стили. Правила: docs/standards/modals.md.
 *
 * Задача ровно одна: страница не должна дёргаться вбок при открытии и закрытии.
 * Полоса прокрутки исчезает вместе с overflow:hidden, содержимое расширяется на
 * её ширину — и обратно при закрытии. Возвращаем эту ширину полем справа.
 *
 * Ширину меряет modal-chrome.js ДО блокировки и кладёт в --croco-sbw. На macOS
 * с наложенными полосами замер даёт 0, и все правила становятся безвредными.
 */

html.croco-modal-open {
  overflow: hidden !important;
}

/* Поле даём BODY, а не HTML: у HTML уже стоит overflow:hidden, и его собственное
   поле в некоторых движках не участвует в раскладке содержимого. */
html.croco-modal-open body {
  padding-right: var(--croco-sbw, 0px);
}

/* ЛИПКИЕ И ФИКСИРОВАННЫЕ ЭЛЕМЕНТЫ. Они не в потоке body, поэтому поле их не
   двигает — их надо сдвинуть отдельно, иначе шапка темы и виджет брони
   останутся на прежнем месте, пока страница под ними уехала. */
html.croco-modal-open .tm-header,
html.croco-modal-open #tm-header,
html.croco-modal-open .tm-header-mobile,
html.croco-modal-open .uk-sticky-fixed {
  padding-right: var(--croco-sbw, 0px);
}

/* Сами оверлеи модалок при этом становятся шире на ту же ширину — иначе их
   центрированная карточка съезжает на половину полосы. */
html.croco-modal-open .cad-modal,
html.croco-modal-open .croco-overlay,
html.croco-modal-open #exModal,
html.croco-modal-open #seModal,
html.croco-modal-open #rtModal {
  padding-right: var(--croco-sbw, 0px);
}
