/* PR19 — refinamento técnico sem redesign */

:root {
  --pr19-container: 1200px;
  --pr19-inline: clamp(1rem, 3vw, 1.5rem);
  --pr19-compact: clamp(2.5rem, 5vw, 3.5rem);
  --pr19-section: clamp(4.5rem, 7vw, 6rem);
}

/* Tipografia: preservar desenho existente e melhorar quebra/ritmo. */
h1, h2, h3 {
  text-wrap: balance;
}

.text-editorial,
.hero-description,
.story-compact-copy > p:not(.overline):not(.story-compact-note) {
  max-width: 65ch;
  text-wrap: pretty;
}

/* A consulta: informação integrada ao bloco já existente, sem criar nova seção. */
.consultation-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  border: 1px solid rgba(29, 33, 29, .14);
  background: rgba(29, 33, 29, .14);
}

.consultation-step {
  min-width: 0;
  padding: clamp(1rem, 2vw, 1.4rem);
  background: #f4efe5;
}

.consultation-step span {
  display: block;
  margin-bottom: .75rem;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .7;
}

.consultation-step strong {
  display: block;
  margin-bottom: .55rem;
  font-family: Italiana, serif;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  font-weight: 400;
  line-height: 1.15;
  text-wrap: balance;
}

.consultation-step p {
  margin: 0;
  font-size: .92rem;
  line-height: 1.6;
}

/* /resultados/ — filtros acessíveis */
.results-page main,
.results-header,
.results-footer {
  width: 100%;
}

.results-page .results-hero,
.results-page .results-filters,
.results-page .results-category,
.results-page .results-video {
  box-sizing: border-box;
}

.results-filters {
  align-items: center;
}

.results-filters button {
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  color: inherit;
  padding: .78rem 1rem;
  font: inherit;
  font-size: .83rem;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.results-filters button:hover,
.results-filters button[aria-pressed="true"] {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
}

.results-filters button:focus-visible,
.result-card:focus-visible,
.results-lightbox button:focus-visible {
  outline: 3px solid #b87959;
  outline-offset: 3px;
}

.results-filter-status {
  width: 100%;
  margin: .2rem 0 0;
  font-size: .78rem;
  opacity: .68;
}

.results-category[hidden] {
  display: none !important;
}

/* O atlas original é 5 x 4; cada tile é 4:5. Usar 4:5 mostra a arte inteira.
   Para futuros arquivos independentes, manter width:100%; height:auto; object-fit:contain. */
.results-grid,
.results-grid.compact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  max-width: none;
}

.result-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  cursor: zoom-in;
  overflow: visible;
}

.result-card .sprite-crop {
  width: 100%;
  aspect-ratio: 4 / 5;
  margin-bottom: 1rem;
  background-color: #e7ded2;
  background-repeat: no-repeat;
  background-size: 500% 400%;
}

.result-card h3,
.result-card p {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Modal/lightbox acessível. */
.results-lightbox[hidden] {
  display: none !important;
}

.results-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2rem);
  background: rgba(18, 20, 18, .88);
}

.results-lightbox__dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 520px) minmax(240px, 340px);
  gap: clamp(1.2rem, 3vw, 2.4rem);
  width: min(100%, 920px);
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  padding: clamp(1rem, 2.4vw, 1.5rem);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 30px 90px rgba(0,0,0,.32);
}

.results-lightbox__image {
  width: 100%;
  aspect-ratio: 4 / 5;
  background-image: url('/assets/resultados-sprite-small.webp');
  background-repeat: no-repeat;
  background-size: 500% 400%;
  background-color: #e7ded2;
}

.results-lightbox__copy {
  align-self: center;
}

.results-lightbox__eyebrow {
  margin: 0 0 .75rem;
  color: var(--clay);
  font-size: .72rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.results-lightbox__copy h2 {
  margin: 0 0 1rem;
  font-family: Italiana, serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 400;
  line-height: 1.04;
}

.results-lightbox__copy p:last-child {
  line-height: 1.7;
}

.results-lightbox__close {
  position: absolute;
  top: .7rem;
  right: .7rem;
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(29,33,29,.18);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

body.results-lightbox-open {
  overflow: hidden;
}

/* Preserva HelenIA como único acesso flutuante. WhatsApp segue contextual nos CTAs já existentes. */
.floating-assistant {
  max-width: min(270px, calc(100vw - 2rem));
}

@media (max-width: 1024px) {
  .results-page .results-hero h1,
  .results-page .category-copy h2,
  .results-page .results-video h2,
  .story-compact-copy h2,
  .portrait-copy h2 {
    font-size: clamp(2.2rem, 5.2vw, 3.8rem) !important;
  }
}

@media (max-width: 768px) {
  .consultation-steps {
    grid-template-columns: 1fr;
  }

  .results-filters {
    gap: .55rem;
    padding-bottom: 2rem;
  }

  .results-filters button {
    min-height: 44px;
  }

  .results-lightbox {
    align-items: end;
    padding: .75rem;
  }

  .results-lightbox__dialog {
    grid-template-columns: 1fr;
    width: 100%;
    max-height: calc(100dvh - 1.5rem);
  }

  .results-lightbox__image {
    width: min(100%, 440px);
    margin-inline: auto;
  }
}

@media (max-width: 430px) {
  .results-grid,
  .results-grid.compact-grid {
    grid-template-columns: 1fr;
  }

  .results-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    padding-bottom: 1.25rem;
  }

  .results-filters button {
    flex: 0 0 auto;
  }

  .results-lightbox__dialog {
    padding: .85rem;
  }
}
