/*
Theme Name: True
Version: 1.01
Description: Шаблон для бань бочек в Красноярске
Author: Лаборатория Продаж Абакан
Author URI: https://sales2lab.ru
*/



html,
body {
    height: 100%;
}

.whole-wrapp {
    padding-bottom: 20px;
    min-height: 100%;
}

.content-block {
    max-width: 100%;
}

body {
  margin: 0;
  font-family: Montserrat;
}

.tbold {
    font-family: Montserrat-bold;
}

strong {
    font-weight: bold!important;
}

.right-align {
    text-align: right;
}

.crossed {
    text-decoration: line-through;;
}

/* Main menue*/

a {
  color: #000;
}

/* header */

.header {
  background-color: rgba(0, 0, 0, 0);
  position: fixed;
  width: 100%;
  z-index: 3;
}

.header ul {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
  background-color: #fff;
}

.header li a {
  display: block;
  padding: 14px 20px 12px 20px!important;
  border-right: 1px solid #f4f4f4;
  text-decoration: none;
}

.header li a:hover,
.header .menu-btn:hover {
  background-color: #f4f4f4;
}

.menu {
    background-color: #F4F4F4!important;
    border-radius: 10px;
    margin: 15px 1px 1px 1px!important;
}

.header .logo {
  display: block;
  float: left;
  font-size: 24px;
  padding: 10px 20px;
  text-decoration: none;
  font-weight: bold;
}

#logo-a {
  background-color: #254f3c;
  border-radius: 10px;
  padding: 3px 9px 6px;
  margin: 15px 0 15px 15px;
}

.logo-img {
    height: 40px;
    width: auto;
}

.main-menue-social-a {
  background-color: #F4F4F4;
  border-radius: 10px;
  padding: 10px 10px 9px;
  margin: 15px 0 15px 10px;
  display: block;
  float: left;
}

.main-menue-social-img {
  height: 32px;
  width: auto;
}

/* menu */

.header .menu {
  clear: both;
  max-height: 0;
  transition: max-height .2s ease-out;
}

#menue_tel {
    font-size: 20px;
    font-family: Montserrat-bold;
    letter-spacing: 1px;
    padding: 13px 20px!important;
}

/* menu icon */

.header .menu-icon {
  cursor: pointer;
  display: inline-block;
  float: right;
  padding: 25px 20px;
  position: relative;
  user-select: none;
  margin: 15px 40px 15px 0;
  background-color: #F4F4F4;
  border-radius: 10px;
}

.header .menu-icon .navicon {
  background: #333;
  display: block;
  height: 2px;
  position: relative;
  transition: background .2s ease-out;
  width: 20px;
}

.header .menu-icon .navicon:before,
.header .menu-icon .navicon:after {
  background: #333;
  content: '';
  display: block;
  height: 100%;
  position: absolute;
  transition: all .2s ease-out;
  width: 100%;
}

.header .menu-icon .navicon:before {
  top: 7px;
}

.header .menu-icon .navicon:after {
  top: -7px;
}

/* menu btn */

.header .menu-btn {
  display: none;
}

.header .menu-btn:checked ~ .menu {
  max-height: 500px;
}

.header .menu-btn:checked ~ .menu-icon .navicon {
  background: transparent;
}

.header .menu-btn:checked ~ .menu-icon .navicon:before {
  transform: rotate(-45deg);
}

.header .menu-btn:checked ~ .menu-icon .navicon:after {
  transform: rotate(45deg);
}

.header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before,
.header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
  top: 0;
}

/* 48em = 768px */

@media (min-width: 48em) {
  .header li {
    float: left;
  }
  .header li a {
    padding: 20px 30px;
  }
  .header .menu {
    clear: none;
    float: right;
    max-height: none;
  }
  .header .menu-icon {
    display: none;
  }
}


/* End of Main menue */

.main-row {
    padding-top: 74px;
    margin-right: 0!important;
    margin-left: 0!important;
}

.main-offer-p {
    font-size: 18px;
    margin-top: 7px;
    margin-bottom: 30px;
}

.main-offer-div {
    border-radius: 20px;
    margin: 12px;
    padding: 300px 0 1px 0;
    background-image: url("images/main-offer-bg.webp");
    background-repeat: no-repeat;
    background-position: top;
    background-size: cover;
}

.main-offer-div-desktop {
    border-radius: 20px;
    margin: 12px;
    padding: 100px 40px;
    background-image: url("images/main-offer-bg-desktop.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.main-offer-div-inside {
    color: #fff;
    margin: 24px 24px 23px 24px;
    padding: 22px;
    background-color: rgba(44, 44, 44, 0.6);
    backdrop-filter: blur(7px);               /* размытие фона */
    -webkit-backdrop-filter: blur(7px);
    border-radius: 10px;
}

.main-offer-div-p-inside-a {
    color: #1E1E1E;
    text-decoration: none;
}


.outlined-text {
    font-family: Montserrat-Black;
    font-size: 40px;
    color: white;
    text-shadow: 
    -1px -1px 0 #234F3C,
     1px -1px 0 #234F3C,
    -1px  1px 0 #234F3C,
     1px  1px 0 #234F3C;
}

.main-offer-div-p-inside-a-div {
    background-color: #F5B580;
    border-radius: 200px;
    justify-content: center; 
    display: flex;
    align-items: center;
    gap: 8px;
}

.main-offer-div-p-inside-a-div p {
    font-size: 13px;
    font-family: Montserrat-bold;
    letter-spacing: 0;
    padding-top: 15px;
}

.main-offer-div-p-inside-head {
    font-size: 18px;
    margin-top: 0;
    font-family: Montserrat;
}

.main-offer-div-p-inside-txt {
    font-size: 13px;
    font-family: Montserrat;
}

.main-offer-div-p-inside-a-img {
    height: 30px;
    width: auto;
}

.adv-row,
.reasons-row,
.reasons-head-row {
    margin-right: 0!important;
    margin-left: 0!important;
}

.reasons-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.bani-bochki-main-head {
    color: #234F3C;
    font-weight: bold;
}

h1 {
    font-size: 26px;
    font-family: Montserrat;
}

.main-row-col {
    padding-right: 0!important;
    padding-left: 0!important;
}

.main-img,
.adv-img {
    width: 100%;
    height: auto;
}

.adv-p,
.reasons-p {
    font-size: 18px;
}

.first_cont_a img {
    width: 55%;
    margin-right: 2%;
    margin-left: 2%;
}


.compair_table {
    border-collapse: collapse;
    border: 1px solid rgb(200 200 200);
    font-size: 14px;
}

th,
td {
    border: 1px solid rgb(160 160 160);
    padding: 8px 10px;
}

.tred {
    color: #7b0000;
}

.tgreen {
    color: #004701;
}

caption {
  padding: 10px 10px 10px 0;
  font-family: Montserrat-bold;
  text-align: left;
}

.th_rotate {
  -webkit-transform: rotate(-90deg);  /* Chrome, Opera 15+, Safari 3.1+ */
      -ms-transform: rotate(-90deg);  /* IE 9 */
          transform: rotate(-90deg);  /* Firefox 16+, IE 10+, Opera */
}

#reasons-p-5 {
    font-size: 110px;
    text-align: right;
    margin: 0;
    font-family: Montserrat-bold;
    color: #6b5c53;
    padding-right: 0;
}

#reasons-p-r {
    color: #1E1E1E;
    font-size: 26px;
    padding-left: 0;
    padding-top: 10px;
}

#reasons-p-r-b {
    font-family: Montserrat-bold;
    color: #254f3c;
}

.reasons-p {
    margin-bottom: 20px;
    margin-top: 10px;
}

.gallery-p {
	margin-bottom: 20px;
    margin-top: 10px;
}

#reasons-preul-p {
    margin-bottom: 10px;
}

.marquiz__button {
	margin-top: 30px;
}

.footer {
	text-align: right;
	color: #fff;
	font-size: 16px;
    font-family: Din-pro;
    font-weight: 300;
	background-color: #3e3a38;
	padding-top: 2px;
    padding-bottom: 2px;
}

.content-block h2,
.content-block p {
    padding-right: 15px;
    padding-left: 15px;
}

#last-reason {
    margin-bottom: 30px;
}

.form-h3 {
    font-size: 24px;
    font-family: Montserrat;
}

.last_cont_a {
    line-height: 2;
    font-size: 24px;
    text-decoration: none!important;
    outline: none!important;
}

.last-offer-p {
    font-size: 24px;
}

#pre_tel_p {
    margin-top: 30px;
}

.link_cont_a {
    padding: 10px 25px;
    color: #fff;
    background-color: #e78e46;
    margin-left: 20px;
    border-radius: 17px;
    text-decoration: none;
    letter-spacing: 1px;
    box-shadow: 5px 4px 0px #ccc;
}

.link_cont_a:hover,
.link_cont_a:focus {
    background-color: #f5a25f;
}

.link_cont_a:active {
    box-shadow: 2px 2px 0px #ccc;
}

.main-offer-sub-p {
    font-size: 14px;
    color: #999;
    padding-left: 17px;
    margin-top: 3px;
}

#reasons-exclusive {
    font-size: 40px;
    text-align: center;
    margin: 60px 0 0 0;
    font-family: Montserrat-bold;
    color: #254f3c;
    padding-right: 0;
}

#single-banya-exclusive {
    font-size: 32px;
    text-align: left;
    margin: 60px 0 0 0;
    font-family: Montserrat-bold;
    color: #254f3c;
    padding-right: 0;
}

#contacts-head {
    font-size: 40px;
    text-align: left;
    margin: 60px 0 0 0;
    font-family: Montserrat-bold;
    color: #254f3c;
    padding-right: 0;
}

#otzivi-head {
    font-size: 40px;
    margin: 60px 0 0 0;
    font-family: Montserrat-bold;
    color: #254f3c;
    padding-right: 15px;
    text-align: right;
}

.otzivi-txt {
    text-align: right;
}

#reasons-p-center {
    text-align: center;
}

#join-tg {
	margin-top: 0;
	margin-bottom: 5px;
}

.row22 {
    margin-right: 12px!important;
    margin-left: 5!important;
}

.adv-plitka {
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
    margin: 15px;
    border-radius: 20px;
    padding: 20px 10px;
}

.exclusive-plitka {
    margin: 15px;
    border-radius: 10px;
    border: 2px solid #234F3C;
    padding: 25px 25px;
}

.exclusive-plitka-1 {
    margin: 15px;
    border-radius: 10px;
    border: 2px solid #234F3C;
    padding: 20px 10px;
}

.reasons-p-5-head,
.reasons-p-5-txt {
    padding-right: 0!important;
    padding-left: 0!important;
}

.reasons-p-5-head {
    font-size: 14px;
    font-family: Montserrat-bold;
}

.reasons-p-5-txt {
    font-size: 12px;
    font-family: Montserrat;
}

.cherta-parent {
    padding-top: 19px;
    padding-bottom: 15px;
    padding-left: 20px;
}

#reason-02-dgt {
    max-height: 45px;
    width: auto;
}

.cherta-sleva {
    height: 100%;
    width: 100%;
    border-left: 2px solid #234F3C;
}

#right-border-div {
    border-right: 2px solid #234F3C;
    padding-right: 20px;
}

#right-border-div-parent {
    padding-right: 25px;
}

.arrow-down-img {
    float: right;
}

.border-bottom-2px {
    border-bottom: 2px solid #234F3C;
}

.exclusive-txt-div {
    margin-top: 25px;
    border-radius: 10px;
    background-color: #F4F4F4;
    padding-right: 20px;
    padding-left: 20px;
}

.exclusive-txt-div p {
    padding-right: 0;
    padding-left: 0;
}

.for3d-txt {
    font-size: 22px;
    padding-top: 30px;
}

.price-p {
    font-size: 13px;
    text-align: left;
    margin-top: 0!important;
    margin-bottom: 10px!important;
    padding-left: 17px !important;
}
    

.model-button p {
    color: #fff;
    border-radius: 10px;
    background-color: #234F3C;
    padding: 10px 17px;
    text-align: left;
    font-size: 14px;
    display: inline-block;
    margin-top: 0!important;
    margin-bottom: 40px!important;
}

.model-button {
    cursor: pointer;
}

.text-right {
    text-align: left;
}

#price-forms-head {
    color: #234F3C;
    font-family: Montserrat-bold;
    font-size: 40px;
    letter-spacing: 1px;
    }


.contacts-div p {
    font-size: 18px;
}

.metaslider.ms-theme-clarity .flexslider .flex-control-paging li a {
    width: 15px!important;
    height: 15px!important;
}

.thank-you-contacts-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}


/* Gallery */

/* === Lightbox / Modal Gallery — финал === */

.gallery-container {
    padding-top: 45px;
}

/* полупрозрачный фон именно у этой модалки */
#galleryModal {
  --bs-backdrop-bg: #000;
  --bs-backdrop-opacity: .75;   /* 75% затемнения */
}

/* контент модалки прозрачный (виден только слайдер) */
#galleryModal .modal-content {
  background: transparent !important;
  box-shadow: none;
}

/* вертикальные отступы 5% и контейнер высотой во viewport */
#galleryModal .modal-body {
  position: relative;
  height: 100vh;
  padding: 5vh 0;               /* по 5% сверху/снизу */
}

/* карусель занимает всю доступную высоту (с учётом паддингов) */
#galleryModal .carousel,
#galleryModal .carousel-inner {
  height: calc(100vh - 10vh);
  width: 100%;
  overflow: hidden;
}

/* НЕ трогаем базовый display у .carousel-item (Bootstrap сам скрывает их) */
#galleryModal .carousel-item { height: 100%; }

/* активные и переходные выравниваем по центру */
#galleryModal .carousel-item.active,
#galleryModal .carousel-item-next,
#galleryModal .carousel-item-prev,
#galleryModal .carousel-item-start,
#galleryModal .carousel-item-end {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* изображение вписывается и имеет скругления как в галерее */
#galleryModal .carousel-item img {
  max-width: 96vw;              /* «воздух» по бокам */
  max-height: 100%;             /* не выше доступной высоты */
  width: auto; height: auto;
  object-fit: contain;
  border-radius: 14px;
}

/* фиксированный крестик */
.modal-close-fixed {
  position: fixed;
  top: max(16px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  z-index: 1060;
}

/* шире зона клика по стрелкам */
#galleryModal .carousel-control-prev,
#galleryModal .carousel-control-next { width: 12%; }

/* --- Peek-превью соседних слайдов (слева/справа), не мешают кликам --- */
#galleryModal .peek{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: min(14vw, 220px);
  opacity: .65;
  pointer-events: none;        /* клики проходят сквозь */
  z-index: 1;                  /* ниже основной карусели */
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.35));
}
#galleryModal .peek-left  { left: 1.2vw; }
#galleryModal .peek-right { right: 1.2vw; }

#galleryModal .peek img{
  display: block;
  width: 100%; height: auto;
  border-radius: 10px;
  object-fit: cover;
}

/* гарантируем, что карусель выше превью */
#galleryModal .carousel { position: relative; z-index: 2; }

/* --- Гладкие переходы без ломания анимации Bootstrap --- */
#galleryModal .carousel-item,
#galleryModal .carousel-item img{
  backface-visibility: hidden;
  will-change: transform, opacity;
}

/* === Fix: Neutralize .ratio & .w-100 inside the modal gallery (desktop issue) === */
#galleryModal .ratio {
  position: static !important;
  width: auto !important;
  height: 100% !important;
}
#galleryModal .ratio::before { /* убираем «псевдо-поддержание» пропорций */
  display: none !important;
}
#galleryModal .ratio > * {
  position: static !important;         /* вместо absolute из .ratio */
  width: auto !important;
  height: auto !important;
  max-width: 96vw !important;          /* как и было в ваших правилах */
  max-height: 100% !important;
  object-fit: contain !important;
}

/* Внутри модалки игнорируем растяжение на всю ширину */
#galleryModal .carousel-item .w-100 {
  width: auto !important;
}


/* ==== Gallery (Bootstrap 5) ==== */
.gallery-grid{
  /* прямоугольная область с равными внешними отступами */
  list-style: none;   /* убираем маркеры списка (точки) */
  margin: 0;          /* убираем дефолтные отступы UL/OL */
  padding: 12px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  grid-template-columns: repeat(12, 1fr);
}

.gallery-grid .col {
    margin-bottom: 25px!important;
}

.gallery-grid .tile{
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;          /* квадрат */
  overflow: hidden;
  border-radius: 14px;
  background: #f2f2f2;
  transform: translateZ(0);      /* для сглаженного ховера */
}

/* размеры: обычный = 3 колонки; крупный = 6 колонок и 2 ряда */
.gallery-grid .tile{ grid-column: span 3; }
.gallery-grid .tile.span-2{ grid-column: span 6; grid-row: span 2; }

.gallery-grid .tile img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transition: transform .35s ease;
}

#production .gallery-grid {
  gap: 12px;
}

/* overlay: затемняем нижнюю треть и показываем текст */
.gallery-grid .tile .overlay{
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 36%;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
  color: #fff;
  padding: 12px 14px;
  display: flex; flex-direction: column; justify-content: end;
  opacity: 0; transition: opacity .25s ease;
}
.gallery-grid .tile .overlay h3{
  font-size: 14px; line-height: 1.25; margin: 0 0 4px 0; font-weight: 700;
}
.gallery-grid .tile .overlay p{
  font-size: 12px; line-height: 1.25; margin: 0; opacity: .95;
}

/* hover эффекты */
.gallery-grid .tile:hover img{ transform: scale(1.06); }
.gallery-grid .tile:hover .overlay{ opacity: 1; }

/* ——— Адаптив ——— */
/* 4 плитки в ряд от 992px и шире */
@media (min-width: 992px){
  .gallery-grid{ grid-template-columns: repeat(12, 1fr); }
  .gallery-grid .tile{ grid-column: span 3 !important; }           /* 4 в ряд */
  .gallery-grid .tile.span-2{ grid-column: span 6 !important; grid-row: span 2; }
}
@media (max-width: 991.98px){
  .gallery-grid{ grid-template-columns: repeat(8, 1fr); }
  .gallery-grid .tile{ grid-column: span 4; }            /* 2 в ряд */
  .gallery-grid .tile.span-2{ grid-column: span 8; grid-row: span 2; }
}
@media (max-width: 575.98px){
  .gallery-grid{ grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 10px; }
  .gallery-grid .tile{ grid-column: span 2; }            /* 2 в ряд */
  .gallery-grid .tile.span-2{ grid-column: span 4; grid-row: span 2; }
  .gallery-grid .tile .overlay{ height: 40%; padding: 10px 12px; }
  .gallery-grid .tile .overlay h3{ font-size: 13px; }
  .gallery-grid .tile .overlay p{ font-size: 11px; }
}


/* --- Галерея: ховер-оверлей и заголовок на нижней трети --- */
.gallery-grid .tile-card{
  position: relative;
  overflow: hidden;
  border-radius: 16px;
}

.gallery-grid .tile-card img { 
    z-index:0;
}

/* затемнение нижней трети (градиентом), скрыто до наведения */
.gallery-grid .tile-card::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:38%;
  background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,0));
  opacity:0;
  transition: opacity .18s ease-in-out;
  pointer-events:none;
  z-index:1; /* <— добавили */
}

/* Заголовок внизу плитки — переопределяем правила .ratio > * */
.gallery-grid .tile-title{
  position:absolute;
  left:10px; right:10px;
  bottom:15px;
  /* критично: перебиваем Bootstrap */
  top:auto !important;
  height:auto !important;
  width:auto;           /* можно оставить 100%, но auto надежнее */
  display:block;
  z-index:2;
  color:#fff;
  font-weight:600;
  font-size:0.98rem;
  line-height:1.2;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  opacity:0; transform: translateY(6px);
  transition: opacity .18s ease-in-out, transform .18s ease-in-out;
  pointer-events:none;
}


/* показ на hover */
.gallery-grid .tile:hover .tile-card::after{ opacity:1; }
.gallery-grid .tile:hover .tile-title{ opacity:1; transform: translateY(0); }

/* Убираем лишние отступы/поля, если внутрь сетки попали .row и .col-* */
.gallery-grid, .gallery-grid .row { margin-left: 0 !important; margin-right: 0 !important; }
.gallery-grid [class^="col-"], 
.gallery-grid [class*=" col-"] { padding-left: 0 !important; padding-right: 0 !important; flex: none !important; width: auto !important; }

/* На всякий случай запрещаем внешние margin у элементов-плиток */
.gallery-grid > * { margin: 0 !important; }

@media (min-width: 1200px){
  .gallery-container { max-width: 1320px; } /* было 1140px у Bootstrap */
}

/* если нет util-класса, страхуем object-fit */
.object-fit-cover{ object-fit: cover; }

.modal-content {
    border: none!important;
}

.banya-price-current {
    font-size: 32px;
    color: #2d3f36;
    font-family: Din-pro;
    font-weight: bold;
    line-height: 0.8;
}

.banya-price-value {
    color: #fff;
    padding: 5px 12px;
    background: #2d3f36;
    letter-spacing: 0.8px;
    position: relative;
    display: inline-block;
    overflow: hidden; /* чтобы блик не вылезал за края таблички */
    top: 8px;
}

.banya-price-note {
    padding-top: 10px;
}

.banya-price-value::after {
    content: "";
    position: absolute;
    top: 0;
    left: -150%; /* старт далеко слева */
    width: 50%;
    height: 100%;
    background: linear-gradient(
        120deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.3) 50%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: skewX(-20deg);
    pointer-events: none;

    animation: banya-price-shine 4.5s ease-in-out infinite;
}

/* раз в пару секунд блик пробегает слева направо */
@keyframes banya-price-shine {
    0%   { left: -150%; }
    35%  { left: 150%; } /* быстрый пробег */
    100% { left: 150%; } /* пауза до следующего цикла */
}


/* ===== Другие наши бани (related) ===== */
.banya-related { background: #fff; }

.banya-related__title { 
    font-size: 32px;
    text-align: left;
    margin: 20px 0 0 0;
    font-family: Montserrat-bold;
    color: #254f3c;
    padding-right: 0;
    text-transform: uppercase;
}

.rb-track {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 8px;
  -webkit-overflow-scrolling: touch; /* плавность на iOS */
  scroll-behavior: auto;             /* управляем вручную через JS */
  cursor: grab;
}
.rb-track.grabbing { cursor: grabbing; }

.rb-card {
  flex: 0 0 auto;
  width: calc((100% - 12px * 4) / 5);   /* 5 плиток в ряд на десктопе */
  max-width: 240px;
  text-decoration: none;
  color: inherit;
}

@media (max-width: 575.98px) {
  .rb-card {
    width: calc((100% - 12px) / 2);     /* 2 плитки на телефоне */
    max-width: none;
  }
}

.rb-thumb {
  aspect-ratio: 4 / 3;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #f5f5f5;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
.rb-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rb-caption {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;      /* обрезаем до 2 строк */
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;          /* чтобы карточки были одной высоты */
}


/* Related: горизонтальная лента */
.bbp-related-scroller {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  /* важный момент: вертикальный скролл страницы оставляем,
     горизонтальный обрабатываем жестом */
  touch-action: pan-y;
  cursor: grab;
  scroll-behavior: auto; /* убираем лишнюю "плавность", т.к. у нас инерция в JS */
}

.bbp-related-scroller.bbp-dragging {
  cursor: grabbing;
}

.bbp-related-scroller a,
.bbp-related-scroller img {
  user-select: none;
  -webkit-user-drag: none;
  -webkit-tap-highlight-color: transparent;
}


.banya-thumb img {
    border-radius: 15px;
}


.bbp-latest-banyas .gallery-grid {
    gap: 12px;
}

.bbp-latest-footer {
  text-align: right;
  margin-top: 30px; /* нужный вам отступ */
  margin-bottom: 30px;
}

.lead-form-row {
    padding-top: 50px;
}

.lead-form-row p {
    font-size: 18px;
}

.b24-form-wrapper {
    border-radius: 15px!important;
}

b24-form-wrapper. b24-form-shadow {
    -webkit-box-shadow: 0 4px 18px 0 rgba(0, 0, 0, .2)!important;
    box-shadow: 0 4px 15px 0 rgba(0, 0, 0, .2)!important;
}


.single-banya {
    padding-top: 100px;
}

/* Меньше md: переносим кнопки на новую строку после подписи */
@media (max-width: 767.98px) {
  .bani-filters .filter-label {
    flex: 0 0 100%;   /* метка занимает всю строку */
  }
}

.exclusive-img {
    border-radius: 15px;
    width: 100%;
    height: auto;
    margin-bottom: 30px;
}

.exclusive-title {
  position: relative;
  display: inline-block;   /* чтобы ширина считалась от ширины заголовка */
  padding-bottom: .5rem;
  font-family: Montserrat-bold;
  font-size: 20px;
  padding-top: 20px;
  color: #254f3c;
}

.exclusive-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 35%;              /* линия на 30% ширины заголовка */
  height: 2px;
  background-color: #234F3C;  /* нужный цвет */
}

.exclusive-txt {
  font-size: 16px;
  padding-top: 10px;
  color: #444e49;
}

/* Описание под заголовком */
.proizvostvo-krsk-text {
    font-size: 18px;
    padding-top: 20px;
    padding-left: 20px;
}

/* ==== Gallery (Bootstrap 5) — Красноярск ==== */
.proizvostvo-krsk-gallery-grid {
  padding: 12px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}

.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;          /* квадрат */
  overflow: hidden;
  border-radius: 14px;
  background: #f2f2f2;
  transform: translateZ(0);      /* для сглаженного ховера */
}

/* размеры: обычный = 3 колонки; крупный = 6 колонок и 2 ряда */
.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile {
  grid-column: span 3;
}
.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile.proizvostvo-krsk-span-2 {
  grid-column: span 6;
  grid-row: span 2;
}

.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .35s ease;
}

/* overlay: затемняем нижнюю треть и показываем текст */
.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 36%;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
  color: #fff;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  opacity: 0;
  transition: opacity .25s ease;
}

.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay h3 {
  font-size: 14px;
  line-height: 1.25;
  margin: 0 0 4px 0;
  font-weight: 700;
}

.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay p {
  font-size: 12px;
  line-height: 1.25;
  margin: 0;
  opacity: .95;
}

/* hover эффекты */
.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile:hover img {
  transform: scale(1.06);
}
.proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile:hover .proizvostvo-krsk-overlay {
  opacity: 1;
}

/* ——— Адаптив ——— */
/* 4 плитки в ряд от 992px и шире */
@media (min-width: 992px) {
  .proizvostvo-krsk-gallery-grid {
    grid-template-columns: repeat(12, 1fr);
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile {
    grid-column: span 3 !important;           /* 4 в ряд */
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile.proizvostvo-krsk-span-2 {
    grid-column: span 6 !important;
    grid-row: span 2;
  }
}

@media (max-width: 991.98px) {
  .proizvostvo-krsk-gallery-grid {
    grid-template-columns: repeat(8, 1fr);
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile {
    grid-column: span 4;            /* 2 в ряд */
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile.proizvostvo-krsk-span-2 {
    grid-column: span 8;
    grid-row: span 2;
  }
}

@media (max-width: 575.98px) {
  .proizvostvo-krsk-gallery-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    padding: 10px;
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile {
    grid-column: span 2;            /* 2 в ряд */
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile.proizvostvo-krsk-span-2 {
    grid-column: span 4;
    grid-row: span 2;
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay {
    height: 40%;
    padding: 10px 12px;
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay h3 {
    font-size: 13px;
  }
  .proizvostvo-krsk-gallery-grid .proizvostvo-krsk-tile .proizvostvo-krsk-overlay p {
    font-size: 11px;
  }
}


/* Убираем лишние отступы/поля, если внутрь сетки попали .row и .col-* */
.proizvostvo-krsk-gallery-grid,
.proizvostvo-krsk-gallery-grid .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.proizvostvo-krsk-gallery-grid [class^="col-"],
.proizvostvo-krsk-gallery-grid [class*=" col-"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
  flex: none !important;
  width: auto !important;
}

/* На всякий случай запрещаем внешние margin у элементов-плиток */
.proizvostvo-krsk-gallery-grid > * {
  margin: 5px !important;
}

/* Mobile view: правка текста под производство */
@media (max-width: 767.98px) {
    .proizvostvo-krsk-text {
        font-size: 20px;
        line-height: 1.3;
    }
}

#rksk-proizvodstvo-gallery {
    margin-top: 55px;
    padding-left: 20px;
}

.quote_div {
    padding-top: 50px;
}

.quote {
    box-shadow: 0 0 15px 0 rgba(0, 0, 0, .2);
    margin-bottom: 20px;
    z-index: 1;
}

.quote_p {
    font-size: 16px;
}

.quote_img_p {
    margin-bottom: 0;
}

.chat-open-button {
    background-color: #254f3c;
    border-radius: 10px;
    padding: 8px 25px;
    color: #fff;
}

.chat-open-button:hover,
.chat-open-button:focus,
.chat-open-button:active {
    background-color: #347f5d;
    color: #fff;
}

#aktsii_p {
    font-size: 80px;
}

.proizvostvo-krsk-tile img {
    width: 100%;
    height: auto;
}

.tg-ico-img {
    width: 100%;
    height: auto;
}

.tg-head {
    padding-top: 5px;
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 3px;
    color: #254f3c;
}

.tg-head a {
    text-decoration: none;
    color: #254f3c;
}

.tg-txt {
    font-size: 16px;
}


/* Вибрация "звонка" для иконки чата на мобилке */
.scw-minimized-mobile .scw-minimized-mobile-inner {
  animation: scw-ring 2.2s ease-in-out infinite;
  transform-origin: 50% 60%;
  will-change: transform;
}

/* Лёгкие "волны" вокруг иконки (опционально, красиво) */
.scw-minimized-mobile .scw-minimized-mobile-inner::before,
.scw-minimized-mobile .scw-minimized-mobile-inner::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  border: 2px solid rgba(0, 0, 0, 0.12);
  opacity: 0;
  pointer-events: none;
}

.scw-minimized-mobile .scw-minimized-mobile-inner::before {
  animation: scw-pulse 2.2s ease-out infinite;
}

.scw-minimized-mobile .scw-minimized-mobile-inner::after {
  animation: scw-pulse 2.2s ease-out infinite;
  animation-delay: .25s;
}

/* Чтобы псевдоэлементы работали */
.scw-minimized-mobile .scw-minimized-mobile-inner {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Собственно "звонок": короткая тряска + пауза */
@keyframes scw-ring {
  0%   { transform: rotate(0deg); }
  1%   { transform: rotate(-10deg); }
  2%   { transform: rotate(10deg); }
  3%   { transform: rotate(-10deg); }
  4%   { transform: rotate(10deg); }
  5%   { transform: rotate(-6deg); }
  6%   { transform: rotate(6deg); }
  7%   { transform: rotate(0deg); }
  100% { transform: rotate(0deg); }
}

/* Волны */
@keyframes scw-pulse {
  0%   { transform: scale(0.9); opacity: 0; }
  8%   { opacity: 0.35; }
  18%  { transform: scale(1.15); opacity: 0; }
  100% { transform: scale(1.15); opacity: 0; }
}

/* Уважение к настройке уменьшения анимаций */
@media (prefers-reduced-motion: reduce) {
  .scw-minimized-mobile .scw-minimized-mobile-inner,
  .scw-minimized-mobile .scw-minimized-mobile-inner::before,
  .scw-minimized-mobile .scw-minimized-mobile-inner::after {
    animation: none !important;
  }
}


/* Fonts */
 
 @font-face {
 font-family: NotoSerif-Bold;
 src: url(/wp-content/themes/true/fonts/NotoSerif-Bold.ttf);
 font-weight: normal;
 }
 
 @font-face {
 font-family: Montserrat;
 src: url(/wp-content/themes/true/fonts/Montserrat-Regular.ttf);
 font-weight: normal;
 }
 
 @font-face {
 font-family: Montserrat-bold;
 src: url(/wp-content/themes/true/fonts/Montserrat-Bold.ttf);
 font-weight: bold;
 }
 
  @font-face {
 font-family: Montserrat-Black;
 src: url(/wp-content/themes/true/fonts/Montserrat-Black.ttf);
 font-weight: bold;
 }

  
 @font-face {
 font-family: NotoSerif-Regular;
 src: url(/wp-content/themes/true/fonts/NotoSerif-Regular.ttf);
 font-weight: normal;
 }

 @font-face {
 font-family: Din-pro;
 src: url(/wp-content/themes/true/fonts/dinpro_medium.otf);
 font-weight: 400;
 }

 @font-face {
 font-family: Din-pro;
 src: url(/wp-content/themes/true/fonts/dinpro_light.otf);
 font-weight: 300;
 }

 @font-face {
 font-family: Din-pro;
 src: url(/wp-content/themes/true/fonts/dinpro_bold.otf);
 font-weight: bold;
 }
 
 @font-face {
 font-family: Din-pro;
 src: url(/wp-content/themes/true/fonts/dinpro_black.otf);
 font-weight: 800;
 }

/* End of Fonts */


/* Mobile view */
 
 @media (max-width:767.98px){
     
     .mob-hide {
         display: none;
     }
     
     .bani-bochki-main-head {
         display: inline-block;
         width: 100%;
         font-family: Montserrat-bold;
     }
     
     h1 {
         margin-bottom: 10px;
     }
     
     #otzivi-head {
        font-size: 40px;
        text-align: center;
    }
    
    .otzivi-txt {
        text-align: center;
    }
    
    .py-5 {
    padding-bottom: 1rem !important;
    }
    
    .banya-price-current strong {
    display: block;
    margin-bottom: 4px; /* небольшой отступ над ценой */
    }
    
    .exclusive-title {
    padding-top: 0;
    }
    
    .exclusive-txt {
        margin-bottom: 45px;
    }
    
    .quote_div {
        padding-top: 5px;
    }
    
    #aktsii_p {
        font-size: 40px;
    }
}
 
  @media (min-width:768px){
     .mob {
         display: none;
     }
     
    .main-wrap {
        padding-left: 10%;
        padding-right: 10%;
    }
     
    h1 {
        font-size: 35px;
        font-family: Montserrat-bold;
        margin-top: 45px;
        margin-bottom: 15px;
        padding-left: 20px;
     }
     
    .main-offer-p {
        padding-left: 20px;
    }
    
    .first_cont_a img {
        width: 200px;
    }
    
    .main-img {
        width: 80%;
        height: auto;
        float: right;
    }
    
    h2,
    .form-h3 {
        font-size: 32px;
        text-align: center;
        margin-top: 40px;
    }
    
    .adv-row-img-div {
        margin-bottom: 30px;
    }
    
    .th_rotate {
      -webkit-transform: none;
      -ms-transform: none;
          transform: none;
    }
    
    td {
        padding: 26px 26px;
    }
    
    #reasons-p-r {
        padding-top: 20px;
    }
    
    #reasons-p-5 .adv-img {
        height: 100px;
        width: auto;
    }
    
    #price-forms-head {
        margin-top: 95px;
    }
    
    .tg-links-row {
        margin-top: 60px;
    }

 }
 


/* End of Mobile view */
 

/* 
*{
  background: #000 !important;
  color: #0f0 !important;
  outline: solid #f00 1px !important;
} 
 */