:root {
    --l2c-bg: #07050a;
    --l2c-bg-2: #120c10;
    --l2c-input: #1c1510;
    --l2c-card: rgba(16, 11, 9, 0.92);
    --l2c-line: rgba(201, 162, 39, 0.34);
    --l2c-gold: #d4af37;
    --l2c-gold-2: #f0d47a;
    --l2c-ember: #e07030;
    --l2c-text: #f4ead8;
    --l2c-muted: #d2c3ae;
    --l2c-danger: #e09090;
    --l2c-ok: #8fd4a8;
    --l2c-font: "Source Sans 3", "Segoe UI", sans-serif;
    --l2c-display: "Cinzel", Georgia, serif;
}

body.l2c-app {
    color-scheme: dark;
    --bs-body-color: var(--l2c-text);
    --bs-body-color-rgb: 244, 234, 216;
    --bs-body-bg: var(--l2c-bg-2);
    --bs-body-bg-rgb: 18, 12, 16;
    --bs-emphasis-color: #fff6dc;
    --bs-emphasis-color-rgb: 255, 246, 220;
    --bs-secondary-color: var(--l2c-muted);
    --bs-secondary-color-rgb: 210, 195, 174;
    --bs-secondary-bg: #1c1510;
    --bs-tertiary-color: var(--l2c-muted);
    --bs-tertiary-bg: #16100c;
    --bs-heading-color: var(--l2c-gold-2);
    --bs-link-color: var(--l2c-gold-2);
    --bs-link-color-rgb: 240, 212, 122;
    --bs-link-hover-color: #fff3c4;
    --bs-link-hover-color-rgb: 255, 243, 196;
    --bs-border-color: var(--l2c-line);
    --bs-border-color-translucent: rgba(201, 162, 39, 0.22);
    --bs-form-valid-color: var(--l2c-ok);
    --bs-form-invalid-color: var(--l2c-danger);
    --bs-highlight-bg: rgba(201, 162, 39, 0.18);
    background-color: var(--l2c-bg);
    background-image:
        radial-gradient(900px 420px at 12% -8%, rgba(224, 112, 48, 0.18), transparent 55%),
        radial-gradient(800px 380px at 88% 0%, rgba(201, 162, 39, 0.12), transparent 50%),
        linear-gradient(180deg, rgba(7, 5, 10, 0.28) 0%, rgba(7, 5, 10, 0.62) 48%, #07050a 100%),
        url("../img/forge-bg.jpg");
    background-size: auto, auto, auto, cover;
    background-position: center top;
    background-attachment: fixed;
    color: var(--l2c-text);
    min-height: 100vh;
    font-family: var(--l2c-font);
}

body.l2c-app a { color: var(--l2c-gold-2); }
body.l2c-app a:hover { color: #fff3c4; }

.l2c-embers {
    pointer-events: none;
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.l2c-embers span {
    position: absolute;
    bottom: -8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--l2c-ember);
    box-shadow: 0 0 8px 2px rgba(224, 112, 48, 0.7);
    animation: l2c-ember-up 9s linear infinite;
    opacity: .55;
}
.l2c-embers span:nth-child(1) { left: 8%; animation-duration: 11s; }
.l2c-embers span:nth-child(2) { left: 18%; animation-duration: 8s; animation-delay: 1s; width: 3px; height: 3px; }
.l2c-embers span:nth-child(3) { left: 32%; animation-duration: 13s; animation-delay: 2.2s; }
.l2c-embers span:nth-child(4) { left: 47%; animation-duration: 9s; animation-delay: .6s; }
.l2c-embers span:nth-child(5) { left: 58%; animation-duration: 12s; animation-delay: 3s; width: 2px; height: 2px; }
.l2c-embers span:nth-child(6) { left: 67%; animation-duration: 10s; animation-delay: 1.4s; }
.l2c-embers span:nth-child(7) { left: 76%; animation-duration: 14s; animation-delay: 2s; }
.l2c-embers span:nth-child(8) { left: 84%; animation-duration: 8.5s; animation-delay: .3s; }
.l2c-embers span:nth-child(9) { left: 91%; animation-duration: 11.5s; animation-delay: 4s; }
.l2c-embers span:nth-child(10) { left: 24%; animation-duration: 15s; animation-delay: 5s; width: 5px; height: 5px; }

@keyframes l2c-ember-up {
    0% { transform: translateY(0) scale(1); opacity: 0; }
    12% { opacity: .7; }
    100% { transform: translateY(-110vh) scale(.4); opacity: 0; }
}

.l2c-navbar,
body.l2c-app .navbar.navbar-dark.l2c-navbar {
    background: linear-gradient(180deg, rgba(18, 10, 8, 0.96) 0%, rgba(10, 7, 6, 0.92) 100%) !important;
    border-bottom: 1px solid var(--l2c-line);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
    position: relative;
    z-index: 2;
}
.l2c-navbar .navbar-brand,
.l2c-navbar .nav-link { color: var(--l2c-text) !important; font-weight: 600; }
.l2c-navbar .nav-link:hover,
.l2c-navbar .nav-link.is-on { color: var(--l2c-gold-2) !important; }
.l2c-nav-logo { width: 34px; height: 34px; object-fit: contain; margin-right: .5rem; }
.l2c-navbar .fx-i18n { margin-left: .7rem; margin-right: .35rem; color: var(--l2c-gold-2); }
.l2c-navbar .fx-i18n__btn {
    border-color: rgba(201, 162, 39, 0.45);
    background: rgba(8, 6, 10, 0.55);
}
.l2c-navbar .fx-i18n__btn.is-on { box-shadow: 0 0 0 2px var(--l2c-gold); }
.l2c-navbar .navbar-toggler { margin-left: auto; }

.l2c-shell {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.25rem 1rem 3rem;
    position: relative;
    z-index: 1;
}

.l2c-hero {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 1.6rem;
    align-items: center;
    margin-bottom: 1.8rem;
}
.l2c-hero__copy {
    padding: 1.15rem 1.25rem 1.25rem;
    background: rgba(8, 6, 10, 0.72);
    border: 1px solid var(--l2c-line);
    border-radius: 4px;
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(8px);
}
.l2c-hero__copy p {
    color: var(--l2c-muted);
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.7);
}
.l2c-hero__art {
    position: relative;
    justify-self: center;
}
.l2c-hero__art img {
    display: block;
    max-width: 320px;
    width: 100%;
    border-radius: 8px;
    border: 1px solid var(--l2c-line);
    box-shadow:
        0 0 0 1px rgba(201, 162, 39, 0.15),
        0 18px 40px rgba(0, 0, 0, 0.55),
        0 0 40px rgba(224, 112, 48, 0.18);
    filter: saturate(1.05);
}
.l2c-hero h1, .l2c-page h1, .l2c-shell h1, .l2c-shell h3, .l2c-auth h1,
body.l2c-app .contenedor_principal > h1,
body.l2c-app .contenedor_principal > h3 {
    font-family: var(--l2c-display);
    letter-spacing: .04em;
    color: var(--l2c-gold-2);
    text-shadow: 0 0 18px rgba(201, 162, 39, 0.25);
}
.l2c-kicker {
    color: var(--l2c-gold);
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .22em;
    margin: 0 0 .35rem;
    font-weight: 700;
}
.l2c-muted,
body.l2c-app .text-muted,
body.l2c-app .text-secondary,
body.l2c-app .text-body-secondary,
body.l2c-app .form-text,
body.l2c-app .breadcrumb-item.active,
body.l2c-app small,
body.l2c-app .small {
    color: var(--l2c-muted) !important;
}

.l2c-card,
body.l2c-app .contenedor_principal {
    background: var(--l2c-card);
    border: 1px solid var(--l2c-line);
    border-radius: 4px;
    padding: 1rem 1.15rem;
    box-shadow:
        inset 0 1px 0 rgba(232, 201, 98, 0.08),
        0 12px 32px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(6px);
    position: relative;
}
body.l2c-app .contenedor_principal { margin: 1rem; }
.l2c-card::before,
body.l2c-app .contenedor_principal::before {
    content: "";
    position: absolute;
    inset: 6px;
    border: 1px solid rgba(201, 162, 39, 0.1);
    pointer-events: none;
}

.l2c-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .9rem; }
.l2c-grid--hero { margin-top: .4rem; }
.l2c-stat h2 { margin: .2rem 0; color: var(--l2c-gold-2); font-family: var(--l2c-display); }
.l2c-stat p { margin: 0; color: var(--l2c-muted); font-size: .9rem; }
.l2c-stat i { color: var(--l2c-ember); margin-bottom: .35rem; }

.l2c-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.l2c-btn {
    display: inline-flex; align-items: center; gap: .4rem;
    background: linear-gradient(180deg, #e0c056 0%, var(--l2c-gold) 100%);
    color: #1a1405 !important;
    border: 1px solid #8a6d16;
    border-radius: 3px;
    padding: .55rem 1.05rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-decoration: none !important;
    box-shadow: 0 0 12px rgba(201, 162, 39, 0.25);
}
.l2c-btn:hover { filter: brightness(1.08); color: #1a1405 !important; }
.l2c-btn--ghost {
    background: transparent;
    color: var(--l2c-gold-2) !important;
    border: 1px solid var(--l2c-line);
    box-shadow: none;
}

body.l2c-app .table {
    --bs-table-color: var(--l2c-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(255, 255, 255, 0.1);
    --bs-table-striped-bg: rgba(201, 162, 39, 0.04);
    --bs-table-striped-color: var(--l2c-text);
    --bs-table-hover-bg: rgba(201, 162, 39, 0.08);
    --bs-table-hover-color: var(--l2c-text);
}
body.l2c-app .table,
body.l2c-app .table thead,
body.l2c-app .table tbody,
body.l2c-app .table tr,
body.l2c-app .table th,
body.l2c-app .table td {
    background-color: transparent !important;
    color: var(--l2c-text) !important;
}
body.l2c-app .table thead th { border-color: var(--l2c-line); color: var(--l2c-gold-2) !important; }
body.l2c-app .table td { border-color: rgba(255,255,255,.1); vertical-align: middle; }
body.l2c-app .table-hover tbody tr:hover { background: rgba(201, 162, 39, 0.08) !important; }

body.l2c-app label,
body.l2c-app .form-label,
body.l2c-app .form-check-label,
body.l2c-app .col-form-label {
    color: var(--l2c-text) !important;
}
body.l2c-app .form-control,
body.l2c-app .form-select,
body.l2c-app .form-control-sm,
body.l2c-app .form-select-sm,
body.l2c-app textarea,
body.l2c-app select,
body.l2c-app input[type="text"],
body.l2c-app input[type="search"],
body.l2c-app input[type="number"],
body.l2c-app input[type="email"],
body.l2c-app input[type="password"],
body.l2c-app input[type="url"],
body.l2c-app input[type="tel"] {
    background-color: var(--l2c-input) !important;
    color: var(--l2c-text) !important;
    border-color: var(--l2c-line) !important;
    caret-color: var(--l2c-gold-2);
}
body.l2c-app .form-control::placeholder,
body.l2c-app .form-select::placeholder,
body.l2c-app input::placeholder,
body.l2c-app textarea::placeholder {
    color: #cbbba4 !important;
    opacity: 1;
}
body.l2c-app .form-control:focus,
body.l2c-app .form-select:focus,
body.l2c-app textarea:focus,
body.l2c-app input:focus {
    border-color: var(--l2c-gold) !important;
    box-shadow: 0 0 0 .2rem rgba(201, 162, 39, 0.22) !important;
    background-color: #241c16 !important;
    color: #fff8ea !important;
}
body.l2c-app .form-control:-webkit-autofill,
body.l2c-app input:-webkit-autofill {
    -webkit-text-fill-color: var(--l2c-text);
    box-shadow: 0 0 0 1000px var(--l2c-input) inset;
    caret-color: var(--l2c-gold-2);
}
body.l2c-app option {
    background: var(--l2c-input);
    color: var(--l2c-text);
}
body.l2c-app input[readonly],
body.l2c-app .form-control[readonly] {
    background-color: #2a221c !important;
    color: var(--l2c-muted) !important;
}
body.l2c-app .form-check-input {
    background-color: var(--l2c-input);
    border-color: var(--l2c-line);
}
body.l2c-app .form-check-input:checked {
    background-color: var(--l2c-gold);
    border-color: var(--l2c-gold);
}
body.l2c-app .btn-primary {
    background: linear-gradient(180deg, #e0c056 0%, var(--l2c-gold) 100%);
    border-color: #8a6d16;
    color: #1a1405 !important;
    font-weight: 700;
}
body.l2c-app .btn-primary:hover { color: #1a1405 !important; filter: brightness(1.06); }
body.l2c-app .btn-outline-primary { color: var(--l2c-gold-2); border-color: var(--l2c-gold); background: transparent; }
body.l2c-app .btn-outline-primary:hover { background: rgba(201, 162, 39, 0.16); color: #fff3c4; }
body.l2c-app .btn-outline-danger { color: #f3c0c0; border-color: var(--l2c-danger); }
body.l2c-app .btn-outline-danger:hover { background: rgba(196, 92, 92, 0.18); color: #ffe0e0; }
body.l2c-app .btn-outline-secondary { color: var(--l2c-muted); border-color: var(--l2c-line); }
body.l2c-app .breadcrumb { background: transparent; }
body.l2c-app .breadcrumb-item + .breadcrumb-item::before { color: var(--l2c-muted); }
body.l2c-app .breadcrumb-item a { color: var(--l2c-gold-2); }
body.l2c-app .cabecera_de_dos {
    color: var(--l2c-text);
    border-bottom-color: var(--l2c-line);
}
body.l2c-app .alert {
    border: 1px solid transparent;
    color: var(--l2c-text);
}
body.l2c-app .alert-success { background: rgba(111, 191, 139, 0.16); color: #d4f0de; border-color: rgba(111, 191, 139, 0.35); }
body.l2c-app .alert-danger { background: rgba(196, 92, 92, 0.16); color: #f6d0d0; border-color: rgba(196, 92, 92, 0.4); }
body.l2c-app .alert-warning { background: rgba(224, 177, 90, 0.16); color: #f6e4b8; border-color: rgba(224, 177, 90, 0.4); }
body.l2c-app .alert-info { background: rgba(201, 162, 39, 0.12); color: #f3e6c4; border-color: var(--l2c-line); }
body.l2c-app .alert .btn-close,
body.l2c-app .alert .close {
    filter: invert(1) grayscale(1) brightness(1.6);
    opacity: .75;
}

.l2c-ico { width: 32px; height: 32px; object-fit: contain; image-rendering: pixelated; }
.l2c-ico--lg { width: 64px; height: 64px; }
.l2c-mapa { max-width: 100%; border-radius: 4px; border: 1px solid var(--l2c-line); }

.l2c-tree { list-style: none; padding-left: 1rem; margin: .4rem 0; }
.l2c-tree > li { margin: .35rem 0; }
.l2c-pill {
    display: inline-block; font-size: .75rem; padding: .1rem .45rem;
    border-radius: 999px; border: 1px solid var(--l2c-line); color: var(--l2c-muted);
}
.l2c-pill--ok { color: var(--l2c-ok); border-color: rgba(111,191,139,.4); }
.l2c-pill--warn { color: #e0b15a; }

.l2c-footer {
    color: var(--l2c-muted);
    text-align: center;
    padding: 1.5rem 1rem;
    font-size: .85rem;
    position: relative;
    z-index: 1;
}
.l2c-footer a { color: var(--l2c-gold); }

body.l2c-app--mod .body_contenido { background: transparent; }
body.l2c-app--mod .menu_lateral_container {
    background: rgba(12, 8, 7, 0.94);
    border-right: 1px solid var(--l2c-line);
}
body.l2c-app--mod .menu_lateral_container a,
body.l2c-app--mod .menu_lateral_container a b {
    color: var(--l2c-text) !important;
}
body.l2c-app--mod .menu_lateral_container a:hover {
    color: var(--l2c-gold-2) !important;
}
body.l2c-app--mod .ml_section {
    color: var(--l2c-gold) !important;
    letter-spacing: .12em;
    font-size: .72rem;
    border-top-color: var(--l2c-line);
}
body.l2c-app--mod .header_ubicacion_actual_container {
    color: var(--l2c-muted);
    border-bottom-color: var(--l2c-line);
}
body.l2c-app--mod .menu_lateral_mobile_other_links_box {
    border-top-color: var(--l2c-line);
}

.l2c-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.l2c-filters .form-control, .l2c-filters .form-select { max-width: 240px; }
.l2c-filters .select2-container { min-width: 240px; max-width: 360px; }
.l2c-filters .l2c-q-wrap { flex: 1 1 280px; max-width: 420px; position: relative; }
.l2c-filters .l2c-q-wrap .form-control { max-width: none; width: 100%; }
.l2c-q-wrap { position: relative; }
.l2c-q-list {
    position: absolute;
    z-index: 40;
    left: 0;
    right: 0;
    top: calc(100% + 2px);
    margin: 0;
    padding: .2rem 0;
    list-style: none;
    background: var(--l2c-card, #1e160c);
    border: 1px solid rgba(201, 162, 39, .35);
    max-height: 16rem;
    overflow: auto;
}
.l2c-q-list button {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    color: inherit;
    padding: .4rem .75rem;
    cursor: pointer;
}
.l2c-q-list button.is-on,
.l2c-q-list button:hover { background: rgba(201, 162, 39, .15); }

.l2c-lab-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.15rem; }
.l2c-lab-nav a.is-on,
.l2c-lab-nav a.is-on:hover {
    background: var(--l2c-gold, #c9a227);
    color: #1a1208;
    border-color: var(--l2c-gold, #c9a227);
}

.l2c-grados { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.15rem; }
.l2c-mejor { border-color: var(--l2c-gold, #c9a227); }
.l2c-row-best td { background: rgba(201, 162, 39, 0.12); }

.l2c-price-row { display: flex; gap: .4rem; align-items: center; }
.l2c-price-row input { max-width: 160px; }

.l2c-auth {
    max-width: 860px;
    margin: 2.2rem auto 3rem;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 0;
    border: 1px solid var(--l2c-line);
    background: rgba(12, 8, 7, 0.82);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    position: relative;
    z-index: 1;
}
.l2c-auth__art {
    overflow: hidden;
    background: #000;
}
.l2c-auth__art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    min-height: 360px;
    max-height: 520px;
    display: block;
}
.l2c-auth__panel { padding: 2rem 1.6rem; }
.l2c-auth__panel h1 { margin-top: .2rem; }

body.l2c-app .select2-container--default .select2-selection--single,
body.l2c-app .select2-container--default .select2-selection--multiple {
    background-color: var(--l2c-input) !important;
    border-color: var(--l2c-line) !important;
    color: var(--l2c-text) !important;
    height: 38px;
}
body.l2c-app .select2-container--default .select2-selection--single .select2-selection__rendered,
body.l2c-app .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--l2c-text) !important;
    line-height: 36px;
}
body.l2c-app .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--l2c-gold-2) transparent transparent transparent;
}
body.l2c-app .select2-dropdown {
    background: var(--l2c-input) !important;
    border-color: var(--l2c-line) !important;
    color: var(--l2c-text) !important;
}
body.l2c-app .select2-search--dropdown .select2-search__field {
    background: #120c10 !important;
    color: var(--l2c-text) !important;
    border-color: var(--l2c-line) !important;
}
body.l2c-app .select2-results__option {
    color: var(--l2c-text) !important;
    background: var(--l2c-input);
}
body.l2c-app .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
body.l2c-app .select2-container--default .select2-results__option--highlighted {
    background: rgba(201, 162, 39, 0.28) !important;
    color: #fff8ea !important;
}
body.l2c-app .select2-container--default .select2-results__option--selected {
    background: #2a2218 !important;
    color: var(--l2c-gold-2) !important;
}
body.l2c-app .dropdown-menu {
    background: var(--l2c-input);
    border-color: var(--l2c-line);
    color: var(--l2c-text);
}
body.l2c-app .dropdown-item { color: var(--l2c-text); }
body.l2c-app .dropdown-item:hover { background: rgba(201, 162, 39, 0.16); color: #fff3c4; }
body.l2c-app .pagination .page-link {
    background: var(--l2c-input);
    border-color: var(--l2c-line);
    color: var(--l2c-gold-2);
}
body.l2c-app .pagination .page-item.active .page-link {
    background: var(--l2c-gold);
    border-color: var(--l2c-gold);
    color: #1a1405;
}
body.l2c-app .modal-content {
    background: var(--l2c-bg-2);
    color: var(--l2c-text);
    border-color: var(--l2c-line);
}
body.l2c-app .modal-header,
body.l2c-app .modal-footer { border-color: var(--l2c-line); }

body.l2c-app .fw-google-auth { margin-top: 1.4rem; }
body.l2c-app .fw-google-auth__btn {
    border-radius: 3px;
    font-weight: 700;
    border-color: var(--l2c-line);
}

@media (max-width: 768px) {
    .l2c-shell { padding: 1rem .75rem 4.5rem; }
    .l2c-hero,
    .l2c-auth { grid-template-columns: 1fr; }
    .l2c-hero__art img { max-width: 240px; margin: 0 auto; }
    .l2c-auth__art img { min-height: 220px; }
}
