.ubp-page{--ubp-primary:var(--wb-primary,#2e7d32);--ubp-dark:#173d1d;color:var(--wb-body-text,#27342b)}
.ubp-container{width:min(1180px,92%);margin:auto}.ubp-container-wide{width:min(1450px,96%);margin:auto}.ubp-container-full{width:100%;margin:auto}
.ubp-block{position:relative}.ubp-heading h1,.ubp-heading h2,.ubp-heading h3,.ubp-section-title{color:var(--ubp-dark);margin:0 0 12px}.ubp-heading p{color:#68756d;margin:0;font-size:17px}
.ubp-rich-text{font-size:17px;line-height:1.8}.ubp-rich-text img{max-width:100%;height:auto}.ubp-image{text-align:center;margin:0}.ubp-image img{max-width:100%;height:auto;border-radius:16px}.ubp-image figcaption{margin-top:8px;color:#78837b}

.ubp-video{width:100%;max-height:680px;border-radius:16px;background:#000}.ubp-video-frame{position:relative;padding-top:56.25%;overflow:hidden;border-radius:16px}.ubp-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ubp-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:10px;background:var(--ubp-primary);color:#fff!important;text-decoration:none;font-weight:800}.ubp-btn-light{background:#fff;color:#1c5d38!important}
.ubp-divider{border:0;margin:0}.ubp-spacer{height:var(--ubp-spacer-d,60px)}
.ubp-hero{background-size:cover!important;background-position:center!important;display:flex;align-items:center}.ubp-hero-bg{width:100%;min-height:inherit;display:flex;align-items:center}.ubp-hero-content{max-width:780px;padding:70px 0}.ubp-hero-content h1{font-size:clamp(38px,6vw,72px);line-height:1.05;margin:8px 0 18px;color:inherit}.ubp-hero-content p{font-size:18px;line-height:1.65;margin:0 0 24px}.ubp-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:900}
.ubp-cta{border-radius:20px;padding:38px;background:#f0f7f1}.ubp-cta h2{font-size:clamp(28px,4vw,42px);margin:0 0 12px}.ubp-cta p{font-size:17px;line-height:1.7;max-width:760px;margin:0 auto 22px}
.ubp-section-title{text-align:center;font-size:clamp(28px,4vw,40px);margin-bottom:28px}
.ubp-card-grid,.ubp-testimonial-grid{display:grid;grid-template-columns:repeat(var(--ubp-cols,3),minmax(0,1fr));gap:22px}.ubp-card{background:#fff;border:1px solid #e1e8e2;border-radius:16px;overflow:hidden;box-shadow:0 8px 26px rgba(27,65,42,.06)}.ubp-card-image{display:block;aspect-ratio:4/3;background:#eef3ef}.ubp-card-image img{width:100%;height:100%;object-fit:cover}.ubp-card-body{padding:18px}.ubp-card-body h3{margin:0 0 9px;color:#233b29}.ubp-card-body p{margin:0 0 12px;color:#68746c;line-height:1.55}.ubp-price{font-size:18px;font-weight:900;color:var(--ubp-primary);margin-bottom:10px}.ubp-text-link{color:var(--ubp-primary);font-weight:800;text-decoration:none}
.ubp-category-card{display:flex;flex-direction:column;border:1px solid #e1e8e2;border-radius:15px;overflow:hidden;text-decoration:none;color:#26362c;background:#fff}.ubp-category-card img{width:100%;aspect-ratio:1/1;object-fit:cover}.ubp-category-card strong{padding:14px;text-align:center}
.ubp-testimonial{margin:0;padding:24px;border-radius:16px;background:#f5f9f5;border:1px solid #e1e9e2}.ubp-testimonial p{font-size:17px;line-height:1.7;margin:0 0 16px}.ubp-testimonial footer{font-weight:800;color:#31533b}
.ubp-faq details{border:1px solid #e0e7e1;border-radius:12px;margin-bottom:10px;background:#fff}.ubp-faq summary{cursor:pointer;padding:16px 18px;font-weight:800}.ubp-faq details>div{padding:0 18px 18px;line-height:1.7;color:#657068}
.ubp-map iframe{width:100%!important;min-height:inherit!important;border:0!important}.ubp-empty{text-align:center;color:#7a847d;padding:30px}
@media(min-width:1001px){.ubp-hide-desktop{display:none!important}}
@media(min-width:701px) and (max-width:1000px){.ubp-hide-tablet{display:none!important}.ubp-card-grid,.ubp-testimonial-grid{grid-template-columns:repeat(min(var(--ubp-cols,3),2),minmax(0,1fr))}.ubp-spacer{height:var(--ubp-spacer-t,45px)}}
@media(max-width:700px){.ubp-hide-mobile{display:none!important}.ubp-card-grid,.ubp-testimonial-grid{grid-template-columns:1fr}.ubp-spacer{height:var(--ubp-spacer-m,30px)}.ubp-hero-content{padding:50px 0}.ubp-cta{padding:28px 20px}}


/* ===== UBCMS Portal Builder Batch 6 Frontend ===== */
.ubp-columns{
    display:grid;
    grid-template-columns:repeat(var(--ubp-cols,2),minmax(0,1fr));
    gap:var(--ubp-gap,24px);
}
.ubp-column{
    min-width:0;
}
.ubp-column img{
    max-width:100%;
    height:auto;
}
.ubp-section{
    position:relative;
    background-repeat:no-repeat;
    background-position:center;
}
@media(max-width:700px){
    .ubp-columns{
        grid-template-columns:1fr;
    }
}


/* ===== Batch 7 ===== */
.ubp-stats,
.ubp-feature-grid,
.ubp-pricing-grid{
  display:grid;
  grid-template-columns:repeat(var(--ubp-cols,3),minmax(0,1fr));
  gap:22px;
}
.ubp-stat{
  text-align:center;
  padding:25px 18px;
  border-radius:16px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(30,75,47,.10);
}
.ubp-stat strong{
  display:block;
  color:var(--ubp-primary);
  font-size:clamp(32px,5vw,52px);
  line-height:1.05;
}
.ubp-stat span{
  display:block;
  margin-top:8px;
  color:#66736a;
  font-weight:700;
}
.ubp-feature{
  padding:25px;
  border:1px solid #e0e8e1;
  border-radius:16px;
  background:#fff;
  text-align:center;
}
.ubp-feature-icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  margin:0 auto 15px;
  border-radius:16px;
  background:#edf7f0;
  color:var(--ubp-primary);
  font-size:23px;
}
.ubp-feature h3{margin:0 0 8px;color:#25392c}
.ubp-feature p{margin:0;color:#6d786f;line-height:1.6}
.ubp-pricing-card{
  padding:28px;
  border:1px solid #dfe7e0;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 26px rgba(26,67,42,.06);
}
.ubp-pricing-card h3{margin:0 0 10px;color:#263b2d}
.ubp-pricing-price{
  margin-bottom:14px;
  color:var(--ubp-primary);
  font-size:32px;
  font-weight:900;
}
.ubp-pricing-card ul{
  margin:18px 0;
  padding-left:20px;
}
.ubp-pricing-card li{margin:8px 0}
[data-ubp-animation]{
  opacity:0;
  transition:
    opacity .65s ease,
    transform .65s ease;
}
[data-ubp-animation="fade"]{transform:none}
[data-ubp-animation="fade-up"]{transform:translateY(28px)}
[data-ubp-animation="fade-down"]{transform:translateY(-28px)}
[data-ubp-animation="fade-left"]{transform:translateX(28px)}
[data-ubp-animation="fade-right"]{transform:translateX(-28px)}
[data-ubp-animation="zoom"]{transform:scale(.94)}
[data-ubp-animation].ubp-animated{
  opacity:1;
  transform:none;
}
@media(max-width:800px){
  .ubp-stats,.ubp-feature-grid,.ubp-pricing-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  .ubp-stats,.ubp-feature-grid,.ubp-pricing-grid{
    grid-template-columns:1fr;
  }
}


/* ===== Batch 8 Global Design System ===== */
.ubp-page{
  color:var(--ubp-body,#27342b);
  font-family:var(--ubp-body-font,inherit);
}
.ubp-page h1,
.ubp-page h2,
.ubp-page h3,
.ubp-page h4,
.ubp-page h5,
.ubp-page h6{
  color:var(--ubp-heading,#173d1d);
  font-family:var(--ubp-heading-font,inherit);
}
.ubp-container{
  width:min(var(--ubp-container,1180px),92%);
}
.ubp-container-wide{
  width:min(var(--ubp-container-wide,1450px),96%);
}
.ubp-btn{
  border-radius:var(--ubp-button-radius,10px);
}
.ubp-card,
.ubp-feature,
.ubp-pricing-card,
.ubp-stat,
.ubp-testimonial,
.ubp-category-card{
  border-radius:var(--ubp-card-radius,16px);
}


/* ===== Batch 9 Unified Website Editor ===== */
.ubp-hero-slider{position:relative;overflow:hidden;background:#14261b}
.ubp-hero-slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  background-size:cover;
  background-position:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .7s ease;
}
.ubp-hero-slide.active{position:relative;opacity:1;pointer-events:auto}
.ubp-hero-slide-overlay{position:absolute;inset:0;background:rgba(0,0,0,.40)}
.ubp-hero-slide .ubp-container{position:relative;z-index:2}
.ubp-hero-slide-content{max-width:760px;padding:80px 0;color:#fff}
.ubp-hero-slide-content h1{color:#fff!important;font-size:clamp(38px,6vw,72px);line-height:1.05;margin:8px 0 18px}
.ubp-hero-slide-content p{font-size:18px;line-height:1.65;margin-bottom:24px}
.ubp-slider-nav{
  position:absolute;top:50%;z-index:5;transform:translateY(-50%);
  width:44px;height:44px;border:0;border-radius:50%;
  background:rgba(255,255,255,.86);font-size:28px;cursor:pointer
}
.ubp-slider-nav.prev{left:18px}.ubp-slider-nav.next{right:18px}
.ubp-slider-dots{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:7px}
.ubp-slider-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55)}
.ubp-slider-dots button.active{background:#fff;transform:scale(1.2)}

.ubp-brands{display:grid;grid-template-columns:repeat(var(--ubp-cols,5),minmax(0,1fr));gap:20px;align-items:center}
.ubp-brand{display:grid;place-items:center;min-height:90px;padding:15px;border:1px solid #e3e9e4;border-radius:var(--ubp-card-radius,16px);background:#fff}
.ubp-brand img{max-width:100%;max-height:70px;object-fit:contain}

.ubp-newsletter{text-align:center;max-width:850px;margin:auto}
.ubp-newsletter h2,.ubp-countdown-wrap h2{font-size:clamp(28px,4vw,42px);margin:0 0 10px}
.ubp-newsletter p,.ubp-countdown-wrap p{font-size:17px;line-height:1.65;margin:0 0 22px}
.ubp-newsletter-form{display:flex;gap:9px;max-width:650px;margin:auto}
.ubp-newsletter-form input{flex:1;min-width:0;padding:13px 15px;border:1px solid #ccd8ce;border-radius:var(--ubp-button-radius,10px);font:inherit}

.ubp-countdown-wrap{text-align:center}
.ubp-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,130px));justify-content:center;gap:12px;margin:25px 0}
.ubp-countdown>div{padding:18px 10px;border-radius:16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22)}
.ubp-countdown strong{display:block;font-size:34px;line-height:1}
.ubp-countdown span{display:block;margin-top:7px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}

@media(max-width:700px){
  .ubp-brands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ubp-newsletter-form{flex-direction:column}
  .ubp-countdown{grid-template-columns:repeat(2,minmax(0,130px))}
  .ubp-slider-nav{width:38px;height:38px}
}

/* =========================================================
   UBCMS GALLERY ENGINE v14
   One clean gallery system: Wrapper -> Engine -> Row -> Item
   ========================================================= */

/* ---------- SHARED WRAPPER ---------- */
.ubp-gallery-wrapper{
  --ubp-gallery-max:1180px;
  --ubp-gallery-gap:18px;
  --ubp-gallery-radius:14px;
  --ubp-gallery-height:260px;
  --ubp-gallery-cols-desktop:3;
  --ubp-gallery-cols-tablet:2;
  --ubp-gallery-cols-mobile:1;

  width:min(100%,var(--ubp-gallery-max));
  max-width:var(--ubp-gallery-max);
  box-sizing:border-box;
}

.ubp-gallery-wrapper-center{margin-inline:auto}
.ubp-gallery-wrapper-left{margin-left:0;margin-right:auto}
.ubp-gallery-wrapper-right{margin-left:auto;margin-right:0}
.ubp-gallery-wrapper-full{width:100%;max-width:none;margin-inline:0}

/* ---------- BALANCED GRID ---------- */
.ubp-gallery-grid-engine{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:var(--ubp-gallery-gap);
}

/*
  Each row is explicitly generated by PHP.
  Therefore the final incomplete row can be centered independently.
*/
.ubp-gallery-row{
  width:100%;
  display:flex;
  flex-wrap:nowrap;
  gap:var(--ubp-gallery-gap);
  align-items:flex-start;
  box-sizing:border-box;
}

.ubp-gallery-wrapper-center .ubp-gallery-row{justify-content:center}
.ubp-gallery-wrapper-left .ubp-gallery-row{justify-content:flex-start}
.ubp-gallery-wrapper-right .ubp-gallery-row{justify-content:flex-end}
.ubp-gallery-wrapper-full .ubp-gallery-row{justify-content:flex-start}

/*
  Critical geometry:
  item width is based on the CONFIGURED number of columns, not the number
  of images in the row. This prevents 1 or 2 images from stretching.
*/
.ubp-gallery-row > .ubp-gallery-item{
  flex:0 0 calc(
    (100% - ((var(--ubp-gallery-cols-desktop) - 1) * var(--ubp-gallery-gap)))
    / var(--ubp-gallery-cols-desktop)
  );
  width:calc(
    (100% - ((var(--ubp-gallery-cols-desktop) - 1) * var(--ubp-gallery-gap)))
    / var(--ubp-gallery-cols-desktop)
  );
  max-width:calc(
    (100% - ((var(--ubp-gallery-cols-desktop) - 1) * var(--ubp-gallery-gap)))
    / var(--ubp-gallery-cols-desktop)
  );
  min-width:0;
  box-sizing:border-box;
}

/* ---------- IMAGE ITEM ---------- */
.ubp-gallery-item{
  position:relative;
  margin:0;
  min-width:0;
  overflow:hidden;
  border-radius:var(--ubp-gallery-radius);
  background:#f3f5f4;
  box-sizing:border-box;
}

.ubp-gallery-item img{
  display:block;
  width:100%;
  max-width:100%;
  height:var(--ubp-gallery-height);
  object-fit:cover;
  transition:transform .28s ease,opacity .28s ease,filter .28s ease;
}

.ubp-gallery-ratio-1x1 img{aspect-ratio:1/1;height:auto}
.ubp-gallery-ratio-4x3 img{aspect-ratio:4/3;height:auto}
.ubp-gallery-ratio-16x9 img{aspect-ratio:16/9;height:auto}
.ubp-gallery-ratio-3x4 img{aspect-ratio:3/4;height:auto}
.ubp-gallery-ratio-auto img{height:auto;aspect-ratio:auto}

.ubp-gallery-open{
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:none;
  cursor:zoom-in;
}

.ubp-gallery-shadow{
  box-shadow:0 10px 25px rgba(17,52,31,.14);
}

.ubp-gallery-hover-zoom:hover img{transform:scale(1.06)}
.ubp-gallery-hover-fade:hover img{opacity:.78}
.ubp-gallery-hover-lift{transition:transform .25s ease,box-shadow .25s ease}
.ubp-gallery-hover-lift:hover{
  transform:translateY(-5px);
  box-shadow:0 15px 32px rgba(17,52,31,.17);
}

.ubp-gallery-item figcaption{
  padding:10px 12px;
  background:#fff;
  color:#58645c;
  font-size:13px;
  line-height:1.45;
}

.ubp-gallery-caption-overlay figcaption,
.ubp-gallery-caption-hover figcaption{
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.72));
  padding:34px 12px 11px;
}

.ubp-gallery-caption-hover figcaption{
  opacity:0;
  transition:opacity .25s ease;
}
.ubp-gallery-caption-hover:hover figcaption{opacity:1}

/* ---------- LIST ---------- */
.ubp-gallery-list-engine{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:var(--ubp-gallery-gap);
}

.ubp-gallery-wrapper-center .ubp-gallery-list-engine{align-items:center}
.ubp-gallery-wrapper-left .ubp-gallery-list-engine{align-items:flex-start}
.ubp-gallery-wrapper-right .ubp-gallery-list-engine{align-items:flex-end}

.ubp-gallery-list-engine > .ubp-gallery-item{
  width:min(100%,900px);
}

.ubp-gallery-list-engine > .ubp-gallery-item img{
  height:auto;
  aspect-ratio:auto;
}

/* ---------- MASONRY ---------- */
.ubp-gallery-masonry-engine{
  width:100%;
  column-count:var(--ubp-gallery-cols-desktop);
  column-gap:var(--ubp-gallery-gap);
}

.ubp-gallery-masonry-engine > .ubp-gallery-item{
  display:inline-block;
  width:100%;
  margin:0 0 var(--ubp-gallery-gap);
  break-inside:avoid;
}

.ubp-gallery-masonry-engine > .ubp-gallery-item img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
}

/* ---------- CAROUSEL ---------- */
.ubp-gallery-carousel-engine{
  position:relative;
  width:100%;
  display:flex;
  gap:var(--ubp-gallery-gap);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:0 0 4px;
}

.ubp-gallery-carousel-engine::-webkit-scrollbar{display:none}

.ubp-gallery-carousel-engine > .ubp-gallery-item{
  flex:0 0 calc(
    (100% - ((var(--ubp-gallery-cols-desktop) - 1) * var(--ubp-gallery-gap)))
    / var(--ubp-gallery-cols-desktop)
  );
  max-width:calc(
    (100% - ((var(--ubp-gallery-cols-desktop) - 1) * var(--ubp-gallery-gap)))
    / var(--ubp-gallery-cols-desktop)
  );
  scroll-snap-align:start;
}

.ubp-gallery-wrapper-center .ubp-gallery-carousel-engine{justify-content:center}
.ubp-gallery-wrapper-left .ubp-gallery-carousel-engine{justify-content:flex-start}
.ubp-gallery-wrapper-right .ubp-gallery-carousel-engine{justify-content:flex-end}

/* With overflow, normal scrolling takes over and justify-content is reset by JS class. */
.ubp-gallery-carousel-engine.ubp-gallery-overflowing{justify-content:flex-start!important}

.ubp-gallery-carousel-nav{
  position:absolute;
  z-index:5;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  box-shadow:0 6px 18px rgba(0,0,0,.15);
  font-size:26px;
  cursor:pointer;
}
.ubp-gallery-carousel-nav.prev{left:10px}
.ubp-gallery-carousel-nav.next{right:10px}

/* ---------- LOAD FAILURE ---------- */
.ubp-gallery-item.ubp-image-error{
  min-height:140px;
  display:grid;
  place-items:center;
  border:1px dashed #c9d2cc;
  background:#f6f8f6;
}
.ubp-gallery-item.ubp-image-error::after{
  content:"Image could not be loaded";
  padding:16px;
  color:#6d776f;
  font-size:13px;
}
.ubp-gallery-item.ubp-image-error img{display:none!important}

/* ---------- LIGHTBOX ---------- */
.ubp-gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:rgba(5,10,7,.91);
}
.ubp-gallery-lightbox[hidden]{display:none!important}
.ubp-gallery-lightbox-inner{
  position:relative;
  max-width:min(1400px,94vw);
  max-height:92vh;
  text-align:center;
}
.ubp-gallery-lightbox img{
  max-width:94vw;
  max-height:84vh;
  width:auto;
  height:auto;
  border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.ubp-gallery-lightbox-caption{margin-top:10px;color:#fff}
.ubp-gallery-lightbox-close{
  position:absolute;
  right:-16px;
  top:-16px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#222;
  font-size:24px;
  cursor:pointer;
}

/* ---------- TABLET ---------- */
@media(min-width:701px) and (max-width:1000px){
  .ubp-gallery-row{
    flex-wrap:wrap;
  }

  .ubp-gallery-row > .ubp-gallery-item{
    flex-basis:calc(
      (100% - ((var(--ubp-gallery-cols-tablet) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-tablet)
    );
    width:calc(
      (100% - ((var(--ubp-gallery-cols-tablet) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-tablet)
    );
    max-width:calc(
      (100% - ((var(--ubp-gallery-cols-tablet) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-tablet)
    );
  }

  .ubp-gallery-masonry-engine{
    column-count:var(--ubp-gallery-cols-tablet);
  }

  .ubp-gallery-carousel-engine > .ubp-gallery-item{
    flex-basis:calc(
      (100% - ((var(--ubp-gallery-cols-tablet) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-tablet)
    );
    max-width:calc(
      (100% - ((var(--ubp-gallery-cols-tablet) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-tablet)
    );
  }
}

/* ---------- MOBILE ---------- */
@media(max-width:700px){
  .ubp-gallery-wrapper{
    width:100%;
    max-width:100%;
  }

  .ubp-gallery-row{
    flex-wrap:wrap;
  }

  .ubp-gallery-row > .ubp-gallery-item{
    flex-basis:calc(
      (100% - ((var(--ubp-gallery-cols-mobile) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-mobile)
    );
    width:calc(
      (100% - ((var(--ubp-gallery-cols-mobile) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-mobile)
    );
    max-width:calc(
      (100% - ((var(--ubp-gallery-cols-mobile) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-mobile)
    );
  }

  .ubp-gallery-masonry-engine{
    column-count:var(--ubp-gallery-cols-mobile);
  }

  .ubp-gallery-carousel-engine > .ubp-gallery-item{
    flex-basis:calc(
      (100% - ((var(--ubp-gallery-cols-mobile) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-mobile)
    );
    max-width:calc(
      (100% - ((var(--ubp-gallery-cols-mobile) - 1) * var(--ubp-gallery-gap)))
      / var(--ubp-gallery-cols-mobile)
    );
  }

  .ubp-gallery-lightbox{padding:15px}
}

/* =========================================================
   UBCMS FRONTEND CENTER RESTORE v21
   Center page-builder content against the browser viewport,
   not against a shifted/narrow parent wrapper.
   ========================================================= */
@media (min-width:1001px){
  .ubp-page > .ubp-block > .ubp-container,
  .ubp-page > .ubp-block > .ubp-container-wide,
  .ubp-page .ubp-section > .ubp-container,
  .ubp-page .ubp-section > .ubp-container-wide{
    position:relative;
    left:50%;
    transform:translateX(-50%);
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .ubp-page .ubp-gallery-wrapper.ubp-gallery-wrapper-center{
    position:relative;
    left:50%;
    transform:translateX(-50%);
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .ubp-page .ubp-columns{
    margin-left:auto;
    margin-right:auto;
  }
}