/* =============================================
   Horizontal Accordion — accordion.css v1.2
============================================= */

/* ---- DESKTOP: horizontal accordion ---- */

.ha-accordion {
  display: flex;
  width: 100%;
  height: 360px;
  gap: 4px;
  border-radius: 12px;
  overflow: hidden;
}

.ha-panel {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  border-radius: 8px;
  flex: 0.4;
  min-width: 48px;
  transition: flex 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.ha-panel.ha-active {
  flex: 3.5;
}

.ha-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 0.5s ease;
}

.ha-panel.ha-active .ha-bg {
  transform: scale(1.05);
}

.ha-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.80) 0%,
    rgba(0, 0, 0, 0.15) 50%,
    transparent 100%
  );
}

/* vertical text label — desktop collapsed */
.ha-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 16px;
  opacity: 1;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.ha-panel.ha-active .ha-label {
  opacity: 0;
}
.ha-label span {
  writing-mode: vertical-rl;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}

/* arrow — hidden on desktop */
.ha-arrow {
  display: none;
}

/* content — hidden until panel is active */
.ha-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 18px;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s ease 0.1s, transform 0.35s ease 0.1s;
  pointer-events: none;
}
.ha-panel.ha-active .ha-content {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.ha-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  text-transform: uppercase;
}

.ha-title {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 4px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ha-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}


/* =============================================
   MOBILE ≤ 768px — vertical card list
============================================= */
@media (max-width: 768px) {

  .ha-accordion {
    flex-direction: column;
    height: auto !important;
    gap: 8px;
    border-radius: 0;
    overflow: visible;
  }

  .ha-panel {
    flex: none !important;
    width: 100%;
    height: 110px;
    min-width: unset;
    border-radius: 10px;
    transition: none;
  }

  .ha-bg {
    transition: none;
    transform: none !important;
  }

  /* left-to-right gradient — darkens left where text sits */
  .ha-overlay {
    background: linear-gradient(
      to right,
      rgba(0, 0, 0, 0.85) 0%,
      rgba(0, 0, 0, 0.55) 45%,
      rgba(0, 0, 0, 0.05) 100%
    ) !important;
  }

  /* hide rotated label */
  .ha-label {
    display: none !important;
  }

  /* show yellow arrow */
  .ha-arrow {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 14px;
    bottom: 16px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #c8f000;
    color: #000;
    font-size: 16px;
    font-weight: 700;
    z-index: 3;
    pointer-events: none;
    padding-left: 1px;
  }

  /* FORCE content visible — override the desktop opacity:0 */
  .ha-content {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto;
    left: 56px !important;
    right: 12px;
    bottom: 0;
    padding: 0 0 14px 0 !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .ha-tag {
    font-size: 9px;
    padding: 2px 7px;
    margin-bottom: 5px;
  }

  .ha-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    margin: 0 0 3px;
  }

  .ha-sub {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.70);
  }
}


/* =============================================
   LINK WRAPPER
============================================= */

/* <a> wrapping the arrow + content — fill the clickable area */
.ha-link {
  display: block;
  position: absolute;
  inset: 0;
  text-decoration: none;
  color: inherit;
  z-index: 2;
}

/* keep arrow and content inside the link layer */
.ha-link .ha-arrow,
.ha-link .ha-content {
  position: absolute;
}

/* cursor upgrade on panels that have a link */
.ha-has-link {
  cursor: pointer;
}

/* subtle hover brightness on linked panels */
.ha-has-link:hover .ha-bg {
  filter: brightness(1.08);
}

/* on mobile the arrow turns slightly brighter on tap */
@media (max-width: 768px) {
  .ha-has-link:active .ha-arrow {
    background: #dfff00;
  }
}
