.hero {
  padding: clamp(84px, 12vw, 150px) 0 clamp(64px, 10vw, 110px);
  text-align: center;
}
.hero__inner { max-width: 920px; margin: 0 auto; }
.hero__title { margin-bottom: 16px; }
.hero__subtitle { color: var(--gold-400); font-size: clamp(.9rem, 2vw, 1.05rem); letter-spacing: .18em; text-transform: uppercase; }
.hero__message { max-width: 680px; margin: 24px auto 0; font-family: var(--font-display); font-size: clamp(1.35rem, 3vw, 2rem); }
.hero__ornament { width: 120px; height: 1px; margin: 28px auto; background: linear-gradient(90deg, transparent, var(--gold-400), transparent); }

.portal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-card { min-height: 230px; display: flex; flex-direction: column; justify-content: space-between; }
.portal-card p { max-width: 44ch; }

.view-header { max-width: 820px; margin-bottom: 42px; }
.practice-layout { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: start; }
.practice-copy { position: sticky; top: 112px; }
.practice-copy h2 { margin-bottom: 12px; }
.practice-index { color: var(--gold-400); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.practice-actions { margin-top: 24px; }
.local-video-note {
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
  color: var(--lavender-200);
  font-size: .86rem;
  line-height: 1.6;
}

.future-card { min-height: 180px; filter: saturate(.6); opacity: .7; }
.future-card::after {
  content: "Em breve";
  position: absolute;
  right: 16px;
  top: 16px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: var(--lavender-300);
  font-size: .7rem;
}

.community-panel,
.contact-panel {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  padding: clamp(28px, 6vw, 56px);
}
.status-line { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--gold-400); font-weight: 700; }
.status-line::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--gold-400); box-shadow: 0 0 0 6px rgba(212,175,55,.1); }
.ethics-note { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); font-size: .9rem; }
.contact-details { margin-top: 28px; display: grid; gap: 10px; color: var(--lavender-200); }

.route-enter { animation: routeIn .5s ease both; }
@keyframes routeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
  .portal-grid, .practice-layout { grid-template-columns: 1fr; }
  .practice-copy { position: static; }
}
