.maybe-hidden-hidden .maybe-hidden {
  display: none;
}
.text-uppercase {
	text-transform:uppercase;
}
.uppercase-reset h2 {
	text-transform: none!important;
}
.btn-center .btn-container {
  align-items: center;
  text-align: center;
}
.btn-right .btn-container {
  align-items: end;
  text-align: right;
}
.ds-item {
  position: relative;
  color: var(--text-color);
}
.badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 200px;
  padding: 0.25em 0.5em;
  line-height: 1;
  color:white;
}
.badge-border {
  border: 1px solid currentColor;
}
.badge-dark {
  color: var(--text-color);
  background-color: transparent;
}

.badge-container {
  position: absolute;
  top:1em;
  left:0;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  z-index: 3;
}
.badge-container .badge {
  border-radius: 0;
}

.badge-discount {
  background-color: green;
}
.badge-top {
  background-color: rgb(10, 118, 118); 
}
.badge-new {
  background-color: rgb(125, 0, 134);
} 
.badge-sale {
  background-color: rgb(185, 55, 0);  
}
.badge-hit {
  background-color: darkorange;
}

.h-auto {
  height:auto;
}
.h-100 {
  height:100%;
}
@media (min-width: 768px) {
  .h-md-100 {
    height:100%;
  }
}
.aligncenter {
  margin: 0 auto;
}

.text-muted {
  opacity: 0.8;
}
.text-left, .text-left * {
  text-align: left!important;
}
.text-right {
  text-align: right!important;
}

.text-center {
  text-align: center!important;
}
.text-light {
  --text-color:white;
  --title-color: white;
  color: var(--text-color);
}
.text-light .nice-select {
  color: initial;
}
.text-light .p-accept a {
  color:white;
}
.text-dark {
  --text-color:#333;
  --title-color: #222;
  color: var(--text-color);
 }
 

.small, small,.text-small {
  font-size: var(--font-size-small);
  line-height: calc(var(--line-height)* 0.8);
}



small, span.text-small {
  display:inline-block;
}
.text-smaller {
font-size: 0.87em;
}

.text-larger {
  font-size:1.2em;
}
 .text-large {
  font-size: var(--font-size-large);
}
.text-largest {
  font-size: var(--font-size-largest);
}

.text-smallest  {
  font-size: var(--font-size-smallest);
}
.text-large :is(p, ul, ol) {
  font-size: var(--font-size-large);
}

.text-main-color {
  color: var(--color-primary)!important;
 }
 svg.text-main-color, svg.text-main-color path {
  fill:  var(--color-primary)!important;
 }
.price-text {
	display: inline-block;
	margin-top: 0.5vw;
	font-size: larger;
}	


.aspect-ratio-1-1 {
  aspect-ratio: 1 / 1;
}
.aspect-ratio-2-1{
  aspect-ratio: 2  / 1;
}
.aspect-ratio-3-2 {
  aspect-ratio: 3  / 2;
}
.img-aspect-ratio-2-1{
  aspect-ratio: 2  / 1;
}
.img-aspect-ratio-3-2 {
  aspect-ratio: 3  / 2;
}
.clear-aspect {
  aspect-ratio:unset!important;
}
.img-fit {
  width:100%;
  height:100%;
  object-fit: cover;
}

.img-circle {
  overflow: hidden;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.img-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.no-img-radius img,  img.no-img-radius {
  border-radius: 0!important;
}



.ds-items-border .ds-item {
  border: 1px solid var(--border-color);
}
.ds-items-border-0 .ds-item  {
  border: none;
}
.border {
  border: 1px solid var(--border-color)!important;
}

.gap-2em {
  gap:2em;
}
.gap-15em {
  gap:1.5em;
}
.gap-1em {
  gap: 1em;
}
.gap-05em {
  gap: 0.5em;
}
.position-relative {
  position: relative;
}
.position-static {
  position: static!important;
}
.ds-items-bg-white .ds-item {
  background-color: white;
  color: #333;
  --title-color: #333;
}
.bg-white {
  background-color: white!important;
}
.ds-items-shadow .ds-item {
  box-shadow: 0 0 0.5em 0 #eee;  
}
.shadow {
  box-shadow: 0 0 0.5em 0 #eee!important;
}

.ds-items-bg-info .ds-item {
  background-color: #d7f4ff;
}
.bg-info {
  background-color: #d7f4ff!important;
}
.ds-items-bg-red .ds-item {
  background-color: red;
}
.bg-cyan {
  background-color: #D5EFFA;
}
.bg-red {
  background-color: red!important;
}
.bg-primary {
  background-color: var(--color-primary);
}
.bg-secondary {
  background-color: var(--color-secondary);
}
.bg-grey {
  background-color: var(--color-grey);
}
.ds-items-bg-gr .ds-item {
  background-image: var(--gradient-1);
}
.bg-gr {
  background-image: var(--gradient-1)!important;
}
.ds-items-bg-gr-2 .ds-item {
  background-image: var(--gradient-2);
}
.bg-gr-2 {
  background-image: var(--gradient-2)!important;
}

.ds-items-bg-dark .ds-item {
  background-color: rgba(0,0,0,0.7);
  --text-color: white;
  --title-color: white!important;
  color: var(--text-color);  
}
.bg-dark {
  background-color:rgba(0,0,0,0.7); 
  --text-color: white;
  --title-color: white!important;
  color: var(--text-color); 
 }
.ds-items-bg-reset .ds-item {
  background-color: transparent!important;
}

.bg-reset {
  background-color: transparent!important;
}

.bg-15 {
  background-size: 15%!important;
}
.bg-20 {
  background-size: 20%!important;
}
.bg-25 {
  background-size: 25%!important;
}
.bg-30 {
  background-size: 30%!important;
}
.bg-40 {
  background-size: 40%!important;
}
.bg-50 {
  background-size: 50%!important;
}
.bg-60 {
  background-size: 60%!important;
}
.bg-75 {
  background-size: 75%!important;
}
.bg-100 {
  background-size: 100%!important;
}


.bg-responsive-right {
  background-size:auto 80%;
  background-position: bottom right;
  }
@media (max-width:767.5px) {
    .bg-responsive-right {
    background-size: auto 54vw;
    padding-bottom:55vw;
  }
}


/* для секций? */
 .bg-top-left {
	background-position: top left;
}
.bg-top-right{
	background-position: top right;
}
.bg-bottom-right {
	background-position: bottom right;
}
.bg-bottom-left {
	background-position: bottom left;
}
 .bg-center-left {
  background-position: center left;
}
.bg-center-right {
  background-position: center right;
}
.bg-contain {
  background-size:contain;
}
.bg-center {
  background-position: center;
}
.bg-top {
  background-position: top;
}
.bg-left {
  background-position: left!important;
}
.bg-bottom {
  background-position: bottom;
}
.bg-right {
  background-position: right;
}


/************************************/
.ds-item {
  border-radius: var(--border-radius);
  overflow: hidden;
}
.ds-items-radius .ds-item {
  border-radius: var(--border-radius);
}
.radius {
  border-radius: var(--border-radius)!important;
  overflow: hidden;
}
.ds-items-no-radius .ds-item {
  border-radius: 0!important;
}
.no-radius, .no-radius .wrapper {
  border-radius: 0 !important;
}
.border-0 {
  border: none!important;
}

/*  items */
.g-0 {
  gap: 0!important;
}
.ds-items-p-0 .ds-item {
  padding: 0;
}
.ds-items-p-05 .ds-item {
  padding: var(--gap05);
}
.ds-items-p-1 .ds-item {
  padding: var(--gap);
}
.ds-items-p-2 .ds-item {
  padding: var(--gap2);
}
.ds-items-p-3 .ds-item {
  padding: var(--gap3);
}
.ds-items-p-4 .ds-item {
  padding: var(--gap4);
}
.ds-items-p-5 .ds-item {
  padding: var(--gap5);
}
/**************/

.ds-mask {
  display:block;
  content:'';
  width:100%; height:100%;
  position: absolute; 
  top:0;left:0;
  z-index: 0;
}
.ds-items-mask-dark .ds-item {
  --text-color: white;
}
.ds-items-mask-dark .ds-mask {
  background-color:rgba(0,0,0,0.6);
}
.mask-dark {
  --text-color: white;
}
.mask-dark .ds-mask{
  background-color:rgba(0,0,0,0.6)!important;
}

.ds-items-mask-radial .ds-item {
  --text-color: white;
  overflow: hidden;
}
.ds-items-mask-radial .ds-item .ds-mask {
  background-image: radial-gradient(circle, rgba(0, 0, 0, 0.3) 3%, rgba(7, 5, 5, .8) 85%);
}
.mask-radial {
  overflow: hidden;
}
.mask-radial:before {
  content:'';
  display: block;
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height: 100%;
  background-image: radial-gradient(circle, rgba(0, 0, 0, 0.3) 3%, rgba(7, 5, 5, .8) 85%)!important;
}

.ds-items-mask-bottom .ds-item {
  --text-color: white;
}
.ds-items-mask-bottom .ds-item .ds-mask {
  background-image: linear-gradient(to top, rgba(0,0,0,0.99), rgba(0,0,0,0.2));
}

.mask-bottom {
  background-image: linear-gradient(to top, rgba(0,0,0,0.93), rgba(0,0,0,0.2))!important;
}


.ds-items-no-mask .no-mask {
  display: none;
}
.no-mask {
  display: none!important;
}
.ds-items-high .ds-item {
  aspect-ratio: 5/7;
}



/************** FREE POSITION ******/
.free-position {
  position:absolute;
  top:auto;  
  bottom:auto;
  right:auto;
  left: auto;
}
.free-position.img {
  max-width: none; 
  height:auto;
  width:auto;
  object-fit:contain;
}

.frees-m-1 .free-position {
  margin: var(--gap);
}
.frees-m-15 .free-position {
  margin: var(--gap15);
}
.frees-m-2 .free-position {
  margin: var(--gap2);
}

.free-m-1 .free-position {
  margin: var(--gap);
}
.free-m-15 .free-position {
  margin: var(--gap15);
}
.free-m-2 .free-position {
  margin: var(--gap2);
}

.frees-bottom-right .free-position {
  top: auto;
  left: auto;
  bottom:var(--inner-gap);
  right:var(--inner-gap);
  transform: translate(0, 0);
}
.frees-bottom-left  .free-position {
  top: auto;
  right:auto;
  bottom:var(--inner-gap);
  left: var(--inner-gap);
  transform: translate(0, 0);
}
.frees-top-right .free-position {
  top:var(--inner-gap);
  right:var(--inner-gap);
  bottom: auto;
  left: auto;
  transform: translate(0, 0);
}
.frees-top-left  .free-position{
  top:var(--inner-gap);
  left: var(--inner-gap);
  bottom: auto;
  right: auto;
  transform: translate(0, 0);
}

.frees-bottom .free-position {
  transform: translateX(50%);  
  bottom: var(--inner-gap);
  right:50%;
  top:auto;
  left:auto;
}
.frees-top .free-position {
  bottom: auto;
  right:50%;
  top:var(--inner-gap);
  left:auto;
  transform: translateX(50%);  
}
.frees-right .free-position {  
  bottom: auto;
  right:var(--inner-gap);
  top:50%;
  left:auto;
  transform: translateY(-50%);  
}
.frees-left .free-position {  
  bottom: auto;
  right:auto;
  top:50%;
  left:var(--inner-gap);
  transform: translateY(-50%);  
}


/*          one item  free */

.free-bottom-center .free-position,.free-position.free-bottom-center {
  top: auto;
  left: auto;
  bottom:0;
  right:50%;
  transform: translate(50%, 0);
}


.free-bottom-right .free-position,.free-position.free-bottom-right {
  top: auto;
  left: auto;
  bottom:0;
  right:0;
  transform: translate(0, 0);
}
.free-bottom-left .free-position, .free-bottom-left.free-position {
  top: auto;
  right:auto;
  bottom:0;
  left: 0;
  transform: translate(0, 0);
}
.free-top-right .free-position, .free-top-right.free-position {
  top:0;
  right:0;
  bottom: auto;
  left: auto;
  transform: translate(0, 0);
}
.free-top-left .free-position, .free-top-left.free-position{
  top:0;
  left: 0;
  bottom: auto;
  right: auto;
  transform: translate(0, 0);
}
.free-bottom .free-position, .free-bottom.free-position{
  transform: translateX(50%);  
  bottom: 0;
  right:50%;
  top:auto;
  left:auto;
}
.free-top .free-position, .free-top.free-position{
  bottom: auto;
  right:50%;
  top:var(--inner-gap);
  left:auto;
  transform: translateX(50%);  
}
.free-right .free-position, .free-right.free-position {
  bottom: auto;
  right:var(--inner-gap);
  top:50%;
  left:auto;
  transform: translateY(-50%);  
}
.free-left .free-position, .free-left.free-position{
  bottom: auto;
  right:auto;
  top:50%;
  left:var(--inner-gap);
  transform: translateY(-50%);  
}


.frees-bottom-0 .free-position{
  bottom: 0;
}
.frees-right-0 .free-position{
  right: 0;
}
.frees-top-0 .free-position{
  top: 0;
}
.frees-left-0 .free-position{
  left: 0;
}
/****************************************/

.img-left .free-position {
  right:auto;
  left:0;
}

@media (max-width:767.5px){
  .m-break {
    display: block;
  }    
}

@media (min-width:768px) {
  .text-md-center {
    text-align: center!important;
  }
  .text-md-left {
    text-align: left!important;
  }
}

/*********************************  GRID ********************/
.d-grid {
  display: grid;
}
.d-grid  > * {
  border-radius: var(--border-radius);
}

[class*="ds-grid"], .ds-grid {
  --grid-col: 1; /* ultramobile */
  --grid-col-sm: 2; /* mobile */
  --grid-col-md: 3;
  --grid-col-lg: 4;
  --grid-col-xl: 5;
  --current-col : var(--grid-col);
  display: grid;
  gap: var(--grid-gap);
  grid-auto-flow: dense;
}
.ds-grid-promo-3,.ds-grid-promo-3-invert {
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: calc(var(--gap) * 8);  
}
.ds-grid-promo-3 > :is(:nth-child(1), :nth-child(6n+5), :nth-child(6n+7), :nth-child(6n+11) ) { 
  grid-row: span 2;
  grid-column: span 2;
}
.ds-grid-promo-3-invert > :is(:nth-child(2), :nth-child(6n+4), :nth-child(6n+8) ) { 
  grid-row: span 2;
  grid-column: span 2;
}

.ds-grid-promo-mix {
	grid-template-columns: 1fr 1fr 1fr;
	grid-auto-rows: calc(var(--gap)* 10);
}
.ds-grid-promo-mix > :is(:nth-child(5n + 3)) {
  	grid-row: span 2;
	  grid-column: span 2;
}
.ds-grid-promo-mix-2 {
	grid-template-columns: 1fr 1fr 1fr 1fr;
	grid-auto-rows: calc(var(--gap)* 10);
}
.ds-grid-promo-mix-2 > :is(:nth-child(1), :nth-child(3n+4), :nth-child(4n+3)) {
  	grid-row: span 2;
	  grid-column: span 2;
}

@media (max-width:767.5px) { 
	[class*="ds-grid"]:not(.no-responsive), .ds-grid:not(.no-responsive) {
		--grid-gap: var(--gap);
	}
	
  [class*=ds-grid-promo]:not(.no-responsive){    
    grid-template-columns: 1fr;
    grid-auto-rows: calc(var(--gap) * 10); 
  }
  [class*=ds-grid-promo]:not(.no-responsive) > *{
    grid-column: auto;
    grid-row: auto;
  }  
  [class*=ds-grid-promo].no-responsive { 
    grid-auto-rows: calc(var(--gap) * 6); ;
  }
}

/******************************/
.ds-grid-1-1-2 {
  grid-template-columns: 1fr;
  grid-auto-rows: minmax(10em, auto);
}
@media (min-width:767.5px) {
  .ds-grid-1-1-2 {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: calc(var(--gap) * 6) calc(var(--gap) * 6);
  }
  .ds-grid-1-1-2 > div:first-child {
  grid-row: span 2;
  }
  .ds-grid-1-1-2 > div:nth-child(2) {
  grid-row: span 2;
  }
}
  .ds-grid-1-2-2 {
 	grid-template-columns: 1fr;
	 grid-auto-rows: 10em;
 }
   
  
@media (min-width:767.5px) {
  .ds-grid-1-2-2 {
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 10em 10em;
  }
  .ds-grid-1-2-2 > div:first-child {
    grid-row: span 2;
    }
  
  .ds-grid-1-2-2 p strong {
  font-size: var(--font-size-large);
  }
  .ds-banner-bottom {
  margin: 0 0;
  }
}

.ds-grid-responsive {
  grid-template-columns: repeat(var(--current-col), minmax(0, 1fr));
}
@media (min-width: 576px) {
  .ds-grid-responsive {
    --current-col: var(--grid-col-sm);
  }
}
@media (min-width:768px) {
  .ds-grid-responsive{
    --current-col: var(--grid-col-md);
  }
}
@media (min-width:1024px) {
  .ds-grid-responsive {
    --current-col: var(--grid-col-lg);
  }
}
@media (min-width:1200px) {
  .ds-grid-responsive{
    --current-col: var(--grid-col-xl);
  }
}
[class*=ds-columns] img {
aspect-ratio:auto!important;
}
.ds-columns-3 {
  columns: 3 380px;
  column-gap: var(--grid-gap);
}
.ds-columns-3 > div {
  margin-bottom: var(--grid-gap);
}

/* icons items */


.ds-icon:before {
  content: '';
  padding-right:1.5em;
  display: inline-block;
  width:1em;
  height:1em;
  background-size: contain;
  background-repeat: no-repeat;
}
.ds-icon-square:before {
  background-image: url("/wp-content/themes/ds_theme/assets/img/icons-building/square.svg");
}
.ds-icon-size:before {
  background-image: url("/wp-content/themes/ds_theme/assets/img/icons-building/size.svg");
}
.ds-icon-flats:before {
  background-image: url("/wp-content/themes/ds_theme/assets/img/icons-building/flats.svg");
}
.ds-icon-period:before {
  background-image: url("/wp-content/themes/ds_theme/assets/img/icons-building/time.svg");
}

/*********************/