/* ==========================================================
   VENTANA DE BIENVENIDA · guía gratuita
   Textos e imagen: Panel › Ajustes › Ventana de bienvenida
   ========================================================== */
.bienvenida{
  --bv-rosa:   #FBE7E6;
  --bv-rosa-2: #FDF5F3;
  --bv-coral:  var(--lp-coral, #E4606B);
  --bv-script: "Caveat", "Segoe Script", cursive;
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  background:color-mix(in srgb, var(--tinta) 55%, transparent);
  opacity:0;transition:opacity .28s ease;
  overflow-y:auto;
}
.bienvenida.abierta{opacity:1}
.bienvenida[hidden]{display:none}

.bv-caja{
  position:relative;
  display:grid;grid-template-columns:minmax(0,43%) minmax(0,1fr);
  width:min(960px,100%);
  min-height:540px;
  margin:auto;
  background:#fff;
  border-radius:22px;
  box-shadow:0 30px 80px -20px rgba(8,34,64,.45);
  transform:translateY(18px) scale(.98);
  transition:transform .32s cubic-bezier(.2,.8,.2,1);
  font-family:var(--f-ui);
  color:var(--tinta);
  outline:none;
}
.bienvenida.abierta .bv-caja{transform:none}

.bv-cerrar{
  position:absolute;top:14px;right:14px;z-index:5;
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  background:#fff;border:1px solid color-mix(in srgb,var(--tinta) 10%,transparent);
  box-shadow:0 6px 18px -6px rgba(8,34,64,.3);
  color:var(--tinta);
  transition:transform .18s ease;
}
.bv-cerrar:hover{transform:rotate(90deg)}
.bv-cerrar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}

/* ── Foto ─────────────────────────────────────────── */
.bv-foto{
  position:relative;overflow:hidden;
  border-radius:22px 0 0 22px;
  background:var(--bv-rosa);
  min-height:100%;
}
.bv-foto-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.bv-frase{
  position:absolute;top:44px;left:26px;
  max-width:55%;
  font-family:var(--bv-script);font-weight:500;
  font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.08;
  color:var(--tinta);
  transform:rotate(-8deg);transform-origin:left top;
  text-shadow:0 0 18px rgba(255,255,255,.9), 0 0 4px rgba(255,255,255,.9);
}
.bv-corazon-trazo{
  display:inline-block;width:.8em;height:.8em;vertical-align:-.08em;
  fill:none;stroke:var(--bv-coral);stroke-width:1.9;stroke-linejoin:round;
}
.bv-frase .bv-corazon-trazo{display:block;margin:6px 0 0 40px;width:34px;height:34px}

/* Onda rosada con el logo, abajo a la izquierda */
.bv-marca{
  position:absolute;left:0;bottom:0;
  width:64%;height:29%;
  display:flex;align-items:flex-end;justify-content:center;
  padding:0 18px 26px 18px;
  background:var(--bv-rosa);
  border-radius:0 100% 0 0 / 0 85% 0 0;
}
.bv-marca img{width:min(180px,80%);height:auto}
.bv-lema{
  position:absolute;right:22px;bottom:26px;
  max-width:42%;
  font-family:var(--bv-script);font-weight:500;
  font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.12;
  color:var(--tinta);text-align:center;
  transform:rotate(-7deg);
  text-shadow:0 0 12px rgba(255,255,255,.95), 0 0 3px rgba(255,255,255,.95);
}
.bv-lema .bv-corazon-trazo{stroke:var(--lago)}
.bv-foto[data-sin-logo] .bv-lema{left:26px;right:auto;text-align:left}

/* ── Contenido ────────────────────────────────────── */
.bv-cuerpo{
  position:relative;overflow:hidden;
  padding:30px 44px 20px 38px;
  border-radius:0 22px 22px 0;
  background:linear-gradient(165deg,#fff 0%,#fff 38%,var(--bv-rosa-2) 100%);
}
.bv-fondo-corazon{
  position:absolute;right:-60px;bottom:120px;
  width:260px;height:260px;
  fill:none;stroke:color-mix(in srgb,var(--bv-coral) 16%,transparent);stroke-width:1.6;
  transform:rotate(12deg);pointer-events:none;
}
.bv-paso{position:relative}

.bv-titulo{
  font-family:var(--f-display);
  font-weight:560;
  font-size:clamp(1.9rem,3vw,2.45rem);
  line-height:1.05;letter-spacing:-.015em;
  color:var(--tinta);
  padding-right:40px;
  outline:none;
}
.bv-garabato{
  display:inline-block;width:1.05em;height:.72em;vertical-align:-.02em;margin-left:.12em;
  fill:none;stroke:var(--bv-coral);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  opacity:.75;
}

.bv-saludo{margin-top:12px;font-weight:600;font-size:.98rem}
.bv-texto{margin-top:4px;font-size:.92rem;line-height:1.45;color:color-mix(in srgb,var(--tinta) 88%,transparent)}
.bv-texto + .bv-texto{margin-top:10px}
.bv-texto strong{color:var(--lago);font-weight:700}

.bv-firma{display:flex;flex-direction:column;margin-top:10px;line-height:1.28}
.bv-firma-trazo{
  font-family:var(--bv-script);font-weight:600;font-size:1.9rem;line-height:1;
  margin-bottom:4px;
}
.bv-firma-trazo .bv-corazon-trazo{stroke:var(--lago);width:.62em;height:.62em}
.bv-firma b{font-size:.94rem}
.bv-firma span:last-child:not(.bv-firma-trazo){font-size:.88rem;color:color-mix(in srgb,var(--tinta) 75%,transparent)}

/* Formulario */
.bv-form{margin-top:16px}
.bv-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.bv-oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.bv-campos{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}
.bv-campo{position:relative;display:block}
.bv-campo--ancho{grid-column:1 / -1}
.bv-campo svg{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);
  width:19px;height:19px;
  fill:none;stroke:color-mix(in srgb,var(--tinta) 55%,transparent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
}
.bv-campo input{
  width:100%;height:44px;
  padding:0 10px 0 42px;
  font:inherit;font-size:.9rem;color:var(--tinta);
  background:#fff;
  border:1px solid color-mix(in srgb,var(--tinta) 22%,transparent);
  border-radius:9px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.bv-campo input::placeholder{color:color-mix(in srgb,var(--tinta) 58%,transparent)}
.bv-campo input:focus{outline:none;border-color:var(--lago);box-shadow:0 0 0 3px color-mix(in srgb,var(--celeste) 30%,transparent)}
.bv-campo input[aria-invalid="true"]{border-color:var(--bv-coral)}

.bv-acepta{display:flex;align-items:flex-start;gap:9px;margin-top:10px;font-size:.82rem;line-height:1.4;cursor:pointer}
.bv-acepta input{width:17px;height:17px;margin-top:1px;flex:none;accent-color:var(--lago);cursor:pointer}
.bv-acepta a{color:var(--lago);font-weight:600;text-decoration:underline;text-underline-offset:2px}

.bv-error{
  margin-top:12px;padding:9px 12px;border-radius:8px;
  font-size:.9rem;font-weight:600;
  color:#9B2C35;background:#FDECEE;
}

.bv-boton{
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;min-height:50px;margin-top:12px;padding:8px 22px;
  font:inherit;font-weight:700;font-size:1.08rem;color:#fff;
  background:linear-gradient(90deg,#20AEB0 0%,#138C92 100%);
  border:0;border-radius:999px;
  box-shadow:0 12px 26px -12px color-mix(in srgb,var(--lago) 80%,transparent);
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.bv-boton:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 16px 30px -12px color-mix(in srgb,var(--lago) 85%,transparent)}
.bv-boton:disabled{opacity:.7;cursor:progress;transform:none}
.bv-boton svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.bv-boton .bv-flecha{width:20px;height:20px;stroke-width:2.4;transition:transform .18s ease}
.bv-boton:hover .bv-flecha{transform:translateX(3px)}

.bv-no{
  display:block;margin:8px auto 0;padding:4px 8px;
  background:none;border:0;
  font:inherit;font-size:.86rem;color:color-mix(in srgb,var(--tinta) 78%,transparent);
  text-decoration:underline;text-underline-offset:3px;
}
.bv-no:hover{color:var(--tinta)}

/* Gracias */
.bv-gracias{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding-block:40px;text-align:left}
.bv-gracias[hidden]{display:none}
.bv-gracias-corazon{width:64px;height:64px;margin-bottom:18px;fill:color-mix(in srgb,var(--bv-coral) 18%,transparent);stroke:var(--bv-coral);stroke-width:1.4}
.bv-gracias .bv-texto{margin-top:14px;font-size:1.08rem}
.bv-gracias .bv-boton{margin-top:26px;max-width:420px}
.bv-gracias .bv-no{margin-left:0}

/* ── Pantallas bajas (portátiles, zoom del navegador) ──
   La ventana se reduce en proporción para entrar completa sin scroll. */
@media (min-width:721px) and (max-height:760px){.bv-caja{zoom:.9}}
@media (min-width:721px) and (max-height:680px){.bv-caja{zoom:.8}}
@media (min-width:721px) and (max-height:600px){.bv-caja{zoom:.7}}
@media (min-width:721px) and (max-height:520px){.bv-caja{zoom:.6}}

/* ── Tabletas ─────────────────────────────────────── */
@media (max-width:960px){
  .bv-caja{grid-template-columns:minmax(0,40%) minmax(0,1fr)}
  .bv-cuerpo{padding:40px 32px 26px}
  .bv-lema{display:none}
  .bv-marca{width:100%;height:30%;border-radius:0 80% 0 0 / 0 60% 0 0}
}

/* ── Móvil: la foto pasa a ser una franja superior ── */
@media (max-width:720px){
  .bienvenida{padding:12px;align-items:flex-start}
  .bv-caja{grid-template-columns:minmax(0,1fr);min-height:0;border-radius:18px}
  .bv-foto{height:190px;min-height:0;border-radius:18px 18px 0 0}
  .bv-foto-img{object-position:center 30%}
  .bv-frase{top:18px;left:18px;font-size:1.45rem;max-width:60%}
  .bv-frase .bv-corazon-trazo{display:none}
  .bv-marca{width:62%;height:62px;padding:0 14px 10px 14px;border-radius:0 90% 0 0 / 0 100% 0 0}
  .bv-marca img{width:128px}
  .bv-cuerpo{padding:24px 20px 20px;border-radius:0 0 18px 18px}
  .bv-fondo-corazon{display:none}
  .bv-titulo{font-size:1.85rem;padding-right:0}
  .bv-texto{font-size:.96rem}
  .bv-campos{grid-template-columns:1fr}
  .bv-boton{font-size:1.05rem}
  .bv-cerrar{top:10px;right:10px;width:40px;height:40px}
}

@media (prefers-reduced-motion:reduce){
  .bienvenida,.bv-caja,.bv-boton,.bv-cerrar{transition:none}
}
