/*
 * Rio Chico · Caderno de campo de luxo · camada da revisão 1.5.
 * Carregar depois de territorio.css. Direção aprovada em 25/10/2026:
 * profundidade por sobreposição, escala e fotografia; sem sombra em card,
 * etiqueta, filtro ou botão; cantos retos; três níveis de ação; uma eyebrow
 * por dobra; lead abaixo do título; artigo com linguagem de revista.
 */

/* ---------- Tokens da revisão ---------- */
:root, [data-theme="light"], [data-theme="inverse"], .rc-inverse {
  --cf-regua: var(--rc-rule);
  --cf-sobreposicao: var(--rc-component-card-overlap);
  --cf-ease: var(--rc-ease-reveal);
}
[data-theme="light"] { --cf-regua: var(--rc-color-line) }
[data-theme="inverse"], .rc-inverse { --cf-regua: var(--rc-color-rio-600) }

@font-face { font-family: "Young Serif"; src: url("../assets/fonts/YoungSerif-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap }

/* ---------- Ícones: traço por tamanho ---------- */
.rc-icon svg { stroke-width: var(--cf-traco, 1.75) }
.rc-icon { width: 20px; height: 20px; --cf-traco: 1.85 }
.rc-icon--16 { width: 16px; height: 16px; --cf-traco: 2 }
.rc-icon--24 { width: 24px; height: 24px; --cf-traco: 1.75 }
.rc-icon--32 { width: 32px; height: 32px; --cf-traco: 1.5 }

/* ---------- Eyebrow: uma por dobra ---------- */
.rc-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-accent); line-height: 1.2 }
.rc-eyebrow .rc-icon { width: 16px; height: 16px; --cf-traco: 2 }
[data-theme="inverse"] .rc-eyebrow, .rc-inverse .rc-eyebrow, body[data-theme="inverse"] > main .rc-eyebrow { color: var(--rc-color-stone) }
[data-theme="light"] .rc-eyebrow, body[data-theme="inverse"] [data-theme="light"] .rc-eyebrow { color: var(--rc-color-earth-700) }

/* ---------- Botões: três níveis, retos, sem sombra ---------- */
.rc-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 0; background: var(--rc-action); color: var(--rc-on-action); font-size: 16px; font-weight: 600; line-height: 1.2; letter-spacing: .01em; text-decoration: none; box-shadow: none; transform: none; transition: background var(--rc-duration-fast), color var(--rc-duration-fast), border-color var(--rc-duration-fast), transform var(--rc-duration-fast) }
.rc-btn .rc-icon { transition: transform var(--rc-duration-base) var(--cf-ease) }
.rc-btn:hover { box-shadow: none; transform: none; text-decoration: none }
/* Seta em bico de pena (aprovada em 25/10/2026): no cursor, a haste alonga e a ponta avança */
.rc-icon svg { overflow: visible }
.rc-icon .seta-haste { transform-origin: 2px 12px; transform-box: view-box; transition: transform var(--rc-duration-scene) var(--cf-ease) }
.rc-icon .seta-ponta { transition: transform var(--rc-duration-scene) var(--cf-ease) }
:is(.rc-btn, .app-text-link, .rc-link):hover [data-icon="arrow-right"] .seta-haste { transform: scaleX(1.18) }
:is(.rc-btn, .app-text-link, .rc-link):hover [data-icon="arrow-right"] .seta-ponta { transform: translateX(3.3px) }
.rc-btn:hover [data-icon="arrow-left"] { transform: translateX(-3px) }
.rc-btn:active { transform: translateY(1px); box-shadow: none }
.rc-btn:focus-visible { outline: 3px solid var(--rc-focus); outline-offset: 4px }
/* sólido: uma por tela */
.rc-btn--primary { background: var(--rc-action); color: var(--rc-on-action); border-color: var(--rc-action); box-shadow: none }
.rc-btn--primary:hover { background: var(--rc-action-hover); border-color: var(--rc-action-hover); color: var(--rc-on-action); box-shadow: none; transform: none }
/* contorno fino */
.rc-btn--secondary { background: transparent; color: var(--rc-action); border-color: var(--rc-action); box-shadow: none }
.rc-btn--secondary:hover { background: var(--rc-surface-soft); color: var(--rc-action); border-color: var(--rc-action); box-shadow: none }
.rc-btn--secondary[aria-pressed="true"] { background: var(--rc-action); color: var(--rc-on-action); border-color: var(--rc-action); box-shadow: none }
[data-theme="inverse"] .rc-btn--secondary, .rc-inverse .rc-btn--secondary { color: var(--rc-color-white); border-color: var(--rc-color-white) }
[data-theme="inverse"] .rc-btn--secondary:hover, .rc-inverse .rc-btn--secondary:hover { background: var(--rc-color-white); color: var(--rc-color-rio-800) }
[data-theme="inverse"] .rc-btn--secondary[aria-pressed="true"], .rc-inverse .rc-btn--secondary[aria-pressed="true"] { background: var(--rc-color-white); color: var(--rc-color-rio-800); border-color: var(--rc-color-white) }
[data-theme="light"] .rc-btn--secondary { color: var(--rc-color-rio-800); border-color: var(--rc-color-rio-800) }
[data-theme="light"] .rc-btn--secondary:hover { background: var(--rc-color-paper); color: var(--rc-color-rio-800) }
[data-theme="light"] .rc-btn--secondary[aria-pressed="true"] { background: var(--rc-color-rio-800); color: var(--rc-color-white) }
[data-theme="light"] .rc-btn--primary { background: var(--rc-color-rio-800); color: var(--rc-color-white); border-color: var(--rc-color-rio-800) }
[data-theme="light"] .rc-btn--primary:hover { background: var(--rc-color-rio-950); border-color: var(--rc-color-rio-950) }
/* link editorial: a ação padrão */
.rc-btn--quiet { background: transparent; color: var(--rc-action); border-color: transparent; padding-inline: 4px; box-shadow: none }
.rc-btn--quiet:hover { background: transparent; color: var(--rc-action-hover); transform: none }
.rc-btn--danger { background: var(--rc-error); color: var(--rc-error-bg); border-color: var(--rc-error) }
.rc-btn--icon { width: 48px; min-width: 48px; padding: 0 }
.rc-btn--icon .rc-icon { width: 22px; height: 22px; --cf-traco: 1.75 }
.rc-btn--small { min-height: 44px; padding-inline: 18px; font-size: 15px }
.rc-btn--small.rc-btn--icon { width: 44px; min-width: 44px; padding: 0 }
.rc-btn:disabled, .rc-btn[aria-disabled="true"] { background: var(--rc-disabled-bg); color: var(--rc-disabled-ink); border-color: transparent; box-shadow: none; transform: none }
.rc-btn--secondary:disabled { background: transparent; border-color: var(--rc-disabled-bg); color: var(--rc-disabled-ink) }
.rc-btn[aria-busy="true"] { color: transparent; pointer-events: none; overflow: hidden }
/* Espera (aprovada em 25/10/2026): o rótulo fica e uma linha corre por baixo, como o rio */
.rc-btn[aria-busy="true"]::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; top: auto; width: auto; height: 2px; border: 0; border-radius: 0; background: var(--rc-on-action); transform-origin: left; animation: cf-correnteza 1.4s cubic-bezier(.45, 0, .2, 1) infinite }
.rc-btn--secondary[aria-busy="true"]::before { background: var(--rc-action) }
.rc-btn[aria-busy="true"] .cf-espera { position: absolute; inset: 0; display: grid; place-items: center; color: var(--rc-on-action); font-size: 15px }
.rc-btn--secondary[aria-busy="true"] .cf-espera { color: var(--rc-action) }
@keyframes cf-correnteza { 0% { transform: translateX(-100%) scaleX(.35) } 100% { transform: translateX(100%) scaleX(.35) } }

/* Esqueleto com maré de luz */
.rc-skeleton { background: var(--rc-color-paper); position: relative; overflow: hidden; border-radius: 0 }
.rc-skeleton::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .7) 50%, transparent 80%); transform: translateX(-100%); animation: cf-mare 1.8s cubic-bezier(.45, 0, .2, 1) infinite }
@keyframes cf-mare { to { transform: translateX(100%) } }

/* Aviso passageiro (aprovado em 25/10/2026): canto de baixo, Verde Rio, linha de areia que esvazia em 5 s */
.cf-avisos { position: fixed; left: max(16px, env(safe-area-inset-left, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 60; display: grid; gap: 8px; width: min(420px, calc(100% - 32px)); pointer-events: none }
.cf-aviso { pointer-events: auto; position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 16px 18px 18px; background: var(--rc-color-rio-800); color: var(--rc-color-white); font-size: 15px; line-height: 1.4; overflow: hidden; animation: cf-aviso-entra var(--rc-duration-scene) var(--cf-ease) both }
.cf-aviso.is-saindo { animation: cf-aviso-sai var(--rc-duration-base) var(--rc-ease-standard, ease) both }
.cf-aviso .rc-icon { color: var(--rc-color-stone) }
.cf-aviso button { background: none; border: 0; color: var(--rc-color-white); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; text-decoration-color: var(--rc-color-stone); min-height: 44px; padding: 0 4px; cursor: pointer }
.cf-aviso button:focus-visible { outline: 3px solid var(--rc-color-focus-inverse); outline-offset: 2px }
.cf-aviso::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--rc-color-stone); transform-origin: left; animation: cf-aviso-tempo 5s linear both }
.cf-aviso:hover::after, .cf-aviso:focus-within::after { animation-play-state: paused }
@keyframes cf-aviso-entra { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }
@keyframes cf-aviso-sai { to { opacity: 0; transform: translateY(8px) } }
@keyframes cf-aviso-tempo { from { transform: scaleX(1) } to { transform: scaleX(0) } }
.app-text-link, .rc-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; font-size: 16px; text-decoration: none; color: var(--rc-action); transition: color var(--rc-duration-fast) }
.app-text-link .rc-icon, .rc-link .rc-icon { width: 20px; height: 20px; transition: transform var(--rc-duration-base) var(--cf-ease) }
.app-text-link:hover, .rc-link:hover { text-decoration: none; color: var(--rc-action-hover) }
.app-text-link:hover [data-icon="arrow-left"], .rc-link:hover [data-icon="arrow-left"] { transform: translateX(-3px) }

/* ---------- Campos ---------- */
.rc-input, .rc-select, .rc-textarea { border-radius: 0; background: var(--rc-canvas); border-color: var(--rc-border-strong) }
.rc-input:focus, .rc-select:focus, .rc-textarea:focus { background: var(--rc-surface); border-color: var(--rc-action) }
.rc-label { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase }
.app-counter .rc-btn { border-radius: 0; background: var(--rc-color-paper); border-color: var(--rc-border-strong); color: var(--rc-color-rio-800); box-shadow: none }
.app-counter .rc-btn:hover { background: var(--rc-color-stone); transform: none }
.app-counter .rc-input { font-family: var(--rc-type-family-display); font-size: 26px; font-weight: 500; border-radius: 0 }

/* ---------- Filtros e etiquetas, sem pílula ---------- */
.rc-chip { border: 1px solid transparent; border-radius: 0; background: transparent; box-shadow: none; color: var(--rc-muted); font-weight: 600; padding: 9px 14px; min-height: 44px; transition: color var(--rc-duration-fast), background var(--rc-duration-fast), border-color var(--rc-duration-fast) }
.rc-chip:hover { background: transparent; border-color: var(--rc-border); color: var(--rc-ink); box-shadow: none }
.rc-chip[aria-pressed="true"], .rc-chip.is-selected { background: var(--rc-color-paper); color: var(--rc-color-rio-800); border-color: var(--rc-color-rio-800); box-shadow: none }
.rc-chip[aria-pressed="true"]::after { content: none }
.rc-chip .cf-contagem { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 14px; opacity: .7; font-variant-numeric: tabular-nums; margin-left: 2px }
.rc-tag { border: 0; border-radius: 0; background: var(--rc-color-paper); color: var(--rc-color-earth-700); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 7px 10px 6px; box-shadow: none; gap: 7px; line-height: 1 }
.rc-tag .rc-icon { width: 14px; height: 14px; --cf-traco: 2 }
.rc-tag--success { background: var(--rc-success-bg); color: var(--rc-success) } .rc-tag--warning { background: var(--rc-warning-bg); color: var(--rc-warning) } .rc-tag--error { background: var(--rc-error-bg); color: var(--rc-error) } .rc-tag--info { background: var(--rc-info-bg); color: var(--rc-info) }

/* ---------- Cards: quatro formatos, sem sombra, profundidade por sobreposição ---------- */
.rc-card, .rc-card--bordered, .app-place-card, .app-interest-choice, .rc-summary, .rc-empty, .app-empty, .app-selection, .app-trip-form, .app-agency-form, .app-trip-summary, .app-detail-aside, .app-agency-links, .app-catalog-filters, .app-place-picker, .app-editorial-places > article, .rc-dialog { box-shadow: none; border-radius: 0 }
.app-place-card:hover, .app-place-card:has([data-add-interest][aria-pressed="true"]) { box-shadow: none; transform: none }
.rc-card__image, .app-place-card .rc-card__image, .app-card-photo { border-radius: 0 }
.app-card-photo img { transition: transform var(--rc-duration-reveal) var(--cf-ease) }
.app-place-card:hover .app-card-photo img { transform: scale(1.02) }
.app-card-photo { overflow: hidden }
.app-place-card__body { padding: 24px 24px 20px }
.app-place-card__body > .rc-card__meta { position: static; transform: none; margin: 0 0 4px }
.app-place-card .rc-card__title { font-size: 34px }
.app-card-actions { border-top: 1px solid var(--cf-regua); padding-top: 14px; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px }
.app-card-actions .rc-btn { width: auto }
.app-place-card > .app-card-credit { padding: 0 24px 20px }
.app-place-card:has([data-add-interest][aria-pressed="true"]) { outline: 1px solid var(--rc-color-rio-800); outline-offset: 0 }
/* formatos */
.cf-card { display: flex; flex-direction: column; min-width: 0; background: var(--rc-surface); color: var(--rc-ink) }
.cf-card__foto { display: block; margin: 0; overflow: hidden; position: relative }
.cf-card__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--rc-duration-reveal) var(--cf-ease) }
.cf-card:hover .cf-card__foto img { transform: scale(1.02) }
.cf-card__foto .rc-tag { position: absolute; left: 16px; top: 16px }
.cf-card__corpo { display: flex; flex-direction: column; gap: 12px; padding: 22px 24px 22px; flex: 1 }
.cf-card__corpo h2, .cf-card__corpo h3 { font-family: var(--rc-type-family-display); font-weight: 500; line-height: 1 }
.cf-card__corpo h2 a, .cf-card__corpo h3 a { color: inherit; text-decoration: none }
.cf-card__corpo h2 a:hover, .cf-card__corpo h3 a:hover { text-decoration: underline; text-underline-offset: .14em; text-decoration-thickness: 2px; text-decoration-color: var(--rc-color-earth-700) }
.cf-card__corpo > p { font-size: 16px; line-height: 1.5; max-width: none }
.cf-card__acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--cf-regua) }
.cf-card__credito { font-size: 12px; line-height: 1.45; color: var(--rc-muted); margin: 0; padding: 0 24px 20px }
.cf-card__credito a { color: inherit }
.cf-card--destaque .cf-card__foto img { aspect-ratio: 4 / 5 }
.cf-card--destaque .cf-card__corpo h2 { font-size: clamp(36px, 3.4vw, 48px) }
.cf-card--destaque .cf-card__corpo { padding: 26px 28px 24px; gap: 14px }
.cf-card--destaque .cf-card__corpo > p { font-size: 17px }
.cf-card--materia .cf-card__foto img { aspect-ratio: 3 / 2 }
.cf-card--materia .cf-card__corpo h3 { font-size: 28px }
.cf-card--lugar .cf-card__foto img { aspect-ratio: 4 / 3 }
.cf-card--lugar .cf-card__corpo h2 { font-size: 34px }
.cf-card--colecao .cf-card__foto { aspect-ratio: 4 / 3; background: var(--rc-color-paper) }
.cf-card--colecao .cf-card__foto img { position: absolute; width: 72%; height: 72%; left: 6%; top: 6%; object-fit: cover; outline: 3px solid var(--rc-surface) }
.cf-card--colecao .cf-card__foto img:nth-child(2) { left: 16%; top: 14%; width: 70%; height: 70% }
.cf-card--colecao .cf-card__foto img:nth-child(3) { left: 26%; top: 22%; width: 68%; height: 68% }
.cf-card--colecao .cf-card__corpo h3 { font-size: 28px }
.cf-card--colecao .cf-contagem { font-family: var(--rc-type-family-display); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--rc-muted) }
/* sobreposição: o corpo claro sobe sobre a fotografia */
.cf-card--sobreposto .cf-card__corpo { margin: calc(-1 * var(--cf-sobreposicao)) var(--cf-sobreposicao) 0; background: var(--rc-surface); position: relative }

/* grade assimétrica: 12 colunas */
.cf-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px; align-items: start }
.cf-grade > .cf-grade__7 { grid-column: span 7 } .cf-grade > .cf-grade__5 { grid-column: span 5 } .cf-grade > .cf-grade__8 { grid-column: span 8 } .cf-grade > .cf-grade__4 { grid-column: span 4 } .cf-grade > .cf-grade__6 { grid-column: span 6 } .cf-grade > .cf-grade__12 { grid-column: span 12 }
.cf-grade__coluna { display: grid; gap: 28px; align-content: start }

/* ---------- Cabeça de dobra: eyebrow, título, lead abaixo ---------- */
.cf-cabeca { display: grid; gap: 14px; margin-bottom: clamp(28px, 4vw, 44px); max-width: 60ch }
.cf-cabeca > h1, .cf-cabeca > h2 { max-width: 16ch }
.cf-cabeca > .rc-lead { max-width: 52ch }
.cf-cabeca > .app-demo-note { max-width: 60ch }
.cf-cabeca--centro { margin-inline: auto; text-align: center; justify-items: center }
.app-page-heading { display: block; padding-block: 48px 36px }
.app-page-heading h1 { margin-bottom: 0 }
.app-page-heading > div { display: grid; gap: 14px; max-width: 60ch }
.app-page-heading .rc-lead { max-width: 52ch }
.app-page-heading > .app-demo-note { margin-top: 16px; max-width: 60ch }
.app-demo-note { border: 0; padding: 0; font-size: 14px; color: var(--rc-muted) }
.app-demo-note::before { content: "Nota"; display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-right: 10px; color: var(--rc-color-stone) }
[data-theme="light"] .app-demo-note::before { color: var(--rc-color-earth-700) }
.app-section-heading { display: grid; gap: 14px; justify-content: start; margin-bottom: 32px }
.app-section-heading h2 { max-width: 18ch }
.app-section-heading p { max-width: 50ch }
.app-hero-heading, .app-intro { display: grid; grid-template-columns: 1fr; gap: 16px }

/* ---------- Cabeçalho: claro ou sobre a fotografia ---------- */
.app-study { background: var(--rc-color-paper); font-size: 13px; position: relative; z-index: 30 }
.app-header { box-shadow: none; border-bottom: 1px solid var(--rc-color-line); background: var(--rc-color-canvas); transition: background var(--rc-duration-base), border-color var(--rc-duration-base) }
.app-header__inner { min-height: 96px; padding-block: 16px; gap: 32px }
.app-header .rc-logo--complete { width: 240px }
.app-brand { display: flex; align-items: center }
.app-brand img:last-child { display: none }
.app-nav a { border-bottom: 0; font-size: 16px; font-weight: 500; color: var(--rc-muted); transition: color var(--rc-duration-fast) }
.app-nav a:hover { color: var(--rc-ink) }
.app-nav a[aria-current="page"] { font-weight: 600; color: var(--rc-action) }
.app-header__plan { gap: 10px; min-height: 44px; font-size: 15px; padding-inline: 18px }
.app-count { border-radius: 0; border: 0; background: var(--rc-color-stone); color: var(--rc-color-rio-950); font-family: var(--rc-type-family-display); font-weight: 600; font-size: 14px; min-width: 22px; height: 22px }
.app-header__acoes { display: flex; align-items: center; gap: 12px; justify-self: end }
.app-menu-botao { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid var(--rc-color-line); background: transparent; color: var(--rc-ink); font-size: 15px; font-weight: 600 }
.app-menu-botao:hover { border-color: var(--rc-ink) }
.app-menu-botao:focus-visible { outline: 3px solid var(--rc-focus); outline-offset: 3px }
/* sobre a fotografia */
.app-header--foto { position: absolute; top: var(--cf-topo, 0); left: 0; right: 0; z-index: 25; background: transparent; border-bottom: 1px solid rgba(255,255,255,.18) }
.app-header--foto .app-brand img:first-child { display: none }
.app-header--foto .app-brand img:last-child { display: block }
.app-header--foto .app-nav a { color: var(--rc-color-stone) }
.app-header--foto .app-nav a:hover, .app-header--foto .app-nav a[aria-current="page"] { color: var(--rc-color-white) }
.app-header--foto .app-header__plan { background: transparent; border-color: var(--rc-color-white); color: var(--rc-color-white) }
.app-header--foto .app-header__plan:hover { background: var(--rc-color-white); color: var(--rc-color-rio-800) }
.app-header--foto .app-count { background: var(--rc-color-stone); color: var(--rc-color-rio-950) }
.app-header--foto .app-menu-botao { color: var(--rc-color-white); border-color: rgba(255,255,255,.5) }
.app-header--foto.is-solida { position: fixed; top: 0; background: var(--rc-color-canvas); border-bottom-color: var(--rc-color-line) }
.app-header--foto.is-solida .app-brand img:first-child { display: block }
.app-header--foto.is-solida .app-brand img:last-child { display: none }
.app-header--foto.is-solida .app-nav a { color: var(--rc-muted) }
.app-header--foto.is-solida .app-nav a:hover, .app-header--foto.is-solida .app-nav a[aria-current="page"] { color: var(--rc-action) }
.app-header--foto.is-solida .app-header__plan { background: var(--rc-color-rio-800); border-color: var(--rc-color-rio-800); color: var(--rc-color-white) }
.app-header--foto.is-solida .app-menu-botao { color: var(--rc-ink); border-color: var(--rc-color-line) }
.app-header--foto.is-solida .app-header__inner { min-height: 72px; padding-block: 10px }
.app-header--foto.is-solida .rc-logo--complete { width: 180px }
/* menu expandido */
.app-menu { position: fixed; inset: 0; z-index: 40; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--rc-color-paper); color: var(--rc-ink) }
.app-menu[hidden] { display: none }
.app-menu__painel { padding: clamp(28px, 5vw, 64px); display: grid; gap: 32px; align-content: start; overflow: auto }
.app-menu__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px }
.app-menu__eixos { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px }
.app-menu__eixos li { margin: 0 }
.app-menu__eixos a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rc-color-stone); font-family: var(--rc-type-family-display); font-weight: 500; font-size: clamp(32px, 4vw, 48px); line-height: 1; color: var(--rc-color-rio-800); text-decoration: none }
.app-menu__eixos a span { font-family: var(--rc-type-family); font-size: 14px; font-weight: 400; color: var(--rc-muted); letter-spacing: 0 }
.app-menu__eixos a:hover { color: var(--rc-color-rio-950) }
.app-menu__eixos a:focus-visible { outline: 3px solid var(--rc-focus); outline-offset: 2px }
.app-menu__foto { margin: 0; position: relative; min-height: 0 }
.app-menu__foto img { width: 100%; height: 100%; object-fit: cover; display: block }
.app-menu__foto figcaption { position: absolute; left: 24px; bottom: 20px; right: 24px; color: var(--rc-color-white); font-size: 13px }
.app-menu__foto figcaption a { color: inherit }
.app-menu__rodape { display: grid; gap: 8px; font-size: 14px; color: var(--rc-muted) }
body.has-menu { overflow: hidden }

/* ---------- Capa sobre a fotografia (início) ---------- */
body[data-page="inicio"] .app-header--foto { --cf-topo: 38px }
.cf-sobre-foto, .cf-sobre-foto:hover { color: var(--rc-color-white) }
.cf-sobre-foto:hover { color: var(--rc-color-stone) }
body[data-page="historia"][data-theme] { background: var(--rc-color-canvas) }
body[data-page="historia"] .app-breadcrumb { color: var(--rc-color-muted) }
body[data-page="historia"] .app-breadcrumb a { color: var(--rc-color-rio-800) }
.cf-capa { position: relative; isolation: isolate; color: var(--rc-on-image) }
.cf-capa__foto { margin: 0; position: relative }
.cf-capa__foto img { width: 100%; height: min(86vh, 820px); object-fit: cover; display: block; border-radius: 0; box-shadow: none }
.cf-capa__foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,41,35,.38) 0%, rgba(12,41,35,0) 34%, rgba(12,41,35,0) 50%, var(--rc-overlay) 100%); pointer-events: none }
.cf-capa__texto { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding-bottom: clamp(40px, 6vw, 72px) }
.cf-capa__texto > .rc-container { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px 64px; align-items: end }
.cf-capa__cabeca { display: grid; gap: 16px; max-width: 24ch }
.cf-capa__cabeca .rc-eyebrow { color: var(--rc-color-stone) }
.cf-capa__cabeca h1 { font-size: clamp(60px, 7.2vw, 108px); line-height: .94; letter-spacing: -.02em; font-weight: 500; color: var(--rc-color-white); max-width: 11ch }
.cf-capa__cabeca p { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.5; max-width: 38ch; color: var(--rc-color-white) }
.cf-capa__acoes { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center; margin-top: 4px }
.cf-capa__credito { position: static; padding: 12px 0 0; font-size: 12px; color: var(--rc-color-rio-100) }
.cf-capa__credito a { color: inherit }
.cf-capa__foto::after { bottom: auto; height: min(86vh, 820px) }
/* sumário: apoiado na borda inferior da foto */
.cf-sumario { position: relative; z-index: 2; background: var(--rc-color-paper); color: var(--rc-ink); padding: 26px 26px 22px; display: grid; gap: 14px; margin-bottom: -56px; align-self: end }
.cf-sumario h2 { font-size: 32px; line-height: 1 }
.cf-sumario__opcoes { display: grid; gap: 6px }
.cf-opcao { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 0 14px; align-items: center; width: 100%; padding: 8px 10px 8px 8px; border: 1px solid transparent; background: transparent; color: var(--rc-ink); text-align: left; cursor: pointer; transition: background var(--rc-duration-fast), border-color var(--rc-duration-fast) }
.cf-opcao > img { width: 56px; height: 56px; object-fit: cover; display: block; grid-row: 1 / 3 }
.cf-opcao__rubrica { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted); line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.cf-opcao__nome { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 26px; line-height: 1; margin-top: 4px }
.cf-opcao > .rc-icon { grid-column: 3; grid-row: 1 / 3; width: 22px; height: 22px; color: var(--rc-color-rio-800) }
.cf-opcao:hover { background: var(--rc-color-white) }
.cf-opcao[aria-pressed="true"] { background: var(--rc-color-white); border-color: var(--rc-color-rio-800) }
.cf-opcao:focus-visible { outline: 3px solid var(--rc-focus); outline-offset: 2px }
.cf-sumario__acoes { display: grid; gap: 10px; margin-top: 6px }
.cf-sumario > .rc-small { color: var(--rc-muted); font-size: 13px; line-height: 1.45 }
.cf-depois-da-capa { padding-top: 112px }

/* ---------- Matérias alternadas (início) ---------- */
.cf-materias { display: grid; gap: clamp(40px, 6vw, 80px) }
.cf-materia { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 28px; align-items: end }
.cf-materia__foto { grid-column: 1 / 8; grid-row: 1; margin: 0; overflow: hidden; position: relative }
.cf-materia__foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: transform var(--rc-duration-reveal) var(--cf-ease) }
.cf-materia:hover .cf-materia__foto img { transform: scale(1.02) }
.cf-materia__foto .rc-tag { position: absolute; left: 16px; top: 16px }
.cf-materia__corpo { grid-column: 7 / 13; grid-row: 1; position: relative; z-index: 1; background: var(--rc-surface); color: var(--rc-ink); padding: 30px 32px 24px; margin-bottom: 40px; display: grid; gap: 14px }
.cf-materia__corpo .cf-folio { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 14px; letter-spacing: .1em; color: var(--rc-muted) }
.cf-materia__corpo h3 { font-size: clamp(36px, 3.4vw, 48px); line-height: .98; max-width: 12ch }
.cf-materia__corpo h3 a { color: inherit; text-decoration: none }
.cf-materia__corpo h3 a:hover { text-decoration: underline; text-underline-offset: .12em; text-decoration-thickness: 2px; text-decoration-color: var(--rc-color-earth-700) }
.cf-materia__corpo p { font-size: 17px; line-height: 1.55; max-width: 42ch }
.cf-materia__acoes { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; border-top: 1px solid var(--cf-regua) }
.cf-materia__credito { grid-column: 1 / 8; font-size: 12px; color: var(--rc-color-rio-100); margin: 10px 0 0 }
.cf-materia__credito a { color: inherit }
.cf-materia--invertida .cf-materia__foto { grid-column: 6 / 13 }
.cf-materia--invertida .cf-materia__corpo { grid-column: 1 / 7 }
.cf-materia--invertida .cf-materia__credito { grid-column: 6 / 13 }

/* ---------- Convite ---------- */
.cf-convite { margin-block: clamp(64px, 8vw, 112px) 0; padding: clamp(40px, 5vw, 64px) clamp(28px, 4vw, 56px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 64px; align-items: center; background: var(--rc-color-rio-950); color: var(--rc-color-white); border: 1px solid var(--rc-color-rio-600) }
.cf-convite h2 { font-size: clamp(40px, 4.6vw, 64px); line-height: .98; max-width: 14ch }
.cf-convite p { color: var(--rc-color-rio-100); max-width: 46ch; font-size: 19px }
.cf-convite > div { display: grid; gap: 14px }

/* ---------- Catálogo ---------- */
.app-catalog-filters { background: var(--rc-color-canvas); padding: 24px 28px; display: grid; grid-template-columns: minmax(280px, 420px) minmax(0, 1fr); gap: 20px 48px; align-items: end }
.app-filter-group legend { margin-bottom: 8px }
.app-filter-group .rc-cluster { gap: 4px 8px }
.app-results-heading { border-top: 1px solid var(--cf-regua); padding-top: 14px; margin-block: 24px 28px }
.app-results-heading [data-results-count] { font-family: var(--rc-type-family-display); font-weight: 600; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--rc-color-white) }
.app-catalog-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 28px; align-items: stretch }
.app-catalog-grid > [data-place-card]:first-child { grid-column: span 7; grid-row: span 2 }
.app-catalog-grid > [data-place-card]:nth-child(2), .app-catalog-grid > [data-place-card]:nth-child(3) { grid-column: span 5 }
.app-catalog-grid > [data-place-card]:first-child .cf-card__foto { flex: 1; min-height: 0 }
.app-catalog-grid > [data-place-card]:first-child .cf-card__foto img { aspect-ratio: auto; min-height: 480px; height: 100% }
.app-catalog-grid > [data-place-card]:first-child .cf-card__corpo h2 { font-size: clamp(36px, 3.4vw, 48px) }

.app-catalog-grid > .cf-grade__coluna { grid-column: span 5 }
.app-selection { background: var(--rc-color-rio-950); border: 1px solid var(--rc-color-rio-600); padding: 36px 40px }
.app-selection h2 { font-size: 40px }

/* ---------- Planejamento ---------- */
.app-steps { border: 0; position: relative; --cf-progresso: 0 }
.app-steps::before { content: ""; position: absolute; left: 16px; right: 16px; top: 15px; height: 1px; background: var(--cf-regua) }
.app-steps::after { content: ""; position: absolute; left: 16px; top: 15px; height: 1px; width: calc(100% - 32px); background: var(--rc-color-white); transform: scaleX(var(--cf-progresso)); transform-origin: left; transition: transform var(--rc-duration-scene) var(--cf-ease) }
.app-steps li { position: relative; z-index: 1 }
.app-steps button { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 0 12px; align-items: center; padding: 0 8px 0 0; min-height: 44px; border: 0; font-size: 15px; color: var(--rc-color-rio-100) }
.app-step-number { width: 32px; height: 32px; border: 1px solid var(--cf-regua); background: var(--rc-color-rio-800); color: var(--rc-color-rio-100); font-family: var(--rc-type-family-display); font-weight: 600; font-size: 15px; border-radius: 50% }
.app-steps li.is-feita .app-step-number { border-color: var(--rc-color-white); color: var(--rc-color-white) }
.app-steps [aria-current="step"] button { color: var(--rc-color-white); border: 0 }
.app-steps [aria-current="step"] .app-step-number { background: var(--rc-color-white); border-color: var(--rc-color-white); color: var(--rc-color-rio-800) }
.app-trip-form { padding: 36px 40px 32px }
.app-step > h2 { font-size: 40px; line-height: 1 }
.app-interest-grid { display: grid; grid-template-columns: 1fr; gap: 10px }
.app-interest-choice { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 0 16px; align-items: center; padding: 10px 14px 10px 10px; border: 1px solid var(--cf-regua); border-radius: 0; background: var(--rc-surface); overflow: visible }
.app-interest-choice > img { width: 72px; height: 72px; aspect-ratio: 1; object-fit: cover; grid-row: 1 / 3 }
.app-interest-choice__copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; padding: 0; align-items: center }
.app-interest-choice strong { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 28px; line-height: 1 }
.app-interest-choice__copy > .rc-small { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--rc-muted) }
.app-interest-choice__status { grid-column: 2; grid-row: 1 / 3; margin: 0; padding: 0; font-size: 14px; color: var(--rc-color-rio-800); align-self: center }
.app-interest-choice:hover { border-color: var(--rc-color-rio-800) }
.app-interest-choice[aria-pressed="true"] { background: var(--rc-color-paper); border-color: var(--rc-color-rio-800); box-shadow: none }
.app-interest-choice[aria-pressed="true"] .app-interest-choice__copy { background: transparent; color: inherit }
.app-trip-summary { background: var(--rc-color-paper); border: 0; padding: 28px 26px 24px; display: grid; gap: 16px }
.app-trip-summary__heading { margin: 0 }
.app-trip-summary h2 { font-size: 32px }
.app-trip-summary ul { margin: 0; counter-reset: cf-item }
.app-trip-summary li { counter-increment: cf-item; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 0 10px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--cf-regua); font-weight: 600 }
.app-trip-summary li::before { content: counter(cf-item, decimal-leading-zero); font-family: var(--rc-type-family-display); font-weight: 500; font-size: 20px; color: var(--rc-color-rio-800); font-variant-numeric: tabular-nums }
.app-trip-summary li.cf-vazio { grid-template-columns: 1fr; font-weight: 400; color: var(--rc-muted) }
.app-trip-summary li.cf-vazio::before { content: none }
.app-trip-summary__details { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; border: 0; margin: 0; padding: 0 }
.app-trip-summary__details p { gap: 4px }
.app-trip-summary__details span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--rc-muted) }
.app-trip-summary__details strong { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 26px; line-height: 1; font-variant-numeric: tabular-nums }
.cf-dado { display: inline-flex; align-items: baseline; gap: 8px; font-variant-numeric: tabular-nums; line-height: 1 }
.cf-dado__numero { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 40px; letter-spacing: -.02em }
.cf-dado__unidade { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted) }
.app-success { border: 0; background: var(--rc-color-white); color: var(--rc-ink) }
.app-success__icon { border-radius: 0 }

/* ---------- Artigo ---------- */
.art { color: var(--rc-ink) }
.art-abertura { padding-block: clamp(40px, 6vw, 72px) 32px; display: grid; gap: 18px; max-width: 70ch }
.art-abertura h1 { font-size: clamp(48px, 5.6vw, 80px); line-height: .98; letter-spacing: -.02em; max-width: 16ch }
.art-abertura .rc-lead { max-width: 54ch }
.art-abertura__tags { display: flex; flex-wrap: wrap; gap: 8px }
.art-meta { display: grid; grid-template-columns: repeat(3, auto); gap: 16px 48px; justify-content: start; padding-top: 20px; border-top: 1px solid var(--cf-regua); margin-top: 8px }
.art-meta div { display: grid; gap: 6px }
.art-meta span { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted) }
.art-meta strong { font-weight: 600; font-size: 16px }
.art-capa { margin: 0 0 clamp(40px, 5vw, 64px) }
.art-capa img { width: 100%; height: min(72vh, 760px); object-fit: cover; display: block }
.art-capa figcaption { display: flex; justify-content: space-between; gap: 20px; font-size: 13px; color: var(--rc-muted); margin-top: 12px }
.art-corpo { display: grid; grid-template-columns: 200px minmax(0, var(--rc-component-article-measure)); gap: 48px; align-items: start }
.art-capitulos { position: sticky; top: 24px; display: grid; gap: 4px; padding-top: 6px }
.art-capitulos p { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted); margin-bottom: 10px }
.art-capitulos a { font-size: 15px; color: var(--rc-muted); text-decoration: none; min-height: 36px; display: flex; align-items: center }
.art-capitulos a:hover, .art-capitulos a[aria-current="true"] { color: var(--rc-action); font-weight: 600 }
.art-texto { display: grid; gap: 0 }
.art-texto p { font-size: 19px; line-height: 1.65; max-width: none }
.art-texto p + p { margin-top: 1.1em }
.art-texto h2 { font-size: clamp(34px, 3.2vw, 44px); line-height: 1.02; margin: 2.2em 0 .6em; scroll-margin-top: 112px }
.art-texto h2:first-child { margin-top: 0 }
.art-texto > p:first-of-type::first-letter { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 4.6em; line-height: .74; float: left; margin: .1em .14em 0 0; color: var(--rc-color-rio-800) }
.art-figura { margin: 2.4em 0 }
.art-figura img { width: 100%; display: block }
.art-figura figcaption { font-size: 13px; line-height: 1.45; color: var(--rc-muted); margin-top: 10px; max-width: 60ch }
.art-figura figcaption a { color: inherit }
.art-corpo { --art-recuo: 248px }
.art-figura--total { width: calc(100% + var(--art-recuo)); margin-left: calc(-1 * var(--art-recuo)); max-width: none }
.art-figura--total img { height: min(70vh, 720px); object-fit: cover }
.art-figura--total figcaption { padding-left: var(--art-recuo) }
.art-figura--lateral { display: grid; grid-template-columns: 3fr 2fr; gap: 28px; align-items: end }
.art-figura--lateral img { aspect-ratio: 4 / 5; object-fit: cover }
.art-figura--lateral figcaption { margin: 0 0 6px }
.art-citacao { margin: 2.4em 0; padding: 0; border: 0; display: grid; gap: 14px; max-width: 30ch }
.art-citacao p { font-family: var(--rc-type-family-serif); font-size: var(--rc-component-article-quote-size); line-height: 1.22; color: var(--rc-color-rio-800); max-width: none; margin: 0 }
.art-citacao p::before { content: "“"; color: var(--rc-color-earth-700) }
.art-citacao footer { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted) }
.art-cta { margin: 2.6em 0 0; padding: 28px; background: var(--rc-color-paper); display: grid; gap: 14px; justify-items: start }
.art-cta h2 { font-size: 32px; margin: 0; line-height: 1 }
.art-cta p { font-size: 16px; max-width: 48ch }
.art-creditos { margin-top: clamp(40px, 5vw, 64px); padding-top: 24px; border-top: 1px solid var(--cf-regua); display: grid; grid-template-columns: repeat(3, auto); gap: 16px 48px; justify-content: start; font-size: 14px; color: var(--rc-muted) }
.art-creditos div { display: grid; gap: 4px }
.art-creditos span { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase }
.art-creditos strong { color: var(--rc-ink); font-weight: 600 }
.art-creditos a { color: inherit }
.art-relacionados { padding-block: clamp(48px, 6vw, 88px) 0 }
.art-relacionados .cf-grade { margin-top: 28px }

/* ---------- Histórias (listagem) ---------- */
.cf-historias { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 28px; align-items: start }
.cf-historias > .cf-grade__7 { grid-column: span 7 } .cf-historias > .cf-grade__5 { grid-column: span 5 }

/* ---------- Rodapé editorial ---------- */
.app-footer { margin-top: clamp(64px, 8vw, 112px); padding-top: 56px; border-top: 1px solid var(--rc-color-rio-600) }
.app-footer__top { grid-template-columns: 1fr 1.1fr 1fr; gap: 48px; padding-bottom: 48px }
.app-footer__top p { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 30px; line-height: 1.08; max-width: 18ch; letter-spacing: -.01em }
.app-footer__top nav a { color: var(--rc-color-rio-100); font-size: 16px; transition: color var(--rc-duration-fast) }
.app-footer__top nav a:hover { color: var(--rc-color-white) }
.app-footer__bottom { border-top: 1px solid var(--rc-color-rio-600) }

/* ---------- Movimento: revelação uma vez, respeitando preferência ---------- */
html.js [data-reveal] { opacity: 0; transform: translateY(12px); transition: opacity var(--rc-duration-text) var(--cf-ease), transform var(--rc-duration-text) var(--cf-ease) }
html.js [data-reveal="foto"] { transform: scale(1.02); transition-duration: var(--rc-duration-reveal) }
html.js [data-reveal].is-visible { opacity: 1; transform: none }
html.js [data-reveal][data-reveal-ordem="2"] { transition-delay: 60ms } html.js [data-reveal][data-reveal-ordem="3"] { transition-delay: 120ms } html.js [data-reveal][data-reveal-ordem="4"] { transition-delay: 180ms }
.app-menu { animation: cf-menu var(--rc-duration-menu) var(--cf-ease) }
@keyframes cf-menu { from { opacity: 0; transform: translateY(-24px) } to { opacity: 1; transform: none } }
details > *:not(summary) { animation: cf-abrir var(--rc-duration-base) var(--cf-ease) }
@keyframes cf-abrir { from { opacity: 0; transform: translateY(-4px) } to { opacity: 1; transform: none } }

/* ---------- Documentação: mesma gramática ---------- */
.ds-example { border: 1px solid var(--rc-color-line); border-radius: 0; box-shadow: none }
.ds-material { border-radius: 0; box-shadow: none; border: 1px solid var(--rc-color-line); margin-top: 0 }
.ds-material:nth-child(2), .ds-material:nth-child(3) { margin-top: 0 }
.ds-territory { border-radius: 0; box-shadow: none; border: 1px solid var(--rc-color-line) }
.ds-feature img, .ds-photo-pair img { border-radius: 0; box-shadow: none }
.signature-official, .ds-logo-frame { border-radius: 0; box-shadow: none }
.ds-header { border-bottom: 1px solid var(--rc-color-line) }
.ds-simbolos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-top: 24px }
.ds-simbolo { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 0 16px; padding: 18px; border: 1px solid var(--rc-color-line); background: var(--rc-surface) }
.ds-simbolo .rc-icon { width: 40px; height: 40px; --cf-traco: 1.5; color: var(--rc-color-rio-800); grid-row: 1 / 3; align-self: start }
.ds-simbolo strong { font-family: var(--rc-type-family-display); font-weight: 500; font-size: 22px; line-height: 1 }
.ds-simbolo p { font-size: 14px; line-height: 1.45; color: var(--rc-muted); margin-top: 6px }
.ds-botoes-niveis { display: grid; gap: 20px }
.ds-botoes-niveis > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; align-items: center; padding-block: 14px; border-top: 1px solid var(--rc-color-line) }
.ds-botoes-niveis > div > span { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-muted) }
.ds-movimentos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px }
.ds-movimentos > div { padding: 20px; border: 1px solid var(--rc-color-line); display: grid; gap: 6px; font-size: 15px }
.ds-movimentos h4 { font-size: 22px; margin: 0 }
.ds-movimentos .cf-tempo { font-family: var(--rc-type-family-display); font-weight: 600; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--rc-color-earth-700) }
.ds-cards-formatos { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; margin-top: 24px }

/* ---------- Responsivo ---------- */
@media (max-width: 1120px) {
  .cf-capa__texto > .rc-container { grid-template-columns: minmax(0, 1fr) 340px; gap: 24px 40px }
  .cf-materia__foto, .cf-materia--invertida .cf-materia__foto { grid-column: 1 / 9 }
  .cf-materia__corpo, .cf-materia--invertida .cf-materia__corpo { grid-column: 6 / 13; padding: 26px 26px 20px }
  .cf-materia--invertida .cf-materia__foto { grid-column: 5 / 13 }
  .cf-materia--invertida .cf-materia__corpo { grid-column: 1 / 8 }
  .app-catalog-grid > [data-place-card]:first-child { grid-column: span 6; grid-row: auto }
  .app-catalog-grid > [data-place-card]:nth-child(2), .app-catalog-grid > [data-place-card]:nth-child(3) { grid-column: span 6 }
  .art-corpo { grid-template-columns: 160px minmax(0, 1fr); gap: 32px; --art-recuo: 192px }
  .app-header .rc-logo--complete { width: 200px }
}
@media (max-width: 980px) {
  .app-header__inner { grid-template-columns: auto 1fr; row-gap: 12px }
  .app-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; border-top: 1px solid var(--rc-color-line); gap: 28px }
  .app-header--foto .app-nav { border-top-color: rgba(255,255,255,.18) }
  .app-header__acoes { grid-column: 2; grid-row: 1 }
  .cf-capa__foto img { height: min(78vh, 680px) }
  .cf-capa__texto > .rc-container { grid-template-columns: 1fr }
  .cf-sumario { margin-bottom: 0; margin-top: 8px }
  .cf-sumario__opcoes { grid-template-columns: 1fr 1fr 1fr }
  .cf-opcao { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; padding: 10px }
  .cf-opcao > img { display: none }
  .cf-opcao__nome { font-size: 22px }
  .cf-sumario__acoes { grid-template-columns: 1fr 1fr }
  .cf-depois-da-capa { padding-top: clamp(48px, 7vw, 80px) }
  .cf-materia, .cf-materia--invertida { grid-template-columns: 1fr; gap: 0 }
  .cf-materia__foto, .cf-materia--invertida .cf-materia__foto { grid-column: 1; grid-row: 1 }
  .cf-materia__corpo, .cf-materia--invertida .cf-materia__corpo { grid-column: 1; grid-row: 2; margin: calc(-1 * var(--cf-sobreposicao)) var(--cf-sobreposicao) 0 }
  .cf-materia__credito, .cf-materia--invertida .cf-materia__credito { grid-column: 1; padding-inline: var(--cf-sobreposicao) }
  .cf-convite { grid-template-columns: 1fr }
  .app-catalog-filters { grid-template-columns: 1fr; gap: 16px }
  .app-menu { grid-template-columns: 1fr }
  .app-menu__foto { display: none }
  .art-corpo { grid-template-columns: 1fr; --art-recuo: 0px }
  .art-capitulos { position: static; display: flex; flex-wrap: wrap; gap: 4px 20px; padding-bottom: 20px; border-bottom: 1px solid var(--cf-regua); margin-bottom: 28px }
  .art-capitulos p { width: 100%; margin: 0 }
  .cf-historias > * { grid-column: span 6 !important }
  .ds-movimentos { grid-template-columns: 1fr }
}
@media (max-width: 760px) {
  .app-header__inner { grid-template-columns: minmax(0, 1fr) auto; min-height: 0; padding-block: 12px; column-gap: 12px }
  .app-brand { grid-column: 1; grid-row: 1; width: auto }
  .app-header .rc-logo--complete { width: 170px }
  .app-header__acoes { grid-column: 2; grid-row: 1; justify-self: end }
  .app-header__plan { display: none }
  .app-header--foto.is-solida .app-header__plan { display: none }
  .app-nav { display: none }
  .app-menu-botao .cf-rotulo { display: none }
  .app-header--foto.is-solida .rc-logo--complete { width: 150px }
  .cf-capa__foto img { height: min(72vh, 560px) }
  .cf-capa__texto { padding-bottom: 24px }
  .cf-capa__cabeca h1 { font-size: clamp(52px, 15vw, 72px); max-width: none }
  .cf-capa__cabeca p { font-size: 17px }
  .cf-capa__acoes .rc-btn { flex: 1 1 auto }
  .cf-capa__credito { font-size: 11px }
  .cf-sumario { padding: 22px 18px 18px }
  .cf-sumario h2 { font-size: 28px }
  .cf-sumario__opcoes { grid-template-columns: 1fr }
  .cf-opcao { grid-template-columns: 56px minmax(0, 1fr) auto }
  .cf-opcao > img { display: block }
  .cf-sumario__acoes { grid-template-columns: 1fr }
  .cf-materias { gap: 36px }
  .cf-materia__corpo, .cf-materia--invertida .cf-materia__corpo { padding: 22px 20px 18px }
  .cf-materia__corpo h3 { font-size: 36px }
  .cf-materia__corpo p { font-size: 16px }
  .cf-materia__acoes { flex-wrap: wrap }
  .cf-convite { padding: 32px 22px }
  .cf-convite h2 { font-size: 40px; max-width: none }
  .cf-convite .rc-btn { width: 100% }
  .cf-cabeca > h1, .cf-cabeca > h2 { max-width: none }
  .app-page-heading { padding-block: 32px 24px }
  .app-catalog-filters { padding: 18px }
  .app-filter-group .rc-chip { font-size: 15px; padding-inline: 12px }
  .app-catalog-grid { grid-template-columns: 1fr; gap: 24px }
  .app-catalog-grid > [data-place-card]:first-child, .app-catalog-grid > [data-place-card]:nth-child(2), .app-catalog-grid > [data-place-card]:nth-child(3) { grid-column: 1 / -1; grid-row: auto }
  .app-catalog-grid > [data-place-card]:first-child .cf-card__foto img { aspect-ratio: 4 / 3; min-height: 0; height: auto }
  .app-catalog-grid > [data-place-card]:first-child .cf-card__foto { flex: none }
  .cf-card__corpo { padding: 20px 18px 18px }
  .cf-card__credito { padding: 0 18px 16px }
  .cf-card__acoes { flex-wrap: wrap }
  .cf-grade { grid-template-columns: 1fr }
  .cf-grade > * { grid-column: 1 / -1 !important }
  .cf-historias { grid-template-columns: 1fr }
  .cf-historias > * { grid-column: 1 / -1 !important }
  .app-selection { padding: 28px 20px }
  .app-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); border: 0 }
  .app-steps button { grid-template-columns: 32px; font-size: 12px; padding: 0; min-height: 44px; border-top: 0 }
  .app-steps button > span:last-child { display: none }
  .app-steps [aria-current="step"] button > span:last-child { display: block; position: absolute; left: 0; top: 40px; white-space: nowrap; font-size: 13px }
  .app-steps li:nth-child(n+3)[aria-current="step"] button > span:last-child { left: auto; right: 0 }
  .app-planner .app-steps { margin-bottom: 56px }
  .app-trip-form { padding: 22px 18px 20px }
  .app-interest-choice { grid-template-columns: 56px minmax(0, 1fr) auto; flex-direction: row }
  .app-interest-choice > img { width: 56px; height: 56px }
  .app-interest-choice strong { font-size: 22px }
  .app-interest-choice__status { font-size: 12px }
  .app-trip-summary { padding: 24px 18px 20px }
  .app-trip-summary ul { display: grid; gap: 0 }
  .app-trip-summary li { border-bottom: 1px solid var(--cf-regua); padding: 10px 0 }
  .app-trip-summary__details { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px }
  .app-trip-summary__details strong { font-size: 22px }
  .art-abertura h1 { font-size: clamp(44px, 13vw, 60px); max-width: none }
  .art-meta { grid-template-columns: 1fr 1fr; gap: 12px 24px }
  .art-capa img { height: auto; aspect-ratio: 4 / 3 }
  .art-texto p { font-size: 18px; line-height: 1.6 }
  .art-figura--lateral { grid-template-columns: 1fr; gap: 10px }
  .art-figura--total img { height: auto; aspect-ratio: 4 / 3 }
  .art-citacao { max-width: none }
  .art-creditos { grid-template-columns: 1fr 1fr; gap: 12px 24px }
  .app-footer__top { grid-template-columns: 1fr; gap: 28px }
  .app-footer__top p { font-size: 26px }
  .app-menu__painel { padding: 24px 20px }
  .app-menu__eixos a { font-size: 30px }
  .ds-botoes-niveis > div { grid-template-columns: 1fr; gap: 8px }
  .ds-cards-formatos { grid-template-columns: 1fr }
  .ds-cards-formatos > * { grid-column: 1 / -1 !important }
}
@media (max-width: 380px) {
  .app-header .rc-logo--complete { width: 140px }
  .cf-capa__cabeca h1 { font-size: 48px }
  .app-trip-summary__details { grid-template-columns: 1fr }
}
@media (prefers-reduced-motion: reduce) {
  html.js [data-reveal] { opacity: 1; transform: none; transition: none }
  .app-menu, details > *:not(summary) { animation: none }
  .rc-btn, .rc-btn .rc-icon, .app-text-link .rc-icon, .rc-link .rc-icon, .cf-card__foto img, .cf-materia__foto img, .app-card-photo img, .app-steps::after { transition: none }
  .rc-btn:hover .rc-icon, .app-text-link:hover .rc-icon, .cf-card:hover .cf-card__foto img, .cf-materia:hover .cf-materia__foto img, .app-place-card:hover .app-card-photo img { transform: none }
  .rc-btn:active { transform: none }
  .rc-btn[aria-busy="true"]::before { animation: none; transform: none; opacity: .5 }
  .rc-skeleton::after { animation: none; opacity: 0 }
  .cf-aviso, .cf-aviso.is-saindo { animation-duration: 1ms }
  .rc-icon .seta-haste, .rc-icon .seta-ponta { transition: none }
  :is(.rc-btn, .app-text-link, .rc-link):hover [data-icon="arrow-right"] :is(.seta-haste, .seta-ponta) { transform: none }
}
@media (forced-colors: active) {
  .rc-btn, .rc-chip, .rc-tag, .cf-card, .cf-materia__corpo, .cf-sumario, .app-trip-summary, .app-interest-choice, .cf-convite { border: 1px solid CanvasText }
  .app-steps::after, .app-steps::before { background: CanvasText }
  .cf-capa__foto::after { display: none }
  .rc-chip[aria-pressed="true"], .app-interest-choice[aria-pressed="true"], .cf-opcao[aria-pressed="true"] { outline: 2px solid Highlight }
}
