{"id":6151,"date":"2023-10-25T12:02:39","date_gmt":"2023-10-25T10:02:39","guid":{"rendered":"https:\/\/servidor7.rubrika.es\/technology\/polirama\/"},"modified":"2026-09-08T11:14:20","modified_gmt":"2026-09-08T09:14:20","slug":"policyalert","status":"publish","type":"page","link":"https:\/\/vincesconsulting.com\/en\/technology\/policyalert\/","title":{"rendered":"PolicyAlert"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6151\" class=\"elementor elementor-6151 elementor-2996\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eba2776 e-con-full e-flex e-con e-parent\" data-id=\"eba2776\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4907200 elementor-widget elementor-widget-html\" data-id=\"4907200\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n\n<!--\n  Dashboard Vinces \u00b7 p\u00e1gina standalone por producto\n  Generado: 2026-05-13T10:34:13.412Z\n  Endpoint API: https:\/\/vision360.vincesconsulting.com\/api\/dashboard-publico\/policyalert\/\n\n  C\u00f3mo integrarlo en WordPress:\n    1. Editor de la p\u00e1gina \u2192 bloque 'HTML personalizado'.\n    2. Pega el fichero completo (todo, incluyendo <html>, <head>, <body>).\n       En la mayor\u00eda de temas WP basta con pegar a partir de <body>.\n    3. Aseg\u00farate de que el dominio WP est\u00e1 incluido en CORS del backend.\n    4. El cliente refresca cada 30 min; el backend cachea 1h.\n-->\n<html lang=\"en\"><head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n<title>PolicyAlert: bills in progress, open public consultations and hearings \u00b7 Vinces<\/title>\n<meta name=\"description\" content=\"PolicyAlert de Vinces: monitoriza en tiempo real las leyes en tramitaci\u00f3n parlamentaria, las consultas p\u00fablicas previas, las audiencias e informaci\u00f3n p\u00fablica y los temas regulatorios m\u00e1s activos cada semana. Alertas a tu sector el mismo d\u00eda de la publicaci\u00f3n.\">\n<meta name=\"keywords\" content=\"PolicyAlert, leyes en tramitaci\u00f3n, iniciativas parlamentarias, consulta p\u00fablica previa, audiencia p\u00fablica, BOE, DOGV, DOGC, BOPV, monitorizaci\u00f3n regulatoria, alertas regulatorias, compliance, tesauro regulatorio, Vinces consulting\">\n<meta name=\"author\" content=\"Vinces Consulting\">\n<meta name=\"robots\" content=\"index,follow,max-image-preview:large,max-snippet:-1\">\n<link rel=\"canonical\" href=\"https:\/\/vincesconsulting.com\/policyalert\/\">\n\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:site_name\" content=\"Vinces Consulting\">\n<meta property=\"og:title\" content=\"PolicyAlert \u00b7 Inteligencia regulatoria \u00b7 Vinces\">\n<meta property=\"og:description\" content=\"Leyes en tramitaci\u00f3n, consultas y audiencias p\u00fablicas abiertas y temas regulatorios activos esta semana.\">\n<meta property=\"og:locale\" content=\"en_GB\">\n<meta property=\"og:url\" content=\"https:\/\/vincesconsulting.com\/policyalert\/\">\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:title\" content=\"PolicyAlert \u00b7 Inteligencia regulatoria\">\n<meta name=\"twitter:description\" content=\"Sigue cada ley, consulta p\u00fablica y tendencia regulatoria en tiempo real.\">\n\n<script type=\"application\/ld+json\" id=\"ld-json-page\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebPage\",\n  \"name\": \"PolicyAlert \u00b7 Inteligencia regulatoria y alertas\",\n  \"description\": \"Monitorizaci\u00f3n en tiempo real de leyes en tramitaci\u00f3n, consultas y audiencias p\u00fablicas y tendencias regulatorias por \u00e1mbito sectorial.\",\n  \"inLanguage\": \"es\",\n  \"isPartOf\": {\"@type\":\"WebSite\",\"name\":\"Vinces Consulting\",\"url\":\"https:\/\/vincesconsulting.com\"},\n  \"publisher\": {\"@type\":\"Organization\",\"name\":\"Vinces Consulting\",\"url\":\"https:\/\/vincesconsulting.com\",\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/vinces-consulting\/\"]},\n  \"breadcrumb\": {\"@type\":\"BreadcrumbList\",\"itemListElement\":[\n    {\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/vincesconsulting.com\/\"},\n    {\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tecnolog\u00eda\",\"item\":\"https:\/\/vincesconsulting.com\/tecnologia\/\"},\n    {\"@type\":\"ListItem\",\"position\":3,\"name\":\"PolicyAlert\"}\n  ]}\n}\n<\/script>\n<script type=\"application\/ld+json\" id=\"ld-json-faq\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\"@type\":\"Question\",\"name\":\"\u00bfQu\u00e9 leyes est\u00e1n en tramitaci\u00f3n ahora mismo?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Listamos las iniciativas legislativas con tramitaci\u00f3n m\u00e1s reciente y la fase exacta en la que se encuentran (presentaci\u00f3n, enmiendas, ponencia, comisi\u00f3n, pleno, Senado, BOE). Con PolicyAlert puedes activar alertas personalizadas de leyes que afecten a tu negocio.\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00bfQu\u00e9 consultas o audiencias p\u00fablicas est\u00e1n abiertas ahora?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Mostramos cu\u00e1ntas consultas p\u00fablicas previas y audiencias e informaci\u00f3n p\u00fablica est\u00e1n abiertas en este momento, y cu\u00e1ntas se han abierto en las \u00faltimas 24 horas, en todos los niveles de la administraci\u00f3n espa\u00f1ola.\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00bfQu\u00e9 temas regulatorios est\u00e1n moviendo m\u00e1s actividad esta semana?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"La gr\u00e1fica de temas activos muestra la evoluci\u00f3n diaria de las publicaciones regulatorias en cada \u00e1mbito sectorial (alimentaci\u00f3n, medio ambiente, energ\u00eda, salud, digital, real estate, industria, movilidad sostenible, educaci\u00f3n, bebidas y alcoholes).\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00bfEn qu\u00e9 momento recibo la alerta?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"El mismo d\u00eda de la publicaci\u00f3n oficial, normalmente en menos de 1 hora desde que aparece en el BOE o el bolet\u00edn auton\u00f3mico correspondiente.\"}}\n  ]\n}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Libre+Franklin:wght@400;500;600;700&amp;family=Manrope:wght@500;600;700;800&amp;family=Lato:wght@400;700&amp;display=swap\">\n<script defer=\"\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.1\/dist\/chart.umd.min.js\"><\/script>\n\n<style>\n\/* =========================================================\n   Vinces \u00b7 Dashboards p\u00fablicos \u2014 capa visual redesign\n   Mantiene todas las clases del HTML\/JS original e\n   incorpora la identidad de vincesconsulting.com (hero\n   navy, kicker naranja, tipograf\u00eda display, CTAs p\u00edldora).\n   ========================================================= *\/\n:root{\n  --navy:#1F2547;\n  --navy-deep:#161A36;\n  --navy-light:#2A3158;\n  --navy-soft:#E9ECF3;\n  --orange:#F3A53A;\n  --orange-soft:#FFF1DA;\n  --green:#1FA886;\n  --bg:#EEF1F3;\n  --bg-alt:#F6F8FA;\n  --card:#FFFFFF;\n  --ink:#1F2547;\n  --ink-soft:#5A6076;\n  --muted:#8A90A3;\n  --line:#E2E6EE;\n  --line-soft:#EDF0F5;\n  --good:#1FA886;\n  --warn:#E5A040;\n  --bad:#C0392B;\n\n  \/* Aliases para mantener compatibilidad con el CSS original *\/\n  --vinces-primary:var(--navy);\n  --vinces-secondary:var(--orange);\n  --vinces-dark:var(--navy-deep);\n  --panel:var(--card);\n  --panel-soft:var(--bg-alt);\n  --brand:var(--navy);\n  --brand-soft:var(--navy-soft);\n  --brand-light:var(--navy-light);\n  --accent:var(--orange);\n  --accent-soft:var(--orange-soft);\n  --accent-dark:#D88E25;\n\n  --radius:18px;\n  --radius-sm:10px;\n  --radius-pill:999px;\n  --shadow:0 1px 2px rgba(31,37,71,.04), 0 8px 24px rgba(31,37,71,.06);\n  --shadow-lg:0 4px 12px rgba(31,37,71,.06), 0 24px 60px rgba(31,37,71,.12);\n\n  --hm-0:#F1F3F7;--hm-1:#DDE2EE;--hm-2:#B8C2D9;\n  --hm-3:#7889B0;--hm-4:#42507A;--hm-5:#1F2547;\n\n  --font-display:\"Libre Franklin\",-apple-system,BlinkMacSystemFont,sans-serif;\n  --font-body:\"Lato\",\"Libre Franklin\",-apple-system,BlinkMacSystemFont,sans-serif;\n}\n\n*{box-sizing:border-box}\nhtml,body{margin:0;padding:0}\nbody{\n  font-family:var(--font-body);\n  background:var(--bg);\n  color:var(--ink);\n  line-height:1.65;\n  -webkit-font-smoothing:antialiased;\n  text-rendering:optimizeLegibility;\n}\n\n\/* =========================================================\n   HERO full-bleed (estilo Vinces)\n   ========================================================= *\/\n.vc-hero{\n  position:relative;\n  background:var(--navy);\n  color:#fff;\n  padding:96px 24px 88px;\n  overflow:hidden;\n}\n.vc-hero::before{\n  content:\"\";\n  position:absolute;inset:0;\n  background:\n    radial-gradient(circle at 88% 18%, rgba(243,165,58,.10), transparent 45%),\n    radial-gradient(circle at 8% 95%, rgba(31,168,134,.07), transparent 50%);\n  pointer-events:none;\n}\n.vc-hero::after{\n  content:\"\";\n  position:absolute;left:0;right:0;bottom:0;height:1px;\n  background:linear-gradient(90deg, transparent, rgba(243,165,58,.45), transparent);\n}\n.vc-hero-inner{\n  position:relative;\n  max-width:1240px;margin:0 auto;\n  display:grid;grid-template-columns:1fr;gap:28px;\n}\n@media(min-width:880px){\n  .vc-hero-inner{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:48px}\n}\n.vc-kicker{\n  display:inline-block;\n  color:var(--orange);\n  font-family:var(--font-display);\n  font-weight:700;font-size:.78rem;\n  letter-spacing:.18em;text-transform:uppercase;\n  margin:0 0 22px;line-height:1.2;\n}\n.vc-kicker::before{content:\"\/\/ \"}\n.vc-hero h1{\n  font-family:var(--font-display);\n  font-size:clamp(2.4rem,5.6vw,4.8rem);\n  font-weight:800;\n  letter-spacing:-.035em;\n  line-height:.98;\n  margin:0 0 24px;\n  color:#fff;\n  text-wrap:balance;\n}\n.vc-hero-lead{\n  font-size:clamp(1rem,1.25vw,1.15rem);\n  color:rgba(255,255,255,.78);\n  max-width:680px;\n  line-height:1.55;\n  margin:0 0 28px;\n}\n.vc-hero-lead strong{color:#fff;font-weight:600}\n.vc-hero-meta{\n  display:inline-flex;align-items:center;gap:10px;\n  background:rgba(255,255,255,.05);\n  border:1px solid rgba(255,255,255,.14);\n  padding:9px 18px;\n  border-radius:999px;\n  font-size:.8rem;\n  color:rgba(255,255,255,.85);\n  backdrop-filter:blur(6px);\n}\n.vc-hero-meta .dot{\n  width:8px;height:8px;border-radius:50%;\n  background:#4ADE80;\n  box-shadow:0 0 0 4px rgba(74,222,128,.18);\n}\n.vc-hero-meta.err .dot{background:#FCA5A5;box-shadow:0 0 0 4px rgba(252,165,165,.18)}\n.vc-hero-meta.err{color:#FCA5A5;border-color:rgba(252,165,165,.25)}\n\n.vc-hero-cta{\n  display:inline-flex;align-items:center;gap:14px;\n  background:#fff;color:var(--navy);\n  padding:14px 16px 14px 26px;\n  border-radius:999px;\n  text-decoration:none;\n  font-family:var(--font-display);\n  font-weight:700;font-size:1.45rem;\n  transition:transform .15s ease, box-shadow .2s ease;\n  align-self:start;\n}\n.vc-hero-cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.25)}\n.vc-hero-cta .ico{\n  width:30px;height:30px;border-radius:50%;\n  background:var(--navy);color:#fff;\n  display:inline-flex;align-items:center;justify-content:center;\n  font-size:1.45rem;font-weight:400;\n  transition:transform .2s ease;\n}\n.vc-hero-cta:hover .ico{transform:rotate(-12deg)}\n\n\/* =========================================================\n   Layout principal (sustituye al .wrap inline)\n   ========================================================= *\/\n.wrap{max-width:1240px;margin:0 auto;padding:56px 24px 96px}\n@media(max-width:768px){.wrap{padding:40px 18px 64px}}\n\n\/* Cabecera vieja: la ocultamos porque ahora vive en el hero *\/\nheader.page{display:none}\n\nnoscript .nojs{\n  background:#FFF7ED;border:1px solid #FED7AA;color:#9A3412;\n  padding:16px 20px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:.9rem;\n}\n\n\/* =========================================================\n   PRODUCT SECTION \u2014 card grande con dos columnas\n   ========================================================= *\/\n.product-section{\n  margin:0 0 40px;\n  background:var(--card);\n  border:1px solid var(--line);\n  border-radius:var(--radius);\n  box-shadow:var(--shadow);\n  overflow:clip;   \/* recorta como hidden pero NO crea scroll container \u2192 permite position:sticky *\/\n  position:relative;\n}\n.product-section::before{\n  content:\"\";position:absolute;top:0;left:0;\n  width:160px;height:4px;\n  background:linear-gradient(90deg,var(--navy) 0%,var(--orange) 100%);\n}\n.product-grid{display:grid;grid-template-columns:1fr;gap:0}\n@media(min-width:1020px){\n  .product-grid{grid-template-columns:360px 1fr}\n  .product-grid.reverse{grid-template-columns:1fr 360px}\n}\n.product-info{\n  padding:48px 38px;\n  background:linear-gradient(180deg,#FAFBFC 0%, #F0F3F7 100%);\n  border-right:1px solid var(--line);\n  display:flex;flex-direction:column;gap:18px;\n}\n.product-grid.reverse .product-info{\n  border-right:0;border-left:1px solid var(--line);order:2;\n}\n@media(max-width:1019px){\n  .product-info{padding:32px 24px;border-right:0;border-left:0;border-bottom:1px solid var(--line)}\n  .product-grid.reverse .product-info{order:0;border-left:0;border-bottom:1px solid var(--line)}\n}\n\n.product-badge{\n  display:inline-block;\n  color:var(--orange);\n  font-family:var(--font-display);\n  font-weight:700;font-size:.72rem;\n  letter-spacing:.16em;text-transform:uppercase;\n  background:transparent;padding:0;border:0;\n  align-self:flex-start;line-height:1.2;\n}\n.product-badge::before{content:\"\/\/ \"}\n.product-badge.brand{color:var(--navy)}\n\n.product-name{\n  font-family:var(--font-display);\n  font-size:clamp(1.7rem,2.4vw,2.2rem);\n  font-weight:800;color:var(--navy);\n  margin:0;letter-spacing:-.025em;line-height:1.05;\n  text-wrap:balance;\n}\n.product-tagline{\n  font-size:1rem;color:var(--ink-soft);\n  margin:0;line-height:1.7;\n}\n.product-tagline strong{color:var(--ink);font-weight:600}\n\n.product-content{padding:42px 38px;min-width:0}\n@media(max-width:1019px){.product-content{padding:30px 24px}}\n.product-content-header{\n  display:flex;align-items:flex-start;justify-content:space-between;\n  gap:16px;flex-wrap:wrap;margin-bottom:22px;\n}\n.product-content-header h3{\n  margin:0;\n  font-family:var(--font-display);\n  font-size:clamp(1.25rem,1.6vw,1.55rem);\n  font-weight:700;color:var(--navy);\n  letter-spacing:-.02em;line-height:1.2;\n}\n.product-content-header .sub{\n  font-size:1.45rem;color:var(--ink-soft);\n  margin:8px 0 0;line-height:1.55;max-width:62ch;\n}\n@media(min-width:820px){#pane-faq .product-content-header .sub{max-width:none;white-space:nowrap}}\n\n\/* =========================================================\n   CTA p\u00edldora \u2014 el patr\u00f3n Vinces \"Contacta con nosotros \u2197\"\n   ========================================================= *\/\n.pane-cta,\n.product-cta,\n.dl-btn{\n  display:inline-flex;align-items:center;gap:12px;\n  background:var(--navy);color:#fff;\n  padding:13px 18px 13px 26px;\n  border-radius:999px;\n  text-decoration:none;\n  font-family:var(--font-display);\n  font-weight:700;font-size:.88rem;\n  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;\n  border:0;cursor:pointer;line-height:1;\n  white-space:nowrap;\n}\n.pane-cta::after,\n.product-cta::after{content:none}\n.pane-cta::before,\n.product-cta::before,\n.dl-btn::before{\n  order:2;\n  content:\"\\2197\";\n  width:26px;height:26px;border-radius:50%;\n  background:rgba(255,255,255,.16);\n  display:inline-flex;align-items:center;justify-content:center;\n  font-size:1.25rem;font-weight:500;\n  transition:transform .25s ease;\n}\n.pane-cta:hover,\n.product-cta:hover,\n.dl-btn:hover{\n  background:var(--navy-light);\n  transform:translateY(-2px);\n  box-shadow:0 10px 24px rgba(31,37,71,.18);\n  color:#fff;\n}\n.pane-cta:hover::before,\n.product-cta:hover::before{transform:translate(2px,-2px) rotate(-8deg)}\n\/* Variante naranja del bot\u00f3n (mismo color que la etiqueta \"Top: Salud\") *\/\n.pane-cta--accent{background:var(--orange);color:var(--navy)}\n.pane-cta--accent::before{background:rgba(49,64,104,.18)}\n.pane-cta--accent:hover{background:#eea53c;color:var(--navy)}\n\/* Cabecera de \"Temas activos\": t\u00edtulo a la izquierda, preguntas + CTA a la derecha *\/\n#pane-temas-act .product-content-header{display:flex;justify-content:space-between;align-items:flex-start;gap:36px;flex-wrap:wrap}\n.temas-head-main{flex:1 1 320px;min-width:280px}\n.temas-head-cta{flex:0 1 440px;min-width:260px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}\n.temas-head-q{font-size:1.1rem;color:var(--ink-soft);line-height:1.5;margin:0}\n.temas-head-q strong{color:var(--ink);font-weight:700}\n.temas-head-cta .pane-cta{margin-top:6px}\n@media(max-width:900px){#pane-temas-act .product-content-header{gap:20px}.temas-head-cta{flex-basis:100%}}\n\n.pane-cta-row{\n  margin-top:28px;padding:22px 24px;\n  background:var(--bg-alt);\n  border:1px solid var(--line-soft);\n  border-radius:var(--radius-sm);\n  display:flex;flex-wrap:wrap;align-items:center;gap:18px;\n}\n.pane-cta-row .pane-cta-text{\n  flex:1;min-width:240px;\n  font-size:1.45rem;color:var(--ink-soft);\n  margin:0;line-height:1.6;\n}\n.pane-cta-row .pane-cta-text strong{color:var(--ink);font-weight:700}\n.content-cta-row{\n  margin-top:32px;padding:24px 26px;\n  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);\n  color:#fff;\n  border-radius:var(--radius-sm);\n  display:flex;flex-wrap:wrap;align-items:center;gap:20px;\n}\n.content-cta-row .pane-cta-text{\n  flex:1;min-width:240px;\n  font-size:1.45rem;color:rgba(255,255,255,.78);\n  margin:0;line-height:1.6;\n}\n.content-cta-row .pane-cta-text strong{color:#fff;font-weight:700}\n.content-cta-row .pane-cta{\n  background:#fff;color:var(--navy);\n}\n.content-cta-row .pane-cta::before{background:var(--navy);color:#fff}\n.content-cta-row .pane-cta:hover{background:var(--orange);color:var(--navy)}\n.content-cta-row .pane-cta:hover::before{background:var(--navy);color:#fff}\n\n\/* Updated pill compatible con c\u00f3digo original (queda oculto en hero, pero el JS a\u00fan escribe en \u00e9l) *\/\n.updated{\n  font-size:.8rem;color:var(--ink-soft);\n  background:var(--card);border:1px solid var(--line);\n  padding:8px 16px;border-radius:999px;\n  display:inline-flex;align-items:center;gap:8px;\n}\n.updated .dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px rgba(31,168,134,.15)}\n.updated.err .dot{background:var(--bad);box-shadow:0 0 0 4px rgba(192,57,43,.15)}\n.updated.err{color:var(--bad);border-color:#FECACA}\n\n\/* =========================================================\n   Carrusel de tabs (PolicyAlert)\n   ========================================================= *\/\n\/* Barra de navegaci\u00f3n fija arriba: los tabs son anclas a cada secci\u00f3n *\/\n.car-tabs{\n  position:sticky;top:0;z-index:30;\n  display:flex;gap:6px;flex-wrap:wrap;\n  margin:-42px -38px 4px;        \/* sangra hasta el borde interior del card *\/\n  padding:14px 38px;\n  background:var(--card);\n  background:color-mix(in srgb, var(--card) 92%, transparent);\n  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);\n  border-bottom:1px solid var(--line);\n}\n@media(max-width:1019px){\n  .car-tabs{margin:-30px -24px 4px;padding:12px 24px}\n}\n.car-tab{\n  background:transparent;border:0;\n  padding:9px 18px;font-weight:600;font-size:1.25rem;\n  color:var(--ink-soft);cursor:pointer;\n  font-family:var(--font-display);\n  border-radius:999px;\n  transition:all .15s ease;\n  line-height:1.2;white-space:nowrap;\n}\n.car-tab:hover{color:var(--navy);background:var(--bg-alt)}\n.car-tab.active{\n  background:var(--navy);color:#fff;\n  box-shadow:0 2px 8px rgba(31,37,71,.18);\n}\n\/* P\u00e1gina con scroll: todas las secciones visibles y apiladas *\/\n.car-pane{display:block;scroll-margin-top:70px}\n.car-pane + .car-pane{margin-top:56px}\n\/* Inicio de secci\u00f3n: banda full-bleed con acento naranja a la izquierda\n   (solo el header inicial del pane; los sub-headers internos quedan sin banda) *\/\n.car-pane > .product-content-header:first-child{\n  background:var(--hm-1);   \/* fondo distintivo (navy-gris), sin bordes *\/\n  margin:0 -38px 30px;\n  padding:26px 38px;\n}\n.car-pane > .product-content-header:first-child h3{font-weight:800}\n@media(max-width:1019px){\n  .car-pane > .product-content-header:first-child{margin:0 -24px 26px;padding:18px 24px}\n}\n\n\/* =========================================================\n   Nombramientos (Poder Digital)\n   ========================================================= *\/\n.nomb-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}\n.nomb-list-grid{display:grid;grid-template-columns:1fr;gap:14px}\n@media(min-width:780px){.nomb-list-grid{grid-template-columns:1fr 1fr}}\n.nomb-item{\n  display:flex;align-items:flex-start;gap:16px;\n  padding:22px;background:#fff;\n  border:1px solid var(--line);border-radius:var(--radius-sm);\n  transition:all .18s ease;\n  position:relative;\n}\n.nomb-item::before{\n  content:\"\";position:absolute;left:0;top:22px;bottom:22px;width:3px;\n  background:var(--orange);border-radius:3px;opacity:0;transition:opacity .18s ease;\n}\n.nomb-item:hover{\n  border-color:var(--navy);\n  box-shadow:0 8px 24px rgba(31,37,71,.08);\n  transform:translateY(-2px);\n}\n.nomb-item:hover::before{opacity:1}\n.nomb-item .badge{\n  flex:0 0 auto;width:48px;height:48px;border-radius:50%;\n  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);\n  color:#fff;\n  display:flex;align-items:center;justify-content:center;\n  font-weight:700;font-size:.9rem;\n  font-family:var(--font-display);\n  box-shadow:0 4px 10px rgba(31,37,71,.18);\n}\n.nomb-item .body{flex:1;min-width:0}\n.nomb-item .name{\n  font-family:var(--font-display);\n  font-weight:700;font-size:1rem;\n  margin:0 0 6px;color:var(--navy);line-height:1.25;\n  letter-spacing:-.01em;\n}\n.nomb-item .cargo{font-size:.88rem;color:var(--ink-soft);margin:0;line-height:1.5}\n.nomb-item time{\n  font-size:.72rem;color:var(--muted);\n  display:inline-block;margin-top:10px;\n  text-transform:uppercase;letter-spacing:.06em;font-weight:600;\n}\n.nomb-item a{\n  display:inline-block;margin-top:8px;\n  color:var(--navy);text-decoration:none;\n  font-size:.78rem;font-weight:600;\n}\n.nomb-item a:hover{color:var(--orange)}\n\n\/* =========================================================\n   Leyes \/ stepper (PolicyAlert)\n   ========================================================= *\/\n.ley{\n  padding:24px 26px;margin-bottom:14px;\n  border:1px solid var(--line);border-radius:var(--radius-sm);\n  background:#fff;transition:all .18s ease;\n}\n.ley:last-child{margin-bottom:0}\n.ley:hover{\n  border-color:var(--navy);\n  box-shadow:0 8px 24px rgba(31,37,71,.08);\n  transform:translateY(-2px);\n}\n.ley .ley-title{\n  font-family:var(--font-display);\n  font-weight:700;font-size:1.05rem;\n  color:var(--navy);display:block;margin-bottom:8px;\n  letter-spacing:-.015em;line-height:1.35;\n  text-decoration:none;\n}\n.ley .ley-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px}\n.ley-chip{\n  display:inline-flex;align-items:center;gap:6px;\n  font-size:.76rem;font-weight:600;color:var(--ink-soft);\n  background:var(--bg-alt);border:1px solid var(--line);\n  padding:5px 11px;border-radius:999px;line-height:1;white-space:nowrap;\n}\n.ley-chip time{color:var(--navy);font-weight:700}\n.ley-chip .ley-ico{flex:none;opacity:.65}\n.ley-chip-phase{\n  color:#fff;background:var(--navy);border-color:var(--navy);\n  text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;\n}\n.ley-chip-phase .ley-ico{opacity:.9}\n.ley-progress{\n  margin-top:16px;padding:18px 18px 8px;\n  background:var(--bg-alt);border:1px solid var(--line);\n  border-radius:var(--radius-sm);\n}\n.stepper{display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;gap:2px 0}\n.stepper .step{\n  flex:1 1 auto;min-width:60px;text-align:center;position:relative;\n  font-size:.64rem;color:var(--muted);padding:0 4px;\n  text-transform:uppercase;letter-spacing:.04em;font-weight:600;\n}\n.stepper .step .dot{\n  width:12px;height:12px;border-radius:50%;\n  background:var(--line);border:2px solid #fff;\n  margin:0 auto 6px;position:relative;z-index:1;\n  box-shadow:0 0 0 1px var(--line);\n}\n.stepper .step.done .dot{background:var(--good);box-shadow:0 0 0 1px var(--good)}\n.stepper .step.current .dot{\n  background:var(--orange);\n  box-shadow:0 0 0 1px var(--orange), 0 0 0 4px rgba(243,165,58,.25);\n  width:14px;height:14px;\n}\n.stepper .step.done,.stepper .step.current{color:var(--ink)}\n.stepper .step.current{font-weight:700;color:var(--navy)}\n.stepper .step::before{content:\"\";position:absolute;top:5px;left:0;right:50%;height:2px;background:var(--line);z-index:0}\n.stepper .step::after{content:\"\";position:absolute;top:5px;left:50%;right:0;height:2px;background:var(--line);z-index:0}\n.stepper .step.done::before,.stepper .step.done::after{background:var(--good)}\n.stepper .step.current::before{background:var(--good)}\n.stepper .step:first-child::before{display:none}\n.stepper .step:last-child::after{display:none}\n\/* Stepper destacado dentro del panel de progreso de cada ley *\/\n.ley-progress .stepper .step .dot{width:14px;height:14px}\n.ley-progress .stepper .step.current .dot{width:17px;height:17px}\n.ley-progress .stepper .step::before,\n.ley-progress .stepper .step::after{top:6px;height:3px}\n.ley-progress .stepper .step.current{font-size:.66rem}\n\n\/* =========================================================\n   KPIs (PolicyAlert)\n   ========================================================= *\/\n.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:8px 0 0}\n@media(min-width:760px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}\n.kpi-card{\n  padding:24px 22px;background:#fff;\n  border:1px solid var(--line);border-radius:var(--radius-sm);\n  display:flex;flex-direction:column;gap:6px;\n  position:relative;overflow:hidden;\n  transition:all .18s ease;\n}\n.kpi-card:hover{border-color:var(--navy-soft);box-shadow:0 4px 16px rgba(31,37,71,.06)}\n.kpi-label{\n  font-size:1.1rem;color:var(--muted);\n  text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0;\n}\n.kpi-value{\n  font-family:var(--font-display);\n  font-size:2.4rem;font-weight:800;\n  color:var(--navy);line-height:1;margin:6px 0 2px;\n  letter-spacing:-.03em;font-variant-numeric:tabular-nums;\n}\n.kpi-sub{font-size:.8rem;color:var(--ink-soft);margin:0;line-height:1.4}\n\n\/* =========================================================\n   Temas conversaci\u00f3n (WATS): filtros, leyenda, chart\n   ========================================================= *\/\n.tc-meta{\n  font-size:1.25rem;color:var(--muted);margin:8px 0 0;\n  font-weight:500;\n}\n.tc-filters{\n  display:flex;flex-wrap:wrap;gap:6px;\n  margin:20px 0 24px;\n  padding:0 0 18px;border-bottom:1px solid var(--line);\n}\n.tc-filters button{\n  border:1px solid var(--line);background:#fff;\n  color:var(--ink-soft);\n  padding:8px 16px;border-radius:999px;\n  cursor:pointer;font-size:1.1rem;font-weight:600;\n  transition:all .15s ease;line-height:1.2;\n  font-family:var(--font-display);\n}\n.tc-filters button:hover{border-color:var(--navy);color:var(--navy)}\n.tc-filters button.active{\n  background:var(--navy);color:#fff;border-color:var(--navy);\n  box-shadow:0 2px 8px rgba(31,37,71,.16);\n}\n.tc-filters button[disabled]{opacity:.35;cursor:not-allowed}\n.tc-chart-wrap{position:relative;min-height:380px;margin-bottom:16px}\n.tc-legend{\n  display:flex;flex-wrap:wrap;gap:18px;align-items:center;\n  padding:14px 18px;background:var(--bg-alt);\n  border:1px solid var(--line-soft);\n  border-radius:var(--radius-sm);\n  font-size:.8rem;color:var(--ink-soft);\n}\n.tc-legend .lg{display:inline-flex;align-items:center;gap:8px;font-weight:500}\n.tc-legend .sw{width:12px;height:12px;border-radius:3px;display:inline-block}\n\n\/* =========================================================\n   Temas activos (PolicyAlert)\n   ========================================================= *\/\n.temas-chart-area{position:relative}\n.temas-head-cta-btn{flex:0 0 auto;align-self:flex-start}\n@media(max-width:560px){.temas-head-cta-btn{align-self:stretch;justify-content:center}}\n.temas-act-wrap{position:relative;height:440px;margin:14px 0 14px}\n.temas-act-summary{\n  display:flex;flex-wrap:wrap;gap:10px;align-items:center;\n  margin-bottom:14px;font-size:.88rem;color:var(--ink-soft);\n}\n.temas-act-summary .pill{\n  background:var(--orange);color:var(--navy);\n  padding:6px 14px;border-radius:999px;\n  font-weight:700;font-size:.78rem;\n  font-family:var(--font-display);letter-spacing:.01em;\n}\n.temas-act-legend{\n  display:flex;flex-wrap:nowrap;gap:6px;\n  margin-top:14px;padding-top:18px;border-top:1px solid var(--line);\n  overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;\n}\n.temas-act-legend .ta-tag{\n  display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;\n  padding:5px 11px;\n  border:1px solid var(--line);border-radius:999px;\n  background:#fff;cursor:pointer;\n  font-family:var(--font-display);\n  font-size:.74rem;font-weight:600;color:var(--ink);\n  transition:all .14s ease;user-select:none;line-height:1.2;\n}\n.temas-act-legend .ta-tag:hover{border-color:var(--navy)}\n.temas-act-legend .ta-tag .sw{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;border:1.5px solid transparent}\n.temas-act-legend .ta-tag.off{opacity:.45;background:var(--bg-alt);text-decoration:line-through;color:var(--muted)}\n.temas-act-legend .ta-tag.off .sw{border-color:var(--muted);background:transparent !important}\n.ta-actions{display:inline-flex;gap:10px;margin-left:auto;align-items:center;font-size:.95rem}\n.ta-actions a{color:var(--navy);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-family:var(--font-display)}\n.ta-actions a:hover{color:var(--orange)}\n.ta-actions span{color:var(--muted)}\n\n\/* =========================================================\n   FAQ\n   ========================================================= *\/\n.faq-section{\n  margin:0 0 40px;padding:56px 48px;\n  background:var(--card);border:1px solid var(--line);\n  border-radius:var(--radius);box-shadow:var(--shadow);\n}\n@media(max-width:768px){.faq-section{padding:36px 24px}}\n.faq-section > h2{\n  font-family:var(--font-display);\n  font-size:clamp(1.8rem,2.6vw,2.3rem);color:var(--navy);\n  font-weight:800;margin:0 0 14px;letter-spacing:-.025em;line-height:1.1;\n  text-wrap:balance;\n}\n.faq-intro{font-size:1.05rem;color:var(--ink-soft);margin:0 0 36px;line-height:1.6;max-width:62ch}\n.faq-block{margin-bottom:36px;padding-top:32px;border-top:1px solid var(--line);scroll-margin-top:24px}\n.faq-block:first-of-type{border-top:0;padding-top:0}\n.faq-block-title{\n  font-family:var(--font-display);\n  font-size:1.35rem;color:var(--navy);\n  font-weight:800;margin:0 0 22px;letter-spacing:-.015em;\n  display:flex;align-items:center;gap:14px;flex-wrap:wrap;\n}\n.faq-badge{\n  display:inline-block;\n  background:var(--navy);color:#fff;\n  font-family:var(--font-display);\n  font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;\n  padding:5px 12px;border-radius:999px;\n}\n.faq-badge.brand{background:var(--orange);color:var(--navy)}\n.faq-list{display:grid;grid-template-columns:1fr;gap:10px}\n@media(min-width:1100px){.faq-list{grid-template-columns:1fr 1fr;gap:10px 24px}}\n.faq-list details{\n  border:1px solid var(--line);border-radius:var(--radius-sm);\n  background:#fff;transition:all .18s ease;overflow:hidden;\n}\n.faq-list details:hover{border-color:var(--navy-light);box-shadow:0 4px 14px rgba(31,37,71,.06)}\n.faq-list details[open]{border-color:var(--navy);box-shadow:0 8px 24px rgba(31,37,71,.10)}\n.faq-list details summary{\n  padding:16px 22px;cursor:pointer;font-weight:600;\n  color:var(--ink);font-size:1.45rem;list-style:none;line-height:1.45;\n}\n.faq-list details summary::after{\n  content:\"+\";float:right;font-weight:300;color:var(--orange);\n  font-size:1.6rem;line-height:.7;margin-left:8px;transition:transform .2s ease;\n}\n.faq-list details[open] summary::after{content:\"\\2212\";color:var(--navy)}\n.faq-list details p{padding:0 22px 18px;margin:0;font-size:.9rem;color:var(--ink-soft);line-height:1.7}\n.faq-list details p a{color:var(--navy);font-weight:700}\n\n\/* =========================================================\n   SEO block \u2014 texto largo indexable\n   ========================================================= *\/\n.seo-block{\n  margin:0 0 32px;padding:56px 48px;\n  background:var(--card);border:1px solid var(--line);\n  border-radius:var(--radius);box-shadow:var(--shadow);\n}\n@media(max-width:768px){.seo-block{padding:36px 24px}}\n.seo-block h2{\n  font-family:var(--font-display);\n  font-size:clamp(1.7rem,2.4vw,2.1rem);color:var(--navy);\n  font-weight:800;margin:0 0 32px;letter-spacing:-.025em;\n  padding-bottom:18px;border-bottom:3px solid var(--orange);\n  line-height:1.15;display:inline-block;\n}\n.seo-grid{display:grid;grid-template-columns:1fr;gap:48px;margin-top:0}\n\/* Bloque SEO reubicado dentro de un tab: separador superior *\/\n.pane-seo{margin-top:28px;padding-top:26px;border-top:1px solid var(--line);display:grid;gap:40px}\n.seo-item{min-width:0;}\n.seo-item h3{\n  font-family:var(--font-display);\n  font-size:1.25rem;color:var(--navy);font-weight:800;\n  margin:0 0 14px;line-height:1.25;letter-spacing:-.015em;\n}\n.seo-item h4{\n  font-family:var(--font-display);\n  font-size:.78rem;color:var(--orange);font-weight:700;\n  margin:24px 0 12px;text-transform:uppercase;letter-spacing:.12em;\n}\n.seo-item h4::before{content:\"\/\/ \"}\n.seo-item p{font-size:1rem;color:var(--ink-soft);margin:0 0 14px;line-height:1.75;text-align:justify;text-justify:inter-word}\n.seo-item p strong{color:var(--ink);font-weight:600}\n.seo-item a{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}\n.seo-item a:hover{color:var(--orange)}\n.seo-table{\n  width:100%;table-layout:fixed;border-collapse:collapse;font-size:.86rem;margin-top:12px;\n  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;\n}\n.seo-table caption{\n  text-align:left;padding:14px 16px;background:var(--navy);color:#fff;\n  font-family:var(--font-display);font-weight:700;font-size:1.25rem;\n  letter-spacing:-.005em;\n}\n.seo-table th,.seo-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);overflow-wrap:break-word;word-break:break-word;}\n.seo-table th{\n  background:var(--bg-alt);color:var(--ink);\n  font-family:var(--font-display);font-weight:700;\n  font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;\n}\n.seo-table tr:last-child td{border-bottom:0}\n.seo-table tr:nth-child(even){background:#FAFBFC}\n.seo-table .muted-cell{color:var(--muted);font-style:italic;text-align:center;padding:20px}\n\/* Columna \"T\u00edtulo\" m\u00e1s ancha (lleva el texto largo) en las tablas a ancho completo *\/\n#seo-table-leyes th:first-child,#seo-table-leyes td:first-child{width:38%}\n#seo-table-consultas th:nth-child(2),#seo-table-consultas td:nth-child(2){width:38%}\n\/* Consultas \/ Audiencias en tarjetas agrupadas *\/\n.cons-groups{margin-top:12px;display:flex;flex-direction:column;gap:42px}\n.cons-group-title{\n  font-family:var(--font-display);font-size:1.05rem;color:var(--navy);font-weight:800;\n  margin:0 0 14px;display:flex;align-items:center;gap:10px;letter-spacing:-.01em;\n  padding-bottom:10px;border-bottom:2px solid var(--line);\n}\n.cons-count{\n  font-size:.78rem;font-weight:700;color:var(--navy);\n  background:var(--bg-alt);border:1px solid var(--line);\n  border-radius:999px;padding:2px 11px;\n}\n.cons-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px;max-width:520px}\n@media(max-width:520px){.cons-kpis{grid-template-columns:1fr}}\n.cons-kpis .kpi-card{padding:14px 16px;gap:2px}\n.cons-kpis .kpi-card::before{height:2px}\n.cons-kpis .kpi-label{font-size:.64rem;letter-spacing:.06em}\n.cons-kpis .kpi-value{font-size:1.6rem;margin:2px 0 1px}\n.cons-kpis .kpi-sub{font-size:.72rem;line-height:1.35}\n.cons-sub{margin-top:26px}\n.cons-sub + .cons-sub{margin-top:26px}\n.cons-sub-title{\n  font-family:var(--font-display);font-size:.78rem;color:var(--orange);font-weight:700;\n  text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px;\n  display:flex;align-items:center;gap:8px;\n}\n.cons-sub-title::before{content:\"\/\/ \"}\n.cons-sub-count{\n  font-size:.72rem;font-weight:700;color:var(--ink-soft);letter-spacing:0;\n  background:var(--bg-alt);border:1px solid var(--line);border-radius:999px;padding:1px 8px;\n}\n.cons-cards{display:grid;grid-template-columns:1fr;gap:18px}\n@media(min-width:720px){.cons-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}\n\/* Dos columnas: \"Recien abiertas\" | \"Cierran pronto\" (apiladas en movil) *\/\n.cons-2col{display:grid;grid-template-columns:1fr;gap:14px;margin-top:24px}\n@media(min-width:820px){\n  .cons-2col{grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:26px;row-gap:14px}\n}\n.cons-2col > .cons-sub-title{margin:0 0 2px}\n.cons-card--empty{display:none}\n@media(min-width:820px){.cons-card--empty{display:block;border:0;background:transparent;box-shadow:none;padding:0;min-height:0}}\n\/* V\u00eddeo YouTube (facade click-to-load: solo carga el iframe al pulsar) *\/\n.yt-facade,.yt-embed{position:relative;width:100%;max-width:760px;margin:20px auto 4px;aspect-ratio:16\/9;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}\n.yt-facade{cursor:pointer;background:var(--navy-deep)}\n.yt-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease,opacity .2s ease}\n.yt-facade:hover .yt-thumb{transform:scale(1.03);opacity:.88}\n.yt-facade::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,26,54,.05),rgba(22,26,54,.45))}\n.yt-play{position:absolute;inset:0;margin:auto;z-index:1;width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:#B13228;border-radius:50%;box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .15s ease,background .2s ease}\n.yt-facade:hover .yt-play{transform:scale(1.08);background:#C63B30}\n.yt-play svg{width:28px;height:28px;margin-left:4px;fill:#fff}\n.yt-label{position:absolute;left:14px;bottom:12px;z-index:1;color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.1rem;text-shadow:0 1px 4px rgba(0,0,0,.55)}\n.yt-facade:focus-visible{outline:2px solid var(--orange);outline-offset:2px}\n.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}\n\/* Tooltip propio (replica el custom-tooltip de la plataforma) *\/\n.pa-tooltip{position:fixed;z-index:9999;pointer-events:none;max-width:260px;border-radius:4px;font-family:'Poppins','Ibrand',system-ui,sans-serif;font-size:12px;font-weight:400;line-height:16px;white-space:pre-line;text-align:left;background-color:#424242;color:#fff;padding:8px 12px;box-shadow:0 4px 14px rgba(0,0,0,.22);opacity:0;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease}\n.pa-tooltip.show{opacity:1;transform:translateY(0)}\n.cons-card{\n  border:1px solid var(--line);border-left:4px solid var(--muted);\n  border-radius:var(--radius-sm);background:#fff;padding:16px 18px;\n  display:flex;flex-direction:column;gap:11px;transition:all .18s ease;\n}\n.cons-card:hover{border-color:var(--navy);box-shadow:0 8px 24px rgba(31,37,71,.08);transform:translateY(-2px)}\n.cons-card--consulta{border-left-color:var(--navy)}\n.cons-card--audiencia{border-left-color:var(--orange)}\n.cons-card-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}\n.cons-badge{\n  font-family:var(--font-display);font-size:.85rem;font-weight:700;\n  text-transform:uppercase;letter-spacing:.05em;color:#fff;\n  padding:4px 10px;border-radius:999px;white-space:nowrap;\n}\n.cons-badge--consulta{background:var(--navy)}\n.cons-badge--audiencia{background:var(--orange)}\n.cons-plazo{font-size:1.1rem;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}\n.cons-plazo--red{color:#b42318;background:rgba(192,57,43,.12)}\n.cons-plazo--amber{color:#9a5b00;background:rgba(243,165,58,.2)}\n.cons-plazo--green{color:#1a7a4f;background:rgba(31,168,134,.14)}\n.cons-plazo--grey{color:var(--muted);background:var(--bg-alt)}\n.cons-card-title{\n  font-family:var(--font-display);font-weight:700;font-size:1.45rem;line-height:1.35;\n  color:var(--navy);text-decoration:none;\n  display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;\n}\na.cons-card-title:hover{color:var(--orange);text-decoration:underline}\n.cons-card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}\n.cons-chip{\n  display:inline-flex;align-items:center;gap:6px;\n  font-size:.74rem;font-weight:600;color:var(--ink-soft);\n  background:var(--bg-alt);border:1px solid var(--line);\n  padding:4px 10px;border-radius:999px;line-height:1.2;\n}\n.cons-chip .ley-ico{flex:none;opacity:.65}\n.cons-org{\n  margin-left:auto;display:inline-flex;align-items:center;gap:6px;\n  font-size:.72rem;font-weight:600;color:var(--muted);\n  align-self:flex-end;white-space:nowrap;\n}\n.cons-org .ley-ico{flex:none;opacity:.7}\n.cons-org-logo{width:18px;height:18px;object-fit:contain;border-radius:3px;background:#fff;flex:none}\n.ley-logo{width:16px;height:16px;object-fit:contain;border-radius:3px;background:#fff;flex:none}\n.ley-chamber{color:var(--navy)}\n\/* Bot\u00f3n \"Seguir\" por ley + c\u00e1maras clicables + modal de contacto *\/\n.ley-actions{display:flex;justify-content:flex-end;margin-top:14px}\n.ley-follow{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--orange);background:var(--orange-soft);color:var(--accent-dark);font-family:var(--font-display);font-weight:700;font-size:1.1rem;padding:8px 18px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s,transform .15s}\n.ley-follow::before{content:\"+\";font-weight:800;font-size:1rem;line-height:1}\n.ley-follow:hover{background:var(--orange);color:var(--navy);transform:translateY(-1px)}\n.cam-lb-row[data-vc-contact]{cursor:pointer}\n.cam-lb-row[data-vc-contact]:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(31,37,71,.12)}\n.vc-cmodal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(22,26,54,.55);backdrop-filter:blur(3px);padding:20px}\n.vc-cmodal.open{display:flex}\n.vc-cmodal .box{background:#fff;border-radius:18px;max-width:430px;width:100%;padding:30px 30px 26px;box-shadow:0 24px 60px rgba(31,37,71,.3)}\n.vc-cmodal h4{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--navy);margin:0 0 10px;letter-spacing:-.02em}\n.vc-cmodal p{font-family:var(--font-body);font-size:1.45rem;color:var(--ink-soft);line-height:1.55;margin:0 0 22px}\n.vc-cmodal .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}\n.vc-cmodal .cta{display:inline-flex;align-items:center;gap:9px;background:var(--orange);color:var(--navy);font-family:var(--font-display);font-weight:700;font-size:1.45rem;padding:12px 24px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s,background .2s;box-shadow:0 6px 18px rgba(243,165,58,.28)}\n.vc-cmodal .cta:hover{transform:translateY(-1px);background:#f7b35a}\n.vc-cmodal .x{background:none;border:0;cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--ink-soft);padding:10px 8px;margin-left:auto}\n.vc-cmodal .x:hover{color:var(--navy)}\n\n\/* =========================================================\n   Utilidades + estados\n   ========================================================= *\/\n.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.skeleton{background:linear-gradient(90deg,#F1F5F9 25%,#E2E8F0 50%,#F1F5F9 75%);background-size:200% 100%;animation:sk 1.4s infinite;border-radius:6px;color:transparent}\n@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}\n.error{\n  background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;\n  padding:14px 18px;border-radius:var(--radius-sm);font-size:.92rem;line-height:1.55;\n}\n.empty{color:var(--muted);font-size:.9rem;font-style:italic}\n\n\/* Di\u00e1logos (snippets) *\/\ndialog.snippets{border:none;border-radius:var(--radius);padding:0;max-width:560px;width:90%;box-shadow:var(--shadow-lg)}\ndialog.snippets::backdrop{background:rgba(22,26,54,.55)}\ndialog.snippets .head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}\ndialog.snippets .head h3{margin:0;font-size:1.05rem;color:var(--navy);font-family:var(--font-display);font-weight:800}\ndialog.snippets .head button{border:0;background:transparent;font-size:1.5rem;cursor:pointer;color:var(--ink-soft)}\ndialog.snippets .body{padding:20px 24px;max-height:50vh;overflow:auto}\ndialog.snippets blockquote{margin:0 0 14px;padding:14px 18px;border-left:3px solid var(--orange);background:var(--bg-alt);border-radius:6px;font-size:.92rem;color:var(--ink-soft)}\n\n\/* Heatmap (por si lo activan) *\/\n.hm-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.84rem;color:var(--ink-soft);margin-bottom:16px}\n.hm-meta .pill{background:var(--navy);color:#fff;padding:5px 14px;border-radius:999px;font-weight:600;font-size:.74rem;font-family:var(--font-display)}\n.hm-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;max-width:100%}\n\n\/* Hemiciclo *\/\n.hemi-wrap{position:relative;width:100%;max-width:580px;margin:0 auto}\n.hemi-wrap svg{width:100%;height:auto;display:block}\n.hemi-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 16px}\n.hemi-total{padding:14px 12px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);text-align:center}\n.hemi-total .lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}\n.hemi-total .val{font-family:var(--font-display);font-size:1.4rem;font-weight:800;display:block;margin-top:4px;color:var(--navy);letter-spacing:-.02em}\n.hemi-total.yes .val{color:#16A34A}\n.hemi-total.no .val{color:#DC2626}\n.hemi-total.abs .val{color:var(--orange)}\n\n\/* Pregunta del d\u00eda *\/\n.pregunta-card{\n  padding:26px 28px;background:#fff;\n  border:1px solid var(--line);border-radius:var(--radius-sm);\n  border-top:4px solid var(--orange);\n}\n.pregunta-meta{font-size:.72rem;color:var(--muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-family:var(--font-display)}\n.pregunta-q{\n  font-family:var(--font-display);font-size:1.2rem;font-weight:800;\n  color:var(--navy);margin:0 0 14px;line-height:1.3;letter-spacing:-.015em;\n}\n.pregunta-a{font-size:1.45rem;color:var(--ink);line-height:1.7;border-left:3px solid var(--navy);padding:4px 0 4px 18px;margin-top:6px}\n\n\n\n\/* ==========================================================\n   AJUSTES UX (compact hero \u00b7 loading pill a la derecha \u00b7\n   sin aside repetido) \u2014 aplicado a todos los productos\n   ========================================================== *\/\n.vc-hero{\n  padding:42px 24px 34px !important;\n}\n.vc-hero::before{opacity:.85}\n.vc-hero-inner{\n  gap:18px;\n  align-items:center !important;\n}\n@media(min-width:880px){\n  .vc-hero-inner{\n    grid-template-columns:minmax(0,1fr) auto !important;\n    align-items:center !important;\n    gap:32px;\n  }\n}\n.vc-kicker{\n  margin:0 0 10px !important;\n  font-size:.72rem !important;\n  letter-spacing:.16em !important;\n}\n.vc-hero h1{\n  font-size:clamp(1.65rem,3.2vw,2.4rem) !important;\n  margin:0 0 10px !important;\n  line-height:1.08 !important;\n  letter-spacing:-.02em !important;\n}\n.vc-hero-lead{\n  font-size:clamp(.92rem,1.05vw,1rem) !important;\n  margin:0 !important;\n  max-width:72ch;\n  line-height:1.5 !important;\n}\n\n\/* Columna derecha: pill arriba, CTA debajo *\/\n.vc-hero-right{\n  display:flex;flex-direction:column;align-items:flex-end;gap:12px;\n}\n.vc-hero-cta{\n  padding:11px 14px 11px 22px !important;\n  font-size:.88rem !important;\n  align-self:flex-end !important;\n}\n.vc-hero-cta .ico{width:26px;height:26px;font-size:.85rem}\n\n\/* Loading \/ \"Actualizado\u2026\" pill \u2014 sin posici\u00f3n absoluta *\/\n.vc-hero #updated-pill{\n  position:static !important;\n  display:inline-flex;align-items:center;gap:8px;\n  background:rgba(255,255,255,.06) !important;\n  border:1px solid rgba(255,255,255,.16) !important;\n  color:rgba(255,255,255,.82) !important;\n  padding:5px 12px;border-radius:999px;\n  font-size:1.1rem;letter-spacing:.04em;\n  margin:0 !important;\n  max-width:min(80vw,360px);\n  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\n  align-self:flex-end;\n}\n.vc-hero #updated-pill .dot{\n  width:7px;height:7px;border-radius:50%;\n  background:#4ADE80;\n  box-shadow:0 0 0 3px rgba(74,222,128,.16);\n  flex-shrink:0;\n}\n.vc-hero #updated-pill.err{\n  background:rgba(252,165,165,.08) !important;\n  border-color:rgba(252,165,165,.28) !important;\n  color:#FCA5A5 !important;\n}\n.vc-hero #updated-pill.err .dot{\n  background:#FCA5A5;\n  box-shadow:0 0 0 3px rgba(252,165,165,.18);\n}\n@media(max-width:879px){\n  .vc-hero{padding:32px 18px 26px !important;}\n  .vc-hero-right{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;align-self:flex-start}\n  .vc-hero #updated-pill{align-self:auto}\n}\n\n\/* Quitar la aside \"product-info\" que repite los textos del hero \u00b7 grid a 1 columna *\/\n.product-grid .product-info,\n.product-grid.reverse .product-info{\n  display:none !important;\n}\n.product-grid,\n.product-grid.reverse{\n  grid-template-columns:1fr !important;\n}\n.product-grid > .product-content{\n  order:1 !important;\n  border:0 !important;\n}\n\n\/* Acercar los gr\u00e1ficos al header *\/\n.wrap{padding-top:32px !important;}\n@media(max-width:768px){.wrap{padding-top:22px !important}}\n\n\/* Asegurar que los gr\u00e1ficos aprovechan todo el ancho ahora disponible *\/\n.temas-act-wrap,\n.tc-chart-wrap{width:100% !important;}\n.temas-act-wrap canvas,\n.tc-chart-wrap canvas{\n  width:100% !important;\n  max-width:100% !important;\n}\n\n\/* ==========================================================\n   LEADERBOARD de c\u00e1maras sobre la tem\u00e1tica ganadora\n   ========================================================== *\/\n.cam-lb{margin-top:52px}\n\/* Eyebrow-puente: conecta narrativamente la gr\u00e1fica con el ranking *\/\n.cam-lb-bridge{\n  display:flex;align-items:center;gap:9px;margin:0 0 8px;\n  font-family:var(--font-display);font-size:.72rem;font-weight:700;\n  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);\n}\n.cam-lb-dot{width:9px;height:9px;border-radius:50%;background:var(--orange);flex-shrink:0}\n.cam-lb-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:16px}\n.cam-lb-title{\n  margin:0;font-family:var(--font-display);\n  font-size:1.05rem;font-weight:700;color:var(--navy);letter-spacing:-.01em;\n}\n.cam-lb-sub{font-size:.84rem;color:var(--ink-soft)}\n.cam-lb-sub .amb{font-weight:700}\n.cam-lb-list{list-style:none;margin:0;padding:0}\n.cam-lb-more{text-align:center;color:var(--muted);font-size:1.5rem;line-height:.6;letter-spacing:.22em;margin-top:6px;user-select:none}\n@media(min-width:820px){\n  .cam-lb-list{column-count:2;column-gap:18px}\n}\n.cam-lb-row{\n  display:grid;grid-template-columns:30px auto 28px 1fr auto auto;align-items:center;gap:12px;\n  padding:10px 14px;margin-bottom:6px;border:1px solid var(--line);border-radius:10px;background:var(--card);\n  break-inside:avoid;-webkit-column-break-inside:avoid;\n  transition:border-color .15s ease, box-shadow .15s ease;\n}\n.cam-lb-row:hover{border-color:var(--navy-soft);box-shadow:var(--shadow)}\n.cam-lb-pos{\n  font-family:var(--font-display);font-weight:800;font-size:1.05rem;\n  color:var(--navy);text-align:center;font-variant-numeric:tabular-nums;\n}\n.cam-lb-logo{\n  width:28px;height:28px;object-fit:contain;flex-shrink:0;\n  border-radius:5px;background:#fff;\n}\n.cam-lb-logo.ph{\n  display:flex;align-items:center;justify-content:center;\n  background:var(--bg-alt);border:1px solid var(--line);\n  font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--muted);\n}\n.cam-lb-count{\n  font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy);\n  font-size:.92rem;white-space:nowrap;text-align:right;\n}\n.cam-lb-count .u{font-weight:500;color:var(--muted);font-size:.74rem;margin-left:3px}\n.cam-lb-row.top{border-color:var(--accent-soft);background:linear-gradient(90deg,var(--orange-soft) 0%, var(--card) 60%)}\n.cam-lb-row.top .cam-lb-pos{color:var(--accent-dark)}\n.cam-lb-name{\n  font-weight:600;color:var(--ink);font-size:.94rem;\n  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n}\n.cam-lb-delta{\n  font-family:var(--font-display);font-variant-numeric:tabular-nums;\n  font-size:1.1rem;font-weight:700;white-space:nowrap;\n  min-width:38px;text-align:right;\n}\n.cam-lb-delta.up{color:#0F7A5F}\n.cam-lb-delta.down{color:#A52F24}\n.cam-lb-delta.flat{color:var(--muted)}\n.cam-lb-chg{\n  display:inline-flex;align-items:center;gap:4px;\n  font-family:var(--font-display);font-size:.76rem;font-weight:700;\n  padding:3px 10px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap;\n  min-width:52px;justify-content:center;\n}\n.cam-lb-chg.up{color:#0F7A5F;background:rgba(31,168,134,.13)}\n.cam-lb-chg.down{color:#A52F24;background:rgba(192,57,43,.11)}\n.cam-lb-chg.flat{color:var(--muted);background:var(--bg-alt)}\n.cam-lb-chg.new{color:#0F7A5F;background:rgba(31,168,134,.13)}\n@media(max-width:560px){\n  .cam-lb-row{grid-template-columns:24px auto 24px 1fr auto;gap:8px;padding:9px 12px}\n  .cam-lb-count{display:none}\n}\n\n\/* ==========================================================\n   HERO IMPACTO \u2014 titular grande, LIVE pulsante, malla + glow,\n   chips de alcance. Sobrescribe los ajustes \"compact\".\n   ========================================================== *\/\n.vc-hero{\n  padding:46px 24px 40px !important;\n  background:\n    radial-gradient(120% 140% at 85% -10%, var(--navy-light) 0%, var(--navy) 42%, var(--navy-deep) 100%) !important;\n}\n\/* Malla de puntos sutil sobre el navy *\/\n.vc-hero::before{\n  background:\n    radial-gradient(circle at 88% 12%, rgba(243,165,58,.16), transparent 42%),\n    radial-gradient(circle at 4% 100%, rgba(31,168,134,.10), transparent 52%),\n    radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px) !important;\n  background-size:auto, auto, 22px 22px !important;\n  opacity:1 !important;\n}\n.vc-hero::after{\n  height:2px !important;\n  background:linear-gradient(90deg, transparent, var(--orange), transparent) !important;\n  opacity:.6;\n}\n.vc-hero-inner{\n  align-items:center !important;\n  gap:28px !important;\n}\n@media(min-width:880px){\n  .vc-hero-inner{\n    grid-template-columns:minmax(0,1fr) auto !important;\n    align-items:center !important;\n    gap:56px !important;\n  }\n}\n\n\/* Kicker con punto LIVE pulsante *\/\n.vc-kicker{\n  display:inline-flex !important;align-items:center;gap:9px;\n  margin:0 0 13px !important;\n  font-size:.72rem !important;\n  letter-spacing:.18em !important;\n  padding:6px 14px 6px 11px;\n  border:1px solid rgba(243,165,58,.32);\n  border-radius:999px;\n  background:rgba(243,165,58,.08);\n  color:var(--orange);\n}\n.vc-kicker::before{content:none !important}\n.vc-live-dot{\n  position:relative;width:8px;height:8px;border-radius:50%;\n  background:#4ADE80;flex-shrink:0;\n}\n.vc-live-dot::after{\n  content:\"\";position:absolute;inset:0;border-radius:50%;\n  background:#4ADE80;\n}\n@media(prefers-reduced-motion:no-preference){\n  .vc-live-dot::after{animation:vcLivePulse 1.8s ease-out infinite}\n}\n@keyframes vcLivePulse{\n  0%{transform:scale(1);opacity:.7}\n  70%{transform:scale(3);opacity:0}\n  100%{transform:scale(3);opacity:0}\n}\n\n\/* Titular grande con segunda l\u00ednea destacada *\/\n.vc-hero h1{\n  font-size:clamp(1.7rem,3.3vw,2.7rem) !important;\n  font-weight:800 !important;\n  line-height:1 !important;\n  letter-spacing:-.035em !important;\n  margin:0 0 14px !important;\n  white-space:nowrap;\n}\n.vc-hero h1 .hl{\n  position:relative;\n  color:var(--orange);\n  white-space:nowrap;\n}\n.vc-hero h1 .hl::after{\n  content:\"\";position:absolute;left:0;right:0;bottom:.04em;height:.09em;\n  background:linear-gradient(90deg,var(--orange),rgba(243,165,58,.15));\n  border-radius:999px;\n}\n\n.vc-hero-lead{\n  font-size:clamp(.9rem,1vw,1.02rem) !important;\n  color:rgba(255,255,255,.82) !important;\n  max-width:60ch !important;\n  line-height:1.58 !important;\n  margin:0 0 20px !important;\n}\n\n\/* Fila de chips de alcance *\/\n.vc-hero-chips{\n  display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;\n}\n.vc-hero-chips li{\n  display:inline-flex;align-items:center;gap:8px;\n  font-family:var(--font-display);\n  font-size:1.1rem;font-weight:600;\n  color:rgba(255,255,255,.9);\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.14);\n  padding:8px 14px;border-radius:999px;\n  backdrop-filter:blur(6px);\n  transition:transform .15s ease, border-color .15s ease, background .15s ease;\n}\n.vc-hero-chips li:hover{\n  transform:translateY(-2px);\n  border-color:rgba(243,165,58,.4);\n  background:rgba(243,165,58,.1);\n}\n.vc-hero-chips .chip-ico{\n  color:var(--orange);display:inline-flex;flex-shrink:0;\n}\n@media(prefers-reduced-motion:reduce){\n  .vc-hero-chips li:hover{transform:none}\n}\n\n\/* CTA m\u00e1s presente *\/\n.vc-hero-cta{\n  padding:14px 18px 14px 26px !important;\n  font-size:.95rem !important;\n  box-shadow:0 8px 24px rgba(0,0,0,.22);\n}\n.vc-hero-cta .ico{width:30px;height:30px;font-size:.95rem}\n\n@media(max-width:879px){\n  .vc-hero{padding:44px 18px 36px !important;}\n  .vc-hero h1{font-size:clamp(1.7rem,7vw,2.6rem) !important;white-space:normal}\n  .vc-hero h1 .hl{white-space:normal}\n}\n\n\/* ==========================================================\n   RUEDA VERTICAL (estilo cr\u00e9ditos) \u2014 rail derecho del hero\n   ========================================================== *\/\n\/* Rail: pill arriba, tarjeta de la rueda en medio, CTA abajo *\/\n.vc-hero-right{\n  gap:18px !important;\n  align-self:center !important;\n}\n\/* Tarjeta que enmarca la rueda *\/\n.vc-hero-rail-card{\n  width:286px;\n  background:rgba(255,255,255,.045);\n  border:1px solid rgba(255,255,255,.12);\n  border-radius:16px;\n  padding:16px 16px 8px;\n  backdrop-filter:blur(6px);\n}\n.vc-wheel-label{\n  display:block;\n  font-family:var(--font-display);\n  font-size:.85rem;font-weight:700;\n  letter-spacing:.18em;text-transform:uppercase;\n  color:var(--orange);\n  margin:0 0 12px 2px;\n}\n.vc-hero-wheel{\n  position:relative;\n  height:184px;\n  overflow:hidden;\n  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 20%,#000 80%,transparent 100%);\n  mask-image:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);\n}\n.vc-hero-wheel-track{\n  display:flex;flex-direction:column;\n  will-change:transform;\n}\n@media(prefers-reduced-motion:no-preference){\n  .vc-hero-wheel-track{animation:vcWheelScroll 16s linear infinite}\n}\n.vc-hero-wheel:hover .vc-hero-wheel-track{animation-play-state:paused}\n@keyframes vcWheelScroll{\n  from{transform:translateY(0)}\n  to{transform:translateY(-50%)}\n}\n.vc-wheel-chip{\n  display:flex;align-items:center;gap:10px;\n  margin-bottom:10px;\n  font-family:var(--font-display);\n  font-size:1.1rem;font-weight:600;line-height:1.25;\n  color:rgba(255,255,255,.92);\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.14);\n  padding:10px 14px;border-radius:12px;\n  backdrop-filter:blur(6px);\n}\n.vc-wheel-chip .chip-ico{\n  color:var(--orange);display:inline-flex;flex-shrink:0;\n}\n\/* Acciones bajo el texto: bot\u00f3n-logo + badge \"Actualizado\" *\/\n.vc-hero-actions{\n  display:flex;align-items:center;flex-wrap:wrap;\n  gap:16px;margin-top:22px;\n}\n.vc-hero-actions .vc-hero-cta{align-self:auto !important}\n.vc-hero-actions #updated-pill{align-self:auto !important}\n\/* Bot\u00f3n \"Contacta\" \u2014 ocupa el hueco a la derecha de la fila de acciones *\/\n.vc-hero-contact{\n  margin-left:auto;align-self:auto !important;\n  display:inline-flex;align-items:center;gap:9px;\n  padding:11px 22px;border-radius:999px;\n  background:var(--orange);color:var(--navy);\n  font:700 .95rem var(--font-display),sans-serif;letter-spacing:.01em;\n  text-decoration:none;border:1px solid transparent;white-space:nowrap;\n  transition:transform .15s ease,box-shadow .2s ease,background .2s ease;\n  box-shadow:0 6px 18px rgba(243,165,58,.26);\n}\n.vc-hero-contact:hover{transform:translateY(-1px);background:#f7b35a;box-shadow:0 10px 24px rgba(243,165,58,.36)}\n.vc-hero-contact svg{width:17px;height:17px;display:block}\n@media(max-width:879px){.vc-hero-contact{margin-left:0}}\n\n\/* Bot\u00f3n = logotipo completo de PolicyAlert (sin texto) *\/\n.vc-hero-cta{\n  padding:10px 18px !important;\n  gap:10px !important;\n}\n.vc-cta-logo{display:inline-flex;align-items:center;flex-shrink:0}\n.vc-cta-logo svg{height:30px;width:auto;display:block}\n\/* Icono \"abrir en nueva ventana\": badge circular navy \u2192 se\u00f1ala que es un enlace *\/\n.vc-cta-ext{\n  width:26px;height:26px;border-radius:50%;flex-shrink:0;\n  background:var(--navy);color:#fff;\n  display:inline-flex;align-items:center;justify-content:center;\n  transition:transform .15s ease, background .2s ease;\n}\n.vc-cta-ext svg{width:14px;height:14px;display:block}\n.vc-hero-cta:hover .vc-cta-ext{background:var(--navy-light);transform:translate(1px,-1px)}\n\n@media(max-width:879px){\n  .vc-hero-rail-card{width:100%}\n  .vc-hero-wheel{height:148px}\n  .vc-cta-logo svg{height:30px}\n}\n\n<\/style>\n\n<style id=\"rubrika-type\">\n\/* === Sistema tipogr\u00e1fico Rubrika + hero padding (jun 2026) ===\n   T\u00edtulos\/Subt\u00edtulos: Libre Franklin \u00b7 Textos\/Botones: Lato *\/\n.vc-hero{ padding:150px 24px 100px !important; }\n@media(max-width:879px){ .vc-hero{ padding:110px 18px 64px !important; } }\n\/* T\u00edtulos \u2014 Libre Franklin 600 \u00b7 48\/58 *\/\n.vc-hero h1{\n  font-family:\"Libre Franklin\",sans-serif !important;\n  font-weight:600 !important; font-size:48px !important;\n  line-height:58px !important; letter-spacing:-.01em !important;\n  white-space:normal !important;\n}\n@media(max-width:879px){ .vc-hero h1{ font-size:34px !important; line-height:42px !important; } }\n\/* Subt\u00edtulos \u2014 Libre Franklin 600 \u00b7 32\/38 *\/\n.product-name, .product-content-header h3, .faq-section > h2, .seo-block h2{\n  font-family:\"Libre Franklin\",sans-serif !important;\n  font-weight:600 !important; font-size:32px !important;\n  line-height:38px !important; letter-spacing:-.01em !important;\n}\n@media(max-width:879px){\n  .product-name, .product-content-header h3, .faq-section > h2, .seo-block h2{\n    font-size:25px !important; line-height:31px !important;\n  }\n}\n\/* Textos \u2014 Lato 400 \u00b7 16\/24 *\/\n.vc-hero-lead, .product-content-header .sub, .faq-intro,\n.faq-list details p, .pane-cta-text, .seo-item p{\n  font-family:\"Lato\",sans-serif !important;\n  font-weight:400 !important; font-size:16px !important; line-height:24px !important;\n}\n\/* Botones \u2014 Lato 700 \u00b7 15\/15 *\/\n.vc-hero-cta, .vc-hero-contact, .pane-cta, .vc-cmodal .cta,\n.wt-cta-btn, .saber-mas, .ley-follow{\n  font-family:\"Lato\",sans-serif !important;\n  font-weight:700 !important; font-size:15px !important; line-height:15px !important;\n}\n<\/style>\n<\/head>\n<body>\n\n<!-- HERO (estilo Vinces) -->\n<section class=\"vc-hero\" aria-label=\"Cabecera de producto\" data-vc-hero-injected=\"1\">\n  <div class=\"vc-hero-inner\">\n    <div>\n      <span class=\"vc-kicker\">PolicyAlert \u00b7 Regulatory intelligence<\/span>\n      <h1>Anticipate every <span class=\"hl\">regulatory change<\/span><\/h1>\n      <p class=\"vc-hero-lead\"><strong>PolicyAlert<\/strong> combines automated monitoring with the judgement of <strong>Vinces<\/strong> analysts to alert you \u2014and explain\u2014 what truly affects you, with time to act.<\/p>\n      <div class=\"vc-hero-actions\">\n        <a class=\"vc-hero-cta\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Contact Vinces about PolicyAlert\">\n          <span class=\"vc-cta-logo\" aria-hidden=\"true\"><svg viewBox=\"0 0 900 205\" fill=\"#1F2547\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"PolicyAlert\"><path d=\"m6.02,5.63h65.11c31.42,0,52.37,20.95,52.37,52.37s-20.95,53.4-52.37,53.4H31.69v38H6.02V5.63Zm91.81,53.2c0-18.07-11.5-29.58-28.96-29.58H31.69v58.54h37.17c17.46,0,28.96-11.5,28.96-28.96Z\"\/><path d=\"m179.97,45.28c31.83,0,52.99,21.15,52.99,52.78s-21.15,53.19-52.99,53.19-53.19-21.36-53.19-53.19,21.36-52.78,53.19-52.78Zm-.2,83.39c17.25,0,28.55-11.3,28.55-30.4s-11.3-30.4-28.55-30.4-28.34,11.3-28.34,30.4,11.3,30.4,28.34,30.4Z\"\/><path d=\"m242.41,5.63h24.65v143.77h-24.65V5.63Z\"\/><path d=\"m291.7,3.38c7.6,0,13.56,6.16,13.56,13.55,0,7.81-5.96,13.77-13.56,13.77s-13.56-5.96-13.56-13.77c0-7.39,5.96-13.55,13.56-13.55Zm-12.32,43.33h24.65v102.7h-24.65V46.71Z\"\/><path d=\"m365.23,128.66c12.53,0,21.77-5.96,26.08-16.43h25.67c-5.55,23.82-24.65,39.02-51.55,39.02-31.83,0-53.2-21.36-53.2-53.19s21.36-52.78,53.2-52.78c26.7,0,46.01,14.99,51.35,38.41h-25.67c-4.31-10.07-13.56-15.82-25.88-15.82-17.05,0-28.34,11.3-28.34,30.4s11.3,30.4,28.34,30.4Z\"\/><path d=\"m414.93,46.71h25.67l24.65,71.07,24.65-71.07h25.67l-36.35,102.7c-8.42,24.03-14.38,50.73-48.88,50.73v-22.6c13.76,0,24.85-17.04,19.92-30.81l-35.33-100.03Z\"\/><path fill=\"#b13228\" d=\"m585.4,87.79l-16.43-52.17-16.43,52.17-7.4,23.62-11.91,38h-26.91L555.62,5.63h26.9l49.29,143.77h-26.91l-11.91-38-7.6-23.62Z\"\/><path fill=\"#b13228\" d=\"m635.92,5.63h24.65v143.77h-24.65V5.63Z\"\/><path fill=\"#b13228\" d=\"m746.22,117.57h26.91c-6.78,20.74-25.06,33.68-49.91,33.68-31.83,0-53.19-21.36-53.19-53.19s21.36-52.78,53.19-52.78,52.99,21.15,52.99,52.78c0,2.87-.2,5.55-.41,8.21h-80.31c2.67,14.17,12.94,22.39,27.52,22.39,10.27,0,18.28-3.9,23.21-11.09Zm2.67-33.89c-4.31-10.07-13.56-15.82-25.88-15.82s-21.36,5.75-25.67,15.82h51.55Z\"\/><path fill=\"#b13228\" d=\"m836.59,44.86v22.59c-16.43,0-26.29,8.01-26.29,24.44v57.51h-24.65v-57.51c0-31.22,19.72-47.03,50.94-47.03Z\"\/><path fill=\"#b13228\" d=\"m897.79,150.84c-33.68,0-51.55-17.05-51.55-48.68V5.63h24.65v41.08h23.41v22.59h-23.41v32.66c0,18.69,7.6,26.29,26.9,26.29v22.59Z\"\/><g><path d=\"m18.25,187.88c-1.51,1.46-3.81,2.18-6.9,2.18h-5.1v11.07h-3.46v-26.51h8.56c2.99,0,5.27.72,6.83,2.17,1.56,1.44,2.34,3.31,2.34,5.59s-.76,4.04-2.26,5.5Zm-2.64-1.92c.91-.84,1.37-2.03,1.37-3.57,0-3.27-1.88-4.91-5.63-4.91h-5.1v9.74h5.1c1.93,0,3.35-.42,4.26-1.26Z\"\/><path d=\"m32.38,199.67c-2.03-1.16-3.63-2.76-4.81-4.83-1.18-2.07-1.77-4.39-1.77-6.98s.59-4.91,1.77-6.98c1.18-2.07,2.78-3.67,4.81-4.83,2.03-1.16,4.27-1.73,6.73-1.73s4.74.58,6.77,1.73c2.03,1.16,3.63,2.76,4.79,4.81,1.16,2.05,1.75,4.39,1.75,7s-.58,4.95-1.75,7c-1.17,2.05-2.77,3.65-4.79,4.81s-4.28,1.73-6.77,1.73-4.7-.58-6.73-1.73Zm11.73-2.57c1.48-.86,2.65-2.09,3.5-3.69.85-1.6,1.27-3.45,1.27-5.56s-.43-3.99-1.27-5.57c-.85-1.58-2.01-2.81-3.48-3.67s-3.14-1.29-5.02-1.29-3.55.43-5.02,1.29-2.63,2.09-3.48,3.67c-.85,1.59-1.27,3.44-1.27,5.57s.43,3.96,1.27,5.56c.85,1.6,2.02,2.83,3.5,3.69,1.48.86,3.15,1.29,5,1.29s3.52-.43,5-1.29Z\"\/><path d=\"m92.58,174.62l-7.68,26.51h-3.88l-6.16-21.33-6.39,21.33-3.84.04-7.42-26.55h3.69l5.78,22.48,6.39-22.48h3.88l6.09,22.4,5.82-22.4h3.73Z\"\/><path d=\"m102.13,177.44v8.86h9.66v2.85h-9.66v9.13h10.8v2.85h-14.26v-26.55h14.26v2.85h-10.8Z\"\/><path d=\"m134.42,201.13l-6.31-10.84h-4.18v10.84h-3.46v-26.51h8.56c2,0,3.7.34,5.08,1.03,1.38.69,2.42,1.61,3.1,2.78.69,1.17,1.03,2.5,1.03,3.99,0,1.83-.53,3.44-1.58,4.83-1.05,1.39-2.63,2.32-4.74,2.77l6.66,11.11h-4.15Zm-10.5-13.62h5.1c1.88,0,3.28-.46,4.22-1.39.94-.93,1.41-2.16,1.41-3.71s-.46-2.79-1.39-3.65c-.92-.86-2.34-1.29-4.24-1.29h-5.1v10.04Z\"\/><path d=\"m149.33,177.44v8.86h9.66v2.85h-9.66v9.13h10.8v2.85h-14.26v-26.55h14.26v2.85h-10.8Z\"\/><path d=\"m183.43,176.24c2.12,1.08,3.74,2.62,4.87,4.62,1.13,2.01,1.69,4.36,1.69,7.08s-.56,5.07-1.69,7.05c-1.13,1.99-2.75,3.51-4.87,4.56-2.12,1.05-4.62,1.58-7.51,1.58h-8.25v-26.51h8.25c2.89,0,5.39.54,7.51,1.62Zm.32,19.32c1.8-1.81,2.7-4.35,2.7-7.63s-.91-5.87-2.72-7.72c-1.81-1.85-4.42-2.77-7.82-2.77h-4.79v20.84h4.79c3.42,0,6.03-.91,7.84-2.72Z\"\/><path d=\"m225.19,188.66c.8.63,1.43,1.42,1.9,2.35.47.94.7,1.94.7,3,0,1.34-.34,2.56-1.03,3.63-.69,1.08-1.68,1.93-2.99,2.55-1.31.62-2.85.93-4.62.93h-9.89v-26.51h9.51c1.8,0,3.33.3,4.6.9,1.27.59,2.22,1.4,2.85,2.41s.95,2.15.95,3.42c0,1.57-.43,2.87-1.27,3.9-.85,1.03-1.97,1.77-3.37,2.22.96.15,1.85.55,2.64,1.18Zm-12.46-2.59h5.82c1.62,0,2.88-.38,3.77-1.14.89-.76,1.33-1.81,1.33-3.16s-.44-2.4-1.33-3.16c-.89-.76-2.17-1.14-3.84-1.14h-5.74v8.59Zm10.15,10.99c.96-.81,1.44-1.94,1.44-3.39s-.51-2.63-1.52-3.48c-1.01-.85-2.37-1.27-4.07-1.27h-6.01v9.36h6.12c1.72,0,3.07-.4,4.03-1.21Z\"\/><path d=\"m253.43,174.62l-8.63,16.51v10h-3.46v-10l-8.67-16.51h3.84l6.54,13.43,6.54-13.43h3.84Z\"\/><path d=\"m293.7,174.62l-10,26.51h-3.99l-10-26.51h3.69l8.33,22.86,8.33-22.86h3.65Z\"\/><path d=\"m303.25,174.62v26.51h-3.46v-26.51h3.46Z\"\/><path d=\"m332.27,201.13h-3.46l-13.92-21.11v21.11h-3.46v-26.55h3.46l13.92,21.07v-21.07h3.46v26.55Z\"\/><path d=\"m340.9,180.88c1.17-2.07,2.76-3.68,4.77-4.85s4.25-1.75,6.71-1.75c2.89,0,5.41.7,7.57,2.09,2.16,1.4,3.73,3.37,4.72,5.93h-4.15c-.74-1.6-1.79-2.83-3.18-3.69s-3.04-1.29-4.96-1.29-3.51.43-4.98,1.29c-1.47.86-2.62,2.09-3.46,3.67-.84,1.59-1.26,3.44-1.26,5.57s.42,3.95,1.26,5.53c.84,1.59,1.99,2.81,3.46,3.67,1.47.86,3.13,1.29,4.98,1.29s3.58-.43,4.96-1.27c1.38-.85,2.44-2.07,3.18-3.67h4.15c-.99,2.53-2.56,4.49-4.72,5.88-2.15,1.38-4.68,2.07-7.57,2.07-2.46,0-4.7-.58-6.71-1.73-2.01-1.16-3.61-2.76-4.77-4.81s-1.75-4.37-1.75-6.96.58-4.91,1.75-6.98Z\"\/><path d=\"m375.55,177.44v8.86h9.66v2.85h-9.66v9.13h10.8v2.85h-14.26v-26.55h14.26v2.85h-10.8Z\"\/><path d=\"m397.59,200.47c-1.38-.62-2.47-1.48-3.25-2.59-.79-1.1-1.19-2.38-1.22-3.82h3.69c.13,1.24.64,2.29,1.54,3.13.9.85,2.21,1.27,3.94,1.27s2.95-.41,3.9-1.23,1.43-1.88,1.43-3.18c0-1.01-.28-1.84-.84-2.47-.56-.64-1.26-1.11-2.09-1.44-.84-.33-1.96-.68-3.38-1.07-1.75-.46-3.15-.91-4.2-1.37-1.05-.46-1.95-1.17-2.7-2.15-.75-.98-1.12-2.29-1.12-3.94,0-1.44.37-2.73,1.1-3.84.74-1.11,1.77-1.98,3.1-2.59,1.33-.61,2.86-.91,4.58-.91,2.48,0,4.52.62,6.1,1.86,1.58,1.24,2.48,2.89,2.68,4.94h-3.8c-.13-1.01-.66-1.91-1.6-2.68s-2.18-1.16-3.73-1.16c-1.44,0-2.62.37-3.54,1.12-.91.75-1.37,1.79-1.37,3.13,0,.97.27,1.75.82,2.36s1.22,1.07,2.02,1.39c.8.32,1.92.68,3.37,1.08,1.75.48,3.16.96,4.22,1.43,1.07.47,1.98,1.19,2.74,2.17.76.97,1.14,2.3,1.14,3.97,0,1.29-.34,2.51-1.03,3.65-.68,1.14-1.7,2.07-3.04,2.77-1.34.71-2.93,1.07-4.75,1.07s-3.31-.31-4.7-.93Z\"\/><\/g><\/svg><\/span>\n          <span class=\"vc-cta-ext\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\/><polyline points=\"15 3 21 3 21 9\"\/><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"\/><\/svg><\/span>\n        <\/a>\n        <span class=\"updated\" id=\"updated-pill\" aria-live=\"polite\" style=\"background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.85)\">\n          <span class=\"dot\"><\/span>\n          <span id=\"updated-text\">Loading data\u2026<\/span>\n        <\/span>\n        <a class=\"vc-hero-contact\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Contact Vinces\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n          <span>Contact<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n    <div class=\"vc-hero-rail-card\" id=\"vc-hero-wheel\" role=\"group\" aria-label=\"What PolicyAlert covers\">\n      <span class=\"vc-wheel-label\">What we monitor<\/span>\n      <div class=\"vc-hero-wheel\">\n        <div class=\"vc-hero-wheel-track\">\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21h18M5 21V10m4 11V10m6 11V10m4 11V10M3 10l9-5 9 5\"\/><\/svg><\/span>Congreso, Senado and regions<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><path d=\"M14 2v6h6M8 13h8M8 17h8\"\/><\/svg><\/span>Public consultations &amp; hearings<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 2 3 14h9l-1 8 10-12h-9z\"\/><\/svg><\/span>Votes &amp; amendments<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"m17 11 2 2 4-4\"\/><\/svg><\/span>Expert analysis, not just AI<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\/><\/svg><\/span>Appointments &amp; dismissals<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/span>Influential stakeholders<\/span>\n          <span class=\"vc-wheel-chip\"><span class=\"chip-ico\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/span>Government agreements &amp; agenda<\/span>\n          <!-- duplicado para loop infinito sin salto -->\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21h18M5 21V10m4 11V10m6 11V10m4 11V10M3 10l9-5 9 5\"\/><\/svg><\/span>Congreso, Senado and regions<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><path d=\"M14 2v6h6M8 13h8M8 17h8\"\/><\/svg><\/span>Public consultations &amp; hearings<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 2 3 14h9l-1 8 10-12h-9z\"\/><\/svg><\/span>Votes &amp; amendments<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"m17 11 2 2 4-4\"\/><\/svg><\/span>Expert analysis, not just AI<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\/><\/svg><\/span>Appointments &amp; dismissals<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/span>Influential stakeholders<\/span>\n          <span class=\"vc-wheel-chip\" aria-hidden=\"true\"><span class=\"chip-ico\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/span>Government agreements &amp; agenda<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<div class=\"wrap\">\n\n  \n\n  <noscript>\n    <div class=\"nojs\">\n      This page uses JavaScript to show interactive charts. If you have it disabled, you can view the raw data at\n      <a href=\"\/api\/dashboard-publico\/policyalert\/\">\/api\/dashboard-publico\/policyalert\/<\/a>.\n    <\/div>\n  <\/noscript>\n\n  <!-- =========================================================\n       PRODUCTO: POLICYALERT\n       Datos: leyes en tramitaci\u00f3n, KPIs, temas activos semana\n       ========================================================= -->\n  <section class=\"product-section\" aria-labelledby=\"pa-title\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Dataset\">\n    <div class=\"product-grid reverse\">\n      <div class=\"product-content\" data-carousel=\"\">\n        <nav class=\"car-tabs\" role=\"tablist\" aria-label=\"Vistas PolicyAlert\">\n          <button type=\"button\" class=\"car-tab active\" data-pane=\"pane-temas-act\" role=\"tab\" aria-selected=\"true\">Active topics this week<\/button>\n          <button type=\"button\" class=\"car-tab\" data-pane=\"pane-kpis\" role=\"tab\" aria-selected=\"false\">Regulatory activity<\/button>\n          <button type=\"button\" class=\"car-tab\" data-pane=\"pane-leyes\" role=\"tab\" aria-selected=\"false\">Bills in progress<\/button>\n          <button type=\"button\" class=\"car-tab\" data-pane=\"pane-faq\" role=\"tab\" aria-selected=\"false\">FAQs<\/button>\n        <\/nav>\n\n        <div class=\"car-pane active\" id=\"pane-temas-act\" role=\"tabpanel\">\n          <div class=\"product-content-header temas-head\">\n            <div class=\"temas-head-main\">\n              <h3 id=\"temas-act-title\">The week\u2019s focus<\/h3>\n              <p class=\"sub\">Daily evolution of detected publications by sector.<\/p>\n            <\/div>\n            <a class=\"pane-cta pane-cta--accent temas-head-cta-btn\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\">Identify the regulation<br> that affects me<\/a>\n          <\/div>\n          <div class=\"temas-chart-area\">\n            <div class=\"temas-act-wrap\">\n              <canvas id=\"temasActChart\" role=\"img\" aria-label=\"Evoluci\u00f3n diaria de temas activos\" style=\"box-sizing: border-box; display: block; height: 340px; width: 826px;\" width=\"826\" height=\"340\"><\/canvas>\n            <\/div>\n          <\/div>\n          <div class=\"temas-act-summary\" id=\"temas-act-summary\">\n        <span class=\"ta-actions\">\n          <a data-action=\"all\">Show all<\/a>\n          <span>\u00b7<\/span>\n          <a data-action=\"top3\">Top 3 only<\/a>\n        <\/span>\n      <\/div>\n          <div class=\"temas-act-legend\" id=\"temas-act-legend\" aria-label=\"Selecciona \u00e1mbitos para mostrar u ocultar\"><span class=\"ta-tag \" data-idx=\"0\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#FDB554\"><\/span>\n        Alimentaci\u00f3n\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7318<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"1\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#c0392b\"><\/span>\n        Salud\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7268<\/span>\n      <\/span><span class=\"ta-tag\" data-idx=\"2\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#2e7d4a\"><\/span>\n        Medio ambiente\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7265<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"3\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#8a6b4a\"><\/span>\n        Real Estate\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7156<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"4\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#314068\"><\/span>\n        Energ\u00eda\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7147<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"5\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#16a34a\"><\/span>\n        Movilidad sostenible\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7132<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"6\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#6B7280\"><\/span>\n        Industria\n        <span style=\"color:var(--muted);font-weight:600\">\u00b796<\/span>\n      <\/span><span class=\"ta-tag \" data-idx=\"7\" role=\"button\" aria-pressed=\"true\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:#7889b0\"><\/span>\n        Educaci\u00f3n\n        <span style=\"color:var(--muted);font-weight:600\">\u00b792<\/span>\n      <\/span>\n    <\/div>\n          <div class=\"cam-lb\" id=\"camaras-leaderboard\" hidden>\n            <p class=\"cam-lb-bridge\"><span class=\"cam-lb-dot\" id=\"cam-lb-dot\" aria-hidden=\"true\"><\/span>The week\u2019s leading topic, by chamber<\/p>\n            <div class=\"cam-lb-head\">\n              <h4 class=\"cam-lb-title\">10 most active chambers<\/h4>\n              <span class=\"cam-lb-sub\" id=\"cam-lb-sub\"><\/span>\n            <\/div>\n            <ol class=\"cam-lb-list\" id=\"cam-lb-list\"><\/ol>\n            <div class=\"cam-lb-more\" id=\"cam-lb-more\" hidden>\u00b7\u00b7\u00b7<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"car-pane\" id=\"pane-kpis\" role=\"tabpanel\">\n          <div class=\"product-content-header\">\n            <div>\n              <h3>The regulatory pulse, live<\/h3>\n              <p class=\"sub\">Key indicators of regulatory activity: open public consultations and hearings, initiatives on the move and the week\u2019s publications.<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"kpi-grid\" id=\"kpi-grid\">\n            <div class=\"kpi-card\">\n              <p class=\"kpi-label\">Open public consultations<\/p>\n              <p class=\"kpi-value\" data-kpi=\"consultas\">166<\/p>\n              <p class=\"kpi-sub\" data-kpi=\"consultas-sub\">11 new in the last 24h<\/p>\n            <\/div>\n            <div class=\"kpi-card accent\">\n              <p class=\"kpi-label\">Open public hearings<\/p>\n              <p class=\"kpi-value\" data-kpi=\"audiencias\">183<\/p>\n              <p class=\"kpi-sub\" data-kpi=\"audiencias-sub\">8 new in the last 24h<\/p>\n            <\/div>\n            <div class=\"kpi-card green\">\n              <p class=\"kpi-label\">Initiative advances (24h)<\/p>\n              <p class=\"kpi-value\" data-kpi=\"iniciativas\">531<\/p>\n              <p class=\"kpi-sub\">Initiatives with new movement in their passage.<\/p>\n            <\/div>\n            <div class=\"kpi-card purple\">\n              <p class=\"kpi-label\">Government agreements<\/p>\n              <p class=\"kpi-value\" data-kpi=\"acuerdos\">1048<\/p>\n              <p class=\"kpi-sub\" data-kpi=\"acuerdos-sub\">Since 11 May 2026 to date<\/p>\n            <\/div>\n          <\/div>  \n          <div class=\"pane-cta-row\">\n            <p class=\"pane-cta-text\">\n              <strong>Want alerts when a consultation or hearing opens in your sector?<\/strong>\n              PolicyAlert notifies you the day it is published, with deadlines, forms and direct links.\n            <\/p>\n            <a class=\"pane-cta pane-cta--accent\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\">Get regulatory alerts<\/a>\n          <\/div>\n\n          <div class=\"pane-seo\">\n<article class=\"seo-item\">\n        <h3>Public consultations and hearings in progress<\/h3>\n        <table class=\"seo-table\" id=\"seo-table-consultas\">\n          <caption>Preliminary public consultations and public hearings currently open<\/caption>\n          <thead>\n            <tr>\n              <th scope=\"col\">Type<\/th>\n              <th scope=\"col\">Title<\/th>\n              <th scope=\"col\">Regulation type<\/th>\n              <th scope=\"col\">Start<\/th>\n              <th scope=\"col\">Deadline<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/transparencia.carm.es\/web\/transparencia\/-\/orden-ayudas-compromisos-medioambientales-y-climatic-1\" rel=\"noopener\" target=\"_blank\">Proyecto de orden para regular las ayudas correspondientes a los compromisos medioambientales y clim\u00e1ticos de las intervenciones FEADER PEPAC 2023-2027<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2027-11-19\">19 de noviembre de 2027<\/time><\/td>\n            <td><time datetime=\"2027-11-27\">27 de noviembre de 2027<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/676\" rel=\"noopener\" target=\"_blank\">**CONSULTA P\u00daBLICA PR\u00c8VIA SOBRE EL PROJECTE D\u2019ORDE DE LA CONSELLERIA D\u2019AGRICULTURA, AIGUA, RAMADERIA I PESCA, PER LA QUAL S\u2019ESTABLIXEN MESURES DE PROTECCI\u00d3 I CONTROL EN PART DE LA ZONA PROTEGIDA D\u2019INTER\u00c9S PESQUER ZONA 6 (PUNTA DE L\u2019ESCALETA- CAP DE L\u2019HORTA) COMPRESA ENTRE LA VILA JOIOSA I EL CAMPELL<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-06-30\">30 de junio de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-30\">30 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/677\" rel=\"noopener\" target=\"_blank\">CONSULTA P\u00daBLICA PR\u00c8VIA SOBRE EL PROJECTE D\u2019ORDE DE LA CONSELLERIA D\u2019AGRICUL-TURA, AIGUA, RAMADERIA I PESCA, PER LA QUAL S\u2019ESTABLIXEN MESURES DE PROTECCI\u00d3 I CONTROL EN PART DE LA ZONA PROTEGIDA D\u2019INTER\u00c9S PESQUER ZONA 5, COMPRESA ENTRE EL CAP DE SANT ANTONI I EL CAP D\u2019OR, ELS PENYA-SEGATS DE LA MARIN<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-06-30\">30 de junio de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-30\">30 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/fabrica-de-papel-ponte-redonda-sa\" rel=\"noopener\" target=\"_blank\">F\u00e1brica de Papel Ponte Redonda, S.A.<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-11\">11 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/asturiasparticipa.asturias.es\/-\/decreto-por-el-que-se-establece-un-r%C3%A9gimen-especial-para-los-fraccionamientos-de-deudas-derivadas-del-reintegro-del-salario-social-b%C3%A1sico.?classPK=449026\" rel=\"noopener\" target=\"_blank\">Decreto por el que se establece un r\u00e9gimen especial para los fraccionamientos de deudas derivadas del reintegro del Salario Social B\u00e1sico<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-26\">26 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.juntadeandalucia.es\/servicios\/participacion\/todos-documentos\/detalle\/661312.html\" rel=\"noopener\" target=\"_blank\">Resoluci\u00f3n de la Secretar\u00eda General T\u00e9cnica por la que se acuerda someter a informaci\u00f3n p\u00fablica el Proyecto de Orden por la que se modifica la Orden de 10 de julio de 2024, por la que se aprueban las bases reguladoras para la concesi\u00f3n de subvenciones en r\u00e9gimen de concurrencia competitiva destinada<\/a><\/td>\n            <td>Resoluci\u00f3n<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-21\">21 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/7939\" rel=\"noopener\" target=\"_blank\">Solicitud de autorizaci\u00f3n para rehabilitaci\u00f3n, ampliaci\u00f3n y cambio de uso de caba\u00f1a pasiega a vivienda unifamiliar en El Cierro, en el municipio de Selaya. Expediente 317020<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-03\">03 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.euskadi.eus\/anuncio-administrativo\/aai00227_anuncio-del-director-administracion-ambiental-que-se-somete-informacion-publica-expediente-revision-autorizacion-ambiental-integrada-otorgada-tremefil-izaguirre-s-a\/web01-tramite\/es\/\" rel=\"noopener\" target=\"_blank\">AAI00227_ANUNCIO del director de Administraci\u00f3n Ambiental, por el que se somete a informaci\u00f3n p\u00fablica el expediente de revisi\u00f3n de autorizaci\u00f3n ambiental integrada otorgada a Tremefil Izaguirre, S.A.<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-09\">09 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.euskadi.eus\/anuncio-administrativo\/aai00485_anuncio-del-director-administracion-ambiental-que-se-somete-informacion-publica-proyecto-tecnico-y-estudio-impacto-ambiental-presentado-empresa-limpiezas-industriales-morga-s-l-actividad-tratamiento-aguas-residuales-termino-municipal-lemoa-bizka\/web01-tramite\/es\/\" rel=\"noopener\" target=\"_blank\">AAI00485_ANUNCIO del director de Administraci\u00f3n Ambiental, por el que se somete a informaci\u00f3n p\u00fablica el proyecto t\u00e9cnico y el estudio de impacto ambiental presentado por la empresa Limpiezas Industriales Morga, S.L., para la actividad tratamiento de aguas residuales, en el t\u00e9rmino municipal de Lemo<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-13\">13 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-23\">23 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/plano-de-acao-para-a-conservacao-do-lince-iberico-lynx-pardinus-em-portugal-paclip-2026-2030\" rel=\"noopener\" target=\"_blank\">Plano de A\u00e7\u00e3o para a Conserva\u00e7\u00e3o do lince-ib\u00e9rico (Lynx pardinus) em Portugal (PACLIP 2026-2030)<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-12\">12 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/trougal\" rel=\"noopener\" target=\"_blank\">Trougal<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-11\">11 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/ec.europa.eu\/info\/law\/better-regulation\/have-your-say\/initiatives\/18072-Directivas-de-Aves-y-Habitats-prueba-de-resistencia_es\" rel=\"noopener\" target=\"_blank\">Directivas de Aves y H\u00e1bitats: prueba de resistencia<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-08-04\">04 de agosto de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/transparencia.xunta.gal\/tema\/informacion-de-relevancia-xuridica\/consulta-publica-previa\/consultas-abertas\/-\/cpp\/0277\/lei-saude-publica-galicia\" rel=\"noopener\" target=\"_blank\">Ley de Salud P\u00fablica de Galicia<\/a><\/td>\n            <td>Anteproyecto de Ley<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-26\">26 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/consulta-publica-do-pmac-de-odemira\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica do PMAC de Odemira<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-24\">24 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/pda-unidade-industrial-de-producao-de-saf-e-derivados-de-baixo-carbono\" rel=\"noopener\" target=\"_blank\">PDA - Unidade Industrial de Produ\u00e7\u00e3o de SAF e Derivados de Baixo Carbono<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-01\">01 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.euskadi.eus\/anuncio-administrativo\/consulta-publica-previa-del-decreto-que-regula-cartera-servicios-red-vasca-empleo\/web01-tramite\/es\/\" rel=\"noopener\" target=\"_blank\">Informaci\u00f3n p\u00fablica- Decreto de la cartera de servicios de la Red Vasca de Empleo y sus instrumentos comunes<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-12\">12 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/2346\" rel=\"noopener\" target=\"_blank\">Ley de Cantabria de lucha contra el despoblamiento y frente al reto demogr\u00e1fico<\/a><\/td>\n            <td>Anteproyecto de Ley<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-26\">26 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/7938\" rel=\"noopener\" target=\"_blank\">Solicitud de autorizaci\u00f3n para legalizaci\u00f3n de caseta de aperos en P\u00e1manes, en el municipio de Li\u00e9rganes. Expediente 316285<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-02\">02 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.juntadeandalucia.es\/servicios\/participacion\/todos-documentos\/detalle\/660955.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Decreto por el que se determinan los \u00f3rganos competentes para la imposici\u00f3n de sanciones por infracciones en el orden social<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-12\">12 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-01\">01 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/digital.gob.es\/ministerio\/participacion-proyectos-normativos\/consulta-publica-previa\/telecomunicaciones-infraestructuras-digitales\/2026-05-11\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica del borrador de resoluci\u00f3n de la secretar\u00eda de estado de telecomunicaciones e infraestructuras digitales por la que se desarrolla el apartado s\u00e9ptimo de la resoluci\u00f3n de 12 de julio de 2019 de la secretar\u00eda de estado para el avance digital, por la que se establece el procedimiento a<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-05\">05 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/ec.europa.eu\/info\/law\/better-regulation\/have-your-say\/initiatives\/17212-Estrategia-de-la-UE-de-lucha-contra-la-corrupcion-un-planteamiento-integral-para-luchar-contra-la-corrupcion-dentro-y-fuera-de-la-UE_es\" rel=\"noopener\" target=\"_blank\">Estrategia de la UE de lucha contra la corrupci\u00f3n: un planteamiento integral para luchar contra la corrupci\u00f3n dentro y fuera de la UE<\/a><\/td>\n            <td>Planes<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-07-06\">06 de julio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/ec.europa.eu\/info\/law\/better-regulation\/have-your-say\/initiatives\/15873-Revision-de-los-valores-de-los-parametros-de-referencia-para-la-asignacion-gratuita-de-derechos-de-emision-2026-2030-_es\" rel=\"noopener\" target=\"_blank\">Revisi\u00f3n de los valores de los par\u00e1metros de referencia para la asignaci\u00f3n gratuita de derechos de emisi\u00f3n (2026-2030)<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-08\">08 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.navarra.es\/processes\/orden-foral-impuesto-especial-electricidad-modelo-560\" rel=\"noopener\" target=\"_blank\">Proyecto de Orden Foral XXX\/2026, de XX de XXXXXXXX, del consejero de Econom\u00eda y Hacienda, por la que se modifica la Orden Foral 41\/2015, de 16 de febrero, de la Consejera de Econom\u00eda, Hacienda, Industria y Empleo, por la que se aprueba el modelo 560 \"Impuesto Especial sobre la Electricidad. Autoliq<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.mivau.gob.es\/el-ministerio\/buscador-participacion-publica\/proyecto-de-orden-por-la-que-se-establecen-las-bases-reguladoras-para-la-concesion-de-subvenciones-publicas-para-el-impulso-de-la-industrializacion-de-la\" rel=\"noopener\" target=\"_blank\">PROYECTO DE ORDEN POR LA QUE SE ESTABLECEN LAS BASES REGULADORAS PARA LA CONCESI\u00d3N DE SUBVENCIONES P\u00daBLICAS POR EL MINISTERIO DE VIVIENDA Y AGENDA URBANA EN R\u00c9GIMEN DE CONCURRENCIA COMPETITIVA QUE TENGAN POR OBJETO LA CONCESI\u00d3N DE AYUDAS PARA EL IMPULSO DE LA INDUSTRIALIZACI\u00d3N DE LA VIVIENDA<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-25\">25 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/7937\" rel=\"noopener\" target=\"_blank\">Orden por la que se modifica la Orden por la que se modifica la Orden SAN\/27\/2007, de 8 de mayo, por la que se establece el r\u00e9gimen de ayudas para pacientes de la Comunidad Aut\u00f3noma de Cantabria y, en su caso, acompa\u00f1antes, por gastos de desplazamiento, manutenci\u00f3n y alojamiento con fines asistencia<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-22\">22 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.navarra.es\/processes\/proyecto-decreto-foral-ayudas-huerfanas-violencia-mujeres\" rel=\"noopener\" target=\"_blank\">Proyecto de Decreto Foral por el que se establece el r\u00e9gimen de ayudas econ\u00f3micas para hijas e hijos hu\u00e9rfanos de v\u00edctimas mortales de violencia contra las mujeres en la Comunidad Foral De Navarra<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.gencat.cat\/processes\/projecte-decret-lsc\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica pr\u00e8via a l\u2019elaboraci\u00f3 d'un Projecte de decret de la llengua de signes catalana.<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-07-11\">11 de julio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"http:\/\/www.borm.es\/borm\/vista\/busqueda\/ver_anuncio_html.jsf?fecha=11052026&amp;numero=2066&amp;origen=sum\" rel=\"noopener\" target=\"_blank\">Proyecto de decreto por el que se regula la eficiencia y uso compartido de sistemas de monitorizaci\u00f3n ambiental en la Regi\u00f3n de Murcia<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"http:\/\/www.borm.es\/borm\/vista\/busqueda\/ver_anuncio_html.jsf?fecha=11052026&amp;numero=2064&amp;origen=sum\" rel=\"noopener\" target=\"_blank\">Proyecto de ejecuci\u00f3n E\/S Asomada L\/Fausita-San Ant\u00f3n SC 132 kV, situado en el t\u00e9rmino municipal de Cartagena, as\u00ed como relaci\u00f3n de bienes y derechos afectados a efectos del reconocimiento, en concreto, de la utilidad p\u00fablica<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-22\">22 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.dsca.gob.es\/sites\/default\/files\/files\/consulta_publica\/TIP_N-26-044-DCA.pdf\" rel=\"noopener\" target=\"_blank\">Proyecto de Real Decreto por el que se establecen la Tarjeta Europea de Discapacidad y la Tarjeta Europea de Estacionamiento para personas con discapacidad.<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.gencat.cat\/processes\/ordreSISCAT\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica pr\u00e8via relativa a l\u2019elaboraci\u00f3 d\u2019un projecte d\u2019Ordre per la qual s'actualitza l'annex del Decret 196\/2010, de 14 de desembre, del sistema sanitari integral d'utilitzaci\u00f3 p\u00fablica de Catalunya (SISCAT)<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-08\">08 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/7936\" rel=\"noopener\" target=\"_blank\">Solicitud de autorizaci\u00f3n para construcci\u00f3n de vivienda unifamiliar en El Vi\u00f1ero, municipio de Val de San Vicente. Expediente 316995<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-01\">01 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participacion.cantabria.es\/normativa\/-\/normativas\/ver\/7935\" rel=\"noopener\" target=\"_blank\">Expediente de expropiaci\u00f3n forzosa incoado para la ejecuci\u00f3n de la modificaci\u00f3n n\u00famero 1 del Proyecto de mejora de trazado y ampliaci\u00f3n de plataforma carretera CA-322 de Mogro a Mar, P.K. 0,000 al P.K. 5,700. Tramo: Mogro-Mar<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-11\">11 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-01\">01 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"http:\/\/www.borm.es\/borm\/vista\/busqueda\/ver_anuncio_html.jsf?fecha=09052026&amp;numero=2031&amp;origen=sum\" rel=\"noopener\" target=\"_blank\">Proyecto de la Orden del Consejero de Presidencia, Portavoc\u00eda, Acci\u00f3n Exterior y Emergencias por la que se aprueban las bases reguladoras de subvenciones, en r\u00e9gimen de concurrencia competitiva dirigidas a las Escuelas Taurinas de la Comunidad Aut\u00f3noma de la Regi\u00f3n de Murcia<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-09\">09 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/611\" rel=\"noopener\" target=\"_blank\">PROYECTO DE DECRETO PARA LA CREACI\u00d3N DEL OBSERVATORIO VALENCIANO DE LAS FAMILIAS<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-09\">09 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-23\">23 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/700\" rel=\"noopener\" target=\"_blank\">Proyecto de Orden de la Conselleria de Agricultura, Agua, Ganader\u00eda y Pesca, por la que se establecen las bases reguladoras para la concesi\u00f3n de ayudas al emprendimiento en el sector primario de mujeres residentes en municipios rurales de la Comunitat Valenciana<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-09\">09 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-18\">18 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/ec.europa.eu\/info\/law\/better-regulation\/have-your-say\/initiatives\/14225-Articulos-de-puericultura-restriccion-de-sustancias-clasificadas-como-carcinogenas-mutagenas-o-toxicas-para-la-reproduccion-CMR-_es\" rel=\"noopener\" target=\"_blank\">Art\u00edculos de puericultura: restricci\u00f3n de sustancias clasificadas como carcin\u00f3genas, mut\u00e1genas o t\u00f3xicas para la reproducci\u00f3n (CMR)<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-05\">05 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.cnmc.es\/consultas-publicas\/energia\/propuesta-modificacion-prodecimientos-pos07-4-y-pos14-4\" rel=\"noopener\" target=\"_blank\">Tr\u00e1mite audiencia - Propuesta resoluci\u00f3n modificaci\u00f3n POs el\u00e9ctricos PO7.4 y PO14.4<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-25\">25 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.mjusticia.gob.es\/es\/AreaTematica\/ActividadLegislativa\/Documents\/consulta-publica-reglamento-registro-civil.pdf\" rel=\"noopener\" target=\"_blank\">Real Decreto por el que se aprueba el Reglamento del Registro Civil.<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-23\">23 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.comunidad.madrid\/transparencia\/proyecto-decreto-del-consejo-gobierno-que-se-aprueba-reglamento-inspeccion-servicios-sociales\" rel=\"noopener\" target=\"_blank\">Proyecto de Decreto del Consejo de Gobierno por el que se aprueba el Reglamento de Inspecci\u00f3n de Servicios Sociales de la Comunidad de Madrid<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-28\">28 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.navarra.es\/processes\/orden-foral-documentos-notariales-electronicos\" rel=\"noopener\" target=\"_blank\">Proyecto de ORDEN FORAL XX\/2026, de XX de XXXX, del consejero de Econom\u00eda y Hacienda, por la que se aprueban los documentos notariales electr\u00f3nicos timbrados de la Comunidad Foral de Navarra<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-08\">08 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.educacionyfp.gob.es\/servicios-al-ciudadano\/informacion-publica\/audiencia-informacion-publica\/abiertos\/2026\/po-regula-inspeccion.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Orden por la que se regula la organizaci\u00f3n y funcionamiento de la inspecci\u00f3n educativa en el \u00e1mbito de gesti\u00f3n del Ministerio de Educaci\u00f3n, Formaci\u00f3n Profesional y Deportes<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.educacionyfp.gob.es\/servicios-al-ciudadano\/informacion-publica\/audiencia-informacion-publica\/abiertos\/2026\/prd-tecnico-apyd-alfareria.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Real Decreto por el que se establece el t\u00edtulo de T\u00e9cnico o T\u00e9cnica de Artes Pl\u00e1sticas y Dise\u00f1o en Alfarer\u00eda, perteneciente a la familia profesional art\u00edstica de Cer\u00e1mica art\u00edstica, y se fijan sus ense\u00f1anzas m\u00ednimas<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.transportes.gob.es\/el-ministerio\/buscador-participacion-publica\/real-decreto-por-el-que-se-regula-la-concesion-directa-en-el-ano-2026-de-una-subvencion-la-asociacion-de-familias-de-alumnos-y-otra-la-asociacion-aula\" rel=\"noopener\" target=\"_blank\">Informaci\u00f3n p\u00fablica sobre el proyecto de Real Decreto por el que se regula la concesi\u00f3n directa en el a\u00f1o 2026 de una subvenci\u00f3n a la \"Asociaci\u00f3n de familias de alumnos\" de la escuela de educaci\u00f3n infantil del Ministerio de Transportes y Movilidad Sostenible y otra a la \"Asociaci\u00f3n Aula Cultural de <\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-04\">04 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"http:\/\/www.borm.es\/borm\/vista\/busqueda\/ver_anuncio_html.jsf?fecha=08052026&amp;numero=2013&amp;origen=sum\" rel=\"noopener\" target=\"_blank\">Tr\u00e1mite de audiencia vecinal para la autorizaci\u00f3n de cambio de ubicaci\u00f3n de la sala de bingo denominada SALA DE BINGO HOTEL ALFONSO XIII, a un nuevo emplazamiento, sito en calle Carlos III, n.\u00ba 47, bajo dcha., CP 30.203 Cartagena<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-06\">06 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"http:\/\/www.borm.es\/borm\/vista\/busqueda\/ver_anuncio_html.jsf?fecha=08052026&amp;numero=2014&amp;origen=sum\" rel=\"noopener\" target=\"_blank\">Pliego de condiciones que regir\u00e1 en el expediente de ocupaci\u00f3n de terrenos en la v\u00eda pecuaria denominada \"Vereda del Puntarr\u00f3n\", clasificada entre las del t\u00e9rmino municipal de Mazarr\u00f3n, para Lsbt 400230v paseo Alcalde Mariano Y\u00fafera Guirao-Pto Mazarr\u00f3n, solicitada por I-DE redes el\u00e9ctricas inteligen<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-10\">10 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.euskadi.eus\/dpmt-terraza-hotel-boutique-bahia-de-plentzia\/web01-tramite\/es\/\" rel=\"noopener\" target=\"_blank\">Anuncio del director de Puertos, Asuntos Mar\u00edtimos y Litoral, por el que se somete a informaci\u00f3n p\u00fablica la solicitud de Adrian Jon S. L. para la ocupaci\u00f3n de bienes de dominio p\u00fablico mar\u00edtimo-terrestre con destino a la instalaci\u00f3n de una terraza desmontable adosada al Hotel Boutique Bah\u00eda de Plent<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-04\">04 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.gencat.cat\/processes\/decret-dpd\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica pr\u00e8via - Regulaci\u00f3 del Delegat de Protecci\u00f3 de Dades de la Generalitat de Catalunya<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-09\">09 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.educacionyfp.gob.es\/servicios-al-ciudadano\/informacion-publica\/audiencia-informacion-publica\/abiertos\/2026\/rd-ordenacion-eeaa-superiores.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Real Decreto por el que se establece la ordenaci\u00f3n de las ense\u00f1anzas art\u00edsticas superiores y los procedimientos de garant\u00eda de su calidad<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.educacionyfp.gob.es\/servicios-al-ciudadano\/informacion-publica\/audiencia-informacion-publica\/abiertos\/2026\/prd-ts-artesplasticadiseno.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Real Decreto por el que se establece el t\u00edtulo de T\u00e9cnico o T\u00e9cnica Superior de Artes Pl\u00e1sticas y Dise\u00f1o en Ilustraci\u00f3n, perteneciente a la familia profesional art\u00edstica de Comunicaci\u00f3n gr\u00e1fica, interactiva y audiovisual, y se fijan sus ense\u00f1anzas m\u00ednimas<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.educacionyfp.gob.es\/servicios-al-ciudadano\/informacion-publica\/audiencia-informacion-publica\/abiertos\/2026\/prd-tecnico-sup-apyd-grabado.html\" rel=\"noopener\" target=\"_blank\">Proyecto de Real Decreto por el que se establece el t\u00edtulo de T\u00e9cnico o T\u00e9cnica Superior de Artes Pl\u00e1sticas y Dise\u00f1o en Grabado y t\u00e9cnicas de estampaci\u00f3n, perteneciente a la familia profesional art\u00edstica de Artes del libro, y se fijan sus ense\u00f1anzas m\u00ednimas<\/a><\/td>\n            <td>Decreto<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/706\" rel=\"noopener\" target=\"_blank\">PLAN INTEGRAL PARA EL RETO DEMOGR\u00c1FICO DE LA COMUNITAT VALENCIANA  2026-2030<\/a><\/td>\n            <td>Planes<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-22\">22 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Audiencia p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/web.larioja.org\/participacion?n=part-informacion-publica-de-la-propuesta-de-modificacion-de-la-orden-ste-52-2022-de-10-de-agosto-d1\" rel=\"noopener\" target=\"_blank\">Informaci\u00f3n p\u00fablica: Modificaci\u00f3n de la Orden STE\/52\/2022 de ayudas para la promoci\u00f3n de la bicicleta como medio de transporte<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-08\">08 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-28\">28 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/transparencia.carm.es\/web\/transparencia\/-\/orden-placas-identificativas-empresas-turismo-y-alojamientos-turisticos\" rel=\"noopener\" target=\"_blank\">Proyecto de orden para determinar las placas identificativas de las empresas de turismo activo y alojamientos tur\u00edsticos diversos<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-27\">27 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/transparencia.carm.es\/web\/transparencia\/-\/orden-placas-identificativas-empresas-turismo-y-alojamientos-turisticos\" rel=\"noopener\" target=\"_blank\">Proyecto de orden para determinar las placas identificativas de las empresas de turismo activo y alojamientos tur\u00edsticos diversos<\/a><\/td>\n            <td>Orden<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-27\">27 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/participa.pt\/pt\/consulta\/ampliacao-do-terminal-de-graneis-liquidos-do-barreiro\" rel=\"noopener\" target=\"_blank\">Amplia\u00e7\u00e3o do terminal de gran\u00e9is l\u00edquidos do Barreiro<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-06-19\">19 de junio de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.cnmc.es\/consultas-publicas\/competencia\/borrador-actualizacion-guia-compliance\" rel=\"noopener\" target=\"_blank\">Borrador de actualizaci\u00f3n de la Gu\u00eda de Compliance de la CNMC<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-17\">17 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.miteco.gob.es\/es\/energia\/participacion\/2026\/detalle-participacion-publica-k-824.html\" rel=\"noopener\" target=\"_blank\">Consulta p\u00fablica previa sobre las bases reguladoras para la concesi\u00f3n de ayudas a oficinas de transformaci\u00f3n comunitaria para la promoci\u00f3n y dinamizaci\u00f3n de comunidades energ\u00e9ticas<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-29\">29 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/gvaparticipa.gva.es\/legislation\/processes\/705\" rel=\"noopener\" target=\"_blank\">ANUNCIO del tr\u00e1mite de audiencia ciudadana, sobre el proyecto de orden de la Conselleria de Econom\u00eda, Hacienda y Administraci\u00f3n P\u00fablica por la que se aprueba el baremo aplicable a los concursos de provisi\u00f3n de puestos de trabajo de la Administraci\u00f3n de la Generalitat<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-21\">21 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        \n          <tr>\n            <td><strong>Consulta p\u00fablica<\/strong><\/td>\n            <td><a href=\"https:\/\/www.miteco.gob.es\/content\/dam\/miteco\/es\/parques-nacionales-oapn\/participacion-publica\/anexos\/Proyecto%20modificaci\u00f3n%20los%20l\u00edmites%20territoriales%20del%20PN%20Aig\u00fcestortes%20i%20Estany%20de%20Sant%20Maurici.pdf\" rel=\"noopener\" target=\"_blank\">Consulta P\u00fablica Previa del Proyecto de modificaci\u00f3n de los l\u00edmites territoriales del Parque Nacional de Aig\u00fcestortes i Estany de Sant Maurici para su ampliaci\u00f3n<\/a><\/td>\n            <td>Otros<\/td>\n            <td><time datetime=\"2026-05-07\">07 de mayo de 2026<\/time><\/td>\n            <td><time datetime=\"2026-05-21\">21 de mayo de 2026<\/time><\/td>\n          <\/tr>\n        <\/tbody>\n        <\/table>\n        <div class=\"cons-groups\" id=\"cons-groups\" hidden><\/div>\n      <\/article>\n<article class=\"seo-item\">\n        <h3>\u00bfC\u00f3mo convierte PolicyAlert el ruido normativo en oportunidades?<\/h3>\n        <p>\n          Cada d\u00eda se publican decenas de iniciativas, anteproyectos, dict\u00e1menes\n          y resoluciones en el BOE y los boletines auton\u00f3micos. PolicyAlert los\n          clasifica autom\u00e1ticamente por \u00e1mbito sectorial, identifica los que te\n          afectan seg\u00fan tus filtros y te avisa con tiempo suficiente para\n          actuar: alegaciones, comparecencias, comunicaci\u00f3n interna, ajuste de\n          compliance, etc. Todo trazable desde la consulta p\u00fablica previa hasta\n          la publicaci\u00f3n en BOE.\n        <\/p>\n        <div class=\"yt-facade\" data-yt=\"yyxfEUZvgvI\" role=\"button\" tabindex=\"0\" aria-label=\"Reproducir v\u00eddeo: c\u00f3mo funciona PolicyAlert\">\n          <img decoding=\"async\" class=\"yt-thumb\" src=\"https:\/\/i.ytimg.com\/vi\/yyxfEUZvgvI\/hqdefault.jpg\" alt=\"\" loading=\"lazy\">\n          <span class=\"yt-play\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"\/><\/svg><\/span>\n          <span class=\"yt-label\">Ver c\u00f3mo funciona PolicyAlert<\/span>\n        <\/div>\n      <\/article>\n          <\/div>\n        <\/div>\n\n        <div class=\"car-pane\" id=\"pane-leyes\" role=\"tabpanel\">\n          <div class=\"product-content-header\">\n            <div>\n              <h3 id=\"le-title\">The bills on the move<\/h3>\n              <p class=\"sub\">Legislative initiatives with notable progress.<\/p>\n            <\/div>\n          <\/div>\n          <div id=\"leyes-list\">\n        <article class=\"ley\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Legislation\">\n          <span class=\"ley-title\" itemprop=\"name\">Proposici\u00f3n de Ley de modificaci\u00f3n de la regulaci\u00f3n sobre la crioconservaci\u00f3n de ovocitos.<\/span>\n          <div class=\"ley-meta\">\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 10h18M8 2v4M16 2v4\"\/><\/svg> Inicio: <time datetime=\"2026-03-20\">20 de marzo de 2026<\/time><\/span>\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36L21 8\"\/><path d=\"M21 3v5h-5\"\/><\/svg> Ampliada hasta: <time datetime=\"2026-06-20\">20 de junio de 2026<\/time><\/span>\n            <span class=\"ley-chip ley-chip-phase\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 22V4h13l-2 4 2 4H4\"\/><\/svg> ENMIENDAS \/ PARTICIPACI\u00d3N<\/span>\n          <\/div>\n          <div class=\"ley-progress\">\n          <div class=\"stepper\" role=\"list\" aria-label=\"Fases de tramitaci\u00f3n\"><div class=\"step done\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>REGISTRO \/ ADMISI\u00d3N<\/div><\/div><div class=\"step done\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>CONSIDERACI\u00d3N<\/div><\/div><div class=\"step current\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>ENMIENDAS \/ PARTICIPACI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PONENCIA \/ COMISI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PLENO<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>APROBACI\u00d3N FINAL<\/div><\/div><\/div>\n          <\/div>\n        <\/article>\n\n        <article class=\"ley\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Legislation\">\n          <span class=\"ley-title\" itemprop=\"name\">Sobre medidas administrativas y procesales para la seguridad jur\u00eddica de la ordenaci\u00f3n territorial y urban\u00edstica, el impulso del desarrollo urbano y la vivienda<\/span>\n          <div class=\"ley-meta\">\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 10h18M8 2v4M16 2v4\"\/><\/svg> Inicio: <time datetime=\"2026-02-13\">13 de febrero de 2026<\/time><\/span>\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36L21 8\"\/><path d=\"M21 3v5h-5\"\/><\/svg> Actualizada: <time datetime=\"2026-05-22\">22 de mayo de 2026<\/time><\/span>\n            <span class=\"ley-chip ley-chip-phase\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 22V4h13l-2 4 2 4H4\"\/><\/svg> ENMIENDAS \/ PARTICIPACI\u00d3N<\/span>\n          <\/div>\n          <div class=\"ley-progress\">\n          <div class=\"stepper\" role=\"list\" aria-label=\"Fases de tramitaci\u00f3n\"><div class=\"step done\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>REGISTRO \/ ADMISI\u00d3N<\/div><\/div><div class=\"step done\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>CONSIDERACI\u00d3N<\/div><\/div><div class=\"step current\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>ENMIENDAS \/ PARTICIPACI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PONENCIA \/ COMISI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PLENO<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>APROBACI\u00d3N FINAL<\/div><\/div><\/div>\n          <\/div>\n        <\/article>\n      \n        <article class=\"ley\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Legislation\">\n          <span class=\"ley-title\" itemprop=\"name\">Proyecto de Ley por la que se modifican la Ley Org\u00e1nica 2\/2006, de 3 de mayo, de Educaci\u00f3n, y la Ley 4\/2019, de 7 de marzo, de mejora de las condiciones para el desempe\u00f1o de la docencia y la ense\u00f1anza en el \u00e1mbito de la educaci\u00f3n no universitaria, y se adoptan otras medidas para la mejora del sistema educativo.<\/span>\n          <div class=\"ley-meta\">\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 10h18M8 2v4M16 2v4\"\/><\/svg> Inicio: <time datetime=\"2026-04-23\">23 de abril de 2026<\/time><\/span>\n            <span class=\"ley-chip\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36L21 8\"\/><path d=\"M21 3v5h-5\"\/><\/svg> Actualizada: <time datetime=\"2026-05-20\">20 de mayo de 2026<\/time><\/span>\n            <span class=\"ley-chip ley-chip-phase\"><svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 22V4h13l-2 4 2 4H4\"\/><\/svg> ENMIENDAS \/ PARTICIPACI\u00d3N<\/span>\n          <\/div>\n          <div class=\"ley-progress\">\n          <div class=\"stepper\" role=\"list\" aria-label=\"Fases de tramitaci\u00f3n\"><div class=\"step done\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>FASE INICIAL<\/div><\/div><div class=\"step current\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>ENMIENDAS \/ PARTICIPACI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PONENCIA \/ COMISI\u00d3N<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>PLENO<\/div><\/div><div class=\"step \"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>TR\u00c1MITE FINALIZADO<\/div><\/div><\/div>\n          <\/div>\n        <\/article>\n      <\/div>\n          <div class=\"pane-cta-row\">\n            <p class=\"pane-cta-text\">\n              <strong>Does any of these bills affect you?<\/strong>\n              Get an immediate alert when a specific initiative advances a stage.\n            <\/p>\n            <a class=\"pane-cta pane-cta--accent\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\">Set an alert for a bill<\/a>\n          <\/div>\n        <\/div>\n\n      <div class=\"car-pane\" id=\"pane-faq\" role=\"tabpanel\">\n          <div class=\"product-content-header\">\n            <div>\n              <h3>Frequently asked questions<\/h3>\n              <p class=\"sub\">Everything you need to know about PolicyAlert, the Vinces regulatory monitoring and alerts system.<\/p>\n            <\/div>\n          <\/div>\n          <article class=\"faq-block\" id=\"faqs-policyalert\">\n  <h3 class=\"faq-block-title\"><span class=\"faq-badge\">PolicyAlert<\/span> Regulatory intelligence &amp; alerts<\/h3>\n  <div class=\"faq-list\">\n    <details><summary>What is PolicyAlert?<\/summary><p>PolicyAlert is the Vinces regulatory radar: it continuously monitors parliamentary initiatives and legislation in progress \u2014national, regional and European\u2014 and alerts you at the exact moment a change affects your sector, with the context you need to anticipate and act in time.<\/p><\/details>\n    <details><summary>What sources does it monitor?<\/summary><p>At national and regional level: official gazettes, all executive and parliamentary activity, regulatory bodies and other sources. At European level: the Official Journal of the EU and EU legislative processes.<\/p><\/details>\n    <details><summary>How do I set up my topics of interest?<\/summary><p>The Vinces team will meet with you to configure your topics of interest and make sure nothing important slips through.<\/p><\/details>\n    <details><summary>And how does it tell what matters from the noise?<\/summary><p>We combine automatic topic classification (NLP models trained on our regulatory thesaurus) with your custom filters to send you only what matters.<\/p><\/details>\n    <details><summary>When do I receive the alert?<\/summary><p>The same day as the official publication, configurable to receive batched alerts at different times of day.<\/p><\/details>\n    <details><summary>How often are the reports produced by Vinces?<\/summary><p>Reports are produced weekly, fortnightly and monthly, according to each client\u2019s needs.<\/p><\/details>\n    <details><summary>Which stages of the process does it cover?<\/summary><p>All of them: PolicyAlert tracks from the publication of the preliminary public consultation, through the steps up to the parliaments and the entire passage to its final publication in the BOE.<\/p><\/details>\n    <details><summary>Can I follow a specific initiative?<\/summary><p>Yes, you will receive alerts at every step of its passage: stage change, tabling of amendments, votes, etc.<\/p><\/details>\n    <details><summary>Can I follow a specific MP?<\/summary><p>Yes. When a specific MP tables an initiative, you can follow their track record and receive alerts about their actions.<\/p><\/details>\n    <details><summary>What if I want to follow a specific body?<\/summary><p>You can request additional sources and the Vinces team will integrate them into your tool.<\/p><\/details>\n    <details><summary>Can I customise who on the team receives the alerts?<\/summary><p>Yes. Each alert can be routed to a different recipient: legal, tax, HR, sustainability, etc. And it supports multiple users per organisation.<\/p><\/details>\n    <details><summary>How much does it cost?<\/summary><p>Pricing depends on the number of users and the thematic scope. Request a demo and a quote at <a href=\"https:\/\/vincesconsulting.com\/contacto\/\" rel=\"noopener\">contact<\/a>.<\/p><\/details>\n  <\/div>\n<\/article>\n        <\/div>\n      <\/div>\n\n      <aside class=\"product-info\">\n        <span class=\"product-badge\">PolicyAlert \u00b7 Inteligencia regulatoria<\/span>\n        <h2 class=\"product-name\" id=\"pa-title\" itemprop=\"name\">Sigue cada ley en tiempo real<\/h2>\n        <p class=\"product-tagline\" itemprop=\"description\">\n          <strong>PolicyAlert<\/strong> monitoriza todas las iniciativas parlamentarias a nivel nacional y auton\u00f3mico, sus fases previas y sus votaciones. Recibe alertas en el momento exacto en que algo te afecta.\n        <\/p>\n      <\/aside>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\n\/*\n * Helpers compartidos por todas las p\u00e1ginas de producto (FREN, PolicyAlert,\n * Poder Digital, WATS). Se exponen en `window.VincesDash` para que cada\n * p\u00e1gina pueda invocarlos sin duplicar c\u00f3digo.\n *\n * IMPORTANT: las p\u00e1ginas standalone descargadas por \"Descargar HTML externo\"\n * inlinean este script. Mantenerlo autocontenido (sin imports).\n *\/\n(function () {\n  \"use strict\";\n\n  const LOCALE = \"en-GB\";\n  const REFRESH_MS = 30 * 60 * 1000;\n\n  const $ = (s, r) => (r || document).querySelector(s);\n  const $$ = (s, r) => Array.from((r || document).querySelectorAll(s));\n\n  function fmtDate(iso) {\n    if (!iso) return \"\";\n    try {\n      return new Date(iso).toLocaleDateString(LOCALE, {\n        day: \"2-digit\", month: \"long\", year: \"numeric\",\n      });\n    } catch { return iso; }\n  }\n  function fmtDateTime(iso) {\n    if (!iso) return \"\";\n    try {\n      return new Date(iso).toLocaleString(LOCALE, {\n        day: \"2-digit\", month: \"short\", year: \"numeric\",\n        hour: \"2-digit\", minute: \"2-digit\",\n      });\n    } catch { return iso; }\n  }\n  function escapeHtml(s) {\n    return String(s == null ? \"\" : s)\n      .replace(\/&\/g, \"&amp;\").replace(\/<\/g, \"&lt;\").replace(\/>\/g, \"&gt;\")\n      .replace(\/\"\/g, \"&quot;\").replace(\/'\/g, \"&#39;\");\n  }\n  function initials(name) {\n    return (name || \"?\").trim().split(\/\\s+\/).slice(0, 2).map(p => p[0]).join(\"\").toUpperCase();\n  }\n\n  \/**\n   * Carga est\u00e1ndar de los endpoints p\u00fablicos del dashboard.\n   * - apiUrl: URL absoluta o relativa al endpoint \/api\/dashboard-publico\/...\n   * - onData: callback(data) llamado en \u00e9xito.\n   * - onError: callback(message, kind) llamado en error. kind: \"network\" | \"http\" | \"json\" | \"render\".\n   *\/\n  async function loadDashboardData(apiUrl, onData, onError) {\n    let response;\n    try {\n      response = await fetch(apiUrl, {\n        method: \"GET\",\n        headers: { Accept: \"application\/json\" },\n        mode: \"cors\",\n        cache: \"no-cache\",\n      });\n    } catch (err) {\n      console.error(\"[Dashboard] Network\/CORS error:\", err);\n      const isFileProtocol = window.location.protocol === \"file:\";\n      const msg = isFileProtocol\n        ? `No se pudieron cargar los datos desde <code>${escapeHtml(apiUrl)}<\/code>. <br>Si has abierto este HTML como archivo local, s\u00edrvelo desde un servidor web (no <code>file:\/\/<\/code>) o aseg\u00farate de que el endpoint permite el origen <code>null<\/code>.`\n        : `No se pudieron cargar los datos desde <code>${escapeHtml(apiUrl)}<\/code>. <br>Comprueba la configuraci\u00f3n CORS del backend para el origen actual: <code>${escapeHtml(window.location.origin)}<\/code>.`;\n      onError && onError(msg, \"network\");\n      return;\n    }\n    if (!response.ok) {\n      console.error(\"[Dashboard] HTTP error:\", response.status);\n      onError && onError(`El servidor devolvi\u00f3 HTTP ${response.status} al consultar <code>${escapeHtml(apiUrl)}<\/code>.`, \"http\");\n      return;\n    }\n    let data;\n    try {\n      data = await response.json();\n    } catch (err) {\n      console.error(\"[Dashboard] JSON parse error:\", err);\n      onError && onError(\"La respuesta no es JSON v\u00e1lido.\", \"json\");\n      return;\n    }\n    try {\n      onData && onData(data);\n    } catch (err) {\n      console.error(\"[Dashboard] Render error:\", err);\n      onError && onError(\"Error al renderizar los datos.\", \"render\");\n    }\n  }\n\n  \/**\n   * Pinta el pill de \"Actualizado...\" en la cabecera y gestiona el estado de error.\n   *\/\n  function setUpdatedPill(data, errMessage) {\n    const pill = $(\"#updated-pill\");\n    const txt = $(\"#updated-text\");\n    if (!pill || !txt) return;\n    if (errMessage) {\n      pill.classList.add(\"err\");\n      txt.textContent = errMessage;\n    } else {\n      pill.classList.remove(\"err\");\n      txt.textContent = \"Updated \" + fmtDateTime((data && data.generated_at) || new Date().toISOString());\n    }\n  }\n\n  \/**\n   * Bot\u00f3n \"Descargar HTML externo\": clona el DOM, elimina elementos de test,\n   * sustituye la API_URL relativa por una absoluta y descarga como fichero\n   * \u00fanico listo para WordPress.\n   *\/\n  function bindDownloadExternalHtml(absApiUrl) {\n    const btn = $(\"#download-html-btn\");\n    if (!btn) return;\n    btn.addEventListener(\"click\", () => {\n      try {\n        btn.dataset.state = \"generating\";\n        btn.querySelector(\".lbl\").textContent = \"Generando\u2026\";\n\n        const cloned = document.documentElement.cloneNode(true);\n        cloned.querySelectorAll(\".testbar, #download-html-btn\").forEach(el => el.remove());\n\n        cloned.querySelectorAll(\"script\").forEach(s => {\n          const txt = s.textContent || \"\";\n          if (txt.includes(\"DEFAULT_API_URL\")) {\n            s.textContent = txt.replace(\n              \/const\\s+DEFAULT_API_URL\\s*=\\s*[\"'][^\"']*[\"'];\/,\n              `const DEFAULT_API_URL = ${JSON.stringify(absApiUrl)};`\n            );\n          }\n        });\n\n        const banner =\n          \"\\n<!--\\n\" +\n          \"  Dashboard Vinces \u00b7 p\u00e1gina standalone por producto\\n\" +\n          \"  Generado: \" + new Date().toISOString() + \"\\n\" +\n          \"  Endpoint API: \" + absApiUrl + \"\\n\" +\n          \"\\n\" +\n          \"  C\u00f3mo integrarlo en WordPress:\\n\" +\n          \"    1. Editor de la p\u00e1gina \u2192 bloque 'HTML personalizado'.\\n\" +\n          \"    2. Pega el fichero completo (todo, incluyendo <html>, <head>, <body>).\\n\" +\n          \"       En la mayor\u00eda de temas WP basta con pegar a partir de <body>.\\n\" +\n          \"    3. Aseg\u00farate de que el dominio WP est\u00e1 incluido en CORS del backend.\\n\" +\n          \"    4. El cliente refresca cada 30 min; el backend cachea 1h.\\n\" +\n          \"-->\\n\";\n        const html = \"<!DOCTYPE html>\\n\" + cloned.outerHTML.replace(\/^<html\/, banner + \"<html\");\n\n        const blob = new Blob([html], { type: \"text\/html;charset=utf-8\" });\n        const url = URL.createObjectURL(blob);\n        const a = document.createElement(\"a\");\n        a.href = url;\n        const stamp = new Date().toISOString().slice(0, 10);\n        a.download = `dashboard-vinces-${(window.VincesDash && window.VincesDash.product) || \"page\"}-${stamp}.html`;\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n        setTimeout(() => URL.revokeObjectURL(url), 2000);\n\n        btn.dataset.state = \"done\";\n        btn.querySelector(\".lbl\").textContent = \"\u2714 Descargado\";\n        setTimeout(() => {\n          btn.removeAttribute(\"data-state\");\n          btn.querySelector(\".lbl\").textContent = \"Download standalone HTML\";\n        }, 2500);\n      } catch (err) {\n        console.error(\"[download-html] error:\", err);\n        btn.removeAttribute(\"data-state\");\n        btn.querySelector(\".lbl\").textContent = \"Generation error\";\n        setTimeout(() => { btn.querySelector(\".lbl\").textContent = \"Download standalone HTML\"; }, 2500);\n      }\n    });\n  }\n\n  \/**\n   * P\u00e1gina con scroll: todas las secciones est\u00e1n visibles y apiladas.\n   * Los tabs act\u00faan como navegaci\u00f3n ancla (scroll suave a cada secci\u00f3n) y la\n   * barra queda fija arriba (sticky en CSS). Un IntersectionObserver resalta el\n   * tab correspondiente a la secci\u00f3n que se est\u00e1 viendo (scrollspy).\n   *\/\n  function initCarousels() {\n    document.querySelectorAll(\"[data-carousel]\").forEach(scope => {\n      const tabs = Array.from(scope.querySelectorAll(\".car-tab\"));\n      const panes = Array.from(scope.querySelectorAll(\".car-pane\"));\n      const byId = {};\n      panes.forEach(p => { byId[p.id] = p; });\n\n      const setActive = (id) => {\n        tabs.forEach(b => {\n          const on = b.getAttribute(\"data-pane\") === id;\n          b.classList.toggle(\"active\", on);\n          b.setAttribute(\"aria-selected\", on ? \"true\" : \"false\");\n        });\n      };\n\n      \/\/ Click en un tab = scroll suave a su secci\u00f3n\n      tabs.forEach(btn => {\n        btn.addEventListener(\"click\", () => {\n          const target = byId[btn.getAttribute(\"data-pane\")];\n          if (!target) return;\n          target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n          setActive(target.id);\n          const cb = window.VincesDash?.onPaneActivated?.[target.id];\n          if (typeof cb === \"function\") cb();\n        });\n      });\n\n      \/\/ Scrollspy: marca como activo el tab de la secci\u00f3n m\u00e1s alta en pantalla\n      if (\"IntersectionObserver\" in window) {\n        const io = new IntersectionObserver((entries) => {\n          const visible = entries\n            .filter(e => e.isIntersecting)\n            .sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top);\n          if (visible.length) setActive(visible[0].target.id);\n        }, { rootMargin: \"-96px 0px -55% 0px\", threshold: 0 });\n        panes.forEach(p => io.observe(p));\n      }\n    });\n  }\n\n  window.VincesDash = Object.assign(window.VincesDash || {}, {\n    LOCALE,\n    REFRESH_MS,\n    $, $$,\n    fmtDate, fmtDateTime, escapeHtml, initials,\n    loadDashboardData,\n    setUpdatedPill,\n    bindDownloadExternalHtml,\n    initCarousels,\n    onPaneActivated: {},\n  });\n})();\n<\/script>\n\n\n<script>\n(() => {\n  \"use strict\";\n\n  const DEFAULT_API_URL = \"https:\/\/vision360.vincesconsulting.com\/api\/dashboard-publico\/policyalert\/\";\n  const API_ORIGIN = (() => { try { return new URL(DEFAULT_API_URL).origin; } catch (e) { return \"\"; } })();\n  const resolveLogo = (u) => !u ? \"\" : (\/^(https?:|data:)\/i.test(u) ? u : API_ORIGIN + u);\n  const {\n    $, $$, fmtDate, escapeHtml, LOCALE,\n    loadDashboardData, setUpdatedPill, bindDownloadExternalHtml, initCarousels,\n  } = window.VincesDash;\n  window.VincesDash.product = \"policyalert\";\n\n  \/\/ ===== Leyes (stepper) =====\n  const LEY_ICO_CAL = '<svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 10h18M8 2v4M16 2v4\"\/><\/svg>';\n  const LEY_ICO_UPD = '<svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36L21 8\"\/><path d=\"M21 3v5h-5\"\/><\/svg>';\n  const LEY_ICO_FLAG = '<svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 22V4h13l-2 4 2 4H4\"\/><\/svg>';\n  const CONS_ICO_DOC = '<svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><path d=\"M14 2v6h6M8 13h8M8 17h8\"\/><\/svg>';\n  const CONS_ICO_ORG = '<svg class=\"ley-ico\" viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 21h18M5 21V10m4 11V10m6 11V10m4 11V10M3 10l9-5 9 5\"\/><\/svg>';\n\n  function renderLeyes(items) {\n    const cont = $(\"#leyes-list\");\n    if (!items?.length) {\n      cont.innerHTML = '<p class=\"empty\">No recent bills in progress.<\/p>';\n      return;\n    }\n    cont.innerHTML = items.slice(0, 3).map(l => {\n      const pasos = l.pasos || [];\n      const idx = typeof l.indice_paso_actual === \"number\" ? l.indice_paso_actual : -1;\n      const steps = pasos.map((p, i) => {\n        const cls = i < idx ? \"done\" : (i === idx ? \"current\" : \"\");\n        return `<div class=\"step ${cls}\"><div class=\"dot\" aria-hidden=\"true\"><\/div><div>${escapeHtml(p)}<\/div><\/div>`;\n      }).join(\"\");\n      const chamberChip = l.chamber\n        ? `<span class=\"ley-chip ley-chamber\">${l.logo_url ? `<img decoding=\"async\" class=\"ley-logo\" src=\"${escapeHtml(resolveLogo(l.logo_url))}\" alt=\"\" loading=\"lazy\">` : CONS_ICO_ORG} ${escapeHtml(l.chamber)}<\/span>`\n        : \"\";\n      return `\n        <article class=\"ley\" itemscope itemtype=\"https:\/\/schema.org\/Legislation\">\n          ${l.url\n            ? `<a class=\"ley-title\" href=\"${escapeHtml(l.url)}\" rel=\"noopener\" target=\"_blank\" itemprop=\"url\"><span itemprop=\"name\">${escapeHtml(l.titulo)}<\/span><\/a>`\n            : `<span class=\"ley-title\" itemprop=\"name\">${escapeHtml(l.titulo)}<\/span>`}\n          <div class=\"ley-meta\">\n            ${chamberChip}\n            <span class=\"ley-chip\">${LEY_ICO_CAL} Inicio: <time datetime=\"${escapeHtml(l.fecha_inicio)}\">${fmtDate(l.fecha_inicio)}<\/time><\/span>\n            ${l.ultima_actualizacion ? `<span class=\"ley-chip\">${LEY_ICO_UPD} ${l.ampliada ? \"Ampliada hasta\" : \"Actualizada\"}: <time datetime=\"${escapeHtml(l.ultima_actualizacion)}\">${fmtDate(l.ultima_actualizacion)}<\/time><\/span>` : \"\"}\n            ${idx >= 0 && pasos[idx] ? `<span class=\"ley-chip ley-chip-phase\">${LEY_ICO_FLAG} ${escapeHtml(pasos[idx])}<\/span>` : \"\"}\n          <\/div>\n          <div class=\"ley-progress\">\n            <div class=\"stepper\" role=\"list\" aria-label=\"Fases de tramitaci\u00f3n\">${steps}<\/div>\n          <\/div>\n          <div class=\"ley-actions\"><button type=\"button\" class=\"ley-follow\" data-vc-contact=\"${escapeHtml(l.titulo)}\">Follow this bill<\/button><\/div>\n        <\/article>\n      `;\n    }).join(\"\");\n  }\n\n  \/\/ ===== KPIs =====\n  function renderPolicyAlertKpis(kpis) {\n    if (!kpis) return;\n    const set = (key, val) => {\n      const el = document.querySelector(`[data-kpi=\"${key}\"]`);\n      if (el) el.textContent = val;\n    };\n    set(\"consultas\", kpis.consultas_publicas?.abiertas ?? 0);\n    const cn = kpis.consultas_publicas?.nuevas_24h || 0;\n    set(\"consultas-sub\", cn > 0 ? `${cn} new in the last 24h` : \"None new in 24h\");\n    set(\"audiencias\", kpis.audiencias_publicas?.abiertas ?? 0);\n    const an = kpis.audiencias_publicas?.nuevas_24h || 0;\n    set(\"audiencias-sub\", an > 0 ? `${an} new in the last 24h` : \"None new in 24h\");\n    set(\"iniciativas\", kpis.iniciativas_avanzadas_24h ?? 0);\n    set(\"acuerdos\", kpis.acuerdos_publicados_semana ?? 0);\n    if (kpis.semana_inicio && kpis.semana_fin) {\n      set(\"acuerdos-sub\", `Desde ${fmtDate(kpis.semana_inicio)} hasta hoy`);\n    }\n  }\n\n  \/\/ ===== Temas activos (line chart multi-serie + leyenda HTML) =====\n  let temasActChart = null;\n  let _temasActLast = null;\n\n  function renderTemasActivosChart(payload) {\n    _temasActLast = payload;\n    const wrap = document.querySelector(\".temas-act-wrap\");\n    const summary = $(\"#temas-act-summary\");\n    if (!wrap || typeof Chart === \"undefined\") return;\n\n    if (!payload || !(payload.series || []).length) {\n      if (temasActChart) { temasActChart.destroy(); temasActChart = null; }\n      wrap.innerHTML = '<p class=\"empty\" style=\"padding:32px 0;text-align:center\">No hay datos suficientes para mostrar la evoluci\u00f3n semanal.<\/p>';\n      if (summary) summary.innerHTML = \"\";\n      return;\n    }\n    if (!wrap.querySelector(\"canvas\")) {\n      wrap.innerHTML = '<canvas id=\"temasActChart\" role=\"img\" aria-label=\"Evoluci\u00f3n diaria de temas activos\"><\/canvas>';\n    }\n    if (temasActChart) { temasActChart.destroy(); temasActChart = null; }\n\n    if (summary) {\n      summary.innerHTML = `\n        <span>Week total: <strong>${payload.total_publications || 0}<\/strong> publications for the classified topics<\/span>\n      `;\n      \/\/ T\u00edtulo din\u00e1mico: el \u00e1mbito top es \"el foco de la semana\"\n      const titleEl = document.querySelector(\"#temas-act-title\");\n      if (titleEl) titleEl.textContent = (payload.top_ambito && payload.top_ambito.ambito_name)\n        ? `${payload.top_ambito.ambito_name}: el foco de la semana`\n        : \"El foco de la semana\";\n    }\n    const canvas = $(\"#temasActChart\");\n    const ctx = canvas.getContext(\"2d\");\n    const labels = (payload.days || []).map(d => {\n      try { return new Date(d).toLocaleDateString(LOCALE, { weekday: \"short\", day: \"numeric\" }); }\n      catch { return d; }\n    });\n\n    \/\/ Gradiente sutil bajo cada serie (s\u00f3lo si est\u00e1 sola visible o si la enfocamos).\n    \/\/ Por defecto desactivamos el fill global y resaltamos al hacer hover en la leyenda.\n    const datasets = (payload.series || []).map((s, i) => {\n      const grad = ctx.createLinearGradient(0, 0, 0, 340);\n      grad.addColorStop(0, s.color + \"33\"); \/\/ 20% opacidad arriba\n      grad.addColorStop(1, s.color + \"02\"); \/\/ casi transparente abajo\n      return {\n        label: s.ambito_name, data: s.values,\n        borderColor: s.color,\n        backgroundColor: grad,\n        tension: 0.4,            \/\/ curvas m\u00e1s suaves\n        borderWidth: 2.5,        \/\/ l\u00edneas un pel\u00edn m\u00e1s finas para que no se solapen\n        pointRadius: 0,          \/\/ sin puntos por defecto\n        pointHoverRadius: 7,     \/\/ grandes al pasar el cursor\n        pointHoverBackgroundColor: s.color,\n        pointHoverBorderColor: \"#fff\",\n        pointHoverBorderWidth: 2,\n        pointHitRadius: 18,      \/\/ hitbox amplia\n        fill: false,             \/\/ se activar\u00e1 en hover via plugin\n        borderJoinStyle: \"round\",\n        borderCapStyle: \"round\",\n        spanGaps: true,\n        hidden: i >= 3,          \/\/ por defecto solo top 3 visibles\n      };\n    });\n\n    temasActChart = new Chart(ctx, {\n      type: \"line\", data: { labels, datasets },\n      options: {\n        responsive: true, maintainAspectRatio: false,\n        animation: { duration: 600, easing: \"easeOutQuart\" },\n        animations: {\n          y: { duration: 700, easing: \"easeOutQuart\", from: ctx => ctx.chart.scales.y?.getPixelForValue(0) ?? 0 },\n        },\n        interaction: { mode: \"index\", intersect: false },\n        layout: { padding: { top: 12, right: 14, bottom: 4, left: 2 } },\n        plugins: {\n          legend: { display: false },\n          tooltip: {\n            enabled: true,\n            backgroundColor: \"rgba(49,64,104,.98)\",\n            titleColor: \"#fff\",\n            bodyColor: \"#f4f5f7\",\n            padding: { top: 10, right: 14, bottom: 10, left: 14 },\n            cornerRadius: 8,\n            displayColors: true,\n            boxPadding: 6,\n            usePointStyle: true,\n            borderColor: \"rgba(255,255,255,.08)\",\n            borderWidth: 1,\n            titleFont: { family: \"Libre Franklin, sans-serif\", size: 12.5, weight: \"700\" },\n            bodyFont: { family: \"Libre Franklin, sans-serif\", size: 12 },\n            titleMarginBottom: 6,\n            callbacks: {\n              label: c => ` ${c.dataset.label}: ${c.parsed.y} publicaciones`,\n            },\n          },\n        },\n        scales: {\n          x: {\n            grid: { display: false },\n            border: { display: false },\n            ticks: {\n              color: \"#5a6076\",\n              font: { family: \"Libre Franklin, sans-serif\", size: 11.5, weight: \"500\" },\n              padding: 8,\n            },\n          },\n          y: {\n            beginAtZero: true,\n            grace: \"8%\",                 \/\/ padding superior para que la l\u00ednea no toque el techo\n            grid: {\n              color: \"rgba(228,230,234,.55)\",\n              drawTicks: false,\n              lineWidth: 1,\n            },\n            border: { display: false, dash: [2, 4] },\n            ticks: {\n              precision: 0,\n              color: \"#8a90a3\",\n              padding: 10,\n              font: { family: \"Libre Franklin, sans-serif\", size: 11 },\n              maxTicksLimit: 6,\n            },\n            title: {\n              display: true,\n              text: \"Volumen de publicaciones\",\n              color: \"#5a6076\",\n              font: { family: \"Libre Franklin, sans-serif\", size: 11, weight: \"600\" },\n              padding: { bottom: 8 },\n            },\n          },\n        },\n        elements: { line: { capBezierPoints: true } },\n      },\n    });\n    _renderTemasActLegend(payload);\n  }\n\n  function _renderTemasActLegend(payload) {\n    const wrap = $(\"#temas-act-legend\");\n    if (!wrap || !temasActChart) return;\n    const series = payload.series || [];\n    if (!series.length) { wrap.innerHTML = \"\"; return; }\n    const tags = series.map((s, i) => {\n      const visible = temasActChart.isDatasetVisible(i);\n      return `<span class=\"ta-tag ${visible ? \"\" : \"off\"}\" data-idx=\"${i}\" role=\"button\" aria-pressed=\"${visible}\" tabindex=\"0\">\n        <span class=\"sw\" style=\"background:${escapeHtml(s.color || '#9aa0a6')}\"><\/span>\n        ${escapeHtml(s.ambito_name)}\n        <span style=\"color:var(--muted);font-weight:600\">\u00b7${s.total}<\/span>\n      <\/span>`;\n    }).join(\"\");\n    wrap.innerHTML = tags;\n    \/\/ Acciones \"Mostrar todos \/ Solo top 3\" en la misma l\u00ednea que el resumen \"Top: ...\"\n    const summaryEl = $(\"#temas-act-summary\");\n    let actionsScope = wrap;\n    if (summaryEl) {\n      const actions = document.createElement(\"span\");\n      actions.className = \"ta-actions\";\n      actions.innerHTML = `\n        <a data-action=\"all\">Show all<\/a>\n        <span>\u00b7<\/span>\n        <a data-action=\"top3\">Top 3 only<\/a>\n      `;\n      summaryEl.appendChild(actions);\n      actionsScope = summaryEl;\n    }\n    wrap.querySelectorAll(\".ta-tag\").forEach(tag => {\n      const handle = (e) => {\n        e.preventDefault();\n        const idx = parseInt(tag.getAttribute(\"data-idx\"), 10);\n        if (Number.isNaN(idx)) return;\n        if (temasActChart.isDatasetVisible(idx)) {\n          temasActChart.hide(idx); tag.classList.add(\"off\"); tag.setAttribute(\"aria-pressed\", \"false\");\n        } else {\n          temasActChart.show(idx); tag.classList.remove(\"off\"); tag.setAttribute(\"aria-pressed\", \"true\");\n        }\n      };\n      tag.addEventListener(\"click\", handle);\n      tag.addEventListener(\"keydown\", (ev) => { if (ev.key === \"Enter\" || ev.key === \" \") handle(ev); });\n    });\n    actionsScope.querySelectorAll(\".ta-actions a\").forEach(a => {\n      a.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        const act = a.getAttribute(\"data-action\");\n        if (act === \"all\") series.forEach((_, i) => temasActChart.show(i));\n        else if (act === \"top3\") series.forEach((_, i) => i < 3 ? temasActChart.show(i) : temasActChart.hide(i));\n        wrap.querySelectorAll(\".ta-tag\").forEach(tag => {\n          const i = parseInt(tag.getAttribute(\"data-idx\"), 10);\n          const v = temasActChart.isDatasetVisible(i);\n          tag.classList.toggle(\"off\", !v); tag.setAttribute(\"aria-pressed\", v ? \"true\" : \"false\");\n        });\n      });\n    });\n  }\n\n  \/\/ ===== Leaderboard de c\u00e1maras sobre la tem\u00e1tica ganadora =====\n  function renderCamarasLeaderboard(lb) {\n    const box = $(\"#camaras-leaderboard\");\n    const list = $(\"#cam-lb-list\");\n    const sub = $(\"#cam-lb-sub\");\n    if (!box || !list) return;\n    if (!lb || !(lb.camaras || []).length) { box.hidden = true; return; }\n\n    const amb = lb.tematica_ganadora || {};\n    const dot = $(\"#cam-lb-dot\");\n    if (dot) dot.style.background = amb.color || \"#1F2547\";\n    if (sub) {\n      sub.innerHTML = `On <span class=\"amb\" style=\"color:${escapeHtml(amb.color || \"#1F2547\")}\">${escapeHtml(amb.ambito_name || \"\u2014\")}<\/span> \u00b7 last 7 days vs previous 7`;\n    }\n    list.innerHTML = (lb.camaras || []).map((c, i) => {\n      let chg;\n      if (c.estado === \"nueva\")      chg = `<span class=\"cam-lb-chg new\" data-tip=\"Entra nueva en el ranking esta semana\">NUEVA<\/span>`;\n      else if (c.estado === \"sale\")  chg = `<span class=\"cam-lb-chg down\" data-tip=\"Sale del top esta semana\">SALE<\/span>`;\n      else if (c.posiciones > 0)     chg = `<span class=\"cam-lb-chg up\" data-tip=\"Sube ${c.posiciones} posici\u00f3n(es)\\n(vs los 7 d\u00edas previos)\">\u25b2 ${c.posiciones}<\/span>`;\n      else if (c.posiciones < 0)     chg = `<span class=\"cam-lb-chg down\" data-tip=\"Baja ${Math.abs(c.posiciones)} posici\u00f3n(es)\\n(vs los 7 d\u00edas previos)\">\u25bc ${Math.abs(c.posiciones)}<\/span>`;\n      else                           chg = `<span class=\"cam-lb-chg flat\" data-tip=\"Mantiene posici\u00f3n\">=<\/span>`;\n      const d = c.delta_publicaciones || 0;\n      const dCls = d > 0 ? \"up\" : d < 0 ? \"down\" : \"flat\";\n      const dTxt = d > 0 ? `+${d}` : `${d}`;\n      const delta = `<span class=\"cam-lb-delta ${dCls}\" data-tip=\"Variaci\u00f3n de publicaciones\\n\u00daltimos 7 d\u00edas: ${c.actual} \u00b7 7 previos: ${c.previa}\">${dTxt}<\/span>`;\n      const name = c.chamber || \"\u2014\";\n      const ini = name.trim().split(\/\\s+\/).slice(0, 2).map(w => w[0] || \"\").join(\"\").toUpperCase();\n      const logo = c.logo_url\n        ? `<img decoding=\"async\" class=\"cam-lb-logo\" src=\"${escapeHtml(resolveLogo(c.logo_url))}\" alt=\"\" loading=\"lazy\">`\n        : `<span class=\"cam-lb-logo ph\" aria-hidden=\"true\">${escapeHtml(ini)}<\/span>`;\n      return `<li class=\"cam-lb-row ${i === 0 ? \"top\" : \"\"}\" data-vc-contact=\"${escapeHtml(name)}\" role=\"button\" tabindex=\"0\" aria-label=\"Seguir ${escapeHtml(name)} \u2014 contacta con Vinces\">\n        <span class=\"cam-lb-pos\">${c.pos_actual}<\/span>\n        ${chg}\n        ${logo}\n        <span class=\"cam-lb-name\" data-tip=\"${escapeHtml(name)}\">${escapeHtml(name)}<\/span>\n        <span class=\"cam-lb-count\" data-tip=\"Publications on the leading topic (last 7 days)\">${c.actual}<span class=\"u\">pub.<\/span><\/span>\n        ${delta}\n      <\/li>`;\n    }).join(\"\");\n    const more = document.getElementById(\"cam-lb-more\");\n    if (more) {\n      const rest = (lb.total_camaras || 0) - (lb.camaras || []).length;\n      if (rest > 0) { more.setAttribute(\"data-tip\", rest + \" c\u00e1maras m\u00e1s\"); more.hidden = false; }\n      else { more.hidden = true; }\n    }\n    box.hidden = false;\n  }\n\n  \/\/ Re-render del chart al activar su pane (Chart.js no calcula bien tama\u00f1os hidden)\n  window.VincesDash.onPaneActivated[\"pane-temas-act\"] = () => {\n    if (_temasActLast) renderTemasActivosChart(_temasActLast);\n  };\n\n  \/\/ ===== Modal de contacto (botones \"Seguir\" \/ c\u00e1maras) =====\n  function vcContact(label){\n    let m=document.getElementById(\"vcContactModal\");\n    if(!m){\n      m=document.createElement(\"div\"); m.className=\"vc-cmodal\"; m.id=\"vcContactModal\";\n      m.setAttribute(\"role\",\"dialog\"); m.setAttribute(\"aria-modal\",\"true\");\n      m.innerHTML='<div class=\"box\"><h4>Contact Vinces<\/h4><p id=\"vcContactMsg\"><\/p><div class=\"acts\"><a class=\"cta\" href=\"https:\/\/vincesconsulting.com\/contacto\/\" target=\"_blank\" rel=\"noopener\">Request a demo<\/a><button class=\"x\" type=\"button\">Cerrar<\/button><\/div><\/div>';\n      document.body.appendChild(m);\n      m.addEventListener(\"click\",ev=>{ if(ev.target===m||ev.target.classList.contains(\"x\")){ m.classList.remove(\"open\"); m.setAttribute(\"aria-hidden\",\"true\"); } });\n      document.addEventListener(\"keydown\",ev=>{ if(ev.key===\"Escape\"){ m.classList.remove(\"open\"); m.setAttribute(\"aria-hidden\",\"true\"); } });\n    }\n    m.querySelector(\"#vcContactMsg\").textContent = label\n      ? 'To follow \u201c'+label+'\u201d and receive tailored regulatory alerts, request a PolicyAlert demo.'\n      : 'Request a PolicyAlert demo and receive tailored regulatory alerts.';\n    m.classList.add(\"open\"); m.setAttribute(\"aria-hidden\",\"false\");\n  }\n  document.addEventListener(\"click\", e=>{\n    const b = e.target.closest && e.target.closest(\"[data-vc-contact]\");\n    if(b){ e.preventDefault(); e.stopPropagation(); vcContact(b.getAttribute(\"data-vc-contact\")); }\n  });\n  document.addEventListener(\"keydown\", e=>{\n    if(e.key!==\"Enter\"&&e.key!==\" \") return;\n    const b = e.target.closest && e.target.closest(\".cam-lb-row[data-vc-contact]\");\n    if(b){ e.preventDefault(); vcContact(b.getAttribute(\"data-vc-contact\")); }\n  });\n\n  \/\/ ===== Consultas \/ Audiencias (tarjetas agrupadas) =====\n  function renderConsCards(consultas, audiencias) {\n    const consGroups = document.querySelector(\"#cons-groups\");\n    if (!consGroups) return;\n\n    const byDateDesc = (a, b) => (b.initial_date || \"\").localeCompare(a.initial_date || \"\");\n    const fmtShort = (s) => {\n      if (!s) return \"\u2014\";\n      const d = new Date(s);\n      if (isNaN(d)) return escapeHtml(s);\n      return d.toLocaleDateString(LOCALE, { day: \"numeric\", month: \"short\", year: \"numeric\" });\n    };\n    const plazoBadge = (s) => {\n      if (!s) return \"\";\n      const end = new Date(s); if (isNaN(end)) return \"\";\n      const today = new Date(); today.setHours(0, 0, 0, 0); end.setHours(0, 0, 0, 0);\n      const d = Math.round((end - today) \/ 86400000);\n      let txt, cls;\n      if (d < 0) { txt = \"Deadline passed\"; cls = \"grey\"; }\n      else if (d === 0) { txt = \"Last day\"; cls = \"red\"; }\n      else if (d <= 7) { txt = `Closes in ${d} day${d > 1 ? \"s\" : \"\"}`; cls = \"red\"; }\n      else if (d <= 15) { txt = `Closes in ${d} days`; cls = \"amber\"; }\n      else { txt = `Closes in ${d} days`; cls = \"green\"; }\n      return `<span class=\"cons-plazo cons-plazo--${cls}\">${txt}<\/span>`;\n    };\n    \/\/ Deduce el organismo de origen a partir del dominio de la URL (de m\u00e1s espec\u00edfico a m\u00e1s gen\u00e9rico)\n    const ORG_MAP = [\n      [\"ec.europa.eu\", \"Comisi\u00f3n Europea\"],\n      [\"europarl.europa.eu\", \"Parlamento Europeo\"],\n      [\"europa.eu\", \"Uni\u00f3n Europea\"],\n      [\"miteco.gob.es\", \"Gobierno de Espa\u00f1a\"],\n      [\"cnmc.es\", \"CNMC\"],\n      [\"gva.es\", \"Generalitat Valenciana\"],\n      [\"carm.es\", \"Regi\u00f3n de Murcia\"],\n      [\"xunta.gal\", \"Xunta de Galicia\"],\n      [\"euskadi.eus\", \"Gobierno Vasco\"],\n      [\"juntadeandalucia.es\", \"Junta de Andaluc\u00eda\"],\n      [\"cantabria.es\", \"Gobierno de Cantabria\"],\n      [\"asturias.es\", \"Principado de Asturias\"],\n      [\"madrid.org\", \"Comunidad de Madrid\"],\n      [\"castillalamancha.es\", \"Castilla-La Mancha\"],\n      [\"jcyl.es\", \"Castilla y Le\u00f3n\"],\n      [\"aragon.es\", \"Gobierno de Arag\u00f3n\"],\n      [\"gobiernodecanarias.org\", \"Gobierno de Canarias\"],\n      [\"larioja.org\", \"Gobierno de La Rioja\"],\n      [\"navarra.es\", \"Gobierno de Navarra\"],\n      [\"caib.es\", \"Govern de les Illes Balears\"],\n      [\"gencat.cat\", \"Generalitat de Catalunya\"],\n      [\"juntaex.es\", \"Junta de Extremadura\"],\n      [\"participa.pt\", \"Gobierno de Portugal\"],\n      [\"gob.es\", \"Gobierno de Espa\u00f1a\"],\n    ];\n    const orgFromUrl = (url) => {\n      if (!url) return \"\";\n      let host = \"\";\n      try { host = new URL(url).hostname.toLowerCase(); }\n      catch { const m = String(url).match(\/^https?:\\\/\\\/([^\/]+)\/i); host = m ? m[1].toLowerCase() : \"\"; }\n      if (!host) return \"\";\n      for (const [needle, name] of ORG_MAP) if (host.indexOf(needle) !== -1) return name;\n      const parts = host.replace(\/^www\\.\/, \"\").split(\".\");\n      return parts.length >= 2 ? parts.slice(-2).join(\".\") : host;\n    };\n    const card = (c, kind, label, hidden) => {\n      const title = escapeHtml(c.title || \"\u2014\");\n      const titleEl = c.url\n        ? `<a class=\"cons-card-title\" href=\"${escapeHtml(c.url)}\" rel=\"noopener\" target=\"_blank\">${title}<\/a>`\n        : `<span class=\"cons-card-title\">${title}<\/span>`;\n      const org = orgFromUrl(c.url);\n      const orgIco = c.logo_url\n        ? `<img decoding=\"async\" class=\"cons-org-logo\" src=\"${escapeHtml(resolveLogo(c.logo_url))}\" alt=\"\" loading=\"lazy\">`\n        : CONS_ICO_ORG;\n      return `\n        <article class=\"cons-card cons-card--${kind}${hidden ? \" cons-card--hidden\" : \"\"}\">\n          <div class=\"cons-card-top\">\n            <span class=\"cons-badge cons-badge--${kind}\">${label}<\/span>\n            ${plazoBadge(c.end_date)}\n          <\/div>\n          ${titleEl}\n          <div class=\"cons-card-meta\">\n            <span class=\"cons-chip\">${CONS_ICO_DOC} ${escapeHtml(c.type || \"\u2014\")}<\/span>\n            <span class=\"cons-chip\">${LEY_ICO_CAL} ${fmtShort(c.initial_date)} \u2192 ${fmtShort(c.end_date)}<\/span>\n            ${org ? `<span class=\"cons-org\" title=\"Organismo de origen\">${orgIco} ${escapeHtml(org)}<\/span>` : \"\"}\n          <\/div>\n        <\/article>`;\n    };\n    \/\/ Una sola secci\u00f3n, organizada por URGENCIA (no por tipo). Consultas y\n    \/\/ audiencias se mezclan en cada grupo; el badge distingue el tipo.\n    const tag = (arr, kind, label) => arr.map(c => Object.assign({}, c, { __kind: kind, __label: label }));\n    const all = tag(consultas, \"consulta\", \"Consulta\").concat(tag(audiencias, \"audiencia\", \"Audiencia\"));\n    const hoy0 = new Date(); hoy0.setHours(0, 0, 0, 0);\n\n    \/\/ Clave de c\u00e1mara\/organismo para NO repetir en la secci\u00f3n\n    const chKey = (c) => c.chamber_id || orgFromUrl(c.url) || (\"id\" + c.id);\n    const pickDistinct = (arr, n, exclIds, seenCh) => {\n      const out = [];\n      seenCh = seenCh || new Set();\n      for (const c of arr) {\n        if (exclIds && exclIds.has(c.id)) continue;\n        const k = chKey(c);\n        if (seenCh.has(k)) continue;\n        seenCh.add(k);\n        out.push(c);\n        if (out.length >= n) break;\n      }\n      return out;\n    };\n\n    \/\/ Cierran pronto: plazo a\u00fan futuro, orden por cierre m\u00e1s pr\u00f3ximo, c\u00e1maras distintas\n    const cierranSorted = all.filter(c => {\n      if (!c.end_date) return false;\n      const e = new Date(c.end_date); if (isNaN(e)) return false;\n      e.setHours(0, 0, 0, 0);\n      return e >= hoy0;\n    }).sort((a, b) =>\n      (a.end_date || \"\").localeCompare(b.end_date || \"\") ||\n      (b.initial_date || \"\").localeCompare(a.initial_date || \"\")\n    );\n    const cierran = pickDistinct(cierranSorted, 3);\n\n    \/\/ Reci\u00e9n abiertas: por apertura desc, sin repetir c\u00e1mara (ni las ya usadas arriba)\n    const yaMostradas = new Set(cierran.map(c => c.id));\n    const yaCamaras = new Set(cierran.map(chKey));\n    const abiertasSorted = all.slice().sort((a, b) =>\n      (b.initial_date || \"\").localeCompare(a.initial_date || \"\") ||\n      (a.end_date || \"\").localeCompare(b.end_date || \"\")\n    );\n    const abiertas = pickDistinct(abiertasSorted, 3, yaMostradas, yaCamaras);\n\n    \/\/ Una sola rejilla: col1 = \"Reci\u00e9n abiertas\", col2 = \"Cierran pronto\".\n    \/\/ Se rellena a 3 tarjetas por grupo (huecos invisibles) para que, con\n    \/\/ grid-auto-flow:column, cada fila comparta celda y las cajitas de una misma\n    \/\/ fila tengan la misma altura.\n    const empty = '<div class=\"cons-card cons-card--empty\" aria-hidden=\"true\"><\/div>';\n    const cell = (c) => c ? card(c, c.__kind, c.__label, false) : empty;\n    const pad3 = (arr) => { const a = arr.slice(0, 3); while (a.length < 3) a.push(null); return a; };\n    const head = (t, n) => `<h6 class=\"cons-sub-title\">${t} <span class=\"cons-sub-count\">${n}<\/span><\/h6>`;\n\n    if (!all.length) {\n      consGroups.innerHTML = '<p class=\"empty\">No public consultations or hearings open at the moment.<\/p>';\n    } else {\n      const colA = head(\"Recently opened\", abiertas.length) + pad3(abiertas).map(cell).join(\"\");\n      const colC = head(\"Closing soon\", cierran.length) + pad3(cierran).map(cell).join(\"\");\n      consGroups.innerHTML = `<div class=\"cons-2col\">${colA}${colC}<\/div>`;\n    }\n    consGroups.hidden = false;\n    const consTable = document.querySelector(\"#seo-table-consultas\");\n    if (consTable) consTable.style.display = \"none\";\n  }\n\n  \/\/ Respaldo sin API: construye las tarjetas leyendo la tabla est\u00e1tica del HTML.\n  function renderConsCardsFromStaticTable() {\n    const table = document.querySelector(\"#seo-table-consultas\");\n    if (!table || table.style.display === \"none\") return;\n    const consultas = [], audiencias = [];\n    table.querySelectorAll(\"tbody tr\").forEach(tr => {\n      const tds = tr.querySelectorAll(\"td\");\n      if (tds.length < 5) return;\n      const bloque = (tds[0].textContent || \"\").trim().toLowerCase();\n      const link = tds[1].querySelector(\"a\");\n      const t3 = tds[3].querySelector(\"time\");\n      const t4 = tds[4].querySelector(\"time\");\n      const item = {\n        title: (tds[1].textContent || \"\").trim(),\n        url: link ? link.getAttribute(\"href\") : \"\",\n        type: (tds[2].textContent || \"\").trim(),\n        initial_date: t3 ? t3.getAttribute(\"datetime\") : \"\",\n        end_date: t4 ? t4.getAttribute(\"datetime\") : \"\",\n      };\n      if (bloque.indexOf(\"audiencia\") !== -1) audiencias.push(item);\n      else consultas.push(item);\n    });\n    if (consultas.length || audiencias.length) renderConsCards(consultas, audiencias);\n  }\n\n  \/\/ ===== Tablas SEO =====\n  function renderSeoTables(data) {\n    const leyesBody = document.querySelector(\"#seo-table-leyes tbody\");\n    if (leyesBody) {\n      const list = data.leyes || [];\n      if (!list.length) {\n        leyesBody.innerHTML = '<tr><td colspan=\"5\" class=\"muted-cell\">Sin datos disponibles.<\/td><\/tr>';\n      } else {\n        leyesBody.innerHTML = list.map(l => {\n          const fase = (l.pasos || [])[l.indice_paso_actual] || l.estado_actual || \"\u2014\";\n          return `<tr itemscope itemtype=\"https:\/\/schema.org\/Legislation\">\n            <td itemprop=\"name\">${escapeHtml(l.titulo || \"\u2014\")}<\/td>\n            <td>${escapeHtml(l.tipo || \"\u2014\")}<\/td>\n            <td>${escapeHtml(l.chamber || \"\u2014\")}<\/td>\n            <td itemprop=\"legislationStatus\">${escapeHtml(fase)}<\/td>\n            <td><time datetime=\"${escapeHtml(l.ultima_actualizacion || \"\")}\">${fmtDate(l.ultima_actualizacion)}<\/time><\/td>\n          <\/tr>`;\n        }).join(\"\");\n      }\n    }\n\n    const k = data.policyalert_kpis || {};\n    renderConsCards(\n      (k.consultas_publicas && k.consultas_publicas.items) || [],\n      (k.audiencias_publicas && k.audiencias_publicas.items) || []\n    );\n  }\n\n  \/\/ ===== Load =====\n  function load() {\n    loadDashboardData(DEFAULT_API_URL, data => {\n      renderLeyes(data.leyes);\n      renderPolicyAlertKpis(data.policyalert_kpis);\n      renderTemasActivosChart(data.temas_activos_semana);\n      renderCamarasLeaderboard(data.camaras_leaderboard);\n      renderSeoTables(data);\n      setUpdatedPill(data, null);\n    }, (msg, kind) => {\n      setUpdatedPill(null, kind === \"network\" ? \"Connection error\" : kind === \"http\" ? \"HTTP error\" : \"Error\");\n      $(\"#leyes-list\").innerHTML = `<p class=\"error\">${msg}<\/p>`;\n    });\n  }\n\n  \/\/ V\u00eddeos de YouTube: carga diferida (click-to-load, youtube-nocookie)\n  function initYouTubeFacades(){\n    document.querySelectorAll(\".yt-facade\").forEach(function(f){\n      function load(){\n        var id=f.getAttribute(\"data-yt\"); if(!id) return;\n        var wrap=document.createElement(\"div\"); wrap.className=\"yt-embed\";\n        var ifr=document.createElement(\"iframe\");\n        ifr.src=\"https:\/\/www.youtube-nocookie.com\/embed\/\"+id+\"?autoplay=1&rel=0\";\n        ifr.title=f.getAttribute(\"aria-label\")||\"V\u00eddeo de YouTube\";\n        ifr.setAttribute(\"allow\",\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\");\n        ifr.setAttribute(\"allowfullscreen\",\"\");\n        wrap.appendChild(ifr);\n        f.replaceWith(wrap);\n      }\n      f.addEventListener(\"click\",load);\n      f.addEventListener(\"keydown\",function(e){if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();load();}});\n    });\n  }\n\n  \/\/ Tooltip propio para [data-tip] (estilo del custom-tooltip de la plataforma)\n  function initCustomTooltips(){\n    var tip=null, current=null;\n    function ensure(){ if(!tip){ tip=document.createElement('div'); tip.className='pa-tooltip'; tip.setAttribute('role','tooltip'); document.body.appendChild(tip);} return tip; }\n    function place(el){ var t=ensure(); var r=el.getBoundingClientRect(); var tr=t.getBoundingClientRect();\n      var top=r.top-tr.height-8; if(top<4) top=r.bottom+8;\n      var left=r.left+r.width\/2-tr.width\/2; left=Math.max(6,Math.min(left,window.innerWidth-tr.width-6));\n      t.style.top=Math.round(top)+'px'; t.style.left=Math.round(left)+'px'; }\n    function show(el){ var txt=el.getAttribute('data-tip'); if(!txt) return; var t=ensure(); t.textContent=txt; t.classList.add('show'); place(el); current=el; }\n    function hide(){ if(tip) tip.classList.remove('show'); current=null; }\n    document.addEventListener('mouseover',function(e){ var el=e.target.closest&&e.target.closest('[data-tip]'); if(el&&el!==current) show(el); });\n    document.addEventListener('mouseout',function(e){ var el=e.target.closest&&e.target.closest('[data-tip]'); if(el&&!el.contains(e.relatedTarget)) hide(); });\n    document.addEventListener('focusin',function(e){ var el=e.target.closest&&e.target.closest('[data-tip]'); if(el) show(el); });\n    document.addEventListener('focusout',hide);\n    window.addEventListener('scroll',function(){ if(current) place(current); },true);\n  }\n\n  initCarousels();\n  initYouTubeFacades();\n  initCustomTooltips();\n  \/\/ Pinta las tarjetas de consultas desde la tabla est\u00e1tica de inmediato (funciona sin API);\n  \/\/ si la API responde, renderSeoTables las re-renderiza con datos frescos.\n  renderConsCardsFromStaticTable();\n  const absUrl = `${window.location.protocol}\/\/${window.location.host}\/api\/dashboard-publico\/policyalert\/`;\n  bindDownloadExternalHtml(absUrl);\n\n  load();\n  setInterval(load, window.VincesDash.REFRESH_MS);\n})();\n<\/script>\n\n\n\n<script>\n(function(){\n  function wrapHeroRight(){\n    \/* El pill y el CTA viven ahora bajo el texto (.vc-hero-actions) y la\n       rueda es el segundo elemento del grid. No reagrupamos nada. *\/\n    return;\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', wrapHeroRight);\n  } else {\n    wrapHeroRight();\n  }\n})();\n<\/script>\n\n<\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PolicyAlert \u00b7 Regulatory intelligence Anticipate every regulatory change PolicyAlert combines automated monitoring with the judgement of Vinces analysts to alert you \u2014and explain\u2014 what truly affects you, with time to act. Loading data\u2026 Contact What we monitor Congreso, Senado and regions Public consultations &amp; hearings Votes &amp; amendments Expert analysis, not just AI Appointments &amp; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4956,"parent":11881,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6151","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/pages\/6151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/comments?post=6151"}],"version-history":[{"count":0,"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/pages\/6151\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/pages\/11881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/media\/4956"}],"wp:attachment":[{"href":"https:\/\/vincesconsulting.com\/en\/wp-json\/wp\/v2\/media?parent=6151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}