:root {
  --crema: #f8f5f0;
  --blanco: #ffffff;
  --pizarra: #2f3e46;
  --texto: #3a4046;
  --gris: #6e6a64;
  --salvia: #5f7a5c;
  --salvia-suave: #e7ece5;
  --rosa: #b85c62;
  --rosa-suave: #f4e6e6;
  --borde: #d9d4cc;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--crema);
  color: var(--texto);
  font-family: 'Mulish', system-ui, -apple-system, Segoe UI, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.pagina { padding: 24px 16px 48px; }
.tarjeta {
  max-width: 620px;
  margin: 0 auto;
  background: var(--blanco);
  border-radius: 20px;
  padding: 36px 28px;
  box-shadow: 0 8px 32px rgba(47, 62, 70, .08);
}
.cabecera { text-align: center; }
.sobre {
  margin: 0 0 6px;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gris);
}
h1 {
  margin: 0;
  font-family: 'Mulish', sans-serif;
  font-weight: 800;
  font-size: clamp(30px, 7vw, 44px);
  letter-spacing: .02em;
  color: var(--pizarra);
}
.subtitulo {
  margin: 8px 0 0;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--salvia);
}
.subtitulo span { font-weight: 500; font-size: 14px; letter-spacing: .14em; color: var(--pizarra); }
.lema {
  margin: 18px auto 0;
  max-width: 460px;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 20px;
  line-height: 1.35;
  color: var(--rosa);
}
.datos-evento {
  list-style: none;
  margin: 28px 0 0;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  background: var(--rosa-suave);
  border-radius: 14px;
  text-align: center;
}
.datos-evento li { font-size: 14px; line-height: 1.3; }

.datos-evento strong { color: var(--pizarra); font-weight: 700; }
.intro { margin: 28px 0 8px; color: var(--texto); }

.formulario { margin-top: 16px; }
.campo { margin-bottom: 18px; }
.fila { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label { display: block; font-weight: 700; font-size: 14px; color: var(--pizarra); margin-bottom: 6px; }
.req { color: var(--rosa); }
.opc { font-weight: 400; color: var(--gris); }
input[type=text], input[type=email], input[type=tel], textarea {
  width: 100%;
  font: inherit;
  padding: 12px 14px;
  border: 1.5px solid var(--borde);
  border-radius: 10px;
  background: #fff;
  color: var(--texto);
  transition: border-color .15s, box-shadow .15s;
}
input:focus, textarea:focus {
  outline: none;
  border-color: var(--salvia);
  box-shadow: 0 0 0 3px rgba(95, 122, 92, .18);
}
textarea { resize: vertical; min-height: 88px; }
.con-error input, .con-error textarea { border-color: var(--rosa); }
.error { margin: 6px 0 0; font-size: 13px; font-weight: 700; color: var(--rosa); }
.ayuda { margin: 6px 0 0; font-size: 13px; color: var(--gris); }
.campo-check label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 13px; color: var(--texto); }
.campo-check input { margin-top: 3px; flex: none; width: 18px; height: 18px; accent-color: var(--salvia); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.boton {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 15px 20px;
  border: 0;
  border-radius: 999px;
  background: var(--salvia);
  color: #fff;
  font: inherit;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s;
}
.boton:hover, .boton:focus-visible { background: #4c6449; outline: none; }
.nota { margin: 12px 0 0; font-size: 13px; color: var(--gris); }
.centrado { text-align: center; }

.alerta {
  margin: 16px 0;
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--rosa-suave);
  border-left: 4px solid var(--rosa);
  color: var(--pizarra);
  font-weight: 700;
}
.exito {
  margin-top: 28px;
  padding: 24px;
  border-radius: 14px;
  background: var(--salvia-suave);
  text-align: center;
}
.exito h2 { margin: 0 0 8px; font-size: 22px; color: var(--salvia); }
.exito p { margin: 0 0 14px; }

.pie {
  margin-top: 36px;
  padding-top: 20px;
  border-top: 1px solid var(--borde);
  text-align: center;
  font-size: 13px;
  color: var(--gris);
}
.firma { margin: 0 0 12px; color: var(--pizarra); font-size: 15px; }
.firma strong { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 17px; letter-spacing: .04em; }
.firma em { color: var(--rosa); }
.ayuda-linea { margin: 0 0 10px; padding: 10px 12px; background: var(--crema); border-radius: 10px; color: var(--pizarra); }
.cierre { margin: 0; letter-spacing: .08em; }

@media (max-width: 520px) {
  .tarjeta { padding: 28px 18px; border-radius: 14px; }
  .fila { grid-template-columns: 1fr; gap: 0; }
  .datos-evento { grid-template-columns: 1fr; text-align: left; }
  .datos-evento li { display: flex; align-items: center; gap: 10px; }
  .datos-evento .ico { margin: 0; }
}

/* Logos e íconos */
.logo-sistel { display: block; margin: 6px auto 14px; width: 200px; max-width: 60%; height: auto; }
.logo-catalina { display: block; margin: 0 auto 16px; width: 240px; max-width: 70%; height: auto; }
.datos-evento .ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; margin: 0 auto 6px; border-radius: 50%; color: #fff;
}
.datos-evento .ico svg { width: 22px; height: 22px; }
.ico-salvia { background: var(--salvia); }
.ico-rosa { background: var(--rosa); }
@media (max-width: 520px) {
  .datos-evento .ico { margin: 0; flex: none; }
}
.datos-evento li { display: flex; flex-direction: column; align-items: center; gap: 6px; }
@media (max-width: 520px) {
  .datos-evento li { flex-direction: row; gap: 10px; }
}
