/* Контакты: общая дизайн-система и компоненты остаются в styles.css. */
.contact-page :where(.desktop-nav, .menu-panel nav) [aria-current="page"] { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: .5em; }
.contact-hero { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 1.5rem 4rem; padding-top: 4rem; scroll-margin-top: calc(var(--header-height) + 1.5rem); }
.contact-hero h1 { max-width: 16ch; font-size: 4rem; line-height: 1.12; letter-spacing: -.03em; }
.contact-hero-intro { grid-column: 1; max-width: 39rem; }
.contact-geometry { grid-column: 2; grid-row: 1 / 3; align-self: center; justify-self: end; width: min(100%, 17.5rem); }
.contact-geometry svg { display: block; width: 100%; height: auto; }
.contact-diagram-line { stroke: var(--border-control); stroke-width: 1; }
.contact-diagram-ink { stroke: var(--text-secondary); stroke-width: 1; }
.contact-diagram-blue { fill: var(--accent); }
.contact-geometry figcaption { margin-top: 1rem; color: var(--text-secondary); font-size: .875rem; }
.contact-start-button { grid-column: 1 / -1; justify-content: space-between; width: 100%; min-height: 5.5rem; margin-top: 1.5rem; padding: 1.5rem 2rem; font-size: 1.375rem; text-align: left; }
.contact-start-button svg { width: 2rem; height: 2rem; }
.contact-hero-status { grid-column: 1 / -1; color: var(--text-secondary); font-size: .875rem; }
.contact-guide { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4rem; align-items: start; }
.contact-guide h2 { max-width: 14ch; }
.contact-guide-note { max-width: 27rem; margin-top: 1.5rem; color: var(--text-secondary); font-size: 1rem; }
.contact-guide-list { padding: 0; margin: 0; list-style: none; }
.contact-guide-list li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1.5rem; border-top: 1px solid var(--border-subtle); padding-block: 1.5rem; }
.contact-guide-list li:last-child { border-bottom: 1px solid var(--border-subtle); }
.contact-guide-list h3 { font-size: 1.375rem; line-height: 1.36; }
.contact-guide-list p { margin-top: .75rem; color: var(--text-secondary); }
.contact-discussion { padding-block: 4rem; background: var(--surface); }
.contact-discussion h2 { max-width: 22ch; }
.contact-discussion-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 3rem 0 0; padding: 2rem 0 0; border-top: 1px solid var(--border-control); list-style: none; }
.contact-discussion-list li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: 1rem; align-items: baseline; }
.contact-discussion-list h3 { font-size: 1.5rem; line-height: 1.33; }
.contact-discussion-list .step-number { font-size: 1.25rem; }

@media (prefers-reduced-motion: no-preference) {
  .contact-geometry svg { animation: contact-connect 450ms var(--ease-out); }
}
@keyframes contact-connect { from { opacity: .65; transform: translateX(-8px); } to { opacity: 1; transform: none; } }

@media (max-width: 1199px) {
  .contact-hero { gap: 1.5rem 2rem; padding-top: 3.5rem; }
  .contact-hero h1 { font-size: 3rem; }
  .contact-start-button { min-height: 5rem; }
  .contact-guide { gap: 2rem; }
  .contact-discussion-list { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .contact-discussion-list h3 { font-size: 1.375rem; }
}

@media (max-width: 767px) {
  .contact-hero { display: block; padding-top: 2.5rem; }
  .contact-hero h1 { max-width: 16ch; font-size: 2.25rem; line-height: 1.15; letter-spacing: -.02em; }
  .contact-hero-intro { margin-top: 1.5rem; }
  .contact-geometry { display: none; }
  .contact-start-button { flex-wrap: nowrap; min-height: 4.5rem; margin-top: 2rem; padding: 1.25rem; gap: 1rem; font-size: 1.125rem; }
  .contact-start-button svg { width: 1.5rem; height: 1.5rem; }
  .contact-hero-status { margin-top: 1rem; }
  .contact-guide { display: block; }
  .contact-guide h2 { max-width: none; }
  .contact-guide-note { max-width: none; margin-top: 1rem; }
  .contact-guide-list { margin-top: 2rem; }
  .contact-guide-list li { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .contact-guide-list .step-number { font-size: 1.25rem; }
  .contact-guide-list h3 { font-size: 1.25rem; line-height: 1.4; }
  .contact-discussion { padding-block: 3rem; }
  .contact-discussion-list { margin-top: 2rem; padding-top: 1.5rem; }
  .contact-discussion-list h3 { font-size: 1.25rem; line-height: 1.4; }
}
