.contacts-hero {
    position:   relative;
    padding:    20px 0 60px;
    background: #f6f5f3;
}

.contacts-hero::before {
    content:    '';
    position:   absolute;
    inset:      0;
    background: linear-gradient(270deg, rgba(255, 255, 255, .1) 0%, #ffffff 100%);
}

.contacts-hero .container {
    position:       relative;
    display:        flex;
    flex-direction: column;
    gap:            10px;
    max-width:      1680px;
}

.contacts-hero .breadcrumbs__link { color: rgba(0, 0, 0, .5); }
.contacts-hero .breadcrumbs__link:hover { color: #000000; }
.contacts-hero .breadcrumbs__sep { color: rgba(0, 0, 0, .5); }
.contacts-hero .breadcrumbs__current { color: #000000; }

.contacts-hero__intro,
.contacts-hero__row,
.contacts-hero__map {
    width:      100%;
    max-width:  1140px;
    margin:     0 auto;
}

.contacts-hero .container > .contacts-hero__intro { margin-top: 60px; }
.contacts-hero__row { margin-top: 60px; }
.contacts-hero__map { margin-top: 60px; }

.contacts-hero__intro {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            16px;
    text-align:     center;
}

.contacts-hero__title {
    margin:      0;
    font-size:   48px;
    font-weight: 700;
    line-height: 52px;
    color:       #353329;
}

.contacts-hero__text {
    margin:      0;
    font-size:   16px;
    line-height: 20px;
    color:       #000000;
}

.contacts-hero__row {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             60px;
}

.contacts-hero__form {
    flex:           1 1 60%;
    min-width:      0;
    display:        flex;
    flex-direction: column;
    gap:            24px;
    padding:        40px;
    background:     #ffffff;
    border-radius:  16px;
}

.contacts-hero__form-title,
.contacts-hero__info-title {
    margin:      0;
    font-size:   24px;
    font-weight: 500;
    line-height: 28px;
    color:       #353329;
}

.contacts-hero__info {
    flex:           1 1 40%;
    min-width:      0;
    display:        flex;
    flex-direction: column;
    gap:            40px;
    background:     url('../../img/contacts-hero-bg.svg') center center / contain no-repeat;
}

.contact-item {
    display:     flex;
    align-items: flex-start;
    gap:         20px;
}

.contact-item__icon svg { display: block; width: 46px; height: 46px; }

.contact-item__title {
    margin:      0 0 6px;
    font-size:   18px;
    font-weight: 700;
    line-height: 24px;
    color:       #353329;
}

.contact-item__text {
    display:         block;
    margin:          0;
    font-size:       16px;
    line-height:     20px;
    color:           rgba(0, 0, 0, .5);
    text-decoration: none;
}

a.contact-item__text:hover { color: #000000; }

.contacts-hero__map {
    border-radius: 16px;
    overflow:      hidden;
}

.contacts-hero__map iframe {
    display: block;
    width:   100%;
    height:  450px;
    border:  0;
}

.contacts-hero__form .jet-form-builder-row { margin-top: 0; margin-bottom: 0; }

.contacts-hero__form .form__fields .jet-form-builder-row { flex: 1 1 0; }

.contacts-hero__form .jet-form-builder__label,
.contacts-hero__form .jet-form-builder__desc { text-align: left; }

.contacts-hero__form .jet-form-builder__field-wrap label {
    font-size:   14px;
    font-weight: 500;
    line-height: 16px;
}

.contacts-hero__form .jet-form-builder__field:not(.checkradio-field):not(.range-field) {
    width:         100%;
    max-width:     100%;
    padding:       10px 24px;
    margin:        0 0 6px;
    border:        1px solid #ebeced;
    border-radius: 4px;
    background:    #ffffff;
    font-family:   var(--font-body);
    font-size:     16px;
    line-height:   20px;
    color:         #000000;
    transition:    border-color var(--transition);
}

.contacts-hero__form .jet-form-builder__field:focus {
    outline:      none;
    border-color: var(--color-primary);
}

.contacts-hero__form .jet-form-builder__field.textarea-field { height: 200px; min-height: 200px; }

.contacts-hero__form ::placeholder { color: rgba(0, 0, 0, .5); }

.contacts-hero__form .jet-form-builder__submit-wrap {
    justify-content: flex-end;
    align-items:     flex-end;
}

.contacts-hero__form button.jet-form-builder__action-button.jet-form-builder__submit,
.contacts-hero__form .jet-form-builder__submit,
.contacts-hero__form .jet-form-builder__action-button {
    background:     var(--color-accent);
    color:          #ffffff;
    font-family:    var(--font-body);
    font-size:      18px;
    font-weight:    500;
    line-height:    24px;
    padding:        12px 20px;
    border:         0;
    border-radius:  8px;
    cursor:         pointer;
    transition:     background var(--transition);
}

.contacts-hero__form .jet-form-builder__submit:hover,
.contacts-hero__form .jet-form-builder__action-button:hover { background: var(--color-primary-hov); }

.contacts-hero__form .jet-form-builder-messages-wrap,
.contacts-hero__form .jet-form-builder-message,
.contacts-hero__form .jet-form-builder-message--success,
.contacts-hero__form .jet-form-builder-message--error {
    margin:      0;
    padding:     0;
    text-align:  center;
    font-size:   16px;
    line-height: 20px;
    border:      0;
}

.contacts-hero__form .jet-form-builder-messages-wrap:empty,
.contacts-hero__form .jet-form-builder-message:empty { display: none; }

.contacts-hero__form .field-type-checkbox-field .jet-form-builder__field-label.for-checkbox span::before {
    width:            17px;
    height:           17px;
    border:           1px solid rgba(0, 0, 0, .5);
    border-radius:    4px;
    background-color: #ffffff;
}

.contacts-hero__form .field-type-checkbox-field .jet-form-builder__field-label.for-checkbox input:checked + span::before {
    border-color:     #000000;
    background-color: #000000;
}

@media (max-width: 1024px) {
    .contacts-hero { padding: 40px 0; }

    .contacts-hero .container { gap: 20px; }

    .contacts-hero .container > .contacts-hero__intro,
    .contacts-hero__row,
    .contacts-hero__map { margin-top: 20px; }

    .contacts-hero__title { font-size: 36px; line-height: 42px; }

    .contacts-hero__row { gap: 40px; }

    .contacts-hero__form { flex-basis: 50%; padding: 20px; }

    .contacts-hero__info { flex-basis: 50%; }

    .contacts-hero__form .jet-form-builder__action-button { font-size: 18px; line-height: 22px; }

    .contacts-hero__map iframe { height: 350px; }
}

@media (max-width: 767px) {
    .contacts-hero { padding: 20px 0; }

    .contacts-hero .container { gap: 40px; }

    .contacts-hero .container > .contacts-hero__intro,
    .contacts-hero__row,
    .contacts-hero__map { margin-top: 28px; }

    .contacts-hero__title { font-size: 24px; line-height: 28px; }

    .contacts-hero__row { flex-direction: column-reverse; }

    .contacts-hero__form,
    .contacts-hero__info { flex-basis: auto; width: 100%; }

    .contacts-hero__info { gap: 16px; }

    .contact-item { gap: 10px; }

    .contacts-hero__form .form__fields { flex-wrap: wrap; }

    .contacts-hero__form .form__fields .jet-form-builder-row { flex: 1 1 100%; }

    .contacts-hero__form .jet-form-builder__action-button { font-size: 16px; line-height: 20px; }
}

.contacts-faq { padding: 60px 0; }

.contacts-faq .container { max-width: 1140px; }

.contacts-faq__row {
    display: flex;
    align-items: stretch;
    gap:      60px;
}

.contacts-faq__col,
.contacts-faq__accordion {
    flex:      1 1 0;
    min-width: 0;
}

.contacts-faq__col {
    display:        flex;
    flex-direction: column;
    gap:            24px;
}

.contacts-faq__title {
    margin:      0;
    font-size:   48px;
    font-weight: 700;
    line-height: 52px;
    color:       #353329;
}

.contacts-faq__text {
    margin:      0;
    font-size:   18px;
    font-weight: 500;
    line-height: 24px;
    color:       #353329;
}

.contacts-faq__image img {
    display:   block;
    width:     100%;
    max-width: 350px;
}

.contacts-faq__accordion {
    display:        flex;
    flex-direction: column;
    gap:            10px;
}

.contacts-faq__item {
    border-radius: 8px;
}

.contacts-faq__item-title {
    display:        flex;
    align-items:    center;
    gap:            16px;
    padding:        14px 16px;
    background:     #ffffff;
    border:         1px solid #f2f0ec;
    border-radius:  8px;
    cursor:         pointer;
    list-style:     none;
    font-family:    var(--font-body);
    font-size:      18px;
    font-weight:    500;
    line-height:    24px;
    color:          #000000;
}

.contacts-faq__item-title::-webkit-details-marker { display: none; }

.contacts-faq__item[open] > .contacts-faq__item-title {
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
}

.contacts-faq__item-icon {
    flex:   none;
    width:  15px;
    height: 15px;
    color:  #000000;
}

.contacts-faq__item-icon svg { display: block; width: 100%; height: 100%; }

.contacts-faq__item-icon .contacts-faq__icon-minus { display: none; }
.contacts-faq__item[open] .contacts-faq__item-icon .contacts-faq__icon-plus { display: none; }
.contacts-faq__item[open] .contacts-faq__item-icon .contacts-faq__icon-minus { display: block; }

.contacts-faq__item[open] .contacts-faq__item-icon,
.contacts-faq__item-title:hover .contacts-faq__item-icon { color: #55ac61; }

.contacts-faq__item-question { flex: 1 1 auto; }

.contacts-faq__item-content {
    padding:       0 16px 0 42px;
    border:        1px solid #f2f0ec;
    border-top:    0;
    border-radius: 0 0 8px 8px;
    background:    #ffffff;
}

.contacts-faq__item-content p {
    margin:      0 0 16px;
    font-size:   16px;
    font-weight: 400;
    line-height: 20px;
    color:       #000000;
}

@media (max-width: 1024px) {
    .contacts-faq { padding: 40px 0; }

    .contacts-faq__row { gap: 40px; }

    .contacts-faq__title { font-size: 36px; line-height: 42px; }

    .contacts-faq__item-title { padding: 12px; }

    .contacts-faq__item-content { padding: 0 12px 0 40px; }
}

@media (max-width: 767px) {
    .contacts-faq { padding: 40px 0; }

    .contacts-faq__row { flex-wrap: wrap; gap: 20px; }

    .contacts-faq__col,
    .contacts-faq__accordion { flex: 1 1 100%; width: 100%; }

    .contacts-faq__col { gap: 16px; }

    .contacts-faq__title { font-size: 24px; line-height: 28px; }

    .contacts-faq__text { font-size: 14px; line-height: 18px; }
}
