.order-dialog {
  --order-ink: #153e35;
  --order-paper: #faf9f5;
  width: min(620px, calc(100% - 32px));
  max-width: none;
  max-height: min(92dvh, 940px);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #fff9;
  border-radius: 26px;
  background: var(--order-paper);
  color: var(--order-ink);
  box-shadow: 0 28px 100px #05271a42;
  font-family: inherit;
  text-align: left;
  scrollbar-width: thin;
  scrollbar-color: #bdcfc3 var(--order-paper);
}
.order-dialog::backdrop { background: #0a241eb3; backdrop-filter: blur(7px); }
.order-dialog * { box-sizing: border-box; }
.order-dialog[open] { animation: order-enter .24s ease-out; }
.order-dialog__body { position: relative; padding: 36px; }
.order-dialog__close {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid #dbe4db;
  border-radius: 50%;
  background: #fff;
  color: var(--order-ink);
  cursor: pointer;
}
.order-dialog__close:hover { background: #eaf0e7; }
.order-dialog__kicker { margin: 3px 36px 12px 0; font-size: 10px; font-weight: 700; letter-spacing: .15em; line-height: 1.6; }
.order-dialog h2 { margin: 0 28px 14px 0; color: var(--order-ink); font-size: clamp(26px, 4vw, 34px); font-weight: 600; line-height: 1.12; letter-spacing: -.04em; }
.order-dialog__intro { margin: 0 0 24px; color: #61716b; font-size: 13px; line-height: 1.65; }
.order-dialog__form { display: grid; gap: 16px; margin: 0; }
.order-dialog__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.order-dialog__grid--service { grid-template-columns: 1.6fr 1fr; }
.order-dialog__field { display: grid; align-content: start; gap: 7px; min-width: 0; font-size: 12px; font-weight: 600; line-height: 1.5; }
.order-dialog__field input, .order-dialog__field textarea, .order-dialog__field select {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  margin: 0;
  padding: 12px 13px;
  border: 1px solid #d7e0d6;
  border-radius: 10px;
  background: #fff;
  color: var(--order-ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  transition: border-color .15s, box-shadow .15s;
}
.order-dialog__field input[type=number] { appearance: auto; }
.order-dialog__field select { padding-right: 32px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23153e35' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 11px center; cursor: pointer; }
.order-dialog__field textarea { resize: vertical; min-height: 76px; }
.order-dialog__field input::placeholder, .order-dialog__field textarea::placeholder { color: #89938d; opacity: 1; }
.order-dialog__field small { color: #718077; font-size: 10px; font-weight: 400; line-height: 1.55; }
.order-dialog__field input:focus, .order-dialog__field textarea:focus, .order-dialog__field select:focus { outline: none; border-color: #41735a; box-shadow: 0 0 0 3px #41735a1c; }
.order-dialog__express { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #d9e3d4; border-radius: 12px; background: #eff3e9; cursor: pointer; }
.order-dialog__express input { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; accent-color: #275f43; cursor: pointer; }
.order-dialog__express span { display: grid; gap: 2px; flex: 1; }
.order-dialog__express strong { font-size: 12px; font-weight: 600; }
.order-dialog__express small { color: #61716b; font-size: 10px; line-height: 1.5; }
.order-dialog__express svg { flex-shrink: 0; color: #607441; }
.order-dialog__summary { padding: 17px 18px; border-radius: 14px; background: #e8eee1; }
.order-dialog__summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.order-dialog__summary span { font-size: 12px; font-weight: 600; }
.order-dialog__summary output { font-size: 24px; font-weight: 600; line-height: 1.3; letter-spacing: -.04em; white-space: nowrap; }
.order-dialog__summary p { margin: 7px 0 0; color: #64725d; font-size: 10px; line-height: 1.6; }
.order-dialog__notice { margin: -3px 0 0; color: #708075; font-size: 10px; line-height: 1.6; }
.order-dialog__submit { display: flex; align-items: center; justify-content: center; gap: 15px; width: 100%; min-height: 51px; margin: 0; padding: 13px 20px; border: 0; border-radius: 10px; background: #153e35; color: #fff; font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; transition: background .16s, transform .16s; }
.order-dialog__submit:hover { background: #245447; }
.order-dialog__submit:active { transform: translateY(1px); }
.order-dialog__alternative { margin: -1px 0 0; color: #6c7a71; font-size: 10px; line-height: 1.7; text-align: center; }
.order-dialog__alternative a { color: var(--order-ink); text-decoration: underline; text-underline-offset: 3px; }
.order-dialog button:focus-visible, .order-dialog a:focus-visible, .order-dialog__express input:focus-visible { outline: 2px solid #4d775a; outline-offset: 4px; }
@keyframes order-enter { from { opacity: 0; transform: translateY(12px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 520px) {
  .order-dialog { width: calc(100% - 20px); max-height: 92dvh; border-radius: 20px; }
  .order-dialog__body { padding: 27px 22px 22px; }
  .order-dialog__close { top: 13px; right: 13px; width: 33px; height: 33px; }
  .order-dialog__grid { grid-template-columns: 1fr; gap: 16px; }
  .order-dialog__grid--service { grid-template-columns: 1fr; }
  .order-dialog__field input, .order-dialog__field textarea, .order-dialog__field select { font-size: 16px; }
  .order-dialog__summary > div { flex-wrap: wrap; gap: 5px; }
  .order-dialog__summary output { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) { .order-dialog[open] { animation: none; } .order-dialog * { transition: none; } }
