/* Tema Nubidoc: estilos de los patrones. Los tokens (colores, fuente, tamaños) vienen de theme.json. */

:where(body) { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Piezas de texto */
.nubidoc-eyebrow { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--indigo); }
.nubidoc-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; color: var(--wp--preset--color--texto); }
.nubidoc-small { font-size: 14px; color: var(--wp--preset--color--atenuado); }

/* Botones */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; white-space: nowrap; }
.wp-block-button.is-style-secundario .wp-block-button__link { background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--slate); border-color: #CBD5E1; }
.wp-block-button.is-style-secundario .wp-block-button__link:hover { border-color: var(--wp--preset--color--slate); background: var(--wp--preset--color--blanco); }
.wp-block-button.is-style-sobre-oscuro .wp-block-button__link { background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--slate); }
.wp-block-button.is-style-sobre-oscuro .wp-block-button__link:hover { background: var(--wp--preset--color--tinte-50); }
.nubidoc-btn-lg .wp-block-button__link { min-height: 56px; padding-left: 28px; padding-right: 28px; font-size: 17px; }
.nubidoc-btn-ghost .wp-block-button__link { background: transparent; color: var(--wp--preset--color--slate); padding-left: 10px; padding-right: 10px; min-height: 44px; }
.nubidoc-btn-ghost .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--indigo); }

/* Cabecera */
.nubidoc-nav { padding: 18px 48px; border-bottom: 1px solid var(--wp--preset--color--linea); background: var(--wp--preset--color--blanco); }
@media (min-width: 1600px) { .nubidoc-nav { padding-left: calc((100% - 1500px) / 2); padding-right: calc((100% - 1500px) / 2); } }
.nubidoc-nav .wp-block-site-logo img { height: 36px; width: auto; }
.nubidoc-nav .wp-block-navigation { font-weight: 500; font-size: 16px; }
.nubidoc-nav .wp-block-navigation a { color: var(--wp--preset--color--slate); }
.nubidoc-nav .wp-block-navigation a:hover { color: var(--wp--preset--color--indigo); }
.nubidoc-nav .wp-block-navigation__container { gap: 30px; }
.nubidoc-nav .wp-block-buttons { gap: 10px; }

/* Menú de dos niveles: el desplegable de «Producto» y «Especialidades» */
.nubidoc-nav .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; box-shadow: 0 24px 48px -24px rgba(51, 65, 85, 0.35); padding: 8px; min-width: 264px; background: var(--wp--preset--color--blanco); }
.nubidoc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 9px 12px; border-radius: 6px; font-size: 15px; }
.nubidoc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content { background: var(--wp--preset--color--tinte-50); color: var(--wp--preset--color--indigo); }
.nubidoc-nav .wp-block-navigation-submenu__toggle svg { opacity: .6; }

/* Portada */
.nubidoc-hero { padding-top: 88px; background: linear-gradient(180deg, var(--wp--preset--color--tinte-50) 0%, var(--wp--preset--color--blanco) 62%); }
.nubidoc-hero .nubidoc-eyebrow { margin-bottom: 14px; }
.nubidoc-hero .wp-block-heading { max-width: 20ch; margin-left: auto; margin-right: auto; }
.nubidoc-hero .nubidoc-lead { max-width: 58ch; margin: 24px auto 0; }
.nubidoc-hero .wp-block-buttons { margin-top: 32px; }
.nubidoc-hero .nubidoc-seals { margin-top: 28px; }
.nubidoc-seals { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; font-size: 15px; font-weight: 500; color: var(--wp--preset--color--slate); margin: 0; }
.nubidoc-seals span { display: inline-flex; align-items: center; gap: 8px; }
.nubidoc-seals svg { width: 18px; height: 18px; flex: none; }
.nubidoc-product { margin: 56px auto 0; max-width: 1120px; }
.nubidoc-product img { border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; box-shadow: 0 40px 80px -40px rgba(51, 65, 85, 0.35); display: block; }
/* Lema de la portada: el H1 lleva la palabra clave y el lema va justo debajo, grande */
.nubidoc-lema { font-size: clamp(24px, 2.6vw, 34px); font-weight: 600; color: var(--wp--preset--color--slate); letter-spacing: -0.02em; line-height: 1.2; }
.nubidoc-hero .nubidoc-lema { margin-top: 16px; }
.nubidoc-hero .nubidoc-lema + .nubidoc-lead { margin-top: 18px; }

/* Vídeo de presentación: se ve el póster y no se descarga nada hasta que se pulsa */
.nubidoc-video .nb-video { margin-top: 30px; }
.nb-video { position: relative; border-radius: 8px; overflow: hidden; border: 1px solid var(--wp--preset--color--linea); box-shadow: 0 40px 80px -40px rgba(51, 65, 85, 0.35); background: var(--wp--preset--color--slate); }
.nb-video video { display: block; width: 100%; height: auto; }
.nb-video-play { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; border: 0; padding: 0; background: rgba(51, 65, 85, 0.30); color: var(--wp--preset--color--blanco); font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; transition: background .2s ease; }
.nb-video-play:hover, .nb-video-play:focus-visible { background: rgba(51, 65, 85, 0.44); outline: none; }
.nb-video-play svg { width: 62px; height: 62px; padding: 18px; box-sizing: border-box; fill: var(--wp--preset--color--indigo); background: var(--wp--preset--color--blanco); border-radius: 50%; box-shadow: 0 14px 34px -12px rgba(0, 0, 0, 0.55); transition: transform .2s ease; }
.nb-video-play:hover svg { transform: scale(1.06); }
.nb-video-play span { background: rgba(15, 23, 42, 0.74); padding: 8px 16px; border-radius: 6px; letter-spacing: 0.01em; }
.nb-video.is-reproduciendo .nb-video-play { display: none; }

.nubidoc-placeholder { background: repeating-linear-gradient(135deg, #F1F5F9 0 12px, #E2E8F0 12px 24px); border: 1px dashed #94A3B8; border-radius: 8px; min-height: 420px; display: flex; align-items: center; justify-content: center; color: var(--wp--preset--color--atenuado); font-weight: 600; text-align: center; padding: 24px; }

/* Titulares de sección: ancho de su columna (la fija cada grupo); la clase queda como marca, sin selfStretch */
.nubidoc-h2-max { width: 100%; }

/* Secciones */
.nubidoc-section { padding-top: 96px; padding-bottom: 96px; }
.nubidoc-section-alt { background: var(--wp--preset--color--fondo-alt); }
.nubidoc-band { background: var(--wp--preset--color--slate); color: var(--wp--preset--color--blanco); padding-top: 96px; padding-bottom: 96px; }
.nubidoc-band h2, .nubidoc-band h3 { color: var(--wp--preset--color--blanco); }
.nubidoc-band p { color: #CBD5E1; }

/* Aire entre bloques hermanos en cualquier grupo de contenido */
.wp-block-group.is-layout-constrained > * + * { margin-top: 14px; }
.wp-block-group.is-layout-constrained > .nubidoc-eyebrow + * { margin-top: 8px; }
.wp-block-group.is-layout-constrained > h2 + .nubidoc-lead { margin-top: 14px; }
.wp-block-group.is-layout-constrained > * + .nubidoc-cards, .wp-block-group.is-layout-constrained > * + .nb-carrusel { margin-top: 28px; }

/* Aire entre bloques dentro de columnas y tarjetas (el margen 0 de los párrafos no debe pegarlos al título) */
.wp-block-column > * + *, .nubidoc-section .wp-block-group.is-layout-flow > * + * { margin-top: 14px; }
.wp-block-column > h2 + *, .wp-block-column > h3 + * { margin-top: 12px; }
.wp-block-column > .nubidoc-eyebrow + * { margin-top: 8px; }
.wp-block-column > .wp-block-buttons { margin-top: 22px; }

/* Bloques de funcionalidad (columnas texto + captura) */
.nubidoc-feature { padding-top: 48px; padding-bottom: 48px; }
.nubidoc-feature .wp-block-columns { gap: 72px; align-items: center; }
.nubidoc-feature h3 { font-size: 30px; letter-spacing: -0.02em; }
.nubidoc-feature ul { list-style: none; padding-left: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 8px; }
.nubidoc-feature li { padding-left: 28px; position: relative; }
.nubidoc-feature li::before { content: ""; position: absolute; left: 0; top: 7px; width: 18px; height: 12px; border-left: 2.5px solid var(--wp--preset--color--indigo); border-bottom: 2.5px solid var(--wp--preset--color--indigo); transform: rotate(-45deg) scale(.75); }
.nubidoc-shot { background: var(--wp--preset--color--fondo-alt); border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; padding: 22px; }
.nubidoc-shot img { border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; display: block; }

/* Cabecera de página interior: texto a un lado, captura del programa al otro */
.nubidoc-hero-pagina { padding-top: 64px; padding-bottom: 80px; background: linear-gradient(180deg, var(--wp--preset--color--tinte-50) 0%, var(--wp--preset--color--blanco) 78%); }
.nubidoc-hero-pagina .wp-block-columns { gap: 56px; align-items: center; }
.nubidoc-hero-pagina h1 { font-size: clamp(34px, 3.4vw, 48px); letter-spacing: -0.03em; }
/* El tope de 15ch es para la cabecera a dos columnas; en la centrada estrangula el titular. */
.nubidoc-hero-pagina:not(.nubidoc-hero-centrado) h1 { max-width: 15ch; }
.nubidoc-hero-pagina .nubidoc-lead { max-width: 48ch; }
.nubidoc-hero-pagina .wp-block-buttons { margin-top: 26px; }
.nubidoc-hero-pagina .nubidoc-small { margin-top: 18px; }
.nubidoc-hero-pagina .nubidoc-small strong { color: var(--wp--preset--color--slate); }
.nubidoc-hero-pagina .nubidoc-shot { padding: 18px; }
.nubidoc-hero-pagina .nubidoc-seals { justify-content: flex-start; gap: 12px 20px; font-size: 14px; margin-top: 22px; }
/* Variante centrada de la cabecera interior: precios, nosotros, legales */
.nubidoc-hero-centrado { padding-bottom: 56px; }
/* El contenedor ya limita a 820 px, así que aquí no hace falta ningún tope en ch: estrangulaba
   los titulares largos. El ancho completo es lo que evita que la entradilla parezca más ancha
   que el título cuando «text-wrap: balance» reparte las líneas (misma idea que .nubidoc-h2-max). */
/* «text-wrap: balance» reparte las líneas pero encoge la caja del titular, y entonces la
   entradilla parece más ancha que él. En la cabecera centrada el titular ocupa su columna. */
.nubidoc-hero-centrado h1 { width: 100%; text-wrap: pretty; }
.nubidoc-hero-centrado .nubidoc-lead { max-width: 62ch; margin-left: auto; margin-right: auto; }
.nubidoc-hero-centrado .wp-block-buttons { margin-top: 30px; }

/* Seccion que va pegada a una cabecera: menos aire arriba */
.nubidoc-section-corta { padding-top: 56px; }

/* Tarjeta del plan: la que manda en la pagina de precios */
.nubidoc-card-plan { border-color: var(--wp--preset--color--tinte-100); box-shadow: 0 30px 60px -40px rgba(51, 65, 85, 0.35); padding: 32px; }
.nubidoc-card-plan .wp-block-buttons { margin-top: 4px; }
.nubidoc-card-plan .wp-block-button { width: 100%; }
.nubidoc-card-plan .wp-block-button__link { width: 100%; }

/* Nota de los bonos de mensajes, debajo de la rejilla de modulos */
.nubidoc-nota-tienda { margin-top: 24px !important; }
.nubidoc-nota-tienda strong { color: var(--wp--preset--color--slate); }

/* Página de reservar demo: texto a un lado, formulario en su tarjeta al otro */
.nubidoc-hero-demo .wp-block-columns { align-items: flex-start; gap: 48px; }
.nubidoc-hero-demo h1 { max-width: 17ch; }
.nubidoc-hero-demo .nubidoc-lista-check { margin-top: 22px; }
.nubidoc-contacto-directo { margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--wp--preset--color--linea); }
.nubidoc-contacto-directo strong { color: var(--wp--preset--color--slate); font-size: 20px; }
.nubidoc-card-form { padding: 32px; }
.nubidoc-card-form h2 { font-size: 26px; letter-spacing: -0.02em; }

/* El formulario de Fluent Forms, con la tipografía y los botones de la marca.
   Se cuelga de .frm-fluent-form porque el cssClassName de los ajustes no llega al <form>. */
main .frm-fluent-form { font-family: inherit; margin-top: 22px; }
main .frm-fluent-form .ff-el-group { margin-bottom: 18px; }
main .frm-fluent-form .ff-el-input--label label { font-weight: 600; color: var(--wp--preset--color--slate); font-size: 15px; margin-bottom: 6px; }
main .frm-fluent-form .ff-el-form-control { width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; color: var(--wp--preset--color--slate); background: var(--wp--preset--color--blanco); border: 1.5px solid #CBD5E1; border-radius: 6px; padding: 12px 14px; min-height: 48px; transition: border-color .15s ease, box-shadow .15s ease; }
main .frm-fluent-form textarea.ff-el-form-control { min-height: 108px; }
main .frm-fluent-form .ff-el-form-control:focus { border-color: var(--wp--preset--color--indigo); box-shadow: 0 0 0 3px var(--wp--preset--color--tinte-100); outline: none; }
main .frm-fluent-form .ff-el-form-control::placeholder { color: #94A3B8; }
main .frm-fluent-form .ff-el-help-message { font-size: 13px; color: var(--wp--preset--color--atenuado); margin-top: 6px; }
main .frm-fluent-form .ff-el-is-error .ff-el-form-control { border-color: #DC2626; }
main .frm-fluent-form .error, main .frm-fluent-form .text-danger { color: #DC2626; font-size: 13px; }
main .frm-fluent-form .ff_tc_label, main .frm-fluent-form .ff-el-form-check-label { font-size: 14px; color: var(--wp--preset--color--texto); line-height: 1.5; }
main .frm-fluent-form .ff-el-form-check input[type="checkbox"] { margin-right: 8px; accent-color: var(--wp--preset--color--indigo); }
main .frm-fluent-form .ff-btn.ff-btn-submit { font: inherit; font-weight: 600; font-size: 17px; background: var(--wp--preset--color--indigo); color: var(--wp--preset--color--blanco); border: 0; border-radius: 6px; padding: 15px 26px; min-height: 54px; width: 100%; cursor: pointer; transition: background .15s ease; }
main .frm-fluent-form .ff-btn.ff-btn-submit:hover { background: var(--wp--preset--color--indigo-oscuro); }
main .frm-fluent-form .ff-el-group:last-child { margin-bottom: 0; }
main .frm-fluent-form .ff-btn-submit:hover { background: var(--wp--preset--color--indigo-oscuro); }
main .frm-fluent-form .ff-message-success { border: 1px solid var(--wp--preset--color--tinte-100); background: var(--wp--preset--color--tinte-50); color: var(--wp--preset--color--slate); border-radius: 6px; padding: 22px; }

/* Entradas del blog. El contenido de las 141 entradas es HTML clásico, no bloques: no hereda el
   blockGap del tema, así que su ritmo tipográfico se pone aquí. Son las páginas que más tráfico
   traen (la primera, 1.073 clics en 373 días), así que se leen más que ninguna otra. */
.nubidoc-entrada .wp-block-post-title { margin-top: 10px; font-size: clamp(32px, 3.4vw, 46px); letter-spacing: -0.03em; }
.nubidoc-entrada .wp-block-post-date { margin-top: 12px; }
.nubidoc-entrada .wp-block-post-featured-image { margin-top: 32px; }
.nubidoc-entrada .wp-block-post-content { margin-top: 36px; font-size: 18px; line-height: 1.7; }
.nubidoc-entrada .wp-block-post-content > * { margin-top: 0; margin-bottom: 22px; }
.nubidoc-entrada .wp-block-post-content > *:last-child { margin-bottom: 0; }
.nubidoc-entrada .wp-block-post-content h2 { font-size: 30px; margin-top: 48px; margin-bottom: 14px; }
.nubidoc-entrada .wp-block-post-content h3 { font-size: 23px; margin-top: 34px; margin-bottom: 10px; }
.nubidoc-entrada .wp-block-post-content h4 { font-size: 19px; margin-top: 28px; margin-bottom: 8px; color: var(--wp--preset--color--slate); }
.nubidoc-entrada .wp-block-post-content ul, .nubidoc-entrada .wp-block-post-content ol { padding-left: 22px; }
.nubidoc-entrada .wp-block-post-content li { margin-bottom: 8px; }
.nubidoc-entrada .wp-block-post-content li:last-child { margin-bottom: 0; }
.nubidoc-entrada .wp-block-post-content img { max-width: 100%; height: auto; border-radius: 8px; }
.nubidoc-entrada .wp-block-post-content blockquote { margin-left: 0; margin-right: 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--wp--preset--color--indigo); color: var(--wp--preset--color--slate); }
.nubidoc-entrada .wp-block-post-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.nubidoc-entrada .wp-block-post-content th, .nubidoc-entrada .wp-block-post-content td { border: 1px solid var(--wp--preset--color--linea); padding: 10px 12px; text-align: left; }

/* Índice de contenidos (Easy Table of Contents): se sale de la columna si no se le pone freno */
.nubidoc-entrada #ez-toc-container { box-sizing: border-box; max-width: 100%; background: var(--wp--preset--color--fondo-alt); border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; padding: 22px 26px; margin: 0 0 32px; box-shadow: none; }
.nubidoc-entrada #ez-toc-container .ez-toc-title { font-weight: 700; color: var(--wp--preset--color--slate); font-size: 16px; }
.nubidoc-entrada #ez-toc-container ul, .nubidoc-entrada #ez-toc-container ul.ez-toc-list { box-sizing: border-box; max-width: 100%; padding-left: 18px; margin: 10px 0 0; }
.nubidoc-entrada #ez-toc-container ul ul { margin-top: 6px; }
.nubidoc-entrada #ez-toc-container li { margin-bottom: 6px; font-size: 16px; }
.nubidoc-entrada #ez-toc-container a { color: var(--wp--preset--color--texto); }
.nubidoc-entrada #ez-toc-container a:hover { color: var(--wp--preset--color--indigo); }

/* Páginas de texto: legales y FAQ. Mismo ritmo de lectura que una entrada, con la cabecera
   separada del cuerpo y sin imagen destacada. */
.nubidoc-texto .wp-block-post-title { margin-bottom: 8px; }
.nubidoc-texto .wp-block-post-content { margin-top: 28px; font-size: 17px; }
.nubidoc-texto .wp-block-post-content h2 { font-size: 26px; margin-top: 40px; }
.nubidoc-texto .wp-block-post-content h3 { font-size: 20px; margin-top: 28px; }
/* Los legales llevan URL largas escritas enteras (la de exclusión de Google Analytics, por
   ejemplo) y en un móvil desbordan la pantalla si no se les deja partirse. */
.nubidoc-texto .wp-block-post-content p, .nubidoc-texto .wp-block-post-content li,
.nubidoc-texto .wp-block-post-content a, .nubidoc-texto .wp-block-post-content td { overflow-wrap: anywhere; }
/* Tablas heredadas de 2018: se meten en una caja que se desliza, para que en un móvil no
   arrastren la página entera hacia la derecha. */
.nubidoc-tabla { overflow-x: auto; margin: 0 0 24px; border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; }
.nubidoc-entrada .wp-block-post-content .nubidoc-tabla table { display: table; width: 100%; min-width: 680px; max-width: none; table-layout: fixed; border-collapse: collapse; margin: 0; overflow: visible; }
.nubidoc-texto .wp-block-post-content .nubidoc-tabla th, .nubidoc-texto .wp-block-post-content .nubidoc-tabla td { overflow-wrap: break-word; word-break: normal; }
.nubidoc-tabla th, .nubidoc-tabla td { border: 0; border-bottom: 1px solid var(--wp--preset--color--linea); padding: 12px 14px; text-align: left; vertical-align: top; font-size: 15px; }
.nubidoc-tabla thead th, .nubidoc-tabla tr:first-child th { background: var(--wp--preset--color--fondo-alt); color: var(--wp--preset--color--slate); font-weight: 600; }
.nubidoc-tabla tr:last-child td { border-bottom: 0; }

/* Enlace para reabrir el panel de preferencias de cookies, en la política de cookies */
.nubidoc-cookies-ajustes { margin: 0 0 28px; }
.nubidoc-cookies-ajustes a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; border: 1.5px solid #CBD5E1; border-radius: 6px; padding: 12px 18px; color: var(--wp--preset--color--slate); }
.nubidoc-cookies-ajustes a:hover { border-color: var(--wp--preset--color--indigo); color: var(--wp--preset--color--indigo); }

/* Caja del blog que lleva de un artículo a su landing */
.nubidoc-caja-blog { background: var(--wp--preset--color--tinte-50); border: 1px solid var(--wp--preset--color--tinte-100); border-radius: 8px; padding: 28px; margin: 40px 0; }
.nubidoc-caja-blog h3 { font-size: 22px; margin: 0 0 10px; }
.nubidoc-caja-blog p { margin: 0; color: var(--wp--preset--color--texto); }
.nubidoc-caja-blog-enlaces { list-style: none; padding-left: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 10px 24px; }
.nubidoc-caja-blog-enlaces li { padding-left: 20px; position: relative; }
.nubidoc-caja-blog-enlaces li::before { content: ""; position: absolute; left: 0; top: 8px; width: 8px; height: 8px; border-right: 2px solid var(--wp--preset--color--indigo); border-top: 2px solid var(--wp--preset--color--indigo); transform: rotate(45deg); }
.nubidoc-caja-blog-enlaces a { font-weight: 600; }

/* Lista con marca de verificación dentro de una tarjeta */
.nubidoc-lista-check { list-style: none; padding-left: 0; margin: 4px 0 0; display: flex; flex-direction: column; gap: 10px; }
.nubidoc-lista-check li { padding-left: 28px; position: relative; }
.nubidoc-lista-check li::before { content: ""; position: absolute; left: 0; top: 7px; width: 18px; height: 12px; border-left: 2.5px solid var(--wp--preset--color--indigo); border-bottom: 2.5px solid var(--wp--preset--color--indigo); transform: rotate(-45deg) scale(.75); }

/* Banda de cierre del pie */
.nubidoc-band .wp-block-buttons { margin-top: 28px; }

/* Tarjetas */
.nubidoc-cards { gap: 20px; }
.nubidoc-card { background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; padding: 26px; display: flex; flex-direction: column; gap: 10px; }
.nubidoc-card h3 { font-size: 22px; }
.nubidoc-card p { margin: 0; }
.nubidoc-card .nubidoc-card-link { font-weight: 600; margin-top: auto; }

/* Bienvenida: secuencia editorial de pasos, editable con bloques nativos. */
.nubidoc-flujo-bienvenida > .wp-block-buttons { margin-top: 28px; }
.nubidoc-paso { border-top: 3px solid var(--wp--preset--color--indigo); }
.nubidoc-paso .nubidoc-eyebrow { margin: 0; }
.nubidoc-flujo-portal figure { max-width: 290px; margin: 0 auto; }
.nubidoc-flujo-portal img { width: 100%; height: auto; }

/* Lista de módulos con su precio a la derecha, dentro de la tarjeta de precio */
.nubidoc-lista-precio { list-style: none; padding-left: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 10px; }
.nubidoc-lista-precio li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--wp--preset--color--linea); padding-bottom: 10px; }
.nubidoc-lista-precio li:last-child { border-bottom: 0; padding-bottom: 0; }
.nubidoc-lista-precio span { color: var(--wp--preset--color--slate); font-weight: 600; white-space: nowrap; }

/* Cifras grandes de la página de nosotros */
.nubidoc-cifras .nubidoc-card { gap: 6px; }
.nubidoc-cifra { font-size: 48px; font-weight: 700; color: var(--wp--preset--color--indigo); letter-spacing: -0.03em; line-height: 1; }

/* Tienda de módulos: cada módulo se despliega y cuenta qué es */
.nubidoc-modulos { margin-top: 4px; }
.nubidoc-modulo { border-bottom: 1px solid var(--wp--preset--color--linea); }
.nubidoc-modulo:last-child { border-bottom: 0; }
.nubidoc-modulo > summary { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 13px 0; cursor: pointer; list-style: none; }
.nubidoc-modulo > summary::-webkit-details-marker { display: none; }
.nubidoc-modulo-nombre { position: relative; padding-right: 20px; color: var(--wp--preset--color--texto); }
.nubidoc-modulo-nombre::after { content: ""; position: absolute; right: 2px; top: 6px; width: 8px; height: 8px; border-right: 2px solid var(--wp--preset--color--indigo); border-bottom: 2px solid var(--wp--preset--color--indigo); transform: rotate(45deg); transition: transform .2s ease; }
.nubidoc-modulo[open] .nubidoc-modulo-nombre::after { transform: rotate(-135deg); top: 9px; }
.nubidoc-modulo > summary:hover .nubidoc-modulo-nombre { color: var(--wp--preset--color--indigo); }
.nubidoc-modulo-precio { color: var(--wp--preset--color--slate); font-weight: 600; white-space: nowrap; }
.nubidoc-modulo-cuerpo { padding: 0 0 16px; }
.nubidoc-modulo-cuerpo p { margin: 0 0 8px; font-size: 15px; color: var(--wp--preset--color--texto); }
.nubidoc-modulo-enlace { font-weight: 600; }
.nubidoc-modulo-enlace a { font-size: 14px; }

/* Bonos de mensajes: no son una cuota, así que no van en letra pequeña */
.nubidoc-bono { align-items: flex-start; text-align: left; }
.nubidoc-bono .nubidoc-cifra { font-size: 44px; }
.nubidoc-bono-que { margin-top: 2px !important; color: var(--wp--preset--color--texto); }
.nubidoc-bono-precio { margin-top: 10px !important; font-size: 22px; font-weight: 700; color: var(--wp--preset--color--slate); }

/* Precio */
.nubidoc-price { font-size: 52px; font-weight: 700; color: var(--wp--preset--color--slate); letter-spacing: -0.03em; line-height: 1; }
.nubidoc-price small { font-size: 17px; font-weight: 500; color: var(--wp--preset--color--atenuado); letter-spacing: 0; }
.nubidoc-tag { display: inline-flex; align-items: center; background: var(--wp--preset--color--tinte-50); color: var(--wp--preset--color--indigo-oscuro); font-weight: 600; font-size: 13px; padding: 4px 10px; border-radius: 4px; }

/* FAQ con bloques de detalles */
.nubidoc-faq { border-top: 1px solid var(--wp--preset--color--linea); }
.nubidoc-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--linea); padding: 18px 0; }
.nubidoc-faq summary { font-weight: 600; color: var(--wp--preset--color--slate); font-size: 18px; cursor: pointer; }
.nubidoc-faq .wp-block-details p { margin-top: 10px; }
.nubidoc-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.nubidoc-faq summary::-webkit-details-marker { display: none; }
.nubidoc-faq summary::after { content: ""; flex: 0 0 auto; width: 10px; height: 10px; margin: 0 6px 4px 0; border-right: 2px solid var(--wp--preset--color--indigo); border-bottom: 2px solid var(--wp--preset--color--indigo); transform: rotate(45deg); transition: transform .25s; }
.nubidoc-faq details[open] summary::after { transform: rotate(-135deg); margin-bottom: -4px; }
.nubidoc-faq .wp-block-details p { max-width: 72ch; color: var(--wp--preset--color--texto); }
.nubidoc-faq-mas { margin-top: 22px !important; color: var(--wp--preset--color--atenuado); }
/* Vídeo de presentación en el hero: mismo marco que la captura */
.nubidoc-product video { display: block; width: 100%; height: auto; border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; box-shadow: 0 40px 80px -40px rgba(51, 65, 85, 0.35); background: var(--wp--preset--color--blanco); }

/* Pie */
.nubidoc-footer { background: var(--wp--preset--color--slate); color: #CBD5E1; padding-top: 64px; padding-bottom: 40px; border-top: 1px solid rgba(255,255,255,.12); font-size: 15px; }
.nubidoc-footer a { color: #CBD5E1; } .nubidoc-footer a:hover { color: var(--wp--preset--color--blanco); }
.nubidoc-footer h4 { color: var(--wp--preset--color--blanco); font-size: 15px; margin-bottom: 4px; }
.nubidoc-footer .nubidoc-footer-logo { height: 34px; width: auto; display: block; margin-bottom: 12px; }
.nubidoc-footer .wp-block-column > * + * { margin-top: 6px; }
.nubidoc-footer .wp-block-column ul { padding-left: 0; list-style: none; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.nubidoc-footer .nubidoc-legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; color: #94A3B8; }

/* Ampliar imágenes: la miniatura invita a pulsar; la capa la muestra casi a pantalla completa */
.nb-zoomable { cursor: zoom-in; transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.nb-zoomable:hover, .nb-zoomable:focus-visible { transform: translateY(-3px) scale(1.012); box-shadow: 0 30px 60px -30px rgba(51, 65, 85, 0.45); outline: none; }
.nb-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(51, 65, 85, 0); backdrop-filter: blur(0px); -webkit-backdrop-filter: blur(0px); transition: background .9s ease, backdrop-filter .9s ease, -webkit-backdrop-filter .9s ease; cursor: zoom-out; }
.nb-lightbox.is-open { background: rgba(51, 65, 85, 0.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.nb-lightbox-figure { margin: 0; }
.nb-lightbox-img { position: fixed; display: block; transform-origin: top left; border-radius: 10px; box-shadow: 0 50px 120px -30px rgba(0, 0, 0, 0.6); cursor: default; will-change: transform; }
.nb-lightbox-caption { position: fixed; left: 0; right: 0; bottom: 18px; text-align: center; color: #FFFFFF; font-size: 15px; font-weight: 500; opacity: 0; transition: opacity .4s ease .25s; padding: 0 24px; text-wrap: balance; }
.nb-lightbox.is-open .nb-lightbox-caption { opacity: 0.92; }
.nb-lightbox-close { position: fixed; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 6px; border: 1.5px solid rgba(255,255,255,.35); background: rgba(255,255,255,.12); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .3s ease .2s, background .2s ease; }
.nb-lightbox.is-open .nb-lightbox-close { opacity: 1; }
.nb-lightbox-close:hover { background: rgba(255,255,255,.24); }
body.nb-lightbox-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .nb-zoomable, .nb-lightbox, .nb-lightbox-caption, .nb-lightbox-close { transition: none; } }

/* Carrusel de reseñas de Google */
.nb-carrusel { position: relative; }
.nb-carrusel-pista { display: flex; align-items: flex-start; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 0 12px; -webkit-overflow-scrolling: touch; }
.nb-carrusel-pista::-webkit-scrollbar { display: none; }
.nb-carrusel-pista > * { flex: 0 0 auto; width: calc((100% - 40px) / 3); min-width: 0; box-sizing: border-box; scroll-snap-align: start; }
.nb-resena { background: var(--wp--preset--color--blanco); border: 1px solid var(--wp--preset--color--linea); border-radius: 8px; padding: 26px 26px 22px; display: flex; flex-direction: column; gap: 12px; min-height: 250px; }
.nb-resena-cuerpo { display: flex; flex-direction: column; gap: 10px; }
.nb-resena.is-larga:not(.is-abierta) .nb-resena-cuerpo { display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.nb-resena-mas { align-self: flex-start; background: none; border: 0; padding: 0; color: var(--wp--preset--color--indigo); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.nb-resena-mas:hover { color: var(--wp--preset--color--indigo-oscuro); }
.nb-resena-estrellas { display: inline-flex; gap: 2px; color: var(--wp--preset--color--indigo); }
.nb-resena-estrellas svg { width: 16px; height: 16px; fill: currentColor; }
.nb-resena-texto { margin: 0; font-size: 16px; line-height: 1.55; color: var(--wp--preset--color--slate); }
.nb-resena-autor { margin-top: auto; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--wp--preset--color--atenuado); }
.nb-resena-autor b { color: var(--wp--preset--color--slate); font-weight: 600; }
.nb-resena-autor .nb-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--wp--preset--color--tinte-100); color: var(--wp--preset--color--indigo-oscuro); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.nb-carrusel-controles { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 12px; }
.nb-carrusel-btn { width: 44px; height: 44px; border-radius: 6px; border: 1.5px solid #CBD5E1; background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--slate); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .2s ease, transform .2s ease; }
.nb-carrusel-btn:hover { border-color: var(--wp--preset--color--slate); transform: translateY(-1px); }
.nb-carrusel-puntos { display: flex; gap: 8px; }
.nb-carrusel-punto { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: #CBD5E1; cursor: pointer; transition: width .25s ease, background .25s ease; }
.nb-carrusel-punto.is-activo { width: 24px; border-radius: 4px; background: var(--wp--preset--color--indigo); }
.nb-google { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--wp--preset--color--slate); }
.nb-google svg { width: 20px; height: 20px; }
@media (max-width: 1000px) { .nb-carrusel-pista > * { width: calc((100% - 20px) / 2); } }
@media (max-width: 640px) { .nb-carrusel-pista > * { width: 88%; } }

/* Tableta */
@media (max-width: 1000px) {
  .nubidoc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .nubidoc-nav .wp-block-navigation__responsive-container-open { display: inline-flex !important; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1.5px solid #CBD5E1; border-radius: 6px; background: var(--wp--preset--color--blanco); color: var(--wp--preset--color--slate); }
  .nubidoc-nav .wp-block-navigation__responsive-container.is-menu-open { display: flex !important; }
  .nubidoc-nav .wp-block-navigation { order: 3; }
  .nubidoc-footer .wp-block-columns { flex-wrap: wrap !important; gap: 24px 32px !important; }
  .nubidoc-footer .wp-block-column { flex-basis: calc(50% - 16px) !important; }
  .nubidoc-footer .nubidoc-footer-marca { flex-basis: 100% !important; }
}
@media (max-width: 900px) {
  .nubidoc-feature .wp-block-columns, .nubidoc-hero-pagina .wp-block-columns, .nubidoc-section > .wp-block-columns { flex-wrap: wrap !important; gap: 32px !important; }
  .nubidoc-feature .wp-block-column, .nubidoc-hero-pagina .wp-block-column, .nubidoc-section > .wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
  .nubidoc-hero-pagina h1 { max-width: 18ch; }
}

/* Móvil */
@media (max-width: 1000px) {
  .nubidoc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 760px) {
  body { font-size: 16px; }
  .nubidoc-cards { grid-template-columns: minmax(0, 1fr) !important; }
  .nubidoc-hero { padding-top: 40px; }
  /* El titular de la portada es largo a propósito (lleva la palabra clave): en un teléfono se
     baja un punto para que los botones no se vayan fuera de la pantalla. */
  .nubidoc-hero h1 { font-size: 34px; letter-spacing: -0.03em; }
  .nubidoc-hero .nubidoc-lema { font-size: 21px; }
  .nubidoc-section, .nubidoc-band { padding-top: 56px; padding-bottom: 56px; }
  .nubidoc-feature { padding-top: 28px; padding-bottom: 28px; }
  .nubidoc-feature .wp-block-columns { gap: 24px; }
  .nubidoc-feature h3 { font-size: 24px; }
  .nubidoc-nav .wp-block-buttons .is-style-secundario, .nubidoc-nav .nubidoc-btn-ghost { display: none; }
  .nubidoc-seals { gap: 14px 18px; font-size: 14px; }
  .nubidoc-product { margin-top: 36px; }
  .nubidoc-price { font-size: 44px; }
  .nubidoc-placeholder { min-height: 220px; }
  .nubidoc-hero-pagina { padding-top: 32px; padding-bottom: 44px; }
  .nubidoc-hero-pagina .nubidoc-shot { padding: 12px; }
  .nubidoc-footer .wp-block-column { flex-basis: 100% !important; }
}

/* Bloque sin captura (`nubidoc-sin-captura`): a propósito no lleva estilo propio. Se intentó darle
   medida al párrafo con un `max-width` y salió mal: WordPress centra con `!important` todo lo que
   lleve un ancho dentro de un grupo constreñido, así que el texto quedaba descolgado a la derecha
   del titular. Tal cual, alineado a la izquierda con el resto, se lee bien. */
