/*
 * Our Projects page. The heading's rules are WordPress' own (post-574.css: the
 * containers/heading of the page); the project grid, the slideshow cards and
 * the full-screen viewer are this site's own small CSS (no Elementor), tuned
 * to match the WordPress page: card widths in percent of the row, 400px tall
 * cards (350px on tablet), 25px arrows, 6px dots, a dimmed first slide with
 * the caption over it.
 */
.elementor-574 .elementor-element.elementor-element-1404752{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:50px;--padding-bottom:50px;--padding-left:50px;--padding-right:50px;}
.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}
.elementor-574 .elementor-element.elementor-element-dc79c79{text-align:center;}
.elementor-574 .elementor-element.elementor-element-dc79c79 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-weight:600;color:#000000;}
.elementor-574 .elementor-element.elementor-element-04a8fe2{--display:flex;}
@media(max-width:1024px){.elementor-574 .elementor-element.elementor-element-1404752{--margin-top:99px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}}

.elementor-574 .elementor-element.elementor-element-a782149{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}

.elementor-574 .elementor-element.elementor-element-de7114a{--spacer-size:50px;}
/* --- grid ---------------------------------------------------------------- */
.dp-section { box-sizing: border-box; padding: 10px; width: 100%; }
.dp-grid { display: flex; flex-wrap: wrap; max-width: 1600px; margin: 0 auto; }
.dp-card { box-sizing: border-box; padding: 10px; width: var(--dp-w-desktop); flex: 0 0 auto; }
@media (max-width: 1024px) {
  .dp-grid { justify-content: center; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-card { width: var(--dp-w-tablet); }
}
@media (max-width: 767px) {
  .dp-card { width: 100%; }
}

/* --- slideshow card -------------------------------------------------------- */
.dp-slider { position: relative; overflow: hidden; height: 400px; background: #fff; }
@media (max-width: 1024px) { .dp-slider { height: 350px; } }
@media (max-width: 767px) { .dp-slider { height: var(--dp-h-mobile, 350px); } }
.dp-slider .swiper-wrapper { height: 100%; }
.dp-slide { position: relative; height: 100%; overflow: hidden; }
.dp-slide__link { display: block; height: 100%; cursor: zoom-in; }
.dp-slide__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dp-slide__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.31); pointer-events: none; }
.dp-slide__caption {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  padding: 50px; box-sizing: border-box; pointer-events: none; text-align: center;
  font-family: "Montserrat", sans-serif; font-size: 25px; line-height: 35px; font-weight: 600; color: #fff;
}
@media (max-width: 1024px) { .dp-slide__caption { font-size: 23px; } .dp-slide__caption > span { max-width: 100%; } }
@media (max-width: 767px) { .dp-slide__caption { font-size: 21px; } }
.dp-slide__caption > span { display: block; max-width: 80%; }

.dp-nav {
  position: absolute; top: 50%; z-index: 1; width: 25px; height: 25px; margin: -12.5px 0 0; padding: 0;
  border: 0; background: none; color: rgba(237, 237, 237, 0.9); font-size: 25px; line-height: 1; cursor: pointer;
}
.dp-nav svg { display: block; width: 1em; height: 1em; fill: currentColor; }
.dp-nav--prev { left: 10px; }
.dp-nav--next { right: 10px; }
.dp-nav:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.dp-slider .swiper-pagination { position: absolute; bottom: 5px; left: 0; width: 100%; height: 24px; z-index: 10; text-align: center; line-height: 24px; }
.dp-slider .swiper-pagination.swiper-pagination-bullets .swiper-pagination-bullet { width: 6px; height: 6px; margin: 0 6px; background: #000; opacity: 0.2; border-radius: 50%; display: inline-block; }
.dp-slider .swiper-pagination.swiper-pagination-bullets .swiper-pagination-bullet-active { background: #fff; opacity: 1; }
.dp-slider--single .dp-nav, .dp-slider--single .swiper-pagination { display: none; }

/* --- full-screen viewer ------------------------------------------------------ */
.dp-lb { position: fixed; inset: 0; z-index: 100000; display: none; background: rgba(0, 0, 0, 0.92); color: rgba(237, 237, 237, 0.9); }
.dp-lb.is-open { display: block; }
.dp-lb__bar { position: absolute; top: 0; left: 0; right: 0; z-index: 3; height: 60px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; }
.dp-lb__counter { font: 15px "Montserrat", sans-serif; color: #fff; }
.dp-lb__tools { display: flex; align-items: center; gap: 22px; }
.dp-lb button { border: 0; background: none; padding: 0; color: inherit; cursor: pointer; line-height: 1; }
.dp-lb button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.dp-lb__tool { font-size: 20px; }
.dp-lb__tool svg, .dp-lb__nav svg { display: block; width: 1em; height: 1em; fill: currentColor; }
.dp-lb__swiper { position: absolute; inset: 0; }
.dp-lb__swiper .swiper-slide { box-sizing: border-box; padding: 60px 90px; display: flex; align-items: center; justify-content: center; }
.dp-lb__swiper .swiper-zoom-container { width: 100%; height: 100%; }
.dp-lb__swiper img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; }
.dp-lb__nav { position: absolute; top: 50%; z-index: 3; width: 25px; height: 25px; margin-top: -12.5px; font-size: 25px; }
.dp-lb__nav--prev { left: 30px; }
.dp-lb__nav--next { right: 30px; }
.dp-lb--single .dp-lb__nav { display: none; }
@media (max-width: 767px) {
  .dp-lb__swiper .swiper-slide { padding: 60px 10px; }
  .dp-lb__nav--prev { left: 6px; }
  .dp-lb__nav--next { right: 6px; }
}
html.dp-lb-open { overflow: hidden; }
