/**
 * Tokens de layout Stitch / Professional Trust
 * Fallback explícito para que espaciado y contenedores funcionen
 * aunque el CDN de Tailwind no genere todas las utilidades custom.
 */

/* ─── Espaciado de sección y márgenes ─── */
.py-section-padding {
  padding-top: 80px;
  padding-bottom: 80px;
}

.px-margin-mobile {
  padding-left: 20px;
  padding-right: 20px;
}

@media (min-width: 768px) {
  .md\:px-gutter {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* ─── Contenedor y touch targets ─── */
.max-w-container-max {
  max-width: 1200px;
}

.h-touch-target {
  min-height: 48px;
  height: 48px;
}

.pt-touch-target {
  padding-top: 48px;
}

.min-h-touch-target {
  min-height: 48px;
}

/* ─── Tipografía display / headline (fallback) ─── */
.font-display-lg-mobile,
.text-display-lg-mobile {
  font-family: Lexend, sans-serif;
  font-size: 36px;
  line-height: 42px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.font-display-lg,
.text-display-lg {
  font-family: Lexend, sans-serif;
  font-size: 48px;
  line-height: 56px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

@media (min-width: 768px) {
  .md\:font-display-lg {
    font-family: Lexend, sans-serif;
    font-size: 48px;
    line-height: 56px;
    font-weight: 700;
    letter-spacing: -0.02em;
  }

  .md\:text-display-lg {
    font-size: 48px;
    line-height: 56px;
  }
}

.font-headline-md,
.text-headline-md {
  font-family: Lexend, sans-serif;
  font-size: 32px;
  line-height: 40px;
  font-weight: 600;
}

.font-headline-md-mobile,
.text-headline-md-mobile {
  font-family: Lexend, sans-serif;
  font-size: 24px;
  line-height: 32px;
  font-weight: 600;
}

.font-title-lg,
.text-title-lg {
  font-family: Lexend, sans-serif;
  font-size: 20px;
  line-height: 28px;
  font-weight: 500;
}

.font-body-lg,
.text-body-lg {
  font-family: Inter, sans-serif;
  font-size: 18px;
  line-height: 28px;
}

.font-body-md,
.text-body-md {
  font-family: Inter, sans-serif;
  font-size: 16px;
  line-height: 24px;
}

.font-cta-label,
.text-cta-label {
  font-family: Lexend, sans-serif;
  font-size: 18px;
  line-height: 24px;
  font-weight: 600;
}

.font-label-caps,
.text-label-caps {
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ─── Estructura de página ─── */
main {
  display: block;
}

section {
  display: block;
  width: 100%;
}

form[data-lead-form] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

form[data-lead-form] > .space-y-1,
form[data-lead-form] > .space-y-2,
form[data-lead-form] > .space-y-4 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}

form[data-lead-form] > .space-y-4 {
  gap: 1rem;
}

form[data-lead-form] input:not([type="checkbox"]):not([type="radio"]),
form[data-lead-form] select,
form[data-lead-form] textarea {
  width: 100%;
  box-sizing: border-box;
}

form[data-lead-form] > .consent-check,
form[data-lead-form] .consent-check {
  align-self: stretch;
  margin-top: 0.25rem;
}
