/**
 * Página "A DScomm" (/a-dscomm/) — estilos isolados sob o prefixo
 * `.adscomm-` (mesmo padrão de isolamento de assets/css/gestao-e-aceleracao.css
 * e assets/css/implantacao-e-migracao.css: ver .claude/skills/dscomm-design-system).
 * Usa direto os tokens de cor do tema (var(--color-*), definidos em
 * assets/css/input.css). Carregado só em page-a-dscomm.php.
 *
 * Hero: proporções, breakpoints e composição (moldura + foto absoluta)
 * medidos do hero de Clientes (.clientes-hero__* em input.css) e já
 * replicados em .gestao-hero__* (gestao-e-aceleracao.css) — mesmos
 * valores reaproveitados aqui sob o prefixo .adscomm-hero__*.
 */

.adscomm-page {
  background: var(--color-bg);
}

.adscomm-page * {
  box-sizing: border-box;
}

/* =========================================================
   HERO
   ========================================================= */
.adscomm-hero .eyebrow {
  margin-bottom: -1rem;
}

@media (min-width: 1024px) {
  .adscomm-hero .eyebrow {
    margin-bottom: -1.5rem;
  }
}

.adscomm-hero__title {
  font-size: clamp(1.75rem, 3.8vw, 4.25rem);
  line-height: 1.04;
}

.adscomm-hero__paragraph {
  font-size: clamp(0.9375rem, 1.5vw, 1.25rem);
  line-height: 1.45;
  max-width: 33rem;
}

.adscomm-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  width: 100%;
}

@media (min-width: 640px) {
  .adscomm-hero__actions {
    flex-direction: row;
    align-items: center;
    width: auto;
  }
}

.adscomm-hero__secondary-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.25rem;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.adscomm-hero__secondary-cta:hover,
.adscomm-hero__secondary-cta:focus-visible {
  color: var(--color-brand);
}

.adscomm-hero__composition {
  aspect-ratio: 957 / 809;
  width: 100%;
  max-width: 24rem;
}

@media (min-width: 640px) {
  .adscomm-hero__composition {
    max-width: 28rem;
  }
}

@media (min-width: 768px) {
  .adscomm-hero__composition {
    max-width: 40rem;
  }
}

@media (min-width: 1024px) {
  .adscomm-hero__composition {
    max-width: 61.25rem; /* 980px — mesmo teto do hero de Clientes */
  }
}

.adscomm-hero__frame {
  position: absolute;
  left: 11.3%;
  top: 16.7%;
  width: 83.1%;
  height: 72.9%;
  border: 2px solid var(--color-brand);
  border-radius: 1.5rem;
  opacity: 0.5;
  z-index: 0;
  pointer-events: none;
}

.adscomm-hero__photo {
  position: absolute;
  left: 16.19%;
  top: 8.03%;
  width: 69.28%;
  height: 91.97%;
  z-index: 10;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 20px 40px -14px rgb(28 30 60 / 0.3);
}

.adscomm-hero__photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.adscomm-hero__indicators {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 24rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

@media (min-width: 1024px) {
  .adscomm-hero__indicators {
    position: absolute;
    z-index: 20;
    left: 74%;
    top: 9%;
    width: 24%;
    max-width: none;
    height: 82%;
    justify-content: space-between;
  }
}

.adscomm-hero__indicator {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: var(--color-bg);
  border-radius: var(--radius-mini-card);
  padding: 0.9rem 1.1rem;
  box-shadow: 0 14px 30px -14px rgb(28 30 60 / 0.35);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-ink);
}

.adscomm-hero__indicator-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  flex-shrink: 0;
  border-radius: var(--radius-mini-card);
  background: var(--color-section);
  color: var(--color-brand);
  font-size: 1.1rem;
}

/* =========================================================
   NÚMEROS E CREDENCIAIS — faixa compacta, 4 colunas com
   divisores sutis (border-left), sem contador animado.
   ========================================================= */
.adscomm-numeros__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 1.5rem;
  list-style: none;
  padding: 0;
  text-align: center;
}

@media (min-width: 1024px) {
  .adscomm-numeros__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    text-align: left;
  }
}

.adscomm-numeros__item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

@media (min-width: 1024px) {
  .adscomm-numeros__item {
    padding-inline: 2rem;
    border-left: 1px solid var(--color-border);
  }

  .adscomm-numeros__item:first-child {
    padding-left: 0;
    border-left: none;
  }
}

.adscomm-numeros__value {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-ink);
  line-height: 1.1;
}

@media (min-width: 768px) {
  .adscomm-numeros__value {
    font-size: 2.125rem;
  }
}

.adscomm-numeros__label {
  font-size: 0.9375rem;
  color: rgb(28 30 60 / 0.7);
  line-height: 1.4;
}

/* =========================================================
   QUEM SOMOS — título de um lado, texto do outro, com
   respiro amplo (mesma técnica de 2 colunas de
   .gestao-problema__header--split).
   ========================================================= */
.adscomm-quem-somos__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
}

@media (min-width: 1024px) {
  .adscomm-quem-somos__header {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    gap: 4rem;
  }
}

.adscomm-quem-somos__heading {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 1024px) {
  .adscomm-quem-somos__heading {
    position: sticky;
    top: 2rem;
    align-self: start;
  }
}

.adscomm-quem-somos__body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.adscomm-quem-somos__pilares {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  list-style: none;
  padding: 0;
  margin-top: 0.5rem;
}

.adscomm-quem-somos__pilar {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-ink);
}

.adscomm-quem-somos__pilar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: var(--radius-mini-card);
  background: var(--color-section);
  color: var(--color-brand);
  font-size: 1rem;
}

/* =========================================================
   COMO NASCEMOS — imagem + conteúdo (mesma técnica de
   .gestao-publico__grid). Conteúdo vem primeiro no DOM
   (mobile: texto antes da imagem); no desktop a imagem assume
   a coluna esquerda via `order`.
   ========================================================= */
.adscomm-historia__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
  align-items: center;
}

@media (min-width: 1024px) {
  .adscomm-historia__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
  }

  .adscomm-historia__visual {
    order: -1;
  }
}

.adscomm-historia__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1rem;
}

.adscomm-historia__visual {
  display: flex;
  justify-content: center;
  width: 100%;
}

.adscomm-historia__photo {
  width: 100%;
  max-width: none;
  aspect-ratio: 8 / 9;
  object-fit: cover;
  border-radius: var(--radius-card);
  box-shadow: 0 20px 40px -20px rgb(28 30 60 / 0.3);
}

.adscomm-historia__quote {
  margin-top: 0.5rem;
  padding-left: 1.25rem;
  border-left: 3px solid var(--color-brand);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-ink);
}

/* =========================================================
   NOSSA EVOLUÇÃO — faixa azul-marinho, header centralizado,
   4 pilares em linha (ícones lineares 24-30px em container
   48-56px — mesma escala de .gestao-visao__icon).
   ========================================================= */
.adscomm-evolucao__header {
  max-width: 50rem;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}

.adscomm-evolucao__title {
  max-width: none;
}

.adscomm-evolucao__text {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: rgb(255 255 255 / 0.75);
}

.adscomm-evolucao__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin-bottom: 3rem;
}

@media (min-width: 640px) {
  .adscomm-evolucao__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .adscomm-evolucao__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.75rem;
  }
}

.adscomm-evolucao__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
  padding-top: 1.5rem;
  border-top: 1.5px solid rgb(255 255 255 / 0.2);
}

.adscomm-evolucao__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem; /* 52px — dentro da faixa 48-56px pedida */
  height: 3.25rem;
  flex-shrink: 0;
  border-radius: var(--radius-mini-card);
  background: rgb(255 255 255 / 0.08);
  color: var(--color-highlight);
  font-size: 1.375rem; /* ~22px de ícone, traço fino do Font Awesome */
}

.adscomm-evolucao__item-title {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--color-bg);
  line-height: 1.3;
}

.adscomm-evolucao__item-text {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: rgb(255 255 255 / 0.75);
}

.adscomm-evolucao__closing {
  max-width: 44rem;
  margin-inline: auto;
  text-align: center;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-bg);
}

/* =========================================================
   NOSSA VISÃO — bloco tipográfico centralizado, fundo
   azul-claro, altura controlada.
   ========================================================= */
.adscomm-visao__inner {
  max-width: 50rem;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.adscomm-visao__rule {
  display: block;
  width: 3.5rem;
  height: 3px;
  border-radius: 999px;
  background: var(--color-brand);
}

.adscomm-visao__title {
  max-width: none;
}

.adscomm-visao__text {
  max-width: 42rem;
}

/* =========================================================
   NOSSO JEITO DE FAZER — 5 etapas, numeração discreta,
   sequência horizontal no desktop.
   ========================================================= */
.adscomm-jeito__header {
  max-width: 46rem;
  margin-inline: auto;
  text-align: center;
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.adscomm-jeito__title {
  max-width: none;
}

.adscomm-jeito__steps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  list-style: none;
  padding: 0;
  counter-reset: none;
}

@media (min-width: 640px) {
  .adscomm-jeito__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .adscomm-jeito__steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.adscomm-jeito__step {
  position: relative;
  padding-top: 1.5rem;
  border-top: 2px solid var(--color-section);
}

.adscomm-jeito__step-number {
  display: block;
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--color-brand);
  margin-bottom: 0.75rem;
}

.adscomm-jeito__step-title {
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--color-ink);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.adscomm-jeito__step-text {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: rgb(28 30 60 / 0.7);
}

/* =========================================================
   CLIENTES E MARCAS — introdução própria + o carrossel de
   marcas já existente (partner-carousel.php, sem alterá-lo).
   ========================================================= */
.adscomm-clientes__intro {
  max-width: 46rem;
  text-align: center;
  margin-inline: auto;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.adscomm-marcas {
  background: var(--color-bg-muted);
}

.adscomm-marcas h2 {
  font-size: 2rem;
}

@media (min-width: 768px) {
  .adscomm-marcas h2 {
    font-size: 2.5rem;
  }
}

.adscomm-marcas img {
  height: 2.75rem;
}

.adscomm-clientes__cta-wrap {
  padding-bottom: 4rem;
  background: var(--color-bg-muted);
}

@media (min-width: 768px) {
  .adscomm-clientes__cta-wrap {
    padding-bottom: 5rem;
  }
}

@media (min-width: 1024px) {
  .adscomm-clientes__cta-wrap {
    padding-bottom: 6rem;
  }
}

/* =========================================================
   O PRÓXIMO CAPÍTULO — imagem + conteúdo, posição invertida
   em relação a "Como nascemos" (conteúdo já vem primeiro no
   DOM e ocupa a coluna esquerda no desktop, sem precisar de
   `order`).
   ========================================================= */
.adscomm-futuro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
  align-items: center;
}

@media (min-width: 1024px) {
  .adscomm-futuro__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
  }
}

.adscomm-futuro__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1rem;
}

.adscomm-futuro__visual {
  display: flex;
  justify-content: center;
  width: 100%;
}

.adscomm-futuro__photo {
  width: 100%;
  max-width: none;
  aspect-ratio: 8 / 5;
  object-fit: cover;
  border-radius: var(--radius-card);
  box-shadow: 0 20px 40px -20px rgb(28 30 60 / 0.3);
}

/* =========================================================
   CTA FINAL — faixa horizontal (título / descrição / botão),
   mesmo padrão de .gestao-cta-final__inner.
   ========================================================= */
.adscomm-cta-final__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  text-align: center;
  align-items: center;
}

@media (min-width: 1024px) {
  .adscomm-cta-final__inner {
    grid-template-columns: minmax(0, 0.36fr) minmax(0, 0.34fr) minmax(0, 0.3fr);
    text-align: left;
    gap: 2.5rem;
  }

  .adscomm-cta-final__action-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
  }
}

.adscomm-cta-final__text {
  color: rgb(255 255 255 / 0.8);
}

.adscomm-cta-final__secondary {
  display: inline-block;
  margin-top: 1rem;
  color: rgb(255 255 255 / 0.75);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.25rem;
  transition: color 0.2s ease;
}

.adscomm-cta-final__secondary:hover,
.adscomm-cta-final__secondary:focus-visible {
  color: var(--color-bg);
}

.adscomm-cta-final__closing {
  grid-column: 1 / -1;
  margin-top: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgb(255 255 255 / 0.15);
  text-align: center;
  font-size: 0.9375rem;
  color: rgb(255 255 255 / 0.65);
}

/* =========================================================
   REVELAÇÃO AO ROLAR — fade + translateY, uma única vez, via
   IntersectionObserver (ver assets/js/a-dscomm.js). Mesmo
   espírito de .migracao-reveal em implantacao-e-migracao.css.
   Sem JS ou com prefers-reduced-motion, o conteúdo já nasce
   visível.
   ========================================================= */
.adscomm-reveal {
  opacity: 0;
  transform: translateY(1.25rem);
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.adscomm-reveal.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.adscomm-hero__composition {
  animation: adscomm-hero-rise 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes adscomm-hero-rise {
  from {
    opacity: 0;
    transform: translateY(1.25rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================================
   Acessibilidade: respeita prefers-reduced-motion.
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  .adscomm-page * {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
}
