html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ════════════════════════════════════════════════════════════════
   LANDING — Legalitical (premium · discreto · navy + dorado)
   ════════════════════════════════════════════════════════════════ */
.lg-landing {
    --lg-bg: #0e2032;
    --lg-bg-alt: #0b1a29;
    --lg-surface: #14304a;
    --lg-gold: #c9a227;
    --lg-gold-soft: #e3c45a;
    --lg-text: #eaf0f6;
    --lg-muted: #93a6b8;
    --lg-border: rgba(255, 255, 255, .08);
    --lg-serif: Georgia, 'Times New Roman', serif;
    --lg-sans: 'Segoe UI', system-ui, -apple-system, Helvetica, Arial, sans-serif;

    background: var(--lg-bg);
    color: var(--lg-text);
    font-family: var(--lg-sans);
    line-height: 1.6;
    min-height: 100vh;
}
.lg-landing a { text-decoration: none; color: inherit; }

/* ── Nav ── */
.lg-nav {
    position: sticky; top: 0; z-index: 20;
    background: rgba(11, 26, 41, .82);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--lg-border);
}
.lg-nav__inner {
    max-width: 1140px; margin: 0 auto; padding: 1rem 1.5rem;
    display: flex; align-items: center; gap: 2rem;
}
.lg-brand { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: 1.15rem; letter-spacing: .2px; }
.lg-brand__mark { color: var(--lg-gold); display: inline-flex; align-items: center; }
.lg-brand__svg { width: 1.4em; height: 1.4em; display: block; }
.lg-nav__links { display: flex; gap: 1.75rem; margin-left: auto; }
.lg-nav__links a { color: var(--lg-muted); font-size: .95rem; transition: color .2s; }
.lg-nav__links a:hover { color: var(--lg-text); }

/* ── Botones ── */
.lg-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: .65rem 1.4rem; border-radius: 7px; font-size: .95rem; font-weight: 600;
    transition: transform .15s, background .2s, border-color .2s; cursor: pointer; border: 1px solid transparent;
}
.lg-btn:hover { transform: translateY(-1px); }
.lg-btn--gold { background: var(--lg-gold); color: #1a1407; }
.lg-btn--gold:hover { background: var(--lg-gold-soft); }
.lg-btn--ghost { border-color: var(--lg-border); color: var(--lg-text); background: transparent; }
.lg-btn--ghost:hover { border-color: var(--lg-gold); color: var(--lg-gold-soft); }
.lg-btn--block { width: 100%; margin-top: 1.25rem; }

/* ── Hero ── */
.lg-hero {
    background: radial-gradient(1100px 480px at 70% -10%, rgba(201, 162, 39, .14), transparent 60%), var(--lg-bg);
    border-bottom: 1px solid var(--lg-border);
}
.lg-hero__inner { max-width: 880px; margin: 0 auto; padding: 6.5rem 1.5rem 7rem; text-align: center; }
.lg-eyebrow { color: var(--lg-gold); text-transform: uppercase; letter-spacing: 2.5px; font-size: .78rem; margin: 0 0 1.25rem; }
.lg-hero__title { font-family: var(--lg-serif); font-weight: 600; font-size: clamp(2.1rem, 5vw, 3.4rem); line-height: 1.15; margin: 0 0 1.4rem; }
.lg-accent { color: var(--lg-gold-soft); font-style: italic; }
.lg-hero__sub { color: var(--lg-muted); font-size: 1.12rem; max-width: 640px; margin: 0 auto 2.2rem; }
.lg-hero__cta { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ── Secciones ── */
.lg-section { max-width: 1140px; margin: 0 auto; padding: 5rem 1.5rem; }
.lg-section--alt { max-width: none; background: var(--lg-bg-alt); border-block: 1px solid var(--lg-border); }
.lg-section--alt > * { max-width: 1140px; margin-inline: auto; }
.lg-section__title { font-family: var(--lg-serif); font-weight: 600; font-size: clamp(1.6rem, 3vw, 2.2rem); text-align: center; margin: 0 auto .6rem; }
.lg-section__sub { text-align: center; color: var(--lg-muted); max-width: 640px; margin: 0 auto 3rem; }
.lg-section__title + .lg-features { margin-top: 3rem; }

/* ── Features ── */
.lg-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
.lg-feature {
    background: var(--lg-surface); border: 1px solid var(--lg-border); border-radius: 12px; padding: 2rem 1.75rem;
    transition: transform .2s, border-color .2s;
}
.lg-feature:hover { transform: translateY(-4px); border-color: rgba(201, 162, 39, .4); }
.lg-feature__icon { font-size: 1.9rem; margin-bottom: 1rem; }
.lg-feature h3 { font-family: var(--lg-serif); font-size: 1.2rem; margin: 0 0 .5rem; }
.lg-feature p { color: var(--lg-muted); font-size: .95rem; margin: 0; }

/* ── Planes ── */
.lg-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1.5rem; align-items: start; }
.lg-plan {
    position: relative; background: var(--lg-surface); border: 1px solid var(--lg-border);
    border-radius: 14px; padding: 2.25rem 1.85rem; display: flex; flex-direction: column;
}
.lg-plan--featured { border-color: var(--lg-gold); box-shadow: 0 12px 40px rgba(0, 0, 0, .35); transform: translateY(-6px); }
.lg-plan__badge {
    position: absolute; top: -.8rem; left: 50%; transform: translateX(-50%);
    background: var(--lg-gold); color: #1a1407; font-size: .72rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px; padding: .3rem .9rem; border-radius: 20px;
}
.lg-plan__name { font-family: var(--lg-serif); font-size: 1.35rem; margin: 0 0 .75rem; }
.lg-plan__price { font-size: 2.6rem; font-weight: 700; line-height: 1; }
.lg-plan__price--custom { font-family: var(--lg-serif); font-size: 1.8rem; color: var(--lg-gold-soft); }
.lg-plan__currency { font-size: 1.3rem; vertical-align: super; color: var(--lg-muted); }
.lg-plan__period { font-size: .95rem; font-weight: 400; color: var(--lg-muted); }
.lg-plan__note { color: var(--lg-muted); font-size: .9rem; margin: .85rem 0 1.25rem; min-height: 2.6em; }
.lg-plan__feats { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.lg-plan__feats li { position: relative; padding-left: 1.5rem; font-size: .92rem; color: var(--lg-text); }
.lg-plan__feats li::before { content: "✓"; position: absolute; left: 0; color: var(--lg-gold); font-weight: 700; }

/* ── Footer ── */
.lg-footer { background: var(--lg-bg-alt); border-top: 1px solid var(--lg-border); }
.lg-footer__cta { max-width: 760px; margin: 0 auto; padding: 5rem 1.5rem; text-align: center; }
.lg-footer__cta h2 { font-family: var(--lg-serif); font-weight: 600; font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 0 0 2rem; }
.lg-footer__bottom {
    max-width: 1140px; margin: 0 auto; padding: 1.75rem 1.5rem; border-top: 1px solid var(--lg-border);
    display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.lg-footer__legal { color: var(--lg-muted); font-size: .85rem; }
.lg-footer__legal strong { color: var(--lg-gold-soft); font-weight: 600; }
/* ── Impresión / PDF: dejar solo el contenido del perfil ── */
.d-print-only { display: none; }
@media print {
    @page { margin: 14mm 12mm; }
    .mud-appbar, .mud-drawer, .mud-drawer-overlay, .d-print-none, #blazor-error-ui { display: none !important; }
    .d-print-only { display: block !important; }
    .d-screen-only { display: none !important; }
    .mud-main-content { margin: 0 !important; padding: 0 !important; }
    .mud-layout, .mud-main-content, .mud-container { max-width: 100% !important; width: 100% !important; }
    body { background: #fff !important; color: #1a1a1a; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    /* Preservar los colores de barras, chips y semáforos en el PDF */
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .mud-paper { box-shadow: none !important; border: 1px solid #e2e2e2 !important; border-radius: 8px !important; break-inside: avoid; }
    .lg-abg-card:hover, .lg-abg-podio:hover { transform: none !important; box-shadow: none !important; }
    h4, h5, h6, .mud-typography-h4, .mud-typography-h5, .mud-typography-h6 { break-after: avoid; }

    /* Densidad editorial: reducir el "aire" de MudBlazor en papel */
    .mud-paper { padding: 12px 16px !important; margin-bottom: 10px !important; }
    .mud-grid { margin: 0 !important; width: 100% !important; }
    .mud-grid-item { padding: 5px !important; }
    .mud-typography-h3 { font-size: 26px !important; line-height: 1.1 !important; }
    .mud-typography-h4 { font-size: 21px !important; }
    .mud-typography-h5 { font-size: 15px !important; }
    .mud-typography-h6 { font-size: 13.5px !important; font-weight: 700 !important; }
    .mud-typography-subtitle1, .mud-typography-body1, .mud-typography-body2 { font-size: 11.5px !important; }
    .mud-typography-overline { font-size: 9px !important; }
    .mud-chip { height: 20px !important; font-size: 10px !important; }
    /* KPIs lado a lado en papel (evita que se apilen por el breakpoint) */
    .lg-kpi-grid > .mud-grid-item:first-child { flex: 0 0 34% !important; max-width: 34% !important; }
    .lg-kpi-grid > .mud-grid-item:last-child { flex: 0 0 66% !important; max-width: 66% !important; }
    .lg-cols-2 > .mud-grid-item { flex: 0 0 50% !important; max-width: 50% !important; }

    /* Membrete: banda azul marino con acento dorado (marca) */
    .lg-print-head { background: #1A3A5C !important; color: #fff; padding: 16px 20px; border-radius: 8px; margin-bottom: 18px; }
    .lg-print-head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
    .lg-print-brand { font-size: 22px; font-weight: 700; letter-spacing: .17em; color: #fff;
        border-bottom: 2px solid #D4AF37; display: inline-block; padding-bottom: 4px; }
    .lg-print-sub { font-size: 10px; color: #c7d2de; letter-spacing: .05em; margin-top: 7px; }
    .lg-print-meta { text-align: right; white-space: nowrap; }
    .lg-print-meta-t { font-size: 9.5px; color: #D4AF37; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
    .lg-print-meta-d { font-size: 10px; color: #c7d2de; margin-top: 2px; }
    /* Pie de marca */
    .lg-print-foot { margin-top: 20px; padding-top: 9px; border-top: 2px solid #D4AF37;
        font-size: 10px; color: #7a8592; text-align: center; letter-spacing: .03em; }
    .lg-print-foot strong { color: #1A3A5C; }
    /* Lista compacta de casos para impresión (todos, sin paginar) */
    .lg-print-caso { display: flex; gap: 10px; align-items: baseline; padding: 3px 0;
        border-bottom: 1px dotted #e2e2e2; font-size: 11px; break-inside: avoid; }
    .lg-print-caso .f { color: #8a94a0; white-space: nowrap; min-width: 74px; }
    .lg-print-caso .m { color: #5a6672; white-space: nowrap; min-width: 96px; }
    .lg-print-caso .r { font-weight: 700; white-space: nowrap; min-width: 78px; }
    .lg-print-caso .t { flex: 1; }
}

/* ── Ranking de abogados: tarjetas premium con hover ── */
.lg-abg-card { transition: transform .12s ease, box-shadow .12s ease; }
.lg-abg-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.12) !important; }
.lg-abg-podio { transition: transform .15s ease, box-shadow .15s ease; }
.lg-abg-podio:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(0,0,0,.20) !important; }
/* Filas de "Por materia" clickeables (perfil de abogado) */
.lg-mat-row { transition: background .12s ease; }
.lg-mat-row:hover { background: var(--mud-palette-action-default-hover); }

/* ── Diccionario jurídico (/glosario) ── */
.lg-azindex { display: flex; flex-wrap: wrap; gap: 3px; align-items: center; }
.lg-azletra {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 26px; height: 26px; padding: 0 5px; border-radius: 6px;
    font-size: 12px; font-weight: 600; cursor: pointer; user-select: none;
    color: var(--mud-palette-text-primary); border: 1px solid var(--mud-palette-divider);
    transition: background .12s ease, color .12s ease;
}
.lg-azletra:hover { background: var(--mud-palette-action-default-hover); }
.lg-azon { background: #1A3A5C; color: #fff !important; border-color: #1A3A5C; }
.lg-azoff { color: var(--mud-palette-text-disabled); cursor: default; opacity: .5; border-style: dashed; }
.lg-azoff:hover { background: transparent; }
.lg-dic-letra {
    color: #1A3A5C; font-weight: 700; margin: 14px 0 6px; padding-bottom: 2px;
    border-bottom: 2px solid #D4AF37; display: inline-block; min-width: 34px;
}
.lg-dic-entry {
    border-left: 3px solid var(--mud-palette-divider);
    border-radius: 0 8px 8px 0; transition: border-color .12s ease, background .12s ease;
}
.lg-dic-entry:hover { border-left-color: #D4AF37; background: var(--mud-palette-action-default-hover); }

/* Entrada del diccionario resaltada al llegar desde un fallo (deep-link) */
.lg-dic-hl { border-left-color: #D4AF37 !important; box-shadow: 0 0 0 2px rgba(212,175,55,.35); animation: lgDicFlash 2.4s ease-out 1; }
@keyframes lgDicFlash {
    0% { background: rgba(212,175,55,.28); }
    100% { background: transparent; }
}
