/* Shared public components. These rules intentionally affect presentation only. */
.v-section { padding-block: var(--v-space-9); }
.v-section--compact { padding-block: var(--v-space-8); }
.v-panel {
  background: var(--v-panel);
  border: 1px solid var(--v-border-subtle);
  border-radius: var(--v-radius-panel);
  box-shadow: var(--v-shadow-panel);
}
.v-card {
  background: var(--v-graphite);
  border: 1px solid var(--v-border-subtle);
  border-radius: var(--v-radius-card);
}
.v-eyebrow {
  color: var(--v-gold);
  font-family: var(--v-font-ui);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.v-button, .v-button--primary, .v-button--secondary {
  align-items: center;
  border-radius: var(--v-radius-control);
  display: inline-flex;
  font-family: var(--v-font-ui);
  font-size: .88rem;
  font-weight: 650;
  justify-content: center;
  letter-spacing: .01em;
  line-height: 1.2;
  min-height: 48px;
  padding: 0 22px;
  text-decoration: none;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}
.v-button--primary {
  background: var(--v-gold);
  border: 1px solid var(--v-gold);
  color: var(--v-obsidian);
}
.v-button--primary:hover { background: var(--v-gold-hover); border-color: var(--v-gold-hover); color: var(--v-obsidian); transform: translateY(-1px); }
.v-button--secondary {
  background: rgba(5, 5, 5, .42);
  border: 1px solid var(--v-border);
  color: var(--v-ivory);
}
.v-button--secondary:hover { background: rgba(213,175,69,.09); border-color: var(--v-gold); color: var(--v-ivory); }
.v-text-link { color: var(--v-gold); text-decoration: underline; text-decoration-color: rgba(213,175,69,.52); text-underline-offset: 4px; }
.v-text-link:hover { color: var(--v-gold-hover); text-decoration-color: currentColor; }
.v-disclosure { background: rgba(8,8,8,.7); border: 1px solid var(--v-border-subtle); border-radius: var(--v-radius-card); }
.v-disclosure > summary { color: var(--v-ivory); cursor: pointer; min-height: 48px; padding: 15px 18px; }
.v-disclosure > :not(summary) { padding: 0 18px 18px; }
