/* ============================================================
   8. Clean JetTabs base + project-gallery tweaks
   (replaces jet-tabs-frontend.css to avoid its conflicting
    editor/responsive rules; visuals come from post-512.css)
   ============================================================ */

.jet-tabs { display: flex; flex-direction: column; }

.jet-tabs__control-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-bottom: 4px;
}
.jet-tabs__control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .2s ease, color .2s ease;
}
.jet-tabs__control-inner { display: flex; align-items: center; }
/* hide the empty "alls" control present in the source markup */
.jet-tabs__control .jet-tabs__control-inner:empty,
.jet-tabs__control:not(:has(.jet-tabs__label-text)) { display: none; }

.jet-tabs__content-wrapper {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.jet-tabs__content { display: none; width: 100%; }
.jet-tabs__content.active-content {
  display: block;
  animation: jetMoveUp .5s cubic-bezier(.26, .69, .37, .96) both;
}
@keyframes jetMoveUp {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: none; }
}

/* ---------- Gallery images — gap elimination ----------
   1. Remove the 20px kit-spacing margin Elementor adds between every widget.
   2. Switch images from inline-block to block so there is no descender gap.
   3. Make the anchor wrapper block so it can't add inline spacing.
   4. Apply object-fit:cover globally; per-image heights in post-908.css etc.
      already set the exact pixel height for each slot in the mosaic.        */
.jet-tabs__content .elementor-widget { margin-block-end: 0 !important; }
.jet-tabs__content .elementor-widget-image .elementor-widget-container { line-height: 0; font-size: 0; padding: 0 !important; }
.jet-tabs__content .elementor-widget-image a { display: block; line-height: 0; }
.jet-tabs__content .elementor-widget-image img { display: block; width: 100%; object-fit: cover; object-position: center; transition: opacity .3s ease; }
.jet-tabs__content .elementor-widget-image a:hover img { opacity: .85; }

/* ---------- Burger menu helper ----------
   (full burger styling already comes from post-228.css; we only
    add a body scroll-lock while the off-canvas menu is open)      */
.is-menu-open { overflow: hidden; }
.burger-navigation { overflow-y: auto; }

/* ============================================================
   9. Elementor responsive "hidden" utilities
   (these normally live in elementor frontend.min.css, which we
    do not bundle — re-added here with Elementor's breakpoints)
   ============================================================ */
@media (min-width:1367px) { .elementor .elementor-hidden-desktop { display: none !important; } }
@media (min-width:1201px) and (max-width:1366px) { .elementor .elementor-hidden-laptop { display: none !important; } }
@media (min-width:1025px) and (max-width:1200px) { .elementor .elementor-hidden-tablet_extra { display: none !important; } }
@media (min-width:881px)  and (max-width:1024px) { .elementor .elementor-hidden-tablet { display: none !important; } }
@media (min-width:768px)  and (max-width:880px)  { .elementor .elementor-hidden-mobile_extra { display: none !important; } }
@media (max-width:767px) { .elementor .elementor-hidden-mobile { display: none !important; } }

/* ============================================================
   10. Off-canvas menu (Elementor Pro widget, normally hidden by
       widget-off-canvas.min.css + opened by Elementor JS).
       We hide it by default and drive it with script.js.
   ============================================================ */
.e-off-canvas { display: none; }
.e-off-canvas.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 100000;
}
.e-off-canvas.is-open .e-off-canvas__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .8);
  animation: ocFade .3s ease both;
}
.e-off-canvas.is-open .e-off-canvas__main {
  position: fixed;
  inset: 0;
  display: flex;
  overflow-y: auto;
  animation: ocSlideIn .4s cubic-bezier(.26, .69, .37, .96) both;
}
.e-off-canvas.is-open .e-off-canvas__content { width: 100%; }
@keyframes ocFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ocSlideIn { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }

/* keep header above gallery */
header.elementor-location-header { position: relative; z-index: 1000; }

/* ============================================================
   Missing Elementor flex-container widget sizing rule.
   ============================================================ */
.e-con > .elementor-widget {
  width: var(--container-widget-width, auto);
  height: var(--container-widget-height, auto);
  flex-grow: var(--container-widget-flex-grow, 0);
  align-self: var(--container-widget-align-self, auto);
}

.jet-tabs__content .elementor-widget-image > .elementor-widget-container {
  height: 100%;
}
.jet-tabs__content .elementor-widget-image > .elementor-widget-container > a {
  display: block;
  height: 100%;
}

/* ============================================================
   e-con-full flex properties — apply directly (no .e-con-inner)
   ============================================================ */
.e-con-full {
  display: flex;
}
.e-con-full.e-flex {
  flex-direction:  var(--flex-direction,  column);
  flex-wrap:       var(--flex-wrap,       nowrap);
  align-items:     var(--align-items,     stretch);
  align-content:   var(--align-content,   normal);
  justify-content: var(--justify-content, normal);
  gap: var(--row-gap, 0px) var(--column-gap, 0px);
}

/* ============================================================
   Absolute/fixed widgets inside .e-con (new container system)
   ============================================================ */
.e-con {
  position: relative;
}
.e-con > .elementor-element.elementor-absolute {
  position: absolute;
}
.e-con > .elementor-element.elementor-fixed {
  position: fixed;
}
