


.primaryButton {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: 'Merriweather Sans', sans-serif;
  font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  color: var(--accentDeep);
  background: var(--surfaceRaised);
  border: 2px solid transparent;
  border-radius: 10px;
  padding: 0.82rem 1.7rem;
  cursor: pointer;
  background-image:
    linear-gradient(var(--surfaceRaised), var(--surfaceRaised)),
    linear-gradient(135deg, var(--accentDeep) 0%, var(--accentMetalLight) 52%, var(--accentDeep) 100%);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  box-shadow: 0 4px 15px var(--glowDeep);
  transition: box-shadow var(--motion), transform var(--motionFast), color var(--motionFast);
}
.primaryButton:hover {
  box-shadow: 0 6px 26px var(--glowDeepStrong);
  transform: translateY(-2px);
  color: var(--accentDeepHi);
}
.primaryButton:active { transform: translateY(0); }
.largeButton { padding: 1.05rem 2.2rem; font-size: clamp(1rem, 0.94rem + 0.32vw, 1.16rem); width: auto; }
.blockButton { display: flex; width: 100%; }

.quietButton {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font: inherit;
  font-size: 0.94rem;
  font-weight: 500;
  color: var(--accentMetal);
  background: none;
  border: 0;
  border-bottom: 1px solid var(--hairlineMetal);
  border-radius: 0;
  padding: 0.35rem 0.1rem;
  cursor: pointer;
  text-decoration: none;
  transition: border-color var(--motionFast), color var(--motionFast);
}
.quietButton:hover { color: var(--accentMetalHi); border-bottom-color: var(--accentMetal); }

.callLink {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: 'Merriweather', Georgia, serif;
  font-weight: 700;
  font-size: 1.02rem;
  color: var(--accentDeep);
  text-decoration: none;
  letter-spacing: 0.01em;
}
.callLink:hover { color: var(--accentDeepHi); text-decoration: underline; }


.formGroup { display: flex; flex-direction: column; gap: 0.28rem; margin-bottom: var(--stepSm); }
.formLabel {
  font-size: 0.79rem;
  font-weight: 500;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--inkQuiet);
}
.formInput {
  font: inherit;
  font-size: 1rem;
  width: 100%;
  padding: 0.78rem 0.9rem;
  color: var(--inkStrong);
  background: var(--surfaceRaised);
  border: 1px solid var(--hairline);
  border-bottom: 2px solid var(--hairlineMetal);
  border-radius: var(--corner);
  transition: border-color var(--motionFast), box-shadow var(--motion);
}
.formInput:focus {
  outline: none;
  border-color: var(--accentDeep);
  box-shadow: 0 0 0 3px var(--glowDeep);
}
.formInput::placeholder { color: var(--inkQuiet); opacity: 1; }
.formError {
  display: block;
  font-size: 0.85rem;
  color: #9B1C1C;
  background: #FDECEC;
  border-left: 3px solid #9B1C1C;
  padding: 0.55rem 0.75rem;
  border-radius: var(--corner);
  margin-bottom: var(--stepSm);
}
.formConsent {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--inkBody);
  margin: var(--stepSm) 0;
}
.formConsent input {
  margin-top: 0.22rem;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: var(--accentDeep);
}
.formNote { font-size: 0.8rem; color: var(--inkQuiet); line-height: 1.5; margin: 0; }


.trustBadge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--accentMetal);
  background: var(--surfaceRaised);
  border: 1px solid var(--hairlineMetal);
  border-radius: 999px;
  padding: 0.34rem 0.85rem;
}
.cardBadge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  background: var(--accentDeep);
  color: var(--inkOnAccent);
  padding: 0.22rem 0.7rem;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
