/* icons only — do NOT force .grui-invisible (viewport IO in gr-boot.js) */
.grui-social-icon,.grui-icon{visibility:visible!important;opacity:1!important}

/* Hero white-wave SVG: do not clip morphing path (theme may set overflow hidden on divider) */
.pxl-row-divider-active,
.pxl-row-divider-wave-animation-top,
.pxl-row-divider-wave-animation-bottom,
.pxl-section-overflow-visible{
  overflow:visible!important;
}
.pxl-row-divider-active .pxl-row-angle,
svg.pxl-row-angle{
  overflow:visible!important;
  max-width:none!important;
  width:100%!important;
}

/* Russian sentence case — kill English Title Case from theme CSS */
h1.pxl--heading,
.pxl-slide--home .pxl--heading{text-transform:none!important}
.pxl-list .pxl-content,
.pxl-index-box .pxl-item--title,
.pxl-icon-box .pxl-item--title,
.pxl-project-information .pxl-item--title,
.pxl-contact-form .pxl-ctf-title,
.comment-title{text-transform:none!important}

/* Cases: ONE heading → story → gallery */
[data-id^="grcase"]{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  flex:0 0 100%!important;
  grid-column:1 / -1!important;
  clear:both;
  box-sizing:border-box;
}
[data-id^="grcase"] .pxl-text-editor{
  max-width:none;
  width:100%;
  margin:0.5rem 0 1.25rem;
  color:#3a3a3a;
  line-height:1.55;
  text-align:left;
}
[data-id^="grcase"] .pxl-text-editor p{margin:0 0 0.5rem}
[data-id^="grcase"] .pxl-text-editor p:last-child{margin-bottom:0}

[data-id="grabout1"]{
  display:block!important;
  width:100%!important;
  flex:0 0 100%!important;
  grid-column:1 / -1!important;
}
[data-id="grabout1"] .pxl-text-editor{
  max-width:none;
  width:100%;
  margin:0.5rem 0 1rem;
  line-height:1.55;
}

@media (max-width:1024px){
  [data-id^="grcase"] .pxl-text-editor{margin:0.4rem 0 1rem;font-size:0.98rem}
}
@media (max-width:767px){
  [data-id^="grcase"] .pxl-text-editor{margin:0.35rem 0 0.9rem;font-size:0.95rem;line-height:1.5}
}

/*
  Portfolio carousel captions on the photo (full card width).
  Under-image placement spilled onto white section → washed text.
*/
.pxl-image-carousel .pxl-item--inner{
  position:relative!important;
  overflow:hidden;
}
.pxl-image-carousel .pxl-item--image{margin:0!important}
.pxl-image-carousel .pxl-item--title{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:2;
  box-sizing:border-box;
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:2.4rem 12px 12px!important;
  min-height:0!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.25!important;
  letter-spacing:normal!important;
  text-align:left!important;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
  background:transparent!important;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  opacity:1!important;
  pointer-events:none;
}
.pxl-image-carousel .pxl-item--title:not(:empty)::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;bottom:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(
    to top,
    rgba(8,40,28,.92) 0%,
    rgba(8,40,28,.5) 55%,
    rgba(8,40,28,0) 100%
  );
}
.pxl-image-carousel .pxl-item--title:empty{
  display:none!important;
  padding:0!important;
}
.pxl-image-carousel .pxl-item--title:not(:empty)::after{content:none!important}

/* Do NOT max-width parallax/absolute décor — hero white grass (grass-4.png)
   is wider than the viewport so parallax never leaves a bare edge. */

/* Chat overlay: never pad transparent footer (shows as white stripe). */
@media (max-width:767px){
  .pxl-image-carousel .pxl-item--title{
    font-size:14px!important;
    padding:2rem 10px 10px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .wow,.animated{
    animation:none!important;
    transition:none!important;
  }
}

/* Calculator / content above footer: wave divider must not cover forms */
#calculator-container,
#cf7-form-section{
  position:relative;
  z-index:5;
}
.pxl-row-divider-wave-animation-top{
  z-index:0;
}
.pxl-row-divider-wave-animation-top > .pxl-row-angle,
.pxl-row-divider-active > .pxl-row-angle{
  pointer-events:none;
  z-index:0;
}

/* FAQ accordion: air before next section (was flush) */
.grui-element-0bdd744{
  margin-bottom: 3.5rem !important;
}
@media (max-width:767px){
  .grui-element-0bdd744{margin-bottom:2.5rem !important}
}

/* Hero CTA: air above grass wave divider (button was flush to bottom) */
.pxl-slide--home .pxl-item--content > a.btn.pxl-text--button{
  margin-bottom: 2.75rem !important;
}
@media (max-width:767px){
  .pxl-slide--home .pxl-item--content > a.btn.pxl-text--button{
    margin-bottom: 2rem !important;
  }
}

/* Footer white stripe after green block:
   1) outer #pxl-footer-grui is transparent — any padding/overflow = white
   2) absolute décor [data-id=af1ea01] can stick past .grui-element-2980143
   Paint outer+inner the same green as the footer section; clip overflow;
   never pad the transparent wrapper. */
#pxl-footer-grui,
#pxl-footer-grui .footer-grui-inner{
  position:relative!important;
  overflow:hidden!important;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
  background-color:#0b3d2c!important;
}
#pxl-footer-grui .grui-element-2980143{
  /* keep section bg; do not let theme overflow:visible push page height */
  margin-bottom:0!important;
}
/* Footer address: permanent 2 lines + map pin (same FA family as phone) */
#pxl-footer-grui .grui-repeater-item-e3fb840{
  align-items:flex-start!important;
}
#pxl-footer-grui .grui-repeater-item-e3fb840 i.fa-map-marker-alt{
  flex-shrink:0;
  line-height:1.45;
}
#pxl-footer-grui [data-id="af1ea01"]{
  position:absolute!important;
  pointer-events:none!important;
  max-width:min(280px,40vw)!important;
  max-height:45%!important;
  bottom:0!important;
  top:auto!important;
  overflow:hidden!important;
  z-index:0!important;
}
#pxl-footer-grui [data-id="af1ea01"] img{
  max-width:100%!important;
  max-height:100%!important;
  height:auto!important;
  object-fit:contain!important;
}
html{
  /* iOS/Android overscroll below page = same green, not white */
  background-color:#0b3d2c;
}
body{
  background-color:#fff;
}

/* Speed: prefer swap for any local @font-face the theme missed */
@font-face{font-display:swap}
img[loading="lazy"]{content-visibility:auto}

/* Kill theme full-screen preloader (waits for deferred JS = fake 'thinking') */
#pxl-loadding,
.pxl-loader{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.skip-link{
  position:absolute;
  left:8px;top:8px;
  z-index:100000;
  padding:.5rem .75rem;
  background:#2a7d2e;color:#fff;
  transform:translateY(-200%);
}
.skip-link:focus{transform:none}

#gr-cookie-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:99999;
  padding:0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom,0px));
  pointer-events:none;
}
#gr-cookie-banner .gr-cc__panel{
  pointer-events:auto;
  max-width:920px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:0.45rem 0.65rem;
  background:#1f2a1f;
  color:#f3f6f3;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  padding:0.6rem 0.8rem;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
  font-size:0.8rem;
  line-height:1.35;
  max-height:min(70vh, 520px);
  overflow:auto;
}
#gr-cookie-banner .gr-cc__text{
  margin:0;
  flex:1 1 100%;
}
#gr-cookie-banner a{color:#b7e0b9;text-decoration:underline}
#gr-cookie-banner .gr-cc__actions{
  display:flex;flex-wrap:wrap;gap:0.4rem;
}
#gr-cookie-banner .gr-cc__btn,
#gr-cookie-modal .gr-cc__btn{
  all:unset!important;
  box-sizing:border-box!important;
  display:inline-block!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  margin:0!important;
  appearance:none!important;
  border-radius:6px!important;
  cursor:pointer!important;
  font:14px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif!important;
  padding:8px 14px!important;
  border:1px solid transparent!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
#gr-cookie-banner .gr-cc__btn--primary,
#gr-cookie-modal .gr-cc__btn--primary{
  background:#2a7d2e!important;color:#fff!important;border:1px solid #2a7d2e!important;
}
#gr-cookie-banner .gr-cc__btn--ghost,
#gr-cookie-modal .gr-cc__btn--ghost{
  background:transparent!important;color:#f3f6f3!important;border:1px solid rgba(255,255,255,.55)!important;
}
#gr-cookie-modal[hidden]{display:none!important}
#gr-cookie-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
}
#gr-cookie-modal .gr-cc__modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
}
#gr-cookie-modal .gr-cc__modal{
  position:relative;
  z-index:1;
  width:min(440px,100%);
  background:#1f2a1f;
  color:#f3f6f3;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  padding:1rem 1.1rem;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
  display:flex;
  flex-direction:column;
  gap:.55rem;
  font-size:0.9rem;
  line-height:1.4;
}
#gr-cookie-modal .gr-cc__set-title{margin:0;font-weight:600;font-size:1.05rem}
#gr-cookie-modal .gr-cc__row{
  display:flex;align-items:flex-start;gap:.45rem;cursor:pointer;
}
#gr-cookie-modal a{color:#b7e0b9;text-decoration:underline}
#gr-cookie-modal .gr-cc__text{margin:0}
#gr-cookie-modal .gr-cc__actions{
  display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:.15rem;
}
html:not(.gr-cc-tech) .chaty,
html:not(.gr-cc-tech) .chaty-widget,
html:not(.gr-cc-tech) .chaty-i-trigger,
html:not(.gr-cc-tech) .chaty-outer,
html:not(.gr-cc-tech) .chaty-main,
html:not(.gr-cc-tech) .chaty-no-scale,
html:not(.gr-cc-tech) #chaty{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
a.gr-cc-open,
button.gr-cc-open{
  background:none!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  box-shadow:none!important;
  border-radius:0!important;
  display:inline!important;
  line-height:inherit!important;
  font:inherit!important;
  font-size:inherit!important;
  color:inherit!important;
  text-decoration:underline!important;
  cursor:pointer!important;
  vertical-align:baseline!important;
}
@media (max-width:560px){
  #gr-cookie-banner .gr-cc__actions{width:100%}
  #gr-cookie-banner .gr-cc__btn{flex:1 1 auto;text-align:center;white-space:normal}
}

.gr-offer-note{margin:.75rem 0 0;font-size:.95rem}

/* Theme uses opacity:0+display:block for .grui-hidden-mobile; our reveal
   was restoring opacity → footer author photo covered «СКИДКИ до 30%». */
@media screen and (max-width:767px){
  body:not(.grui-editor-active) .grui .grui-hidden-mobile,
  body:not(.grui-editor-active) .grui .grui-hidden-phone{
    display:none!important;
    position:static!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    height:0!important;
    width:0!important;
    max-width:0!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
    text-indent:0!important;
  }

  /* Discount plaque: keep compact, no overflow drama */
  .pxl-booking.pxl-booking1{
    width:140px!important;
    height:140px!important;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }
  .pxl-booking.pxl-booking1 .pxl-item--title{
    max-width:100px!important;
    font-size:16px!important;
    line-height:1.15!important;
    padding-top:14px!important;
  }
  .grui-element-1c6338a,
  .grui-element-4213841{
    overflow:hidden;
  }
}

/* Legal document pages */
.gr-legal{
  max-width:820px;
  margin:0 auto;
  padding:2rem 1.25rem 3rem;
  color:#1a2e1a;
  line-height:1.55;
  font-size:1rem;
}
.gr-legal h1{font-size:1.75rem;margin:0 0 0.75rem;color:#0b3d2c}
.gr-legal h2{font-size:1.2rem;margin:1.75rem 0 0.5rem;color:#0b3d2c}
.gr-legal p,.gr-legal li{margin:0.4rem 0}
.gr-legal ul{padding-left:1.25rem}
.gr-legal a{color:#2a7d2e}
.gr-legal .gr-legal__meta{opacity:.8;font-size:.92rem;margin-bottom:1.25rem}
.gr-calc-note{font-size:.9rem;opacity:.85;margin:.5rem 0 0;color:#0b3d2c}

/* Legal pages — job-opening chrome, content full viewport width */
body.gr-legal-page #pxl-main .grui-container,
body.gr-legal-page #pxl-content-area,
body.gr-legal-page .pxl-content-wrap,
body.gr-legal-page #pxl-content-main,
body.gr-legal-page article,
body.gr-legal-page .pxl-entry-content,
body.gr-legal-page .grui.grui-8320{
  max-width:100%!important;
  width:100%!important;
}
body.gr-legal-page .grui-element-236d164,
body.gr-legal-page .grui-element-8dbefc3{
  max-width:100%!important;
  width:100%!important;
}
body.gr-legal-page .grui-element-236d164>.e-con-inner,
body.gr-legal-page .grui-element-8dbefc3>.e-con-inner{
  max-width:100%!important;
  width:100%!important;
  padding-left:clamp(16px,4vw,48px)!important;
  padding-right:clamp(16px,4vw,48px)!important;
  box-sizing:border-box!important;
}
body.gr-legal-page .gr-legal-wide,
body.gr-legal-page .gr-legal-wide .grui-widget-container,
body.gr-legal-page .gr-legal-wide .pxl-text-editor,
body.gr-legal-page .gr-legal-wide .pxl-item--inner{
  max-width:100%!important;
  width:100%!important;
}
body.gr-legal-page .gr-legal-wide .pxl-item--inner{
  font-size:1.05rem;
  line-height:1.65;
}
body.gr-legal-page .gr-legal-wide .pxl-item--inner p,
body.gr-legal-page .gr-legal-wide .pxl-item--inner li{
  margin:0.65rem 0;
}

.gr-smartcaptcha{
  height:100px;
  min-width:300px;
  margin:0 0 12px;
}
#gr-smartcaptcha-pre{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}
html.gr-captcha-challenge .SmartCaptcha-Overlay,
html.gr-captcha-challenge [class*="SmartCaptcha"]{
  z-index:10000001!important;
}

.grform-acceptance .grform-list-item label{
  display:flex!important;
  align-items:flex-start;
  gap:10px;
  line-height:1.45;
}
.grform-acceptance input[type="checkbox"]{
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  margin:3px 0 0!important;
  padding:0!important;
  flex:0 0 18px!important;
  display:inline-block!important;
}
.grform-list-item-label{
  flex:1 1 auto!important;
  width:auto!important;
  max-width:none!important;
  white-space:normal!important;
  overflow:visible!important;
  font-size:13px!important;
  line-height:1.45!important;
  color:#fff!important;
}
.grform-list-item-label a{
  color:#fff!important;
  text-decoration:underline;
}
#cf7-form-section .grform-list-item-label,
#cf7-form-section .grform-list-item-label a,
#cf7-form-section .grform-acceptance{
  color:#0b3d2c!important;
}

@media screen and (max-width:767px){
.btn.pxl-text--button{padding:0 16px;max-width:100%}
.btn.btn-text-nina .pxl--btn-text{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;padding:19px 0;min-width:0;line-height:1.35}
.btn.btn-text-nina .pxl--btn-text:before{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;line-height:1.35}
.btn.btn-text-nina .pxl--btn-text>span{line-height:1.35}
}
