.contact-page { background: var(--theme-canvas); }
.contact-page #contact-content { padding: 28px 0 76px; }
.contact-page-heading { margin-bottom: 32px; }
.contact-page-heading .service-breadcrumb { margin-bottom: 20px; }
.contact-page-heading h1 {
    margin: 0;
    color: var(--theme-ink);
    font-size: clamp(34px, 3.2vw, 46px);
    font-weight: 850;
    line-height: 1.16;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
}
.contact-page-heading > p {
    max-width: 790px;
    margin: 14px 0 0;
    color: var(--theme-muted);
    font-size: 16px;
    line-height: 1.75;
    white-space: pre-line;
}
.contact-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 30px;
}
.contact-panels--single { grid-template-columns: minmax(0, 1fr); max-width: 740px; }
.contact-panel {
    min-width: 0;
    padding: 32px;
    border: 1px solid var(--theme-line);
    border-radius: 7px;
    color: var(--theme-ink);
    background: var(--theme-panel);
}
.contact-panel__title {
    margin: 0;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--theme-line);
    font-size: 23px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -.02em;
}
.contact-info-list { display: grid; gap: 29px; padding: 30px 0; }
.contact-info-row { display: grid; grid-template-columns: 29px minmax(0, 1fr); align-items: start; gap: 16px; }
.contact-info-row__icon { display: flex; padding-top: 1px; color: var(--theme-accent-deep); }
.contact-info-row__icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.contact-info-row--whatsapp .contact-info-row__icon { color: #128443; }
.contact-info-row__label { display: block; margin-bottom: 9px; color: var(--theme-muted); font-size: 14px; line-height: 1.5; }
.contact-info-row a,
.contact-info-row address,
.contact-info-row p {
    display: block;
    margin: 0;
    color: var(--theme-ink);
    font-size: 16px;
    font-weight: 750;
    font-style: normal;
    line-height: 1.65;
    overflow-wrap: anywhere;
    white-space: pre-line;
}
.contact-info-row a { width: fit-content; }
.contact-info-row a:hover { color: var(--theme-accent-deep); }
.contact-location { padding-top: 25px; border-top: 1px solid var(--theme-line); }
.contact-location h3 { margin: 0; color: var(--theme-muted); font-size: 14px; font-weight: 600; line-height: 1.5; }
.contact-location > p { max-width: 380px; margin: 13px 0 19px; color: var(--theme-muted); font-size: 14px; line-height: 1.7; }
.contact-location__map {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 12px 17px;
    border: 1px solid var(--theme-accent);
    border-radius: 5px;
    color: var(--theme-accent-text);
    background: var(--theme-accent);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}
.contact-location__map:hover { border-color: var(--theme-accent-hover); background: var(--theme-accent-hover); }
.contact-location__map svg { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.contact-location__map svg:last-child { width: 16px; height: 16px; flex-basis: 16px; }
.contact-message-form { display: grid; gap: 23px; padding-top: 30px; }
.contact-message-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.contact-field { display: grid; min-width: 0; gap: 11px; }
.contact-field > span { color: var(--theme-ink); font-size: 14px; font-weight: 800; line-height: 1.5; }
.contact-required { color: var(--theme-accent-deep); }
.contact-field input,
.contact-field textarea {
    width: 100%;
    min-width: 0;
    min-height: 55px;
    padding: 15px 16px;
    border: 1px solid var(--theme-line);
    border-radius: 6px;
    color: var(--theme-ink);
    background: var(--theme-canvas);
    font: inherit;
    font-size: 15px;
    line-height: 1.5;
}
.contact-field textarea { min-height: 165px; resize: vertical; }
.contact-field input::placeholder,
.contact-field textarea::placeholder { color: var(--theme-muted); opacity: 1; }
.contact-field input:hover,
.contact-field textarea:hover { border-color: color-mix(in srgb, var(--theme-ink) 30%, var(--theme-line)); }
.contact-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--theme-muted); font-size: 12px; line-height: 1.7; }
.contact-consent input { width: 15px; height: 15px; flex: 0 0 15px; margin: 3px 0 0; accent-color: #128443; }
.contact-message-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    justify-self: start;
    min-height: 51px;
    padding: 14px 20px;
    border: 1px solid #128443;
    border-radius: 5px;
    color: #fff;
    background: #128443;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
    cursor: pointer;
}
.contact-message-form__submit:hover { border-color: #0d7038; background: #0d7038; }
.contact-message-form__submit svg { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.contact-message-form__submit svg:last-child { width: 19px; height: 19px; flex-basis: 19px; margin-left: 6px; }
.contact-message-form__help { margin: -7px 0 0; color: var(--theme-muted); font-size: 12px; line-height: 1.75; }
.contact-empty { margin: 0; padding: 24px; border: 1px solid var(--theme-line); border-radius: 7px; color: var(--theme-muted); background: var(--theme-panel); line-height: 1.75; }
.contact-page main a:focus-visible,
.contact-field input:focus-visible,
.contact-field textarea:focus-visible,
.contact-consent input:focus-visible,
.contact-message-form__submit:focus-visible { outline: 3px solid var(--theme-accent-deep); outline-offset: 4px; }
.contact-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1100px) {
    .contact-panels { gap: 24px; }
    .contact-panel { padding: 27px; }
    .contact-message-form__row { gap: 15px; }
    .contact-field input, .contact-field textarea { padding-inline: 13px; }
}
@media (max-width: 800px) {
    .contact-page #contact-content { padding-block: 23px 48px; }
    .contact-panels { grid-template-columns: minmax(0, 1fr); gap: 25px; }
    .contact-panels--single { max-width: none; }
    .contact-page-heading { margin-bottom: 27px; }
    .contact-page-heading .service-breadcrumb { margin-bottom: 17px; }
    .contact-page-heading h1 { font-size: 37px; }
    .contact-page-heading > p { font-size: 15px; }
    .contact-panel { padding: 29px; }
    .contact-panel__title { font-size: 22px; padding-bottom: 23px; }
    .contact-info-list { gap: 25px; padding-block: 27px; }
}
@media (max-width: 480px) {
    .contact-panel { padding: 24px 21px; }
    .contact-panel__title { font-size: 21px; }
    .contact-message-form__row { grid-template-columns: minmax(0, 1fr); gap: 23px; }
    .contact-info-row { grid-template-columns: 25px minmax(0, 1fr); gap: 13px; }
    .contact-info-row__icon svg { width: 24px; height: 24px; }
    .contact-info-row a, .contact-info-row address, .contact-info-row p { font-size: 15px; }
    .contact-message-form__submit { justify-self: stretch; padding-inline: 14px; font-size: 13px; }
}
