:root {
    --main-green: #7ac244;
    --light-green: #e2f7d1;
    --bg-grey: #f4faf1;
    --main-dark: #384030;
    --text: #2c2d28;
    --border: #e1e8d7;
    --card-bg: #fff;
    --shadow: 0 2px 22px rgba(76, 99, 56, 0.08);
    --radius: 16px;
    --radius-s: 9px;
}
body {
    background: var(--bg-grey);
    color: var(--text);
    font-family: 'Segoe UI', Arial, sans-serif;
    margin: 0;
    padding: 0;
    font-size: 18px;
    line-height: 1.57;
}
.container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 18px;
}
.btn {
    display: inline-block;
    padding: 13px 34px;
    border-radius: var(--radius-s);
    font-size: 1.08rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 0.17s, color 0.17s, box-shadow 0.18s;
    box-shadow: 0 3px 12px rgba(122,194,68,0.07);
}
.btn-green {
    background: var(--main-green);
    color: #fff;
}
.btn-green:hover,
.btn-green:focus {
    background: #5b922c;
    color: #fff;
}
.btn-outline {
    border: 2px solid var(--main-green);
    color: var(--main-green);
    background: transparent;
}
.btn-outline:hover,
.btn-outline:focus {
    background: var(--main-green);
    color: #fff;
}

.hero {
    background: linear-gradient(110deg, var(--light-green) 0%, #eafae3 100%);
    position: relative;
    overflow: hidden;
    padding: 60px 0 0 0;
    min-height: 600px;
    display: flex;
    align-items: center;
}
.hero__bg {
    background: url('/img/hero-bg.webp') no-repeat center bottom/cover;
    opacity: 0.16;
    position: absolute;
    inset: 0;
    z-index: 1;
}
.hero__content {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin-left: 60px;
    padding: 38px 0 60px 0;
}
.hero__logo {
    width: 200px;
    margin-bottom: 38px;
}
.hero__title {
    font-size: 2.7rem;
    font-weight: 800;
    margin-bottom: 26px;
    color: var(--main-dark);
}
.hero__desc {
    font-size: 1.18rem;
    color: #47533d;
    margin-bottom: 38px;
}
.hero__cta {
    font-size: 1.13rem;
    padding: 16px 38px;
    border-radius: var(--radius);
}

.benefits {
    background: #fff;
    padding: 42px 0 18px 0;
}
.benefits__row {
    display: flex;
    gap: 28px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.benefit-card {
    background: var(--card-bg);
    box-shadow: var(--shadow);
    border-radius: var(--radius);
    flex: 1 1 240px;
    max-width: 275px;
    min-width: 210px;
    margin-bottom: 24px;
    padding: 30px 22px 28px 22px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.benefit-card__icon {
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    border-radius: 50%;
    box-shadow: 0 1px 9px rgba(78, 116, 56, 0.09);
}
.benefit-card__title {
    font-size: 1.13rem;
    font-weight: 700;
    color: var(--main-dark);
    margin-bottom: 11px;
}
.benefit-card__text {
    color: #52703c;
    font-size: 1.01rem;
}

.about-project {
    padding: 58px 0 40px 0;
    background: #f6faef;
}
.about-project__flex {
    display: flex;
    gap: 60px;
    flex-wrap: wrap;
    align-items: flex-start;
}
.about-project__imgcol {
    flex: 1 1 350px;
    min-width: 280px;
    max-width: 500px;
}
.about-project__mainimg {
    width: 100%;
    border-radius: var(--radius);
    margin-bottom: 18px;
    box-shadow: var(--shadow);
    display: block;
}
.about-project__gallery {
    display: flex;
    gap: 9px;
}
.about-project__gallery img {
    width: 32%;
    border-radius: var(--radius-s);
    object-fit: cover;
    height: 70px;
}
.about-project__infocol {
    flex: 1 1 320px;
    min-width: 270px;
    max-width: 600px;
}
.about-project__title {
    font-size: 1.55rem;
    font-weight: 800;
    margin-bottom: 21px;
    color: var(--main-dark);
}
.about-project__list {
    margin: 21px 0 24px 0;
    padding-left: 18px;
    color: #465738;
    font-size: 1.05rem;
}
.about-project__cta {
    margin-top: 17px;
}

.features-block {
    background: #fff;
    padding: 44px 0 12px 0;
}
.features-block__grid {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    justify-content: space-between;
}
.feature-item {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    flex: 1 1 230px;
    min-width: 210px;
    max-width: 265px;
    margin-bottom: 22px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 14px 24px 14px;
}
.feature-item img {
    width: 100%;
    max-width: 180px;
    height: 90px;
    object-fit: cover;
    border-radius: var(--radius-s);
    margin-bottom: 17px;
}
.feature-item__title {
    font-size: 1.07rem;
    font-weight: 600;
    color: var(--main-dark);
    margin-bottom: 7px;
}
.feature-item__desc {
    font-size: 0.98rem;
    color: #466430;
}

.presentation-request {
    background: linear-gradient(110deg, #eafae3 60%, #f5f9f3 100%);
    padding: 60px 0 50px 0;
}
.presentation-request__flex {
    display: flex;
    align-items: center;
    gap: 46px;
    flex-wrap: wrap;
}
.presentation-request__text {
    flex: 1 1 320px;
    min-width: 260px;
    max-width: 560px;
}
.presentation-request__text h2 {
    font-size: 1.33rem;
    color: var(--main-dark);
    margin-bottom: 17px;
    font-weight: 700;
}
.presentation-request__imgcol {
    flex: 1 1 300px;
    min-width: 200px;
    max-width: 360px;
}
.presentation-request__imgcol img {
    width: 100%;
    border-radius: var(--radius);
    box-shadow: 0 2px 16px rgba(97,133,57,0.10);
    display: block;
}

.expert-advise {
    background: #ecf9db;
    padding: 24px 0;
    border-top: 1px solid #d7e8c4;
}
.expert-advise__box {
    display: flex;
    align-items: center;
    justify-content: center;
}
.expert-advise__text {
    color: #51742c;
    font-size: 1.04rem;
}
.expert-advise__link {
    color: #6dab37;
    border-bottom: 1px dashed #7ac244;
    text-decoration: none;
    transition: color 0.14s;
}
.expert-advise__link:hover,
.expert-advise__link:focus {
    color: #314c12;
    border-bottom: 1px solid #7ac244;
}

/* Адаптив */
@media (max-width: 1100px) {
    .hero__content {
        margin-left: 18px;
    }
    .about-project__flex,
    .presentation-request__flex {
        gap: 25px;
    }
    .features-block__grid,
    .benefits__row {
        gap: 14px;
    }
}
@media (max-width: 900px) {
    .hero {
        min-height: 420px;
        padding: 30px 0 0 0;
    }
    .hero__title {
        font-size: 1.61rem;
    }
    .hero__content {
        margin-left: 0;
        padding: 24px 0 36px 0;
        max-width: 98vw;
    }
    .about-project__flex,
    .presentation-request__flex {
        flex-direction: column;
        gap: 36px;
        align-items: flex-start;
    }
    .about-project__imgcol,
    .about-project__infocol,
    .presentation-request__imgcol,
    .presentation-request__text {
        max-width: 100%;
        min-width: 0;
    }
}
@media (max-width: 700px) {
    .benefits__row,
    .features-block__grid {
        flex-direction: column;
        align-items: stretch;
    }
    .benefit-card,
    .feature-item {
        max-width: 100%;
        min-width: 0;
    }
    .about-project {
        padding: 29px 0 18px 0;
    }
    .features-block {
        padding: 17px 0 6px 0;
    }
}
@media (max-width: 500px) {
    .hero__logo {
        width: 88px;
        margin-bottom: 17px;
    }
    .hero__title {
        font-size: 1.01rem;
        margin-bottom: 13px;
    }
    .hero__desc {
        font-size: 0.93rem;
        margin-bottom: 21px;
    }
    .btn, .btn-green, .btn-outline {
        font-size: 0.93rem;
        padding: 10px 16px;
    }
    .about-project__gallery img {
        height: 38px;
    }
}
.glamp-header {
    background: #fff;
    border-bottom: 2px solid #d7e8c4;
    box-shadow: 0 1px 8px rgba(40,60,20,0.04);
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 20;
}

.glamp-header__container {
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    min-height: 66px;
}

.glamp-header__logo img {
    height: 48px;
    width: auto;
    display: block;
    transition: opacity 0.18s;
}

.glamp-header__logo:hover img {
    opacity: 0.88;
}

.glamp-header__nav {
    display: flex;
    gap: 30px;
}

.glamp-header__link {
    color: #405a2c;
    text-decoration: none;
    font-size: 1.09rem;
    font-weight: 500;
    padding: 7px 16px;
    border-radius: 7px;
    transition: color 0.15s, background 0.13s;
    position: relative;
}
.glamp-header__link:hover,
.glamp-header__link:focus,
.glamp-header__link.active {
    background: #eafae3;
    color: #6dab37;
}
@media (max-width: 900px) {
    .glamp-header__container {
        padding: 0 7px;
    }
    .glamp-header__nav {
        gap: 16px;
    }
    .glamp-header__logo img {
        height: 38px;
    }
}
@media (max-width: 600px) {
    .glamp-header__container {
        flex-direction: column;
        align-items: flex-start;
        padding: 0 2px;
        min-height: 0;
    }
    .glamp-header__logo img {
        height: 30px;
        margin-bottom: 4px;
    }
    .glamp-header__nav {
        width: 100%;
        flex-wrap: wrap;
        gap: 8px;
    }
    .glamp-header__link {
        font-size: 0.98rem;
        padding: 4px 7px;
    }
}
.glamp-footer {
    background: #37402f;
    color: #eefae5;
    padding: 44px 0 0 0;
    font-size: 1rem;
    margin-top: 70px;
}
.glamp-footer__container {
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 46px;
    padding: 0 18px;
    flex-wrap: wrap;
}
.glamp-footer__contacts {
    max-width: 380px;
}
.glamp-footer__title {
    font-size: 1.16rem;
    font-weight: 600;
    margin-bottom: 15px;
    color: #b8f37e;
    letter-spacing: 0.02em;
}
.glamp-footer__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.glamp-footer__list li {
    display: flex;
    align-items: center;
    margin-bottom: 13px;
    line-height: 1.5;
}
.glamp-footer__icon {
    width: 22px;
    height: 22px;
    margin-right: 10px;
    filter: brightness(1.1) contrast(1.08);
}
.glamp-footer__link {
    color: #d1fad1;
    text-decoration: none;
    transition: color 0.13s;
}
.glamp-footer__link:hover,
.glamp-footer__link:focus {
    color: #8add56;
    text-decoration: underline;
}
.glamp-footer__nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 2px;
}
.glamp-footer__navlink {
    color: #e0fae0;
    text-decoration: none;
    font-size: 1.03rem;
    padding: 5px 0;
    transition: color 0.14s;
    border-radius: 6px;
}
.glamp-footer__navlink:hover,
.glamp-footer__navlink:focus {
    color: #b8f37e;
    background: #42532a;
}
.glamp-footer__copy {
    background: #303d20;
    text-align: center;
    font-size: 0.99rem;
    color: #adc79c;
    padding: 15px 0;
    margin-top: 38px;
    letter-spacing: 0.01em;
}
@media (max-width: 900px) {
    .glamp-footer__container {
        flex-direction: column;
        gap: 18px;
        padding: 0 7px;
        align-items: flex-start;
    }
    .glamp-footer {
        padding: 28px 0 0 0;
    }
}
@media (max-width: 600px) {
    .glamp-footer {
        padding: 18px 0 0 0;
    }
    .glamp-footer__contacts {
        max-width: 100%;
        font-size: 0.96rem;
    }
    .glamp-footer__nav {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 13px;
        font-size: 0.97rem;
    }
    .glamp-footer__copy {
        font-size: 0.92rem;
        padding: 10px 0;
        margin-top: 18px;
    }
}
.about-hero {
    background: linear-gradient(105deg, #f7faef 60%, #e3f7d2 100%);
    padding: 55px 0 30px 0;
}
.about-hero__wrap {
    display: flex;
    align-items: center;
    gap: 46px;
    flex-wrap: wrap;
}
.about-hero__info {
    flex: 1 1 320px;
    min-width: 240px;
}
.about-hero__title {
    font-size: 2.0rem;
    font-weight: 800;
    color: #385826;
    margin-bottom: 18px;
}
.about-hero__desc {
    font-size: 1.13rem;
    color: #42542e;
}
.about-hero__imgbox {
    flex: 1 1 350px;
    min-width: 210px;
    text-align: right;
}
.about-hero__img {
    width: 310px;
    max-width: 98vw;
    border-radius: 19px;
    box-shadow: 0 5px 28px rgba(99,140,55,0.08);
}

.about-values {
    background: #fff;
    padding: 48px 0 32px 0;
}
.about-values__title {
    font-size: 1.28rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 28px;
    color: #35561e;
}
.about-values__grid {
    display: flex;
    gap: 32px;
    justify-content: center;
    flex-wrap: wrap;
}
.about-value-card {
    background: #f6faef;
    border-radius: 15px;
    box-shadow: 0 1px 10px rgba(83, 129, 67, 0.05);
    max-width: 320px;
    flex: 1 1 230px;
    padding: 26px 20px 22px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.about-value-card img {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 19px;
    box-shadow: 0 1px 12px rgba(80, 139, 55, 0.08);
}
.about-value-card__title {
    font-size: 1.09rem;
    font-weight: 700;
    color: #557f31;
    margin-bottom: 10px;
}
.about-value-card__desc {
    color: #466430;
    font-size: 1.01rem;
}

.about-advantages {
    background: #f9fbf7;
    padding: 46px 0 28px 0;
}
.about-advantages__wrap {
    display: flex;
    align-items: center;
    gap: 56px;
    flex-wrap: wrap;
}
.about-advantages__col {
    flex: 1 1 340px;
    min-width: 220px;
}
.about-advantages__title {
    font-size: 1.23rem;
    font-weight: 700;
    margin-bottom: 17px;
    color: #375c27;
}
.about-advantages__list {
    margin: 0 0 8px 0;
    padding-left: 18px;
    color: #435c2e;
    font-size: 1.07rem;
    line-height: 1.65;
}
.about-advantages__imgcol {
    flex: 1 1 300px;
    min-width: 200px;
    text-align: center;
}
.about-advantages__img {
    width: 265px;
    max-width: 100vw;
    border-radius: 14px;
    box-shadow: 0 2px 12px rgba(70,109,49,0.10);
}

.about-team {
    background: #e7f8d3;
    padding: 38px 0 26px 0;
}
.about-team__title {
    font-size: 1.16rem;
    font-weight: 700;
    text-align: center;
    color: #486c33;
    margin-bottom: 19px;
}
.about-team__desc {
    text-align: center;
    font-size: 1.07rem;
    color: #4c5e40;
    margin-bottom: 22px;
}
.about-team__logos {
    display: flex;
    gap: 24px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}
.about-team__logos img {
    width: 78px;
    height: 78px;
    object-fit: cover;
    border-radius: 50%;
    box-shadow: 0 1px 9px rgba(84,139,70,0.11);
    background: #fff;
}

/* Адаптив для about */
@media (max-width: 900px) {
    .about-hero__wrap,
    .about-values__grid,
    .about-advantages__wrap,
    .about-team__logos {
        gap: 16px;
    }
    .about-hero__img {
        width: 190px;
    }
    .about-advantages__img {
        width: 170px;
    }
}
@media (max-width: 700px) {
    .about-hero__wrap,
    .about-advantages__wrap {
        flex-direction: column;
        align-items: flex-start;
        gap: 23px;
    }
    .about-hero__imgbox,
    .about-advantages__imgcol {
        text-align: left;
    }
}
@media (max-width: 500px) {
    .about-hero__title {
        font-size: 1.01rem;
    }
    .about-hero__img {
        width: 98px;
    }
    .about-value-card img {
        width: 42px;
        height: 42px;
    }
    .about-advantages__img {
        width: 89px;
    }
    .about-team__logos img {
        width: 38px;
        height: 38px;
    }
}
.gallery-hero {
    background: linear-gradient(104deg, #f5faf0 60%, #eaf8d7 100%);
    padding: 48px 0 22px 0;
}
.gallery-hero__title {
    font-size: 2rem;
    font-weight: 800;
    color: #345624;
    margin-bottom: 12px;
}
.gallery-hero__desc {
    font-size: 1.09rem;
    color: #466430;
    margin-bottom: 10px;
}

.gallery-grid-section {
    background: #fff;
    padding: 34px 0 28px 0;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 34px 28px;
}
.gallery-item {
    margin: 0;
    background: #f7faef;
    border-radius: 14px;
    box-shadow: 0 1px 15px rgba(90, 127, 70, 0.07);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 0 17px 0;
}
.gallery-item img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
    border-radius: 14px 14px 0 0;
    margin-bottom: 11px;
}
.gallery-item figcaption {
    font-size: 1.03rem;
    color: #385826;
    text-align: center;
    padding: 0 11px;
}

.gallery-pagination {
    margin-top: 38px;
    display: flex;
    justify-content: center;
    gap: 9px;
}
.gallery-pagination__btn {
    padding: 9px 20px;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 7px;
    border: none;
    background: #eafae3;
    color: #5c9240;
    cursor: pointer;
    transition: background 0.14s, color 0.13s;
    box-shadow: 0 1px 6px rgba(90, 127, 70, 0.07);
}
.gallery-pagination__btn.active,
.gallery-pagination__btn:hover,
.gallery-pagination__btn:focus {
    background: #7ac244;
    color: #fff;
}

/* Адаптив */
@media (max-width: 900px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 20px 16px;
    }
}
@media (max-width: 600px) {
    .gallery-hero__title {
        font-size: 1.1rem;
    }
    .gallery-grid {
        grid-template-columns: 1fr;
        grid-gap: 18px 0;
    }
    .gallery-item figcaption {
        font-size: 0.97rem;
    }
}
.reviews-hero {
    background: linear-gradient(104deg, #f7faef 60%, #e3f7d2 100%);
    padding: 48px 0 22px 0;
}
.reviews-hero__title {
    font-size: 2rem;
    font-weight: 800;
    color: #345624;
    margin-bottom: 12px;
}
.reviews-hero__desc {
    font-size: 1.09rem;
    color: #466430;
    margin-bottom: 10px;
}

.reviews-list-section {
    background: #fff;
    padding: 40px 0 18px 0;
}
.reviews-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 32px 28px;
}
.review-card {
    background: #f6faef;
    border-radius: 16px;
    box-shadow: 0 1px 14px rgba(90, 127, 70, 0.06);
    padding: 22px 22px 16px 22px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.review-card__header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 5px;
}
.review-card__avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    background: #e1e8d7;
    box-shadow: 0 1px 7px rgba(80, 139, 70, 0.06);
}
.review-card__name {
    font-weight: 700;
    color: #385826;
    font-size: 1.07rem;
}
.review-card__role {
    color: #74a049;
    font-size: 0.97rem;
}
.review-card__body p {
    color: #426032;
    font-size: 1.05rem;
    margin: 0;
}

.reviews-form-section {
    background: #eafae3;
    padding: 34px 0 24px 0;
}
.reviews-form__container {
    max-width: 600px;
    margin: 0 auto;
}
.reviews-form__title {
    font-size: 1.14rem;
    color: #456c33;
    font-weight: 700;
    margin-bottom: 15px;
}
.reviews-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.reviews-form__row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.reviews-form__input, .reviews-form__textarea {
    border: 1.5px solid #d7e8c4;
    border-radius: 7px;
    font-size: 1rem;
    padding: 11px 13px;
    background: #fff;
    color: #314c12;
    outline: none;
    font-family: inherit;
    transition: border 0.15s;
    flex: 1 1 0;
}
.reviews-form__input:focus, .reviews-form__textarea:focus {
    border: 1.5px solid #7ac244;
}
.reviews-form__textarea {
    min-height: 70px;
    resize: vertical;
}
.reviews-form__btn {
    width: 180px;
    align-self: flex-end;
    opacity: 0.5;
    cursor: not-allowed;
}
.reviews-form__note {
    margin-top: 14px;
    font-size: 0.98rem;
    color: #4c5e40;
}
.reviews-form__note a {
    color: #7ac244;
    text-decoration: underline;
}

/* Адаптив */
@media (max-width: 900px) {
    .reviews-list {
        grid-template-columns: 1fr;
        grid-gap: 18px 0;
    }
    .reviews-form__container {
        max-width: 97vw;
    }
}
@media (max-width: 600px) {
    .reviews-hero__title {
        font-size: 1.1rem;
    }
    .review-card__avatar {
        width: 36px;
        height: 36px;
    }
    .reviews-form__btn {
        width: 100%;
        margin-top: 8px;
    }
}
.contacts-hero {
    background: linear-gradient(105deg, #f5faf0 60%, #eaf8d7 100%);
    padding: 48px 0 34px 0;
}
.contacts-hero__wrap {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    flex-wrap: wrap;
}
.contacts-hero__info {
    flex: 1 1 320px;
    min-width: 220px;
}
.contacts-hero__title {
    font-size: 2rem;
    font-weight: 800;
    color: #345624;
    margin-bottom: 12px;
}
.contacts-hero__desc {
    font-size: 1.09rem;
    color: #466430;
    margin-bottom: 22px;
}
.contacts-hero__list {
    list-style: none;
    padding: 0;
    margin: 0 0 18px 0;
}
.contacts-hero__list li {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 12px;
    font-size: 1.03rem;
    color: #385826;
}
.contacts-hero__list a {
    color: #385826;
    text-decoration: underline;
    transition: color 0.13s;
}
.contacts-hero__list a:hover, .contacts-hero__list a:focus {
    color: #7ac244;
}
.contacts-hero__list img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    border-radius: 50%;
}
.contacts-hero__socials {
    margin-top: 13px;
    display: flex;
    gap: 14px;
}
.contacts-hero__social img {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #f6faef;
    box-shadow: 0 1px 6px rgba(90, 127, 70, 0.07);
    transition: filter 0.14s, box-shadow 0.16s;
}
.contacts-hero__social:hover img, .contacts-hero__social:focus img {
    filter: brightness(1.15);
    box-shadow: 0 2px 14px rgba(122,194,68,0.11);
}
.contacts-hero__mapbox {
    flex: 1 1 340px;
    min-width: 200px;
    max-width: 420px;
    text-align: right;
}
.contacts-hero__map {
    width: 100%;
    max-width: 420px;
    min-width: 200px;
    border-radius: 18px;
    box-shadow: 0 3px 20px rgba(99,140,55,0.09);
}

.contacts-feedback {
    background: #f7faef;
    padding: 34px 0 26px 0;
}
.contacts-feedback__container {
    max-width: 560px;
    margin: 0 auto;
}
.contacts-feedback__title {
    font-size: 1.16rem;
    color: #456c33;
    font-weight: 700;
    margin-bottom: 16px;
}
.contacts-feedback-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.contacts-feedback-form__row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.contacts-feedback-form__input, .contacts-feedback-form__textarea {
    border: 1.5px solid #d7e8c4;
    border-radius: 7px;
    font-size: 1rem;
    padding: 11px 13px;
    background: #fff;
    color: #314c12;
    outline: none;
    font-family: inherit;
    transition: border 0.15s;
    flex: 1 1 0;
}
.contacts-feedback-form__input:focus, .contacts-feedback-form__textarea:focus {
    border: 1.5px solid #7ac244;
}
.contacts-feedback-form__textarea {
    min-height: 70px;
    resize: vertical;
}
.contacts-feedback-form__btn {
    width: 170px;
    align-self: flex-end;
    opacity: 0.5;
    cursor: not-allowed;
}
.contacts-feedback__note {
    margin-top: 12px;
    font-size: 0.98rem;
    color: #4c5e40;
}
.contacts-feedback__note a {
    color: #7ac244;
    text-decoration: underline;
}

/* Адаптив */
@media (max-width: 900px) {
    .contacts-hero__wrap {
        flex-direction: column;
        gap: 19px;
    }
    .contacts-hero__mapbox {
        max-width: 99vw;
        text-align: left;
    }
    .contacts-hero__map {
        min-width: 0;
        width: 98vw;
        max-width: 99vw;
    }
    .contacts-feedback__container {
        max-width: 97vw;
    }
}
@media (max-width: 600px) {
    .contacts-hero__title {
        font-size: 1.1rem;
    }
    .contacts-hero__map {
        border-radius: 10px;
    }
    .contacts-feedback-form__btn {
        width: 100%;
        margin-top: 8px;
    }
}
