/* Container, seções e grades */
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.container--narrow { width: min(100% - 2 * var(--gutter), var(--container-narrow)); margin-inline: auto; }
.container--wide { width: min(100% - 2 * var(--gutter), 1400px); margin-inline: auto; }
.section { padding-block: var(--section-y); position: relative; }
.section--tight { padding-block: calc(var(--section-y) * 0.6); }
/* Seções vizinhas com o mesmo fundo não somam dois respiros: sem troca de cor,
   a soma vira um vão morto no meio da página. */
.section--alt + .section--alt,
.section--dark + .section--dark,
.section--tint + .section--tint,
.section--lavanda + .section--lavanda,
.section:not(.section--alt):not(.section--dark):not(.section--tint):not(.section--lavanda)
  + .section:not(.section--alt):not(.section--dark):not(.section--tint):not(.section--lavanda) { padding-top: 0; }
/* Espaço entre blocos irmãos dentro de uma seção. */
.block + .block { margin-top: var(--block-y); }
.subhead { margin: var(--block-y) 0 var(--sp-4); font-family: var(--f-text); font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-mute); }
.section--alt { background: var(--c-bg-alt); }
.section--dark { background: var(--c-purple-700); color: var(--c-on-dark); }
.section--dark h1, .section--dark h2, .section--dark h3 { color: #fff; }
.section--dark .eyebrow { color: var(--c-cyan-500); }
.section--dark .lead, .section--dark p { color: var(--c-on-dark-soft); }
.section--dark .section-head p { color: var(--c-on-dark-soft); }
.section--tint { background: linear-gradient(180deg, var(--c-purple-050), #fff); }
/* Lavanda: roxo a 25% sobre branco. Fundo claro, então o texto fica escuro. */
.section--lavanda { background: var(--c-purple-200); }
.section--lavanda .eyebrow { color: var(--c-purple-700); }
.section-head { max-width: 720px; margin-bottom: var(--head-y); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head p { color: var(--c-ink-soft); font-size: var(--fs-md); }
.section-head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; max-width: none; flex-wrap: wrap; }
.section-head--split > div { max-width: 640px; }
.grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.grid--5 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.split { display: grid; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1fr; } .split--text-wide { grid-template-columns: 1.2fr 1fr; } .split--reverse > :first-child { order: 2; } }
.stack > * + * { margin-top: var(--sp-5); }
/* Pilha com o ritmo de bloco, para listas longas de conteúdo. */
.stack--blocks > * + * { margin-top: var(--block-y); }
.cluster { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
main { min-height: 50vh; }
.page-top { padding-top: calc(var(--header-h) + var(--hero-y)); }
/* Sobre o roxo primário: cards e painéis brancos continuam brancos, o texto de
   apoio clareia e os fios ficam em branco diluído. */
.section--dark .section-head p, .section--dark .ds-note, .section--dark .caption, .section--dark .small { color: var(--c-on-dark-soft); }
.section--dark .card:not(.card--cta), .section--dark .panel { background: var(--c-bg); border-color: rgba(255,255,255,0.16); }
/* O título dentro de um card branco não pode herdar o branco da seção. */
.section--dark .card:not(.card--cta) :is(h1, h2, h3, h4),
.section--dark .panel :is(h1, h2, h3, h4) { color: var(--c-purple-900); }
.section--dark .card:not(.card--cta) p, .section--dark .panel p { color: var(--c-ink-soft); }
.section--dark .card:not(.card--cta) .eyebrow, .section--dark .panel .eyebrow { color: var(--c-purple-700); }
.section--dark .card:hover, .section--dark .panel:hover { border-color: rgba(255,255,255,0.32); }
.section--dark .benefit { background: var(--c-bg); border-color: rgba(255,255,255,0.16); }
.section--dark .link-arrow { color: #fff; }
.section--dark .linear-carousel__fade { background: linear-gradient(to left, var(--c-purple-700), transparent); }
.section--dark .linear-carousel__btn { background: transparent; border-color: rgba(255,255,255,0.4); color: #fff; }
.section--dark .linear-carousel__btn:hover { background: rgba(255,255,255,0.12); }
.section--dark .centros-list li { border-color: rgba(255,255,255,0.16); }
.section--dark .centros-list strong { color: #fff; }
.section--dark .centros-list span { color: var(--c-on-dark-soft); }
.section--dark .centros-list small { color: var(--c-cyan-500); }
.section--dark .centros-list li::before { background: var(--c-cyan-500); box-shadow: 0 0 0 4px rgba(255,255,255,0.12); }
