/* ==========================================================================
   FixDebtUSA — Contact Page
   Loaded only by contact.html, on top of theme.css + style.css + home.css.
   Reuses every hp-* class (header, footer, buttons, section rhythm)
   verbatim; sections unique to this page — the plain gradient hero, the
   contact-method cards, and the message form — get their own ct-* classes
   here.
   ========================================================================== */

/* Marks the current section's nav trigger green, and highlights the matching
   dropdown row — same treatment as the other Company-family pages use. */
.hp-nav__link--active,
.hp-nav__link--active .hp-nav__caret {
  color: hsl(var(--hp-green));
}

.hp-dropdown .hp-dropdown__item--active {
  background-color: hsl(var(--hp-mint-soft));
  color: hsl(var(--hp-green));
}

/* --------------------------------------------------------------------------
   1. Hero — plain gradient band, no wave (matches the reference: a flat
      edge into white, unlike the wave hero used elsewhere on the site)
   -------------------------------------------------------------------------- */

.ct-hero {
  padding-block: 4rem;
  background: linear-gradient(135deg, hsl(var(--hp-green-deep)), hsl(142 60% 38%));
  text-align: center;
}

.home .ct-hero__title {
  color: #fff;
  font-size: clamp(2rem, 5.5vw, 3.25rem);
  margin-bottom: 1rem;
}

.ct-hero__title .hp-accent { color: hsl(150 60% 78%); }

.ct-hero__lede {
  max-width: 36rem;
  margin-inline: auto;
  font-size: clamp(0.9375rem, 2vw, 1.0625rem);
  line-height: 1.6;
  color: hsl(0 0% 100% / .85);
}

/* --------------------------------------------------------------------------
   2. Layout — "Get in touch" column + message form
   -------------------------------------------------------------------------- */

.ct-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: start;
}

.ct-intro__title {
  font-size: clamp(1.5rem, 3.4vw, 1.875rem);
  margin-bottom: 0.6rem;
}

.ct-intro__lede {
  font-size: 0.9375rem;
  line-height: 1.6;
  margin-bottom: 1.75rem;
  max-width: 26rem;
}

.ct-methods {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.ct-method {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid hsl(var(--hp-line));
  border-radius: 1rem;
  background-color: #fff;
  box-shadow: var(--hp-shadow-card);
}

.ct-method__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: hsl(var(--hp-mint));
  color: hsl(var(--hp-green-dark));
  font-size: 1rem;
}

.ct-method__label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(var(--hp-body));
  margin-bottom: 0.2rem;
}

.ct-method__value {
  display: block;
  font-size: 1rem;
  font-weight: 800;
  color: hsl(var(--hp-ink));
}

.ct-method__note {
  display: block;
  font-size: 0.8125rem;
  color: hsl(var(--hp-body));
  margin-top: 0.15rem;
}

.ct-method--wide .ct-method__note {
  line-height: 1.55;
  max-width: 34rem;
}

.ct-callout {
  padding: 1.5rem;
  border-radius: 1.25rem;
  background-color: hsl(var(--hp-mint-soft));
}

.ct-callout h3 {
  font-size: 1.0625rem;
  margin-bottom: 0.5rem;
}

.ct-callout p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--hp-body));
  margin-bottom: 1.15rem;
}

/* --------------------------------------------------------------------------
   3. Message form
   -------------------------------------------------------------------------- */

.ct-form-card {
  padding: 2rem 1.75rem;
  border: 1px solid hsl(var(--hp-line));
  border-radius: 1.5rem;
  background-color: #fff;
  box-shadow: var(--hp-shadow-card);
}

.ct-form-card h2 {
  font-size: 1.25rem;
  margin-bottom: 1.5rem;
}

.ct-field {
  margin-bottom: 1.1rem;
}

.ct-field label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--hp-body));
  margin-bottom: 0.45rem;
}

.ct-field input,
.ct-field select,
.ct-field textarea {
  width: 100%;
  padding: 0.8rem 1rem;
  border: 1px solid hsl(var(--hp-line));
  border-radius: 0.65rem;
  font-family: var(--font-display);
  font-size: 0.9375rem;
  color: hsl(var(--hp-ink));
}

.ct-field textarea {
  min-height: 9rem;
  resize: vertical;
}

.ct-field input:focus,
.ct-field select:focus,
.ct-field textarea:focus {
  outline: 0;
  border-color: hsl(var(--hp-green));
  box-shadow: 0 0 0 3px hsl(var(--hp-green) / .18);
}

.ct-field-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.ct-form-note {
  margin: 0.85rem 0 0;
  text-align: center;
  font-size: 0.8125rem;
  color: hsl(var(--hp-body));
}

.ct-form-success {
  display: none;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
  border-radius: 0.85rem;
  background-color: hsl(var(--hp-mint));
  color: hsl(var(--hp-green-dark));
  font-size: 0.9375rem;
  font-weight: 600;
}

.ct-form-success.is-visible { display: flex; }
.ct-form-success i { flex-shrink: 0; font-size: 1.1rem; }

/* --------------------------------------------------------------------------
   4. Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 640px) {
  .ct-field-row { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 992px) {
  .ct-grid { grid-template-columns: 0.9fr 1.1fr; gap: 3.5rem; }
}
