/* =====================================================
   CONTACTO — CSS
   Archivo: assets/contacto.css
   Prefijo: co-
   Se encola en is_page('contacto') (ver functions.php)
   ===================================================== */

:root {
  --co-bg-base:        #0A0A0A;
  --co-bg-light:       #F5F3EE;
  --co-bg-white:       #FFFFFF;
  --co-bg-elevated:    #111111;
  --co-bg-surface:     #0D0D0D;
  --co-text-primary:   #F0EDE6;
  --co-text-muted:     #9A9690;
  --co-text-dim:       #555550;
  --co-text-dark:      #1A1A1A;
  --co-orange:         #FF6A00;
  --co-orange-subtle:  rgba(255, 106, 0, 0.12);
  --co-orange-border:  rgba(255, 106, 0, 0.25);
  --co-border-light:   rgba(0, 0, 0, 0.08);
  --co-border-dim:     rgba(255, 255, 255, 0.06);
  --co-whatsapp:       #25D366;
  --co-section-h:      40px;
}

/* ── Contenedor ─────────────────────────────────────── */
.co-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 var(--co-section-h);
}

/* ── Line decor ─────────────────────────────────────── */
.co-line-decor {
  width: 32px;
  height: 2px;
  background: var(--co-orange);
  border-radius: 1px;
  margin: 20px 0;
}

/* =====================================================
   SECCIÓN 1 — HERO
   ===================================================== */
.co-hero {
  background-color: var(--co-bg-base);
  background-image: url('/wp-content/uploads/2026/01/contacto-hero-hotel-lobby.webp');
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 120px var(--co-section-h) 72px; /* 120px: compensa header fijo */
}

.co-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.88);
}

.co-hero__content {
  position: relative;
  z-index: 1;
}

.co-hero__label {
  display: block;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--co-orange);
  margin-bottom: 14px;
}

.co-hero__title {
  font-size: 28px;
  font-weight: 500;
  color: var(--co-text-primary);
  line-height: 1.2;
  margin-bottom: 0;
}

.co-hero__body {
  font-size: 14px;
  color: var(--co-text-muted);
  line-height: 1.65;
  max-width: 420px;
  margin: 0;
}

/* =====================================================
   SECCIÓN 2 — FORMULARIO + INFO LATERAL
   ===================================================== */
.co-main {
  background: var(--co-bg-light);
  padding: 64px 0;
}

.co-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 48px;
  align-items: start;
}

/* ── Formulario wrapper ────────────────────────────── */
.co-form-wrapper {
  background: var(--co-bg-white);
  border-radius: 12px;
  padding: 36px 32px;
  border: 0.5px solid var(--co-border-light);
}

.co-form__title {
  font-size: 15px;
  font-weight: 500;
  color: var(--co-text-dark);
  margin-bottom: 6px;
}

.co-form__subtitle {
  font-size: 12px;
  color: #888;
  margin-bottom: 28px;
  line-height: 1.55;
}

/* Filas */
.co-form-row { margin-bottom: 14px; }

.co-form-row--2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* Grupos */
.co-form-group         { margin-bottom: 14px; }
.co-form-group:last-of-type { margin-bottom: 0; }

/* Labels */
.co-form-label {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: #555;
  margin-bottom: 6px;
}

/* Inputs, select, textarea */
.co-form-input {
  width: 100%;
  background: #F8F7F4;
  border: 0.5px solid rgba(0,0,0,0.15);
  border-radius: 6px;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--co-text-dark);
  font-family: inherit;
  outline: none;
  transition: border-color 150ms, background 150ms;
  appearance: none;
  -webkit-appearance: none;
}

.co-form-input::placeholder { color: #aaa; }
.co-form-input:hover         { border-color: rgba(0,0,0,0.25); }
.co-form-input:focus         { border-color: var(--co-orange); background: #fff; }
.co-form-input.is-error      { border-color: #E24B4A; }

/* Select — flecha custom */
.co-form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
  cursor: pointer;
}

/* Textarea */
.co-form-textarea {
  resize: vertical;
  min-height: 100px;
  line-height: 1.6;
}

/* Radios */
.co-form-radios {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.co-form-radio {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: #444;
  cursor: pointer;
}

.co-form-radio input[type="radio"] {
  accent-color: var(--co-orange);
  width: 14px;
  height: 14px;
  cursor: pointer;
}

/* Error general */
.co-form-error {
  font-size: 12px;
  color: #E24B4A;
  margin-bottom: 12px;
  min-height: 18px;
  display: none;
}

.co-form-error.is-visible { display: block; }

/* Submit */
.co-form-submit {
  width: 100%;
  background: var(--co-orange);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  padding: 14px;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: background 200ms;
  margin-top: 20px;
}

.co-form-submit:hover    { background: #e55f2e; }
.co-form-submit:disabled { background: #ccc; cursor: not-allowed; }
.co-form-submit.is-loading::after { content: '...'; }

/* Disclaimer */
.co-form-disclaimer {
  font-size: 11px;
  color: #aaa;
  text-align: center;
  margin-top: 10px;
}

/* ── Info lateral ──────────────────────────────────── */
.co-info {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Pasos */
.co-steps {
  background: var(--co-bg-base);
  border-radius: 10px;
  padding: 24px 20px;
  border: 0.5px solid var(--co-border-dim);
}

.co-steps__label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--co-text-muted);
  margin-bottom: 18px;
}

.co-steps__list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.co-step {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.co-step__num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 500;
  flex-shrink: 0;
  background: #1A1A1A;
  border: 0.5px solid rgba(255,255,255,0.15);
  color: var(--co-text-muted);
}

.co-step__num--active {
  background: var(--co-orange);
  border-color: var(--co-orange);
  color: #fff;
}

.co-step__text {
  font-size: 12px;
  color: var(--co-text-muted);
  line-height: 1.55;
}

/* WhatsApp */
.co-whatsapp {
  background: var(--co-bg-elevated);
  border: 0.5px solid var(--co-border-dim);
  border-radius: 10px;
  padding: 18px 16px;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: border-color 200ms;
}

.co-whatsapp:hover { border-color: rgba(37, 211, 102, 0.3); }

.co-whatsapp__icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.co-whatsapp__title {
  font-size: 12px;
  font-weight: 500;
  color: var(--co-text-primary);
  margin-bottom: 2px;
}

.co-whatsapp__sub { font-size: 11px; color: var(--co-text-dim); }

/* Exclusividad */
.co-exclusive {
  background: var(--co-bg-elevated);
  border: 0.5px solid var(--co-orange-border);
  border-radius: 10px;
  padding: 16px;
}

.co-exclusive p {
  font-size: 12px;
  color: var(--co-text-muted);
  line-height: 1.65;
}

.co-exclusive__highlight {
  color: var(--co-orange);
  font-weight: 500;
}

/* =====================================================
   ESTADO DE ÉXITO
   ===================================================== */
.co-success {
  background: var(--co-bg-base);
  padding: 80px var(--co-section-h);
}

.co-success__box {
  max-width: 480px;
  margin: 0 auto;
  text-align: center;
  background: var(--co-bg-elevated);
  border: 0.5px solid var(--co-orange-border);
  border-radius: 10px;
  padding: 48px 32px;
}

.co-success__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--co-orange-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
}

.co-success__title {
  font-size: 20px;
  font-weight: 500;
  color: var(--co-text-primary);
  margin-bottom: 10px;
  line-height: 1.3;
}

.co-success__body {
  font-size: 13px;
  color: var(--co-text-muted);
  line-height: 1.65;
  margin-bottom: 22px;
}

.co-success__link {
  font-size: 13px;
  font-weight: 500;
  color: var(--co-orange);
  text-decoration: none;
}

.co-success__link:hover { text-decoration: underline; }

/* =====================================================
   RESPONSIVE
   ===================================================== */

/* Tablet */
@media (max-width: 1023px) {
  .co-grid { grid-template-columns: 1fr; }
}

/* Mobile */
@media (max-width: 767px) {
  :root { --co-section-h: 20px; }

  .co-hero         { padding: 100px var(--co-section-h) 56px; }
  .co-hero__title  { font-size: 22px; }
  .co-main         { padding: 48px 0; }
  .co-form-wrapper { padding: 24px 20px; }

  .co-form-row--2col { grid-template-columns: 1fr; }

  .co-form-radios { flex-direction: column; gap: 10px; }

  .co-success { padding: 64px var(--co-section-h); }
  .co-success__box { padding: 36px 20px; }
}
