/* Acabamentos locais: material, luz e respostas à interação. */
::selection { background: #d8c18d; color: #123f55; }
.polish-surface { position: relative; isolation: isolate; }
.polish-surface::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(ellipse 280px 230px at var(--surface-x,50%) var(--surface-y,35%),rgba(255,255,255,.24),rgba(209,184,133,.07) 48%,transparent 78%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}
.polish-surface.is-lit::before, .polish-surface:focus-within::before { opacity: 1; }
.polish-press { position: relative; overflow: hidden; }
.polish-press .press-ripple {
  display: block;
  position: absolute;
  z-index: 2;
  border-radius: 50%;
  background: #e0c58f;
  pointer-events: none;
  transition: none;
}
.page-contato .copy-email { min-width: 108px; text-align: left; transition: color .2s, border-color .2s; }
.page-contato .copy-email.is-copied { color: #174f49; border-color: #558078; }
.copy-email.is-copied span { display: inline-block; }

/* Um único acento circular reúne a posição na página e o retorno ao topo. */
.back-to-top {
  position: fixed;
  right: max(18px,env(safe-area-inset-right));
  bottom: max(20px,env(safe-area-inset-bottom));
  z-index: 4;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(246,240,225,.5);
  border-radius: 50%;
  color: #f7f5ef;
  background: #123f55;
  box-shadow: 0 5px 18px rgba(4,29,42,.18);
  transition: background-color .2s, box-shadow .2s, transform .2s;
}
.back-to-top[hidden] { display: none; }
.back-to-top svg { position: absolute; inset: 3px; width: 40px; height: 40px; pointer-events: none; }
.back-to-top .top-progress { transform: rotate(-90deg); transform-origin: center; }
.back-to-top > span { font-size: 23px; line-height: 1; margin-top: -2px; }
.back-to-top:hover { background: #20566e; box-shadow: 0 9px 24px rgba(4,29,42,.22); }
.back-to-top:active { transform: scale(.94); }
.back-to-top:focus-visible { outline: 3px solid #aa8546; outline-offset: 4px; }
@media (max-width:760px) {
  .back-to-top { right: max(12px,env(safe-area-inset-right)); bottom: max(14px,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion:reduce) {
  .polish-surface::before, .back-to-top, .copy-email { transition: none; }
  .back-to-top:active { transform: none; }
}
