.contacts-page {
    --contacts-ink: #20251f;
    --contacts-muted: #657064;
    --contacts-green: #386f2d;
    --contacts-accent: #69b52b;
    --contacts-soft: #f1f8ef;
    --contacts-line: #dce8d9;
    max-width: 1320px;
    margin: -25px auto 72px;
    color: var(--contacts-ink);
}

.contacts-page * { box-sizing: border-box; }
.contacts-eyebrow {
    margin: 0 0 10px;
    color: var(--contacts-green);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contacts-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, .62fr);
    gap: clamp(35px, 6vw, 90px);
    align-items: center;
    min-height: 310px;
    padding: clamp(32px, 5vw, 68px);
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient(125deg, #e8f5e4 0%, #f8fbf6 70%, #edf7e9 100%);
}
.contacts-hero__intro { position: relative; z-index: 2; max-width: 680px; }
.contacts-hero h1 {
    margin: 0 0 18px;
    font-size: clamp(42px, 5.2vw, 68px);
    font-weight: 700;
    line-height: .98;
    letter-spacing: -.045em;
}
.contacts-hero__intro > p:last-child {
    max-width: 610px;
    margin: 0;
    color: #4f5b4e;
    font-size: clamp(16px, 1.45vw, 20px);
    line-height: 1.55;
}
.contacts-hero__phone {
    position: relative;
    z-index: 2;
    display: flex;
    min-width: 0;
    padding: 25px 27px;
    flex-direction: column;
    border: 1px solid rgba(56,111,45,.16);
    border-radius: 22px;
    background: rgba(255,255,255,.86);
    color: var(--contacts-ink);
    text-decoration: none;
    box-shadow: 0 16px 42px rgba(44,92,37,.1);
}
.contacts-hero__phone span,
.contacts-hero__phone small { color: var(--contacts-muted); font-size: 13px; }
.contacts-hero__phone strong { margin: 5px 0 7px; font-size: clamp(23px, 2.2vw, 31px); line-height: 1.1; white-space: nowrap; }
.contacts-hero__phone:focus-visible,
.contact-method:focus-visible,
.contact-email a:focus-visible,
.contact-social:focus-visible { outline: 3px solid var(--contacts-accent); outline-offset: 3px; }
.contacts-hero__line {
    position: absolute;
    right: 2%; bottom: -17px;
    width: 42%;
    fill: none;
    stroke: var(--contacts-accent);
    stroke-dasharray: 8 10;
    stroke-linecap: round;
    stroke-width: 3;
    opacity: .27;
}
.contacts-hero__line circle { fill: var(--contacts-accent); stroke: #fff; stroke-width: 4; }

.contacts-section { padding: clamp(44px, 5vw, 72px) clamp(0px, 2vw, 24px) 0; }
.contacts-section__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
    gap: 32px;
    align-items: end;
    margin-bottom: 27px;
}
.contacts-section h2,
.contacts-bottom h2 { margin: 0; font-size: clamp(27px, 3vw, 40px); line-height: 1.08; letter-spacing: -.025em; }
.contacts-section__header > p { margin: 0 0 3px; color: var(--contacts-muted); font-size: 16px; line-height: 1.5; }

.contact-methods { display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr)); gap: 15px; }
.contact-method {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--contacts-line);
    border-radius: 19px;
    background: #fff;
    color: var(--contacts-ink);
    text-decoration: none;
}
.contact-method__icon {
    display: flex;
    width: 50px; height: 50px;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: var(--contacts-soft);
}
.contact-method__icon svg { width: 25px; height: 25px; fill: none; stroke: var(--contacts-green); stroke-linejoin: round; stroke-width: 1.8; }
.contact-method__icon img { display: block; width: 32px; height: 32px; }
.contact-method small { display: block; margin-bottom: 2px; color: var(--contacts-muted); font-size: 12px; }
.contact-method strong { display: block; overflow: hidden; font-size: 17px; line-height: 1.25; text-overflow: ellipsis; }
.contact-method b { color: var(--contacts-green); font-size: 22px; }
.contact-method:hover { border-color: #b9d6b4; background: #fbfdfb; color: var(--contacts-ink); }

.contact-email {
    display: flex;
    gap: 15px;
    align-items: center;
    margin-top: 16px;
    padding: 19px 22px;
    border-radius: 18px;
    background: var(--contacts-soft);
}
.contact-email__icon {
    display: inline-flex;
    flex: 0 0 38px;
    width: 38px; height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--contacts-green);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}
.contact-email small { display: block; margin-bottom: 2px; color: var(--contacts-muted); font-size: 12px; }
.contact-email a { color: var(--contacts-ink); font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }

.contacts-section--bots { padding-top: clamp(42px, 4.5vw, 62px); }
.contact-bots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.contact-bot {
    position: relative;
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    min-width: 0;
    min-height: 146px;
    padding: 24px 26px;
    overflow: hidden;
    border: 1px solid var(--contacts-line);
    border-radius: 22px;
    background: #fff;
    color: var(--contacts-ink);
    text-decoration: none;
    isolation: isolate;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.contact-bot::after {
    position: absolute;
    z-index: -1;
    top: -70px;
    right: -55px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    content: "";
    opacity: .12;
}
.contact-bot--telegram::after { background: #2aabee; }
.contact-bot--max::after { background: linear-gradient(135deg, #471aff, #00bfff); }
.contact-bot__logo {
    display: flex;
    width: 74px;
    height: 74px;
    align-items: center;
    justify-content: center;
}
.contact-bot__logo img { display: block; width: 74px; height: 74px; object-fit: contain; }
.contact-bot__body { display: block; min-width: 0; }
.contact-bot__body small { display: block; margin-bottom: 5px; color: var(--contacts-muted); font-size: 12px; }
.contact-bot__body strong { display: block; overflow-wrap: anywhere; font-size: 18px; line-height: 1.3; }
.contact-bot__body > span { display: block; margin-top: 9px; color: var(--contacts-green); font-size: 14px; font-weight: 700; }
.contact-bot > b { align-self: start; color: var(--contacts-green); font-size: 23px; line-height: 1; }
.contact-bot:hover { border-color: #b9d6b4; box-shadow: 0 13px 34px rgba(46, 82, 41, .1); color: var(--contacts-ink); transform: translateY(-2px); }
.contact-bot:focus-visible { outline: 3px solid var(--contacts-accent); outline-offset: 3px; }

.contacts-section--marketplaces { padding-top: clamp(42px, 4.5vw, 62px); }
.contact-marketplaces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.contact-marketplace {
    position: relative;
    display: grid;
    grid-template-columns: minmax(142px, .72fr) minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    min-width: 0;
    min-height: 146px;
    padding: 24px 26px;
    overflow: hidden;
    border: 1px solid var(--contacts-line);
    border-radius: 22px;
    background: #fff;
    color: var(--contacts-ink);
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.contact-marketplace::after {
    position: absolute;
    right: -54px;
    bottom: -75px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: var(--marketplace-accent);
    content: "";
    opacity: .06;
    pointer-events: none;
}
.contact-marketplace--wildberries { --marketplace-accent: #e313bf; }
.contact-marketplace--ozon { --marketplace-accent: #005bff; }
.contact-marketplace--yandex { --marketplace-accent: #fed42b; }
.contact-marketplace__logo {
    display: flex;
    width: 100%;
    min-height: 58px;
    align-items: center;
}
.contact-marketplace__logo img { display: block; width: min(170px, 100%); max-height: 52px; object-fit: contain; object-position: left center; }
.contact-marketplace--ozon .contact-marketplace__logo img { width: min(142px, 100%); }
.contact-marketplace__body { display: block; min-width: 0; }
.contact-marketplace__body small { display: block; margin-bottom: 4px; color: var(--contacts-muted); font-size: 12px; }
.contact-marketplace__body strong { display: block; font-size: 18px; line-height: 1.3; }
.contact-marketplace__body > span { display: block; margin-top: 9px; color: var(--contacts-green); font-size: 14px; font-weight: 700; }
.contact-marketplace > b { z-index: 1; align-self: start; color: var(--contacts-green); font-size: 23px; line-height: 1; }
.contact-marketplace:hover { border-color: #b9d6b4; box-shadow: 0 13px 34px rgba(46, 82, 41, .1); color: var(--contacts-ink); transform: translateY(-2px); }
.contact-marketplace:focus-visible { outline: 3px solid var(--contacts-accent); outline-offset: 3px; }

.contacts-section--socials { padding-top: clamp(42px, 4.5vw, 62px); }
.contact-socials-panel {
    padding: clamp(26px, 3.2vw, 42px);
    border-radius: 24px;
    background: linear-gradient(122deg, #2f6228 0%, #3c762f 67%, #467f38 100%);
    color: #fff;
}
.contact-socials-panel__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .58fr);
    gap: 32px;
    align-items: end;
    margin-bottom: 25px;
}
.contact-socials-panel .contacts-eyebrow { color: #d0ebca; }
.contact-socials-panel h2 { color: #fff; }
.contact-socials-panel__header > p { margin: 0 0 3px; color: #deebdc; font-size: 16px; line-height: 1.5; }
.contact-socials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.contact-social {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    min-width: 0;
    min-height: 94px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 18px;
    background: #fff;
    color: var(--contacts-ink);
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}
.contact-social__logo { display: flex; width: 56px; height: 56px; align-items: center; justify-content: center; }
.contact-social__logo img { display: block; width: 52px; height: 52px; object-fit: contain; }
.contact-social__body { display: block; min-width: 0; }
.contact-social__body strong { display: block; margin-bottom: 4px; font-size: 17px; }
.contact-social__body small { display: block; color: var(--contacts-muted); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.contact-social > b { align-self: start; color: var(--contacts-green); font-size: 21px; line-height: 1; }
.contact-social:hover { box-shadow: 0 13px 30px rgba(20, 50, 16, .22); color: var(--contacts-ink); transform: translateY(-2px); }

.contacts-section--places { margin-top: 14px; border-top: 1px solid var(--contacts-line); }
.contact-places { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-bottom: 16px; }
.contact-place {
    display: flex;
    gap: 17px;
    align-items: center;
    margin: 0;
    padding: 21px 24px;
    border: 1px solid var(--contacts-line);
    border-radius: 18px;
    background: #fff;
    font-style: normal;
}
.contact-place__mark {
    display: inline-flex;
    flex: 0 0 46px;
    width: 46px; height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 50% 50% 50% 8px;
    background: var(--contacts-green);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    transform: rotate(-10deg);
}
.contact-place__mark--nursery { background: var(--contacts-accent); }
.contact-place__mark + div { transform: translateY(1px); }
.contact-place small { display: block; margin-bottom: 4px; color: var(--contacts-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.contact-place strong { font-size: 17px; line-height: 1.42; }

.contact-visit-note {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 16px;
    padding: 17px 20px;
    border-radius: 16px;
    background: var(--contacts-soft);
}
.contact-visit-note > span {
    display: inline-flex;
    flex: 0 0 34px;
    width: 34px; height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--contacts-green);
    color: #fff;
    font-weight: 700;
}
.contact-visit-note p { margin: 0; color: var(--contacts-muted); line-height: 1.45; }
.contact-visit-note strong { display: block; margin-bottom: 2px; color: var(--contacts-ink); }

.contact-map {
    width: 100%;
    height: 440px;
    overflow: hidden;
    border: 8px solid #fff;
    border-radius: 22px;
    background: var(--contacts-soft);
    box-shadow: 0 12px 34px rgba(46,82,41,.1);
}
.contact-map > div,
.contact-map .bx-yandex-view-layout,
.contact-map .bx-yandex-view-map { width: 100% !important; height: 100% !important; }
.contact-map .bx-yandex-view-layout { position: relative; }
.contact-map__locations {
    position: absolute;
    z-index: 4;
    right: 18px;
    bottom: 18px;
    left: 18px;
    display: flex;
    justify-content: center;
    gap: 8px;
    pointer-events: none;
}
.contact-map__location {
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid rgba(46, 82, 41, .13);
    border-radius: 14px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 7px 22px rgba(25, 53, 22, .14);
    color: var(--contacts-ink);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    pointer-events: auto;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.contact-map__location:hover,
.contact-map__location:focus-visible,
.contact-map__location.is-active {
    background: var(--contacts-green);
    color: #fff;
    transform: translateY(-2px);
}
.contact-map__location:focus-visible { outline: 3px solid rgba(87, 139, 76, .28); outline-offset: 2px; }

.contacts-bottom { padding: clamp(46px, 5vw, 70px) clamp(0px, 2vw, 24px) 0; }
.contacts-legal { padding: clamp(24px, 3vw, 36px); border-radius: 22px; }
.contacts-legal { border: 1px solid var(--contacts-line); background: #fff; }
.contacts-legal > strong { display: block; font-size: 18px; }
.contacts-legal dl { display: flex; gap: 12px 26px; margin: 20px 0; flex-wrap: wrap; }
.contacts-legal dl div { display: flex; gap: 8px; }
.contacts-legal dl .contacts-legal__activity { flex: 1 1 100%; }
.contacts-legal dt { color: var(--contacts-muted); font-weight: 400; }
.contacts-legal dd { margin: 0; font-weight: 700; }
.contacts-legal > p:last-child { margin: 0; color: var(--contacts-muted); line-height: 1.55; }

@media (max-width: 920px) {
    .contacts-page { margin-top: -12px; }
    .contacts-hero { grid-template-columns: 1fr; gap: 28px; }
    .contacts-hero__phone { width: min(430px, 100%); }
    .contacts-hero__line { width: 62%; opacity: .2; }
    .contacts-section__header { grid-template-columns: 1fr; gap: 12px; }
    .contact-methods { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .contact-method--phone { grid-column: 1 / -1; }
    .contact-bot { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 15px; padding: 21px; }
    .contact-bot__logo, .contact-bot__logo img { width: 64px; height: 64px; }
    .contact-marketplace { grid-template-columns: minmax(120px, .65fr) minmax(0, 1fr) auto; gap: 18px; padding: 21px; }
    .contact-socials-panel__header { grid-template-columns: 1fr; gap: 12px; }
    .contact-social { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 11px; padding: 15px; }
    .contact-social__logo, .contact-social__logo img { width: 48px; height: 48px; }
}

@media (max-width: 600px) {
    .contacts-page { margin: -10px auto 48px; }
    .contacts-hero { gap: 24px; padding: 28px 20px 30px; border-radius: 20px; }
    .contacts-hero h1 { margin-bottom: 14px; }
    .contacts-hero__phone { padding: 19px; border-radius: 17px; }
    .contacts-hero__line { display: none; }
    .contacts-section { padding-top: 38px; }
    .contacts-section__header { margin-bottom: 20px; }
    .contacts-section__header > p { font-size: 15px; }
    .contact-methods { grid-template-columns: 1fr; gap: 10px; }
    .contact-method--phone { grid-column: auto; }
    .contact-method { padding: 15px; border-radius: 16px; }
    .contact-email { align-items: flex-start; padding: 17px; }
    .contact-bots { grid-template-columns: 1fr; gap: 10px; }
    .contact-bot { min-height: 122px; padding: 18px; border-radius: 18px; }
    .contact-bot__body strong { font-size: 16px; }
    .contact-marketplaces { grid-template-columns: 1fr; gap: 10px; }
    .contact-marketplace { grid-template-columns: minmax(105px, .52fr) minmax(0, 1fr) auto; gap: 15px; min-height: 118px; padding: 18px; border-radius: 18px; }
    .contact-marketplace__logo { min-height: 44px; }
    .contact-marketplace__logo img { max-height: 42px; }
    .contact-marketplace__body strong { font-size: 16px; }
    .contact-socials-panel { padding: 23px 18px; border-radius: 20px; }
    .contact-socials { grid-template-columns: 1fr; gap: 9px; }
    .contact-social { min-height: 82px; padding: 14px; border-radius: 16px; }
    .contact-places { grid-template-columns: 1fr; gap: 10px; }
    .contact-place { padding: 17px; }
    .contact-visit-note { align-items: flex-start; padding: 16px; }
    .contact-map { height: 360px; border-width: 5px; border-radius: 18px; }
    .contact-map__locations {
        right: 8px;
        bottom: 8px;
        left: 8px;
        gap: 5px;
    }
    .contact-map__location {
        flex: 1 1 0;
        min-width: 0;
        min-height: 40px;
        padding: 8px 5px;
        border-radius: 10px;
        font-size: 11px;
        line-height: 1.15;
    }
    .contacts-bottom { padding-top: 40px; }
    .contacts-legal { padding: 22px 19px; border-radius: 18px; }
    .contacts-legal dl { display: grid; gap: 8px; }
    .contacts-legal dl .contacts-legal__activity { display: grid; gap: 2px; }
}

@media (max-width: 340px) {
    .contacts-hero { padding-right: 16px; padding-left: 16px; }
    .contacts-hero__phone strong { font-size: 21px; }
    .contact-method { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; }
    .contact-method__icon { width: 44px; height: 44px; }
    .contact-marketplace { grid-template-columns: 94px minmax(0, 1fr) auto; gap: 11px; padding: 15px; }
    .contact-marketplace__body > span { font-size: 13px; }
}
