/* RDRVCV · RDR-0053 v18 · no ar para todos (v18: não corta mais a lista de idiomas no celular; celular: lupa na 2ª linha do topo, à direita, quando não cabe; sem folga no fim da lista; abre em 240ms + 240ms; fecha em 120ms + 120ms; teste ?busca=neg: só a lupa, abre no topo; campo e lista com fundo do tema, sem negativo; lista desce; placeholder preto/branco; lupa que abre no topo, lista em negativo sem desfoque; hover do X = inverte; traço dos cards; seleção preta/branca; fechar = botão de ícone quadrado do DS, barra quadrada, depois do e-mail) · busca no topo (assets/search.js). Só tokens do design system, sem !important. */
/* gatilho no topo: o topo é transparente e mistura em negativo (difference) com o fundo, então o gatilho só tem traço, sem fundo */
.search-trigger { flex: none; display: flex; align-items: center; gap: var(--space-2); width: clamp(220px, 24vw, 360px); height: 40px; padding: 0 var(--space-2) 0 var(--space-3); border: var(--stroke-3) solid currentColor; border-radius: var(--radius-0); background: none; cursor: text; text-align: left; transition: opacity var(--duration-quick) var(--ease-out); }
.search-trigger__ph { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; opacity: .7; }
.search-trigger__kbd { flex: none; padding: 2px var(--space-2); border: var(--stroke-1) solid currentColor; border-radius: var(--radius-0); font-family: var(--font-body); opacity: .7; }
.search-trigger:hover .search-trigger__ph, .search-trigger:hover .search-trigger__kbd { opacity: 1; }
.search-trigger:focus-visible { outline: var(--stroke-2) solid currentColor; outline-offset: 3px; }
.search-trigger .search__icon, .search__icon { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; }
.search-active .topbar.is-hidden { transform: none; opacity: 1; }
.search-active .search-trigger { opacity: 0; }

/* a camada da busca */
.search { position: fixed; inset: 0; z-index: 60; }
.search[hidden] { display: none; }
.search .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.search__scrim { position: absolute; inset: 0; background: color-mix(in srgb, var(--surface-default) 72%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity var(--duration-base) var(--ease-out); }
.search__box { position: absolute; top: 12px; left: var(--search-left, var(--margin)); right: var(--margin); transform: translateY(-6px); opacity: 0; transition: opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out); }
.search.is-open .search__scrim, .search.is-open .search__box { opacity: 1; }
.search.is-open .search__box { transform: none; }
@media (prefers-reduced-motion: reduce) { .search__scrim, .search__box { transition: none; } }
.search__bar { display: flex; align-items: center; gap: var(--space-3); }
.search__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--space-2); height: 40px; padding: 0 var(--space-2) 0 var(--space-3); border: var(--stroke-3) solid var(--border-strong); border-radius: var(--radius-0); background: var(--surface-default); color: var(--text-primary); cursor: text; }
.search__input { flex: 1; min-width: 0; height: 100%; border: 0; padding: 0; background: none; color: var(--text-primary); outline: none; -webkit-appearance: none; appearance: none; }
.search__input::placeholder { color: var(--text-muted); opacity: 1; }
.search__input::-webkit-search-cancel-button { display: none; }
.search__clear { flex: none; padding: var(--space-1) var(--space-2); border: 0; background: none; color: var(--text-muted); cursor: pointer; }
/* v03: fechar = botão de ícone quadrado do design system (button--secondary button--icon button--m, 40×40) */
.search__close.button--icon { flex: none; width: 40px; height: 40px; padding: 0; border: var(--stroke-3) solid var(--border-strong); }   /* v04: mesmo traço dos cards (--stroke-3, --border-strong) na barra, no X e na lista */
/* v04: hover igual aos outros botões quadrados de ícone do site (setas do carrossel, fechar do currículo): inverte */
.search__close.button--icon:hover, .search__close.button--icon:focus-visible { background: var(--surface-inverse); color: var(--text-inverse); border-color: var(--border-strong); }
.search__x { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: square; }
.search__clear:hover, .search__clear:focus-visible { color: var(--text-primary); }
.search__clear[hidden] { display: none; }
.search__panel { margin-top: var(--space-3); max-height: calc(100vh - 96px); overflow: auto; overscroll-behavior: contain; background: var(--surface-default); color: var(--text-primary); border: var(--stroke-3) solid var(--border-strong); box-shadow: 0 24px 48px color-mix(in srgb, var(--text-primary) 14%, transparent); }
.search__status { margin: 0; padding: var(--space-4) var(--space-4) var(--space-2); color: var(--text-muted); }
.search__none { display: block; margin-bottom: var(--space-1); color: var(--text-primary); text-transform: none; letter-spacing: 0; font-weight: 500; }
.search__list { list-style: none; margin: 0; padding: 0; }   /* v14: sem folga embaixo; o último resultado selecionado encosta na linha do rodapé */
.search__item { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: var(--space-4); align-items: center; padding: var(--space-3) var(--space-4); color: inherit; text-decoration: none; transition: background-color var(--duration-quick) var(--ease-out); }
.search__item:hover, .search__item[aria-selected="true"] { background: var(--text-primary); color: var(--text-inverse); }   /* v04: seleção em preto (claro) / branco (escuro), como o hover dos cards */
.search__item:hover :is(.search__title, .search__sub, .search__tags, .search__go), .search__item[aria-selected="true"] :is(.search__title, .search__sub, .search__tags, .search__go) { color: var(--text-inverse); }
.search__item:focus-visible { outline: var(--stroke-2) solid var(--state-focus); outline-offset: -2px; }
.search__thumb { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--border-soft); }
.search__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.search__text { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.search__tags { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); color: var(--text-muted); }
.search__chip { padding: 0 6px; border: var(--stroke-1) solid currentColor; font-weight: 600; }
.search__meta::before { content: "· "; }
.search__title { font: 600 18px/24px var(--font-display); color: var(--text-primary); text-wrap: balance; }
.search__sub { color: var(--text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-wrap: pretty; }
.search__item mark { background: var(--surface-accent); color: var(--text-on-accent); padding: 0 1px; }
.search__go { font: 400 20px/1 var(--font-display); color: var(--text-muted); transition: transform var(--duration-base) var(--ease-out), color var(--duration-quick) var(--ease-out); }
.search__item:hover .search__go, .search__item[aria-selected="true"] .search__go { transform: translateX(4px); color: var(--text-primary); }
.search__item.is-here { opacity: .6; }
.search__keys { margin: 0; padding: var(--space-2) var(--space-4) var(--space-3); border-top: var(--stroke-1) solid var(--border-soft); color: var(--text-muted); }

/* tablet e celular: só a lupa no topo; a busca abre em tela cheia */
@media (max-width: 1023px) {
  .search-trigger { width: 32px; height: 40px; padding: 0; justify-content: center; border: 0; cursor: pointer; }
  .search-trigger__ph, .search-trigger__kbd { display: none; }
  .search__scrim { background: var(--surface-default); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .search__box { inset: 0; top: 0; left: 0; right: 0; width: auto; transform: none; display: flex; flex-direction: column; }
  .search.is-open .search__box { transform: none; }
  .search__bar { height: 64px; flex: none; padding: 0 var(--margin); border-bottom: var(--stroke-1) solid var(--border-soft); }
  .search__panel { flex: 1; margin: 0; max-height: none; border: 0; box-shadow: none; }
  .search__keys { display: none; }
  .search-active body { overflow: hidden; }
}
@media (max-width: 767px) {
  .search__item { grid-template-columns: 88px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-3) var(--margin); }
  .search__go { display: none; }
  .search__status { padding: var(--space-4) var(--margin) var(--space-2); }
  .search__title { font-size: 16px; line-height: 22px; }
}
/* celular estreito: a lupa entra sem empurrar o e-mail para cima do idioma */
@media (max-width: 420px) {
  .search-trigger { width: 24px; }
  .has-search .topbar { gap: 6px; }
  .has-search .topbar .copy-mail__text { font-size: 9px; letter-spacing: .02em; }
  .has-search .topbar .topbar__controls { gap: 6px; }
}

/* v10 · TESTE (só com ?busca=neg)
   No topo fica só a lupa. Ao clicar, ela abre espaço ali mesmo (largura animada) e empurra o e-mail para o lado.
   O campo e a lista têm o fundo do tema (branco no claro, preto no escuro), sem negativo nem desfoque:
   o campo é uma peça à parte (.search-float), posta sobre o espaço aberto no topo (o topo mistura em negativo). */
.search-inline { flex: none; display: flex; align-items: center; justify-content: flex-end; width: 40px; height: 40px; transition: width var(--duration-slow) var(--ease-out); }
.search-inline.is-open { width: clamp(280px, 28vw, 420px); }
.search-inline__toggle { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; cursor: pointer; transition: opacity var(--duration-quick) var(--ease-out); }
.search-inline.is-open .search-inline__toggle { opacity: 0; pointer-events: none; }
.search-inline__toggle:focus-visible { outline: var(--stroke-2) solid currentColor; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .search-inline, .search-float, .search-inline__toggle { transition: none; } }
.search-active .topbar.is-hidden { transform: none; opacity: 1; }
.search-active .topbar.is-hidden > * { pointer-events: auto; }

.search-float { position: fixed; left: 0; top: 0; width: 40px; height: 40px; z-index: 61; display: flex; align-items: center; gap: var(--space-2); opacity: 0; pointer-events: none; transition: opacity var(--duration-quick) var(--ease-out); }
.search-float.is-open { transition-duration: var(--duration-base); }
.search-float.is-open { opacity: 1; pointer-events: auto; }
.search-float .sr-only, .search .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.search-float__field { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--space-2); height: 40px; padding: 0 var(--space-2) 0 var(--space-3); border: var(--stroke-3) solid var(--border-strong); background: var(--surface-default); color: var(--text-primary); overflow: hidden; cursor: text; }
.search-float__field .search__input { flex: 1; min-width: 0; height: 100%; border: 0; padding: 0; background: none; color: var(--text-primary); outline: none; -webkit-appearance: none; appearance: none; }
.search-float__field .search__input::placeholder { color: var(--text-primary); opacity: 1; }
.search-float__field .search__input::-webkit-search-cancel-button { display: none; }
.search-float__field .search__clear { flex: none; padding: var(--space-1); border: 0; background: none; color: var(--text-muted); cursor: pointer; }
.search-float__field .search__clear:hover { color: var(--text-primary); }
.search-float__field .search__clear[hidden] { display: none; }
.search-float__close.button--icon { flex: none; width: 40px; height: 40px; padding: 0; border: var(--stroke-3) solid var(--border-strong); background: var(--surface-default); color: var(--text-primary); }
.search-float__close.button--icon:hover, .search-float__close.button--icon:focus-visible { background: var(--surface-inverse); color: var(--text-inverse); border-color: var(--border-strong); }

/* lista: fundo do tema, abre alinhada à esquerda do campo e desce */
.search--neg { position: fixed; inset: 64px 0 auto 0; z-index: 60; pointer-events: none; }
.search--neg .search__box { position: absolute; top: var(--space-2); left: var(--search-left, var(--margin)); right: var(--margin); width: auto; opacity: 1; pointer-events: auto;
  clip-path: inset(0 0 100% 0); transform: translateY(-24px); transition: clip-path var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out); }
.search--neg.is-open .search__box { clip-path: inset(0); transform: none; }
.search--neg .search__panel { margin: 0; max-height: calc(100vh - 96px); box-shadow: none; }   /* sem sombra, como os cards */
@keyframes search-drop { from { opacity: 0; transform: translateY(-16px); } }
.search--neg.is-entering .search__list li, .search--neg.is-entering .search__status, .search--neg.is-entering .search__keys { animation: search-drop var(--duration-base) var(--ease-out) both; animation-delay: calc(60ms + var(--i, 0) * 30ms); }
.search--neg.is-entering .search__keys { --i: 5; }
@media (prefers-reduced-motion: reduce) { .search--neg .search__box { transition: none; clip-path: none; transform: none; } .search--neg.is-entering .search__list li, .search--neg.is-entering .search__status, .search--neg.is-entering .search__keys { animation: none; } }
@media (max-width: 1023px) {
  .search--neg .search__box { inset: var(--space-2) var(--margin) auto var(--margin); display: block; }
  .search--neg .search__panel { max-height: calc(100vh - 80px); border: var(--stroke-3) solid var(--border-strong); }
  .search-inline.is-open { width: min(360px, calc(100vw - 2 * var(--margin) - 230px)); }
}
/* celular: o espaço aberto ocupa o topo; e-mail, idioma e tema saem de lado com o mesmo movimento */
@media (max-width: 767px) {
  .has-search-inline .topbar .copy-mail { max-width: 220px; transition: max-width var(--duration-slow) var(--ease-out), opacity var(--duration-base) var(--ease-out); }
  .search-active .topbar .copy-mail { max-width: 0; opacity: 0; }
  /* v18: só corta enquanto a busca está aberta; fechada, não pode cortar a lista de idiomas nem a dica do e-mail */
  .search-active .topbar .copy-mail, .search-active .topbar .topbar__controls { overflow: hidden; }
  .has-search-inline .topbar .topbar__controls { max-width: 200px; transition: max-width var(--duration-slow) var(--ease-out), opacity var(--duration-base) var(--ease-out); }
  .search-active .topbar .topbar__controls { max-width: 0; opacity: 0; pointer-events: none; }
  .search-active .topbar .topbar__brand { flex: none; }
  .search-inline, .search-inline__toggle { width: 32px; }
  .search-inline.is-open { flex: 1; width: auto; min-width: 0; }
  .search--neg .search__item { padding: var(--space-3); }
}

/* v11/v12 · fechar = abrir ao contrário, mais rápido: a lista sobe e some (120ms), depois o campo se recolhe (120ms).
   A transição usada é a do estado de chegada: aberto = devagar (480ms), fechado = rápido (120ms). */
.search--neg.is-closing .search__box { transition-duration: var(--duration-quick); transition-timing-function: cubic-bezier(.4, 0, 1, 1); }
.search-inline:not(.is-open) { transition-duration: var(--duration-quick); }
.search-inline.is-open { transition-duration: var(--duration-base); }   /* v13: abrir em 240ms */
@media (max-width: 767px) {
  .has-search-inline .topbar .copy-mail, .has-search-inline .topbar .topbar__controls { transition-duration: var(--duration-quick); }
  .search-active .topbar .copy-mail, .search-active .topbar .topbar__controls { transition-duration: var(--duration-base); }
}

/* v15 · celular: quando a lupa não cabe na linha do topo (o search.js mede: nada pode apertar, sobrepor ou passar da margem),
   ela desce para uma 2ª linha do topo, à direita (v16). A 1ª linha fica exatamente como era. Ao abrir, o campo cresce nessa linha até a largura toda. */
.search-inline__space { display: none; }
.topbar.search-measure > * { flex-shrink: 0; min-width: auto; max-width: none; }
.search-row body { padding-top: 112px; }
.search-row .search-inline { position: absolute; left: var(--margin); right: var(--margin); top: 64px; width: auto; height: 40px; display: flex; justify-content: flex-end; }   /* v16: à direita */
.search-row .search-inline.is-open { width: auto; flex: none; }
.search-row .search-inline__toggle { position: absolute; right: 0; top: 0; width: 40px; justify-content: flex-end; }
.search-row .search-inline__space { display: block; width: 40px; height: 40px; transition: width var(--duration-quick) var(--ease-out); }
.search-row .search-inline.is-open .search-inline__space { width: 100%; transition-duration: var(--duration-base); }
.search-row .search--neg { top: 104px; }
.search-row.search-active .topbar .copy-mail, .search-row.search-active .topbar .topbar__controls { max-width: 220px; opacity: 1; pointer-events: auto; overflow: visible; }
