/* ==========================================================================
   Factura Perú — Sistema de diseño ÚNICO para las herramientas/plugins
   Origen: rediseño de [calculadora_ganancias] (2026-08-01).
   Los plugins ya NO llevan estilos propios: se editan SOLO aquí.

   ⚠️ Todos los selectores llevan el prefijo `body `. NO es decorativo: esta
   hoja se imprime muy temprano en el <head> y el tema (Astra), Elementor y
   el Bootstrap que cargan estos plugins vienen DESPUÉS. Con la misma
   especificidad gana el último, así que sin el prefijo los campos se quedan
   con el padding del tema y el borde rojo de validación no aparece.
   Cubre: [domain_checker] [ssl_search] [sunat_product_search]
          [sunat_unit_measure_search] [facturaperu_guia_pagos]
          [facturaperu_xml_pdf]
   ========================================================================== */

:root{
  --fp-navy:#00144C;
  --fp-cyan:#2E9BCA;
  --fp-cyan-dark:#227FA6;
  --fp-green:#A5CB1F;
  --fp-green-rgb:165,203,31;
  --fp-green-dark:#8FB61A;
  --fp-text:#1A1A1A;
  --fp-muted:#5B6B7D;
  --fp-bg:#F5F6FD;
  --fp-line:#DEE1F8;
  --fp-card-line:#E3E9F5;
  --fp-shadow:0 6px 20px rgba(16,49,80,.06);
  --fp-font:Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

/* ---------- Tarjeta base ---------- */
body .fp-tool{
  box-sizing:border-box;
  max-width:720px;
  margin:24px auto;
  padding:26px 24px;
  background:#fff;
  border:1px solid var(--fp-card-line);
  border-radius:16px;
  box-shadow:var(--fp-shadow);
  font-family:var(--fp-font);
  color:var(--fp-text);
  text-align:left;
}
body .fp-tool *,
body .fp-tool *::before,
body .fp-tool *::after{ box-sizing:border-box; }

body .fp-tool h2.fp-tool__title,
body .fp-tool .fp-tool__title{
  margin:0 0 18px;
  padding:0 0 12px;
  border-bottom:2px solid #F0F3FA;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:20px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.2px;
  text-align:left;
}
body .fp-tool p.fp-tool__hint{
  margin:-8px 0 16px;
  color:var(--fp-muted);
  font-size:14px;
  line-height:1.5;
}

/* ---------- Fila: campo + botón ---------- */
body .fp-tool__row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:stretch;
  margin:0;
}
body .fp-tool__row > input{ flex:1 1 240px; min-width:0; }

/* ---------- Campos ---------- */
body .fp-tool input[type="text"],
body .fp-tool input[type="email"],
body .fp-tool input[type="search"],
body .fp-tool input[type="number"],
body .fp-tool input[type="tel"],
body .fp-tool input[type="date"],
body .fp-tool input[type="month"],
body .fp-tool .form-control,
body .fp-tool select{
  width:100%;
  /* height:auto anula el `height: calc(1.5em + .75rem + 2px)` de Bootstrap,
     que si no deja unos campos en 38px y otros en 50px. */
  height:auto;
  min-height:0;
  padding:13px 14px;
  margin:0;
  border:1.5px solid var(--fp-line);
  border-radius:10px;
  background:#FBFCFE;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:16px;
  font-weight:600;
  line-height:1.3;
  box-shadow:none;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
body .fp-tool input::placeholder{ color:#9AA7B8; font-weight:400; }
body .fp-tool input:focus,
body .fp-tool select:focus{
  outline:none;
  border-color:var(--fp-cyan);
  background:#fff;
  box-shadow:0 0 0 4px rgba(46,155,202,.15);
}

/* ---------- Botón principal ---------- */
body .fp-tool button,
body .fp-tool input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0;
  padding:13px 24px;
  border:none;
  border-radius:10px;
  background:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
  font-family:var(--fp-font);
  font-size:16px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.2px;
  white-space:nowrap;
  cursor:pointer;
  text-shadow:none;
  box-shadow:0 6px 18px rgba(var(--fp-green-rgb),.28);
  transition:transform .15s, box-shadow .15s, filter .15s;
}
body .fp-tool button:hover,
body .fp-tool input[type="submit"]:hover{
  background:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(var(--fp-green-rgb),.36);
  filter:brightness(1.04);
}
body .fp-tool button:active{ transform:translateY(0); }
body .fp-tool button:focus-visible{
  outline:3px solid rgba(46,155,202,.45);
  outline-offset:2px;
}

/* Icono lupa (SVG embebido: sin peticiones externas) */
body .fp-tool__ico,
body .fp-tool button .icon,
body .fp-tool button .icon-search{
  display:inline-block;
  flex:0 0 17px;
  width:17px;
  height:17px;
  margin:0;
  background:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%23ffffff%22 stroke-width%3D%222.4%22 stroke-linecap%3D%22round%22%3E%3Ccircle cx%3D%2210.5%22 cy%3D%2210.5%22 r%3D%227%22/%3E%3Cpath d%3D%22M15.6 15.6L21 21%22/%3E%3C/svg%3E') no-repeat center;
  background-size:contain;
}

/* ---------- Resultado simple (dominio / SSL) ---------- */
body .fp-tool__result{
  display:block;
  margin:18px 0 0;
  padding:14px 16px;
  border:1px solid var(--fp-line);
  border-radius:10px;
  background:var(--fp-bg);
  color:var(--fp-navy);
  font-size:16px;
  font-weight:500;
  line-height:1.5;
}
body .fp-tool__result:empty{ display:none; }
body .fp-tool__result strong{ color:inherit; font-weight:700; }

body .fp-tool__result.is-ok,
body .fp-tool__result.success{
  background:#F4FAE4;
  border-color:#D7E9A6;
  color:#4A6600;
  font-weight:600;
}
body .fp-tool__result.is-bad,
body .fp-tool__result.error{
  background:#FDF1F1;
  border-color:#F2C9C9;
  color:#9E2222;
  font-weight:600;
}
body .fp-tool__result.is-loading{
  background:var(--fp-bg);
  border-color:var(--fp-line);
  color:var(--fp-muted);
  font-weight:500;
}

/* ---------- Resultados en lista (SUNAT) ---------- */
body .fp-tool__results{
  margin:0;
  font-family:var(--fp-font);
  color:var(--fp-text);
}
body .fp-tool__results:empty{ display:none; }
body .fp-tool__results h4,
body .fp-tool .fp-tool__results h4{
  margin:24px 0 10px;
  padding:0;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:16px;
  font-weight:700;
  letter-spacing:.2px;
}
body .fp-tool__results h4:first-child{ margin-top:20px; }
body .fp-tool__results ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
body .fp-tool__results li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
  padding:12px 14px;
  border:1px solid var(--fp-line);
  border-radius:10px;
  background:var(--fp-bg);
  color:var(--fp-navy);
  font-size:15px;
  line-height:1.45;
}
body .fp-tool__results li strong{ color:var(--fp-navy); font-weight:700; }

/* Coincidencias exactas: se distinguen solo por el fondo verde suave.
   Sin barra gruesa a la izquierda (borde uniforme de 1px). */
body .fp-tool__list--primary li{
  background:#F7FCEC;
  border:1px solid #DDEDB4;
}

/* Píldora con el código SUNAT */
body .fp-tool__code{
  flex:0 0 auto;
  padding:6px 12px;
  border:1.5px solid #CFE3F0;
  border-radius:999px;
  background:#fff;
  color:var(--fp-cyan-dark);
  font-size:14px;
  font-weight:800;
  letter-spacing:.4px;
  white-space:nowrap;
}
body .fp-tool__name{ flex:1 1 auto; min-width:0; }

/* Fila "vacía" (sin resultados) */
body .fp-tool__results li.fp-tool__empty{
  display:block;
  background:#fff;
  border:1px dashed var(--fp-line);
  color:var(--fp-muted);
  font-size:14px;
  font-weight:500;
}

/* ---------- Responsive ---------- */
@media (max-width:600px){
  body .fp-tool{ margin:18px auto; padding:20px 16px; border-radius:14px; }
  body .fp-tool h2.fp-tool__title,
  body .fp-tool .fp-tool__title{ font-size:18px; margin-bottom:16px; }
  body .fp-tool__row{ flex-direction:column; }
  body .fp-tool__row > input,
  body .fp-tool button{ width:100%; }
  body .fp-tool__results li{ font-size:14px; padding:11px 12px; }
  body .fp-tool__code{ font-size:13px; }
}

/* Estado de carga dentro de los resultados en lista */
body .fp-tool__results > p,
body .fp-tool__loading{
  margin:20px 0 0;
  padding:14px 16px;
  border:1px solid var(--fp-line);
  border-radius:10px;
  background:var(--fp-bg);
  color:var(--fp-muted);
  font-size:15px;
  font-weight:500;
}

/* ==========================================================================
   CAPA DE ARMONIZACIÓN
   Plugins con maquetación propia que NO se reestructura. Solo se alinean
   tipografía, colores corporativos, radios y estilo de campos/botones.
   No se tocan tamaños ni flujo: sin riesgo de romper el layout.

   ⚠️ El prefijo `body ` NO es decorativo: estos plugins imprimen su <style>
   dentro del <body>, así que ganan por orden de documento. Se necesita más
   especificidad, no solo !important.
   ========================================================================== */

/* --- Convertidor de certificados [certificate_converter] --------------- */
body .cc-wrap{ font-family:var(--fp-font); }
body .cc-h{ color:var(--fp-navy); }
body .cc-sub,
body .cc-help,
body .cc-mini{ color:var(--fp-muted); }
body .cc-card{
  border:1px solid var(--fp-card-line);
  border-radius:16px;
  box-shadow:var(--fp-shadow);
}
body .cc-card:hover{ box-shadow:0 10px 26px rgba(16,49,80,.10); }
body .cc-title{
  color:var(--fp-navy);
  border-bottom:2px solid #F0F3FA;
}
body .cc-label{ color:var(--fp-muted); font-weight:500; }
body .cc-input{
  border:1.5px solid var(--fp-line);
  border-radius:10px;
  background-color:#FBFCFE;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:16px;
}
body .cc-input:focus{
  border-color:var(--fp-cyan);
  outline:none;
  background-color:#fff;
  box-shadow:0 0 0 4px rgba(46,155,202,.15);
}
body .cc-input[type="file"]{ background-color:#F7F9FD; }
body .cc-btn{
  border-radius:10px;
  background-color:var(--fp-green);
  background-image:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
  font-family:var(--fp-font);
  box-shadow:0 6px 18px rgba(var(--fp-green-rgb),.28);
}
body .cc-btn:hover{
  background-color:var(--fp-green-dark);
  background-image:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  filter:brightness(1.04);
}
body .cc-btn:disabled{
  background-image:none;
  background-color:#C3CBDA;
  box-shadow:none;
}
body .cc-toggle{ border-radius:10px; }
body .cc-result{ border-radius:10px; font-family:var(--fp-font); }
body .cc-result.ok{ background-color:#F4FAE4; border:1px solid #D7E9A6; color:#4A6600; }
body .cc-result.err{ background-color:#FDF1F1; border:1px solid #F2C9C9; color:#9E2222; }
body .cc-link{
  border-radius:10px;
  background-color:var(--fp-cyan);
  font-family:var(--fp-font);
}
body .cc-link:hover{ background-color:var(--fp-cyan-dark); }

/* --- Consulta de comprobantes [consulta_cpe] --------------------------- */
/* Sus reglas usan !important, por eso aquí también. */
body .elementor-widget-container .consulta-cpe-container,
body .elementor-widget-container .consulta-comprobante-simple{
  font-family:var(--fp-font) !important;
  color:var(--fp-text) !important;
}
body .elementor-widget-container .consulta-cpe-container h2{
  background-color:var(--fp-cyan) !important;
  border-radius:16px 16px 0 0 !important;
  font-family:var(--fp-font) !important;
  letter-spacing:.2px !important;
}
body .elementor-widget-container .consulta-cpe-container form{
  border:1px solid var(--fp-card-line) !important;
  border-radius:0 0 16px 16px !important;
  box-shadow:var(--fp-shadow) !important;
}
body .elementor-widget-container .consulta-cpe-container select,
body .elementor-widget-container .consulta-cpe-container input[type="text"],
body .elementor-widget-container .consulta-comprobante-simple select,
body .elementor-widget-container .consulta-comprobante-simple input[type="text"]{
  /* El plugin fuerza `padding:20px` y `border-radius:20px` con !important
     desde .form-simple .form-simple-group input (0,3,1). Estos selectores
     son (0,3,2), por eso ganan. */
  padding:13px 14px !important;
  border:1.5px solid var(--fp-line) !important;
  border-radius:10px !important;
  background-color:#FBFCFE !important;
  color:var(--fp-navy) !important;
  font-family:var(--fp-font) !important;
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
}
body .elementor-widget-container .consulta-comprobante-simple input::placeholder{
  color:#9AA7B8 !important;
  font-weight:400 !important;
}

/* Título del widget: mismo tratamiento que .fp-tool__title */
body .elementor-widget-container .consulta-comprobante-simple h3,
body .elementor-widget-container .consulta-comprobante-simple .titulo-consulta,
body .elementor-widget-container .consulta-cpe-container .titulo-consulta{
  margin:0 0 18px !important;
  padding:0 0 12px !important;
  border-bottom:2px solid #F0F3FA !important;
  color:var(--fp-navy) !important;
  font-family:var(--fp-font) !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  letter-spacing:.2px !important;
  text-align:left !important;
  text-transform:none !important;
}

/* Separación entre campos igual que en el resto de herramientas */
body .elementor-widget-container .form-simple{ gap:12px !important; }
body .elementor-widget-container .form-simple-group.serie-numero{ gap:12px !important; }
body .elementor-widget-container .consulta-cpe-container select:focus,
body .elementor-widget-container .consulta-cpe-container input[type="text"]:focus,
body .elementor-widget-container .consulta-comprobante-simple select:focus,
body .elementor-widget-container .consulta-comprobante-simple input[type="text"]:focus{
  border-color:var(--fp-cyan) !important;
  outline:none !important;
  background-color:#fff !important;
  box-shadow:0 0 0 4px rgba(46,155,202,.15) !important;
}
body .elementor-widget-container .consulta-cpe-container button{
  border-radius:10px !important;
  font-family:var(--fp-font) !important;
  font-weight:700 !important;
}
/* CTA principal: verde corporativo (antes rojo #E31E24 y azul #3c78b4) */
body .elementor-widget-container .consulta-cpe-container button#consultarBtn,
body .elementor-widget-container .btn-consultar{
  background-color:var(--fp-green) !important;
  background-image:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%) !important;
  border-color:var(--fp-green-dark) !important;
  color:#fff !important;
  border-radius:10px !important;
  font-family:var(--fp-font) !important;
  font-weight:700 !important;
  box-shadow:0 6px 18px rgba(var(--fp-green-rgb),.28) !important;
}
/* La variante "azul" del plugin también va en verde: en todo el sitio el
   botón de acción principal es el verde corporativo. */
body .elementor-widget-container .btn-consultar-azul,
body .elementor-widget-container button.btn-consultar-azul,
body .elementor-widget-container .btn-consultar-azul:hover{
  background-color:var(--fp-green) !important;
  background-image:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%) !important;
  border-color:var(--fp-green-dark) !important;
  color:#fff !important;
}
body .elementor-widget-container .btn-consultar,
body .elementor-widget-container button.btn-consultar{
  padding:14px 24px !important;
  font-size:16px !important;
  line-height:1.3 !important;
  margin-top:6px !important;
}
body .elementor-widget-container .respuesta-consulta,
body .elementor-widget-container .respuesta-simple{
  border:1px solid var(--fp-card-line) !important;
  border-radius:16px !important;
  box-shadow:var(--fp-shadow) !important;
  font-family:var(--fp-font) !important;
}
/* .btn-whatsapp conserva el verde de WhatsApp (#25D366): es color de marca
   de un tercero y su reconocimiento ayuda a la conversión. Solo se alinea
   la forma y la tipografía. */
body .elementor-widget-container .btn-whatsapp{
  border-radius:10px !important;
  font-family:var(--fp-font) !important;
  font-weight:700 !important;
}

/* --- Widgets montados sobre Bootstrap 4.6 ------------------------------ */
/* [facturaperu_guia_pagos] y [facturaperu_xml_pdf] cargan Bootstrap desde un
   CDN y su lógica depende de clases de Bootstrap (`is-invalid` para la
   validación, `spinner-border` para el botón). Por eso NO se quita Bootstrap:
   el widget se envuelve en .fp-tool y aquí se sustituye solo la capa visual.
   El grid (row / col-md-*) sigue siendo de Bootstrap. */

body .fp-tool--wide{ max-width:1160px; }

/* .row de Bootstrap tiene margen negativo de 15px: se compensa con padding */
body .fp-tool--bs{ padding:26px 30px; }

/* Nada de tarjeta dentro de tarjeta: .fp-tool ya ES la tarjeta */
body .fp-tool--bs .card,
body .fp-tool--bs .card-body{
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}

/* Etiquetas de formulario */
body .fp-tool label,
body .fp-tool--bs .form-group > label{
  display:block;
  margin:0 0 6px;
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:500;
}
body .fp-tool--bs .form-group{ margin-bottom:18px; }

/* Botón de Bootstrap -> botón del sistema */
body .fp-tool .btn,
body .fp-tool .btn-primary,
body .fp-tool .btn-primary:not(:disabled):not(.disabled):active,
body .fp-tool .btn-primary:focus{
  border:none;
  border-radius:10px;
  background-color:var(--fp-green);
  background-image:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
  font-family:var(--fp-font);
  font-size:16px;
  font-weight:700;
  padding:13px 28px;
  box-shadow:0 6px 18px rgba(var(--fp-green-rgb),.28);
}
body .fp-tool .btn-primary:focus{ box-shadow:0 0 0 4px rgba(46,155,202,.35); }

/* ---- Estados de validación (los pone el JS del plugin) ---- */
/* Sin esto, la regla base de .fp-tool pisaría el borde rojo de Bootstrap
   y el usuario no vería qué campo está mal. */
body .fp-tool .form-control.is-invalid,
body .fp-tool input.is-invalid,
body .fp-tool select.is-invalid{
  border-color:#D64545;
  background-color:#FFF8F8;
  background-image:none;
}
body .fp-tool .form-control.is-invalid:focus,
body .fp-tool input.is-invalid:focus,
body .fp-tool select.is-invalid:focus{
  border-color:#D64545;
  box-shadow:0 0 0 4px rgba(214,69,69,.15);
}
body .fp-tool .form-control.is-valid,
body .fp-tool input.is-valid,
body .fp-tool select.is-valid{
  border-color:var(--fp-green);
  background-color:#FBFDF4;
  background-image:none;
}
body .fp-tool .invalid-feedback{
  margin-top:6px;
  color:#9E2222;
  font-family:var(--fp-font);
  font-size:13px;
  font-weight:500;
}

/* Spinner y acentos de Bootstrap en color corporativo */
body .fp-tool .text-primary{ color:var(--fp-cyan) !important; }

/* ---- Zona para soltar el XML ([facturaperu_xml_pdf]) ---- */
body .fp-tool #openFile{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:30px 20px;
  border:2px dashed var(--fp-line);
  border-radius:12px;
  background:#FBFCFE;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:16px;
  font-weight:700;
  letter-spacing:.2px;
  cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}
body .fp-tool #openFile::before{
  content:"";
  flex:0 0 20px;
  width:20px;
  height:20px;
  background:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%232E9BCA%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Cpath d%3D%22M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4%22/%3E%3Cpath d%3D%22M17 8l-5-5-5 5%22/%3E%3Cpath d%3D%22M12 3v12%22/%3E%3C/svg%3E') no-repeat center;
  background-size:contain;
}
body .fp-tool #openFile:hover{
  border-color:var(--fp-cyan);
  background:#F4FAFD;
  color:var(--fp-cyan-dark);
}
/* El texto "- Procesando -" NO es una zona para soltar archivos */
body .fp-tool #loading .file-loading-title{
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:15px;
  font-weight:600;
}

@media (max-width:600px){
  body .fp-tool--bs{ padding:20px 22px; }
  body .fp-tool #openFile{ padding:24px 16px; font-size:15px; }
}

/* ==========================================================================
   CALENDARIOS
   Hay dos, y no se tratan igual:
   1) [facturaperu_guia_pagos] usa <input type="month">: el panel lo dibuja
      Chrome y NO se puede maquetar con CSS. Lo único que sí obedece es
      `accent-color` (el color del mes seleccionado) y el icono del campo.
   2) [consulta_cpe] usa Flatpickr, que sí es HTML normal: ese se tematiza
      entero con los colores corporativos.
   ========================================================================== */

/* ---- 1) Selectores nativos (fecha, mes, hora) ---- */
body .fp-tool,
body .fp-tool input,
body .fp-tool select,
body .elementor-widget-container .consulta-comprobante-simple,
body .elementor-widget-container .consulta-comprobante-simple input{
  accent-color:var(--fp-cyan);
}

body .fp-tool input[type="month"]::-webkit-calendar-picker-indicator,
body .fp-tool input[type="date"]::-webkit-calendar-picker-indicator,
body .fp-tool input[type="datetime-local"]::-webkit-calendar-picker-indicator{
  width:22px;
  height:22px;
  margin:0 0 0 8px;
  padding:0;
  opacity:1;
  cursor:pointer;
  border-radius:6px;
  background:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%232E9BCA%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%3E%3Crect x%3D%223%22 y%3D%225%22 width%3D%2218%22 height%3D%2216%22 rx%3D%223%22/%3E%3Cpath d%3D%22M8 3v4M16 3v4M3 10h18%22/%3E%3C/svg%3E') no-repeat center;
  background-size:18px 18px;
  transition:background-color .15s;
}
body .fp-tool input[type="month"]::-webkit-calendar-picker-indicator:hover,
body .fp-tool input[type="date"]::-webkit-calendar-picker-indicator:hover{
  background-color:rgba(46,155,202,.12);
}

/* ---- 2) Flatpickr ([consulta_cpe]) ---- */
/* Ojo: Flatpickr cuelga el panel de <body>, NO dentro de .fp-tool.
   Por eso estos selectores no van scopeados al widget. */
body .flatpickr-calendar{
  border:1px solid var(--fp-card-line);
  border-radius:14px;
  box-shadow:0 12px 30px rgba(16,49,80,.14);
  background:#fff;
  font-family:var(--fp-font);
  /* Sin padding: Flatpickr fija un ancho exacto (307.875px) y el relleno
     hacia dentro recortaba la columna del domingo. */
  padding:0;
  overflow:hidden;
}
body .flatpickr-calendar.arrowTop:before{ border-bottom-color:var(--fp-card-line); }
body .flatpickr-calendar.arrowTop:after{ border-bottom-color:#fff; }
body .flatpickr-calendar.arrowBottom:before{ border-top-color:var(--fp-card-line); }
body .flatpickr-calendar.arrowBottom:after{ border-top-color:#fff; }

body .flatpickr-months{ padding:8px 0 4px; }
body .flatpickr-days,
body .flatpickr-innerContainer{ border-radius:0 0 14px 14px; }
body .flatpickr-months .flatpickr-month,
body .flatpickr-current-month,
body .flatpickr-current-month input.cur-year{
  color:var(--fp-navy);
  fill:var(--fp-navy);
  font-family:var(--fp-font);
  font-weight:700;
}
body .flatpickr-current-month .flatpickr-monthDropdown-months{
  font-family:var(--fp-font);
  font-weight:700;
  color:var(--fp-navy);
  border-radius:8px;
}
body .flatpickr-months .flatpickr-prev-month,
body .flatpickr-months .flatpickr-next-month{
  fill:var(--fp-navy);
  border-radius:8px;
  padding:6px 8px;
  transition:background .15s, fill .15s;
}
body .flatpickr-months .flatpickr-prev-month:hover,
body .flatpickr-months .flatpickr-next-month:hover{
  background:var(--fp-bg);
}
body .flatpickr-months .flatpickr-prev-month:hover svg,
body .flatpickr-months .flatpickr-next-month:hover svg{ fill:var(--fp-cyan); }

body span.flatpickr-weekday{
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:12px;
  font-weight:700;
  letter-spacing:.4px;
  text-transform:uppercase;
}

body .flatpickr-day{
  border:none;
  border-radius:10px;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:600;
  transition:background .12s, color .12s;
}
body .flatpickr-day:hover,
body .flatpickr-day:focus{
  background:var(--fp-bg);
  border-color:transparent;
  color:var(--fp-navy);
}
body .flatpickr-day.today{
  border:1.5px solid var(--fp-cyan);
  color:var(--fp-cyan-dark);
}
body .flatpickr-day.today:hover{
  background:rgba(46,155,202,.10);
  color:var(--fp-cyan-dark);
}
body .flatpickr-day.selected,
body .flatpickr-day.selected:hover,
body .flatpickr-day.selected:focus{
  background:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  border-color:transparent;
  color:#fff;
  font-weight:800;
  box-shadow:0 4px 12px rgba(var(--fp-green-rgb),.35);
}
body .flatpickr-day.prevMonthDay,
body .flatpickr-day.nextMonthDay,
body .flatpickr-day.flatpickr-disabled{
  color:#B6C0CE;
  font-weight:500;
}

/* ==========================================================================
   DESPLEGABLES (<select>)
   La LISTA que se abre la dibuja el sistema operativo y no se puede maquetar.
   Lo que sí se controla es el campo cerrado: se le quita la flecha nativa
   (que cada navegador pinta distinto) y se pone una propia, y con
   `color-scheme: light` se evita que el popup salga en modo oscuro.
   ========================================================================== */
body .fp-tool select,
body .elementor-widget-container .consulta-cpe-container select,
body .elementor-widget-container .consulta-comprobante-simple select{
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  appearance:none !important;
  color-scheme:light;
  background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%2300144C%22 stroke-width%3D%222.2%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Cpath d%3D%22M6 9l6 6 6-6%22/%3E%3C/svg%3E') !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
  background-size:17px 17px !important;
  padding-right:42px !important;
  text-overflow:ellipsis;
}
/* El texto no debe pisar la flecha cuando la opción es larga */
body .fp-tool select option,
body .elementor-widget-container .consulta-cpe-container select option,
body .elementor-widget-container .consulta-comprobante-simple select option{
  background:#fff;
  color:#00144C;
  font-weight:500;
}
body .fp-tool select:focus,
body .elementor-widget-container .consulta-comprobante-simple select:focus{
  background-image:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%232E9BCA%22 stroke-width%3D%222.2%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Cpath d%3D%22M6 9l6 6 6-6%22/%3E%3C/svg%3E') !important;
}

/* ==========================================================================
   DESPLEGABLE PROPIO (.fp-select)
   Lo construye fp-plugins-ui.js. El <select> nativo sigue en el DOM
   (invisible pero enfocable) para no romper el envío ni la validación.
   Motivo: en macOS el popup nativo se SUPERPONE al campo y lo tapa; este
   abre hacia abajo.
   ========================================================================== */
body .fp-select{ position:relative; width:100%; }

/* El select real: invisible pero presente */
body .fp-select > select{
  position:absolute !important;
  left:0; top:0;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  pointer-events:none;
  background:none !important;
}

/* Botón que sustituye al campo. Debe ganarle a `body .fp-tool button`
   (que es el CTA verde) — por eso lleva una clase más. */
body .fp-tool .fp-select__button,
body .elementor-widget-container .fp-select__button,
body .fp-select__button{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100% !important;
  margin:0 !important;
  padding:13px 14px !important;
  border:1.5px solid var(--fp-line) !important;
  border-radius:10px !important;
  background:#FBFCFE !important;
  color:var(--fp-navy) !important;
  font-family:var(--fp-font) !important;
  font-size:16px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
  text-align:left !important;
  text-transform:none !important;
  letter-spacing:normal !important;
  cursor:pointer;
  box-shadow:none !important;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
body .fp-select__button:hover{ border-color:#C7D2F0 !important; }
body .fp-select.is-open .fp-select__button,
body .fp-select__button:focus-visible{
  border-color:var(--fp-cyan) !important;
  background:#fff !important;
  box-shadow:0 0 0 4px rgba(46,155,202,.15) !important;
  outline:none;
}
body .fp-select__label{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body .fp-select.is-placeholder .fp-select__label{ color:#9AA7B8; font-weight:400; }

body .fp-select__arrow{
  flex:0 0 17px;
  width:17px;
  height:17px;
  background:url('data:image/svg+xml,%3Csvg xmlns%3D%22http%3A//www.w3.org/2000/svg%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 stroke%3D%22%2300144C%22 stroke-width%3D%222.2%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%3E%3Cpath d%3D%22M6 9l6 6 6-6%22/%3E%3C/svg%3E') no-repeat center;
  background-size:contain;
  transition:transform .18s ease;
}
body .fp-select.is-open .fp-select__arrow{ transform:rotate(180deg); }

/* La lista cuelga de <body> con position:fixed: así ningún overflow de
   Elementor la recorta y siempre queda por encima. */
body .fp-select__list{
  position:fixed;
  z-index:99999;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:6px;
  background:#fff;
  border:1px solid var(--fp-card-line);
  border-radius:12px;
  box-shadow:0 14px 34px rgba(16,49,80,.18);
  font-family:var(--fp-font);
}
body .fp-select__list[hidden]{ display:none; }
body .fp-select__option{
  padding:11px 12px;
  border-radius:8px;
  color:var(--fp-navy);
  font-size:15px;
  font-weight:600;
  line-height:1.35;
  cursor:pointer;
}
body .fp-select__option.is-active{ background:var(--fp-bg); }
body .fp-select__option.is-selected{
  background:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
}
body .fp-select__option[aria-disabled="true"]{ color:#B6C0CE; cursor:default; }
body .fp-select__option[hidden]{ display:none; }

/* Buscador de la lista larga (se añade solo cuando hay >= 20 opciones).
   Va pegado arriba (`sticky`) porque la lista tiene scroll propio: si se
   desplazara con las opciones, desaparecería justo cuando hace falta. */
body .fp-select__search{
  position:sticky;
  top:-6px;                 /* compensa el padding:6px de la lista */
  z-index:1;
  margin:-6px -6px 6px;
  padding:6px;
  background:#fff;
  border-bottom:1px solid #EEF1F8;
  border-radius:12px 12px 0 0;
}
body .fp-select__search-input{
  width:100%;
  height:auto;
  min-height:0;
  margin:0;
  padding:9px 12px;
  background:#FBFCFE;
  border:1px solid #DEE1F8;
  border-radius:10px;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:500;
  line-height:1.35;
  box-sizing:border-box;
}
body .fp-select__search-input::placeholder{ color:#9AA7B8; font-weight:400; }
body .fp-select__search-input:focus{
  outline:none;
  border-color:#2E9BCA;
  box-shadow:0 0 0 3px rgba(46,155,202,.18);
}
body .fp-select__empty{
  padding:14px 12px;
  color:#5B6B7D;
  font-family:var(--fp-font);
  font-size:14px;
  text-align:center;
}
body .fp-select__empty[hidden]{ display:none; }

/* --- Convertidor de certificados: estandarización completa --------------- */
/* Las dos tarjetas llevan ahora .fp-tool en el HTML. Aquí se ajusta lo que
   .fp-tool no puede saber: que van dentro de una rejilla y que el plugin
   tiene botones secundarios ("Ver") y campos de archivo. */

/* .cc-wrap era una tarjeta que contenía otras dos: tarjeta dentro de tarjeta */
body .cc-wrap{
  max-width:1160px;
  padding:0;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}
/* Dentro de la rejilla, las tarjetas ocupan su celda */
body .cc-grid > .fp-tool{ max-width:none; margin:0; }

/* El tema pone las cabeceras en Mayúscula De Cada Palabra, que en español
   está mal ("Tengo Un Certificado (.P12/.Pfx) Y Necesito…") */
body .cc-h,
body .cc-title,
body .fp-tool .cc-title{ text-transform:none !important; }

body .cc-h{
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:28px;
  font-weight:700;
}
body .cc-sub{
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:16px;
}
body .cc-mini{
  background:var(--fp-bg);
  border:1px solid var(--fp-line);
  border-radius:999px;
  padding:6px 14px;
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:13px;
  font-weight:600;
}
body .cc-label{
  color:var(--fp-muted) !important;
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:500;
}

/* Campo de archivo: el nativo se ve distinto en cada navegador */
body .fp-tool input[type="file"],
body .cc-input[type="file"]{
  width:100%;
  padding:10px 12px;
  border:1.5px dashed var(--fp-line);
  border-radius:10px;
  background:#FBFCFE;
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:14px;
  cursor:pointer;
  transition:border-color .15s, background .15s;
}
body .fp-tool input[type="file"]:hover{ border-color:var(--fp-cyan); background:#F4FAFD; }
body .fp-tool input[type="file"]::file-selector-button{
  margin-right:12px;
  padding:9px 16px;
  border:none;
  border-radius:8px;
  background:linear-gradient(135deg, var(--fp-green) 0%, var(--fp-green-dark) 100%);
  color:#fff;
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}

/* Botón secundario "Ver": .fp-tool button lo pintaba como el CTA verde */
body .fp-tool .cc-toggle,
body .fp-tool button.cc-toggle{
  flex:0 0 auto;
  width:auto !important;
  padding:0 16px !important;
  border:1.5px solid var(--fp-line) !important;
  border-radius:10px !important;
  background:#fff !important;
  background-image:none !important;
  color:var(--fp-cyan-dark) !important;
  font-family:var(--fp-font) !important;
  font-size:14px !important;
  font-weight:700 !important;
  box-shadow:none !important;
  transform:none !important;
}
body .fp-tool .cc-toggle:hover{
  border-color:var(--fp-cyan) !important;
  background:#F4FAFD !important;
  filter:none !important;
}
body .cc-row{ align-items:stretch; gap:10px; }
body .cc-row .cc-input{ margin-bottom:0; }

/* --- Complementos de Bootstrap 5 (Libro de Reclamaciones) --------------- */
/* Bootstrap 5 usa .form-label y .form-check-* donde el 4 usaba otras clases. */
body .fp-tool .form-label,
body .fp-tool--bs .form-label{
  display:block;
  margin:0 0 6px;
  color:var(--fp-muted);
  font-family:var(--fp-font);
  font-size:14px;
  font-weight:500;
}
body .fp-tool textarea.form-control{
  min-height:120px;
  text-align:left;
  line-height:1.5;
  resize:vertical;
}
body .fp-tool .form-check{ display:flex; align-items:center; gap:8px; }
/* Ojo: en este plugin el <input> y su <label> son HERMANOS, sin el envoltorio
   .form-check de Bootstrap. Con `margin:0` a secas la casilla se montaba
   encima del texto y se leia "eja" en vez de "Queja". Hay que anular el
   float/posicion que trae Bootstrap y dejar separacion a la derecha. */
body .fp-tool .form-check-input{
  width:18px;
  height:18px;
  margin:0 8px 0 0 !important;
  flex:0 0 18px;
  float:none !important;
  position:static !important;
  vertical-align:middle;
  accent-color:var(--fp-green);
  cursor:pointer;
}
body .fp-tool .form-check-label{
  display:inline-block;
  margin:0;
  vertical-align:middle;
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-size:15px;
  font-weight:600;
  cursor:pointer;
}
/* El tema pone los encabezados en "Mayuscula De Cada Palabra" */
body .fp-tool h1, body .fp-tool h2, body .fp-tool h3,
body .fp-tool h4, body .fp-tool h5, body .fp-tool h6,
body .fp-tool .h1, body .fp-tool .h2, body .fp-tool .h3,
body .fp-tool .h4, body .fp-tool .h5, body .fp-tool .h6,
body .fp-tool__title{ text-transform:none !important; }

/* Botones secundarios: no todo lo que es <button> es la acción principal.
   "Limpiar" y similares no deben competir con "Presentar reclamo". */
body .fp-tool .btn-danger,
body .fp-tool .btn-secondary,
body .fp-tool .btn-light,
body .fp-tool .btn-outline-secondary{
  background-color:#fff !important;
  background-image:none !important;
  border:1.5px solid var(--fp-line) !important;
  color:var(--fp-muted) !important;
  box-shadow:none !important;
}
body .fp-tool .btn-danger:hover,
body .fp-tool .btn-secondary:hover{
  border-color:#D64545 !important;
  color:#9E2222 !important;
  background-color:#FDF1F1 !important;
}

/* Ventanas modales del plugin */
body .modal-content{
  border:1px solid var(--fp-card-line);
  border-radius:16px;
  box-shadow:0 18px 44px rgba(16,49,80,.20);
  font-family:var(--fp-font);
}
body .modal-header{ border-bottom:2px solid #F0F3FA; }
body .modal-title{
  color:var(--fp-navy);
  font-family:var(--fp-font);
  font-weight:700;
  text-transform:none;
}

/* --- Índice del sitio (/contenido/, page 6833) -------------------------- */
/* El tema pone los encabezados en Mayúscula De Cada Palabra. En un índice
   con nombres de sección en español eso se lee mal ("Empieza Según Tu Caso").
   Se corrige solo en esta página, sin tocar la tipografía del resto. */
body.page-id-6833 .elementor-widget-heading h2{ text-transform:none; }
body.page-id-6833 .elementor-icon-list-item a:hover{ color:var(--fp-cyan); }
body.page-id-6833 .elementor-widget-text-editor a{
  color:var(--fp-cyan-dark);
  font-weight:600;
  text-decoration:none;
}
body.page-id-6833 .elementor-widget-text-editor a:hover{ text-decoration:underline; }
