/* Desktop / default accordion */
.qbee-hz-accordion {
  display: flex;
  width: 100%;
  height: 400px;
  overflow: hidden;
}
.qbee-hz-accordion .panel {
  flex: 1;
  position: relative;
  transition: flex 0.8s ease-in-out;
  overflow: hidden;
  cursor: pointer;
}
.qbee-hz-accordion .panel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.qbee-hz-accordion .panel .label {
  position: relative;
  bottom: 191px;
  left: 10px;
  color: #fff;
}
.qbee-hz-accordion .panel .extra {
  margin-top: 10px;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
}
.qbee-hz-accordion.accordion-hover .panel:hover { flex: 3; height: auto; max-height: 500px; }
.qbee-hz-accordion.accordion-hover .panel:hover .extra { opacity: 1; }
.qbee-hz-accordion.accordion-click .panel.active { flex: 3; }
.qbee-hz-accordion.accordion-click .panel.active .extra { opacity: 1; }

/* Overlay layer */
.qbee-hz-accordion .panel {
  position: relative; /* ensure positioning context */
}

.qbee-hz-accordion .panel::after {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-color: rgba(0,0,0,0.4); /* default overlay, adjustable */
  z-index: 1; /* sits above image, below text */
  pointer-events: none; /* don’t block clicks */
}

/* Ensure image stays behind overlay */
.qbee-hz-accordion .panel img {
  position: relative;
  z-index: 0;
}

/* Ensure text stays above overlay */
.qbee-hz-accordion .panel .panel_head,
.qbee-hz-accordion .panel .label,
.qbee-hz-accordion .panel .extra {
  position: relative;
  z-index: 2;
}

/* Mobile breakpoint: vertical accordion */
@media (max-width: 768px) {
  .qbee-hz-accordion {
    flex-direction: column;
    height: auto !important;
  }

  .qbee-hz-accordion .panel {
    flex: none;
    width: 100%;
    max-height: 60px;              /* collapsed height */
    overflow: hidden;
    position: relative;
    transition: max-height 0.6s ease-in-out;
  }

  /* Image fills panel */
  .qbee-hz-accordion .panel img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
  }

  /* Panel head bar (mobile only) */
  .qbee-hz-accordion .panel .panel_head {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: #00000022;
    color: #fff;
    padding: 8px 10px;
    z-index: 3;
  }

  /* Hide head when active */
  .qbee-hz-accordion.accordion-click .panel.active .panel_head {
    display: none;
  }

  /* Overlay text */
  .qbee-hz-accordion .panel .label {
    position: absolute;
    bottom: 20px;
    left: 20px;
    right: 20px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    color: #fff;
  }

  .qbee-hz-accordion .panel h3,
  .qbee-hz-accordion .panel .subtitle {
    margin: 0 0 5px 0;
    width: 100%;
    text-align: left;
  }

  .qbee-hz-accordion .panel .extra {
    opacity: 0;
    transition: opacity 0.6s ease-in-out;
    margin-top: 10px;
    z-index: 2;
  }

  /* Expanded state */
  .qbee-hz-accordion.accordion-click .panel.active {
    max-height: 600px; /* enough to show full content */
  }
  .qbee-hz-accordion.accordion-click .panel.active .extra {
    opacity: 1;
  }
}

/* Desktop: completely remove panel_head */
@media (min-width: 769px) {
  .qbee-hz-accordion .panel .panel_head {
    display: none;
  }
}
