/* =====================================================================
   PRIGLAM VESTIDO IDEAL — Frontend Form CSS
   Prefijo: pvi- para no colisionar con el tema de WordPress
===================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500;600&display=swap');

.priglam-vi-wrap {
  --pvi-bg:#FDF8F5; --pvi-white:#FFFFFF; --pvi-blush:#EAA8BC;
  --pvi-blush-light:#FBEDF3; --pvi-blush-dark:#C97D97;
  --pvi-nude:#D4B5A8; --pvi-nude-light:#F8F0EC;
  --pvi-text:#2A1F1F; --pvi-text-mid:#6B4F4F; --pvi-text-muted:#A08888;
  --pvi-border:#EDD8D0; --pvi-shadow:0 8px 48px rgba(180,100,120,0.10);
  position:relative; width:100%; max-width:440px;
  /* Triple fallback de altura: vh → svh (sin barras UI) → dvh (dinámico, iOS Chrome) */
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  margin:0 auto; background:var(--pvi-white); box-shadow:var(--pvi-shadow);
  border-radius:24px; overflow:hidden; font-family:'Jost',sans-serif;
  /* flex column para que las pantallas hijas puedan usar flex:1 */
  display:flex; flex-direction:column;
}

/* Progress */
#pvi-progress-wrap { position:absolute; top:0;left:0;right:0; z-index:200; display:none; }
#pvi-progress-track { height:3px; background:var(--pvi-nude-light); }
#pvi-progress-fill { height:100%; background:linear-gradient(90deg,var(--pvi-blush),var(--pvi-blush-dark)); transition:width .55s cubic-bezier(.4,0,.2,1); border-radius:0 2px 2px 0; }
#pvi-progress-label { display:flex; justify-content:space-between; padding:10px 20px 0; }
#pvi-progress-label span { font-size:10.5px; font-weight:500; letter-spacing:.12em; color:var(--pvi-text-muted); text-transform:uppercase; }

/* Back btn */
#pvi-back-btn { display:none; position:absolute; top:14px;left:16px; z-index:201; width:38px;height:38px; border:none; background:rgba(255,255,255,.85); backdrop-filter:blur(8px); border-radius:50%; cursor:pointer; align-items:center;justify-content:center; color:var(--pvi-text-mid); font-size:22px; box-shadow:0 2px 12px rgba(180,100,120,.12); transition:background .2s,transform .15s; line-height:1; }
#pvi-back-btn:hover { background:var(--pvi-blush-light); transform:scale(1.05); }

/* Screens */
.pvi-screen { position:absolute; inset:0; min-height:100vh; min-height:100svh; min-height:100dvh; display:flex; flex-direction:column; opacity:0; pointer-events:none; transform:translateX(36px); transition:opacity .35s ease,transform .35s cubic-bezier(.4,0,.2,1); background:var(--pvi-white); overflow-y:auto; overflow-x:hidden; }
.pvi-screen.pvi-active { opacity:1; pointer-events:all; transform:translateX(0); z-index:10; }
.pvi-screen.pvi-exit   { opacity:0; transform:translateX(-36px); pointer-events:none; }

/* Welcome */
#pvi-s-welcome { background:linear-gradient(155deg,#FDF2F7 0%,#FAF0EC 60%,#FDF8F5 100%); align-items:center;justify-content:center;text-align:center; padding:50px 32px; min-height:100vh; min-height:100svh; min-height:100dvh; }
.pvi-welcome-orb { width:116px;height:116px; border-radius:50%; background:linear-gradient(135deg,#F5CEDD 0%,#E8A5BC 100%); display:flex;align-items:center;justify-content:center; font-size:52px; margin:0 auto 28px; box-shadow:0 16px 48px rgba(210,110,150,.22),0 0 0 14px rgba(245,206,221,.28),0 0 0 28px rgba(245,206,221,.12); animation:pvi-orb-float 3.2s ease-in-out infinite; }
@keyframes pvi-orb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.pvi-welcome-brand { font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:.3em; color:var(--pvi-blush-dark); text-transform:uppercase; margin-bottom:14px; }
.pvi-welcome-title { font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:300; line-height:1.22; color:var(--pvi-text); margin-bottom:14px; }
.pvi-welcome-title em { font-style:italic; color:var(--pvi-blush-dark); }
.pvi-welcome-sub { font-size:14px; font-weight:300; color:var(--pvi-text-mid); line-height:1.75; margin-bottom:36px; max-width:280px; }
.pvi-welcome-chips { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }
.pvi-chip { background:rgba(255,255,255,.7); border:1px solid var(--pvi-border); border-radius:30px; padding:8px 14px; font-size:11.5px; font-weight:500; color:var(--pvi-text-mid); display:flex;align-items:center;gap:6px; }

/* Inner */
.pvi-inner { display:flex; flex-direction:column; min-height:100vh; min-height:100svh; min-height:100dvh; padding:70px 26px 36px; }
.pvi-spacer { flex:1; min-height:16px; }
.pvi-cat-label { font-size:10.5px; font-weight:600; letter-spacing:.22em; color:var(--pvi-blush-dark); text-transform:uppercase; margin-bottom:8px; }
.pvi-s-title { font-family:'Cormorant Garamond',serif; font-size:29px; font-weight:400; line-height:1.22; color:var(--pvi-text); margin-bottom:10px; }
.pvi-s-title em { font-style:italic; color:var(--pvi-blush-dark); }
.pvi-s-desc { font-size:13.5px; font-weight:300; color:var(--pvi-text-mid); line-height:1.72; margin-bottom:24px; }

/* Illus */
.pvi-illus { width:100%; height:148px; border-radius:16px; background:linear-gradient(135deg,var(--pvi-blush-light) 0%,var(--pvi-nude-light) 100%); display:flex;align-items:center;justify-content:center; margin-bottom:22px; position:relative; overflow:hidden; }
.pvi-illus::before { content:''; position:absolute; width:180px;height:180px; border-radius:50%; background:rgba(255,255,255,.45); top:-60px;right:-50px; }
.pvi-illus::after  { content:''; position:absolute; width:100px;height:100px; border-radius:50%; background:rgba(255,255,255,.25); bottom:-30px;left:-20px; }

/* Fields */
.pvi-input-lbl { display:block; font-size:11px; font-weight:600; letter-spacing:.14em; color:var(--pvi-text-mid); text-transform:uppercase; margin-bottom:10px; }
.pvi-req { color:var(--pvi-blush-dark); }
.pvi-input-wrap { position:relative; display:flex; align-items:center; }
.pvi-prefix { position:absolute; left:18px; font-size:16px; color:var(--pvi-text-muted); pointer-events:none; }
.pvi-hint { font-size:11.5px; color:var(--pvi-text-muted); margin-top:6px; font-weight:300; }
.pvi-field { width:100%; padding:16px 20px; border:1.5px solid var(--pvi-border); border-radius:14px; font-family:'Jost',sans-serif; font-size:16px; color:var(--pvi-text); background:#FEFCFB; outline:none; transition:border-color .25s,box-shadow .25s,background .2s; -webkit-appearance:none; appearance:none; }
.pvi-field:focus { border-color:var(--pvi-blush); background:#fff; box-shadow:0 0 0 4px rgba(234,168,188,.16); }
.pvi-field.pvi-has-suffix { padding-right:52px; }
.pvi-field.pvi-field-tel  { padding-left:30px; }
.pvi-field.pvi-err { border-color:#D97070; box-shadow:0 0 0 4px rgba(220,110,110,.12); }
.pvi-suffix { position:absolute; right:18px; top:50%; transform:translateY(-50%); font-size:13px; font-weight:500; color:var(--pvi-text-muted); pointer-events:none; }

/* Errors */
.pvi-err-msg { font-size:12px; color:#C06060; margin-top:8px; padding-left:2px; display:none; }
.pvi-err-msg.pvi-show { display:block; animation:pvi-shake .3s ease; }
@keyframes pvi-shake{0%{transform:translateX(-4px);opacity:0}50%{transform:translateX(3px)}100%{transform:translateX(0);opacity:1}}

/* Option cards */
.pvi-options { display:flex; flex-direction:column; gap:9px; margin-bottom:6px; }
.pvi-opt-card { display:flex;align-items:center;gap:14px; padding:15px 18px; border:1.5px solid var(--pvi-border); border-radius:14px; cursor:pointer; background:#FEFCFB; transition:border-color .2s,background .2s,box-shadow .2s; user-select:none; }
.pvi-opt-card:hover { border-color:var(--pvi-blush); background:var(--pvi-blush-light); }
.pvi-opt-card.pvi-sel { border-color:var(--pvi-blush-dark); background:var(--pvi-blush-light); box-shadow:0 0 0 4px rgba(201,125,151,.10); }
.pvi-opt-ico { font-size:22px; flex-shrink:0; }
.pvi-opt-body { flex:1; }
.pvi-opt-label { font-size:15px; font-weight:500; color:var(--pvi-text); }
.pvi-opt-sub { font-size:12px; font-weight:300; color:var(--pvi-text-muted); margin-top:2px; }
.pvi-opt-check { width:22px;height:22px; border-radius:50%; border:1.5px solid var(--pvi-border); display:flex;align-items:center;justify-content:center; flex-shrink:0; font-size:11px; color:transparent; transition:all .2s; }
.pvi-opt-card.pvi-sel .pvi-opt-check { background:var(--pvi-blush-dark); border-color:var(--pvi-blush-dark); color:white; }

/* Silueta grid */
.pvi-options-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:6px; }
.pvi-opt-card-sil { display:flex;flex-direction:column;align-items:center;gap:8px; padding:16px 10px 14px; border:1.5px solid var(--pvi-border); border-radius:16px; cursor:pointer; background:#FEFCFB; transition:border-color .2s,background .2s,box-shadow .2s; user-select:none; text-align:center; position:relative; }
.pvi-opt-card-sil:hover { border-color:var(--pvi-blush); background:var(--pvi-blush-light); }
.pvi-opt-card-sil.pvi-sel { border-color:var(--pvi-blush-dark); background:var(--pvi-blush-light); box-shadow:0 0 0 4px rgba(201,125,151,.10); }
.pvi-opt-card-sil.pvi-full-width { grid-column:1/-1; flex-direction:row; text-align:left; padding:14px 18px; }
.pvi-sil-svg-wrap { width:52px;height:72px; display:flex;align-items:center;justify-content:center; flex-shrink:0; }
.pvi-sil-label { font-size:13px; font-weight:500; color:var(--pvi-text); }
.pvi-sil-sub { font-size:11px; font-weight:300; color:var(--pvi-text-muted); }
.pvi-opt-card-sil.pvi-full-width .pvi-sil-label { font-size:14px; }
.pvi-sil-check { width:20px;height:20px; border-radius:50%; border:1.5px solid var(--pvi-border); display:flex;align-items:center;justify-content:center; font-size:10px; color:transparent; transition:all .2s; flex-shrink:0; position:absolute; top:10px;right:10px; }
.pvi-opt-card-sil.pvi-full-width .pvi-sil-check { position:static; margin-left:auto; }
.pvi-opt-card-sil.pvi-sel .pvi-sil-check { background:var(--pvi-blush-dark); border-color:var(--pvi-blush-dark); color:white; }
.pvi-sil-body { flex:1; }

/* Foto upload */
.pvi-foto-drop { border:2px dashed var(--pvi-border); border-radius:18px; padding:28px 20px; display:flex;flex-direction:column;align-items:center;gap:12px; background:var(--pvi-nude-light); cursor:pointer; transition:border-color .2s,background .2s; text-align:center; position:relative; }
.pvi-foto-drop:hover { border-color:var(--pvi-blush); background:var(--pvi-blush-light); }
.pvi-foto-drop.pvi-has-foto { border-style:solid; border-color:var(--pvi-blush-dark); padding:14px; }
.pvi-foto-icon { font-size:36px; }
.pvi-foto-title { font-size:15px; font-weight:500; color:var(--pvi-text); }
.pvi-foto-sub { font-size:12.5px; font-weight:300; color:var(--pvi-text-muted); line-height:1.6; }
.pvi-foto-btn-add { display:inline-flex;align-items:center;gap:8px; padding:12px 22px; background:linear-gradient(135deg,var(--pvi-blush),var(--pvi-blush-dark)); color:white; border:none; border-radius:12px; font-family:'Jost',sans-serif; font-size:14px; font-weight:500; cursor:pointer; box-shadow:0 4px 16px rgba(201,125,151,.28); margin-top:14px; }
.pvi-foto-preview-wrap { display:none; width:100%; }
.pvi-foto-preview-wrap.pvi-show { display:block; }
.pvi-foto-preview-img { width:100%; max-height:220px; object-fit:cover; border-radius:12px; display:block; }
.pvi-foto-preview-actions { display:flex;gap:8px; margin-top:10px; }
.pvi-foto-btn-change { flex:1; padding:10px; border:1.5px solid var(--pvi-border); border-radius:10px; background:white; font-family:'Jost',sans-serif; font-size:13px; color:var(--pvi-text-mid); cursor:pointer; }
.pvi-foto-btn-change:hover { border-color:var(--pvi-blush); background:var(--pvi-blush-light); }
.pvi-foto-btn-remove { padding:10px 14px; border:1.5px solid #EDD0D0; border-radius:10px; background:#FEF5F5; font-family:'Jost',sans-serif; font-size:13px; color:#C06060; cursor:pointer; }
.pvi-consentimiento { margin-top:16px; padding:14px 16px; background:var(--pvi-nude-light); border:1.5px solid var(--pvi-border); border-radius:14px; display:none; gap:12px; align-items:flex-start; }
.pvi-consentimiento.pvi-show { display:flex; }
.pvi-consentimiento input[type="checkbox"] { width:18px;height:18px;min-width:18px; accent-color:var(--pvi-blush-dark); cursor:pointer; margin-top:2px; }
.pvi-consent-text { font-size:12px; font-weight:300; color:var(--pvi-text-mid); line-height:1.65; }

/* Análisis */
.pvi-analisis-orb { width:110px;height:110px; border-radius:50%; background:linear-gradient(135deg,#F5CEDD 0%,#E8A5BC 100%); display:flex;align-items:center;justify-content:center; margin-bottom:28px; position:relative; box-shadow:0 12px 40px rgba(210,110,150,.22),0 0 0 12px rgba(245,206,221,.22),0 0 0 24px rgba(245,206,221,.10); }
.pvi-orb-pulse  { position:absolute;inset:-6px; border-radius:50%; border:2px solid rgba(201,125,151,.35); animation:pvi-pulse 1.8s ease-out infinite; }
.pvi-orb-pulse2 { position:absolute;inset:-14px; border-radius:50%; border:1.5px solid rgba(201,125,151,.18); animation:pvi-pulse 1.8s ease-out infinite .5s; }
@keyframes pvi-pulse{0%{transform:scale(.92);opacity:.8}70%{transform:scale(1.08);opacity:0}100%{opacity:0}}
@keyframes pvi-spin-dress{0%{transform:scale(1) rotate(-3deg)}25%{transform:scale(1.08) rotate(3deg)}50%{transform:scale(1) rotate(-3deg)}75%{transform:scale(1.05) rotate(2deg)}100%{transform:scale(1) rotate(-3deg)}}
.pvi-analisis-dots { display:flex;gap:6px; margin-bottom:24px; }
.pvi-dot { width:7px;height:7px; border-radius:50%; background:var(--pvi-blush); animation:pvi-dot-bounce 1.4s ease-in-out infinite; }
.pvi-dot:nth-child(2){animation-delay:.2s}.pvi-dot:nth-child(3){animation-delay:.4s}
@keyframes pvi-dot-bounce{0%,80%,100%{transform:scale(.7);opacity:.5}40%{transform:scale(1.1);opacity:1}}
.pvi-analisis-tagline { font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:.28em; color:var(--pvi-blush-dark); text-transform:uppercase; margin-bottom:14px; }
.pvi-analisis-title { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:300; line-height:1.3; color:var(--pvi-text); margin-bottom:12px; }
.pvi-analisis-title em { font-style:italic; color:var(--pvi-blush-dark); }
.pvi-analisis-bar-track { width:100%; height:3px; background:rgba(201,125,151,.15); border-radius:4px; margin-top:24px; overflow:hidden; }
.pvi-analisis-bar { height:100%; background:linear-gradient(90deg,var(--pvi-blush),var(--pvi-blush-dark)); border-radius:4px; width:0%; transition:width .3s ease; }

/* Gracias */
.pvi-gracias-wrap { display:flex;flex-direction:column;align-items:center;text-align:center; padding:60px 28px 40px; min-height:100vh; min-height:100svh; justify-content:center; background:linear-gradient(155deg,#FDF0F6 0%,#FAF0EC 100%); }
.pvi-gracias-orb { font-size:64px; margin-bottom:20px; animation:pvi-orb-float 3.2s ease-in-out infinite; }
.pvi-gracias-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:400; color:var(--pvi-text); margin-bottom:14px; }
.pvi-gracias-sub { font-size:15px; font-weight:300; color:var(--pvi-text-mid); line-height:1.75; margin-bottom:28px; max-width:300px; }
.pvi-gracias-card { display:flex;align-items:center;gap:12px; background:white; border:1.5px solid var(--pvi-border); border-radius:14px; padding:14px 20px; margin-bottom:28px; width:100%; max-width:320px; box-shadow:0 4px 18px rgba(180,100,120,.07); }
.pvi-gracias-card-icon { font-size:22px; }
.pvi-gracias-card-text { font-size:14px; font-weight:500; color:var(--pvi-text); text-align:left; }

/* Instructions */
.pvi-instr-list { list-style:none; display:flex;flex-direction:column;gap:10px; }
.pvi-instr-item { display:flex;align-items:flex-start;gap:12px; padding:13px 15px; background:var(--pvi-nude-light); border-radius:14px; }
.pvi-instr-num { width:28px;height:28px; flex-shrink:0; border-radius:50%; background:linear-gradient(135deg,var(--pvi-blush),var(--pvi-blush-dark)); color:white; font-size:12px; font-weight:600; display:flex;align-items:center;justify-content:center; }
.pvi-instr-text { font-size:13.5px; font-weight:300; color:var(--pvi-text-mid); line-height:1.65; }
.pvi-instr-text strong { font-weight:500; color:var(--pvi-text); }

/* Buttons */
.pvi-actions { display:flex;flex-direction:column;gap:10px; padding-top:24px; }
.pvi-btn-main { width:100%; padding:18px; border:none; border-radius:15px; background:linear-gradient(135deg,var(--pvi-blush) 0%,var(--pvi-blush-dark) 100%); font-family:'Jost',sans-serif; font-size:15px; font-weight:500; letter-spacing:.04em; color:white; cursor:pointer; box-shadow:0 8px 28px rgba(201,125,151,.36); transition:transform .15s,box-shadow .15s; }
.pvi-btn-main:hover { transform:translateY(-1px); box-shadow:0 12px 32px rgba(201,125,151,.42); }
.pvi-btn-main:active { transform:translateY(1px); }
.pvi-btn-main:disabled { opacity:.7; cursor:not-allowed; transform:none; }
.pvi-btn-ghost { width:100%; padding:17px; border:1.5px solid var(--pvi-border); border-radius:15px; background:transparent; font-family:'Jost',sans-serif; font-size:14.5px; color:var(--pvi-text-mid); cursor:pointer; transition:all .2s; }
.pvi-btn-ghost:hover { border-color:var(--pvi-nude); background:var(--pvi-nude-light); }
.pvi-btn-wa { width:100%; max-width:320px; padding:18px; border:none; border-radius:15px; background:linear-gradient(135deg,#25D366 0%,#128C7E 100%); font-family:'Jost',sans-serif; font-size:15px; font-weight:500; color:white; cursor:pointer; display:flex;align-items:center;justify-content:center;gap:10px; box-shadow:0 8px 26px rgba(37,211,102,.28); transition:transform .15s,box-shadow .15s; text-decoration:none; }
.pvi-btn-wa:hover { transform:translateY(-1px); box-shadow:0 12px 30px rgba(37,211,102,.34); }

/* Toast */
#pvi-toast { position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(12px); background:#2A1F1F; color:white; padding:12px 22px; border-radius:30px; font-size:13px; opacity:0; transition:opacity .3s,transform .3s; z-index:9999; white-space:nowrap; pointer-events:none; }
#pvi-toast.pvi-show { opacity:1; transform:translateX(-50%) translateY(0); }

/* mobile responsive — see blocks below */

/* ── Reset box-sizing para aislar del tema WordPress / Elementor ── */
.priglam-vi-wrap *,
.priglam-vi-wrap *::before,
.priglam-vi-wrap *::after {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CORRECCIÓN PANTALLA DE BIENVENIDA EN MÓVIL
   
   Raíz del problema: en móvil, los temas de WordPress (incluido Elementor)
   tienen wrappers con overflow:hidden, max-height, o posicionamiento que
   impiden que nuestro contenedor position:relative crezca hasta llenar
   el viewport. Las pantallas internas usan position:absolute inset:0 y
   heredan el alto del contenedor padre — si el padre queda recortado,
   la pantalla de bienvenida también.
   
   Solución definitiva: en móvil usamos position:fixed en el contenedor
   completo. Fixed se posiciona relativo al viewport, NO al DOM del tema.
   El tema no puede recortarlo. Esto aisla el formulario completamente.
   Las pantallas internas siguen siendo position:absolute inset:0 porque
   su referencia (el contenedor fixed) ya ocupa el viewport completo.
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
  /* El contenedor se fija al viewport completo, ignorando wrappers del tema */
  .priglam-vi-wrap {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;       /* fallback */
    height: 100dvh !important;     /* dynamic viewport = excluye barras browser */
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    z-index: 99999 !important;     /* por encima de header/footer del tema */
    margin: 0 !important;
  }

  /* La pantalla de bienvenida: position:absolute inset:0 + flex column
     El padre fixed ya ocupa el viewport completo → inset:0 la llena entera */
  #pvi-s-welcome {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    right: 0 !important; bottom: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    /* Scroll interno si el contenido es largo en pantallas muy pequeñas */
    -webkit-overflow-scrolling: touch;
  }

  /* Todas las demás pantallas también heredan el tamaño correcto */
  .pvi-screen {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    right: 0 !important; bottom: 0 !important;
  }

  .pvi-welcome-title { font-size: 28px; }
  .pvi-s-title       { font-size: 25px; }
}

/* ── Escritorio: posicionamiento relativo normal, borde redondeado premium ── */
@media (min-width: 481px) {
  .priglam-vi-wrap {
    position: relative;
    border-radius: 24px;
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
  }
}

/* ── NUEVOS ESTILOS v2.0 ─────────────────────────────────────────────────── */

/* Tipo de vestido: ícono grande */
.pvi-opt-card-tipo { align-items: center; }
.pvi-opt-tipo-ico { font-size: 26px; flex-shrink: 0; width: 36px; text-align: center; }

/* Select provincia */
.pvi-select-wrap { position: relative; }
.pvi-select {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  padding-right: 44px;
  background: #FEFCFB;
}
.pvi-select:focus { border-color: var(--pvi-blush); background: #fff; box-shadow: 0 0 0 4px rgba(234,168,188,.16); }
.pvi-select-arrow {
  position: absolute; right: 16px; top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--pvi-text-muted);
}

/* Date picker */
.pvi-date-wrap { position: relative; }
.pvi-date-field {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  color: var(--pvi-text);
}
.pvi-date-field::-webkit-calendar-picker-indicator {
  opacity: 0;
  position: absolute; right: 0; top: 0;
  width: 100%; height: 100%;
  cursor: pointer;
}
.pvi-date-icon {
  position: absolute; right: 16px; top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--pvi-blush-dark);
}

/* Textarea estilo */
.pvi-textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.65;
  padding: 14px 18px;
}
.pvi-textarea-counter {
  text-align: right;
  font-size: 11.5px;
  color: var(--pvi-text-muted);
  margin-top: 6px;
  font-weight: 300;
}

/* Optional tag */
.pvi-optional-tag {
  display: inline-block;
  font-size: 10px; font-weight: 500;
  color: var(--pvi-text-muted);
  background: var(--pvi-nude-light);
  padding: 2px 9px;
  border-radius: 20px;
  margin-left: 8px;
  vertical-align: middle;
  font-family: 'Jost', sans-serif;
  text-transform: none;
  letter-spacing: 0;
}

/* ── Bloque de consejos para foto (pantalla 17) ──────────────────────────── */
.pvi-foto-tips {
  background: linear-gradient(135deg, var(--pvi-blush-light) 0%, var(--pvi-nude-light) 100%);
  border: 1px solid var(--pvi-border);
  border-radius: 18px;
  padding: 16px 18px 18px;
  margin-bottom: 20px;
}

.pvi-foto-tips-header {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 14px;
}

.pvi-foto-tips-ico {
  font-size: 20px;
  flex-shrink: 0;
  line-height: 1;
}

.pvi-foto-tips-title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--pvi-blush-dark);
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}

.pvi-foto-tips-sub {
  font-size: 11.5px;
  font-weight: 300;
  color: var(--pvi-text-muted);
  line-height: 1.45;
}

/* Grid 2×2 de mini cards */
.pvi-foto-tips-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.pvi-foto-tip-card {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(237, 216, 208, 0.7);
  border-radius: 12px;
  padding: 11px 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  backdrop-filter: blur(4px);
  transition: background 0.2s, border-color 0.2s;
}

.pvi-foto-tip-card:hover {
  background: rgba(255, 255, 255, 0.92);
  border-color: var(--pvi-blush);
}

.pvi-foto-tip-emoji {
  font-size: 20px;
  line-height: 1;
  margin-bottom: 2px;
}

.pvi-foto-tip-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--pvi-text);
  line-height: 1.3;
}

.pvi-foto-tip-hint {
  font-size: 11px;
  font-weight: 300;
  color: var(--pvi-text-muted);
  line-height: 1.4;
}
