:root{
  --bg:#e8f1fb;
  --bg-2:#edf4fd;
  --surface:#f7fbff;
  --card:#ffffff;
  --line:#bdd0e8;
  --line-2:#d2dff0;
  --text:#24354a;
  --muted:#5f7390;
  --green:#3fd284;
  --green-dark:#1db966;
  --blue:#3c5fe0;
  --blue-dark:#304db7;
  --dark:#2d3346;
  --shadow:0 14px 36px rgba(55,89,140,.08);
  --radius:18px;
  --radius-sm:14px;
  --container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg);line-height:1.45}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%;height:auto}
.container{width:min(calc(100% - 32px), var(--container));margin:0 auto}
.site-bg{position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 18% 12%, rgba(255,255,255,.65), transparent 22%),linear-gradient(180deg, rgba(255,255,255,.32), rgba(255,255,255,0))}
.site-bg::before,.site-bg::after{content:"";position:absolute;inset:auto 0 0 0;height:240px;background-repeat:no-repeat;opacity:.18;background-size:cover}
.site-bg::before{top:120px;left:0;right:0;height:340px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='340' viewBox='0 0 1600 340'%3E%3Cg fill='none' stroke='%237ea3ce' stroke-width='1.2' opacity='0.48'%3E%3Cpath d='M26 214l140-82 95 67 124-92 116 71 152-100 109 79 116-80 108 61 127-74 128 57'/%3E%3Cpath d='M41 280l121-71 110 58 106-77 124 70 125-77 108 46 129-77 104 60 114-54 118 42'/%3E%3Cpath d='M47 117h198M331 85h129M561 154h164M781 111h187M1029 86h140M1261 148h177'/%3E%3Cpath d='M96 54v248M246 34v166M527 47v206M927 39v206M1190 65v187M1404 35v226'/%3E%3C/g%3E%3C/svg%3E")}
.site-bg::after{bottom:320px;height:420px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='420' viewBox='0 0 1600 420'%3E%3Cg fill='none' stroke='%2395b2d5' stroke-width='1' opacity='0.28'%3E%3Cpath d='M34 370c170-126 285-182 456-165 183 18 322 105 468 88 155-18 295-126 566-232'/%3E%3Cpath d='M22 280c198-56 316-66 477-9 147 51 300 87 473 62 140-20 303-98 561-226'/%3E%3Cpath d='M143 14v362M407 11v363M789 28v339M1163 11v361M1409 33v319'/%3E%3C/g%3E%3C/svg%3E")}
.header{position:sticky;top:0;z-index:40;background:rgba(232,241,251,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(189,208,232,.75)}
.header__row{display:grid;grid-template-columns:auto 1fr auto auto;gap:28px;align-items:center;min-height:86px}
.logo img,.site-logo,.custom-logo{width:auto;height:auto;max-width:300px;max-height:78px}
.site-title{font-size:32px;font-weight:800;color:var(--dark)}
.nav,.footer-nav{display:flex;justify-content:center;gap:30px;font-size:15px;font-weight:500;color:#253a50;list-style:none;margin:0;padding:0}
.nav li,.footer-nav li{list-style:none}
.nav a,.footer-nav a{position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:transparent;transition:.2s}
.nav a:hover::after{background:#4a84d8}
.header__phone{font-size:18px;font-weight:700;white-space:nowrap}
.header__phone a{color:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border:0;border-radius:10px;cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.01em;color:#fff;box-shadow:var(--shadow)}
.btn:hover{color:#fff}
.btn--green,.btn-success{background:linear-gradient(180deg, var(--green), var(--green-dark));border:0}
.btn--blue{background:linear-gradient(180deg, #4a67f5, var(--blue-dark))}
.btn--dark{background:#353a4f}
.section{padding:42px 0}
.hero{padding:26px 0 12px}
.hero__box{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.2));box-shadow:var(--shadow);padding:38px 42px 28px;display:grid;grid-template-columns:1.02fr .98fr;gap:24px;align-items:center}
.hero__box::after{content:"";position:absolute;inset:18px 18px auto auto;width:44%;height:72%;opacity:.35;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='420' viewBox='0 0 700 420'%3E%3Cg fill='none' stroke='%238da8ca' stroke-width='1.1'%3E%3Cpath d='M34 28l97 16 23 72-78 44-42 81 104 77 101-47 70 54 87-50 109-79 113 45 45-70'/%3E%3Cpath d='M115 0v340M260 62v248M420 12v270M578 49v233M17 122h235M226 195h191M390 276h254'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.hero__eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#5f83aa;font-weight:700}
.hero h1{margin:10px 0 16px;font-size:clamp(34px, 4vw, 58px);line-height:.95;font-weight:900;letter-spacing:-.05em;max-width:620px;text-transform:uppercase}
.hero__lead{margin:0 0 22px;font-size:22px;line-height:1.25;max-width:540px}
.hero__lead strong{color:#2f4dcb}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap}
.hero__visual{position:relative;min-height:320px;display:flex;align-items:center;justify-content:center}
.map-card{width:100%;height:100%;min-height:330px;border-radius:22px;border:1px dashed rgba(137,167,205,.75);background:radial-gradient(circle at 20% 18%, rgba(255,255,255,.45), transparent 30%),linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.03)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='480' viewBox='0 0 720 480'%3E%3Cg fill='none' stroke='%2390add0' stroke-width='1.4' opacity='0.55'%3E%3Cpath d='M52 35l69 31 41 76-28 67 43 38 79-12 41 49 79-11 61 49 99-35 45-74-30-52 28-67-61-76-96 16-81-38-69 34-59-29-92 36z'/%3E%3Cpath d='M99 13v430M167 47v370M278 31v389M389 44v362M506 24v401M624 40v342'/%3E%3Cpath d='M32 118h635M20 198h670M44 296h621M59 380h580'/%3E%3Cpath d='M291 142l120 59M310 312l143-126M534 133l-94 105M120 239l114-82'/%3E%3C/g%3E%3Ccircle cx='502' cy='210' r='13' fill='%2345d683'/%3E%3Ccircle cx='502' cy='210' r='27' fill='none' stroke='%2345d683' stroke-opacity='0.35' stroke-width='8'/%3E%3C/svg%3E") center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.mini-stat{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:rgba(255,255,255,.38);display:flex;gap:12px;align-items:flex-start}
.mini-stat__icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f4fbf7;color:var(--green-dark);border:1px solid #cdeeda;font-size:18px;flex:0 0 36px}
.mini-stat__text strong{display:block;font-size:16px}
.mini-stat__text span{display:block;color:var(--muted);font-size:14px}
.seo-copy{display:grid;gap:14px;max-width:1000px}
.seo-copy h2{margin:0;font-size:34px;line-height:1.02;letter-spacing:-.04em;font-weight:800}
.seo-copy p,.seo-content p{margin:0;color:#42536b;font-size:16px}
.bullet-strip{
  margin-top:30px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.bullet-item{
  position:relative;
  padding:0 0 0 18px;
  color:var(--muted);
  font-size:14px;
}

.bullet-item::before{
  content:"";
  position:absolute;
  left:0;
  top:6px;
  width:8px;
  height:8px;
  background:var(--green);
  border-radius:50%;
  clip-path:none;
}

.bullet-item strong{
  display:block;
  color:var(--text);
  margin:0 0 5px;
  font-size:15px;
  line-height:1.3;
}
.frame{position:relative;border:1px solid var(--line);border-radius:24px;padding:28px;background:linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.16))}
.frame::before{content:"";position:absolute;left:24px;top:16px;width:160px;height:1px;background:var(--line)}
.frame__title{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0 0 6px}
.frame__title.no-margin{margin-bottom:0}
.faq-inline{margin-top:28px}
.faq-inline__title{font-size:28px;margin-bottom:18px}
.waste-grid,.container-grid,.steps-grid,.clients-grid{display:grid;gap:18px}
.waste-grid,.container-grid{grid-template-columns:repeat(3,1fr)}
.steps-grid{grid-template-columns:repeat(4,1fr)}
.clients-grid{grid-template-columns:repeat(5,1fr);margin-top:18px}
.waste-card,.container-card,.client-card,.work-card,.review-card{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 18px rgba(67,97,143,.05)}
.waste-card,.container-card,.work-card,.review-card{padding:18px}
.waste-illustration,.container-illustration,.equipment-illustration,.sketch-box,.work-preview{border-radius:12px;border:1px dashed #aec3df;background:#fff;position:relative;overflow:hidden}
.waste-illustration{height:146px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;padding:10px}
.container-illustration{height:120px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;padding:10px}
.waste-illustration img,.container-illustration img,.equipment-illustration img,.sketch-box img,.cta-banner__image img{width:100%;height:100%;object-fit:contain}
.waste-card h3,.container-card h3,.faq-item h3{margin:0 0 8px;font-size:22px;line-height:1.05;letter-spacing:-.02em}
.muted{color:var(--muted)}
.note-bar{margin-top:18px;padding:15px 18px;border-radius:12px;background:#34384a;color:#fff;font-size:14px}
.container-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}
.small-copy{max-width:420px;color:var(--muted);font-size:14px}
.price{margin:10px 0 6px;font-weight:900;font-size:26px;color:#2e48ba}
.cta-banner{margin-top:22px;padding:30px 34px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#3f64f1,#2048c9);display:grid;grid-template-columns:1fr .9fr;gap:20px;align-items:center;overflow:hidden;position:relative}
.cta-banner h3{margin:0 0 10px;font-size:38px;line-height:.98;letter-spacing:-.05em;text-transform:uppercase;color:#fff}
.cta-banner p{margin:0 0 18px;color:rgba(255,255,255,.84)}
.cta-banner__image{min-height:180px;display:flex;align-items:center;justify-content:center}
.steps-wrap,.benefits-wrap,.footer-contact{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.steps-wrap{grid-template-columns:1fr}
.faq-item{
  background:rgba(255,255,255,.6);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
}

.faq-question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  font:inherit;
  color:var(--text);
}

.faq-question__text{
  display:block;
  font-size:18px;
  font-weight:700;
  line-height:1.3;
}

.faq-question__icon{
  flex:0 0 10px;
  width:10px;
  height:10px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transition:transform .2s ease, margin-top .2s ease;
  margin-top:-3px;
}

.faq-item.is-open .faq-question__icon{
  transform:rotate(225deg);
  margin-top:3px;
}

.faq-answer{
  padding:0 20px 18px;
}

.faq-answer[hidden]{
  display:none;
}

.faq-answer p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.step-card{padding:20px 18px;background:rgba(255,255,255,.58);border:1px solid var(--line);border-radius:16px;position:relative;min-height:170px}
.step-card__num{font-size:58px;line-height:1;font-weight:900;letter-spacing:-.06em;margin-bottom:10px;color:#202530}
.step-card h3{margin:0 0 8px;font-size:20px;line-height:1.05}
.step-card p{margin:0;color:var(--muted);font-size:14px}
.equipment-cluster{display:grid;gap:18px}
.equipment-panel{padding:18px;border:1px dashed var(--line);background:rgba(255,255,255,.42);border-radius:18px}
.equipment-illustration{height:210px}
.benefit-list{display:grid;gap:12px}
.benefit-row{display:grid;grid-template-columns:34px 170px 1fr;gap:16px;align-items:start;padding:12px 0;border-bottom:1px solid rgba(189,208,232,.72)}
.benefit-ico{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid #cbe3f7;color:#3d65ea;background:#f7fbff}
.benefit-row strong{font-size:18px}
.benefit-row span{color:var(--muted);font-size:14px}
.sketch-box{min-height:460px;padding:18px}
.client-card{min-height:88px;display:grid;place-items:center;padding:14px;color:#677f9e;font-weight:800;font-size:22px;background:rgba(255,255,255,.52)}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.work-preview{height:165px;background:linear-gradient(180deg, rgba(63,100,241,.07), rgba(63,100,241,.02))}
.work-preview::before,.work-preview::after{position:absolute;top:10px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:800;color:#fff}
.work-preview::before{content:"До";left:10px;background:#30344a}
.work-preview::after{content:"После";right:10px;background:#40cf7e}
.work-preview--1,.work-preview--2{background-image:linear-gradient(90deg, #d6dade 0 50%, #d8f4e3 50% 100%)}
.faq-list{display:grid;gap:18px}
.stars{color:#f2c94c;letter-spacing:2px;margin-bottom:10px}
.review-card p{margin:0 0 12px;color:#4a5f79}
.review-person{display:flex;align-items:center;gap:12px;font-weight:700}
.avatar{width:auto;height:42px;background:#fff;display:grid;place-items:center;color:#fff;font-weight:900;margin-bottom: 10px;}
.reviews-half{
  width:min(100%, calc(50% - 12px));
}

.reviews-track{
  display:grid;
  grid-template-columns:repeat(2, minmax(260px, 1fr));
  gap:18px;
  align-items:stretch;
}

.review-card{
  height:100%;
}

.sketch-box{
  display:flex;
  align-items:center;
  justify-content:center;
}

@media (max-width:1120px){
  .reviews-half{
    width:100%;
  }

  .reviews-track{
    grid-template-columns:1fr;
  }
}
.faq-item{padding:18px 20px;background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:14px}
.faq-item h3{font-size:18px;display:flex;justify-content:space-between;align-items:center}
.faq-item p{margin:8px 0 0;color:var(--muted);font-size:14px}
.site-footer{padding:38px 0 26px}
.footer-contact{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 0;margin-top:8px}
.footer-contact h2{margin:0;font-size:42px;line-height:.98;letter-spacing:-.05em;text-transform:uppercase}
.accent{color:var(--green-dark)}
.footer-info{display:grid;gap:18px;font-size:22px}
.footer-info a{color:#2c3e58}
.footer-bottom{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding-top:22px}
.footer-bottom .logo img{max-width:240px;max-height:64px}
.policy{font-size:13px;color:#7287a3;text-align:right}
.seo-content > * + * {margin-top:14px}
@media (max-width:1120px){.header__row{grid-template-columns:auto 1fr auto;gap:16px}.nav{grid-column:1/-1;order:5;justify-content:flex-start;flex-wrap:wrap;padding-bottom:16px}.hero__box,.benefits-wrap,.steps-wrap,.works-reviews,.footer-contact{grid-template-columns:1fr}.clients-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:900px){.hero-stats,.waste-grid,.container-grid,.steps-grid,.work-grid{grid-template-columns:1fr 1fr}.clients-grid{grid-template-columns:repeat(3,1fr)}.benefit-row{grid-template-columns:34px 1fr}.benefit-row div:last-child{grid-column:2}.footer-bottom{grid-template-columns:1fr;justify-items:start}.footer-nav{justify-content:flex-start;flex-wrap:wrap}.policy{text-align:left}}
@media (max-width:640px){.container{width:min(calc(100% - 20px),var(--container))}.header__row{grid-template-columns:1fr;justify-items:start;padding:14px 0}.header__phone{font-size:16px}.btn{width:100%}.hero__box{padding:24px 18px 20px}.hero h1{font-size:34px}.hero__lead{font-size:18px}.hero-stats,.waste-grid,.container-grid,.steps-grid,.clients-grid,.work-grid{grid-template-columns:1fr}.frame__title,.steps-copy h2,.footer-contact h2{font-size:28px}.footer-contact{padding:24px 0}.cta-banner{grid-template-columns:1fr;padding:24px 20px}.cta-banner h3{font-size:30px}}
/* ===== Service page dynamic media patch ===== */
.hero__box--custom-media::after {
  display: none;
}

.map-card.has-custom-media {
  position: relative;
  background: radial-gradient(circle at 20% 18%, rgba(255,255,255,.45), transparent 30%),
              linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.03));
}
.map-card.has-custom-media img {
  position: absolute;
  display: block;
}
.map-card.has-custom-media .hero__scheme-image {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .32;
  z-index: 1;
}
.map-card.has-custom-media .hero__main-image {
  left: auto;
  top: auto;
  right: 0;
  bottom: 0;
  width: min(96%, 560px);
  max-height: 92%;
  height: auto;
  object-fit: contain;
  z-index: 3;
  padding: 0;
  filter: drop-shadow(0 18px 30px rgba(32, 53, 87, 0.14));
}
.hero__visual {
  align-items: stretch;
}

.mini-stat__icon img,
.benefit-ico img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}
.client-card img {
  max-width: 100%;
  max-height: 48px;
  object-fit: contain;
}
.work-preview {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.work-preview__half {
  position: relative;
  min-height: 165px;
}
.work-preview__half img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

/* ===== Mega menu normalization patch ===== */
.header__nav {
    min-width: 0;
}

.header__nav .nav-wrap {
    position: relative;
}

.nav-toggle,
.menu-expand {
    display: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--text);
}

.nav-toggle {
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(39, 62, 99, 0.08);
}

.nav-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

.nav-toggle span + span {
    margin-top: 4px;
}

@media (max-width: 1120px) {
    .header__nav {
        grid-column: 1 / -1;
        order: 5;
        width: 100%;
    }

    .nav-toggle {
        display: inline-flex;
        flex-direction: column;
    }

    .header__nav .nav-wrap {
        display: none;
        width: 100%;
        padding-top: 12px;
    }

    .header__nav .nav-wrap.is-open {
        display: block;
    }

    .nav {
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding-bottom: 0;
    }

    .nav > li {
        width: 100%;
        border-bottom: 1px solid var(--line);
    }

    .nav > li > a {
        display: flex;
        align-items: center;
        min-height: 52px;
        padding: 0 48px 0 0;
    }

    .nav > li.menu-item-has-children > a::after {
        display: none;
    }

    .menu-expand {
        position: absolute;
        top: 8px;
        right: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border: 1px solid var(--line);
        border-radius: 10px;
        background: #fff;
    }

    .menu-expand::before {
        content: "";
        width: 8px;
        height: 8px;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg);
        margin-top: -3px;
        transition: transform .2s ease, margin-top .2s ease;
    }

    .menu-item-has-children.is-open > .menu-expand::before {
        transform: rotate(225deg);
        margin-top: 3px;
    }

    .nav > li.mega-menu > .sub-menu,
    .nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu {
        margin-top: 0;
        padding: 0 0 12px;
    }

    .nav > li.mega-menu > .sub-menu > li,
    .nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu > li {
        position: relative;
    }

    .nav > li.mega-menu > .sub-menu > li > a,
    .nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu > li > a {
        display: block;
        padding: 10px 44px 10px 12px;
    }

    .nav > li.mega-menu > .sub-menu > li > .sub-menu {
        padding: 0 0 8px 16px;
    }
    
     .nav-wrap {
        width: 100%;
    }

    .nav-wrap .nav {
        display: none;
        width: 100%;
        margin-top: 12px;
    }

    .nav-wrap.is-open .nav {
        display: flex;
    }

    .nav .sub-menu {
        display: none;
    }

    .nav .menu-item-has-children.is-open > .sub-menu {
        display: block;
    }

    .nav > li.mega-menu > .sub-menu,
    .nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu {
        position: static;
        transform: none;
        width: 100%;
        min-width: 0;
        margin-top: 8px;
        padding: 8px 0 0 12px;
        border: 0;
        box-shadow: none;
        background: transparent;
    }

    .nav > li.mega-menu > .sub-menu > li > .sub-menu,
    .nav > li.mega-menu > .sub-menu > li > .sub-menu > li > .sub-menu {
        padding-left: 14px;
        border-left: 1px solid var(--line-2);
    }
}

/* ===== FIX: WordPress mega menu for primary nav ===== */

.header,
.header__row,
.nav-wrap,
.nav {
    overflow: visible;
}

.nav-wrap {
    position: relative;
}

.nav {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav > li {
    position: relative;
    list-style: none;
}

.nav > li > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.nav > li.menu-item-has-children > a::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-top: -3px;
}

.nav .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* обычные dropdown */
.nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu {
    position: absolute;
    top: calc(100% + 14px);
    left: 0;
    min-width: 240px;
    display: none;
    padding: 12px 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(39, 62, 99, 0.12);
    z-index: 150;
}

.nav > li.menu-item-has-children:not(.mega-menu):hover > .sub-menu,
.nav > li.menu-item-has-children:not(.mega-menu):focus-within > .sub-menu,
.nav > li.menu-item-has-children:not(.mega-menu).is-open > .sub-menu {
    display: block;
}

.nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu > li > a {
    display: block;
    padding: 10px 16px;
    color: var(--text);
    white-space: nowrap;
}

/* mega menu */
.nav > li.mega-menu {
    position: static;
}

.nav > li.mega-menu > .sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    width: min(1240px, calc(100vw - 32px));
    display: none;
    grid-template-columns: repeat(4, minmax(220px, 1fr));
    gap: 24px 28px;
    align-content: start;
    padding: 24px 24px 28px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(39, 62, 99, 0.14);
    z-index: 300;
    max-height: min(72vh, 760px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

/* невидимый мостик между пунктом меню и мегаменю */
.nav > li.mega-menu > .sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -18px;
    height: 18px;
    background: transparent;
}

.nav > li.mega-menu:hover > .sub-menu,
.nav > li.mega-menu:focus-within > .sub-menu,
.nav > li.mega-menu.is-open > .sub-menu {
    display: grid;
}

.nav > li.mega-menu > .sub-menu > li {
    min-width: 0;
}

.nav > li.mega-menu > .sub-menu > li > a {
    display: block;
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 800;
    color: var(--text);
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu {
    display: grid;
    gap: 10px;
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li > a {
    display: block;
    font-size: 14px;
    line-height: 1.3;
    color: var(--muted);
    transition: color .2s ease;
}

/* скролл внутри мегаменю */
.nav > li.mega-menu > .sub-menu::-webkit-scrollbar {
    width: 10px;
}

.nav > li.mega-menu > .sub-menu::-webkit-scrollbar-track {
    background: #f3f5f8;
    border-radius: 10px;
}

.nav > li.mega-menu > .sub-menu::-webkit-scrollbar-thumb {
    background: #c8d2df;
    border-radius: 10px;
    border: 2px solid #f3f5f8;
}

/* чуть плотнее колонки */
.nav > li.mega-menu > .sub-menu > li > .sub-menu {
    display: grid;
    gap: 8px;
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li > a:hover {
    color: var(--green-dark);
}

/* мобильный режим */
@media (max-width: 1120px) {
    .nav {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }

    .nav > li.mega-menu,
    .nav > li.menu-item-has-children:not(.mega-menu) {
        position: relative;
    }

    .nav > li.mega-menu > .sub-menu,
    .nav > li.menu-item-has-children:not(.mega-menu) > .sub-menu {
        position: static;
        left: auto;
        top: auto;
        transform: none;
        width: 100%;
        min-width: 0;
        display: none;
        margin-top: 10px;
        padding: 12px 0 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: transparent;
    }

    .nav > li.mega-menu.is-open > .sub-menu,
    .nav > li.menu-item-has-children:not(.mega-menu).is-open > .sub-menu {
        display: block;
    }

    .nav > li.mega-menu > .sub-menu {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .nav > li.mega-menu > .sub-menu > li > a {
        margin-bottom: 8px;
        font-size: 16px;
    }

    .nav > li.mega-menu > .sub-menu > li > .sub-menu {
        gap: 8px;
        padding-left: 12px;
    }
}

/* ===== Reviews horizontal track ===== */
.reviews-half{
  width:min(100%, calc(50% - 12px));
}

.reviews-track{
  display:flex;
  flex-wrap:nowrap;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  align-items:stretch;
  padding-bottom:6px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}

.review-card{
  flex:0 0 320px;
  width:320px;
  min-height:100%;
  scroll-snap-align:start;
}

.reviews-track::-webkit-scrollbar{
  height:8px;
}

.reviews-track::-webkit-scrollbar-track{
  background:#edf4fd;
  border-radius:999px;
}

.reviews-track::-webkit-scrollbar-thumb{
  background:#bdd0e8;
  border-radius:999px;
}

@media (max-width:1120px){
  .reviews-half{
    width:100%;
  }

  .review-card{
    flex:0 0 min(320px, 85vw);
    width:min(320px, 85vw);
  }
}

/* ===== Reviews final normalize ===== */
.reviews-half{
  width:100%;
  min-width:0;
}

.reviews-track{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:18px;
  width:100%;
  overflow:visible;
}

.review-card{
  width:auto;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:18px;
}

.review-card p{
  margin:0 0 14px;
  flex:1 1 auto;
}

.review-person{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:auto;
}

.avatar{
  flex:0 0 auto;
  width:auto;
  height:auto;
  min-width:0;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:visible;
}

.avatar img{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:45px;
  object-fit:contain;
  border-radius:0 !important;
}

.reviews-track::-webkit-scrollbar{
  display:none;
}

@media (max-width:1120px){
  .reviews-track{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width:640px){
  .reviews-track{
    grid-template-columns:1fr !important;
  }

  .avatar img{
    max-height:40px;
  }
}

/* ===== Service equipment rent carousel ===== */
.equipment-rent{
  overflow:hidden;
}

.equipment-rent__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}

.equipment-rent__intro{
  max-width:620px;
  margin:8px 0 0;
  color:var(--muted);
  font-size:15px;
}

.equipment-rent__nav{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}

.equipment-rent__arrow{
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.75);
  color:var(--blue-dark);
  font-size:28px;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(67,97,143,.05);
}

.equipment-rent__arrow:hover{
  background:#fff;
}

.equipment-rent__track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;
  scrollbar-width:none;
}

.equipment-rent__track::-webkit-scrollbar{
  display:none;
}

.equipment-rent-card{
  position:relative;
  flex:0 0 calc((100% - 36px) / 3);
  min-width:0;
  scroll-snap-align:start;
  background:rgba(255,255,255,.68);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 6px 18px rgba(67,97,143,.05);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.equipment-rent-card__badge{
  position:absolute;
  z-index:2;
  top:12px;
  left:12px;
  padding:7px 10px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--green), var(--green-dark));
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:0 8px 18px rgba(20,90,60,.15);
}

.equipment-rent-card__badge--green{
  background:linear-gradient(180deg, var(--green), var(--green-dark));
}

.equipment-rent-card__badge--orange{
  background:linear-gradient(180deg, #ffb84d, #f08b1a);
}

.equipment-rent-card__badge--red{
  background:linear-gradient(180deg, #ff6b6b, #df3333);
}

.equipment-rent-card__badge--blue{
  background:linear-gradient(180deg, #5a7cff, #2e48ba);
}

.equipment-rent-card__badge--dark{
  background:linear-gradient(180deg, #48536b, #242b3b);
}

.equipment-rent-card__image{
  position:relative;
  height:188px;
  border-bottom:1px dashed #aec3df;
  background:#fff;
  overflow:hidden;
}

.equipment-rent-card__image-button{
  display:block;
  width:100%;
  padding:0;
  border:0;
  text-align:left;
  cursor:pointer;
}

.equipment-rent-card__image img,
.equipment-rent-card__image video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease;
}

.equipment-rent-card:hover .equipment-rent-card__image img,
.equipment-rent-card:hover .equipment-rent-card__image video{
  transform:scale(1.035);
}

.equipment-rent-card__noimage,
.equipment-rent-modal__noimage{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:14px;
  background:linear-gradient(180deg, #fff, #f3f8ff);
}

.equipment-rent-card__gallery-count{
  position:absolute;
  right:12px;
  bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(24,34,52,.78);
  color:#fff;
  font-size:12px;
  font-weight:800;
}

.equipment-rent-card__media-play{
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  width:48px;
  height:48px;
  margin:-24px 0 0 -24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(24,34,52,.72);
  color:#fff;
  font-size:18px;
  line-height:1;
  box-shadow:0 10px 24px rgba(24,34,52,.18);
}

.equipment-rent-card__body{
  padding:18px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.equipment-rent-card h3{
  min-height:52px;
  margin:0 0 8px;
  font-size:22px;
  line-height:1.05;
  letter-spacing:-.02em;
}

.equipment-rent-card p{
  margin:0 0 14px;
  color:var(--muted);
  font-size:14px;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.equipment-rent-card__prices{
  margin-top:auto;
  margin-bottom:12px;
}

.equipment-rent-card__old-price{
  color:var(--muted);
  text-decoration:line-through;
  font-size:15px;
  font-weight:700;
}

.equipment-rent-card__price{
  color:#2e48ba;
  font-size:26px;
  line-height:1.1;
  font-weight:900;
}

.equipment-rent-card__price--agreement{
  color:var(--text);
  font-size:22px;
}

.equipment-rent-card.has-sale .equipment-rent-card__price{
  color:var(--green-dark);
}

.equipment-rent-card__actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

.equipment-rent-card__btn,
.equipment-rent-card__details{
  width:100%;
}

.equipment-rent-card__details{
  border:0;
}

.equipment-rent-modal .modal-dialog{
  max-width:1060px;
}

.equipment-rent-modal__content{
  position:relative;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--surface);
  box-shadow:0 24px 70px rgba(24,34,52,.24);
  overflow:hidden;
}

.equipment-rent-modal__close{
  position:absolute;
  z-index:5;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  border-radius:999px;
  background-color:rgba(255,255,255,.88);
  box-shadow:0 8px 20px rgba(24,34,52,.12);
}

.equipment-rent-modal__body{
  padding:22px;
}

.equipment-rent-modal__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(320px, .85fr);
  gap:24px;
  align-items:stretch;
}

.equipment-rent-modal__gallery{
  min-height:420px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  overflow:hidden;
}

.equipment-rent-modal__carousel,
.equipment-rent-modal__carousel .carousel-inner,
.equipment-rent-modal__carousel .carousel-item{
  height:100%;
  min-height:420px;
}

.equipment-rent-modal__carousel img,
.equipment-rent-modal__carousel video,
.equipment-rent-modal__single-image,
.equipment-rent-modal__video{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:contain;
  display:block;
  background:#fff;
}

.equipment-rent-modal__carousel .carousel-control-prev,
.equipment-rent-modal__carousel .carousel-control-next{
  width:48px;
  height:48px;
  top:50%;
  bottom:auto;
  margin-top:-24px;
  border-radius:999px;
  background:rgba(24,34,52,.55);
  opacity:1;
}

.equipment-rent-modal__carousel .carousel-control-prev{
  left:14px;
}

.equipment-rent-modal__carousel .carousel-control-next{
  right:14px;
}

.equipment-rent-modal__info{
  position:relative;
  padding:14px 8px 6px 0;
  display:flex;
  flex-direction:column;
}

.equipment-rent-modal__badge{
  position:static;
  align-self:flex-start;
  margin-bottom:12px;
}

.equipment-rent-modal__info h3{
  margin:0 0 12px;
  font-size:34px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.equipment-rent-modal__text{
  margin:0 0 18px;
  color:var(--muted);
  font-size:16px;
  line-height:1.55;
}

.equipment-rent-modal__prices{
  margin:0 0 18px;
}

.equipment-rent-specs{
  margin:0 0 18px;
  padding:16px;
  border:1px solid var(--line-2);
  border-radius:16px;
  background:rgba(255,255,255,.7);
}

.equipment-rent-specs h4{
  margin:0 0 10px;
  font-size:18px;
}

.equipment-rent-specs dl{
  margin:0;
}

.equipment-rent-specs dl > div{
  display:grid;
  grid-template-columns:minmax(110px, .75fr) minmax(0, 1fr);
  gap:14px;
  padding:9px 0;
  border-top:1px dashed #c8d7eb;
}

.equipment-rent-specs dl > div:first-child{
  border-top:0;
  padding-top:0;
}

.equipment-rent-specs dl > div:last-child{
  padding-bottom:0;
}

.equipment-rent-specs dt{
  color:var(--muted);
  font-weight:700;
}

.equipment-rent-specs dd{
  margin:0;
  color:var(--text);
  font-weight:800;
}

.equipment-rent-modal__btn{
  width:100%;
  margin-top:auto;
}

@media (max-width:900px){
  .equipment-rent-card{
    flex-basis:calc((100% - 18px) / 2);
  }

  .equipment-rent-modal__grid{
    grid-template-columns:1fr;
  }

  .equipment-rent-modal__info{
    padding:0;
  }
}

@media (max-width:640px){
  .equipment-rent__head{
    align-items:flex-start;
    flex-direction:column;
  }

  .equipment-rent__nav{
    width:100%;
    justify-content:flex-end;
  }

  .equipment-rent-card{
    flex-basis:min(88vw, 340px);
  }

  .equipment-rent-modal__body{
    padding:14px;
  }

  .equipment-rent-modal__gallery,
  .equipment-rent-modal__carousel,
  .equipment-rent-modal__carousel .carousel-inner,
  .equipment-rent-modal__carousel .carousel-item,
  .equipment-rent-modal__carousel img,
  .equipment-rent-modal__single-image{
    min-height:280px;
  }

  .equipment-rent-modal__info h3{
    font-size:26px;
  }

  .equipment-rent-specs dl > div{
    grid-template-columns:1fr;
    gap:3px;
  }
}

/* ===== Bootstrap modal/carousel fallback for local placeholder assets ===== */
.modal{
  position:fixed;
  top:0;
  left:0;
  z-index:1055;
  display:none;
  width:100%;
  height:100%;
  overflow-x:hidden;
  overflow-y:auto;
  outline:0;
  background:rgba(12,20,34,.54);
}

.modal.show{
  display:block;
}

.modal-dialog{
  position:relative;
  width:auto;
  margin:1.75rem auto;
  pointer-events:none;
}

.modal-dialog-centered{
  display:flex;
  align-items:center;
  min-height:calc(100% - 3.5rem);
}

.modal-xl{
  max-width:1140px;
}

.modal-content{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  pointer-events:auto;
  background-clip:padding-box;
  outline:0;
}

.modal-body{
  position:relative;
  flex:1 1 auto;
}

body.modal-open{
  overflow:hidden;
}

.btn-close{
  border:0;
  cursor:pointer;
}

.btn-close::before{
  content:'×';
  display:block;
  color:var(--text);
  font-size:30px;
  line-height:36px;
  text-align:center;
}

.visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.carousel{
  position:relative;
}

.carousel-inner{
  position:relative;
  width:100%;
  overflow:hidden;
}

.carousel-item{
  position:relative;
  display:none;
  width:100%;
}

.carousel-item.active{
  display:block;
}

.carousel-control-prev,
.carousel-control-next{
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:15%;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  text-align:center;
  cursor:pointer;
}

.carousel-control-prev{
  left:0;
}

.carousel-control-next{
  right:0;
}

.carousel-control-prev-icon::before,
.carousel-control-next-icon::before{
  display:block;
  width:44px;
  height:44px;
  border-radius:999px;
  background:rgba(24,34,52,.55);
  color:#fff;
  font-size:36px;
  line-height:38px;
  font-weight:700;
}

.carousel-control-prev-icon::before{
  content:'‹';
}

.carousel-control-next-icon::before{
  content:'›';
}

@media (max-width:640px){
  .modal-dialog{
    margin:.75rem;
  }

  .modal-dialog-centered{
    min-height:calc(100% - 1.5rem);
  }
}

/* ===== Mega menu: 4-level services structure ===== */

.nav > li.mega-menu > .sub-menu > li > .sub-menu {
    display: grid;
    gap: 14px;
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li.menu-item-has-children > a {
    display: block;
    margin: 4px 0 6px;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 800;
    color: var(--green-dark);
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li > .sub-menu {
    display: grid;
    gap: 6px;
    margin: 6px 0 0;
    padding-left: 12px;
    border-left: 1px solid var(--line-2);
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li > .sub-menu > li > a {
    display: block;
    font-size: 13px;
    line-height: 1.3;
    color: var(--muted);
}

.nav > li.mega-menu > .sub-menu > li > .sub-menu > li > .sub-menu > li > a:hover {
    color: var(--green-dark);
}

/* ===== Footer: light donor-style structure ===== */
.eco-footer{
  margin-top:48px;
  padding:0;
  background:
    radial-gradient(circle at 16% 0, rgba(255,255,255,.72), transparent 30%),
    linear-gradient(180deg, rgba(247,251,255,.88), rgba(232,241,251,.96));
  border-top:1px solid var(--line);
  color:var(--text);
}

.eco-footer a{
  transition:color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.eco-footer__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
}

.eco-footer__contact-main{
  display:flex;
  align-items:center;
  gap:14px;
}

.eco-footer__phone-icon{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(180deg, var(--green), var(--green-dark));
  color:#fff;
  font-size:20px;
  box-shadow:0 12px 24px rgba(29,185,102,.16);
}

.eco-footer__phone{
  display:inline-block;
  font-size:clamp(22px, 2.4vw, 30px);
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.035em;
  color:var(--dark);
}

.eco-footer__phone:hover,
.eco-footer__email:hover{
  color:var(--green-dark);
}

.eco-footer__email{
  font-size:15px;
  color:var(--muted);
  font-weight:700;
}

.eco-footer__muted{
  margin-top:4px;
  color:var(--muted);
  font-size:14px;
}

.eco-footer__main{
  display:grid;
  grid-template-columns:minmax(230px,1.15fr) minmax(170px,.9fr) minmax(180px,.9fr) minmax(240px,1fr);
  gap:34px;
  padding:38px 0 34px;
}

.eco-footer__brand-logo{
  display:inline-flex;
  align-items:center;
  margin-bottom:16px;
}

.eco-footer__brand-logo .site-logo,
.eco-footer__brand-logo .custom-logo{
  max-width:240px;
  max-height:64px;
}

.eco-footer__brand-logo .site-title{
  font-size:26px;
}

.eco-footer__brand p{
  margin:0 0 18px;
  max-width:290px;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}

.eco-footer__socials{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.eco-footer__socials a{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  border:1px solid var(--line-2);
  background:rgba(255,255,255,.62);
  color:var(--dark);
  font-size:14px;
  font-weight:800;
}

.eco-footer__socials a:hover{
  transform:translateY(-1px);
  border-color:rgba(29,185,102,.55);
  background:rgba(63,210,132,.12);
  color:var(--green-dark);
}

.eco-footer__socials img{
  width:18px;
  height:18px;
  object-fit:contain;
}

.eco-footer__title{
  margin:0 0 14px;
  color:#7a8ba2;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.eco-footer__links,
.eco-footer__chips{
  margin:0;
  padding:0;
  list-style:none;
}

.eco-footer__links{
  display:grid;
  gap:9px;
}

.eco-footer__links a{
  color:#40536c;
  font-size:15px;
  line-height:1.32;
}

.eco-footer__links a:hover{
  color:var(--green-dark);
}

.eco-footer__stack{
  display:grid;
  gap:28px;
  align-content:start;
}

.eco-footer__chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.eco-footer__chips a{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border:1px solid var(--line-2);
  border-radius:9px;
  background:rgba(255,255,255,.56);
  color:#526780;
  font-size:14px;
  line-height:1.2;
}

.eco-footer__chips a:hover{
  border-color:rgba(29,185,102,.56);
  background:rgba(63,210,132,.12);
  color:var(--green-dark);
}

.eco-footer__cities{
  padding:0 0 34px;
  border-bottom:1px solid var(--line);
}

.eco-footer__requisites{
  padding:22px 0;
  border-bottom:1px solid var(--line);
  color:#7b8ca3;
  font-size:13px;
  line-height:1.55;
}

.eco-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 0 26px;
  color:#7b8ca3;
  font-size:13px;
}

.eco-footer__bottom p{
  margin:0;
}

.eco-footer__legal{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:18px;
}

.eco-footer__legal a{
  color:#7b8ca3;
}

.eco-footer__legal a:hover{
  color:var(--green-dark);
}

@media (max-width:1120px){
  .eco-footer__main{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:760px){
  .eco-footer{
    margin-top:34px;
  }

  .eco-footer__top,
  .eco-footer__bottom{
    align-items:flex-start;
    flex-direction:column;
  }

  .eco-footer__main{
    grid-template-columns:1fr;
    gap:28px;
    padding:32px 0;
  }

  .eco-footer__brand p{
    max-width:none;
  }

  .eco-footer__legal{
    justify-content:flex-start;
    gap:12px 18px;
  }
}

/* ===== Footer hardening patch: donor markup + temporary geo/container rules =====
   Этот блок держим в самом конце файла, чтобы он перебивал старые стили и
   сырой Tailwind-подобный HTML донора, если он временно попал в footer.php. */

/* 1) Нормализация нового футера .eco-footer */
.eco-footer,
footer#kontakty{
  margin-top:48px;
  padding:0;
  background:
    radial-gradient(circle at 16% 0, rgba(255,255,255,.72), transparent 30%),
    linear-gradient(180deg, rgba(247,251,255,.92), rgba(232,241,251,.98)) !important;
  border-top:1px solid var(--line);
  color:var(--text) !important;
}

.eco-footer ul,
.eco-footer li,
footer#kontakty ul,
footer#kontakty li{
  margin:0;
  padding:0;
  list-style:none;
}

.eco-footer a,
footer#kontakty a{
  color:inherit;
  text-decoration:none;
}

/* Временно убираем контейнеры больше 30 м³ из подвала, если они ещё есть в меню или fallback. */
.eco-footer__stack nav:first-child .eco-footer__links li:nth-child(n+4),
footer#kontakty > div > div:nth-child(2) > div:nth-child(3) > ul:first-of-type > li:nth-child(n+4){
  display:none !important;
}

/* Временно отключаем блок городов МО. Вернуть можно, убрав это правило. */
.eco-footer__cities,
footer#kontakty > div > div:nth-child(3){
  display:none !important;
}

/* 2) Адаптер для сырой донорской верстки footer#kontakty без Tailwind */
footer#kontakty > div{
  width:min(calc(100% - 32px), var(--container));
  margin:0 auto;
  padding:0;
}

footer#kontakty > div > div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
}

footer#kontakty > div > div:nth-child(2){
  display:grid;
  grid-template-columns:minmax(230px,1.15fr) minmax(170px,.9fr) minmax(180px,.9fr) minmax(240px,1fr);
  gap:34px;
  padding:38px 0 34px;
}

footer#kontakty > div > div:nth-last-child(2){
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:#7b8ca3;
  font-size:13px;
  line-height:1.55;
}

footer#kontakty > div > div:last-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 0 26px;
  color:#7b8ca3;
  font-size:13px;
}

footer#kontakty > div > div:last-child p{
  margin:0;
}

footer#kontakty .flex{
  display:flex;
}

footer#kontakty .grid{
  display:grid;
}

footer#kontakty .flex-wrap{
  flex-wrap:wrap;
}

footer#kontakty .items-center{
  align-items:center;
}

footer#kontakty .justify-between{
  justify-content:space-between;
}

footer#kontakty .gap-2,
footer#kontakty .gap-3{
  gap:10px;
}

footer#kontakty .gap-6,
footer#kontakty .gap-10{
  gap:34px;
}

footer#kontakty .space-y-2 > * + *{
  margin-top:9px;
}

footer#kontakty .uppercase{
  margin:0 0 14px;
  color:#7a8ba2 !important;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

footer#kontakty .text-sm,
footer#kontakty ul a{
  color:#40536c !important;
  font-size:15px;
  line-height:1.32;
}

footer#kontakty a:hover{
  color:var(--green-dark) !important;
}

footer#kontakty .text-base,
footer#kontakty .font-bold{
  color:var(--dark) !important;
  font-weight:900;
}

footer#kontakty p,
footer#kontakty .leading-relaxed{
  color:var(--muted) !important;
  font-size:15px;
  line-height:1.55;
}

footer#kontakty svg{
  display:block;
}

/* Логотип / бренд в сырой донорской верстке */
footer#kontakty > div > div:nth-child(2) > div:first-child > div:first-child{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}

footer#kontakty > div > div:nth-child(2) > div:first-child > div:first-child > div{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:linear-gradient(180deg, var(--green), var(--green-dark));
  color:#fff;
}

/* Социальные иконки в сырой донорской верстке */
footer#kontakty > div > div:nth-child(2) > div:first-child > div:last-child{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

footer#kontakty > div > div:nth-child(2) > div:first-child > div:last-child a{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  border:1px solid var(--line-2);
  background:rgba(255,255,255,.62) !important;
  color:var(--dark) !important;
}

footer#kontakty > div > div:nth-child(2) > div:first-child > div:last-child a:hover{
  transform:translateY(-1px);
  border-color:rgba(29,185,102,.55);
  background:rgba(63,210,132,.12) !important;
  color:var(--green-dark) !important;
}

/* Чипы округов и городов в сырой донорской верстке */
footer#kontakty .flex-wrap a{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border:1px solid var(--line-2);
  border-radius:9px;
  background:rgba(255,255,255,.56) !important;
  color:#526780 !important;
  font-size:14px;
  line-height:1.2;
}

footer#kontakty .flex-wrap a:hover{
  border-color:rgba(29,185,102,.56);
  background:rgba(63,210,132,.12) !important;
  color:var(--green-dark) !important;
}

@media (max-width:1120px){
  footer#kontakty > div > div:nth-child(2){
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:760px){
  .eco-footer,
  footer#kontakty{
    margin-top:34px;
  }

  footer#kontakty > div{
    width:min(calc(100% - 20px), var(--container));
  }

  footer#kontakty > div > div:first-child,
  footer#kontakty > div > div:last-child{
    align-items:flex-start;
    flex-direction:column;
  }

  footer#kontakty > div > div:nth-child(2){
    grid-template-columns:1fr;
    gap:28px;
    padding:32px 0;
  }
}

/* ===== Footer top: restore legacy CTA block ===== */
.eco-footer .footer-contact.eco-footer__contact-legacy{
  display:grid !important;
  grid-template-columns:minmax(0, 1.08fr) minmax(320px, .92fr) !important;
  gap:72px !important;
  align-items:center !important;
  margin:0 !important;
  padding:42px 0 48px !important;
  border-top:0 !important;
  border-bottom:1px solid var(--line) !important;
  background:transparent !important;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2{
  position:relative;
  max-width:560px;
  margin:0;
  color:#30364b;
  font-size:clamp(34px, 3.7vw, 44px);
  line-height:1.14;
  letter-spacing:-.055em;
  font-weight:500;
  text-transform:uppercase;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2 .accent{
  color:#30364b;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2::after{
  content:"";
  position:absolute;
  left:calc(100% + 28px);
  top:22px;
  width:210px;
  border-top:2px dashed #315ed6;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2::before{
  content:"";
  position:absolute;
  left:calc(100% + 231px);
  top:17px;
  width:11px;
  height:11px;
  border-top:2px solid #315ed6;
  border-right:2px solid #315ed6;
  transform:rotate(45deg);
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info{
  display:grid;
  gap:28px;
  font-size:24px;
  line-height:1.25;
  justify-content: end;
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__link{
  display:grid;
  grid-template-columns:44px minmax(0, 1fr);
  gap:22px;
  align-items:center;
  color:#30364b;
  font-weight:500;
  letter-spacing:-.02em;
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__link:hover{
  color:var(--blue-dark);
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px dashed #315ed6;
  border-radius:10px;
  color:#315ed6;
  background:rgba(255,255,255,.28);
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__icon svg{
  display:block;
}

@media (max-width:1120px){
  .eco-footer .footer-contact.eco-footer__contact-legacy{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy h2::before,
  .eco-footer .footer-contact.eco-footer__contact-legacy h2::after{
    display:none;
  }
}

@media (max-width:640px){
  .eco-footer .footer-contact.eco-footer__contact-legacy{
    padding:30px 0 34px !important;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy h2{
    font-size:30px;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy .footer-info{
    gap:18px;
    font-size:19px;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__link{
    grid-template-columns:38px minmax(0, 1fr);
    gap:14px;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy .footer-info__icon{
    width:38px;
    height:38px;
  }
}

/* ===== Footer top CTA final alignment fix ===== */
.eco-footer .footer-contact.eco-footer__contact-legacy{
  grid-template-columns:minmax(0, 560px) minmax(320px, 1fr) !important;
  gap:90px !important;
  align-items:start !important;
  padding:42px 0 48px !important;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2{
  max-width:600px !important;
  font-size:clamp(38px, 3.5vw, 44px) !important;
  line-height:1.12 !important;
  letter-spacing:-.055em !important;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2::after{
  left:285px !important;
  top:20px !important;
  width:210px !important;
  border-top:2px dashed #315ed6 !important;
}

.eco-footer .footer-contact.eco-footer__contact-legacy h2::before{
  left:488px !important;
  top:15px !important;
}

.eco-footer .footer-contact.eco-footer__contact-legacy .footer-info{
  padding-top:4px !important;
  gap:28px !important;
}

@media (max-width:1120px){
  .eco-footer .footer-contact.eco-footer__contact-legacy{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .eco-footer .footer-contact.eco-footer__contact-legacy h2::before,
  .eco-footer .footer-contact.eco-footer__contact-legacy h2::after{
    display:none !important;
  }
}

@media (max-width:640px){
  .eco-footer .footer-contact.eco-footer__contact-legacy h2{
    font-size:30px !important;
  }
}

/* ===== Order popup: phone-only form for #contacts CTA ===== */
body.eco-order-modal-open{
  overflow:hidden;
}

.eco-order-modal[hidden]{
  display:none !important;
}

.eco-order-modal{
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}

.eco-order-modal.is-open{
  opacity:1;
  pointer-events:auto;
}

.eco-order-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(20,32,52,.48);
  backdrop-filter:blur(6px);
}

.eco-order-modal__dialog{
  position:relative;
  z-index:2;
  width:min(100%, 460px);
  transform:translateY(10px) scale(.98);
  transition:transform .18s ease;
}

.eco-order-modal.is-open .eco-order-modal__dialog{
  transform:translateY(0) scale(1);
}

.eco-order-modal__content{
  position:relative;
  padding:34px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg, #fff, var(--surface));
  box-shadow:0 24px 70px rgba(24,34,52,.24);
  color:var(--text);
}

.eco-order-modal__close{
  position:absolute;
  z-index:3;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:1px solid var(--line-2);
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:var(--text);
  font-size:28px;
  line-height:34px;
  cursor:pointer;
}

.eco-order-modal__close:hover{
  color:var(--green-dark);
  border-color:rgba(29,185,102,.5);
}

.eco-order-modal__eyebrow{
  margin:0 0 8px;
  color:var(--green-dark);
  font-size:13px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.eco-order-modal h2{
  margin:0 36px 10px 0;
  font-size:clamp(28px, 4vw, 38px);
  line-height:1;
  letter-spacing:-.05em;
  text-transform:uppercase;
}

.eco-order-modal p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.5;
}

.eco-order-form{
  display:grid;
  gap:12px;
}

.eco-order-form__label{
  color:var(--text);
  font-size:14px;
  font-weight:800;
}

.eco-order-form__label span{
  color:var(--green-dark);
}

.eco-order-form__input{
  width:100%;
  min-height:54px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:17px;
  outline:0;
  box-shadow:0 8px 22px rgba(67,97,143,.05);
}

.eco-order-form__input:focus{
  border-color:rgba(29,185,102,.75);
  box-shadow:0 0 0 4px rgba(63,210,132,.16);
}

.eco-order-form__submit{
  width:100%;
  margin-top:4px;
}

.eco-order-form__submit:disabled{
  cursor:wait;
  opacity:.72;
}

.eco-order-form__status{
  min-height:20px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
}

.eco-order-form__status[data-status="success"]{
  color:var(--green-dark);
  font-weight:800;
}

.eco-order-form__status[data-status="error"]{
  color:#c03232;
  font-weight:800;
}

@media (max-width:640px){
  .eco-order-modal{
    padding:14px;
  }

  .eco-order-modal__content{
    padding:28px 20px 22px;
    border-radius:20px;
  }
}

/* ===== Order popup: Contact Form 7 inside modal ===== */
.eco-order-form--cf7 .wpcf7,
.eco-order-form--cf7 .wpcf7 form{
  display:grid;
  gap:12px;
}

.eco-order-form--cf7 p{
  margin:0;
}

.eco-order-form--cf7 label{
  display:grid;
  gap:8px;
  color:var(--text);
  font-size:14px;
  font-weight:800;
}

.eco-order-form--cf7 input[type="tel"],
.eco-order-form--cf7 input[type="text"],
.eco-order-form--cf7 input[type="email"]{
  width:100%;
  min-height:54px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:17px;
  outline:0;
  box-shadow:0 8px 22px rgba(67,97,143,.05);
}

.eco-order-form--cf7 input[type="tel"]:focus,
.eco-order-form--cf7 input[type="text"]:focus,
.eco-order-form--cf7 input[type="email"]:focus{
  border-color:rgba(29,185,102,.75);
  box-shadow:0 0 0 4px rgba(63,210,132,.16);
}

.eco-order-form--cf7 .wpcf7-submit{
  width:100%;
  min-height:48px;
  margin-top:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 26px;
  border:0;
  border-radius:10px;
  cursor:pointer;
  font-weight:700;
  font-size:14px;
  letter-spacing:.01em;
  color:#fff;
  background:linear-gradient(180deg, var(--green), var(--green-dark));
  box-shadow:var(--shadow);
}

.eco-order-form--cf7 .wpcf7-submit:disabled{
  cursor:wait;
  opacity:.72;
}

.eco-order-form--cf7 .wpcf7-not-valid-tip{
  margin-top:6px;
  color:#c03232;
  font-size:13px;
  font-weight:700;
}

.eco-order-form--cf7 .wpcf7-response-output{
  margin:6px 0 0 !important;
  padding:10px 12px !important;
  border:1px solid var(--line-2) !important;
  border-radius:12px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
}

.eco-order-form--cf7 form.sent .wpcf7-response-output{
  border-color:rgba(29,185,102,.55) !important;
  color:var(--green-dark);
  font-weight:800;
}

.eco-order-form--cf7 form.invalid .wpcf7-response-output,
.eco-order-form--cf7 form.unaccepted .wpcf7-response-output,
.eco-order-form--cf7 form.spam .wpcf7-response-output{
  border-color:rgba(192,50,50,.42) !important;
  color:#c03232;
  font-weight:800;
}

.eco-order-form__notice{
  padding:14px 16px;
  border:1px dashed var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.68);
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}


/* ===== About company page v2 ===== */
.about-page-v2{
  background:var(--bg);
  color:var(--text);
}

.about-v2-hero{
  padding:56px 0 34px;
}

.about-v2-hero__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(280px, .78fr);
  gap:42px;
  align-items:start;
}

.about-v2-kicker{
  margin-bottom:10px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#5f83aa;
}

.about-v2-hero h1{
  margin:0 0 18px;
  max-width:660px;
  font-size:clamp(42px, 5.4vw, 78px);
  line-height:.92;
  font-weight:900;
  letter-spacing:-.055em;
  color:#22344b;
  text-transform:uppercase;
}

.about-v2-hero__lead{
  max-width:640px;
  margin:0;
  font-size:clamp(16px, 1.5vw, 22px);
  line-height:1.38;
  color:#122844;
}

.about-v2-hero__summary{
  padding:26px 28px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.48));
  box-shadow:0 10px 22px rgba(67,97,143,.05);
  align-self:start;
  margin-top:22px;
}

.about-v2-hero__summary h2{
  margin:0 0 14px;
  font-size:20px;
  line-height:1.05;
  letter-spacing:-.035em;
  color:#071d36;
}

.about-v2-hero__summary ul{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.about-v2-hero__summary li{
  position:relative;
  padding-left:18px;
  color:#42536b;
  font-size:15px;
  line-height:1.5;
}

.about-v2-hero__summary li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--green);
}

.about-v2-section{
  padding:48px 0;
}

.about-v2-intro{
  padding-top:20px;
}

.about-v2-intro__grid{
  display:grid;
  grid-template-columns:minmax(280px, .85fr) minmax(0, 1.15fr);
  gap:42px;
  padding:34px 0;
  border-top:1px solid rgba(189,208,232,.85);
  border-bottom:1px solid rgba(189,208,232,.85);
}

.about-v2-intro h2,
.about-v2-section-title{
  margin:0;
  font-size:clamp(30px, 3.6vw, 46px);
  line-height:1.04;
  font-weight:900;
  letter-spacing:-.055em;
  color:#071d36;
}

.about-v2-text{
  display:grid;
  gap:14px;
  color:#42536b;
  font-size:16px;
  line-height:1.62;
}

.about-v2-text p{
  margin:0;
}

.about-v2-section-head{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(300px, .7fr);
  gap:28px;
  align-items:end;
  margin-bottom:14px;
}

.about-v2-section-head p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.5;
}

.about-v2-benefits{
  background:rgba(255,255,255,.34);
}

.about-v2-benefits .about-v2-section-title{
  margin-bottom:28px;
}

.about-v2-benefits__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
}

.about-v2-benefit-card{
  min-height:230px;
  padding:26px 24px;
  border:1px solid var(--line-2);
  background:rgba(255,255,255,.78);
  box-shadow:0 10px 26px rgba(67,97,143,.04);
}

.about-v2-benefit-card__icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  margin-bottom:14px;
  background:#e8f7f0;
  color:var(--green-dark);
}

.about-v2-benefit-card h3{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.18;
  font-weight:900;
  color:#071d36;
}

.about-v2-benefit-card p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.about-v2-steps__grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:12px;
}

.about-v2-step{
  min-height:186px;
  padding:22px 20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.7);
  box-shadow:0 6px 18px rgba(67,97,143,.05);
}

.about-v2-step span{
  display:block;
  margin-bottom:14px;
  color:#22344b;
  font-size:36px;
  line-height:.9;
  font-weight:900;
  letter-spacing:-.06em;
}

.about-v2-step h3{
  margin:0 0 10px;
  font-size:17px;
  font-weight:900;
  color:#071d36;
}

.about-v2-step p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}

.about-v2-equipment{
  background:rgba(255,255,255,.25);
}

.about-v2-equipment__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}

.about-v2-equipment-card{
  min-height:210px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.52));
  box-shadow:0 10px 24px rgba(67,97,143,.05);
}

.about-v2-equipment-card__top{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:14px;
}

.about-v2-equipment-card__top span{
  flex:0 0 auto;
  min-width:36px;
  color:#3158e8;
  font-size:24px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
}

.about-v2-equipment-card h3{
  margin:0;
  font-size:18px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:-.035em;
  color:#071d36;
}

.about-v2-equipment-card__label{
  margin:0 0 10px;
  color:var(--green-dark) !important;
  font-weight:800;
}

.about-v2-equipment-card p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}


.about-v2-hero__summary{
  max-width:460px;
  justify-self:end;
}

@media (max-width:1200px){
  .about-v2-hero__grid{
    grid-template-columns:minmax(0, 1fr) minmax(260px, .8fr);
    gap:34px;
  }

  .about-v2-hero__summary{
    max-width:none;
    margin-top:10px;
  }
}
@media (max-width:1100px){
  .about-v2-steps__grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:900px){
  .about-v2-hero__grid,
  .about-v2-intro__grid,
  .about-v2-section-head{
    grid-template-columns:1fr;
  }

  .about-v2-benefits__grid,
  .about-v2-equipment__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:640px){
  .about-v2-hero{
    padding:42px 0 26px;
  }

  .about-v2-section{
    padding:38px 0;
  }

  .about-v2-hero h1{
    font-size:44px;
  }

  .about-v2-hero__lead{
    font-size:17px;
  }

  .about-v2-hero__summary,
  .about-v2-benefit-card,
  .about-v2-equipment-card,
  .about-v2-step{
    padding:24px 20px;
  }

  .about-v2-benefits__grid,
  .about-v2-equipment__grid,
  .about-v2-steps__grid{
    grid-template-columns:1fr;
  }

}

/* ===== Contacts page v1 ===== */
.contacts-page-v1{
  background:var(--bg);
  color:var(--text);
}

.contacts-v1-hero{
  padding:58px 0 38px;
}

.contacts-v1-hero__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(300px, .75fr);
  gap:48px;
  align-items:start;
}

.contacts-v1-kicker{
  margin-bottom:10px;
  color:#5f83aa;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.contacts-v1-hero h1{
  margin:0 0 18px;
  max-width:760px;
  color:#22344b;
  font-size:clamp(46px, 6vw, 46px);
  line-height:.92;
  font-weight:900;
  letter-spacing:-.06em;
  text-transform:uppercase;
}

.contacts-v1-hero__lead{
  margin:0;
  max-width:680px;
  color:#122844;
  font-size:clamp(17px, 1.6vw, 22px);
  line-height:1.42;
}

.contacts-v1-hero__panel{
  max-width:440px;
  justify-self:end;
  margin-top:18px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.52));
  box-shadow:0 12px 28px rgba(67,97,143,.06);
}

.contacts-v1-hero__panel h2{
  margin:0 0 18px;
  color:#071d36;
  font-size:24px;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.04em;
}

.contacts-v1-panel-list{
  display:grid;
  gap:12px;
}

.contacts-v1-panel-item{
  display:flex;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(189,208,232,.82);
  border-radius:16px;
  background:rgba(255,255,255,.66);
  color:inherit;
  text-decoration:none;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.contacts-v1-panel-item:hover{
  border-color:rgba(49,88,232,.38);
  box-shadow:0 12px 24px rgba(67,97,143,.08);
  transform:translateY(-2px);
}

.contacts-v1-panel-item__icon,
.contacts-v1-card__icon{
  flex:0 0 auto;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  background:#e8f7f0;
  color:var(--green-dark);
}

.contacts-v1-panel-item__label,
.contacts-v1-card__label{
  display:block;
  margin-bottom:4px;
  color:#75879c;
  font-size:12px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.contacts-v1-panel-item strong{
  color:#071d36;
  font-size:17px;
  line-height:1.2;
  font-weight:700;
}

.contacts-v1-section{
  padding:48px 0;
}

.contacts-v1-section-head{
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(300px, .7fr);
  gap:32px;
  align-items:end;
  margin-bottom:26px;
}

.contacts-v1-section-head h2,
.contacts-v1-info__box h2{
  margin:0;
  color:#071d36;
  font-size:clamp(30px, 3.6vw, 48px);
  line-height:1.04;
  font-weight:900;
  letter-spacing:-.055em;
}

.contacts-v1-section-head p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}

.contacts-v1-cards{
  background:rgba(255,255,255,.34);
}

.contacts-v1-cards__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
}

.contacts-v1-card{
  min-height:230px;
  display:block;
  padding:28px 26px;
  border:1px solid var(--line-2);
  background:rgba(255,255,255,.8);
  color:inherit;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(67,97,143,.04);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.contacts-v1-card:hover{
  border-color:rgba(49,88,232,.35);
  box-shadow:0 14px 30px rgba(67,97,143,.08);
  transform:translateY(-2px);
}

.contacts-v1-card--static:hover{
  transform:none;
  border-color:var(--line-2);
  box-shadow:0 10px 26px rgba(67,97,143,.04);
}

.contacts-v1-card__icon{
  margin-bottom:20px;
}

.contacts-v1-card strong{
  display:block;
  margin-bottom:12px;
  color:#071d36;
  font-size:20px;
  line-height:1.18;
  font-weight:900;
}

.contacts-v1-card__text{
  display:block;
  color:var(--muted);
  font-size:15px;
  line-height:1.58;
}

.contacts-v1-info{
  padding-bottom:70px;
}

.contacts-v1-info__box{
  display:grid;
  grid-template-columns:minmax(260px, .75fr) minmax(0, 1.25fr);
  gap:42px;
  padding:38px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.46));
  box-shadow:0 10px 24px rgba(67,97,143,.05);
}

.contacts-v1-info__list{
  display:grid;
  gap:14px;
}

.contacts-v1-info__item{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:16px;
  align-items:start;
  padding-bottom:14px;
  border-bottom:1px solid rgba(189,208,232,.7);
}

.contacts-v1-info__item:last-child{
  padding-bottom:0;
  border-bottom:0;
}

.contacts-v1-info__item span{
  color:#3158e8;
  font-size:28px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
}

.contacts-v1-info__item p{
  margin:0;
  color:#42536b;
  font-size:16px;
  line-height:1.55;
}

@media (max-width:900px){
  .contacts-v1-hero__grid,
  .contacts-v1-section-head,
  .contacts-v1-info__box{
    grid-template-columns:1fr;
  }

  .contacts-v1-hero__panel{
    max-width:none;
    justify-self:stretch;
    margin-top:0;
  }

  .contacts-v1-cards__grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .contacts-v1-hero{
    padding:42px 0 26px;
  }

  .contacts-v1-section{
    padding:38px 0;
  }

  .contacts-v1-hero h1{
    font-size:40px;
  }

  .contacts-v1-hero__panel,
  .contacts-v1-card,
  .contacts-v1-info__box{
    padding:22px 20px;
  }

  .contacts-v1-info__item{
    grid-template-columns:42px 1fr;
  }
}

/* ===== Service HERO: clean single image ===== */
.hero__box--custom-media::after{
  display:none !important;
}

.hero__box--custom-media .hero__visual{
  min-height:330px;
  align-items:stretch;
}

.hero__box--custom-media .map-card.has-custom-media{
  position:relative;
  width:100%;
  height:100%;
  min-height:330px;
  overflow:hidden;
  border:0;
  border-radius:22px;
  background:none !important;
  box-shadow:none;
}

.hero__box--custom-media .map-card.has-custom-media .hero__scheme-image{
  display:none !important;
}

.hero__box--custom-media .map-card.has-custom-media .hero__main-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  padding:0;
  object-fit:cover;
  object-position:center;
  border-radius:22px;
  filter:none;
  z-index:1;
}

@media (max-width:1120px){
  .hero__box--custom-media .hero__visual,
  .hero__box--custom-media .map-card.has-custom-media{
    min-height:280px;
  }
}

@media (max-width:640px){
  .hero__box--custom-media .hero__visual,
  .hero__box--custom-media .map-card.has-custom-media{
    min-height:220px;
  }

  .hero__box--custom-media .map-card.has-custom-media,
  .hero__box--custom-media .map-card.has-custom-media .hero__main-image{
    border-radius:16px;
  }
}

/* ===== Order popup: CF7 expanded fields visual fix ===== */
.eco-order-modal__content{
  max-height:calc(100vh - 40px);
  overflow-y:auto;
  scrollbar-width:thin;
}

.eco-order-form--cf7 .eco-popup-form{
  display:grid;
  gap:18px;
  width:100%;
  margin-top:26px;
}

.eco-order-form--cf7 .eco-popup-form__label{
  display:grid;
  gap:10px;
  width:100%;
  margin:0;
}

.eco-order-form--cf7 .eco-popup-form__label-text{
  display:block;
  color:var(--text);
  font-size:15px;
  font-weight:800;
  line-height:1.25;
}

.eco-order-form--cf7 .wpcf7-form-control-wrap{
  display:block;
  width:100%;
}

.eco-order-form--cf7 input[type="tel"],
.eco-order-form--cf7 input[type="text"],
.eco-order-form--cf7 input[type="email"],
.eco-order-form--cf7 textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:16px;
  outline:0;
  box-shadow:0 8px 22px rgba(67,97,143,.05);
  transition:border-color .18s ease, box-shadow .18s ease;
}

.eco-order-form--cf7 input[type="tel"],
.eco-order-form--cf7 input[type="text"],
.eco-order-form--cf7 input[type="email"]{
  min-height:54px;
  padding:0 16px;
}

.eco-order-form--cf7 textarea{
  min-height:126px;
  padding:14px 16px;
  line-height:1.45;
  resize:vertical;
}

.eco-order-form--cf7 input::placeholder,
.eco-order-form--cf7 textarea::placeholder{
  color:#7b8490;
  opacity:1;
}

.eco-order-form--cf7 input[type="tel"]:focus,
.eco-order-form--cf7 input[type="text"]:focus,
.eco-order-form--cf7 input[type="email"]:focus,
.eco-order-form--cf7 textarea:focus{
  border-color:rgba(29,185,102,.75);
  box-shadow:0 0 0 4px rgba(63,210,132,.16);
}

.eco-order-form--cf7 .wpcf7-submit{
  min-height:48px;
  margin-top:2px;
  border-radius:10px;
}

@media (max-width:640px){
  .eco-order-form--cf7 .eco-popup-form{
    gap:15px;
    margin-top:22px;
  }

  .eco-order-form--cf7 textarea{
    min-height:112px;
  }
}

/* ===== Order popup: CF7 autop <p>/<br> compact override ===== */
.eco-order-form--cf7 .eco-popup-form{
  display:flex !important;
  flex-direction:column !important;
  gap:24px !important;
  width:100%;
  margin-top:28px !important;
}

.eco-order-form--cf7 .eco-popup-form p{
  margin:0 !important;
  padding:0 !important;
}

.eco-order-form--cf7 .eco-popup-form br{
  display:none !important;
}

.eco-order-form--cf7 .eco-popup-form__label{
  display:block !important;
  width:100%;
  margin:0 !important;
  padding:0 !important;
}

.eco-order-form--cf7 .eco-popup-form__label-text{
  display:block !important;
  margin:0 0 12px !important;
  color:var(--text);
  font-size:15px;
  font-weight:800;
  line-height:1.25;
}

.eco-order-form--cf7 .wpcf7-form-control-wrap{
  display:block !important;
  width:100%;
}

.eco-order-form--cf7 .eco-popup-form__input,
.eco-order-form--cf7 textarea.eco-popup-form__textarea{
  display:block;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:16px;
  outline:0;
  box-shadow:0 8px 22px rgba(67,97,143,.05);
  transition:border-color .18s ease, box-shadow .18s ease;
}

.eco-order-form--cf7 input.eco-popup-form__input{
  height:54px;
  min-height:54px;
  padding:0 16px;
}

.eco-order-form--cf7 textarea.eco-popup-form__textarea{
  height:126px;
  min-height:126px;
  padding:14px 16px;
  line-height:1.45;
  resize:vertical;
}

.eco-order-form--cf7 .eco-popup-form__input::placeholder,
.eco-order-form--cf7 textarea.eco-popup-form__textarea::placeholder{
  color:#7b8490;
  opacity:1;
}

.eco-order-form--cf7 .eco-popup-form__input:focus,
.eco-order-form--cf7 textarea.eco-popup-form__textarea:focus{
  border-color:rgba(29,185,102,.75);
  box-shadow:0 0 0 4px rgba(63,210,132,.16);
}

.eco-order-form--cf7 .eco-popup-form > input[type="hidden"]{
  display:none !important;
}

.eco-order-form--cf7 .eco-popup-form > p:last-of-type{
  margin-top:2px !important;
}

.eco-order-form--cf7 .eco-popup-form .wpcf7-submit.eco-popup-form__submit{
  width:100%;
  min-height:48px;
  margin:0 !important;
}

.eco-order-form--cf7 .eco-popup-form .wpcf7-spinner{
  margin:0 0 0 8px;
}

@media (max-width:640px){
  .eco-order-form--cf7 .eco-popup-form{
    gap:20px !important;
    margin-top:22px !important;
  }

  .eco-order-form--cf7 textarea.eco-popup-form__textarea{
    height:112px;
    min-height:112px;
  }
}

/* ===== Location pages: okrug template ===== */
.location-page .location-section-head{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:26px;
}

.location-page .location-section-head p{
  max-width:820px;
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:1.55;
}

.location-section-head--row{
  flex-direction:row;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}

.location-hero-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:280px;
  background:radial-gradient(circle at 50% 45%, rgba(36,198,119,.22), rgba(225,244,255,.7) 48%, rgba(255,255,255,.92) 78%);
}

.location-hero-card span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:148px;
  height:148px;
  border-radius:999px;
  background:#28c76f;
  color:#fff;
  font-size:42px;
  font-weight:900;
  box-shadow:0 18px 44px rgba(40,199,111,.25);
}

.location-summary-grid,
.location-card-grid,
.location-feature-grid,
.location-link-grid{
  display:grid;
  gap:18px;
}

.location-summary-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.location-summary-card{
  min-height:116px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 32px rgba(52,82,125,.06);
}

.location-summary-card span{
  display:block;
  margin-bottom:10px;
  color:var(--muted);
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.location-summary-card strong{
  display:block;
  color:var(--text);
  font-size:17px;
  line-height:1.35;
}

.location-card-grid--six{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.location-card-grid--four{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.location-info-card,
.location-equipment-card,
.location-feature-card,
.location-link-card{
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 32px rgba(52,82,125,.06);
}

.location-info-card,
.location-equipment-card,
.location-feature-card{
  padding:24px;
}

.location-info-card__icon,
.location-equipment-card__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  margin-bottom:18px;
  border-radius:18px;
  background:#e7f7ef;
  color:#18a95d;
  font-size:24px;
  font-weight:900;
}

.location-info-card h3,
.location-equipment-card h3,
.location-feature-card h3{
  margin:0 0 10px;
  color:var(--text);
  font-size:20px;
  line-height:1.25;
}

.location-info-card p,
.location-equipment-card p,
.location-feature-card p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}

.location-equipment-card__tag{
  display:inline-flex;
  margin-top:18px;
  padding:8px 12px;
  border-radius:999px;
  background:#eef7ff;
  color:#476982;
  font-size:13px;
  font-weight:800;
}

.location-features{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:28px;
  align-items:start;
}

.location-features__copy p{
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
}

.location-feature-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.location-feature-card{
  background:linear-gradient(180deg,#fff,#f8fcff);
}

.location-link-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.location-link-card{
  display:block;
  padding:18px 20px;
  text-decoration:none;
  color:var(--text);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.location-link-card:hover{
  transform:translateY(-2px);
  border-color:rgba(29,185,102,.45);
  box-shadow:0 18px 36px rgba(52,82,125,.10);
}

.location-link-card span{
  display:block;
  margin-bottom:6px;
  font-size:18px;
  font-weight:900;
}

.location-link-card small{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}

.location-factor-list{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.location-factor-item{
  padding:16px 18px;
  border-radius:18px;
  background:#f4fbff;
  color:var(--text);
  font-weight:800;
}

.location-cta-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  width:132px;
  height:132px;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  color:#0b2440;
  font-size:36px;
  font-weight:900;
  box-shadow:0 14px 34px rgba(0,0,0,.10);
}

.location-final-cta{
  text-align:center;
}

.location-final-cta p{
  max-width:760px;
  margin:0 auto 24px;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
}

@media (max-width:1024px){
  .location-summary-grid,
  .location-card-grid--six,
  .location-card-grid--four,
  .location-feature-grid,
  .location-link-grid,
  .location-factor-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .location-features{
    grid-template-columns:1fr;
  }
}

@media (max-width:700px){
  .location-section-head--row{
    flex-direction:column;
  }

  .location-summary-grid,
  .location-card-grid--six,
  .location-card-grid--four,
  .location-feature-grid,
  .location-link-grid,
  .location-factor-list{
    grid-template-columns:1fr;
  }

  .location-hero-card{
    min-height:220px;
  }

  .location-hero-card span{
    width:118px;
    height:118px;
    font-size:34px;
  }
}
