/* ═══════════════════════════════════════════════════════════════════════════
   QRNotarial — página pública de verificación (la abre el celular al escanear).
   Se carga después de Content.css y solo afecta a .vq. Pensada primero para
   pantallas de 320–430 px; en escritorio se centra en una columna de 640 px.
   ═══════════════════════════════════════════════════════════════════════════ */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.vq-body { font-size: 15px; line-height: 1.45; background: var(--fondo); }

.vq {
    max-width: 640px; margin: 0 auto;
    padding: 12px max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.vq, .vq * { overflow-wrap: anywhere; word-break: normal; }

/* Barra del sistema */
.vq .vq-sistema { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 2px 0 12px; color: var(--suave); }
.vq .vq-sistema-marca { width: 26px; height: 26px; flex: none; }
.vq .vq-sistema-marca svg { width: 100%; height: 100%; }
.vq .vq-sistema b { font-size: 15px; color: var(--azul); letter-spacing: -.2px; }
.vq .vq-sistema b span { color: var(--azul-2); font-weight: 600; }
.vq .vq-sistema small { display: block; font-size: 11px; line-height: 1.1; }

/* La notaría: protagonista de la página */
.vq .vq-notaria {
    background: #fff; border: 1px solid var(--borde); border-top: 5px solid var(--azul); border-radius: 12px;
    padding: 18px 18px 14px; margin-bottom: 14px; text-align: center; box-shadow: 0 2px 10px rgba(31, 58, 95, .08);
}
.vq .vq-notaria-logo img { max-height: 92px; max-width: 60%; display: block; margin: 0 auto 10px; }
.vq .vq-notaria-nombre { font-size: 20px; font-weight: 700; color: var(--azul); line-height: 1.2; letter-spacing: .2px; }
.vq .vq-notaria-titular { margin-top: 6px; font-size: 15px; font-weight: 600; color: var(--texto); }
.vq .vq-notaria-titular small { display: block; font-size: 11px; font-weight: 400; color: var(--suave); text-transform: uppercase; letter-spacing: .5px; margin-top: 1px; }
.vq .vq-notaria-datos { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--borde);
    display: grid; gap: 6px; text-align: left; font-size: 14px; }
.vq .vq-notaria-datos li { display: flex; gap: 8px; align-items: flex-start; }
.vq .vq-notaria-datos .i { width: 20px; flex: none; text-align: center; }
.vq .vq-notaria-datos a { color: var(--azul-2); text-decoration: none; }
.vq .vq-notaria { position: relative; }
.vq .vq-sistema-int { position: absolute; top: 10px; left: 12px; margin: 0; gap: 6px; text-align: left; opacity: .9; }
.vq .vq-sistema-int .vq-sistema-marca { width: 20px; height: 20px; }
.vq .vq-sistema-int b { font-size: 12px; }
.vq .vq-sistema-int small { font-size: 9px; }
@media (max-width: 420px) { .vq .vq-sistema-int small { display: none; } .vq .vq-notaria-logo img { margin-top: 18px; } }
@media (min-width: 560px) { .vq .vq-notaria-datos { grid-template-columns: 1fr 1fr; } }

/* Botón del certificado PDF */
.vq .vq-pdf {
    display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; margin: 0 0 12px;
    background: #fff; color: var(--azul); border: 2px solid var(--azul); border-radius: 12px;
    font-weight: 600; font-size: 15px; text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.vq .vq-pdf:active { background: #EEF2F7; }
.vq .vq-pdf span { font-size: 20px; }

/* Cabecera de la notaría (versión anterior, sin uso) */
.vq .vq-cab { margin: 6px 0 14px; }
.vq .vq-cab img { max-height: 64px !important; max-width: 70% !important; }
.vq .vq-cab .n { font-size: 17px; line-height: 1.25; }
.vq .vq-cab .s { font-size: 13px; margin-top: 2px; }

/* Resultado: lo primero que se ve, grande y con símbolo */
.vq .vq-estado { padding: 16px 14px; border-radius: 12px; margin-bottom: 14px; }
.vq .vq-estado b { font-size: 21px; line-height: 1.2; }
.vq .vq-estado b::before {
    display: block; margin: 0 auto 6px; width: 44px; height: 44px; line-height: 44px; border-radius: 50%;
    font-size: 26px; font-weight: 700; color: #fff;
}
.vq .vq-estado.ok b::before    { content: "✓"; background: var(--ok); }
.vq .vq-estado.mal b::before   { content: "✕"; background: var(--mal); }
.vq .vq-estado.aviso b::before { content: "!"; background: var(--aviso); }
.vq .vq-estado span { display: block; margin-top: 6px; font-size: 14px; }
/* Número de matriz grande dentro del recuadro del resultado */
.vq .vq-matriz { margin: 10px auto 4px; padding: 8px 10px; background: rgba(255,255,255,.75); border-radius: 8px; max-width: 420px; }
.vq .vq-matriz small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .6px; opacity: .85; }
.vq .vq-matriz strong { display: block; font-size: 26px; line-height: 1.15; letter-spacing: 1.5px; color: var(--texto);
    font-variant-numeric: tabular-nums; font-family: "Segoe UI", Roboto, Arial, sans-serif; }
@media (max-width: 380px) { .vq .vq-matriz strong { font-size: 22px; letter-spacing: .8px; } }

/* Tarjetas */
.vq .nq-tarjeta { padding: 14px 16px; border-radius: 12px; margin-bottom: 12px; }
.vq .nq-tarjeta h2 { font-size: 16px; margin-bottom: 8px; }
.vq .nq-tarjeta.vq-detalle { padding: 0; }   /* el botón ocupa todo el ancho de la tarjeta */
.vq .vq-detalle > summary { border-radius: 11px; }
.vq .vq-detalle[open] > summary { border-radius: 11px 11px 0 0; }

/* Tablas de datos: etiqueta | valor; en el celular, etiqueta ARRIBA del valor */
.vq .nq-datos th, .vq .nq-datos td { padding: 8px 4px; }
.vq .nq-datos td { font-size: 15px; }
.vq .vq-campos th, .vq .vq-campos td { padding: 8px 10px; font-size: 14px; }

/* Comparecientes */
.vq .vq-persona { padding: 10px 0; }
.vq .vq-persona b { font-size: 15px; }
.vq .vq-persona span { font-size: 13px; line-height: 1.4; }

/* Botón "Ver detalle del acto": blanco de toque cómodo (≥ 48 px) con flecha */
.vq .vq-detalle > summary {
    min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px;
    font-size: 15px; -webkit-tap-highlight-color: transparent; user-select: none;
}
.vq .vq-detalle > summary::after { content: "▾"; font-size: 16px; transition: transform .2s; }
.vq .vq-detalle[open] > summary::after { transform: rotate(180deg); }
.vq .vq-detalle > summary:focus-visible { outline: 3px solid #9FB3CC; outline-offset: 2px; }
.vq .vq-detalle h3 { margin: 14px 16px 6px; }
.vq .vq-texto { font-size: 14px; line-height: 1.6; text-align: left; hyphens: auto; }

/* Buscar un código a mano: 16 px evita que iOS haga zoom al escribir */
.vq .vq-buscar input { min-height: 48px; font-size: 17px; letter-spacing: 1px; min-width: 0; }
.vq .vq-buscar button { min-height: 48px; padding: 0 18px; font-size: 16px; font-weight: 600; cursor: pointer; }

.vq .nq-pie { text-align: center; color: var(--suave); font-size: 12px; padding: 12px 0 4px; }

/* ── Teléfonos (≤ 480 px) ── */
@media (max-width: 480px) {
    .vq .nq-datos, .vq .nq-datos tbody, .vq .nq-datos tr,
    .vq .vq-campos, .vq .vq-campos tbody, .vq .vq-campos tr { display: block; width: 100%; }
    .vq .nq-datos tr, .vq .vq-campos tr { padding: 8px 0; border-bottom: 1px solid var(--borde); }
    .vq .nq-datos tr:last-child, .vq .vq-campos tr:last-child { border-bottom: 0; }
    .vq .nq-datos th, .vq .nq-datos td,
    .vq .vq-campos th, .vq .vq-campos td { display: block; width: auto !important; border: 0; padding: 0; background: none; }
    .vq .nq-datos th, .vq .vq-campos th { font-size: 11px; margin-bottom: 2px; color: var(--suave); text-transform: uppercase; letter-spacing: .3px; }
    .vq .vq-detalle > :not(summary) { margin-left: 12px; margin-right: 12px; }
    .vq .vq-buscar { flex-direction: column; }
    .vq .vq-estado b { font-size: 19px; }
}

/* ── Pantallas muy angostas (≤ 340 px) ── */
@media (max-width: 340px) {
    body.vq-body { font-size: 14px; }
    .vq .nq-tarjeta { padding: 12px; }
}

/* ── Impresión: todo desplegado, sin el buscador ── */
@media print {
    body.vq-body { background: #fff; }
    .vq .vq-buscar, .vq .vq-detalle > summary::after { display: none; }
    .vq .nq-tarjeta { border-color: #bbb; break-inside: avoid; }
}
