.page-banner.page-banner--contacts {
    background-image: url('../img/contacts.jpg');
}

.page-banner.page-banner--contacts .title h2,
.page-banner.page-banner--contacts .title h1 {
    color: #fff;
}

.contacts {
    display: block;
    padding-right: 0;
}

.contacts-city__info {
    max-width: 50%;
}

.contacts__tabs,
.about-office__tabs {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.rect-btn--contact-tab,
.rect-btn--contact-info-tab,
.rect-btn--about-office-tab,
.rect-btn--city-tab {
    border: 1px solid var(--button-blue);
    color: var(--main-blue);
    font-size: 16px;
    font-weight: 400;
    padding: 15px 25px;
    border-radius: 5px;
}

.rect-btn--contact-tab.active,
.rect-btn--contact-info-tab.active,
.rect-btn--about-office-tab.active,
.rect-btn--city-tab.active {
    background-color: var(--button-blue);
    color: #fff;
    transition: var(--default-transition);
}

.info:has(.page-banner--contacts) {
    padding-bottom: 50px;
}

.contacts-city {
    padding: 50px 0 100px;
}

.contacts-city__inner {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.contacts-city__info-item:not(.active),
.contacts-city:not(.active) {
    display: none;
}

.contacts-city__title {
    font-weight: 500;
    font-size: 20px;
}

.contacts-city__info-tabs,
.about-office__city-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 40px;
}

.contacts-city__info-item,
.about-office__info-item {
    margin-top: 30px;
}

.contacts-city__info-row,
.about-office__info-row  {
    display: flex;
    align-items: center;
    gap: 30px;
}

.contacts-city__info-row:not(:first-of-type),
.about-office__info-row:not(:first-of-type) {
    margin-top: 35px;
}

.contacts-city__info-half,
.about-office__info-half {
    display: flex;
    align-items: center;
    gap: 30px;
}

.contacts-city__info-half .contacts-city__info-tel p,
.about-office__info-half .about-office__info-tel p {
    color: var(--subtitle-color)
}

.contacts-city__info-half .contacts-city__info-tel a,
.about-office__info-half .about-office__info-tel a {
    font-size: 18px;
    white-space: nowrap;
}

.contacts-city__info-row img,
.about-office__info-row img {
    width: 21px;
    height: 21px;
}

.contacts-city__info-address .city-address,
.about-office__info-address .city-address {
    font-size: 18px;
}

.contacts-city__info-address a,
.about-office__info-address a {
    color: var(--hover-blue);
}

.contacts-city__info-address .city-time,
.about-office__info-address .city-time {
    margin-top: 15px;
    color: var(--subtitle-color);
}

.contacts-city__info-address {
    max-width: 450px;
}

.contacts-city__info-address p:not(:first-child),
.about-office__info-address p:not(:first-child) {
    margin-top: 10px;
}

.contacts-city__info-address b,
.about-office__info-address b {
    font-weight: 500;
}

.contacts-city__departments {
    background-color: #fff;
    margin-bottom: 100px;
    padding: 45px 145px;
    border-radius: 10px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    justify-content: space-between;
    gap: 20px;
}

.contacts-city__departments-item {
    display: flex;
    flex-direction: column;
}

.contacts-city__departments-title {
    text-transform: uppercase;
    font-weight: 600;
    font-size: 18px;
    height: 2.5em;
}

.contacts-city__departments-row {
    display: flex;
    align-items: center;
    gap: 15px;
}

.contacts-city__departments-inner {
    margin-top: 35px;
}

.contacts-city__departments-row:not(:first-of-type) {
    margin-top: 20px;
}

.contacts-city__departments-value a {
    font-weight: 500;
    font-size: 16px;
}

.contacts-city__departments-time {
    color: var(--subtitle-color);
    margin-top: 5px;
}

.contacts-city__departments-download-template {
    font-size: 12px;
    color: var(--main-blue);
    margin-top: 20px;
}

.rect-btn--departments {
    margin-top: 30px;
    width: 100%;
    max-width: 160px;
    padding: 10px 13px;
    font-size: 12px;
    font-weight: 400;
    border-radius: 5px;
}

.contacts-city__departments-text a {
    color: var(--main-blue);
    font-weight: 500;
}

.contacts-city__maps {
    width: 100%;
    max-width: 50%;
    height: 480px;
}

.contacts-city__maps .contacts-city__map {
    border-radius: 10px;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.contacts-city__maps .placemark-inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 12px;
    color: #000;
    white-space: nowrap;
    cursor: pointer;
    gap: 5px;
}

.contacts-city__maps .placemark-inner .placemark-img {
    width: 30px;
    height: 48px;
    background-image: url('../img/icons/map-placemark.svg');
    -webkit-background-size: contain;
    -moz-background-size: contain;
    background-size: contain;
    cursor: pointer;
}

.contacts-city__maps .placemark-inner .placemark-address {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 4px 8px;
    background-color: hsla(0, 0%, 100%, .12);
    -webkit-box-shadow: 0 4px 4px rgba(0, 0, 0, .25), inset 0 -1px 4px hsla(0, 0%, 100%, .8), inset 0 4px 5px #fff;
    -moz-box-shadow: 0 4px 4px rgba(0, 0, 0, .25), inset 0 -1px 4px hsla(0, 0%, 100%, .8), inset 0 4px 5px #fff;
    box-shadow: 0 4px 4px rgba(0, 0, 0, .25), inset 0 -1px 4px hsla(0, 0%, 100%, .8), inset 0 4px 5px #fff;
    backdrop-filter: blur(15px);
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    border-radius: 10px;
}

.contacts-city__maps .placemark-inner .placemark-address-name {
    font-weight: 600;
}

.contacts-social__inner {
    padding: 0 145px;
    display: flex;
    gap: 145px;
    justify-content: space-between;
    align-items: center;
}

.contacts-social__left h3 {
    font-size: 35px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.2;
}

.contacts-social__left p {
    margin-top: 45px;
    font-size: 18px;
    color: #8c8c8c;
}

.contacts-social__right {
    background-color: #fff;
    padding: 30px 35px;
    border-radius: 10px;
    width: 100%;
    max-width: 355px;
}

.contacts-social__link {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
    padding: 15px;
    border-radius: 5px;
    color: #fff;
    font-weight: 500;
}

.contacts-social__link:not(:first-child) {
    margin-top: 10px;
}

.contacts-social__link.vk {
    background-color: #4B729F;
}

.contacts-social__link.instagram {
    background: linear-gradient(10deg, rgb(255, 193, 7), rgb(244, 67, 54), rgb(156, 39, 176));
}

.contacts-social__link.youtube {
    background-color: #E53935;
}

.contacts-social__link.telegram {
    background-color: #039BE5;
}

.contacts-requisites {
    margin-top: 80px;
    margin-bottom: 95px;
}

.contacts-requisites__inner {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px 10px;
}

.contacts-requisites__item h3 {
    font-size: 18px;
    font-weight: 600;
}

.contacts-requisites__item p {
    color: #8c8c8c;
}

.contacts-modal__inner, .contacts-modal__success {
    background-color: #fff;
    border-radius: 5px;
    padding: 45px;
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 30px;
    width: 100%;
}

.contacts-modal__success {
    max-width: 650px;
    min-width: 0;
}

.contacts-modal__success-title {
    font-size: 36px;
    font-weight: 500;
    line-height: 1.2;
}

.contacts-modal__success-button {
    width: 100%;
    margin-top: 20px;
}

.contacts-modal__inner .contacts-form-img {
    width: 100%;
    background-color: #ccc;
    max-width: 40%;
    border-radius: 10px;
}

.contacts-form h3 {
    font-size: 25px;
    font-weight: 600;
    text-transform: uppercase;
}

.contacts-form-subtext {
    margin-top: 10px;
}

.contacts-form-subtext a {
    color: var(--main-blue);
    font-weight: 500;
}

.contacts-form-question {
	position: absolute;
	top: -23px;
    font-size: 12px;
    color: var(--subtitle-color);
}

.contacts-form-connect {
	position: relative;
    display: flex;
    gap: 15px;
    justify-content: space-between;
	flex-basis: 50%;
}
.contacts-form-connect__label {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px 35px;
    border: 1px solid #eaebed;
    border-radius: 5px;
    cursor: pointer;
    filter: grayscale(1);
}
.contacts-form-connect__label input {
    position: absolute;
    opacity: 0;
    z-index: -1;
}
.contacts-form-connect__label:has(input:checked) {
    filter: grayscale(0);
}
.contacts-form input[type=tel],
.contacts-form input[type=text]:not(.complaint-date),
.contacts-form input[type=email] {
    width: 100%;
    padding: 15px 25px;
    border-radius: 5px;
    border: 1px solid #eaebed;
    font-size: 16px;
}
.contacts-form input[type=tel]::placeholder {
    font-size: 16px;
}
.contacts-form__inner textarea[required] {
    width: 100%;
    border: 1px solid #eaebed;
    border-radius: 5px;
    resize: none;
    padding: 15px 25px;
    font-size: 16px;
}
.contacts-form__inner textarea::placeholder {
    font-size: 16px;
}
.contacts-form-file-row {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
	gap: 15px;
}
.contacts-form-label-file {
    display: flex;
    position: relative;
    cursor: pointer;
    gap: 10px;
}
.contacts-form-label-file input {
    opacity: 0;
    z-index: -1;
    position: absolute;
}
.contacts-form-label-file p {
    color: var(--subtitle-color);
}
#complaintForm label.contacts-form-confidence {
    display: block;
    position: relative;
    cursor: pointer;
    margin-top: 20px;
}
.contacts-form-confidence:has(input:checked)::after {
    opacity: 1;
}
.contacts-form-confidence::before {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1px solid var(--subtitle-color);
    border-radius: 2px;
    background-color: #fff;
}
.contacts-form-confidence::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 2px;
    content: '';
    width: 11px;
    height: 9px;
    background: url(../img/icons/check.svg) center center / cover no-repeat;
    transition: var(--alt-transition);
    opacity: 0;
}
.contacts-form-confidence input {
    position: absolute;
    z-index: -1;
    opacity: 0;
}
.contacts-form-confidence p {
    font-size: 12px;
    padding-left: 25px;
}
.contacts-form-confidence p a {
    color: var(--main-blue);
}
.rect-btn--contacts-form {
    width: 100%;
    text-align: center;
    font-size: 16px;
    margin-top: 20px;
}
.contacts-form-label-file svg {
    min-width: 16px;
    min-height: 18px;
}

#complaintForm label {
	margin: 0;
}

#complaintForm label[data-input-required],
#ceoForm label[data-input-required] {
    flex-basis: 50%;
}

#complaintForm label[data-input-required] span.require-icon,
#ceoForm label[data-input-required] span.require-icon {
    left: 90%;
}
#complaintForm label[data-input-required] textarea + span.require-icon,
#ceoForm label[data-input-required] textarea + span.require-icon {
    top: 75%;
}

#complaintForm label[data-input-required] input.complaint-date + span.require-icon {
	left: 80%;
}

#complaintForm span.jcf-select {
	width: 100%;
	height: 100%;
	border: 1px solid #eaebed;
}

#complaintForm span.jcf-select-text {
	display: flex;
	height: 100%;
	align-items: center;
	font-size: 16px;
}

#complaintForm h4 {
	margin-top: 15px;
}

#complaintForm label.complaint-date-label {
	position: relative;
	margin-top: 15px;
	width: calc(50% - 7.5px);
}

#complaintForm label.complaint-date-label img {
	position: absolute;
	top: 50%;
	left: 90%;
	transform: translateY(-50%);
	margin: 0;
}

#complaintForm label.complaint-date-label img.calendar-icon-hover {
	border: none;
	background-color: transparent;
}

#complaintForm label.complaint-textarea-label {
	margin-top: 15px;
}

#complaintForm label.complaint-date-label input {
	width: 100%;
	padding: 15px 25px;
	border: 1px solid #eaebed;
	font-size: 16px;
	border-radius: 5px;
}

@media (max-width: 768px) {
    .contacts-modal__success-title {
        font-size: 26px;
    }
}