.contacto-page {
  position:   relative;
  background: var(--nexo-bg);
  color:      var(--nexo-dark);
}

.contacto-page__body {
  padding-block-start: clamp(var(--space-12), 8vh, var(--space-24));
  padding-block-end:   clamp(var(--space-8), 5vh, var(--space-16));
}

.contacto-page__body .container { max-width: 76rem; }

/* ── Dos columnas: info | formulario (mitad y mitad) ────────────────────── */
.contacto__layout {
  display:               grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap:                   clamp(var(--space-12), 6vw, var(--space-24));
  align-items:           start;
}

/* ── Intro ──────────────────────────────────────────────────────────────── */
.contacto__intro {
  margin-block-end: var(--space-8);
}

.contacto__heading {
  font-family:    var(--font-heading);
  font-size:      var(--fs-2xl);
  font-weight:    var(--fw-bold);
  line-height:    var(--lh-tight);
  letter-spacing: -0.01em;
}

.contacto__lead {
  margin-block-start: var(--space-3);
  max-width:          46ch;
  font-family:        var(--font-heading);
  font-size:          var(--fs-md);
  line-height:        var(--lh-snug);
  color:              color-mix(in srgb, var(--nexo-dark) 75%, transparent);
}

/* ── Contacto directo (lista con marcador de color) ─────────────────────── */
.contacto-direct {
  display:        flex;
  flex-direction: column;
}

.contacto-direct__item {
  scroll-margin-top: var(--space-12);
  display:           flex;
  flex-direction:    column;
  align-items:       flex-start;
  gap:               var(--space-2);
  padding-block:     var(--space-6);
}

.contacto-direct__item:first-child { padding-block-start: 0; }

.contacto-direct__item + .contacto-direct__item {
  border-block-start: 1px solid color-mix(in srgb, var(--nexo-dark) 14%, transparent);
}

.contacto-direct__item--cyan   { --c: var(--nexo-cyan);   }
.contacto-direct__item--green  { --c: #29E5A0;            }
.contacto-direct__item--yellow { --c: var(--nexo-yellow); }

.contacto-direct__area {
  font-family: var(--font-heading);
  font-size:   var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
}

.contacto-direct__text {
  font-size:   var(--fs-sm);
  line-height: var(--lh-base);
  color:       color-mix(in srgb, var(--nexo-dark) 70%, transparent);
}

.contacto-direct__email {
  font-family:           var(--font-heading);
  font-size:             var(--fs-base);
  font-weight:           var(--fw-bold);
  color:                 var(--nexo-dark);
  text-decoration:       underline;
  text-decoration-color: var(--c, var(--nexo-dark));
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
  word-break:            break-word;
  transition:            opacity var(--duration-fast) ease;
}

.contacto-direct__email:hover { opacity: .6; }

.contacto-direct__tel {
  font-size: var(--fs-sm);
  color:     color-mix(in srgb, var(--nexo-dark) 60%, transparent);
}

/* ── Formulario (idéntico al del tema: campo amarillo sobre el crema) ────── */
.contacto-form {
  display:        flex;
  flex-direction: column;
  gap:            clamp(var(--space-6), 3vh, var(--space-8));
}

.contacto-form__title {
  font-family:    var(--font-heading);
  font-size:      var(--fs-2xl);
  font-weight:    var(--fw-bold);
  line-height:    var(--lh-tight);
  letter-spacing: -0.01em;
  color:          var(--nexo-dark);
}

.contacto-form__row {
  display:               grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap:                   clamp(var(--space-4), 2.5vh, var(--space-5));
}

.contacto-field {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-2);
}

.contacto-field__label {
  font-family:    var(--font-heading);
  font-size:      var(--fs-sm);
  font-weight:    var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .05em;
  color:          var(--nexo-dark);
}

.contacto-field__input {
  width:          100%;
  padding:        1.05rem 1rem;
  font-family:    var(--font-heading);
  font-size:      var(--fs-base);
  color:          var(--nexo-dark);
  background:     var(--nexo-yellow);
  border:         0;
  border-radius:  0;
  outline:        2px solid transparent;
  outline-offset: -2px;
  transition:     outline-color .15s;
}

.contacto-field__input::placeholder { color: color-mix(in srgb, var(--nexo-dark) 50%, transparent); }
.contacto-field__input:focus { outline-color: var(--nexo-dark); }

.contacto-field__select {
  appearance:          none;
  -webkit-appearance:  none;
  background-image:    linear-gradient(45deg, transparent 50%, var(--nexo-dark) 50%), linear-gradient(135deg, var(--nexo-dark) 50%, transparent 50%);
  background-position: calc(100% - 1.25rem) 1.35rem, calc(100% - 0.9rem) 1.35rem;
  background-size:     0.4rem 0.4rem, 0.4rem 0.4rem;
  background-repeat:   no-repeat;
  padding-inline-end:  var(--space-12);
}

.contacto-field__textarea {
  resize:      vertical;
  min-height:  9rem;
  line-height: var(--lh-normal);
}

.contacto-form__actions {
  display:            flex;
  flex-wrap:          wrap;
  align-items:        center;
  gap:                var(--space-5);
  margin-block-start: var(--space-2);
}

.contacto-form__submit {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  min-height:      3rem;
  padding:         var(--space-3) var(--space-8);
  background:      var(--nexo-purple);
  color:           var(--nexo-cream);
  font-family:     var(--font-heading);
  font-weight:     var(--fw-semibold);
  font-size:       var(--fs-sm);
  cursor:          pointer;
}

.contacto-form__submit:disabled {
  cursor:  default;
  opacity: .65;
}

.contacto-form__note {
  font-size: var(--fs-xs);
  color:     color-mix(in srgb, var(--nexo-dark) 50%, transparent);
}

.contacto-form__success {
  padding:     var(--space-4) var(--space-5);
  background:  #29E5A0;
  color:       var(--nexo-dark);
  font-family: var(--font-heading);
  font-size:   var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

/*
 * CF7 oculta el fieldset de campos ocultos con su propio CSS, pero el tema
 * elimina los estilos de terceros. Lo redeclaramos aquí.
 */
.contacto-form .hidden-fields-container { display: none; }

@media (max-width: 900px) {
  .contacto__layout {
    grid-template-columns: 1fr;
    gap: clamp(var(--space-12), 8vh, var(--space-16));
  }
}

@media (max-width: 640px) {
  .contacto-form__row { grid-template-columns: 1fr; }
}
