/*
 * Página pública do biosite. Usa só tokens (tokens.css): camada 2 da plataforma e camada 3 `--bio-*`,
 * esta derivada no servidor a partir do tema da campanha (apps/api/src/cms/view.ts).
 * Exceções: breakpoints em `em` (CSS não aceita var() em @media); durações longas de animação em ms.
 */
:root { font-family: var(--font-ui); color-scheme: light; --bio-radius-card: min(var(--bio-radius), var(--radius-lg)); }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bio-bg); color: var(--bio-text); line-height: var(--leading-body); background-image: var(--bio-bg-image, radial-gradient(ellipse at top left, color-mix(in srgb, var(--color-accent) 11%, transparent), transparent 55%)); }
/* T16: fundo com imagem. O véu mínimo (--bio-veil) vem do servidor e garante o contraste do texto mesmo no pior pixel. */
.bio-backdrop { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.bio-backdrop img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bio-backdrop span { position: absolute; inset: 0; background: color-mix(in srgb, var(--bio-surface) var(--bio-veil, 70%), transparent); }
a { color: inherit; text-underline-offset: 0.1875rem; }
button, input, select { font: inherit; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible { outline: var(--stroke-3) solid var(--color-focus); outline-offset: var(--space-1); }
main { max-width: var(--width-biosite); margin: 2rem auto; background: var(--bio-surface); border: var(--stroke-1) solid var(--bio-border); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); }
header, main section, footer { padding: 2rem; }
header { padding-bottom: 1rem; }
h1 { font-family: var(--bio-font-display); font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.1; letter-spacing: -0.05em; }
h2 { font-family: var(--bio-font-display); line-height: 1.2; letter-spacing: -0.03em; }
h3 { line-height: 1.3; }
.eyebrow, .badge { font-size: 0.7rem; font-weight: 650; letter-spacing: 0.08em; }
.demo-notice { background: var(--color-surface-tint); color: var(--color-text); text-align: center; font-size: 0.75rem; padding: 0.5rem; }
.campaign-banner { position: relative; overflow: hidden; }
.campaign-banner img { width: 100%; height: 100%; object-fit: cover; object-position: 50% var(--position); filter: blur(var(--blur)); transform: scale(1.04); }
.campaign-banner span { position: absolute; inset: 0; background: color-mix(in srgb, var(--color-scrim) calc(var(--shade) * 100%), transparent); /* opacidade vem do slider, em fração */ }
.campaign-avatar { width: 5rem; height: 5rem; object-fit: cover; border-radius: 50%; border: 0.25rem solid var(--bio-surface); }
.rich-body p { margin: 0.7rem 0; }
.rich-body ul { padding-left: 1.3rem; }
.rich-body h2 { font-size: 1.4rem; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.section-heading > div { display: flex; gap: 0.4rem; }
button { border: var(--stroke-1) solid var(--bio-border); border-radius: var(--radius-sm); padding: 0.6rem 0.9rem; background: transparent; color: inherit; min-height: var(--tap-min); }
button[aria-pressed=true], .primary { background: var(--bio-brand); color: var(--bio-on-brand); border-color: var(--bio-brand); }
.contents { display: grid; gap: 1rem; margin-top: 1.5rem; }
.contents[data-view-mode=grid] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contents article { border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); padding: 1.2rem; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); }
.contents h3 { font-size: 1.2rem; }
.contents p { font-size: 0.9rem; }
.primary { display: flex; align-items: center; justify-content: space-between; padding: 0.7rem 1rem; border-radius: var(--bio-radius); text-decoration: none; font-size: 0.85rem; margin-top: auto; min-height: 3rem; }
/* Estilo do botão escolhido pelo criador: classe no body, nunca variável. */
body.bio-button-outline .primary { background: transparent; color: var(--bio-text); border: var(--stroke-2) solid var(--bio-brand); }
body.bio-button-soft .primary { background: color-mix(in srgb, var(--bio-brand) 14%, var(--bio-surface)); color: var(--bio-text); border-color: transparent; }
.contents[data-view-mode=list] article { display: grid; grid-template-columns: 1fr auto; column-gap: 1.5rem; align-items: center; }
.contents[data-view-mode=list] .offer-actions { grid-column: 2; grid-row: 1 / 4; align-self: center; max-width: 17.5rem; }
.contents[data-view-mode=list] .badge, .contents[data-view-mode=list] h3, .contents[data-view-mode=list] .rich-body { grid-column: 1; }
footer { border-top: var(--stroke-1) solid var(--bio-border); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: 0.8rem; }
.consent { position: fixed; bottom: 0; left: 0; right: 0; max-height: 30dvh; overflow-y: auto; display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin: auto; background: var(--color-surface); color: var(--color-text); border-top: var(--stroke-1) solid var(--color-border-strong); box-shadow: var(--shadow-md); padding: var(--space-3) var(--space-4); z-index: 10; }
.consent[hidden] { display: none; }
.consent p { flex: 1 1 16rem; margin: 0; font-size: var(--text-xs); }
.consent > div { display: flex; flex: 0 1 auto; gap: var(--space-2); }
.consent button { flex: 1; min-width: 6rem; border-color: var(--color-border-strong); background: var(--color-surface); color: var(--color-text); }
body:has(.consent:not([hidden])) { padding-bottom: calc(var(--space-16) * 2); }
dialog { position: fixed; width: min(90vw, 31.25rem); padding: 2rem; border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); color: var(--bio-text); }
dialog::backdrop { background: color-mix(in srgb, var(--color-scrim) 60%, transparent); }
.close { position: absolute; right: 0.5rem; top: 0.5rem; border: 0; font-size: 1.5rem; min-width: var(--tap-min); min-height: var(--tap-min); }
[hidden] { display: none !important; }
.legal-links { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
footer > a:not(.made-by), .legal-links a { display: inline-flex; align-items: center; min-height: var(--tap-min); }
/* Captura sem JS: formulário do servidor dentro de <noscript>; com JS o <dialog> é quem captura. */
.nojs-capture { margin-top: var(--space-3); padding: var(--space-3) var(--space-4); border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); color: var(--bio-text); }
.nojs-capture summary { display: flex; align-items: center; min-height: var(--tap-min); cursor: pointer; font-weight: 650; }
.nojs-capture summary:focus-visible { outline: var(--stroke-3) solid var(--color-focus); outline-offset: var(--space-1); }
.nojs-capture label { display: block; margin-top: var(--space-3); }
.nojs-capture input[type=text], .nojs-capture input[type=email], .nojs-capture input[type=tel] { width: 100%; margin-top: var(--space-1); padding: var(--space-3); border: var(--stroke-1) solid var(--bio-border); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text); }
.nojs-capture .check { display: flex; gap: var(--space-2); align-items: flex-start; }
.nojs-capture .check input { margin-top: var(--space-1); }
.nojs-capture .field-error { margin: var(--space-1) 0 0; color: var(--color-danger); font-size: var(--text-sm); }
.nojs-capture small { display: block; color: var(--bio-muted); }
.nojs-capture button.primary { margin-top: var(--space-4); }

@media (max-width: 37.5em) {
  main { margin: 1rem; }
  .section-heading { align-items: start; flex-direction: column; }
  header, main section, footer { padding: 1.25rem; }
  .contents[data-view-mode=grid] { grid-template-columns: 1fr; }
  .contents[data-view-mode=list] article { display: flex; }
  .contents[data-view-mode=list] .primary { max-width: none; width: 100%; }
  .consent > div { width: 100%; }
}

body[data-template=library] main { max-width: var(--width-biosite-wide); }
body[data-template=library] header { text-align: center; max-width: var(--width-biosite); margin: auto; }
body[data-template=library] .contents[data-view-mode=grid] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body[data-template=editorial] main { max-width: var(--width-biosite-editorial); }
body[data-template=editorial] h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.5rem, 6vw, 4.5rem); }
body[data-template=editorial] .rich-body { max-width: var(--width-reading); }
@media (max-width: 46.875em) { body[data-template=library] .contents[data-view-mode=grid] { grid-template-columns: 1fr; } }

/* Lista de links e destaque */
.link-stack, .featured { padding: 0 2rem 1.4rem; }
.link-stack h2, .featured + .link-stack h2 { margin: 0 0 0.75rem; font-size: 1rem; }
.bio-row { display: flex; align-items: stretch; gap: 0.45rem; margin-top: 0.55rem; }
.bio-link { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; min-height: var(--link-height); padding: 0.8rem 1rem; border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); color: inherit; text-align: left; text-decoration: none; }
.bio-link strong, .bio-link em { display: block; }
.bio-link em, .bio-link small { color: var(--bio-muted); font-size: 0.75rem; font-style: normal; font-weight: 400; }
.bio-link em { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.offer-actions { display: flex; align-items: center; gap: var(--space-2); margin-top: auto; padding-top: var(--space-4); }
/* Card: rótulo de acesso com respiro entre a capa e os botões; descrição vazia não ocupa espaço. */
.contents article > .badge { margin-top: var(--space-1); color: var(--bio-muted); }
.contents article > .rich-body:empty { display: none; }
.contents article > .rich-body:not(:empty) { margin-top: var(--space-2); }
.offer-actions .primary { flex: 1; }
.share { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 var(--tap-min); width: var(--tap-min); height: var(--tap-min); padding: 0; border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); color: var(--bio-text); text-decoration: none; }
#lead-purpose { margin: 0; color: var(--bio-text); font-size: 0.92rem; line-height: 1.45; }
#lead-submit { width: 100%; margin-top: 1.15rem; justify-content: center; }
@media (max-width: 37.5em) { .link-stack, .featured { padding-inline: 1.25rem; } }

/* Diálogo de captura */
#gate { max-height: calc(100dvh - 2rem); overflow: auto; width: min(94vw, 27.5rem); padding: 1.15rem 1.15rem 1.25rem; }
#gate form label, #gate .check { display: block; margin-top: 0.85rem; }
#gate input[type=text], #gate input[type=email], #gate input[type=tel] { width: 100%; margin-top: 0.35rem; padding: 0.75rem; border: var(--stroke-1) solid var(--bio-border); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-text); }
#gate .check { display: flex; gap: 0.6rem; align-items: flex-start; }
#gate .check input { margin-top: 0.2rem; }
#gate .field-error, #lead-error, #paid-error { color: var(--color-danger); font-size: 0.85rem; }
#gate button[disabled] { opacity: 0.65; }
#gate label small { display: block; margin-top: 0.35rem; color: var(--bio-muted); font-size: 0.75rem; }
#gate-download { width: 100%; justify-content: center; margin-top: 0.35rem; }
#paid-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }

/* Capas das ofertas */
.contents article { position: relative; overflow: hidden; }
.contents article > h3 { position: absolute; width: var(--stroke-1); height: var(--stroke-1); padding: 0; margin: calc(var(--stroke-1) * -1); overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; /* texto só para leitor de tela */ }
.offer-cover { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; gap: 0.85rem; min-height: 9.75rem; margin: -1.2rem -1.2rem 1rem; padding: 1.05rem 1.1rem 1rem; border-radius: var(--bio-radius-card); color: var(--color-text);
  background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--bio-brand) 34%, var(--color-surface)), transparent 58%), linear-gradient(155deg, color-mix(in srgb, var(--bio-brand) 14%, var(--art-paper-25)) 0%, color-mix(in srgb, var(--bio-brand) 48%, var(--art-paper-sand)) 100%);
  box-shadow: inset 0 0 0 var(--stroke-1) color-mix(in srgb, var(--bio-brand) 28%, var(--color-surface)); }
.offer-cover-kind { align-self: flex-start; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.14em; padding: 0.22rem 0.55rem; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--color-surface) 78%, var(--bio-brand)); }
.offer-cover strong, .offer-cover h2 { margin: 0; max-width: 12em; font-family: var(--font-display); font-size: 1.45rem; font-weight: 500; line-height: 1.08; letter-spacing: -0.03em; }
.offer-cover::before { content: ""; position: absolute; z-index: -1; right: 1rem; bottom: -1.75rem; width: 4.25rem; height: 5.75rem; border-radius: var(--radius-xs) var(--radius-sm) var(--radius-sm) var(--radius-xs);
  background: linear-gradient(var(--art-paper-300), var(--art-paper-300)) 0.75rem 1rem / 2.125rem 0.1875rem no-repeat, linear-gradient(var(--art-paper-200), var(--art-paper-200)) 0.75rem 1.5rem / 1.625rem 0.1875rem no-repeat, linear-gradient(var(--art-paper-200), var(--art-paper-200)) 0.75rem 2rem / 1.875rem 0.1875rem no-repeat, var(--art-paper-50);
  box-shadow: -0.5rem 0 0 color-mix(in srgb, var(--bio-brand) 18%, var(--color-surface)), 0 0.75rem 1.125rem color-mix(in srgb, var(--shadow-color) 13%, transparent); transform: rotate(8deg); }
#gate .offer-cover { min-height: 11rem; margin: 0 0 1.15rem; padding: 1.15rem 2.6rem 1.15rem 1.15rem; }
#gate .offer-cover h2 { font-size: clamp(1.55rem, 4vw, 1.9rem); }
@media (min-width: 37.5625em) {
  .contents[data-view-mode=list] article { display: grid; grid-template-columns: 8.25rem minmax(0, 1fr) auto; column-gap: 1rem; row-gap: 0.35rem; align-items: center; }
  .contents[data-view-mode=list] .offer-cover { grid-column: 1; grid-row: 1 / span 3; height: 100%; min-height: 8.25rem; margin: 0; padding: 0.8rem; }
  .contents[data-view-mode=list] .offer-cover strong { font-size: 1.05rem; }
  .contents[data-view-mode=list] .badge, .contents[data-view-mode=list] .rich-body { grid-column: 2; }
  .contents[data-view-mode=list] .offer-actions { grid-column: 3; grid-row: 1 / span 3; align-self: center; max-width: 17.5rem; margin-top: 0; }
}
@media (max-width: 37.5em) {
  .offer-cover { margin: -1.25rem -1.25rem 1rem; }
  .contents[data-view-mode=list] .offer-cover { width: 100%; margin: 0 0 0.2rem; }
}
.made-by { flex: 1 0 100%; display: flex; align-items: center; justify-content: flex-end; gap: 0.42rem; min-height: var(--tap-min); margin-top: 0.15rem; color: var(--bio-muted); font-size: 0.68rem; font-weight: 500; letter-spacing: 0.09em; line-height: 1; text-decoration: none; }
.made-by img { display: block; height: 0.875rem; width: auto; }
@media (hover: hover) and (pointer: fine) { .made-by:hover { color: var(--bio-text); } }
.offer-cover.has-page { min-height: 13.75rem; padding: 0; }
.offer-cover.has-page img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; background: var(--art-paper-100); }
.offer-cover.has-page::before { display: none; }
.offer-cover.has-page::after { content: ""; position: absolute; inset: auto 0 0; height: 48%; background: linear-gradient(transparent, color-mix(in srgb, var(--color-text) 62%, transparent)); }
.offer-cover.has-page .offer-cover-kind, .offer-cover.has-page strong { position: relative; z-index: 1; margin: 0.85rem 0.95rem 0; color: var(--art-paper-50); text-shadow: 0 0.0625rem 0.625rem color-mix(in srgb, var(--color-scrim) 35%, transparent); }
.offer-cover.has-page .offer-cover-kind { margin-bottom: 0; background: color-mix(in srgb, var(--color-surface) 16%, transparent); }
.offer-cover.has-page strong { margin-top: auto; margin-bottom: 0.95rem; }
#gate .offer-cover.has-page { display: grid; grid-template-columns: 7rem minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; gap: 0.3rem 0.9rem; aspect-ratio: auto; min-height: 0; max-height: none; height: auto; margin: 0 0 1.1rem; padding: 0 2rem 0 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
#gate .offer-cover.has-page img { position: relative; inset: auto; grid-row: 1 / span 2; width: 7rem; height: auto; aspect-ratio: 210 / 297; object-fit: contain; object-position: center; border-radius: var(--radius-xs) var(--radius-sm) var(--radius-sm) var(--radius-xs); background: var(--art-paper-100);
  box-shadow: inset 0.5625rem 0 0.75rem -0.5625rem color-mix(in srgb, var(--shadow-color) 55%, transparent), 0.0625rem 0 0 var(--art-paper-edge-1), 0.1875rem 0 0 var(--art-paper-edge-2), 0.3125rem 0 0 var(--art-paper-edge-3), 0.75rem 1rem 1.625rem color-mix(in srgb, var(--shadow-color) 16%, transparent); }
#gate .offer-cover.has-page::after { display: none; }
#gate .offer-cover.has-page .offer-cover-kind, #gate .offer-cover.has-page h2 { position: relative; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; color: var(--bio-text); text-shadow: none; }
#gate .offer-cover.has-page .offer-cover-kind { align-self: end; justify-self: start; background: color-mix(in srgb, var(--bio-brand) 12%, var(--bio-surface)); color: var(--bio-text); }
#gate .offer-cover.has-page h2 { align-self: start; max-width: 14em; font-size: 1.28rem; }
.primary { position: relative; overflow: hidden; }
.primary::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 32%, color-mix(in srgb, var(--color-surface) 34%, transparent) 50%, transparent 68%); transform: translateX(-130%); pointer-events: none; }

/* Movimento */
@media (prefers-reduced-motion: no-preference) {
  button, a { transition: background-color var(--duration-fast) ease, box-shadow var(--duration-base) ease, transform var(--duration-base) ease; }
  .contents article { animation: content-in 320ms ease-out backwards; transition: transform var(--duration-base) ease, box-shadow var(--duration-base) ease; }
  .contents article:nth-child(2) { animation-delay: 40ms; }
  .contents article:nth-child(3) { animation-delay: 80ms; }
  dialog[open], .consent:not([hidden]) { animation: content-in var(--duration-base) ease-out both; }
  dialog[open]::backdrop { animation: veil-in var(--duration-fast) ease; }
  .made-by { transition: opacity var(--duration-fast) ease, color var(--duration-fast) ease; }
  #gate[open] .offer-cover.has-page img { animation: book-in 520ms var(--ease-out) both; }
  #gate-success:not([hidden]) #gate-download { animation: download-in 460ms var(--ease-out); }
  .offer-cover::before { transition: transform 420ms var(--ease-out); }
  #gate[open] .offer-cover::before { animation: sheet-settle 680ms var(--ease-out) both; }
  @media (hover: hover) and (pointer: fine) {
    .contents article:hover { transform: translateY(-0.1875rem); box-shadow: var(--shadow-md); }
    .primary:hover { transform: translateY(-0.125rem); box-shadow: var(--shadow-md); }
    .primary:hover::after { animation: button-sheen 720ms ease; }
    .contents article:hover .offer-cover::before { transform: rotate(2deg) translateY(-0.25rem); }
  }
  @keyframes content-in { from { opacity: 0; transform: translateY(0.5rem); } to { opacity: 1; transform: translateY(0); } }
  @keyframes veil-in { from { opacity: 0; } to { opacity: 1; } }
  @keyframes book-in { from { opacity: 0; transform: translateY(0.5rem) rotate(-1.5deg); } to { opacity: 1; transform: none; } }
  @keyframes button-sheen { from { transform: translateX(-130%); } to { transform: translateX(130%); } }
  @keyframes download-in { from { opacity: 0; transform: translateY(0.5rem); } to { opacity: 1; transform: translateY(0); } }
  @keyframes sheet-settle { from { opacity: 0; transform: rotate(16deg) translateY(0.625rem); } to { opacity: 1; transform: rotate(8deg); } }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Compra real (T20) */
.checkout-form { display: contents; }
.offer-actions:has(.checkout-form), .bio-row:has(.checkout-form) { flex-wrap: wrap; }
.offer-actions:has(.waitlist), .bio-row:has(.waitlist) { flex-wrap: wrap; }
.waitlist { flex: 1 1 100%; }
.waitlist-done { margin-top: var(--space-3); }
.checkout-methods, .checkout-status { flex-basis: 100%; }
.checkout-status:empty { display: none; }

/* T11: blocos (FEATURE_BLOCKS_V2). Só tokens; ícones vêm do sprite SVG inline da página. */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.blocks { display: flex; flex-direction: column; gap: var(--space-3); padding: 0 2rem 1.4rem; }
.blocks > * { margin: 0; }
.blocks .bio-row { margin-top: 0; }
.blocks .contents { margin-top: 0; }
.icon { flex: none; width: 1.25rem; height: 1.25rem; }
.block-header { font-size: var(--text-lg); margin-top: var(--space-4); }
.block-link .bio-link, .block-whatsapp .bio-link, .block-tiktok .bio-link, .block-map .bio-link { justify-content: flex-start; }
.block-link .bio-link > span:last-child, .block-whatsapp .bio-link > span:last-child, .block-tiktok .bio-link > span:last-child, .block-map .bio-link > span:last-child { margin-left: auto; }
.bio-thumb { flex: none; width: 3.5rem; height: 3.5rem; object-fit: cover; border-radius: var(--radius-sm); }
.block-social ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.block-social a { display: inline-flex; align-items: center; justify-content: center; width: var(--tap-min); height: var(--tap-min); border: var(--stroke-1) solid var(--bio-border); border-radius: 50%; background: var(--bio-surface); color: var(--bio-text); }
.block-social .icon { width: 1.5rem; height: 1.5rem; }
.block-text { font-size: var(--text-md); }
.block-text > :first-child { margin-top: 0; }
.block-text > :last-child { margin-bottom: 0; }
.block-faq { display: flex; flex-direction: column; gap: var(--space-2); }
.block-faq details { border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); }
.block-faq summary { cursor: pointer; padding: var(--space-3) var(--space-4); min-height: var(--tap-min); display: flex; align-items: center; font-weight: 650; }
.block-faq summary:focus-visible { outline: var(--stroke-3) solid var(--color-focus); outline-offset: var(--space-1); }
.block-faq details > .rich-body { padding: 0 var(--space-4) var(--space-3); }
.block-faq .rich-body > :first-child { margin-top: 0; }
.block-divider { width: 100%; border: 0; border-top: var(--stroke-1) solid var(--bio-border); margin: var(--space-2) 0; }
.block-divider[data-style=dots] { border-top: var(--stroke-3) dotted var(--bio-border); }
.block-divider[data-style=space] { border-top: 0; margin: var(--space-6) 0 0; }
.block-image img { display: block; width: 100%; height: auto; border-radius: var(--bio-radius-card); }
.block-embed .embed-card { display: flex; align-items: center; gap: var(--space-3); min-height: var(--link-height); padding: var(--space-3) var(--space-4); border: var(--stroke-1) solid var(--bio-border); border-radius: var(--bio-radius-card); background: var(--bio-surface); color: inherit; text-decoration: none; }
.block-embed .embed-card strong, .block-embed .embed-card small { display: block; }
.block-embed .embed-card small { color: var(--bio-muted); font-size: var(--text-xs); }
.block-embed .embed-card > span:nth-of-type(1) { flex: 1; min-width: 0; }
.block-embed .embed-play { display: inline-flex; align-items: center; gap: var(--space-2); flex: none; padding: var(--space-2) var(--space-4); border-radius: var(--bio-radius); background: var(--bio-brand); color: var(--bio-on-brand); font-size: var(--text-sm); font-weight: 650; }
body.bio-button-outline .block-embed .embed-play { background: transparent; color: var(--bio-text); border: var(--stroke-2) solid var(--bio-brand); }
body.bio-button-soft .block-embed .embed-play { background: color-mix(in srgb, var(--bio-brand) 14%, var(--bio-surface)); color: var(--bio-text); }
.block-embed iframe { display: block; width: 100%; border: 0; border-radius: var(--bio-radius-card); }
.block-embed[data-embed-kind=youtube] iframe { aspect-ratio: 16 / 9; }
.block-embed[data-embed-kind=spotify] iframe { height: 9.5rem; }
.block-embed[data-embed-kind=spotify][data-embed-tall] iframe { height: 22rem; }
@media (max-width: 37.5em) { .blocks { padding-inline: 1.25rem; } .block-embed .embed-card small { display: none; } }

/* T12: controles por link (FEATURE_LINK_CONTROLS). Só tokens. */
.link-ctl { display: flex; flex-direction: column; gap: var(--space-2); }
.link-ctl .bio-row { margin-top: 0; }
.link-countdown { margin: 0; font-size: var(--text-sm); font-weight: 600; text-align: center; }
.link-countdown small { color: var(--bio-muted); font-size: var(--text-xs); font-weight: 400; }
.link-ctl[data-highlight="featured"] .bio-link { min-height: calc(var(--link-height) * 1.6); padding: var(--space-4) var(--space-6); border-width: var(--stroke-2); border-color: var(--bio-brand); box-shadow: var(--shadow-md); font-size: var(--text-lg); }
.link-ctl[data-highlight="featured"] .bio-thumb { width: 5.5rem; height: 5.5rem; }
.link-ctl[data-highlight="featured"] .icon { width: 1.75rem; height: 1.75rem; }
.link-ctl[data-highlight="pulse"] .bio-link { border-color: var(--bio-brand); }
@media (prefers-reduced-motion: no-preference) {
  .link-ctl[data-highlight="pulse"] .bio-link { animation: link-pulse 2.4s ease-in-out infinite; }
  @keyframes link-pulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--bio-brand) 40%, transparent); }
    50% { box-shadow: 0 0 0 var(--space-2) color-mix(in srgb, var(--bio-brand) 0%, transparent); }
  }
}
