/* Vidro em superfícies delimitadas; texto e fotografia preservam nitidez. */
.evolution {
  --radius: 1.25rem;
  --radius-sm: .85rem;
  --radius-lg: 1.75rem;
  --glass-line: #167d9129;
  --glass-shadow: 0 18px 48px -38px #06303b55, inset 0 1px 0 #ffffffd9;
}

.evolution .btn,
.evolution .na-pratica .demo-copy .btn,
.evolution .totem .section-cta .btn-ghost,
.evolution .contato-info .contato-actions .btn {
  border-radius: 999px;
  box-shadow: inset 0 1px 0 #ffffff40, 0 8px 18px -16px #04222b70;
  transition: transform 180ms ease-out, background-color 180ms ease-out, border-color 180ms ease-out, box-shadow 180ms ease-out, color 180ms ease-out;
}
.evolution .btn-primary { background: linear-gradient(145deg, #0c5766f5, #06303bf2); border-color: #ffffff25; color: #fffdf7; }
.evolution .hero-actions .btn-primary,
.evolution .section--dark .btn-primary,
.evolution .planos .plan--featured .btn { background: linear-gradient(145deg, #fff8e8f5, #f2e5c7eb); border-color: #fff8e899; color: var(--c-dark); box-shadow: inset 0 1px 0 #ffffffed, 0 8px 22px -18px #0009; }
.evolution .site-header .btn { border-color: #ffffff38; background: #ffffff14; box-shadow: inset 0 1px 0 #ffffff26; }
.evolution .site-header .header-inner::before { border-radius: 1.4rem; }
.evolution .main-nav { border-radius: 1.4rem; }
.evolution .na-pratica .demo-copy .btn,
.evolution .totem .section-cta .btn-ghost { min-height: 3rem; padding: .7rem 1.1rem; border: 1px solid var(--glass-line); background: #ffffff73; color: var(--c-primary-strong); }
.evolution .planos .plan .btn { border-color: #0c57664d; background: #ffffff9e; }
.evolution .planos .plan--featured .btn { border-color: #ffffff80; background: linear-gradient(145deg, #fff8e8f5, #f2e5c7eb); }

/* O brilho é estático; o movimento fica nas ondas e nos controles usados. */
.evolution :is(.planos, .faq, .totem) { background-image: radial-gradient(ellipse at 100% 25%, #5fc3d612, transparent 55%); }
.evolution .contato { background: radial-gradient(ellipse at 0 35%, #5fc3d625, transparent 55%), var(--c-surface); }
.evolution .estoque-inteligente { background: radial-gradient(ellipse at 90% 40%, #167d9124, transparent 60%), var(--c-dark); }

.evolution .planos .plan,
.evolution .price-calc,
.evolution .stock-lab,
.evolution .contato .contato-form-card,
.evolution .contato .contato-info {
  border: 1px solid #ffffffc4;
  border-radius: 1.75rem;
  background: #fffdf7eb;
  box-shadow: var(--glass-shadow);
}
.evolution .planos .plan--featured,
.evolution .offline .offline-network {
  border: 1px solid #ffffff38;
  border-radius: 1.75rem;
  background: linear-gradient(145deg, #0a3a45f5, #04222bf2);
  box-shadow: inset 0 1px 0 #ffffff33, 0 20px 48px -38px #04222b99;
}
.evolution .planos .plan.plan--start {
  border-color: #c8b78d80;
  background: linear-gradient(145deg, #fffdf7f2, #f2e5c7b3);
}
.evolution .planos .plan.plan--essential {
  border-color: #167d9140;
  background: linear-gradient(145deg, #edf7f8f2, #d4e8ebcc);
}
.evolution .planos .plan.plan--completo {
  border-color: #d7c18bbf;
  background: radial-gradient(ellipse at 100% 0, #2b7a8840, transparent 55%), linear-gradient(155deg, #0b4654fa, #052a36f5);
  box-shadow: inset 0 1px 0 #fff2c980, 0 0 0 3px #cbb47b26, 0 24px 48px -28px #06303b80;
}
.evolution .planos .plan-conditions { border: 1px solid #ffffff9c; border-radius: 1.75rem; background: #f5eeddc9; box-shadow: var(--glass-shadow); }
.evolution .planos .plan-mode { border-color: #ffffffc9; border-radius: 1.25rem; background: #ffffff66; box-shadow: var(--glass-shadow); }
.evolution .planos .plan-mode-btn { border-radius: 1rem; }
.evolution .planos .plan-mode-btn.is-active { background: linear-gradient(145deg, #0c5766f5, #06303bf2); box-shadow: inset 0 1px 0 #ffffff24, 0 5px 12px -10px #06303b99; }
.evolution .price-scenarios button,
.evolution .stock-product { border-radius: 1rem; background: #ffffff4d; box-shadow: inset 0 1px 0 #ffffffad; }
.evolution .price-scenarios button[aria-pressed="true"],
.evolution .stock-product.is-selected { background: #dceef0a8; border-color: #167d9173; }
.evolution .price-plan-choices { gap: .5rem; padding: .35rem; border: 1px solid var(--glass-line); border-radius: 999px; background: #ffffff66; }
.evolution .price-plan-choices button { flex: 1; padding: .65rem .85rem; border: 0; border-radius: 999px; }
.evolution .price-plan-choices button[aria-pressed="true"] { border: 0; color: var(--c-on-dark); background: var(--c-dark); box-shadow: inset 0 1px 0 #ffffff2e; }

/* Uma superfície por expansor: o cabeçalho pertence ao painel. */
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) {
  min-width: 0;
  padding: 0;
  border: 1px solid #167d9133;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #ffffff73, #ffffff0d 55%, #ffffff40), #ffffff40;
  box-shadow: inset 0 1px 0 #ffffffed, 0 12px 30px -26px #06303b66;
  transition: border-color 180ms ease-out, box-shadow 180ms ease-out;
}
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > summary {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 4.5rem;
  margin: 0;
  padding: 1.25rem 4rem 1.25rem 1.5rem;
  border: 0;
  border-radius: inherit;
  background: transparent;
  box-shadow: none;
  font-weight: 500;
  line-height: 1.55;
  cursor: pointer;
  list-style: none;
  transition: background-color 180ms ease-out;
}
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > summary::after {
  position: absolute;
  top: 50%;
  right: 1.125rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 1px solid #167d9129;
  border-radius: 50%;
  background: #167d9108;
  color: var(--c-primary-strong);
  font-size: 1.1rem;
  line-height: 1;
  transform: translateY(-50%);
}
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example)[open] {
  border-color: #167d9159;
}
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example)[open] > summary {
  margin-bottom: 1rem;
  border-bottom: 1px solid #167d911f;
  border-radius: 1.25rem 1.25rem 0 0;
}
#institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > :not(summary) { margin-inline: 1.5rem; }
#institutional-site.evolution .diff-card .diff-text { padding: 0 0 1.5rem; margin-bottom: 0; }
.evolution .diff-grid { gap: 1rem clamp(1rem, 3vw, 2rem); align-items: start; }
.evolution .diff-column { display: grid; gap: 1rem; align-content: start; border-top: 0; }
.evolution .totem-more { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.evolution .totem-more .totem-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.evolution .totem-more .totem-steps li:last-child { grid-column: 1 / -1; }
.evolution .offline .offline-details { gap: 1rem; }
.evolution .diferenciais .beach-details { margin-bottom: 1rem; }

.evolution .faq .faq-item,
.evolution .faq .faq-question { border-radius: 1.25rem; }
.evolution .faq .faq-item { box-shadow: inset 0 1px 0 #ffffffed, 0 10px 24px -22px #06303b66; }
.evolution .faq .faq-item[data-open="true"] { background: #eef8f5b8; }
.evolution .faq .faq-topic-symbol { width: fit-content; padding: .65rem .85rem; border: 1px solid #ffffffbd; border-radius: 999px; background: #ffffff70; box-shadow: inset 0 1px 0 #fff; }

.evolution .operation-figure img,
.evolution .beach-figure img,
.evolution .totem-photo img { border: 1px solid #ffffff99; border-radius: 1.5rem; box-shadow: 0 16px 38px -32px #06303b80; }

.evolution .contato .form-input { min-height: 3.25rem; padding: .85rem 1rem; border: 1px solid #167d9133; border-radius: 1rem; background: #ffffffb8; color: var(--c-text); box-shadow: inset 0 1px 0 #ffffffed; font-size: 1rem; transition: border-color 160ms ease-out, box-shadow 160ms ease-out, background-color 160ms ease-out; }
.evolution .contato .form-input:focus { border-color: var(--c-primary); background: #ffffffed; box-shadow: 0 0 0 4px #167d9114, inset 0 1px 0 #fff; outline: 2px solid transparent; }
.evolution .contato .form-input:focus-visible { outline: 2px solid var(--c-primary-strong); outline-offset: 2px; }
.evolution .contato .form-input[aria-invalid="true"] { border-color: var(--c-danger); }
.evolution .contato .form-textarea { min-height: 9rem; resize: vertical; }
.evolution .contato-channel { border: 1px solid #ffffffc4; border-radius: 1.25rem; background: #ffffff80; box-shadow: var(--glass-shadow); }
.evolution .contato .contato-info { padding: clamp(1.75rem, 3vw, 3rem); }
.evolution .contato .contato-info .section-title { max-width: none; font-size: clamp(2.2rem, 3.3vw, 3rem); }
.evolution .contato .contato-info .section-lead { font-size: 1rem; line-height: 1.8; }
.evolution .contato .form-status, .evolution .contato-success { border-radius: 1.25rem; }

/* A luz acompanha o desenho pixelado sem adicionar outro loop de animação. */
.evolution .pixel-transition canvas { filter: drop-shadow(0 -1px 1px #ffffff66); }
.evolution .pixel-transition::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, transparent 20%, #ffffff10 52%, transparent 85%); pointer-events: none; }

@supports ((backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))) {
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) { backdrop-filter: blur(12px) saturate(125%); -webkit-backdrop-filter: blur(12px) saturate(125%); }
  .evolution .planos .plan,
  .evolution .price-calc,
  .evolution .stock-lab,
  .evolution .contato .contato-form-card,
  .evolution .contato .contato-info { background-color: #fffdf7a3; backdrop-filter: blur(12px) saturate(115%); -webkit-backdrop-filter: blur(12px) saturate(115%); }
  .evolution .planos .plan--featured { background: linear-gradient(145deg, #0a3a45eb, #04222be6); }
  .evolution .stock-lab { background-color: #fffdf7e6; }
  .evolution .planos .plan-conditions,
  .evolution .planos .plan-mode { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
}
@media (hover: hover) and (pointer: fine) {
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > summary:hover { background-color: #ffffff40; }
  .evolution .btn:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 #ffffff66, 0 10px 22px -17px #04222b70; }
  .evolution .btn:active { transform: none; }
  .evolution .na-pratica .demo-copy .btn:hover,
  .evolution .totem .section-cta .btn-ghost:hover { border-color: #167d9157; background: #ffffffbd; }
}
@keyframes glass-menu-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 63.99rem) {
  .evolution .main-nav { background: #04222beb; border: 1px solid #ffffff30; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
  .evolution .main-nav:not(.is-open) { display: none; opacity: 0; transition: none; }
  .evolution .main-nav.is-open { display: block; opacity: 1; transform: none; transition: none; animation: glass-menu-in 220ms ease-out both; }
}
@media (max-width: 47.99rem) {
  .evolution .contato .contato-form-card,
  .evolution .contato .contato-info { padding: 1.5rem; }
  .evolution .planos .plan,
  .evolution .price-calc,
  .evolution .stock-lab,
  .evolution .contato .contato-form-card,
  .evolution .contato .contato-info { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
  .evolution .faq .faq-item { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
  .evolution .pixel-transition canvas { filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .evolution .btn,
  .evolution .na-pratica .demo-copy .btn,
  .evolution .totem .section-cta .btn-ghost,
  .evolution .contato .form-input,
  .evolution .price-plan-choices button { transition: none; }
  .evolution .btn:hover { transform: none; }
  .evolution .main-nav.is-open { animation: none; }
}

@media (max-width: 47.99rem) {
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > summary { padding: 1.1rem 3.5rem 1.1rem 1.125rem; }
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > :not(summary) { margin-inline: 1.125rem; }
  .evolution .totem-more .totem-steps { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example),
  #institutional-site.evolution :where(.diff-card, .totem-more > details, .offline-details > details, .beach-details, .fiscal-details, .fees-example) > summary { transition: none; }
}
