/* Requested geometry corrections; native Themify modules and their content stay editable. */
#themify_builder_content-71.themify_builder .ermesa-project-header+.ermesa-project-grid-row{border-top:0;padding-top:0}
#themify_builder_content-71.themify_builder .ermesa-project-header+.ermesa-project-grid-row>.row_inner{border-top:1px solid #d9ddd3;padding-top:46px;box-sizing:border-box}

/* Equal gallery frames: crop photograph edges rather than stretching the source. */
.themify_builder:where(:has(.em-row)) .em-gallery>.row_inner{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.themify_builder:where(:has(.em-row)) .em-gallery-photo>.image-wrap{position:relative;aspect-ratio:4/3;height:auto;overflow:hidden}
.themify_builder:where(:has(.em-row)) .em-gallery-photo>.image-wrap>a{position:absolute;inset:0;display:block;width:100%;height:100%}
.themify_builder:where(:has(.em-row)) .em-gallery-photo>.image-wrap img{display:block;width:100%;height:100%;object-fit:cover;min-height:0}

/* A flexible image frame follows the full height of its neighbouring copy. */
.themify_builder:where(:has(.em-row)) :is(.em-hero,.em-living)>.row_inner>.module_column:has(>.em-photo){display:flex;flex-direction:column;min-height:500px;align-self:stretch}
.themify_builder:where(:has(.em-row)) .em-living>.row_inner>.module_column:has(>.em-detail-photo){min-height:670px}
.themify_builder:where(:has(.em-row)) :is(.em-hero-photo,.em-detail-photo){display:flex;flex-direction:column;flex:1 1 auto;width:100%;height:auto;min-height:0}
.themify_builder:where(:has(.em-row)) :is(.em-hero-photo,.em-detail-photo)>.image-wrap{position:relative;flex:1 1 auto;width:100%;height:auto;min-height:0;overflow:hidden}
.themify_builder:where(:has(.em-row)) :is(.em-hero-photo,.em-detail-photo)>.image-wrap>a{position:absolute;inset:0;display:block;width:100%;height:100%}
.themify_builder:where(:has(.em-row)) :is(.em-hero-photo,.em-detail-photo)>.image-wrap img{display:block;width:100%;height:100%;min-height:0;object-fit:cover}

/* Keep the complete news chevrons inside generous, transparent hit areas. */
.themify_builder:where(:has(.em-row)) .em-news-slider .carousel-nav-wrap{position:relative;box-sizing:border-box;min-height:40px;padding:4px 0;margin-top:12px;gap:8px;align-items:center;overflow:visible}
.themify_builder:where(:has(.em-row)) .em-news-slider .carousel-nav-wrap a{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:0;margin:0;overflow:visible!important;background:transparent;border:0;box-shadow:none}
.themify_builder:where(:has(.em-row)) .em-news-slider .carousel-nav-wrap a::after{position:absolute;left:50%;top:50%;margin:0;display:block;width:10px;height:10px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.themify_builder:where(:has(.em-row)) .em-news-slider .carousel-nav-wrap .carousel-prev::after{transform:translate(-50%,-50%) rotate(-135deg)}
.themify_builder:where(:has(.em-row)) .em-news-slider .carousel-nav-wrap a:is(:hover,:focus,:active){background:transparent!important;box-shadow:none}
.themify_builder:where(:has(.em-row)) .em-news-counter{bottom:13px}

/* Switch before tablet-width hero columns and four statistics become cramped. */
@media(max-width:1024px){
 /* Let the project introduction use the same full column as the image below it. */
 .themify_builder:where(:has(.em-row)) .em-hero>.row_inner>.module_column:first-child{box-sizing:border-box;width:100%;max-width:none}
 .themify_builder:where(:has(.em-row)) .em-hero :is(.em-hero-title,.em-hero-summary,.tb_text_wrap){width:100%;max-width:none}
 .themify_builder:where(:has(.em-row)) .em-hero :is(h1,.em-hero-summary) br{display:none}
 .themify_builder:where(:has(.em-row)) .em-hero .em-text-link{display:flex;justify-content:space-between;width:100%;box-sizing:border-box}
 .themify_builder:where(:has(.em-row)) :is(.em-hero,.em-numbers,.em-living)>.row_inner{grid-template-areas:none}
 .themify_builder:where(:has(.em-row)) :is(.em-hero,.em-numbers,.em-living)>.row_inner>.module_column{grid-area:auto}
 .themify_builder:where(:has(.em-row)) .em-hero>.row_inner{grid-template-columns:1fr;width:100%;padding:0;gap:0}
 .themify_builder:where(:has(.em-row)) .em-hero>.row_inner>.module_column:first-child{padding:14px var(--em-space) 28px}
 .themify_builder:where(:has(.em-row)) .em-hero>.row_inner>.module_column:has(>.em-hero-photo){min-height:clamp(300px,62vw,560px)}
 .themify_builder:where(:has(.em-row)) .em-hero .em-hero-photo{height:auto;aspect-ratio:auto;min-height:0}
 .themify_builder:where(:has(.em-row)) .em-hero .em-hero-photo img{aspect-ratio:auto;min-height:0}
 .themify_builder:where(:has(.em-row)) .em-numbers>.row_inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;align-items:start}
 .themify_builder:where(:has(.em-row)) .em-numbers>.row_inner>.module_column{padding:0;border:0;box-sizing:border-box}
 .themify_builder:where(:has(.em-row)) .em-numbers .em-number{font-size:clamp(22px,6.3vw,34px);line-height:1.25;min-height:1.25em;letter-spacing:-.045em;white-space:nowrap}
 .themify_builder:where(:has(.em-row)) .em-numbers .em-number-label{padding-top:10px;line-height:1.7}
 .themify_builder:where(:has(.em-row)) .em-living>.row_inner{grid-template-columns:1fr}
 .themify_builder:where(:has(.em-row)) .em-living>.row_inner>.module_column:has(>.em-detail-photo){min-height:clamp(320px,62vw,520px)}
 .themify_builder:where(:has(.em-row)) .em-living .em-detail-photo{height:auto;min-height:0}
 .themify_builder:where(:has(.em-row)) .em-living .em-detail-photo img{min-height:0}
}
@media(max-width:760px){
 .themify_builder:where(:has(.em-row)) .em-gallery>.row_inner{grid-template-columns:1fr;gap:20px}
 .themify_builder:where(:has(.em-row)) .em-gallery-photo>.image-wrap{aspect-ratio:4/3}
}
