/* Global paragraph text size */
body,
p,
body.qode-overridden-elementors-fonts .elementor-widget-heading p.elementor-heading-title {
  font-size: 16px;
}
p,
body.qode-overridden-elementors-fonts .elementor-widget-heading p.elementor-heading-title {
  line-height: 28px;
}

/* Header: default menu dark 20%, sticky 70% */
.header_bottom,
.header_top,
.fixed_top_header .bottom_header {
  background-color: rgba(0, 0, 0, 0.2) !important;
}
header.sticky .header_bottom,
header.fixed.scrolled .header_bottom,
header.fixed.scrolled .header_top,
header.fixed_hiding.scrolled .header_bottom,
header.fixed_hiding.scrolled .header_top {
  background-color: rgba(0, 0, 0, 0.7) !important;
}

/* Title Area video background */
.title.has_video_background {
  position: relative;
  overflow: hidden;
}

.title_video_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.title_video_bg .title_bg_video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

.title_video_bg .title_video_mobile_image {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.title.has_video_background .title_overlay,
.title.has_video_background .title_holder {
  position: relative;
  z-index: 2;
}

/* Fallback image on reduced-motion / very small screens if needed */
@media (prefers-reduced-motion: reduce) {
  .title_video_bg .title_bg_video {
    display: none;
  }
  .title_video_bg .title_video_mobile_image {
    display: block;
  }
}

/* Mobile: compact Title Area + centered h1 (pages like /otkrytyj-bassejn/, /fitnes/) */
@media only screen and (max-width: 768px) {
  .title_outer,
  .title_outer .title,
  .title_outer .title.has_background,
  .title_outer .title.has_fixed_background {
    height: 300px !important;
    min-height: 300px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
  }

  /* Image-bg pages: Bridge drops CSS background on mobile and shows <img> —
     make that image cover the full 300px hero */
  .title_outer .title.has_background,
  .title_outer .title.has_fixed_background {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .title_outer .title .image,
  .title_outer .title .image.not_responsive,
  .title_outer .title .image.responsive {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 0;
    overflow: hidden;
  }

  .title_outer .title .image img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    object-position: center center;
    display: block;
  }

  .title_outer .title .title_overlay {
    z-index: 1;
  }

  .title_outer .title .title_holder {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 2;
    box-sizing: border-box;
  }

  .title_outer .title .title_holder .container,
  .title_outer .title .title_holder .container_inner,
  .title_outer .title .title_subtitle_holder,
  .title_outer .title .title_subtitle_holder_inner,
  .title_outer .title .overlapping_content_margin {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    vertical-align: middle;
  }

  .title_outer .title .title_subtitle_holder {
    padding-top: 0 !important;
    width: 100%;
  }

  .title_outer .title h1,
  .title_outer .title h1 span {
    font-size: 24px !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Pool page: optical vertical center of h1 in hero */
  body.page-id-3076 .title_outer .title .title_holder {
    align-items: center !important;
  }
}

/* Pool page: fix image_slider_no_space prev arrow (theme only sets right for next) */
.qode_image_gallery_no_space .controls a.prev-slide {
  left: 20px !important;
  right: auto !important;
}
.qode_image_gallery_no_space .controls a.next-slide {
  right: 20px !important;
  left: auto !important;
}

/* Show smaller arrows on mobile (theme hides controls below 800px) */
@media only screen and (max-width: 800px) {
  .qode_image_gallery_no_space .controls {
    display: block !important;
  }
  .qode_image_gallery_no_space .controls a.prev-slide,
  .qode_image_gallery_no_space .controls a.next-slide {
    width: 44px !important;
    height: 100%;
  }
  .qode_image_gallery_no_space .controls a.prev-slide {
    left: 8px !important;
  }
  .qode_image_gallery_no_space .controls a.next-slide {
    right: 8px !important;
  }
  .qode_image_gallery_no_space .controls a.prev-slide span,
  .qode_image_gallery_no_space .controls a.next-slide span {
    width: 36px !important;
    height: 36px !important;
    line-height: 32px !important;
    margin-top: -18px !important;
    margin-left: -18px !important;
    font-size: 16px !important;
    border-width: 1px !important;
  }
  .qode_image_gallery_no_space .qode_image_gallery_holder {
    height: 360px !important;
  }
}

@media only screen and (max-width: 480px) {
  .qode_image_gallery_no_space .qode_image_gallery_holder {
    height: 280px !important;
  }
  .qode_image_gallery_no_space .controls a.prev-slide span,
  .qode_image_gallery_no_space .controls a.next-slide span {
    width: 32px !important;
    height: 32px !important;
    line-height: 28px !important;
    margin-top: -16px !important;
    margin-left: -16px !important;
    font-size: 14px !important;
  }
}

/* Pool intro flexslider: fixed height 476.25px, centered crop */
.pool-intro-slider .wpb_gallery .wpb_flexslider {
  margin-bottom: 0 !important;
}
.pool-intro-slider .flexslider,
.pool-intro-slider .flexslider .slides,
.pool-intro-slider .flexslider .slides > li {
  height: 476.25px !important;
  margin: 0;
  overflow: hidden;
}
.pool-intro-slider .flexslider .slides > li {
  position: relative;
}
.pool-intro-slider .flexslider .slides img {
  width: 100% !important;
  height: 476.25px !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
}
.pool-intro-slider .flex-control-nav {
  bottom: 10px !important;
  z-index: 3;
}
.pool-intro-slider .flex-direction-nav a {
  width: 36px;
  height: 36px;
  margin-top: -18px;
  opacity: 0.9;
  display: block !important;
}
.pool-intro-slider .flex-direction-nav .flex-prev {
  left: 8px;
}
.pool-intro-slider .flex-direction-nav .flex-next {
  right: 8px;
}
.pool-intro-slider:hover .flex-direction-nav .flex-prev,
.pool-intro-slider .flex-direction-nav .flex-prev {
  left: 8px;
  opacity: 0.9;
}
.pool-intro-slider:hover .flex-direction-nav .flex-next,
.pool-intro-slider .flex-direction-nav .flex-next {
  right: 8px;
  opacity: 0.9;
}

/* Equal pool images in two columns (Основной / Детский) */
.pool-pools-equal .wpb_single_image {
  margin-bottom: 0 !important;
}
.pool-pools-equal .wpb_single_image .vc_single_image-wrapper,
.pool-pools-equal .wpb_single_image a,
.pool-pools-equal .wpb_single_image img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
}
.pool-pools-equal .wpb_single_image img {
  width: 100% !important;
  height: 420px !important;
  max-height: none !important;
  aspect-ratio: auto;
  object-fit: cover !important;
  object-position: center bottom !important;
}
.pool-pools-equal .pool-kids-col .wpb_single_image img,
.pool-pools-equal .pool-photo-bottom img {
  object-position: center bottom !important;
}

/* Amenities: hover ONLY on the circle icon, not the whole block */
body.page-id-3076 .pool-amenities .icon_text,
body.page-id-3076 .pool-amenities .q_icon_with_title,
body.page-id-3076 .pool-amenities .q_icon_with_title:hover,
body.page-id-3076 .pool-amenities .icon_holder,
body.page-id-3076 .pool-amenities .icon_holder:hover,
body.page-id-3076 .pool-amenities .icon_text_holder,
body.page-id-3076 .pool-amenities .vc_column_inner:hover {
  background: transparent !important;
  background-color: transparent !important;
}
body.page-id-3076 .pool-amenities .qode_iwt_icon_holder.fa-stack {
  display: inline-block !important;
  width: 2em !important;
  height: 2em !important;
  line-height: 2em !important;
  border-radius: 50% !important;
  overflow: hidden;
  vertical-align: middle;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
body.page-id-3076 .pool-amenities .qode_iwt_icon_holder.fa-stack:hover {
  background-color: #97ccf2 !important;
  border-color: #97ccf2 !important;
}
body.page-id-3076 .pool-amenities .qode_iwt_icon_holder.fa-stack:hover .qode_iwt_icon_element {
  color: #fff !important;
}

/* Atmosphere gallery: custom infinite carousel (no Owl / Lemmon) */
.pool-gallery-slider {
  position: relative;
  opacity: 1 !important;
  visibility: visible !important;
}
.pool-gallery-slider .qode_image_gallery_no_space {
  opacity: 1 !important;
  visibility: visible !important;
  min-height: 280px;
}
.pool-atmosphere-carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #111;
}
.pool-atmosphere-viewport {
  width: 100%;
  overflow: hidden;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
}
.pool-atmosphere-viewport:active {
  cursor: grabbing;
}
.pool-atmosphere-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  will-change: transform;
}
.pool-atmosphere-slide {
  flex: 0 0 25%;
  width: 25%;
  max-width: 25%;
  height: 480px;
  overflow: hidden;
  box-sizing: border-box;
}
.pool-atmosphere-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  max-width: none !important;
  pointer-events: none;
}
.pool-atmosphere-nav {
  position: absolute;
  top: 50%;
  z-index: 6;
  width: 56px;
  height: 56px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}
.pool-atmosphere-prev {
  left: 12px;
}
.pool-atmosphere-next {
  right: 12px;
}
.pool-atmosphere-nav span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0 auto;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  box-sizing: border-box;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.pool-atmosphere-nav:hover span {
  background: #fff;
  color: #8a8a8a;
}
.pool-atmosphere-nav i {
  line-height: 1;
}

@media only screen and (max-width: 1024px) {
  .pool-atmosphere-slide {
    flex-basis: 50%;
    width: 50%;
    max-width: 50%;
    height: 360px;
  }
}

@media only screen and (max-width: 600px) {
  .pool-atmosphere-slide {
    flex-basis: 100%;
    width: 100%;
    max-width: 100%;
    height: 280px;
  }
  .pool-atmosphere-nav span {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
}

/* Hide leftover Bridge gallery chrome if still present briefly */
.pool-gallery-slider.pool-atmosphere-ready .qode_image_gallery_no_space,
.pool-gallery-slider .qode_image_gallery_no_space .controls {
  display: none !important;
}

/* Hero title area: dark overlay ~15% (h1 stays above)
   price-fitnes, czeny-pool, price-tennis, fitnes, tennis,
   nastolnyj-tennis, spa, detskaya-komnata, geokupol, otkrytyj-bassejn */
body.page-id-15 .title_outer .title::after,
body.page-id-3107 .title_outer .title::after,
body.page-id-1379 .title_outer .title::after,
body.page-id-594 .title_outer .title::after,
body.page-id-564 .title_outer .title::after,
body.page-id-1710 .title_outer .title::after,
body.page-id-2606 .title_outer .title::after,
body.page-id-655 .title_outer .title::after,
body.page-id-2279 .title_outer .title::after,
body.page-id-3076 .title_outer .title::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.15);
  z-index: 1;
  pointer-events: none;
}
body.page-id-15 .title_outer .title .image,
body.page-id-15 .title_outer .title .title_video_bg,
body.page-id-3107 .title_outer .title .image,
body.page-id-3107 .title_outer .title .title_video_bg,
body.page-id-1379 .title_outer .title .image,
body.page-id-1379 .title_outer .title .title_video_bg,
body.page-id-594 .title_outer .title .image,
body.page-id-594 .title_outer .title .title_video_bg,
body.page-id-564 .title_outer .title .image,
body.page-id-564 .title_outer .title .title_video_bg,
body.page-id-1710 .title_outer .title .image,
body.page-id-1710 .title_outer .title .title_video_bg,
body.page-id-2606 .title_outer .title .image,
body.page-id-2606 .title_outer .title .title_video_bg,
body.page-id-655 .title_outer .title .image,
body.page-id-655 .title_outer .title .title_video_bg,
body.page-id-2279 .title_outer .title .image,
body.page-id-2279 .title_outer .title .title_video_bg,
body.page-id-3076 .title_outer .title .image,
body.page-id-3076 .title_outer .title .title_video_bg {
  z-index: 0;
}
body.page-id-15 .title_outer .title .title_holder,
body.page-id-3107 .title_outer .title .title_holder,
body.page-id-1379 .title_outer .title .title_holder,
body.page-id-594 .title_outer .title .title_holder,
body.page-id-564 .title_outer .title .title_holder,
body.page-id-1710 .title_outer .title .title_holder,
body.page-id-2606 .title_outer .title .title_holder,
body.page-id-655 .title_outer .title .title_holder,
body.page-id-2279 .title_outer .title .title_holder,
body.page-id-3076 .title_outer .title .title_holder {
  z-index: 2 !important;
}

/* Pool page section headings */
body.page-id-3076 .content .wpb_text_column h2,
body.page-id-3076 .content .wpb_text_column h3 {
  line-height: 1.35;
  margin-top: 0;
}

/* Tablet */
@media only screen and (max-width: 1024px) {
  .pool-intro-slider {
    margin-bottom: 30px;
  }
  .pool-intro-slider .flexslider,
  .pool-intro-slider .flexslider .slides,
  .pool-intro-slider .flexslider .slides > li,
  .pool-intro-slider .flexslider .slides img {
    height: 420px !important;
  }
}

/* Mobile adaptive */
@media only screen and (max-width: 768px) {
  .pool-intro-slider .flexslider,
  .pool-intro-slider .flexslider .slides,
  .pool-intro-slider .flexslider .slides > li,
  .pool-intro-slider .flexslider .slides img {
    height: 320px !important;
  }

  .pool-pools-equal .vc_column_inner,
  .pool-pools-equal [class*="vc_col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .pool-pools-equal .wpb_single_image img {
    height: 280px !important;
    aspect-ratio: auto;
    object-position: center bottom !important;
  }

  /* All text centered on mobile for pool page */
  body.page-id-3076 .content .wpb_text_column,
  body.page-id-3076 .content .wpb_text_column p,
  body.page-id-3076 .content .wpb_text_column h2,
  body.page-id-3076 .content .wpb_text_column h3,
  body.page-id-3076 .content .icon_text,
  body.page-id-3076 .content .icon_text h4,
  body.page-id-3076 .content .icon_text .icon_text_text,
  body.page-id-3076 .content .qode_icon_list_item,
  body.page-id-3076 .pool-page-block {
    text-align: center !important;
  }

  body.page-id-3076 .content .icon_text.left,
  body.page-id-3076 .content .icon_with_title.left {
    text-align: center !important;
  }

  /* Amenities icons: always 2 columns on mobile */
  body.page-id-3076 .pool-amenities-icons > .vc_column_inner,
  body.page-id-3076 .pool-amenities .vc_col-sm-3,
  .pool-amenities-icons .vc_column_inner {
    width: 50% !important;
    float: left !important;
    margin-bottom: 25px;
    clear: none !important;
  }
}

@media only screen and (max-width: 480px) {
  .pool-intro-slider .flexslider,
  .pool-intro-slider .flexslider .slides,
  .pool-intro-slider .flexslider .slides > li,
  .pool-intro-slider .flexslider .slides img {
    height: 280px !important;
  }

  /* Keep 2 columns for amenities even on small phones */
  body.page-id-3076 .pool-amenities-icons > .vc_column_inner,
  .pool-amenities-icons .vc_column_inner {
    width: 50% !important;
    float: left !important;
  }
}

/* Full-width hero background (overrides Bridge inline "XXXX px auto")
   price-fitnes, czeny-pool, price-tennis, spa, geokupol + service pages */
body.page-id-15 .title_outer,
body.page-id-15 .title_outer .title,
body.page-id-3107 .title_outer,
body.page-id-3107 .title_outer .title,
body.page-id-1379 .title_outer,
body.page-id-1379 .title_outer .title,
body.page-id-594 .title_outer,
body.page-id-594 .title_outer .title,
body.page-id-564 .title_outer,
body.page-id-564 .title_outer .title,
body.page-id-1710 .title_outer,
body.page-id-1710 .title_outer .title,
body.page-id-2606 .title_outer,
body.page-id-2606 .title_outer .title,
body.page-id-655 .title_outer,
body.page-id-655 .title_outer .title,
body.page-id-2279 .title_outer,
body.page-id-2279 .title_outer .title,
body.page-id-3076 .title_outer,
body.page-id-3076 .title_outer .title {
  width: 100% !important;
  max-width: none !important;
}
body.page-id-15 .title.has_fixed_background,
body.page-id-15 .title.has_background,
body.page-id-3107 .title.has_fixed_background,
body.page-id-3107 .title.has_background,
body.page-id-1379 .title.has_fixed_background,
body.page-id-1379 .title.has_background,
body.page-id-594 .title.has_fixed_background,
body.page-id-594 .title.has_background,
body.page-id-564 .title.has_fixed_background,
body.page-id-564 .title.has_background,
body.page-id-1710 .title.has_fixed_background,
body.page-id-1710 .title.has_background,
body.page-id-2606 .title.has_fixed_background,
body.page-id-2606 .title.has_background,
body.page-id-655 .title.has_fixed_background,
body.page-id-655 .title.has_background,
body.page-id-2279 .title.has_fixed_background,
body.page-id-2279 .title.has_background,
body.page-id-3076 .title.has_fixed_background,
body.page-id-3076 .title.has_background {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Pool price: spacing above pricing tables */
.pool-price-block .qode_pricing_tables.clearfix.three_columns {
  margin-top: 50px;
}

/* Pool price page (/czeny-pool/) — mobile spacing */
@media only screen and (max-width: 768px) {
  .pool-price-block .vc_empty_space[style*="50px"],
  .pool-price-block .vc_empty_space[style*="50px"] > span {
    height: 18px !important;
  }
  .pool-price-block .vc_empty_space[style*="30px"],
  .pool-price-block .vc_empty_space[style*="30px"] > span {
    height: 16px !important;
  }
  .pool-price-block .vc_empty_space[style*="10px"],
  .pool-price-block .vc_empty_space[style*="10px"] > span {
    height: 10px !important;
  }

  .pool-price-block .wpb_text_column h2 {
    margin-bottom: 0 !important;
  }

  .pool-price-block .wpb_text_column p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .pool-price-block .qode_pricing_tables .q_price_table {
    margin-bottom: 18px !important;
  }

  /* Space above "Лучшая цена" so it doesn't stick to the card above */
  .pool-price-block .qode_pricing_tables .q_price_table.active {
    margin-top: 48px !important;
    margin-bottom: 28px !important;
  }

  .pool-price-block .qode_pricing_tables.clearfix.three_columns {
    margin-top: 30px !important;
  }
}

/* Footer: 20px side padding + centered logo (all pages) */
footer .footer_top_holder,
footer .footer_bottom_holder {
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}
footer .footer_top,
footer .footer_top.footer_top_full,
footer .footer_bottom {
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
footer .footer_top .container_inner,
footer .footer_bottom .container_inner {
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
footer .footer_top a:has(img[src*="logo"]),
footer .footer_bottom a:has(img[src*="logo"]) {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
footer .footer_top img[src*="logo"],
footer .footer_bottom img[src*="logo"],
footer .footer_top .widget_media_image img,
footer .footer_top .textwidget > p > a > img,
footer .footer_top .textwidget > a > img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
