/* R109 — contact stability, clear validation and explicit responsive grid. */
.contacts-page .field:has([required]) > span::after { content: " *"; color: #efc96f; font-weight: 700; }
.contacts-page .form-consent-v14:has([required]) > span::before { content: "* "; color: #efc96f; font-weight: 700; }
.contacts-page .r98-validation-summary {
  margin: 2px 0 8px; padding: 16px 18px;
  border: 1px solid rgba(255,126,113,.62); border-left: 3px solid #ff8d80;
  border-radius: 10px; background: rgba(156,42,38,.14); color: #ffd7d2;
  font-size: 15px; line-height: 1.55;
}
.contacts-page .r98-validation-visible input[required]:invalid,
.contacts-page .r98-validation-visible textarea[required]:invalid {
  border-color: #ff8d80 !important;
  box-shadow: 0 0 0 3px rgba(255,105,92,.13) !important;
  background: rgba(110,27,27,.16) !important;
}
.contacts-page .r98-validation-visible .form-consent-v14:has(input:invalid) {
  padding: 14px; border: 1px solid rgba(255,126,113,.55);
  border-radius: 10px; background: rgba(110,27,27,.12);
}
.contacts-page .r98-field-valid > span::after { color: #79d9ad; }

/* The historical bundle contains competing two- and three-column layouts.
   Keep one authoritative placement map after every bundled layer. */
body.contacts-page .r20-contact-grid {
  display: grid !important;
  grid-template-areas: "identity form context" !important;
  grid-template-columns: minmax(280px,.72fr) minmax(560px,1.45fr) minmax(280px,.72fr) !important;
  gap: 36px !important;
  align-items: start !important;
}
body.contacts-page .r20-contact-identity { grid-area: identity !important; min-width: 0 !important; }
body.contacts-page .r20-contact-form-column { grid-area: form !important; min-width: 0 !important; }
body.contacts-page .r20-contact-context {
  grid-area: context !important;
  grid-column: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 16px !important;
  min-width: 0 !important;
}
body.contacts-page .r20-contact-identity .telegram-contact-card {
  grid-template-columns: minmax(0,1fr) !important;
  min-width: 0 !important;
  gap: 18px !important;
}
body.contacts-page .r20-contact-identity .telegram-contact-mark { display: none !important; }
body.contacts-page .r20-contact-identity .telegram-contact-copy,
body.contacts-page .r20-contact-identity .telegram-actions { min-width: 0 !important; }
body.contacts-page .r20-contact-identity .telegram-actions {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
}
body.contacts-page .r20-contact-identity .telegram-actions > * {
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
}

@media (min-width:901px) and (max-width:1600px) {
  body.contacts-page .r20-contact-grid {
    grid-template-areas: "identity form" "context context" !important;
    grid-template-columns: minmax(260px,.72fr) minmax(0,1.45fr) !important;
  }
  body.contacts-page .r20-contact-identity,
  body.contacts-page .r20-contact-context { position: static !important; top: auto !important; }
  body.contacts-page .r20-contact-context {
    grid-column: 1 / -1 !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    clear: both;
    margin-top: 10px;
  }
}
@media (max-width:900px) {
  body.contacts-page .r20-contact-grid {
    display: grid !important;
    grid-template-areas: "identity" "form" "context" !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 28px !important;
  }
  body.contacts-page .r20-contact-identity,
  body.contacts-page .r20-contact-form-column,
  body.contacts-page .r20-contact-context {
    grid-column: 1 !important; min-width: 0 !important; position: static !important;
  }
  body.contacts-page .r20-contact-identity { grid-row: 1 !important; }
  body.contacts-page .r20-contact-form-column { grid-row: 2 !important; }
  body.contacts-page .r20-contact-context { grid-row: 3 !important; }
}
@media (max-width:760px) {
  body.contacts-page .r20-contact-context { grid-template-columns: minmax(0,1fr) !important; }
}
@media (max-width:620px) {
  .contacts-page .contact-form input:not([type="hidden"]),
  .contacts-page .contact-form textarea,
  .contacts-page .contact-form button,
  .contacts-page .topic-option { min-height: 48px; }
  .contacts-page .contact-form .field > span,
  .contacts-page .topic-picker legend { font-size: 13px !important; }
}

/* Specificity lock: older bundled selectors include body version classes and
   !important. These rules deliberately outrank them. */
html body#top.site-v44r20.contacts-page .r20-contact-grid {
  display: grid !important;
  grid-template-areas: "identity form context" !important;
  grid-template-columns: minmax(280px,.72fr) minmax(560px,1.45fr) minmax(280px,.72fr) !important;
  gap: 36px !important;
}
html body#top.site-v44r20.contacts-page .r20-contact-identity { grid-area: identity !important; min-width: 0 !important; }
html body#top.site-v44r20.contacts-page .r20-contact-form-column { grid-area: form !important; min-width: 0 !important; }
html body#top.site-v44r20.contacts-page .r20-contact-context {
  grid-area: context !important;
  grid-column: auto !important;
  grid-template-columns: minmax(0,1fr) !important;
  min-width: 0 !important;
}
html body#top.site-v44r19.contacts-page .r20-contact-identity .telegram-contact-card {
  grid-template-columns: minmax(0,1fr) !important;
  min-width: 0 !important;
}

@media (min-width:1101px) and (max-width:1600px) {
  html body#top.site-v44r20.contacts-page .r20-contact-grid {
    grid-template-areas: "identity form" "context context" !important;
    grid-template-columns: minmax(300px,.72fr) minmax(0,1.45fr) !important;
  }
  html body#top.site-v44r20.contacts-page .r20-contact-identity,
  html body#top.site-v44r20.contacts-page .r20-contact-context { position: static !important; top: auto !important; }
  html body#top.site-v44r20.contacts-page .r20-contact-context {
    grid-column: 1 / -1 !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:1100px) {
  html body#top.site-v44r20.contacts-page .r20-contact-grid {
    grid-template-areas: "identity" "form" "context" !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 28px !important;
  }
  html body#top.site-v44r20.contacts-page .r20-contact-identity,
  html body#top.site-v44r20.contacts-page .r20-contact-form-column,
  html body#top.site-v44r20.contacts-page .r20-contact-context {
    grid-column: 1 !important;
    position: static !important;
    top: auto !important;
    min-width: 0 !important;
  }
  html body#top.site-v44r20.contacts-page .r20-contact-identity { grid-row: 1 !important; }
  html body#top.site-v44r20.contacts-page .r20-contact-form-column { grid-row: 2 !important; }
  html body#top.site-v44r20.contacts-page .r20-contact-context { grid-row: 3 !important; }
}

@media (max-width:760px) {
  html body#top.site-v44r20.contacts-page .r20-contact-context { grid-template-columns: minmax(0,1fr) !important; }
}
