:root {
  --rosa: #F7D9DC;
  --azul: #2b6cb0;
  --azul-osc: #1d4e89;
  --azul-tit: #1d3557;
  --verde: #2e7d32;
  --rojo: #c62828;
  --gris: #555;
  --borde: #ccc;
}
* { box-sizing: border-box; }
body {
  font-family: 'Century Gothic', 'URW Gothic', 'Avant Garde', sans-serif;
  font-size: 10pt;
  margin: 0;
  min-height: 100vh;
  background-color: var(--rosa);
  color: #222;
}
.centro { display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 20px 16px 50px; }
.form-container {
  background: rgba(255, 255, 255, 0.94);
  padding: 30px 36px;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  width: 100%;
  max-width: 380px;
}
h2 { text-align: center; margin: 0 0 18px; color: var(--azul-tit); }
.intro-text { text-align: center; font-weight: bold; color: var(--azul-osc); font-size: 11pt; line-height: 1.4; margin: 0 0 18px; }
label { display: block; margin-top: 12px; margin-bottom: 4px; }
input, select, textarea {
  width: 100%;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 10pt;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: #fff;
}
textarea { resize: vertical; }
button, .boton {
  display: inline-block;
  width: 100%;
  margin-top: 20px;
  padding: 12px;
  background-color: var(--azul);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 10pt;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
}
button:hover, .boton:hover { background-color: var(--azul-osc); }
button:disabled { opacity: .6; cursor: default; }
.logo { display: block; margin: 0 auto 18px; max-width: 200px; width: 100%; height: auto; }
.gracias { text-align: center; }
.gracias h2 { color: var(--verde); }
.gracias p { margin-top: 10px; line-height: 1.5; }
.error { color: var(--rojo); margin-top: 10px; min-height: 1em; text-align: center; }
.terminos { display: flex; align-items: flex-start; gap: 6px; margin-top: 14px; }
.terminos input[type="checkbox"] { width: auto; margin-top: 2px; }
.terminos-label { display: inline; margin: 0; font-size: 9pt; line-height: 1.4; }
a { color: var(--azul); }
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); justify-content: center; align-items: center; z-index: 10; padding: 16px; }
.modal-overlay.abierto { display: flex; }
.modal-box { background: #fff; padding: 24px; border-radius: 8px; max-width: 360px; box-shadow: 0 4px 16px rgba(0,0,0,0.3); }
.modal-box h3 { margin-top: 0; color: var(--azul-tit); }
.modal-box p { font-size: 9pt; line-height: 1.5; color: #333; }
.modal-box button { width: auto; padding: 8px 16px; margin-top: 10px; }
.copyright { text-align: center; font-size: 8pt; color: var(--gris); position: fixed; bottom: 10px; left: 0; right: 0; }
.escala { display: flex; gap: 6px; margin-top: 6px; }
.escala input { display: none; }
.escala label {
  flex: 1; margin: 0; text-align: center; padding: 10px 0; border: 1px solid var(--borde);
  border-radius: 8px; cursor: pointer; background: #fff; font-weight: bold; color: var(--azul-tit);
}
.escala input:checked + label { background: var(--azul); color: #fff; border-color: var(--azul); }
.escala-leyenda { display: flex; justify-content: space-between; font-size: 8pt; color: var(--gris); margin-top: 4px; }
.hotel-chip { text-align: center; color: var(--azul-osc); margin: -8px 0 16px; }
