/* Shared storefront dialogs. No jQuery UI or Fancybox layout dependencies. */
html.kk-modal-open, body.kk-modal-open { overflow: hidden; }
.kk-modal { box-sizing: border-box; inset: 0; width: min(520px, calc(100% - 32px)); max-width: none; height: fit-content; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 0; border-radius: 22px; background: #fff; color: #202b38; box-shadow: 0 24px 80px #14203340; overflow: auto; overscroll-behavior: contain; }
.kk-modal:not([open]), .kk-modal [hidden] { display: none !important; }
.kk-modal::backdrop { background: rgb(20 32 48 / 55%); }
.kk-modal *, .kk-modal *::before, .kk-modal *::after { box-sizing: border-box; }
.kk-modal--wide { width: min(900px, calc(100% - 32px)); }
.kk-modal__header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; gap: 16px; padding: 16px 20px 16px 24px; border-bottom: 1px solid #e6ebef; background: #fff; }
.kk-modal__header h2 { flex: 1; min-width: 0; margin: 0; color: #202b38; font-size: 22px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.kk-modal__close { display: flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #f3f5f7; color: #596675; font: 30px/1 Arial,sans-serif; cursor: pointer; }
.kk-modal__close:hover { background: #e8ecf0; color: #202b38; }
.kk-modal__body { padding: 24px; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.kk-modal__body p { margin: 0 0 16px; font-size: inherit; line-height: inherit; }
.kk-modal__lead { color: #647181; }
.kk-modal__product { margin: 0 0 20px; padding: 12px 14px; border-radius: 10px; background: #f7f9fb; color: #344253; font-size: 14px; }
.kk-modal__field { display: block; margin-bottom: 16px; }
.kk-modal__field > span { display: block; margin-bottom: 7px; color: #344253; font-size: 15px; font-weight: 600; }
.kk-modal__field input, .kk-modal__field textarea { display: block; width: 100%; min-width: 0; height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #cdd6df; border-radius: 10px; background: #fff; color: #202b38; font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none; }
.kk-modal__field textarea { height: auto; min-height: 90px; resize: vertical; }
.kk-modal__field input:focus, .kk-modal__field textarea:focus { border-color: #ec890f; outline: 3px solid #ff961f26; }
.kk-modal__field small { display: block; margin-top: 6px; color: #647181; font-size: 12px; }
.kk-modal__button { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 50px; padding: 12px 16px; border: 0; border-radius: 10px; background: #ff9d1f; color: #202b38; font: inherit; font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; }
.kk-modal__button:hover { background: #f38b0a; color: #202b38; text-decoration: none; }
.kk-modal__button:disabled { opacity: .65; cursor: wait; }
.kk-modal__button--secondary { background: #f0f3f6; }
.kk-modal__actions { display: flex; gap: 12px; margin-top: 20px; }
.kk-modal button:focus-visible, .kk-modal a:focus-visible { outline: 3px solid #c56a00; outline-offset: 2px; }
.kk-modal__error { margin-bottom: 16px; padding: 12px; border-radius: 9px; background: #fff0ee; color: #a63027; font-size: 14px; }
.kk-modal__loading { padding: 30px 0; color: #647181; text-align: center; }
.kk-modal__success { text-align: center; }
.kk-modal__success h3 { margin: 14px 0 10px; font-size: 22px; font-weight: 700; }
.kk-modal__success-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 16px; background: #e9f6ef; color: #24824f; font-size: 24px; }
.kk-modal .kk-modal__footnote { margin: 12px 0 0; color: #647181; font-size: 12px; text-align: center; }
.kk-office { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.kk-office__details h3 { margin: 0 0 16px; font-size: 21px; font-weight: 700; line-height: 1.4; }
.kk-office__details dl { margin: 0; }
.kk-office__details dt { margin-top: 16px; color: #647181; font-weight: 500; }
.kk-office__details dd { margin: 4px 0 0; }
.kk-office__map { min-height: 260px; height: 320px; overflow: hidden; border: 1px solid #e6ebef; border-radius: 12px; background: #f7f9fb; }
.kk-office__map-status { padding: 24px; color: #647181; font-size: 14px; }
.kk-office__map--unavailable { display: flex; align-items: center; padding: 24px; color: #647181; font-size: 14px; }
.kk-office__map-link { display: inline-block; margin-top: 12px; }
.kk-modal__frame { display: block; width: 100%; height: min(520px, 65vh); min-height: 260px; border: 0; }
.kk-gallery__image { display: block; width: 100%; height: min(560px, 65vh); object-fit: contain; }
.kk-gallery__caption { margin-top: 12px; color: #647181; text-align: center; font-size: 14px; }
.kk-gallery__nav { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 16px; }
.kk-gallery__nav button { width: 48px; height: 44px; border: 0; border-radius: 9px; background: #f0f3f6; color: #202b38; font-size: 22px; cursor: pointer; }
.kk-gallery__counter { min-width: 50px; text-align: center; font-size: 14px; }
@media (max-width: 600px) {
  .kk-modal { border-radius: 18px; }
  .kk-modal__header { padding: 12px 14px 12px 18px; gap: 10px; }
  .kk-modal__header h2 { font-size: 20px; }
  .kk-modal__body { padding: 18px; }
  .kk-modal__actions { flex-direction: column; }
  .kk-office { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .kk-office__map { height: 260px; }
  .kk-gallery__image { height: min(480px, 55vh); }
}
