/* Brand: southtexasweld.live — CONTACT only. DNA tokens. Namespace sou21. */

.sou21-ct {
  padding: clamp(2.4rem, 6vw, 5.5rem) 0 clamp(3.2rem, 8vw, 6.5rem);
  background:
    linear-gradient(180deg, var(--dna-surface) 0 42%, var(--dna-surface-2) 42% 100%);
}

.sou21-ct-wrap {
  display: grid;
  gap: clamp(1.8rem, 4vw, 2.8rem);
}

.sou21-ct-lead {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  max-width: 40rem;
}

.sou21-ct-lead > *,
.sou21-ct-field > *,
.sou21-ct-form > *,
.sou21-ct-list li > *,
[data-contact-info] > * {
  margin: 0;
}

.sou21-ct-kicker {
  color: var(--dna-accent);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sou21-ct-lead h1 {
  max-width: 16ch;
  font-size: clamp(2.05rem, 3.8vw, 3.2rem);
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.sou21-ct-lead p {
  max-width: 38rem;
  color: var(--dna-ink-soft);
  font-size: 1.02rem;
  text-wrap: pretty;
}

.dna-contact-stacked-booking-first [data-contact-root],
[data-contact-root] {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 1.8rem;
  width: min(100%, 36rem);
  max-width: 36rem;
  margin: 0;
}

[data-contact-booking],
[data-contact-info] {
  display: grid;
  align-content: start;
  gap: 1rem;
}

.sou21-ct-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.55rem 0.7rem;
  padding: 1.15rem 1.15rem 1.2rem;
  border: 1px solid var(--dna-line);
  border-left: 4px solid var(--dna-accent);
  border-radius: 4px;
  background: var(--dna-surface);
}

.sou21-ct-field {
  display: grid;
  grid-template-rows: auto auto;
  align-items: start;
  gap: 0.4rem;
}

.sou21-ct-field label {
  font-size: 0.78rem;
  font-weight: 800;
}

.sou21-ct-field input {
  width: 100%;
  min-height: 3rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--dna-line);
  border-radius: 4px;
  background: var(--dna-bg);
  color: var(--dna-ink);
}

.sou21-ct-field input::placeholder { color: var(--dna-ink-soft); }
.sou21-ct-field input[aria-invalid="true"] { border-color: #a23d35; }

.sou21-ct-form button {
  min-height: 3rem;
  padding: 0.7rem 1.1rem;
  border: 1px solid var(--dna-accent);
  border-radius: 4px;
  background: var(--dna-accent);
  color: var(--dna-accent-ink);
  font-size: 0.88rem;
  font-weight: 800;
}

.sou21-ct-form button:hover { background: var(--dna-accent-2); }

.sou21-ct-status,
.sou21-ct-note {
  grid-column: 1 / -1;
  color: var(--dna-ink-soft);
  font-size: 0.85rem;
  text-wrap: pretty;
}

.sou21-ct-status:empty { display: none; }
.sou21-ct-status.is-error { color: #8d302a; }
.sou21-ct-status.is-success {
  color: var(--dna-ink);
  font-weight: 800;
}

[data-contact-info] h2 {
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.sou21-ct-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--dna-line);
}

.sou21-ct-list li {
  display: grid;
  grid-template-columns: 6.2rem minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: start;
  gap: 0.7rem 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--dna-line);
}

.sou21-ct-label {
  color: var(--dna-accent);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sou21-ct-list strong {
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-wrap: pretty;
}

.sou21-ct-list a {
  color: var(--dna-ink);
  font-weight: 800;
  text-underline-offset: 0.18em;
}

@media (max-width: 768px) {
  .sou21-ct-lead h1 { max-width: none; }

  .dna-contact-stacked-booking-first [data-contact-root],
  [data-contact-root] {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 620px) {
  .sou21-ct { padding-top: 2rem; }

  .sou21-ct-form {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .sou21-ct-form button { width: 100%; }

  .sou21-ct-list li {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .sou21-ct-list a { overflow-wrap: anywhere; }
}
