:root {
  --preto: #0a0a0a; --branco: #fafafa;
  --cinza-1: #f0f0f0; --cinza-2: #d6d6d6; --cinza-3: #6e6e6e; --cinza-4: #2a2a2a; --cinza-5: #171717;
  --bg: var(--branco); --ink: var(--preto); --accent: var(--preto); --accent-ink: var(--branco);
  --m: clamp(20px, 2.6vw, 40px); --gap: clamp(20px, 3vw, 48px);
  --f-titulo: 'Fredoka', 'Nunito', 'Arial Rounded MT Bold', 'Helvetica Neue', sans-serif;
  --f-texto: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
  --r-bloco: clamp(22px, 2.4vw, 34px); --r-medio: 18px; --r-foco: 14px; --r-pilula: 999px;
  --radius: var(--r-pilula);
  --sombra-noite: rgba(10, 20, 50, .6);
  --t-pequeno: clamp(0.875rem, 0.84rem + 0.1vw, 0.9375rem);
  --t-corpo: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
  --t-sub: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
  --t-titulo: clamp(2.25rem, 1.3rem + 3.6vw, 4.5rem);
  --t-grande: clamp(2.75rem, 1rem + 7.2vw, 8rem);
  --c-a: #8fbeea; --c-a-ink: var(--preto); --c-b: #dbe8f4; --c-b-ink: var(--preto); --c-c: #f5efe6; --c-c-ink: var(--preto);
  --ceu-ink: var(--preto); --ceu-btn: var(--preto); --ceu-btn-ink: var(--branco);
  --ceu-base: #7fb2e5; --etapa-2: #6e6e6e; --etapa-3: #bdbdbd;
}
html[data-hora="tarde"] { --ceu-base: #c9a0b8; --c-a: #f2b083; --c-a-ink: var(--preto); --c-b: #b9a1d3; --c-b-ink: var(--preto); --c-c: #f8dcc4; --c-c-ink: var(--preto); }
html[data-hora="noite"] { --ceu-base: #0f1b3a; --c-a: #16264d; --c-a-ink: var(--branco); --c-b: #33497c; --c-b-ink: var(--branco); --c-c: #0d1730; --c-c-ink: var(--branco);
  --ceu-ink: var(--branco); --ceu-btn: var(--branco); --ceu-btn-ink: var(--preto); }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--preto); color: var(--ink); font: 400 var(--t-corpo)/1.55 var(--f-texto); overflow-x: clip; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { margin: 0; font-family: var(--f-titulo); font-weight: 600; letter-spacing: -0.005em; text-wrap: balance; }
h1, h2 { line-height: 1.04; }
h3 { font-size: var(--t-sub); line-height: 1.2; }
p { margin: 0; text-wrap: pretty; }
ul, ol { list-style: none; margin: 0; padding: 0; }
:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; border-radius: var(--r-foco); }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .8em 1.5em; font: 700 var(--t-corpo)/1.1 var(--f-texto); text-decoration: none; border-radius: var(--r-pilula); background: var(--btn-bg); color: var(--btn-ink); position: relative; overflow: hidden; isolation: isolate; border: 0; }
.link { color: inherit; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .22em; transition: text-underline-offset var(--t-hover) ease; }
@media (hover: hover) { .link:hover { text-underline-offset: .38em; } }
.btn--claro { --btn-bg: var(--branco); --btn-ink: var(--preto); --fill: var(--cinza-2); --fill-ink: var(--preto); }

/* Barra */
.topo { position: fixed; z-index: 50; inset: 0 0 auto 0; display: flex; align-items: center; gap: 28px; padding: 16px var(--m); color: var(--topo-ink, var(--ceu-ink)); }
.topo__marca { margin-right: auto; display: block; }
.logo { height: 26px; width: auto; }
.logo--branco { display: none; }
.topo[data-tom="escuro"] .logo--preto, html[data-hora="noite"] .topo:not([data-tom]) .logo--preto { display: none; }
.topo[data-tom="escuro"] .logo--branco, html[data-hora="noite"] .topo:not([data-tom]) .logo--branco { display: block; }
.topo[data-tom="escuro"] { --topo-ink: var(--branco); }
.topo[data-tom="claro"] { --topo-ink: var(--preto); }
.topo__nav { display: flex; gap: 24px; }
.topo__nav a { color: inherit; text-decoration: none; font-size: var(--t-pequeno); font-weight: 700; }
@media (hover: hover) { .topo__nav a:hover { text-decoration: underline; text-underline-offset: .3em; text-decoration-thickness: 2px; } }
.topo__acao { --btn-bg: var(--topo-ink, var(--ceu-btn)); --btn-ink: var(--ceu-btn-ink); --fill: var(--cinza-3); --fill-ink: var(--branco); min-height: 44px; font-size: var(--t-pequeno); padding: .6em 1.1em; }
.topo[data-tom="escuro"] .topo__acao { --btn-ink: var(--preto); }
.topo[data-tom="claro"] .topo__acao { --btn-ink: var(--branco); }
@media (max-width: 899px) { .topo__nav { display: none; } .logo { height: 22px; } }

/* Jornada */
.jornada { position: relative; height: 960svh; background: var(--ceu-base); color: var(--ceu-ink); }
.jornada__palco { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.jornada__poster, .jornada__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jornada__cena { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 700ms ease; }
.cena-pronta .jornada__cena { opacity: 1; }
.sem-webgl .jornada__cena { display: none; }

.passo { position: absolute; z-index: 3; max-width: 34rem; }
.passo h2 { font-size: var(--t-titulo); }
.passo p { margin-top: 18px; font-size: var(--t-corpo); font-weight: 600; }
.passo--abre { inset: clamp(84px, 13svh, 128px) var(--m) auto; max-width: none; text-align: center; display: grid; justify-items: center; }
.passo--abre h1 { font-size: clamp(2.5rem, .6rem + 5.6vw, 6rem); line-height: 1; max-width: 20ch; }
.passo__apoio { max-width: 42rem; }
.passo--acao { left: 0; right: 0; max-width: none; bottom: clamp(24px, 5svh, 44px); display: grid; justify-items: center; gap: 10px; padding-inline: var(--m); text-align: center; }
.passo .btn { --btn-bg: var(--ceu-btn); --btn-ink: var(--ceu-btn-ink); --fill: var(--cinza-3); --fill-ink: var(--branco); }
.passo__micro { margin: 0 !important; font-size: var(--t-pequeno) !important; }
.passo--dir { right: var(--m); top: 50%; translate: 0 -50%; }
.passo--esq { left: var(--m); top: 50%; translate: 0 -50%; }
.passo--baixo { top: auto; bottom: clamp(56px, 11svh, 110px); translate: none; }
.passo--topo { left: 50%; translate: -50% 0; top: clamp(72px, 10svh, 104px); max-width: none; width: max-content; text-align: center; }
.passo--topo h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.5rem); }
.passo--mesa { max-width: min(27vw, 26rem); }
.passo--mesa h2 { font-size: clamp(2rem, 1.2rem + 2.2vw, 3.25rem); }
.passo--fim { left: var(--m); right: var(--m); bottom: clamp(64px, 11svh, 112px); max-width: none; display: grid; gap: 20px; justify-items: center; text-align: center; }
.passo--fim h2 { font-size: clamp(1.75rem, 1rem + 2.2vw, 3rem); }
html[data-hora="noite"] .passo--fim h2 { text-shadow: 0 2px 18px var(--sombra-noite); }

.js:not(.reduce):not(.sem-webgl) .passo:not(.passo--abre):not(.passo--acao) { opacity: 0; visibility: hidden; }

@media (max-width: 759px), (max-aspect-ratio: 1/1) {
  .passo { left: var(--m); right: var(--m); max-width: none; top: auto; bottom: 84px; translate: none; }
  .passo h2 { font-size: clamp(1.75rem, 8vw, 2.5rem); }
  .passo p { font-size: 1.0625rem; margin-top: 10px; }
  .passo--abre { top: 76px; bottom: auto; }
  .passo--acao { left: var(--m); right: var(--m); bottom: 64px; padding: 0; }
  .passo__micro { padding: .35em 1em; border-radius: var(--r-medio); font-weight: 600; background: color-mix(in srgb, var(--ceu-btn-ink) 78%, transparent); }
  .passo--abre h1 { font-size: clamp(1.875rem, 9.3vw, 3.25rem); max-width: none; }
  .passo--topo { top: 76px; bottom: auto; translate: none; left: var(--m); width: auto; text-align: left; }
  .passo--mesa { top: 76px; bottom: auto; max-width: none; }
  .passo--fim { bottom: 84px; }
}

/* Sem animação: a jornada vira uma seção parada e legível */
.no-js .jornada, .reduce .jornada, .sem-webgl .jornada { height: auto; }
.no-js .jornada__palco, .reduce .jornada__palco, .sem-webgl .jornada__palco { position: relative; height: auto; display: flex; flex-direction: column; gap: 36px; padding: 104px var(--m) 72px; overflow: visible; }
.no-js .jornada__cena, .reduce .jornada__cena, .sem-webgl .jornada__cena { display: none; }
.no-js .jornada__poster, .reduce .jornada__poster, .sem-webgl .jornada__poster { position: relative; inset: auto; display: block; order: 2; width: 100%; aspect-ratio: 16 / 9; }
.no-js .jornada__poster img, .reduce .jornada__poster img, .sem-webgl .jornada__poster img { position: relative; inset: auto; height: 100%; }
.no-js .passo, .reduce .passo, .sem-webgl .passo { position: relative; inset: auto; translate: none; left: auto; right: auto; top: auto; bottom: auto; max-width: 44rem; text-align: left; justify-items: start; order: 3; }
.no-js .passo--abre, .reduce .passo--abre, .sem-webgl .passo--abre, .no-js .passo--acao, .reduce .passo--acao, .sem-webgl .passo--acao { order: 1; padding: 0; }
@media (max-width: 759px) { .no-js .jornada__poster, .reduce .jornada__poster, .sem-webgl .jornada__poster { aspect-ratio: 9 / 16; } }

/* Capítulos */
.capitulo { padding: clamp(72px, 9vw, 150px) var(--m); }

/* Trabalhos */
.trabalhos { --gap: 0px; background: var(--preto); }
.scene-h__track { align-items: stretch; }
.tela { width: min(100vw, 1480px); min-height: 100svh; flex: none; display: grid; align-content: center; gap: 28px; padding: clamp(84px, 11svh, 110px) var(--m) clamp(32px, 6svh, 56px); border: 8px solid var(--preto); border-radius: calc(var(--r-bloco) + 8px); background-clip: padding-box; }
.tela--abre { width: min(62vw, 900px); background: var(--preto); color: var(--branco); align-content: end; }
.tela--abre h2 { font-size: var(--t-grande); line-height: 1; }
.tela--abre p { max-width: 30rem; }
.tela--um { background: var(--c-a); color: var(--c-a-ink); }
.tela--dois { background: var(--c-b); color: var(--c-b-ink); }
.tela--tres { background: var(--c-c); color: var(--c-c-ink); }
article.tela { grid-template-columns: minmax(0, 1fr) minmax(240px, 22rem); align-items: center; gap: clamp(28px, 4vw, 72px); }
.tela__fotos { position: relative; padding-bottom: 6%; padding-right: 12%; }
.foto-desktop { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-radius: var(--r-bloco); }
.foto-celular { position: absolute; right: 0; bottom: 0; width: 22%; aspect-ratio: 390 / 844; object-fit: cover; object-position: top; border-radius: var(--r-medio); outline: 6px solid var(--preto); }
.tela__texto { display: grid; gap: 16px; justify-items: start; }
.tela__texto h3 { font-size: clamp(2rem, 1rem + 2.5vw, 3.5rem); line-height: 1.04; }
.scene-h--stack .scene-h__track > *, .no-js .scene-h__track > * { width: 100% !important; }
@media (max-width: 899px) {
  article.tela { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .tela { width: 100% ; padding-block: 72px; min-height: 0; }
  .tela--abre { width: 100%; }
  .foto-celular { width: 26%; outline-width: 4px; }
}

/* Planos */
.planos { background: var(--branco); color: var(--preto); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px var(--gap); }
.planos__intro { grid-column: 1 / span 3; display: grid; gap: 18px; align-content: start; }
.planos__intro h2 { font-size: clamp(2rem, 1.2rem + 1.8vw, 3.25rem); }
.planos__grade { grid-column: 4 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 10px; }
.plano { display: grid; gap: 8px; align-content: start; justify-items: start; }
.plano--largo { grid-column: span 2; }
.plano__azulejo { position: relative; width: 100%; height: clamp(280px, 28vw, 440px); overflow: hidden; margin-bottom: 8px; border-radius: var(--r-bloco); transition: background-color 700ms ease; }
.plano__azulejo img { position: absolute; inset: 8%; width: 84%; height: 84%; max-width: none; object-fit: contain; transition: transform 500ms var(--ease-expo); }
@media (hover: hover) { .plano:hover .plano__azulejo img { transform: translateY(-8px); } }
/* Profissional: a ilha flutua sozinha */
@keyframes flutuar { 0%, 100% { transform: translate3d(0, 7px, 0) rotate(-1.1deg); } 50% { transform: translate3d(0, -13px, 0) rotate(1.1deg); } }
.plano__azulejo--b img { animation: flutuar 6.5s ease-in-out infinite; will-change: transform; }
/* Premium: ilha 3D. A imagem fica por baixo até o modelo carregar. */
.plano__3d { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 500ms ease; touch-action: pan-y; }
[data-ilha3d] { cursor: grab; touch-action: pan-y; }
[data-ilha3d].is-girando { cursor: grabbing; }
.ilha-pronta .plano__3d { opacity: 1; }
.ilha-pronta > img { opacity: 0; }
.plano__azulejo--a { background: var(--c-a); } .plano__azulejo--b { background: var(--c-b); } .plano__azulejo--c { background: var(--c-c); } .plano__azulejo--d { background: var(--cinza-1); }
.plano p { max-width: 42ch; }
.plano .link { font-weight: 700; margin-top: 6px; }
@media (max-width: 899px) {
  .planos { display: block; } .planos__intro { margin-bottom: 40px; }
  .planos__grade { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .plano--largo { grid-column: auto; }
  .plano__azulejo { height: 62vw; }
}

/* Processo */
.processo { background: var(--preto); color: var(--branco); }
.processo__intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px var(--gap); margin-bottom: 64px; }
.processo__intro h2 { grid-column: 1 / span 6; font-size: var(--t-titulo); }
.processo__intro p { grid-column: 8 / span 5; align-self: end; }
.sanfona { display: flex; gap: 8px; height: 460px; counter-reset: etapa; }
.etapa { flex: 1 1 11%; min-width: 0; position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-bloco); transition: flex-basis 450ms var(--ease-in-out), flex-grow 450ms var(--ease-in-out); }
.etapa:nth-child(1) { background: var(--cinza-4); color: var(--branco); }
.etapa:nth-child(2) { background: var(--etapa-2); color: var(--branco); }
.etapa:nth-child(3) { background: var(--etapa-3); color: var(--preto); }
.etapa:nth-child(4) { background: var(--branco); color: var(--preto); }
.etapa.is-aberta { flex: 6 1 58%; }
.etapa__rotulo { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: flex-end; height: 100%; padding: 24px; font-family: var(--f-titulo); font-size: var(--t-sub); font-weight: 600; }
.etapa:not(.is-aberta) .etapa__rotulo { writing-mode: vertical-rl; rotate: 180deg; }
.etapa.is-aberta .etapa__rotulo { position: absolute; left: 0; top: 0; height: auto; cursor: default; font-size: clamp(1.75rem, 1rem + 2.2vw, 3rem); }
.etapa__rotulo:focus-visible { outline: 3px solid currentColor; outline-offset: -8px; border-radius: var(--r-bloco); }
.etapa__corpo { position: absolute; left: 24px; right: 24px; bottom: 24px; max-width: 36ch; opacity: 0; transition: opacity 240ms ease; }
.etapa.is-aberta .etapa__corpo { opacity: 1; transition-delay: 200ms; }
.no-js .sanfona { flex-direction: column; height: auto; }
.no-js .etapa__rotulo { writing-mode: horizontal-tb !important; rotate: none !important; position: static !important; height: auto; }
.no-js .etapa__corpo { position: static; opacity: 1; padding: 0 24px 24px; }
@media (max-width: 899px) {
  .processo__intro { display: grid; grid-template-columns: minmax(0, 1fr); }
  .processo__intro h2, .processo__intro p { grid-column: 1; }
  .sanfona { flex-direction: column; height: auto; }
  .etapa { flex: none; }
  .etapa .etapa__rotulo, .etapa.is-aberta .etapa__rotulo { writing-mode: horizontal-tb; rotate: none; position: static; height: auto; min-height: 64px; padding: 18px 20px; align-items: center; font-size: 1.25rem; }
  .etapa__corpo { position: static; max-height: 0; overflow: hidden; padding-inline: 20px; max-width: none; }
  .etapa.is-aberta .etapa__corpo { max-height: 240px; padding-bottom: 22px; }
}

/* Sobre */
.sobre { background: var(--preto); padding: 0 var(--m) var(--m); color: var(--branco); }
.sobre__painel { background: var(--cinza-5); min-height: 100svh; overflow: hidden; border-radius: var(--r-bloco); display: grid; grid-template-columns: 58% minmax(0, 1fr); padding: 56px; gap: 40px; }
.sobre__esq { display: grid; align-content: start; gap: 40px; margin-bottom: -56px; }
.sobre__esq h2 { font-size: var(--t-titulo); }
.sobre__retrato { width: min(38vw, 560px); aspect-ratio: 1; object-fit: cover; clip-path: circle(50%); margin-bottom: -7%; }
.sobre__dir { display: grid; align-content: start; gap: 48px; justify-items: start; }
.sobre__dir h3 { margin-bottom: 10px; }
@media (max-width: 899px) {
  .sobre { padding: 0 10px 10px; }
  .sobre__painel { grid-template-columns: minmax(0, 1fr); padding: 40px 20px 0; gap: 32px; }
  .sobre__dir { order: 2; } .sobre__esq { display: contents; }
  .sobre__esq h2 { order: 1; } .sobre__retrato { order: 3; width: 86vw; max-width: 460px; justify-self: center; margin-top: 12px; margin-bottom: -22%; }
}

/* Dúvidas */
.duvidas { background: var(--c-c); color: var(--c-c-ink); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px var(--gap); transition: background-color 700ms ease; }
.duvidas > h2 { grid-column: 1 / span 4; position: sticky; top: 96px; align-self: start; font-size: clamp(2rem, 1.2rem + 2.2vw, 3.75rem); }
.duvidas__lista { grid-column: 5 / -1; display: grid; gap: 8px; }
details { background: color-mix(in srgb, var(--c-c-ink) 7%, var(--c-c)); border-radius: var(--r-bloco); overflow: hidden; }
details[open] { background: var(--c-c-ink); color: var(--c-c); }
summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 72px; padding: 16px 24px; font-size: 1.25rem; font-weight: 700; }
summary:focus-visible { outline-offset: -8px; border-radius: var(--r-bloco); }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; flex: none; width: 20px; text-align: center; font-size: 1.75rem; line-height: 1; font-weight: 400; transition: rotate var(--t-ui) var(--ease-out); }
details[open] summary::after { content: "–"; }
details p { padding: 0 24px 24px; max-width: 58ch; }
@media (max-width: 899px) {
  .duvidas { display: block; } .duvidas > h2 { position: static; margin-bottom: 32px; }
  summary { font-size: 1.125rem; min-height: 64px; padding: 14px 20px; } details p { padding: 0 20px 20px; font-size: 1.0625rem; }
}

/* Contato */
.contato { background: var(--c-c); overflow: hidden; padding-block: clamp(24px, 4vw, 64px); transition: background-color 700ms ease; }
.contato__fileira { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 8fr) minmax(0, 2fr); gap: 12px; margin-inline: -24px; }
.contato__lado { min-height: 320px; overflow: hidden; border-radius: var(--r-bloco); }
.contato__lado--foto img { width: 100%; height: 100%; object-fit: cover; }
.contato__lado--cor { background: var(--c-a); transition: background-color 700ms ease; }
.contato__centro { background: var(--preto); color: var(--branco); border-radius: var(--r-bloco); padding: clamp(28px, 4vw, 56px); display: grid; gap: 22px; justify-items: start; }
.contato__centro h2 { font-size: var(--t-titulo); }
.escolha { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.escolha legend { padding: 0; margin-bottom: 10px; font-weight: 700; }
.escolha input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.escolha span { display: inline-flex; align-items: center; min-height: 48px; padding: .4em 1.2em; border-radius: var(--r-pilula); font-weight: 600; background: var(--cinza-4); color: var(--branco); cursor: pointer; transition: background-color var(--t-hover) ease, color var(--t-hover) ease; }
.escolha input:checked + span { background: var(--branco); color: var(--preto); }
.escolha input:focus-visible + span { outline: 3px solid var(--branco); outline-offset: 3px; }
.contato__micro { font-size: var(--t-pequeno); }
@media (max-width: 899px) {
  .contato__fileira { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-inline: 0; padding-inline: 10px; gap: 8px; }
  .contato__centro { grid-column: 1 / -1; order: -1; }
  .contato__lado { min-height: 120px; }
}

/* Rodapé */
.rodape { background: var(--preto); color: var(--branco); padding: 56px var(--m) calc(76px + env(safe-area-inset-bottom)); display: grid; gap: 22px; }
.rodape__logo { height: 26px; width: auto; }
.rodape ul { display: flex; flex-wrap: wrap; gap: 12px 32px; }
.rodape__fim { font-size: var(--t-pequeno); color: var(--cinza-2); }

/* WhatsApp flutuante */
.wa-float { background: var(--preto); color: var(--branco); width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; z-index: 40; outline: 2px solid var(--branco); }
/* Pulso contínuo: anel branco com contorno preto para aparecer no céu e nos fundos claros ou escuros */
@keyframes pulso-anel { 0% { transform: scale(1); opacity: .75; } 70%, 100% { transform: scale(1.85); opacity: 0; } }
@keyframes pulso-icone { 0%, 100% { transform: scale(1); } 18% { transform: scale(1.14); } 36% { transform: scale(1); } }
.wa-float::before, .wa-float::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; border: 2px solid var(--branco); box-shadow: 0 0 0 2px var(--preto); pointer-events: none; animation: pulso-anel 2.4s var(--ease-out) infinite; }
.wa-float::after { animation-delay: 1.2s; }
.wa-float svg { animation: pulso-icone 2.4s ease-in-out infinite; }

/* Seletor de hora: discreto, canto inferior esquerdo */
.horas { position: fixed; z-index: 45; left: max(var(--m), env(safe-area-inset-left)); bottom: max(16px, env(safe-area-inset-bottom)); display: flex; gap: 4px; color: var(--ceu-ink); mix-blend-mode: normal; }
.horas[data-tom="escuro"] { color: var(--branco); }
.horas[data-tom="claro"] { color: var(--preto); }
.horas button { all: unset; box-sizing: border-box; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; opacity: .6; transition: opacity var(--t-hover) ease, background-color var(--t-hover) ease; }
.horas button[aria-pressed="true"] { opacity: 1; background: color-mix(in srgb, currentColor 16%, transparent); }
@media (hover: hover) { .horas button:hover { opacity: 1; } }
.horas button:focus-visible { outline: 3px solid currentColor; outline-offset: -3px; border-radius: 50%; }
.horas svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.no-js .horas { display: none; }
@media (max-width: 759px) { .horas { bottom: max(10px, env(safe-area-inset-bottom)); left: 10px; } .horas button { opacity: .7; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
  .wa-float::before, .wa-float::after, .wa-float svg, .plano__azulejo--b img { animation: none !important; }
  .wa-float::before, .wa-float::after { display: none; }
}

.jornada__marca { position: absolute; inset: 0 0 auto 0; height: 100svh; pointer-events: none; }

.skip-link { border-radius: var(--r-pilula); }
