/* Yandex widgets, scoped independently of existing cards and forms. */
html:root body .vc-yandex-map { position:relative; overflow:hidden; width:100%; min-width:0; border:1px solid #dce9e6; border-radius:14px; background:#edf5f2; }
html:root body .vc-yandex-map iframe { display:block; width:100% !important; max-width:100% !important; height:220px !important; min-height:0 !important; border:0 !important; position:relative; background:#edf5f2; }
html:root body .vc-yandex-map--contacts iframe { height:400px !important; }
html:root body .vc-yandex-map--footer iframe { height:280px !important; }
html:root body .vc-yw-provider-link { position:absolute; color:#eee; font-size:12px; line-height:14px; }
html:root body .vc-yw-address-link { display:inline !important; width:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important; color:inherit !important; background:none !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; font-size:inherit !important; font-weight:inherit !important; line-height:inherit !important; text-decoration:underline; text-decoration-color:#a7caaa; text-underline-offset:3px; overflow-wrap:anywhere; }
html:root body .vc-yw-address-link::before,html:root body .vc-yw-address-link::after { display:none !important; content:none !important; }
html:root body .vc-yw-address-slot { min-width:0; width:100%; }
html:root body .vc-yw-address-map { margin-top:8px; min-width:0; width:100%; }
html:root body .vc-yw-address-map > summary { cursor:pointer; color:#2f8434; font-size:14px; line-height:1.45; text-decoration:underline; text-underline-offset:3px; }
html:root body .vc-yw-address-map[open] > summary { margin-bottom:10px; }
html:root body .vc-yw-address-map .vc-yandex-map { margin-top:0; }
html:root body .vc-yw-footer-location { margin-top:28px !important; margin-bottom:28px !important; }
html:root body .vc-yw-map-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
html:root body .vc-yw-map-heading h3 { margin:0 !important; font-size:22px !important; line-height:1.25 !important; color:#12313b; }
html:root body .vc-yw-map-route { width:auto !important; min-height:44px !important; padding:10px 16px !important; font-size:14px !important; white-space:nowrap; }
html:root body .vc-yw-map-route::before { display:none !important; content:none !important; }
html:root body .vc-location-card .vc-yandex-map { margin:16px 0; }
html:root body :is(#reviews,main) .vc-yandex-reviews { display:block; min-width:0; margin:20px 0 18px; border:1px solid #dcebe5; border-radius:16px; background:linear-gradient(120deg,#fff,#f1f9f5); box-shadow:0 4px 14px #17485a08; }
html:root body :is(#reviews,main) .vc-yandex-reviews > summary { display:flex; align-items:center; gap:16px; padding:16px 18px; min-height:82px; list-style:none; cursor:pointer; }
html:root body :is(#reviews,main) .vc-yandex-reviews > summary::-webkit-details-marker { display:none; }
html:root body :is(#reviews,main) .vc-yw-yandex-logo { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border:1px solid #e5ece7; border-radius:12px; color:#f32b21 !important; background:#fff; font:700 32px/1 Arial,sans-serif !important; }
html:root body :is(#reviews,main) .vc-yw-reviews-copy { display:grid; gap:4px; min-width:0; flex:1; }
html:root body :is(#reviews,main) .vc-yw-reviews-copy strong { font-size:20px !important; line-height:1.3 !important; color:#12313b; }
html:root body :is(#reviews,main) .vc-yw-reviews-copy > span { font-size:14px !important; line-height:1.4 !important; color:#617783; }
html:root body :is(#reviews,main) .vc-yw-reviews-action { display:flex; align-items:center; justify-content:center; gap:10px; flex:0 0 auto; min-height:44px; padding:10px 16px; border-radius:12px; color:#fff; background:linear-gradient(115deg,#6fc54a,#35912c); font-size:14px !important; font-weight:600; }
html:root body :is(#reviews,main) .vc-yw-close-label { display:none; }
html:root body :is(#reviews,main) .vc-yandex-reviews[open] .vc-yw-read-label { display:none; }
html:root body :is(#reviews,main) .vc-yandex-reviews[open] .vc-yw-close-label { display:inline; }
html:root body :is(#reviews,main) .vc-yandex-reviews[open] .vc-yw-reviews-action > span:last-child { transform:rotate(180deg); }
html:root body :is(#reviews,main) .vc-yw-reviews-body { padding:0 18px 18px; }
html:root body :is(#reviews,main) .vc-yw-reviews-frame { width:100%; max-width:560px; height:800px; margin:0 auto; position:relative; overflow:hidden; background:#fff; border-radius:8px; }
html:root body :is(#reviews,main) .vc-yw-reviews-frame iframe { display:block; width:100% !important; height:100% !important; border:1px solid #e6e6e6; border-radius:8px; box-sizing:border-box; }
html:root body :is(#reviews,main) .vc-yw-reviews-attribution { box-sizing:border-box; text-decoration:none; color:#8a969c; font:10px/14px Arial,sans-serif !important; padding:0 16px !important; position:absolute; bottom:8px; width:100%; text-align:center; left:0; overflow:hidden; text-overflow:ellipsis; display:block; max-height:14px; white-space:nowrap; }
html:root body :is(#reviews,main) .vc-yw-reviews-external { display:block; width:fit-content; margin:14px auto 0; color:#2f8434; font-size:14px !important; line-height:1.4; text-align:center; }
html:root body :is(.vc-yw-address-map,.vc-yandex-reviews) > summary:focus-visible { outline:3px solid #087bad; outline-offset:3px; border-radius:10px; }
@media(max-width:600px) {
 html:root body .vc-yw-map-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 html:root body .vc-yw-map-route { white-space:normal; }
 html:root body .vc-yandex-map--contacts iframe { height:320px !important; }
 html:root body .vc-yandex-map--footer iframe { height:260px !important; }
 html:root body :is(#reviews,main) .vc-yandex-reviews > summary { display:grid; grid-template-columns:44px minmax(0,1fr); gap:12px; padding:14px; }
 html:root body :is(#reviews,main) .vc-yw-reviews-action { grid-column:1/-1; justify-self:stretch; }
 html:root body :is(#reviews,main) .vc-yw-reviews-body { padding:0 12px 14px; }
 html:root body :is(#reviews,main) .vc-yw-reviews-copy strong { font-size:18px !important; }
}
html:root body.vc-reference-home section.hr-final-section#contacts .vc-contact-list .vc-contact-card:has(.vc-yw-address-map[open]) { grid-column:1/-1 !important; }
html:root body:is(.vc-reference-home,.vc-unified-inner) .vc-yw-map-heading h3 { font-size:22px !important; }
html:root body .vc-yw-map-route > span { color:#fff !important; }
html:root body:is(.vc-reference-home,.vc-unified-inner) .vc-yw-map-route > span { color:#fff !important; }
@media(max-width:768px) {
 html:root body:has(.vc-yandex-reviews[open]) { padding-bottom:0 !important; }
 html:root body:has(.vc-yandex-reviews[open]) .vc-mobilebar {
  position:static !important; left:auto !important; right:auto !important; bottom:auto !important;
  width:calc(100% - 32px) !important; max-width:600px; margin:16px auto !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important;
  padding:8px !important; border:1px solid #deebe6; border-radius:16px !important;
  box-shadow:none !important; z-index:auto !important;
 }
 html:root body:has(.vc-yandex-reviews[open]) .vc-mobilebar a {
  min-width:0; min-height:44px !important; padding:8px !important;
  font-size:15px !important; line-height:1.35 !important; text-align:center;
 }
}
