/*
  Página para dejar la hoja de vida (rediseño hv2).
  Cabecera con foto aparte (nunca texto encima de las caras), tres pasos,
  y dos columnas: formulario en tarjeta blanca y, al lado, la tarjeta azul
  que explica qué pasa con los datos. Todo dentro de un contenedor con
  margen lateral para que nada quede pegado al borde.
*/

#brx-content.hv2 {
  --hv-navy: #0C3362; --hv-cielo: #6EA6CD; --hv-fondo: #F8F5EF; --hv-niebla: #C3D3E0; --hv-oro: #D4AF37;
  box-sizing: border-box;
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding: calc(88px + clamp(1.2rem, 3vw, 2.2rem)) clamp(1rem, 3vw, 2rem) clamp(2.4rem, 5vw, 4rem) !important;
  font-family: "DM Sans", system-ui, sans-serif;
  color: #1d2b3c;
  overflow-x: clip;
}
#brx-content.hv2 *, #brx-content.hv2 *::before, #brx-content.hv2 *::after { box-sizing: border-box; }
#brx-content.hv2 em { font-style: normal; }
#brx-content.hv2 svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

@keyframes hv2Sube { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes hv2Pulso { 0%,100% { box-shadow: 0 0 0 0 rgba(212,175,55,.55); } 60% { box-shadow: 0 0 0 9px rgba(212,175,55,0); } }
@keyframes hv2Brillo { 0% { transform: translateX(-120%) skewX(-20deg); } 55%,100% { transform: translateX(260%) skewX(-20deg); } }
@keyframes hv2Flota { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes hv2Borde { to { background-position: 200% 0; } }

/* ---------- Cabecera ---------- */
.hv2-hero {
  display: grid; gap: clamp(1.4rem, 3vw, 2.6rem); align-items: center;
  grid-template-columns: minmax(0, 1fr);
  background: linear-gradient(135deg, #0C3362 0%, #133f75 55%, #1a4c86 100%);
  border-radius: 26px; padding: clamp(1.4rem, 3.6vw, 2.8rem);
  position: relative; overflow: hidden; color: #fff;
  box-shadow: 0 30px 60px -34px rgba(12,51,98,.65);
  animation: hv2Sube .7s ease both;
}
.hv2-hero::before {
  content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%;
  left: -140px; top: -160px; background: radial-gradient(circle, rgba(110,166,205,.35), transparent 65%); pointer-events: none;
}
.hv2-hero-texto { position: relative; min-width: 0; }
.hv2-chip {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .42rem .95rem; border-radius: 100px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(212,175,55,.55);
  color: #F3DE95; font-weight: 600; font-size: .92rem; margin-bottom: 1.1rem;
}
.hv2-chip i { width: 8px; height: 8px; border-radius: 50%; background: #D4AF37; animation: hv2Pulso 2.2s infinite; }
.hv2-titulo {
  font-family: "DM Sans", sans-serif; font-weight: 700; color: #fff;
  font-size: clamp(1.9rem, 4.2vw, 3.1rem); line-height: 1.1; margin: 0 0 1rem; text-wrap: balance; letter-spacing: -.01em;
}
.hv2-titulo em { color: #6EA6CD; }
.hv2-sub { margin: 0 0 1.4rem; font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.65; color: rgba(255,255,255,.86); max-width: 36rem; }
.hv2-sellos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.hv2-sellos li {
  display: flex; align-items: center; gap: .6rem; min-width: 0;
  padding: .62rem .8rem; border-radius: 14px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(195,211,224,.25);
  font-size: .95rem; font-weight: 600; line-height: 1.3; color: #fff;
  animation: hv2Sube .6s ease both;
}
.hv2-sellos li:nth-child(1) { animation-delay: .25s; } .hv2-sellos li:nth-child(2) { animation-delay: .35s; }
.hv2-sellos li:nth-child(3) { animation-delay: .45s; } .hv2-sellos li:nth-child(4) { animation-delay: .55s; }
.hv2-sellos svg { width: 30px; height: 30px; padding: 6px; border-radius: 9px; background: rgba(212,175,55,.18); color: #D4AF37; }
.hv2-hero-foto { margin: 0; position: relative; min-width: 0; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 10; box-shadow: 0 0 0 4px rgba(212,175,55,.65), 0 22px 44px -22px rgba(0,0,0,.6); }
.hv2-hero-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 77% 30%; max-width: none; }
@media (max-width: 420px) { .hv2-sellos { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 760px) {
  .hv2-hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .hv2-hero-foto { aspect-ratio: auto; height: 100%; min-height: 340px; }
}

/* ---------- Tres pasos ---------- */
.hv2-pasos {
  list-style: none; margin: clamp(1.2rem, 2.6vw, 1.8rem) 0; padding: 0;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; counter-reset: none;
}
@media (min-width: 900px) { .hv2-pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hv2-pasos li {
  display: flex; gap: .9rem; align-items: flex-start; min-width: 0;
  background: #fff; border: 1px solid #e4e9ef; border-radius: 18px; padding: 1rem 1.1rem;
  box-shadow: 0 12px 26px -22px rgba(12,51,98,.5);
  transition: transform .3s, box-shadow .3s, border-color .3s;
  animation: hv2Sube .6s ease both;
}
.hv2-pasos li:nth-child(1) { animation-delay: .3s; } .hv2-pasos li:nth-child(2) { animation-delay: .42s; } .hv2-pasos li:nth-child(3) { animation-delay: .54s; }
.hv2-pasos li:hover { transform: translateY(-4px); border-color: #6EA6CD; box-shadow: 0 18px 32px -22px rgba(12,51,98,.6); }
.hv2-num {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(135deg, #D4AF37, #b8952a); color: #0C3362; font-weight: 700; font-size: 1.15rem;
}
.hv2-pasos strong { display: block; color: #0C3362; font-size: 1.05rem; margin-bottom: .15rem; }
.hv2-pasos p { margin: 0; font-size: .93rem; line-height: 1.45; color: #4a5a6d; }

/* ---------- Dos columnas ---------- */
.hv2-columnas { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.2rem, 2.6vw, 2rem); align-items: start; }
@media (min-width: 960px) { .hv2-columnas { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } }

/* Tarjeta del formulario */
.hv2-tarjeta {
  position: relative; min-width: 0; background: #fff; border-radius: 24px;
  padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid #e4e9ef;
  box-shadow: 0 28px 56px -38px rgba(12,51,98,.55);
  animation: hv2Sube .7s .4s ease both; overflow: hidden;
}
.hv2-tarjeta::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(90deg, #D4AF37, #6EA6CD, #D4AF37); background-size: 200% 100%;
  animation: hv2Borde 5s linear infinite;
}
.hv2-tarjeta-cab { margin-bottom: 1.3rem; }
.hv2-tarjeta-cab h2 { margin: 0 0 .3rem; font-family: "DM Sans", sans-serif; font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 1.8rem); color: #0C3362; }
.hv2-tarjeta-cab p { margin: 0; color: #5d6b7c; font-size: .95rem; }
.hv2-tarjeta-cab span, .hv2-campo label > span, .hv2-etq > span { color: #c99a17; }

.hv2-form { margin: 0; padding: 0; background: none; border: 0; }
.hv2-fila { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 1rem; }
@media (min-width: 600px) { .hv2-fila { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hv2-campo { margin-bottom: 1rem; min-width: 0; }
.hv2-campo > label, .hv2-etq { display: block; font-size: .95rem; font-weight: 600; color: #0C3362; margin-bottom: .4rem; }
.hv2-campo > label .hv2-opcional { color: #7a8796; font-weight: 400; }
.hv2-campo input[type="text"], .hv2-campo input[type="email"], .hv2-campo input[type="tel"], .hv2-campo select, .hv2-campo textarea {
  display: block; width: 100%; max-width: 100%; padding: .85rem 1rem;
  font-family: "DM Sans", sans-serif; font-size: 1rem; color: #1d2b3c;
  background: #F8F5EF; border: 1.5px solid #e1e5ea; border-radius: 12px;
  transition: border-color .25s, background .25s, box-shadow .25s; -webkit-appearance: none; appearance: none;
}
.hv2-campo select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C3362' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .9rem center; background-size: 18px; padding-right: 2.6rem;
}
.hv2-campo textarea { resize: vertical; min-height: 5.5rem; }
.hv2-campo ::placeholder { color: #9aa6b3; }
.hv2-campo input:hover, .hv2-campo select:hover, .hv2-campo textarea:hover { border-color: #C3D3E0; }
.hv2-campo input:focus, .hv2-campo select:focus, .hv2-campo textarea:focus {
  outline: none; background: #fff; border-color: #6EA6CD; box-shadow: 0 0 0 4px rgba(110,166,205,.22);
}

/* Zona para el archivo: el input cubre toda la zona, así que clic y arrastre funcionan solos */
.hv2-zona {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .35rem;
  padding: 1.4rem 1rem; border: 2px dashed #C3D3E0; border-radius: 16px;
  background: linear-gradient(180deg, #f6f9fc, #eef4f9); cursor: pointer;
  transition: border-color .25s, background .25s, transform .25s;
}
.hv2-campo > label.hv2-zona { display: flex; margin-bottom: 0; font-weight: 400; }
.hv2-zona > span { display: block; }
.hv2-zona > .hv2-zona-ico { display: grid; }
.hv2-zona:hover, .hv2-zona.arrastrando { border-color: #6EA6CD; background: #eaf3fa; transform: translateY(-2px); }
.hv2-zona:focus-within { border-color: #6EA6CD; box-shadow: 0 0 0 4px rgba(110,166,205,.22); }
.hv2-zona.con-archivo { border-style: solid; border-color: #D4AF37; background: #fdf8ea; }
.hv2-zona input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.hv2-zona-ico { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #0C3362; color: #D4AF37; animation: hv2Flota 2.6s ease-in-out infinite; }
.hv2-zona-ico svg { width: 24px; height: 24px; }
.hv2-zona-txt { color: #3d4c5e; font-size: .98rem; }
.hv2-zona-txt strong { color: #0C3362; }
.hv2-zona-nombre { font-size: .88rem; color: #6b7889; word-break: break-word; max-width: 100%; }
.hv2-zona.con-archivo .hv2-zona-nombre { color: #0C3362; font-weight: 700; }

.hv2-consent { display: flex; gap: .7rem; align-items: flex-start; margin: .4rem 0 1.4rem; font-size: .9rem; line-height: 1.55; color: #4a5a6d; cursor: pointer; }
.hv2-consent input { flex-shrink: 0; width: 20px; height: 20px; margin-top: .1rem; accent-color: #0C3362; cursor: pointer; }
.hv2-consent strong { color: #0C3362; }
.hv2-consent a { color: #2f6f9f; text-decoration: underline; text-underline-offset: 2px; }

.hv2-enviar {
  position: relative; overflow: hidden; width: 100%;
  display: inline-flex; align-items: center; justify-content: center; gap: .7rem;
  padding: 1.05rem 1.4rem; border: 0; border-radius: 100px; cursor: pointer;
  font-family: "DM Sans", sans-serif; font-weight: 700; font-size: 1.1rem; color: #0C3362;
  background: linear-gradient(135deg, #e6c65a 0%, #D4AF37 50%, #b8952a 100%);
  box-shadow: 0 16px 30px -14px rgba(184,149,42,.8);
  transition: transform .25s, box-shadow .25s, filter .25s;
  animation: hv2Pulso 2.8s 1.5s infinite;
}
.hv2-enviar::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 35%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
  animation: hv2Brillo 3.2s ease-in-out infinite; pointer-events: none;
}
.hv2-enviar svg { width: 22px; height: 22px; transition: transform .25s; }
.hv2-enviar:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 20px 36px -14px rgba(184,149,42,.9); }
.hv2-enviar:hover svg { transform: translateX(4px); }
.hv2-enviar:disabled { opacity: .65; cursor: wait; animation: none; }
.hv2-seguro { display: flex; align-items: center; justify-content: center; gap: .45rem; margin: .8rem 0 0; font-size: .88rem; color: #6b7889; text-align: center; }
.hv2-seguro svg { width: 16px; height: 16px; color: #6EA6CD; }

#brx-content.hv2 .hv-aviso { margin: .9rem 0 0; font-size: .98rem; line-height: 1.5; color: #4a5a6d; }
#brx-content.hv2 .hv-aviso:empty { display: none; }
#brx-content.hv2 .hv-aviso.error { color: #8C2F29; }
#brx-content.hv2 .hv-aviso.ok {
  margin: 0; padding: 1.4rem 1.2rem; border-radius: 16px; background: #eef6ee; border: 1px solid #b9dcb9;
  color: #0C3362; font-weight: 700; font-size: 1.08rem; text-align: center;
}
.hv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Tarjeta azul de confianza */
.hv2-nota {
  position: relative; min-width: 0; overflow: hidden;
  background: linear-gradient(160deg, #0C3362, #154477); color: #fff;
  border-radius: 24px; padding: clamp(1.3rem, 3vw, 2rem);
  box-shadow: 0 28px 56px -36px rgba(12,51,98,.75);
  animation: hv2Sube .7s .55s ease both;
}
@media (min-width: 960px) { .hv2-nota { position: sticky; top: 104px; } }
.hv2-nota::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, rgba(212,175,55,.22), transparent 70%); pointer-events: none; }
.hv2-nota-ico { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: rgba(212,175,55,.16); color: #D4AF37; margin-bottom: .9rem; animation: hv2Flota 3s ease-in-out infinite; }
.hv2-nota-ico svg { width: 28px; height: 28px; }
.hv2-nota-tit { margin: 0 0 1rem; font-family: "DM Sans", sans-serif; font-weight: 700; font-size: clamp(1.3rem, 2.2vw, 1.6rem); color: #fff; }
.hv2-nota-lista { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .8rem; }
.hv2-nota-lista li { display: flex; gap: .75rem; align-items: flex-start; font-size: .95rem; line-height: 1.55; color: rgba(255,255,255,.86); min-width: 0; }
.hv2-nota-lista li > div { min-width: 0; }
.hv2-nota-lista svg { width: 32px; height: 32px; padding: 7px; border-radius: 10px; background: rgba(110,166,205,.2); color: #6EA6CD; }
.hv2-nota-lista strong { color: #fff; }
.hv2-nota-pie { margin: 0 0 1rem; padding-top: 1rem; border-top: 1px solid rgba(195,211,224,.25); font-size: .92rem; line-height: 1.55; color: rgba(255,255,255,.75); }
.hv2-nota-correo {
  position: relative; z-index: 1; display: flex; align-items: center; gap: .65rem; padding: .8rem .95rem; border-radius: 14px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(212,175,55,.45); color: #fff; text-decoration: none; font-size: .92rem;
  transition: background .25s, transform .25s; min-width: 0;
}
.hv2-nota-correo span { min-width: 0; overflow-wrap: anywhere; }
.hv2-nota-correo strong { color: #F3DE95; }
.hv2-nota-correo svg { width: 22px; height: 22px; color: #D4AF37; }
.hv2-nota-correo:hover { background: rgba(255,255,255,.14); transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
  #brx-content.hv2 *, #brx-content.hv2 *::before, #brx-content.hv2 *::after { animation: none !important; transition: none !important; }
}
