/* ═══════════════════════════════════════════════════════════
   Form modals — mobile keyboard-safe UX + no page overflow-x
   Sticky header/close + sticky actions above virtual keyboard
   ═══════════════════════════════════════════════════════════ */

:root {
  --app-vh: 100dvh;
  --vv-top: 0px;
  --modal-sheet-max: min(92dvh, 900px);
}

/* ── Global: no horizontal scroll on the site ── */
html {
  overflow-x: clip !important;
  max-width: 100% !important;
  overscroll-behavior-x: none;
  scrollbar-gutter: auto;
}

body {
  overflow-x: clip !important;
  max-width: 100% !important;
  width: 100% !important;
  overscroll-behavior-x: none;
  position: relative;
}

/*
 * Scroll-lock при попапах FOS: только overflow, без position:fixed.
 * Не сбрасывает scrollY → нет «пролистывания» при закрытии.
 */
html.sbor-scroll-locked,
html.sbor-scroll-locked body {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  /* мгновенный скролл, если кто-то вызовет scrollTo */
  scroll-behavior: auto !important;
}

html.sbor-scroll-locked {
  /* сохраняем ширину, чтобы не дёргался layout при скрытии scrollbar */
  scrollbar-gutter: stable;
}

body.form-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

/* Prevent 100vw / full-bleed media from creating sideways scroll */
img, video, iframe, canvas, svg {
  max-width: 100%;
}

.hero-stack__media,
[class*="w-screen"],
.w-screen {
  max-width: 100vw !important;
}

/* Kill nested horizontal scroll traps on mobile */
@media (max-width: 767px) {
  .price-table-wrap,
  .price-stage,
  .price-stage__list,
  #mobile-price-accordions,
  #prices,
  .waste-tabs,
  .waste-subchips-grid,
  .site-container,
  main,
  section,
  .desktop-waste,
  .waste-types-mobile,
  .truck-grid,
  footer {
    overflow-x: clip !important;
    max-width: 100% !important;
  }

  /* Override any overflow-x: auto tables/carousels that create page sideways scroll */
  .price-table-wrap {
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: auto !important;
  }

  /* Allow only intentional internal sheet scroll (forms) */
  .modal-sheet__body,
  .modal-sheet__scroll {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  /* Bottom sheet full-bleed (override max-width from brand-layout) */
  #orderModal > div,
  #cooperationModal > div,
  #howto-modal > div {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
}

/* ── Overlay shell (order / cooperation / howto) ── */
/* CRITICAL: .hidden must always win over .flex (otherwise form never closes) */
#orderModal.hidden,
#cooperationModal.hidden,
#howto-modal.hidden,
#exit-intent-modal.hidden,
#privacy-modal.hidden,
#offer-modal.hidden,
#consent-modal.hidden,
#requisites-modal.hidden {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
}

#orderModal.flex:not(.hidden),
#cooperationModal.flex:not(.hidden),
#howto-modal.flex:not(.hidden),
#exit-intent-modal.flex:not(.hidden),
#orderModal[aria-hidden="false"]:not(.hidden),
#cooperationModal[aria-hidden="false"]:not(.hidden),
#howto-modal[aria-hidden="false"]:not(.hidden),
#exit-intent-modal[aria-hidden="false"]:not(.hidden) {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  inset: 0;
  top: var(--vv-top, 0px);
  height: var(--app-vh, 100dvh);
  max-height: var(--app-vh, 100dvh);
  width: 100%;
  max-width: 100vw;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  overscroll-behavior: none;
  -webkit-overflow-scrolling: auto;
  z-index: 250 !important;
  position: fixed !important;
}

/* Юридические модалки: открытие поверх FOS (согласие / оферта / политика / реквизиты) */
#privacy-modal.flex:not(.hidden),
#offer-modal.flex:not(.hidden),
#consent-modal.flex:not(.hidden),
#requisites-modal.flex:not(.hidden),
#privacy-modal[aria-hidden="false"]:not(.hidden),
#offer-modal[aria-hidden="false"]:not(.hidden),
#consent-modal[aria-hidden="false"]:not(.hidden),
#requisites-modal[aria-hidden="false"]:not(.hidden),
#privacy-modal.doc-modal-open,
#offer-modal.doc-modal-open,
#consent-modal.doc-modal-open,
#requisites-modal.doc-modal-open {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  inset: 0 !important;
  position: fixed !important;
  width: 100% !important;
  max-width: 100vw !important;
  height: 100% !important;
  max-height: 100dvh !important;
  padding: 1rem !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  z-index: 320 !important;
  background: rgba(15, 23, 42, 0.6) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}

#privacy-modal.flex:not(.hidden) > div,
#offer-modal.flex:not(.hidden) > div,
#consent-modal.flex:not(.hidden) > div,
#requisites-modal.flex:not(.hidden) > div,
#privacy-modal.doc-modal-open > div,
#offer-modal.doc-modal-open > div,
#consent-modal.doc-modal-open > div,
#requisites-modal.doc-modal-open > div {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: min(42rem, 100%) !important;
  max-height: min(85vh, 900px) !important;
  margin: 0 auto !important;
  pointer-events: auto !important;
}

/* Sheet always interactive when parent open */
#orderModal.flex:not(.hidden) > .modal-sheet,
#cooperationModal.flex:not(.hidden) > .modal-sheet,
#howto-modal.flex:not(.hidden) > .modal-sheet,
#exit-intent-modal.flex:not(.hidden) > .modal-sheet,
#orderModal.flex:not(.hidden) > .bottom-sheet,
#exit-intent-modal.flex:not(.hidden) > .bottom-sheet,
#cooperationModal.flex:not(.hidden) > .bottom-sheet,
#howto-modal.flex:not(.hidden) > .bottom-sheet {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* FOS buttons must receive clicks (не перекрывать слоями) */
.fos-btn,
button.fos-btn,
a.fos-btn,
.desktop-waste-cta,
.hero-cta__btn,
.mobile-bottom-bar .fos-btn,
.site-leadgen__cta .fos-btn,
.site-leadgen__cta .desktop-waste-cta {
  pointer-events: auto !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 2 !important;
}

@media (min-width: 768px) {
  #orderModal.flex:not(.hidden),
  #cooperationModal.flex:not(.hidden),
  #howto-modal.flex:not(.hidden),
  #exit-intent-modal.flex:not(.hidden) {
    justify-content: center;
    align-items: center;
    padding: 1rem;
    top: 0;
    height: 100%;
    max-height: none;
  }
}

/* ── Panel ── */
#orderModal > .modal-sheet,
#cooperationModal > .modal-sheet,
#howto-modal > .modal-sheet,
#exit-intent-modal > .modal-sheet,
#orderModal > .bottom-sheet,
#cooperationModal > .bottom-sheet,
#howto-modal > .bottom-sheet,
#exit-intent-modal > .bottom-sheet {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  max-height: var(--modal-sheet-max, min(92dvh, 900px)) !important;
  height: auto;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  box-sizing: border-box;
  border-radius: 1rem 1rem 0 0 !important;
  background: #fff !important;
  box-shadow: 0 -8px 40px rgba(15, 23, 42, 0.18);
  overscroll-behavior: contain;
}

@media (min-width: 768px) {
  #orderModal > .modal-sheet,
  #cooperationModal > .modal-sheet,
  #exit-intent-modal > .modal-sheet,
  #orderModal > .bottom-sheet,
  #cooperationModal > .bottom-sheet,
  #exit-intent-modal > .bottom-sheet {
    width: min(100%, 420px) !important;
    max-width: min(100%, 420px) !important;
    max-height: min(85vh, 900px) !important;
    border-radius: 1.5rem !important;
    margin: 0 !important;
  }

  #howto-modal > .modal-sheet,
  #howto-modal > .bottom-sheet {
    width: min(100%, 460px) !important;
    max-width: min(100%, 460px) !important;
    max-height: min(85vh, 900px) !important;
    border-radius: 1.5rem !important;
  }
}

/* ── Sticky header: title + close always reachable ── */
.modal-sheet__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 1rem 1.25rem 0.75rem;
  background: #fff;
  border-bottom: 1px solid #f1f5f9;
  padding-top: max(1rem, env(safe-area-inset-top, 0px));
}

.modal-sheet__header .font-bold,
.modal-sheet__title {
  font-size: clamp(1.15rem, 4.5vw, 1.5rem);
  line-height: 1.2;
  min-width: 0;
}

/* Large, easy close target (esp. with keyboard open) */
.modal-sheet__close {
  width: 2.75rem !important;
  height: 2.75rem !important;
  min-width: 2.75rem !important;
  min-height: 2.75rem !important;
  flex-shrink: 0;
  border-radius: 9999px !important;
  background: #f1f5f9 !important;
  color: #64748b !important;
  font-size: 1.5rem !important;
  line-height: 1 !important;
  box-shadow: none !important;
  border: none !important;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.modal-sheet__close:active {
  background: #e2e8f0 !important;
  transform: scale(0.96);
}

/* ── Form layout: body scrolls, actions stick ── */
.modal-sheet__form {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.modal-sheet__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 1rem 1.25rem 0.5rem;
  scrollbar-width: thin;
  touch-action: pan-y;
}

/* Sticky action bar — always above keyboard area */
.modal-sheet__actions {
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  width: 100%;
  margin: 0 !important;
  padding: 0.75rem 1.25rem;
  padding-bottom: max(0.85rem, env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid #f1f5f9;
  box-shadow: 0 -6px 20px rgba(15, 23, 42, 0.06);
  gap: 0;
  box-sizing: border-box;
}

.modal-sheet__actions.btn-strip {
  overflow: hidden;
  border-radius: 0.75rem;
  margin: 0 1.25rem 0.85rem !important;
  width: calc(100% - 2.5rem);
  padding: 0;
  border-top: none;
  box-shadow: none;
  background: transparent;
}

.modal-sheet__actions .btn-strip__item {
  min-height: 3rem !important;
  font-size: 0.9rem !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* No horizontal chip/badge scrollers — wrap instead */
.hero-badges {
  overflow-x: hidden !important;
  flex-wrap: wrap !important;
  justify-content: center;
  -webkit-overflow-scrolling: auto !important;
}

/* When keyboard is open — sheet fills visual viewport; actions always visible (FOS submit) */
body.keyboard-open #orderModal.flex:not(.hidden),
body.keyboard-open #cooperationModal.flex:not(.hidden) {
  justify-content: flex-end !important;
  align-items: stretch !important;
}

body.keyboard-open #orderModal > .modal-sheet,
body.keyboard-open #cooperationModal > .modal-sheet,
body.keyboard-open #orderModal > .bottom-sheet,
body.keyboard-open #cooperationModal > .bottom-sheet {
  max-height: var(--app-vh, 100dvh) !important;
  height: var(--app-vh, 100dvh) !important;
  border-radius: 0.75rem 0.75rem 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
}

body.keyboard-open .modal-sheet__header {
  padding-top: 0.65rem;
  padding-bottom: 0.5rem;
  flex-shrink: 0 !important;
  position: relative !important;
}

body.keyboard-open .modal-sheet__form {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

body.keyboard-open .modal-sheet__body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  padding-top: 0.65rem;
  padding-bottom: 0.35rem;
}

/* Actions: flex-end of sheet (не sticky — надёжнее при virtual keyboard) */
body.keyboard-open .modal-sheet__actions {
  position: relative !important;
  flex-shrink: 0 !important;
  margin-top: auto !important;
  padding-top: 0.5rem;
  padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
  z-index: 6;
  background: #fff !important;
  box-shadow: 0 -6px 20px rgba(15, 23, 42, 0.08);
}

body.keyboard-open .modal-sheet__actions.btn-strip {
  margin: 0 1rem 0.65rem !important;
  width: calc(100% - 2rem);
}

body.keyboard-open .form-input {
  min-height: 2.75rem;
  font-size: 16px; /* prevent iOS zoom on focus */
}

body.keyboard-open textarea.form-input {
  min-height: 3.25rem;
  height: 3.25rem;
}

/* Inputs: 16px min on mobile to avoid zoom */
@media (max-width: 767px) {
  #orderModal .form-input,
  #cooperationModal .form-input,
  #orderModal input,
  #orderModal textarea,
  #cooperationModal input,
  #cooperationModal textarea {
    font-size: 16px !important;
  }

  #orderModal .form-grid-mobile,
  #cooperationModal .form-grid-mobile {
    grid-template-columns: 1fr !important;
  }

  .modal-sheet__body .space-y-4 {
    gap: 0.75rem;
  }

  .modal-sheet__body .form-consent {
    font-size: 0.68rem !important;
    line-height: 1.35 !important;
  }

  /* На узком экране тело формы прокручивается — текст не «режется» снизу */
  #orderModal .modal-sheet__body,
  #cooperationModal .modal-sheet__body {
    padding-bottom: 0.85rem !important;
  }
}

/* How-to modal («Привезу сам»): без внутреннего скролла — контент влезает */
#howto-modal .modal-sheet__header {
  padding-bottom: 0.35rem;
  flex: 0 0 auto !important;
}

#howto-modal .modal-sheet__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden !important;
  overflow-y: hidden !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: auto;
  overscroll-behavior: none;
  touch-action: manipulation;
}

#orderModal.flex,
#cooperationModal.flex,
#howto-modal.flex {
  touch-action: none;
}

#orderModal .modal-sheet__body,
#cooperationModal .modal-sheet__body,
#howto-modal .modal-sheet__scroll {
  touch-action: pan-y;
}

#orderModal .modal-sheet__close,
#cooperationModal .modal-sheet__close,
#howto-modal .modal-sheet__close,
#orderModal .modal-sheet__actions,
#cooperationModal .modal-sheet__actions,
#howto-modal .modal-sheet__actions {
  touch-action: manipulation;
}

#howto-modal .modal-sheet__actions {
  margin-top: auto;
}

/* «Заказать вывоз»: только «Оставить заявку» */
#orderModal .order-modal__actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0.85rem 1.25rem max(0.85rem, env(safe-area-inset-bottom, 0px)) !important;
}

#orderModal .order-modal__submit-btn {
  width: 100% !important;
  flex: none !important;
  min-height: 48px !important;
  border-radius: 12px !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(0, 166, 81, 0.28) !important;
  cursor: pointer !important;
}

#orderModal .order-modal__submit-btn:hover {
  background: #009347 !important;
}

/* «Привезу сам»: только текст-пояснение (без кнопки «Заказать вывоз») */
#howto-modal .howto-modal__actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  flex: 0 0 auto !important;
  padding: 0.55rem 1.1rem max(0.65rem, env(safe-area-inset-bottom, 0px)) !important;
}

#howto-modal .howto-modal__comfort-note {
  margin: 0 !important;
  padding: 0 0.15rem !important;
  font-size: 0.8125rem !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  color: #475569 !important;
  text-align: center !important;
}

/* кнопка удалена из HTML — на случай кэша/старых сборок */
#howto-modal .howto-modal__order-btn {
  display: none !important;
}

/* Карта в модалке: компактнее, чтобы не появлялся scroll */
#howto-modal .map-static-card--modal {
  padding: 0 1.1rem 0.5rem !important;
  gap: 0.45rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
  flex: 0 0 auto !important;
}

#howto-modal .map-static-card__visual--modal,
#howto-modal #howto-modal-map {
  position: relative !important;
  width: 100% !important;
  height: 160px !important;
  min-height: 160px !important;
  max-height: 170px !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  background: #e2e8f0 !important;
  border-radius: 14px !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  box-sizing: border-box !important;
}

#howto-modal .modal-sheet__scroll > .p-5 {
  padding: 0.65rem 1.1rem 0.5rem !important;
  flex: 0 0 auto !important;
}

#howto-modal .modal-sheet__scroll .space-y-\[7px\] {
  gap: 6px !important;
}

#howto-modal .modal-sheet__scroll .space-y-\[7px\] > button {
  padding-top: 9px !important;
  padding-bottom: 9px !important;
  min-height: 42px !important;
}

#howto-modal .map-static-card__iframe,
#howto-modal #howto-modal-map-iframe {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #e2e8f0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 1 !important;
}

/* блок карты в FOS «Привезу сам» — не схлопывать */
#howto-modal .map-static-card,
#howto-modal .map-static-card--modal {
  display: flex !important;
  flex-direction: column !important;
  visibility: visible !important;
  opacity: 1 !important;
}

@media (min-width: 768px) {
  #howto-modal .map-static-card__visual--modal,
  #howto-modal #howto-modal-map {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 190px !important;
  }

  /* desktop: карточка целиком без прокрутки */
  #howto-modal > .modal-sheet,
  #howto-modal > .bottom-sheet {
    max-height: min(92vh, 640px) !important;
    overflow: hidden !important;
  }
}

@media (max-width: 767px) {
  #howto-modal > .modal-sheet,
  #howto-modal > .bottom-sheet {
    max-height: min(88dvh, 100%) !important;
    overflow: hidden !important;
  }

  #howto-modal .map-static-card__visual--modal,
  #howto-modal #howto-modal-map {
    height: 140px !important;
    min-height: 140px !important;
    max-height: 150px !important;
  }
}

/* Hide mobile bottom bar while form modal is open — без layout-прыжка */
body.form-modal-open .mobile-bottom-bar {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  /* не visibility-only мигание: оставляем в потоке fixed, без transition */
  transition: none !important;
}

/* Mobile: bottom-sheet без scale (scale даёт «мигание») */
@media (max-width: 767px) {
  #orderModal.modal-animate-in > .modal-sheet,
  #orderModal.modal-animate-in > .bottom-sheet,
  #cooperationModal.modal-animate-in > .modal-sheet,
  #cooperationModal.modal-animate-in > .bottom-sheet,
  #howto-modal.modal-animate-in > .modal-sheet,
  #howto-modal.modal-animate-in > .bottom-sheet {
    animation: sbor-sheet-up 0.28s cubic-bezier(0.22, 1, 0.36, 1) both !important;
  }

  #orderModal.modal-animate-in,
  #cooperationModal.modal-animate-in,
  #howto-modal.modal-animate-in {
    animation: sbor-backdrop-in 0.2s ease both !important;
  }

  @keyframes sbor-sheet-up {
    from {
      opacity: 1;
      transform: translate3d(0, 100%, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes sbor-backdrop-in {
    from { opacity: 0; }
    to { opacity: 1; }
  }
}

/* Success state inside order modal */
#orderModal .modal-sheet__success {
  padding: 1.5rem 1.25rem max(1.25rem, env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
}

/* ── «Мне удобно общаться в…» — выбор мессенджеров ── */
.form-contact-pref {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}

.form-contact-pref .form-label {
  margin-bottom: 0;
}

.form-contact-pref__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.form-contact-pref__chip {
  position: relative;
  display: block;
  margin: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.form-contact-pref__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

.form-contact-pref__face {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  padding: 6px 12px 6px 8px;
  border-radius: 9999px;
  border: 1.5px solid rgba(20, 20, 20, 0.12);
  background: #F8F8F8;
  color: #141414;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1;
  box-sizing: border-box;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.form-contact-pref__icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  font-size: 1.15rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.form-contact-pref__icon--max {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  object-fit: contain;
}

.form-contact-pref__icon--tg {
  color: #0088cc;
}

.form-contact-pref__icon--wa {
  color: #25D366;
}

.form-contact-pref__icon--vk {
  color: #0077FF;
}

.form-contact-pref__icon--phone {
  color: #E31E23;
  font-size: 0.95rem;
}

.form-contact-pref__text {
  white-space: nowrap;
}

.form-contact-pref__input:checked + .form-contact-pref__face {
  border-color: #2CC919;
  background: rgba(44, 201, 25, 0.1);
  box-shadow: 0 0 0 1px rgba(44, 201, 25, 0.25);
  color: #141414;
}

.form-contact-pref__input:focus-visible + .form-contact-pref__face {
  outline: 2px solid #2CC919;
  outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
  .form-contact-pref__chip:hover .form-contact-pref__face {
    border-color: rgba(44, 201, 25, 0.45);
    background: #FFFFFF;
  }
}

.form-contact-pref__chip:active .form-contact-pref__face {
  transform: scale(0.97);
}

@media (max-width: 767px) {
  .form-contact-pref__face {
    min-height: 42px;
    padding: 7px 12px 7px 9px;
    font-size: 0.8rem;
  }

  .form-contact-pref__list {
    gap: 7px;
  }
}

/* ═══════════════════════════════════════════════════════════
   FOS popups: все блоки и кнопки — одна ширина (stretch)
═══════════════════════════════════════════════════════════ */
#orderModal .modal-sheet__body,
#cooperationModal .modal-sheet__body,
#howto-modal .modal-sheet__scroll {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

#orderModal .modal-sheet__form,
#cooperationModal .modal-sheet__form,
#orderModal .modal-sheet__body > *,
#cooperationModal .modal-sheet__body > *,
#howto-modal .modal-sheet__scroll > * {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Поля: всегда на всю ширину, без 2-колоночной «усечённой» сетки */
#orderModal .form-grid-mobile,
#cooperationModal .form-grid-mobile {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.85rem !important;
  width: 100% !important;
}

#orderModal .form-grid-mobile > div,
#cooperationModal .form-grid-mobile > div,
#orderModal .modal-sheet__body > div,
#cooperationModal .modal-sheet__body > div {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#orderModal .form-label,
#cooperationModal .form-label,
#orderModal .form-input,
#cooperationModal .form-input,
#orderModal input.form-input,
#cooperationModal input.form-input,
#orderModal textarea.form-input,
#cooperationModal textarea.form-input {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Согласие ПДн: чекбокс и первая строка текста на одном уровне */
#orderModal .form-consent,
#cooperationModal .form-consent {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 0.45rem !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0.15rem 0 0.35rem !important;
  padding: 0 !important;
  overflow: visible !important;
  font-size: 0.68rem !important;
  line-height: 1.3 !important;
  color: #64748b !important;
  text-align: left !important;
}

#orderModal .form-consent > input[type="checkbox"],
#cooperationModal .form-consent > input[type="checkbox"],
#orderModal .form-consent > input[data-pd-consent],
#cooperationModal .form-consent > input[data-pd-consent] {
  flex: 0 0 14px !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  margin: 0 !important;
  margin-top: 1px !important; /* оптически = первая строка */
  padding: 0 !important;
  align-self: flex-start !important;
  position: relative !important;
  top: 0 !important;
  accent-color: #00A651;
  transform: none !important;
}

#orderModal .form-consent > span,
#cooperationModal .form-consent > span {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.68rem !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  color: inherit !important;
  /* без «просадки» первой строки относительно чекбокса */
  position: relative !important;
  top: 0 !important;
}

#orderModal .form-consent a,
#cooperationModal .form-consent a,
#orderModal .form-consent .form-consent__link,
#cooperationModal .form-consent .form-consent__link {
  display: inline !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: inherit !important;
  vertical-align: baseline !important;
  white-space: normal !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

/* Чипы мессенджеров — только иконки, без подписей */
#orderModal .form-contact-pref,
#cooperationModal .form-contact-pref {
  width: 100% !important;
  min-width: 0 !important;
}

#orderModal .form-contact-pref__list,
#cooperationModal .form-contact-pref__list {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}

#orderModal .form-contact-pref__chip,
#cooperationModal .form-contact-pref__chip {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#orderModal .form-contact-pref__face,
#cooperationModal .form-contact-pref__face {
  display: flex !important;
  flex-direction: row !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0 !important;
  border-radius: 12px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#orderModal .form-contact-pref__icon,
#cooperationModal .form-contact-pref__icon {
  flex: 0 0 auto !important;
  width: 22px !important;
  height: 22px !important;
  font-size: 1.2rem !important;
  line-height: 1 !important;
  margin: 0 !important;
}

#orderModal .form-contact-pref__icon--max,
#cooperationModal .form-contact-pref__icon--max {
  width: 22px !important;
  height: 22px !important;
}

/* Подписи к иконкам скрыты — не вылезают за кнопки */
#orderModal .form-contact-pref__text,
#cooperationModal .form-contact-pref__text {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  clip: rect(0, 0, 0, 0) !important;
}

/* Кнопки действий — на всю ширину панели */
#orderModal .modal-sheet__actions,
#cooperationModal .modal-sheet__actions,
#howto-modal .modal-sheet__actions {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#orderModal .modal-sheet__actions.btn-strip,
#cooperationModal .modal-sheet__actions.btn-strip {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0.85rem 1.25rem max(0.85rem, env(safe-area-inset-bottom, 0px)) !important;
  border-radius: 0 !important;
  gap: 10px !important;
  background: #fff !important;
  border-top: 1px solid #f1f5f9 !important;
}

#orderModal .modal-sheet__actions .btn-strip__item,
#cooperationModal .modal-sheet__actions .btn-strip__item,
#orderModal .order-modal__submit-btn,
#howto-modal .howto-modal__order-btn {
  width: 100% !important;
  flex: 1 1 0% !important;
  min-width: 0 !important;
  border-radius: 12px !important;
  box-sizing: border-box !important;
}

/* Сотрудничество: кнопки в один ряд, равной ширины */
#cooperationModal .modal-sheet__actions.btn-strip {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
}

/* Заказать вывоз: одна кнопка full width */
#orderModal .order-modal__actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  padding: 0.85rem 1.25rem max(0.85rem, env(safe-area-inset-bottom, 0px)) !important;
}

#orderModal .order-modal__submit-btn {
  flex: none !important;
  width: 100% !important;
}

/* How-to: карта, кнопки маршрутов, CTA — одна ширина контента */
#howto-modal .map-static-card--modal {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 0 0.75rem !important;
  gap: 0.65rem !important;
  box-sizing: border-box !important;
}

#howto-modal .map-static-card__btn,
#howto-modal .map-static-card__btn--compact {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 12px !important;
  justify-content: center !important;
}

#howto-modal .modal-sheet__scroll > .p-5 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 0 1rem !important;
  box-sizing: border-box !important;
}

#howto-modal .modal-sheet__scroll .space-y-\[7px\],
#howto-modal .modal-sheet__scroll .space-y-\[7px\] > button {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#howto-modal .modal-sheet__scroll .space-y-\[7px\] {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
}

#howto-modal .modal-sheet__scroll .space-y-\[7px\] > button {
  margin: 0 !important;
  border-radius: 12px !important;
  justify-content: flex-start !important;
}

#howto-modal .howto-modal__actions {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#howto-modal .howto-modal__order-btn {
  display: none !important;
}

#howto-modal .howto-modal__comfort-note {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Ссылки-кнопки в чекбоксе согласия (открывают модалки) */
.form-consent__link {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  color: #00A651 !important;
  font: inherit !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-decoration: underline !important;
  text-underline-offset: 1px !important;
  cursor: pointer !important;
  vertical-align: baseline !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  height: auto !important;
  min-height: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.form-consent__link:hover {
  color: #009347 !important;
}

/* Перебиваем unify/sbor: мелкий ровный текст согласия */
#orderModal .form-consent,
#cooperationModal .form-consent,
#orderModal .form-consent > span,
#cooperationModal .form-consent > span {
  font-size: 0.68rem !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
}

/* Глобально: подписи чипов скрыты во всех ФОС */
.form-contact-pref__text {
  display: none !important;
}

.form-contact-pref__face {
  justify-content: center !important;
  align-items: center !important;
  gap: 0 !important;
  padding: 0 !important;
  min-height: 44px !important;
  height: 44px !important;
  overflow: hidden !important;
}

/* Согласие: чекбокс и «Я даю…» на одной линии */
.form-consent {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.45rem !important;
}

.form-consent > input[type="checkbox"],
.form-consent > input[data-pd-consent] {
  margin: 1px 0 0 0 !important;
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
}

.form-consent > span {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

.legal-doc a {
  color: #00A651;
  font-weight: 600;
}

/* Drag handle hint (mobile) */
.modal-sheet__handle {
  display: none;
}

@media (max-width: 767px) {
  .modal-sheet__handle {
    display: block;
    width: 2.5rem;
    height: 0.25rem;
    border-radius: 9999px;
    background: #cbd5e1;
    margin: 0.5rem auto 0;
    flex-shrink: 0;
  }
}
