.ep-dialog-open { overflow: hidden; }
.ep-backdrop { position: fixed; inset: 0; z-index: 10000; display: grid; overflow-y: auto; place-items: center; padding: 24px; background: rgba(17,17,15,.58); backdrop-filter: blur(9px); }
.ep-dialog { width: min(720px, 100%); max-height: calc(100dvh - 48px); overflow: auto; color: #11110f; background: #f7f7f3; border: 1px solid #d9d9d1; border-radius: 28px; box-shadow: 0 28px 80px rgba(17,17,15,.24); font-family: Manrope, Arial, sans-serif; outline: none; }
.ep-dialog__head { display: flex; align-items: start; justify-content: space-between; gap: 24px; padding: 30px 30px 22px; border-bottom: 1px solid #d9d9d1; }
.ep-dialog__head span { display: block; margin-bottom: 7px; color: #2457ff; font-size: 12px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ep-dialog__head h2 { margin: 0; font-size: clamp(30px, 5vw, 44px); line-height: 1.02; letter-spacing: -.045em; }
.ep-dialog__head p { max-width: 520px; margin: 11px 0 0; color: #62625c; font-size: 16px; line-height: 1.5; }
.ep-dialog__close { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; padding: 0; color: #11110f; background: #fff; border: 1px solid #d9d9d1; border-radius: 50%; cursor: pointer; font: 400 30px/1 Arial, sans-serif; }
.ep-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 24px 30px 30px; }
.ep-form label,.ep-field { position: relative; display: grid; min-width: 0; gap: 8px; color: #62625c; font-size: 14px; font-weight: 700; }
.ep-form input:not([type="hidden"]) { width: 100%; min-height: 54px; padding: 0 15px; color: #11110f; background: #fff; border: 1px solid #d9d9d1; border-radius: 13px; font: 700 16px/1.2 Manrope,Arial,sans-serif; outline: none; }
.ep-form input:not([type="hidden"]):focus { border-color: #2457ff; box-shadow: 0 0 0 3px rgba(36,87,255,.12); }
.ep-address__control { position: relative; display: block; }
.ep-address__control input { padding-right: 54px !important; }
.ep-address__clear { position: absolute; top: 50%; right: 11px; display: grid; width: 32px; height: 32px; place-items: center; padding: 0; color: #85857e; background: transparent; border: 0; border-radius: 50%; cursor: pointer; transform: translateY(-50%); transition: color .18s ease, background-color .18s ease, opacity .18s ease; }
.ep-address__clear i { position: relative; display: block; width: 16px; height: 16px; }
.ep-address__clear i::before,.ep-address__clear i::after { position: absolute; top: 50%; left: 50%; width: 16px; height: 2px; content: ""; background: currentColor; border-radius: 999px; transform: translate(-50%,-50%) rotate(45deg); }
.ep-address__clear i::after { transform: translate(-50%,-50%) rotate(-45deg); }
.ep-address__clear:hover { color: #11110f; background: #efefe9; }
.ep-address__clear:focus-visible { color: #11110f; outline: 2px solid #2457ff; outline-offset: 1px; }
.ep-address__control input:placeholder-shown + .ep-address__clear { visibility: hidden; opacity: 0; pointer-events: none; }
.ep-select { position: relative; }
.ep-select.is-open { z-index: 6; }
.ep-select__trigger { display: flex; width: 100%; min-height: 54px; align-items: center; justify-content: space-between; gap: 16px; padding: 0 10px 0 15px; color: #11110f; background: #fff; border: 1px solid #d9d9d1; border-radius: 13px; cursor: pointer; text-align: left; }
.ep-select__trigger > span { min-width: 0; overflow: hidden; font: 700 16px/1.2 Manrope,Arial,sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.ep-select__trigger i { position: relative; width: 34px; height: 34px; flex: 0 0 34px; background: #f7f7f3; border: 1px solid #d9d9d1; border-radius: 50%; transition: background-color .2s ease,border-color .2s ease; }
.ep-select__trigger i::before,.ep-select__trigger i::after { position: absolute; top: 50%; left: 50%; width: 9px; height: 1px; content: ""; background: #11110f; transition: transform .22s ease; }
.ep-select__trigger i::before { transform: translate(-82%,-50%) rotate(42deg); }
.ep-select__trigger i::after { transform: translate(-18%,-50%) rotate(-42deg); }
.ep-select.is-open .ep-select__trigger { border-color: #11110f; border-radius: 13px 13px 0 0; }
.ep-select.is-open .ep-select__trigger i { background: #11110f; border-color: #11110f; }
.ep-select.is-open .ep-select__trigger i::before,.ep-select.is-open .ep-select__trigger i::after { background: #fff; }
.ep-select.is-open .ep-select__trigger i::before { transform: translate(-82%,-50%) rotate(-42deg); }
.ep-select.is-open .ep-select__trigger i::after { transform: translate(-18%,-50%) rotate(42deg); }
.ep-select__menu { position: absolute; top: calc(100% - 1px); right: 0; left: 0; z-index: 7; display: grid; max-height: 264px; overflow-y: auto; gap: 6px; padding: 8px; background: #fff; border: 1px solid #11110f; border-radius: 0 0 13px 13px; box-shadow: 0 20px 44px rgba(17,17,15,.14); }
.ep-select__menu[hidden] { display: none; }
.ep-select__menu button { display: block; width: 100%; padding: 12px; color: #62625c; background: transparent; border: 1px solid transparent; border-radius: 10px; cursor: pointer; font: 700 14px/1.35 Manrope,Arial,sans-serif; text-align: left; }
.ep-select__menu button:hover,.ep-select__menu button[aria-selected="true"] { color: #11110f; background: #efefe9; }
.ep-select__menu button[aria-selected="true"] { border-color: #d9d9d1; }
.ep-select.is-drop-up .ep-select__trigger { border-radius: 0 0 13px 13px; }
.ep-select.is-drop-up .ep-select__menu { top: auto; bottom: calc(100% - 1px); border-radius: 13px 13px 0 0; box-shadow: 0 -20px 44px rgba(17,17,15,.12); }
.ep-form__wide,.ep-form__error,.ep-form footer { grid-column: 1 / -1; }
.ep-address small { min-height: 20px; font-size: 12px; font-weight: 600; line-height: 1.45; }
.ep-suggestions { position: absolute; top: calc(100% - 25px); left: 0; right: 0; z-index: 4; display: none; overflow: hidden; background: #fff; border: 1px solid #d9d9d1; border-radius: 13px; box-shadow: 0 16px 38px rgba(17,17,15,.14); }
.ep-suggestions.is-open { display: grid; }
.ep-suggestions > p { margin: 0; padding: 10px 15px 7px; color: #62625c; font: 600 12px/1.35 Manrope,Arial,sans-serif; }
.ep-suggestions button { display: grid; gap: 2px; padding: 13px 15px; color: #11110f; background: transparent; border: 0; border-bottom: 1px solid #e9e9e4; cursor: pointer; font: 600 14px/1.4 Manrope,Arial,sans-serif; text-align: left; }
.ep-suggestions button span { font-weight: 700; }
.ep-suggestions button small { overflow: hidden; color: #62625c; font-size: 12px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.ep-suggestions button:last-child { border-bottom: 0; }
.ep-suggestions button:hover { background: #efefe9; }
.ep-form__error { min-height: 22px; margin: 0; color: #b62f25; font-size: 14px; font-weight: 700; }
.ep-form footer { display: grid; grid-template-columns: minmax(130px,.45fr) minmax(220px,1fr); gap: 10px; }
.ep-button { min-height: 54px; padding: 0 20px; border: 1px solid #d9d9d1; border-radius: 14px; cursor: pointer; font: 800 16px/1 Manrope,Arial,sans-serif; }
.ep-button--quiet { color: #11110f; background: #fff; }
.ep-button--primary { color: #fff; background: #11110f; border-color: #11110f; }
.ep-button:disabled { cursor: wait; opacity: .62; }

@media (max-width: 600px) {
  .ep-backdrop { align-items: end; padding: 0; }
  .ep-dialog { max-height: calc(100dvh - 12px); border-radius: 24px 24px 0 0; }
  .ep-dialog__head { padding: 22px 18px 18px; }
  .ep-dialog__head p { font-size: 14px; }
  .ep-dialog__close { width: 44px; height: 44px; flex-basis: 44px; }
  .ep-form { grid-template-columns: 1fr; gap: 13px; padding: 18px; }
  .ep-form__wide,.ep-form__error,.ep-form footer { grid-column: auto; }
  .ep-form footer { grid-template-columns: 1fr; }
  .ep-button--primary { grid-row: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ep-backdrop { backdrop-filter: none; }
}
