/* ==========================================================================
   CASJ — CASJ International (casj-international.html)
   Componente Figma: "CASJ International" (2392:4739)
   ========================================================================== */

body[data-page="casj-international"] .container-casj { max-width: calc(1020px + 3rem); }

/* Introdução (badge azul + título + texto) */
.ci-intro { padding-block: 64px 48px; text-align: center; }
.ci-intro__text {
  max-width: 900px;
  margin: 24px auto 0;
  font-size: 18px;
  line-height: 1.8;
  color: var(--casj-cinza-texto);
}
.ci-intro__text strong { font-weight: 600; color: #0b192c; }

/* Abas + painel de programas */
.ci-programs { padding-block: 0 64px; max-width: calc(1278px + 3rem) !important; }

.ci-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}
.ci-tab {
  display: inline-flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 70px;
  padding-inline: 24px;
  border: 2px solid #dbdbdb;
  border-radius: 16px;
  background: #fff;
  color: #62666b;
  font-family: "Poppins", sans-serif;
  font-size: 18px;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.ci-tab__icon { width: 20px; height: 20px; object-fit: contain; }
/* O ícone do "Kids" só existe em azul (ci-tab-kids-azul.svg) — os outros
   já são cinza (#62666B) por padrão nos próprios arquivos. Filtro CSS
   (grayscale + brightness) deixa esse ícone cinza por padrão também, igual
   aos demais, e só some no hover/active, revelando o azul original. */
[data-ci="kids"] .ci-tab__icon { filter: grayscale(1) brightness(1.27); transition: filter .2s ease; }
.ci-tab--active,
.ci-tab:hover {
  background: #f4f7fc;
  border-color: var(--casj-azul);
  color: var(--casj-azul);
}
.ci-tab--active .ci-tab__icon,
.ci-tab:hover .ci-tab__icon { filter: none; }

/* Middle/High/Cambridge/Extra: os arquivos originais só existem em cinza
   (#62666B) — sem versão azul embutida, diferente do "Kids" acima. Pra
   revelar azul no hover/active igual ao Kids, usa uma cópia de cada ícone
   recolorida (ci-tab-*-azul.svg) como ::after, com fade-in de opacidade
   por cima do ícone cinza original. */
.ci-tab__icon-wrap { position: relative; display: inline-flex; width: 20px; height: 20px; flex-shrink: 0; }
.ci-tab__icon-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity .2s ease;
}
[data-ci="middle"] .ci-tab__icon-wrap::after { background-image: url("../img/ci-tab-middle-azul.svg"); }
[data-ci="high"] .ci-tab__icon-wrap::after { background-image: url("../img/ci-tab-high-azul.svg"); }
[data-ci="cambridge"] .ci-tab__icon-wrap::after { background-image: url("../img/ci-tab-cambridge-azul.svg"); }
[data-ci="extra"] .ci-tab__icon-wrap::after { background-image: url("../img/ci-tab-extra-azul.svg"); }
.ci-tab--active .ci-tab__icon-wrap::after,
.ci-tab:hover .ci-tab__icon-wrap::after { opacity: 1; }

.ci-panel {
  background: #f4f7fc;
  border-radius: 24px;
  padding: 56px 40px;
  text-align: center;
}
.ci-panel__title {
  position: relative;
  font-family: var(--font-display);
  font-weight: 700;
  color: #0b192c;
  font-size: 30px;
  margin-bottom: 40px;
  padding-bottom: 24px;
}
.ci-panel__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 76px;
  height: 2px;
  background: var(--casj-azul);
}
.ci-panel__text {
  max-width: 900px;
  margin: 0 auto;
  font-size: 17px;
  line-height: 1.8;
  color: var(--casj-cinza-texto);
}
.ci-panel__text strong { font-weight: 600; color: #0b192c; }

.ci-panel__icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
  margin-top: 40px;
}
.ci-icon { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 158px; }
.ci-icon__box {
  width: 95px;
  height: 95px;
  border-radius: 12px;
  background: var(--casj-azul);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ci-icon__box img { width: 44px; height: 44px; object-fit: contain; }
.ci-icon__label {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16px;
  color: #0b192c;
  line-height: 1.5;
}

@media (max-width: 767.98px) {
  .ci-tab { height: 56px; padding-inline: 16px; font-size: 15px; }
  .ci-panel { padding: 40px 20px; }
}

.ci-cta { text-align: center; padding-bottom: 64px; }
@media (max-width: 575.98px) {
  /* Mesma largura dos botões do accordion acima (que ficam dentro do
     padding-inline de 1.5rem do .container-casj) — o .btn-casj por padrão
     só tem a largura do próprio texto. */
  .ci-cta { padding-inline: 1.5rem; }
  .ci-cta .btn-casj {
    width: 100%;
    padding-inline: 16px;
    white-space: nowrap;
    font-size: clamp(13px, 4.2vw, 20px);
  }
}

/* Accordion (mobile) — mesmos programas das abas, exibidos como sanfona */
.ci-accordion { display: none; }

.ci-accordion__item {
  border-radius: 16px;
  overflow: hidden;
}
.ci-accordion__item + .ci-accordion__item { margin-top: 14px; }

.ci-accordion__header {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: 70px;
  padding-inline: 24px;
  border: none;
  border-radius: 16px;
  background: var(--casj-azul);
  color: #fff;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 18px;
  text-align: left;
  cursor: pointer;
  transition: border-radius .2s ease;
}
.ci-accordion__item--open .ci-accordion__header { border-radius: 16px 16px 0 0; }
.ci-accordion__icon-label {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex-shrink: 0;
  /* Cabeçalho do accordion é sempre azul (aberto ou fechado) — os ícones
     originais (azul/cinza, mesmos do desktop) ficam sem contraste ali.
     Filtro converte qualquer cor de origem pra branco puro. */
  filter: brightness(0) invert(1);
}
.ci-accordion__label { flex: 1 1 auto; }
.ci-accordion__toggle { font-size: 14px; flex-shrink: 0; transition: transform .2s ease; }
.ci-accordion__item--open .ci-accordion__toggle { transform: rotate(135deg); }

.ci-accordion__panel {
  background: #f4f7fc;
  border-radius: 0 0 16px 16px;
  height: 0;
  overflow: hidden;
  transition: height .25s ease;
}
.ci-accordion__panel-inner {
  padding: 32px 20px 31px;
  text-align: center;
}
.ci-accordion__title {
  font-family: var(--font-display);
  font-weight: 600;
  color: #0b192c;
  font-size: 18px;
  margin-bottom: 16px;
}
.ci-accordion__text {
  font-size: 16px;
  line-height: 1.7;
  color: var(--casj-cinza-texto);
}
.ci-accordion__text strong { font-weight: 600; color: #0b192c; }
.ci-accordion__icons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin-top: 28px;
}
.ci-accordion__icons .ci-icon { width: 120px; }
.ci-accordion__icons .ci-icon__box { width: 72px; height: 72px; }
.ci-accordion__icons .ci-icon__box img { width: 34px; height: 34px; }
.ci-accordion__icons .ci-icon__label { font-size: 14px; }

@media (max-width: 767.98px) {
  .ci-tabs,
  .ci-panel { display: none; }
  .ci-accordion { display: block; }
}
