/**
 * AC | Expandable Card — frontend.
 * O card é uma faixa flex [media | panel]. Os estados (fechado/ativo/colapsado)
 * vêm de classes aplicadas pelo JS no track pai (.ac-exp-carousel__track) e por
 * .is-active no próprio card. Ver css/ac-expandable-carousel.css + js.
 */

.ac-exp-card {
  position: relative;
  display: flex;
  overflow: hidden;
  min-width: 0;
  background-color: #033936;
  flex: 1 1 0; /* fechado: largura igual entre cards */
  transition: flex-grow var(--ac-exp-speed, 0.5s) cubic-bezier(0.4, 0, 0.2, 1), flex-basis var(--ac-exp-speed, 0.5s) cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- Media (imagem + overlay + ribbon + chevron) --- */
.ac-exp-card__media {
  position: relative;
  /* basis 0 (não 'auto') pra ser interpolável: fechado preenche o card via
   * flex-grow; ativo vira 240px fixo. Animar de auto→px não funciona. */
  flex: 1 1 0;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: block;
  transition: flex-grow var(--ac-exp-speed, 0.5s) cubic-bezier(0.4, 0, 0.2, 1),
              flex-basis var(--ac-exp-speed, 0.5s) cubic-bezier(0.4, 0, 0.2, 1);
}
.ac-exp-card.is-active .ac-exp-card__media {
  flex: 0 0 240px;
}
.ac-exp-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.35;
  transition: opacity 0.45s ease;
}
.ac-exp-card.is-active .ac-exp-card__img {
  opacity: 1;
}
.ac-exp-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(87deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 60%);
  pointer-events: none;
}

/* Ribbon vertical (Subheader/lg). */
.ac-exp-card__ribbon {
  position: absolute;
  left: 14px;
  bottom: 24px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  transform-origin: center;
  font-family: Raleway, sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #FFD16C;
  white-space: nowrap;
  pointer-events: none;
}

/* Indicador de abertura (open-indicator do DS): barra branca vertical na borda
 * direita (2px) + chevron. Quando fechado, a barra "respira" de 2px→10px e o
 * chevron desliza pra esquerda em sincronia — efeito de abrir vindo da direita. */
.ac-exp-card__indicator {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 46px;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.ac-exp-card__bar {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 2px;
  background-color: #ffffff;
}
.ac-exp-card__chevron {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  display: flex;
  color: #ffffff;
}
.ac-exp-card__chevron svg { display: block; }
.ac-exp-card:not(.is-active) .ac-exp-card__bar {
  animation: ac-exp-bar 2.4s ease-in-out infinite;
}
.ac-exp-card:not(.is-active) .ac-exp-card__chevron {
  animation: ac-exp-chev 2.4s ease-in-out infinite;
}
.ac-exp-card.is-active .ac-exp-card__indicator { opacity: 0; }
/* 2 pulsos rápidos no começo e depois volta/descansa lento. */
@keyframes ac-exp-bar {
  0%   { width: 2px; }
  8%   { width: 10px; }
  16%  { width: 2px; }
  24%  { width: 10px; }
  40%  { width: 2px; }
  100% { width: 2px; }
}
@keyframes ac-exp-chev {
  0%   { transform: translateY(-50%) translateX(0); }
  8%   { transform: translateY(-50%) translateX(-8px); }
  16%  { transform: translateY(-50%) translateX(0); }
  24%  { transform: translateY(-50%) translateX(-8px); }
  40%  { transform: translateY(-50%) translateX(0); }
  100% { transform: translateY(-50%) translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .ac-exp-card:not(.is-active) .ac-exp-card__bar,
  .ac-exp-card:not(.is-active) .ac-exp-card__chevron { animation: none; }
}

/* --- Painel branco (ícone + título + texto) --- */
/* basis sempre 0; cresce via flex-grow (0→1, interpolável). Nada de 'auto'.
 * SEM fade de opacidade: o branco só encolhe/cresce a largura — assim nunca
 * aparece o verde do card (#033936) por trás durante o fechamento. */
.ac-exp-card__panel {
  flex: 0 1 0;
  min-width: 0;
  overflow: hidden;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  transition: flex-grow var(--ac-exp-speed, 0.5s) cubic-bezier(0.4, 0, 0.2, 1);
}
.ac-exp-card.is-active .ac-exp-card__panel {
  flex: 1 1 0;
}
/* Container do texto: largura ~350px (Figma: texto ~300 + padding 24), alinhado
pry
 * à esquerda (encostado na imagem). O painel branco preenche o card; o conteúdo
 * fica nesta coluna à esquerda. */
.ac-exp-card__panel-inner {
  width: 350px;
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  box-sizing: border-box;
}
.ac-exp-card__icon { display: block; width: 48px; height: 48px; flex: none; }
.ac-exp-card__icon svg { width: 48px; height: 48px; display: block; }
.ac-exp-card__title {
  margin: 0;
  font-family: Raleway, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  color: #242424;
}
.ac-exp-card__text {
  margin: 0;
  font-family: Arial, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: #404040;
}

/* --- Mobile --- */
@media (max-width: 768px) {
  /* imagem mais estreita pra sobrar largura pro painel (texto não quebrar). */
  .ac-exp-card.is-active .ac-exp-card__media { flex-basis: 96px; }
  /* largura fixa (não 100%) pra o texto ser CORTADO ao recolher, igual ao desk,
   * em vez de espremer. ~190px cabe no painel mobile aberto (card 300 - img 96). */
  .ac-exp-card__panel-inner { width: 190px; gap: 16px; padding: 16px; }
  .ac-exp-card__title { font-size: 20px; }
  .ac-exp-card__text { font-size: 14px; }
  .ac-exp-card__ribbon { font-size: 14px; }
}
