/* PWXCT-200: tema PULSO de la landing pública (/f/tdconsultores/pulso/...).
   Valores de PWXCT-196 (commit 97d6343, public/css/landing-form.css), copiados de
   pulso.transformaciondigital.pe; no reverificados en vivo. Montserrat autoalojada en /fonts. */
@font-face { font-family: 'Pulso Montserrat'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('/fonts/montserrat.woff2') format('woff2'); }
:root {
  --lp-red: #E82B22; --lp-wine: #88132D; --lp-grad: linear-gradient(135deg, #E82B22, #88132D);
  --lp-brand: #E82B22; --lp-brand-hover: #E82B22; --lp-brand-ink: #C81E16; --lp-ink: #191A19; --lp-head-ink: #191A19;
  --lp-muted: #595550; --lp-line: #DCD8D5; --lp-soft: #DCD8D5; --lp-bg: #F8F5F1; --lp-error-bg: #fdecea;
  --lp-radius: 20px; --lp-radius-sm: 14px; --lp-btn-radius: 999px;
  --lp-btn-shadow: 0 8px 20px #e82b2240; --lp-btn-shadow-hover: 0 10px 26px #e82b2259;
  --lp-body-weight: 400; --lp-head-weight: 800;
  --lp-font: 'Pulso Montserrat', Montserrat, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.lp-header { background: rgba(255, 255, 255, .92); }
.lp-header img { height: 28px; }
.lp-wrap h1 { letter-spacing: -.03em; }
.lp-lead { font-weight: 400; }
.lp-btn, .lp-btn:hover { background: var(--lp-grad); color: #fff; }
.lp-btn { font-size: 15px; }
.lp-error, .lp-state .lp-error { color: var(--lp-wine); border-left-color: var(--lp-red); }
.lp-ok::before { background: var(--lp-grad); }

/* PWXCT-257: rediseño moderno de la landing PULSO (tarjeta con profundidad, acento degradado,
   campos con estados, rejilla de dos columnas desde 600px). Todo aquí para no alterar TD/Santa Clara. */
:root {
  --lp-card-shadow: 0 1px 2px #191a190d, 0 12px 32px #88132d14;
  --lp-ok: #1F8A4C; --lp-field-h: 52px;
}
.lp-header { position: sticky; top: 0; z-index: 10; border-bottom: 0; box-shadow: 0 1px 0 var(--lp-line), 0 4px 16px #191a190a; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.lp-header-in { padding: 16px; }
.lp-header img { height: 30px; }
.lp-hero { padding-top: 4px; }
.lp-lead { max-width: 46ch; margin-bottom: 0; }
.lp-card { position: relative; overflow: hidden; padding: 28px 20px 24px; border-color: transparent; box-shadow: var(--lp-card-shadow); }
.lp-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--lp-grad); }
.lp-grid { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 16px; }
.lp-field { min-width: 0; margin-bottom: 18px; }
.lp-field label { margin-bottom: 8px; }
.lp-req { margin-left: 2px; font-weight: 800; color: var(--lp-red); }
.lp-field input, .lp-field textarea { min-height: var(--lp-field-h); padding: 14px 16px; background: #FDFCFB; transition: border-color .2s, box-shadow .2s, background .2s; }
.lp-field textarea { min-height: 120px; }
.lp-field input:focus-visible, .lp-field textarea:focus-visible { outline: none; border-color: var(--lp-red); background: #fff; box-shadow: 0 0 0 4px #e82b2229; }
.lp-field input:user-invalid, .lp-field textarea:user-invalid { border-color: var(--lp-brand-ink); background: #fff8f7; }
.lp-field input:user-valid, .lp-field textarea:user-valid { border-color: var(--lp-ok); }
.lp-field input[type=date], .lp-field input[type=time], .lp-field input[type=datetime-local] { min-width: 0; max-width: 100%; -webkit-appearance: none; appearance: none; }
.lp-field--check { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.lp-field--check label { margin: 0; }
.lp-field--check input { flex: none; width: 24px; height: 24px; min-height: 0; padding: 0; accent-color: var(--lp-red); }
.lp-btn { min-height: 52px; margin-top: 8px; letter-spacing: .01em; transition: transform .15s, box-shadow .15s, filter .15s; }
.lp-btn:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(-1px); }
.lp-btn:active:not(:disabled) { transform: translateY(0); filter: brightness(.96); }
.lp-btn:focus-visible { outline: 3px solid var(--lp-wine); outline-offset: 3px; }
.lp-btn:disabled { opacity: .7; box-shadow: none; }
.lp-ok { padding: 16px 0; }
.lp-ok:has(+ .lp-ok-sub) { padding-bottom: 4px; }
.lp-ok-sub { padding-bottom: 16px; }
.lp-ok::before { width: 64px; height: 64px; box-shadow: 0 8px 20px #e82b2240; }
.lp-state { text-align: center; }
.lp-state-icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin: 0 auto 16px; font-size: 26px; font-weight: 800; color: var(--lp-red); background: #e82b2214; border-radius: 50%; }
.lp-error { border-left-width: 4px; text-align: left; }
.lp-footer { padding: 16px 16px 40px; font-size: 12px; opacity: .8; }
@media (min-width: 600px) {
  .lp-header img { height: 32px; }
  .lp-card { padding: 36px; }
  .lp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-grid > .lp-field { grid-column: 1 / -1; }
  .lp-grid > .lp-field--corto { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .lp-field input, .lp-field textarea, .lp-btn { transition: none; }
}
