.ks-phone {
  color: var(--ks-text);
  display: inline-block;
  font-family: var(--ks-font-body);
  font-variant-numeric: lining-nums tabular-nums;
  letter-spacing: .015em;
  text-decoration: none;
  white-space: nowrap;
}

.ks-phone:hover { color: var(--ks-text); }
.container-header .ks-contact-strip .ks-phone,
.container-header .ks-contact-strip .ks-phone:hover { color: var(--ks-text); }
.ks-phone__accent {
  color: var(--ks-red);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--ks-gold);
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}

.ks-contact-strip {
  background: var(--ks-bg-soft);
  border-bottom: 1px solid var(--ks-border);
  min-height: 44px;
}

.ks-contact-strip__inner {
  align-items: center;
  display: grid;
  gap: var(--ks-space-5);
  grid-template-columns: 1fr auto auto;
  min-height: 44px;
}

.ks-contact-strip__inner > span { color: var(--ks-text-muted); font-size: var(--ks-fs-sm); }
.ks-contact-strip .ks-button { min-height: 36px; padding-block: .4rem; }

.ks-contact-dock { display: none; }

.ks-contact-card {
  background: var(--ks-bg-soft);
  border: 1px solid var(--ks-border);
  border-radius: var(--ks-radius-lg);
  display: grid;
  gap: var(--ks-space-6);
  grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr);
  margin-block: var(--ks-space-7);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.ks-contact-card h2 { margin: 0 0 var(--ks-space-4); }
.ks-contact-card__copy p { color: var(--ks-text-muted); margin: 0; max-width: 34rem; }
.ks-contact-card__actions { align-self: center; text-align: center; }
.ks-phone--large { font-size: clamp(1.55rem, 4vw, 2.45rem); font-weight: 500; }
.ks-contact-card__caption,
.ks-contact-dialog__caption { color: var(--ks-red); margin: .35rem 0 var(--ks-space-5); text-align: center; }
.ks-contact-card__actions .ks-actions { justify-content: center; }

.ks-contact-footer {
  align-items: start;
  display: grid;
  gap: var(--ks-space-2);
}
.ks-contact-footer > span { color: rgb(238 233 224 / 70%); font-size: var(--ks-fs-sm); }
.container-footer .ks-contact-footer .ks-phone { color: var(--ks-bg-white); font-size: 1.05rem; }
.ks-contact-footer__open { background: none; border: 0; color: var(--ks-bg-soft); cursor: pointer; padding: .35rem 0; text-align: left; text-decoration: underline; text-underline-offset: .2em; }

.ks-contact-dialog {
  background: transparent;
  border: 0;
  color: var(--ks-text);
  max-height: min(92dvh, 900px);
  max-width: 620px;
  overflow: visible;
  padding: 0;
  width: calc(100% - 2rem);
}
.ks-contact-dialog::backdrop { background: rgb(25 21 19 / 62%); backdrop-filter: blur(2px); }
.ks-contact-dialog__surface { background: var(--ks-bg); border-radius: var(--ks-radius-lg); max-height: min(92dvh, 900px); overflow-y: auto; overscroll-behavior: contain; padding: clamp(1.5rem, 5vw, 2.5rem); position: relative; }
.ks-contact-dialog h2 { font-size: clamp(2rem, 6vw, 3rem); margin: 0 3rem var(--ks-space-3) 0; }
.ks-contact-dialog__close { align-items: center; background: transparent; border: 1px solid var(--ks-border); border-radius: 50%; color: var(--ks-text); cursor: pointer; display: flex; font-size: 1.6rem; height: 44px; justify-content: center; position: absolute; right: 1rem; top: 1rem; width: 44px; }
.ks-phone--dialog { display: block; font-size: clamp(1.45rem, 6vw, 2rem); text-align: center; }
.ks-contact-dialog__direct { color: var(--ks-text-muted); font-size: var(--ks-fs-sm); text-align: center; }
.ks-contact-form { display: grid; gap: .55rem; margin-top: var(--ks-space-5); }
.ks-contact-form label { font-weight: 600; margin-top: .4rem; }
.ks-contact-form input:not([type=checkbox]),
.ks-contact-form select,
.ks-contact-form textarea { background: var(--ks-bg-white); border: 1px solid var(--ks-border); border-radius: var(--ks-radius-sm); color: var(--ks-text); font: inherit; min-height: 48px; padding: .7rem .8rem; width: 100%; }
.ks-contact-form textarea { min-height: 88px; resize: vertical; }
.ks-contact-form input:focus-visible,
.ks-contact-form select:focus-visible,
.ks-contact-form textarea:focus-visible { border-color: var(--ks-red); outline: 3px solid rgb(139 46 46 / 18%); }
.ks-contact-form [aria-invalid=true] { border-color: var(--ks-red); }
.ks-contact-form__optional { color: var(--ks-text-muted); font-size: var(--ks-fs-sm); font-weight: 400; }
.ks-contact-form__stay { background: var(--ks-bg-soft); border-left: 3px solid var(--ks-gold); margin: .25rem 0; padding: .8rem 1rem; }
.ks-contact-form__consent { align-items: start; display: grid; font-size: var(--ks-fs-sm); gap: .65rem; grid-template-columns: 22px 1fr; line-height: 1.45; }
.ks-contact-form__consent input { height: 20px; margin-top: .15rem; width: 20px; }
.ks-contact-form__submit { margin-top: var(--ks-space-3); width: 100%; }
.ks-contact-form__submit[aria-busy=true] { cursor: progress; opacity: .72; }
.ks-contact-form__status { border-radius: var(--ks-radius-sm); outline: none; padding: 0; }
.ks-contact-form__status.is-success { background: #e6efe5; border: 1px solid #9eb59a; padding: .8rem 1rem; }
.ks-contact-form__status.is-error { background: #f5e6e3; border: 1px solid #c98b83; padding: .8rem 1rem; }
.ks-contact-form__error { color: var(--ks-red-dark); font-size: var(--ks-fs-sm); min-height: 1px; }
.ks-contact-form__trap { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 0; }
.ks-contact-dialog__telegram { margin-top: var(--ks-space-4); width: 100%; }

@media (min-width: 900px) {
  :root:has(.ks-contact-global) { --ks-header-height: 120px; }
}

@media (max-width: 899px) {
  html { scroll-padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .ks-contact-strip { display: none; }
  .ks-contact-dock {
    align-items: center;
    background: var(--ks-bg-soft);
    border-top: 1px solid var(--ks-border);
    bottom: 0;
    display: grid;
    gap: .5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    left: 0;
    min-height: 78px;
    padding: .55rem max(.65rem, env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));
    position: fixed;
    right: 0;
    z-index: 1050;
  }
  .ks-contact-dock .ks-phone { font-size: clamp(.84rem, 4.2vw, 1rem); line-height: 1.25; min-width: 0; }
  .ks-contact-dock__label { color: var(--ks-text-muted); display: block; font-size: clamp(.64rem, 3vw, .75rem); overflow: hidden; text-overflow: ellipsis; }
  .ks-contact-dock .ks-button { font-size: clamp(.74rem, 3.6vw, .9rem); min-height: 46px; padding: .65rem clamp(.65rem, 3vw, 1rem); }
  .ks-contact-is-open .ks-contact-dock { display: none; }
  .ks-contact-card { grid-template-columns: 1fr; }
  .ks-contact-dialog { margin: auto 0 0; max-height: min(88dvh, 760px); max-width: none; width: 100%; }
  .ks-contact-dialog__surface { border-radius: var(--ks-radius-lg) var(--ks-radius-lg) 0 0; max-height: min(88dvh, 760px); padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }
}

@media (max-width: 360px) {
  .ks-contact-dock { gap: .35rem; }
  .ks-contact-dock .ks-button { padding-inline: .55rem; }
  .ks-contact-card { margin-inline: calc(-1 * var(--ks-space-4)); padding-inline: var(--ks-space-4); }
}

@media (prefers-reduced-motion: reduce) {
  .ks-contact-dialog,
  .ks-contact-dialog::backdrop { scroll-behavior: auto; }
}
