.ch-contact-page {
    padding: 42px 0 60px;
    background: transparent;
}

.ch-contact-page__container {
    width: min(1320px, calc(100% - 64px));
    margin: 0 auto;
}

.ch-contact-page__hero { margin-bottom: 36px; }
.ch-contact-page__breadcrumb { display: flex; gap: 9px; margin-bottom: 16px; color: #7c8394; font-size: 12px; font-weight: 600; }
.ch-contact-page__breadcrumb span:last-child { color: #e61f52; font-weight: 700; }
.ch-contact-page__hero h1 { margin: 0; color: #141922; font-size: clamp(30px, 3vw, 44px); font-weight: 800; line-height: 1.08; }
.ch-contact-page__hero p { max-width: 890px; margin: 16px 0 0; color: #667084; font-size: clamp(16px, 1.25vw, 22px); line-height: 1.42; }

.ch-contact-page__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 18px; margin-bottom: 52px; }
.ch-contact-page__form-card, .ch-contact-page__info-card, .ch-contact-page__map-card { border-radius: 16px; }
.ch-contact-page__form-card { padding: 30px; background: #f7f8f9; }
.ch-contact-page__form-card h2 { margin: 0 0 22px; color: #2a2d35; font-size: 34px; font-weight: 600; }

.ch-contact-page__cf7 form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ch-contact-page__cf7 label { display: block; margin: 0 0 8px; color: #3a3f49; font-size: 14px; font-weight: 600; }
.ch-contact-page__cf7 input:not([type="submit"]), .ch-contact-page__cf7 select, .ch-contact-page__cf7 textarea { width: 100%; margin: 0; border: 1px solid #d8dde5; border-radius: 18px; background: #f6f7f8; box-shadow: none; color: #2e3440; font-size: 16px; line-height: 1.35; }
.ch-contact-page__cf7 input:not([type="submit"]), .ch-contact-page__cf7 select { height: 44px; padding: 0 16px; }
.ch-contact-page__cf7 textarea { min-height: 120px; padding: 14px 16px; resize: vertical; }
.ch-contact-page__cf7 .wpcf7-submit { min-width: 188px; height: 48px; margin-top: 4px; padding: 0 22px; border: 0; border-radius: 20px; background: #ea1d56; color: #fff; font-size: 16px; font-weight: 700; }
.ch-contact-page__cf7 form > p:nth-child(5), .ch-contact-page__cf7 form > p:last-child { grid-column: 1 / -1; }

.ch-contact-page__info-list { display: flex; flex-direction: column; gap: 14px; }
.ch-contact-page__info-card { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px; background: #eceef1; }
.ch-contact-page__info-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #f8dde6; color: #de2c60; flex: 0 0 auto; }
.ch-contact-page__info-icon svg { width: 20px; height: 20px; fill: currentColor; }
.ch-contact-page__info-card h3 { margin: 2px 0 6px; color: #db1f57; font-size: 14px; font-weight: 700; }
.ch-contact-page__info-main { margin: 0; color: #252a33; font-size: 20px; font-weight: 700; line-height: 1.18; }
.ch-contact-page__info-sub { margin: 4px 0 0; color: #6a7284; font-size: 16px; line-height: 1.35; }
.ch-contact-page__info-sub--dark { color: #2f343d; font-weight: 600; }

.ch-contact-page__map { height: 460px; overflow: hidden; border-radius: 24px; background: #d8e3d8; }
.ch-contact-page__map iframe { width: 100%; height: 100%; border: 0; }
.ch-contact-page__map-wrap { position: relative; }
.ch-contact-page__map-card { position: absolute; left: 30px; bottom: 30px; width: min(390px, calc(100% - 60px)); padding: 20px 20px 18px; background: #f2f3f5; box-shadow: 0 12px 28px rgba(21, 28, 39, 0.12); }
.ch-contact-page__map-card h4 { margin: 0 0 8px; color: #252a33; font-size: 22px; font-weight: 700; }
.ch-contact-page__map-card p { margin: 0 0 10px; color: #656f82; font-size: 16px; }
.ch-contact-page__map-card a { color: #df2057; font-size: 16px; font-weight: 700; text-decoration: none; }

@media only screen and (max-width: 849px) {
    .ch-contact-page { padding: 28px 0 40px; }
    .ch-contact-page__container { width: calc(100% - 32px); }
    .ch-contact-page__hero { margin-bottom: 24px; }
    .ch-contact-page__hero h1 { font-size: 32px; }
    .ch-contact-page__hero p { font-size: 16px; }
    .ch-contact-page__grid { grid-template-columns: 1fr; gap: 14px; margin-bottom: 30px; }
    .ch-contact-page__form-card { padding: 20px 14px; }
    .ch-contact-page__form-card h2 { margin-bottom: 16px; font-size: 28px; }
    .ch-contact-page__cf7 form { grid-template-columns: 1fr; }
    .ch-contact-page__cf7 .wpcf7-submit { width: 100%; min-width: 0; height: 46px; }
    .ch-contact-page__map { height: 320px; }
    .ch-contact-page__map-card { left: 14px; right: 14px; bottom: 14px; width: auto; padding: 18px 16px; }
}
