/* LANVIT contact dialogs — 2026-09-14. Shared by WordPress and /robot/. */
.modal-booking {
  padding: 24px 16px;
  background: rgba(12, 22, 35, .72);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.modal-booking.active { z-index: 10000; }
.modal-booking .modal-booking__container {
  box-sizing: border-box;
  width: 580px;
  max-width: 100%;
  max-height: calc(100dvh - 48px);
  padding: 56px 48px 48px;
  display: block;
  border: 0;
  border-radius: 0;
  background: #fff;
  clip-path: polygon(0 22px, 100% 0, 100% calc(100% - 22px), 0 100%);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  color: #172a42;
}
.modal-booking .modal-booking__title {
  margin: 0 0 18px;
  padding: 0 30px 0 0;
  text-align: left;
  font-size: clamp(26px, 3vw, 32px);
  line-height: 1.16;
  letter-spacing: -.025em;
  font-weight: 700;
  text-transform: uppercase;
  color: #172a42;
  overflow-wrap: anywhere;
}
.modal-booking .modal-booking__descr {
  margin: 0 0 24px;
  text-align: left;
  font-size: 16px;
  line-height: 1.6;
  color: #657386;
}
.modal-booking .modal-booking__close {
  top: 26px; right: 20px;
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: transparent;
  cursor: pointer;
}
.modal-booking .modal-booking__close-line { width: 27px; height: 2px; background: #172a42; border-radius: 0; }
.modal-booking .modal-booking__close:hover { background: #edf3fb; }
.modal-booking .modal-booking__close:hover .modal-booking__close-line { background: #245cbb; }
.modal-booking .modal-booking__form { gap: 20px; margin: 0; }
.modal-booking .modal-booking__form > p { display: contents; }
.modal-booking .modal-booking__inp {
  box-sizing: border-box;
  width: 100%; max-width: 100%; min-height: 52px;
  padding: 12px 0;
  border: 0; border-bottom: 1px solid #8592a2; border-radius: 0;
  background: transparent; box-shadow: none;
  font: inherit; font-size: 18px; line-height: 1.5;
  color: #172a42;
  transition: border-color .18s;
}
.modal-booking .modal-booking__inp::placeholder { color: #536175; opacity: 1; }
.modal-booking .modal-booking__inp:focus { border-bottom-color: #245cbb; }
.modal-booking .modal-booking__inp[aria-invalid="true"] { border-bottom-color: #b80e29; }
.modal-booking .lvq__formlabel {
  order: 2; margin: 2px 0 0;
  font-size: 14px; font-weight: 500; line-height: 1.5; color: #172a42;
}
.modal-booking .lvq__formlabel span { color: #657386; font-weight: 400; }
.modal-booking .lvq__message { padding: 8px 0 !important; margin-top: 2px; min-height: 64px; font-size: 16px; resize: vertical; }
.modal-booking .modal-booking__privacy { order: 3; align-items: flex-start; gap: 12px; margin: 2px 0 4px; }
.modal-booking .modal-booking__privacy > p { margin: 0; font-size: 13px; line-height: 1.65; color: #657386; }
.modal-booking .modal-booking__privacy > p:empty { display: none; }
.modal-booking .modal-booking__privacy > p:first-child { flex: 0 0 22px; }
.modal-booking .modal-booking__privacy input[type="checkbox"] { width: 22px !important; height: 22px; margin: 2px 0 0; accent-color: #245cbb; cursor: pointer; }
.modal-booking .modal-booking__privacy a { color: #172a42; text-underline-offset: 3px; }
.modal-booking .wpcf7-submit {
  order: 4; align-self: flex-start;
  width: auto; max-width: 100%; min-height: 56px;
  padding: 16px 36px;
  border: 1px solid #245cbb; border-radius: 999px;
  background: #245cbb; color: #fff;
  font: inherit; font-size: 16px; font-weight: 600;
  white-space: normal; cursor: pointer;
  transition: background .18s, box-shadow .18s;
}
.modal-booking .wpcf7-submit:hover { background: #17458e; border-color: #17458e; color: #fff; box-shadow: 0 5px 18px #245cbb26; }
.modal-booking .wpcf7-submit:disabled { opacity: .65; cursor: not-allowed; }
.modal-booking .wpcf7-spinner { order: 5; margin: -18px 0 0; }
.modal-booking .wpcf7-spinner:not(.submitting *) { display: none; }
.modal-booking .wpcf7-response-output { order: 6; margin: 0; padding: 12px; font-size: 14px; line-height: 1.5; }
.modal-booking :is(button, input, textarea, a):focus-visible { outline: 2px solid #879ab5; outline-offset: 3px; }
/* Text fields use the same understated underline for mouse and keyboard focus. */
.modal-booking .modal-booking__inp:focus,
.modal-booking .modal-booking__inp:focus-visible {
  outline: none;
  border-bottom-color: #245cbb;
  box-shadow: 0 1px 0 #245cbb;
}
@media (max-width: 600px) {
  .modal-booking { padding: 12px; }
  .modal-booking .modal-booking__container {
    width: 100%; max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px);
    padding: 52px 24px 28px !important;
    clip-path: none; border-radius: 4px;
  }
  .modal-booking .modal-booking__close { top: 8px; right: 8px; }
  .modal-booking .modal-booking__title { font-size: 26px; padding-right: 0; margin-bottom: 14px; }
  .modal-booking .modal-booking__descr { font-size: 16px; line-height: 1.5; margin-bottom: 22px; }
  .modal-booking .modal-booking__form { gap: 18px; }
  .modal-booking .modal-booking__inp { font-size: 16px; }
  .modal-booking .wpcf7-submit { width: 100%; padding-inline: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .modal-booking, .modal-booking * { transition: none !important; }
}
