.tools-matrix-module {
    width: min(1180px, calc(100% - 2rem));
    margin: 2rem auto 5rem;
    color: #3D2B4F;
}

main > .max-w-6xl > .site-tool-grid {
    display: none;
}

.tools-matrix-shell {
    padding: clamp(1.25rem, 4vw, 3rem);
    border: 1px solid rgba(232, 222, 248, 0.9);
    border-radius: 1.5rem;
    background: linear-gradient(145deg, rgba(253, 250, 247, 0.98), rgba(241, 245, 249, 0.96));
    box-shadow: 0 24px 60px rgba(29, 13, 46, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.tools-matrix-header {
    max-width: 46rem;
    margin: 0 auto 2rem;
    text-align: center;
}

.tools-matrix-header h2,
.tools-matrix-panel h3,
.tools-matrix-interpretations h3 {
    margin: 0;
    color: #3D2B4F;
    font-family: 'League Spartan', sans-serif;
}

.tools-matrix-header h2 {
    font-size: clamp(2rem, 5vw, 3.6rem);
}

.tools-matrix-header p,
.tools-matrix-panel p,
.tools-matrix-field label,
.tools-matrix-interpretation p {
    color: rgba(61, 43, 79, 0.76);
    font-family: 'Montserrat', sans-serif;
    line-height: 1.7;
}

.tools-matrix-header p {
    margin: 0.8rem 0 0;
}

.tools-matrix-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
    gap: 1.2rem;
    align-items: start;
}

.tools-matrix-panel {
    padding: clamp(1.15rem, 3vw, 2rem);
    border: 1px solid #E8DEF8;
    border-radius: 1.2rem;
    background: #FFFFFF;
}

.tools-matrix-panel h3 {
    margin-bottom: 0.35rem;
    font-size: 1.65rem;
}

.tools-matrix-panel > p {
    margin: 0 0 1.2rem;
    font-size: 0.88rem;
}

.tools-matrix-form {
    display: grid;
    gap: 0.9rem;
}

.tools-matrix-field {
    display: grid;
    gap: 0.35rem;
}

.tools-matrix-field label {
    font-size: 0.76rem;
    font-weight: 700;
}

.tools-matrix-field input,
.tools-matrix-select {
    width: 100%;
    min-height: 2.8rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid #E8DEF8;
    border-radius: 0.65rem;
    color: #3D2B4F;
    background: #F1F5F9;
    font-family: 'Montserrat', sans-serif;
}

.tools-matrix-date-grid,
.tools-matrix-place-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.tools-matrix-place-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tools-matrix-submit {
    min-height: 3rem;
    margin-top: 0.35rem;
    border: 1px solid #3D2B4F;
    border-radius: 999px;
    color: #FFFFFF;
    background: #3D2B4F;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tools-matrix-submit:hover {
    box-shadow: 0 10px 20px rgba(61, 43, 79, 0.2);
    transform: translateY(-2px);
}

.tools-matrix-diagram-wrap {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border: 1px solid rgba(61, 43, 79, 0.18);
    border-radius: 1.15rem;
    background: linear-gradient(135deg, #FDFaf7 0%, #F5B942 54%, #3D2B4F 100%);
    box-shadow: 0 14px 30px rgba(61, 43, 79, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.tools-matrix-diagram-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    mix-blend-mode: multiply;
    opacity: 0.94;
}

.tools-matrix-node {
    position: absolute;
    display: grid;
    width: clamp(1.55rem, 4vw, 2.25rem);
    height: clamp(1.55rem, 4vw, 2.25rem);
    place-items: center;
    border: 2px solid rgba(61, 43, 79, 0.92);
    border-radius: 50%;
    color: #3D2B4F;
    background: rgba(253, 250, 247, 0.88);
    box-shadow: 0 3px 9px rgba(29, 13, 46, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    font-family: 'League Spartan', sans-serif;
    font-size: clamp(0.72rem, 1.6vw, 0.92rem);
    font-weight: 700;
    transform: translate(-50%, -50%);
    transition: box-shadow 0.2s ease, background 0.2s ease;
}

.tools-matrix-node-a { top: 10%; left: 50%; }
.tools-matrix-node-b { top: 50%; left: 10%; }
.tools-matrix-node-c { top: 50%; left: 90%; }
.tools-matrix-node-d { top: 90%; left: 50%; }
.tools-matrix-node-e { top: 50%; left: 50%; background: #3D2B4F; color: #FFFFFF; }
.tools-matrix-node-money { top: 28%; left: 72%; }
.tools-matrix-node-love { top: 72%; left: 28%; }
.tools-matrix-node-ancestral-a { top: 24%; left: 24%; }
.tools-matrix-node-ancestral-b { top: 24%; left: 76%; }
.tools-matrix-node-ancestral-c { top: 76%; left: 24%; }
.tools-matrix-node-ancestral-d { top: 76%; left: 76%; }

.tools-matrix-node.is-calculated {
    animation: tools-matrix-node-in 0.35s ease both;
    background: rgba(61, 43, 79, 0.94);
    border-color: #F5B942;
    color: #FFFFFF;
    box-shadow: 0 5px 14px rgba(29, 13, 46, 0.28), 0 0 0 3px rgba(245, 185, 66, 0.18);
}

.tools-matrix-node.tools-matrix-node-e.is-calculated {
    background: #F5B942;
    border-color: #3D2B4F;
    color: #3D2B4F;
}

.tools-matrix-node-money.is-calculated,
.tools-matrix-node-love.is-calculated {
    background: #FDFaf7;
    border-color: #D99A1B;
    color: #3D2B4F;
}

.tools-matrix-field input.is-invalid {
    border-color: #b91c1c;
    box-shadow: 0 0 0 2px rgba(185, 28, 28, 0.12);
}

.tools-matrix-caption {
    margin: 0.8rem 0 0;
    color: rgba(61, 43, 79, 0.62);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    text-align: center;
}

.tools-matrix-chakras {
    margin-top: 1.2rem;
}

.tools-matrix-table-wrap {
    overflow-x: auto;
    border: 1px solid #E8DEF8;
    border-radius: 0.8rem;
}

.tools-matrix-chakra-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    color: #3D2B4F;
    background: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.78rem;
}

.tools-matrix-chakra-table th,
.tools-matrix-chakra-table td {
    padding: 0.75rem;
    border-bottom: 1px solid #E8DEF8;
    text-align: left;
}

.tools-matrix-chakra-table th {
    background: #E8DEF8;
    font-weight: 700;
}

.tools-matrix-chakra-table tr:last-child td {
    border-bottom: 0;
    font-weight: 700;
}

.tools-matrix-chakra-dot {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    margin-right: 0.35rem;
    border-radius: 50%;
    vertical-align: -0.05rem;
}

.tools-matrix-interpretations {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1.2rem;
}

.tools-matrix-interpretation {
    padding: 1rem;
    border: 1px solid #E8DEF8;
    border-radius: 0.9rem;
    background: #FFFFFF;
}

.tools-matrix-interpretation h3 {
    font-size: 1.1rem;
}

.tools-matrix-interpretation p {
    margin: 0.45rem 0 0;
    font-size: 0.8rem;
}

.tools-matrix-interpretation {
    cursor: pointer;
}

.tools-matrix-interpretation p {
    max-height: 3.6rem;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.tools-matrix-interpretation.is-open p,
.tools-matrix-interpretation.is-ready p {
    max-height: 20rem;
}

.tools-matrix-interpretation.is-ready {
    border-color: #3D2B4F;
}

.tools-matrix-chakra-table tr.is-calculated td:not(:first-child) {
    color: #3D2B4F;
    font-weight: 700;
}

@keyframes tools-matrix-node-in {
    from { opacity: 0.35; transform: translate(-50%, -50%) scale(0.7); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (max-width: 820px) {
    .tools-matrix-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .tools-matrix-module {
        width: calc(100% - 2rem);
    }

    .tools-matrix-date-grid,
    .tools-matrix-place-grid,
    .tools-matrix-interpretations {
        grid-template-columns: 1fr;
    }
}

.tools-astral-module {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto 5rem;
    color: #3D2B4F;
}

.tools-astral-shell {
    padding: clamp(1.25rem, 4vw, 3rem);
    border: 1px solid rgba(232, 222, 248, 0.9);
    border-radius: 1.5rem;
    background: linear-gradient(145deg, rgba(253, 250, 247, 0.98), rgba(241, 245, 249, 0.96));
    box-shadow: 0 24px 60px rgba(29, 13, 46, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.tools-astral-header {
    max-width: 46rem;
    margin: 0 auto 2rem;
    text-align: center;
}

.tools-astral-header h2,
.tools-astral-panel h3,
.tools-astral-panel h4 {
    margin: 0;
    color: #3D2B4F;
    font-family: 'League Spartan', sans-serif;
}

.tools-astral-header h2 { font-size: clamp(2rem, 5vw, 3.6rem); }
.tools-astral-header p,
.tools-astral-panel p,
.tools-astral-field,
.tools-astral-fieldset,
.tools-astral-element-row,
.tools-astral-accordion-grid {
    font-family: 'Montserrat', sans-serif;
}

.tools-astral-header p,
.tools-astral-section-heading p,
.tools-astral-form-panel > p {
    margin: 0.7rem 0 0;
    color: rgba(61, 43, 79, 0.72);
    line-height: 1.7;
}

.tools-astral-layout,
.tools-astral-dashboard {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
    gap: 1.2rem;
    align-items: start;
}

.tools-astral-dashboard { margin-top: 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tools-astral-panel { padding: clamp(1.15rem, 3vw, 2rem); border: 1px solid #E8DEF8; border-radius: 1.2rem; background: rgba(255, 255, 255, 0.78); }
.tools-astral-panel h3 { font-size: 1.65rem; }
.tools-astral-section-heading { margin-bottom: 1.2rem; }
.tools-astral-eyebrow { display: block; margin-bottom: 0.35rem; color: #D99A1B; font: 700 0.7rem 'Montserrat', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; }

.tools-astral-form { display: grid; gap: 0.85rem; margin-top: 1.2rem; }
.tools-astral-field, .tools-astral-fieldset { display: grid; gap: 0.4rem; color: rgba(61, 43, 79, 0.78); font-size: 0.76rem; font-weight: 700; }
.tools-astral-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.tools-astral-fieldset legend { margin-bottom: 0.05rem; font-weight: 700; }
.tools-astral-field input, .tools-astral-fieldset input { width: 100%; min-height: 2.7rem; padding: 0.65rem 0.75rem; border: 1px solid #E8DEF8; border-radius: 0.65rem; color: #3D2B4F; background: #F1F5F9; font: 400 0.78rem 'Montserrat', sans-serif; }
.tools-astral-field small { color: rgba(61, 43, 79, 0.58); font-size: 0.68rem; font-weight: 400; }
.tools-astral-date-grid, .tools-astral-place-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem; }
.tools-astral-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tools-astral-date-grid label, .tools-astral-place-grid label { display: grid; gap: 0.35rem; }
.tools-astral-submit { min-height: 3rem; margin-top: 0.25rem; border: 1px solid #3D2B4F; border-radius: 999px; color: #fff; background: #3D2B4F; font: 700 0.78rem 'Montserrat', sans-serif; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tools-astral-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(61, 43, 79, 0.2); }

.tools-astral-trinity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; }
.tools-astral-trinity-card { display: flex; min-height: 9.5rem; flex-direction: column; justify-content: space-between; padding: 1rem; border: 1px solid #E8DEF8; border-radius: 0.9rem; background: #F1F5F9; }
.tools-astral-trinity-card h4 { font-size: 1.05rem; }
.tools-astral-trinity-card p, .tools-astral-trinity-card strong { margin: 0.3rem 0 0; color: rgba(61, 43, 79, 0.65); font: 400 0.7rem/1.5 'Montserrat', sans-serif; }
.tools-astral-trinity-card strong { display: block; color: #3D2B4F; font-weight: 700; }
.tools-astral-symbol { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: 50%; color: #3D2B4F; background: #F5B942; font-size: 1.3rem; }
.tools-astral-moon .tools-astral-symbol { background: #E8DEF8; }
.tools-astral-rising .tools-astral-symbol { background: #DDE5F1; }

.tools-astral-element-list { display: grid; gap: 1rem; }
.tools-astral-element-row { display: grid; grid-template-columns: 1fr auto; gap: 0.4rem 0.8rem; align-items: center; color: #3D2B4F; }
.tools-astral-element-row > div { display: grid; grid-template-columns: auto auto; gap: 0 0.45rem; align-items: center; }
.tools-astral-element-row strong { font-size: 0.82rem; }
.tools-astral-element-row small { grid-column: 2; color: rgba(61, 43, 79, 0.58); font-size: 0.68rem; }
.tools-astral-element-row b { color: #D99A1B; font-size: 0.78rem; }
.tools-astral-element-icon { grid-row: span 2; display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; background: #F5B942; }
.tools-astral-progress { grid-column: 1 / -1; height: 0.45rem; overflow: hidden; border-radius: 999px; background: #E8DEF8; }
.tools-astral-progress span { display: block; width: var(--element-progress); height: 100%; border-radius: inherit; background: linear-gradient(90deg, #D99A1B, #F5B942); animation: tools-astral-fill 0.8s ease both; }

.tools-astral-wheel { position: relative; width: min(100%, 21rem); aspect-ratio: 1; margin: 0 auto; border: 1px solid #3D2B4F; border-radius: 50%; background: radial-gradient(circle, rgba(245, 185, 66, 0.2) 0 20%, transparent 20.5% 45%, rgba(232, 222, 248, 0.45) 45.5% 46%, transparent 46.5%), conic-gradient(from -15deg, #F5B942, #E8DEF8, #F1F5F9, #F5B942); box-shadow: inset 0 0 0 0.55rem rgba(253, 250, 247, 0.85), 0 12px 25px rgba(61, 43, 79, 0.14); }
.tools-astral-wheel::before, .tools-astral-wheel::after { content: ''; position: absolute; inset: 13%; border: 1px solid rgba(61, 43, 79, 0.55); border-radius: 50%; }
.tools-astral-wheel::after { inset: 31%; border-color: rgba(217, 154, 27, 0.7); }
.tools-astral-wheel-inner { position: absolute; inset: 39%; z-index: 1; display: grid; place-content: center; border-radius: 50%; color: #3D2B4F; background: #FDFaf7; text-align: center; font: 700 0.7rem 'League Spartan', sans-serif; }
.tools-astral-wheel-inner small { display: block; color: #D99A1B; font: 500 0.55rem 'Montserrat', sans-serif; }
.tools-astral-zodiac { position: absolute; z-index: 2; display: grid; width: 1.5rem; height: 1.5rem; place-items: center; color: #3D2B4F; font-size: 1rem; font-style: normal; }
.zodiac-1 { top: 4%; left: 47%; }.zodiac-2 { top: 10%; right: 22%; }.zodiac-3 { top: 27%; right: 6%; }.zodiac-4 { top: 47%; right: 3%; }.zodiac-5 { bottom: 27%; right: 6%; }.zodiac-6 { bottom: 10%; right: 22%; }.zodiac-7 { bottom: 4%; left: 47%; }.zodiac-8 { bottom: 10%; left: 22%; }.zodiac-9 { bottom: 27%; left: 6%; }.zodiac-10 { top: 47%; left: 3%; }.zodiac-11 { top: 27%; left: 6%; }.zodiac-12 { top: 10%; left: 22%; }

.tools-astral-accordion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; margin-top: 1.2rem; }
.tools-astral-accordion-grid details { border: 1px solid #E8DEF8; border-radius: 0.8rem; background: #F1F5F9; }
.tools-astral-accordion-grid summary { display: grid; grid-template-columns: auto 1fr; gap: 0 0.7rem; align-items: center; padding: 1rem; color: #3D2B4F; cursor: pointer; list-style: none; }
.tools-astral-accordion-grid summary::-webkit-details-marker { display: none; }
.tools-astral-accordion-grid summary > span { grid-row: span 2; display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #3D2B4F; background: #F5B942; font-size: 1.15rem; }
.tools-astral-accordion-grid summary strong { font: 700 0.95rem 'League Spartan', sans-serif; }
.tools-astral-accordion-grid summary small { color: rgba(61, 43, 79, 0.62); font-size: 0.68rem; }
.tools-astral-accordion-grid details > p { margin: 0; padding: 0 1rem 1rem 3.7rem; color: rgba(61, 43, 79, 0.72); font: 0.75rem/1.6 'Montserrat', sans-serif; }

@keyframes tools-astral-fill { from { width: 0; } to { width: var(--element-progress); } }

@media (max-width: 820px) {
    .tools-astral-layout, .tools-astral-dashboard { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .tools-astral-trinity-grid, .tools-astral-accordion-grid { grid-template-columns: 1fr; }
    .tools-astral-date-grid, .tools-astral-place-grid { grid-template-columns: 1fr; }
}

.tools-compatibility-module { width: min(1180px, calc(100% - 2rem)); margin: 0 auto 5rem; color: #FDFaf7; }
.tools-compatibility-shell { padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid rgba(245, 185, 66, 0.32); border-radius: 1.5rem; background: radial-gradient(circle at 12% 12%, rgba(245, 185, 66, 0.16), transparent 32%), linear-gradient(145deg, rgba(29, 13, 46, 0.98), rgba(61, 43, 79, 0.94)); box-shadow: 0 24px 60px rgba(12, 7, 19, 0.32); }
.tools-compatibility-header { max-width: 48rem; margin: 0 auto 2rem; text-align: center; }
.tools-compatibility-header h2, .tools-compatibility-panel h3, .tools-compatibility-oracle h3, .tools-compatibility-premium h3 { margin: 0; font-family: 'League Spartan', sans-serif; }
.tools-compatibility-header h2 { color: #F5B942; font-size: clamp(2rem, 5vw, 3.4rem); }
.tools-compatibility-header p, .tools-compatibility-panel p, .tools-compatibility-premium p { color: rgba(253, 250, 247, 0.72); font: 400 0.84rem/1.7 'Montserrat', sans-serif; }
.tools-compatibility-panel { padding: clamp(1.15rem, 3vw, 2rem); border: 1px solid rgba(232, 222, 248, 0.2); border-radius: 1.1rem; background: rgba(24, 14, 31, 0.58); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); }
.tools-compatibility-section-heading { margin-bottom: 1.2rem; }
.tools-compatibility-section-heading > span, .tools-compatibility-eyebrow { display: block; margin-bottom: 0.35rem; color: #F5B942; font: 700 0.68rem 'Montserrat', sans-serif; letter-spacing: 0.13em; text-transform: uppercase; }
.tools-compatibility-section-heading h3, .tools-compatibility-global h3 { color: #FDFaf7; font-size: 1.55rem; }
.tools-compatibility-form { display: grid; gap: 1.1rem; }
.tools-compatibility-people { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; }
.tools-compatibility-person { display: grid; gap: 0.65rem; min-width: 0; margin: 0; padding: 1rem; border: 1px solid rgba(232, 222, 248, 0.18); border-radius: 0.9rem; background: rgba(61, 43, 79, 0.38); }
.tools-compatibility-person legend { padding: 0 0.35rem; color: #F5B942; font: 700 0.9rem 'League Spartan', sans-serif; }
.tools-compatibility-person label, .tools-compatibility-relation { display: grid; gap: 0.35rem; color: rgba(253, 250, 247, 0.7); font: 700 0.7rem 'Montserrat', sans-serif; }
.tools-compatibility-person input, .tools-compatibility-relation select { width: 100%; min-height: 2.65rem; padding: 0.65rem 0.75rem; border: 1px solid rgba(232, 222, 248, 0.24); border-radius: 0.6rem; color: #FDFaf7; background: rgba(253, 250, 247, 0.08); font: 400 0.76rem 'Montserrat', sans-serif; }
.tools-compatibility-relation select option { color: #3D2B4F; }
.tools-compatibility-heart { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgba(245, 185, 66, 0.55); border-radius: 50%; color: #F5B942; background: rgba(245, 185, 66, 0.1); font-size: 1.5rem; }
.tools-compatibility-submit, .tools-compatibility-premium-button { min-height: 3rem; border: 1px solid #F5B942; border-radius: 999px; color: #3D2B4F; background: #F5B942; font: 700 0.78rem 'Montserrat', sans-serif; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tools-compatibility-submit:hover, .tools-compatibility-premium-button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(245, 185, 66, 0.22); }
.tools-compatibility-results { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.tools-compatibility-results.is-visible { display: grid; }
.tools-compatibility-global { text-align: center; }
.tools-compatibility-gauge { position: relative; width: 11rem; aspect-ratio: 1; margin: 1rem auto; }
.tools-compatibility-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.tools-compatibility-gauge circle { fill: none; stroke-width: 8; }
.tools-compatibility-gauge-track { stroke: rgba(232, 222, 248, 0.18); }
.tools-compatibility-gauge-value { stroke: #F5B942; stroke-dasharray: 314; stroke-dashoffset: 314; stroke-linecap: round; }
.tools-compatibility-gauge strong { position: absolute; inset: 0; display: grid; place-items: center; color: #F5B942; font: 700 2rem 'League Spartan', sans-serif; }
.tools-compatibility-global-title { margin: 0 !important; color: #F5B942 !important; font-weight: 700 !important; }
.tools-compatibility-global-copy { max-width: 22rem; margin: 0.5rem auto 0; }
.tools-compatibility-pillars, .tools-compatibility-elements { min-height: 100%; }
.tools-compatibility-pillar { display: grid; gap: 0.4rem; margin-top: 1.2rem; }
.tools-compatibility-pillar > div { display: flex; justify-content: space-between; gap: 1rem; color: rgba(253, 250, 247, 0.9); font: 700 0.76rem 'Montserrat', sans-serif; }
.tools-compatibility-pillar b { color: #F5B942; }
.tools-compatibility-pillar > span { height: 0.55rem; overflow: hidden; border-radius: 999px; background: rgba(232, 222, 248, 0.16); }
.tools-compatibility-pillar i { display: block; width: var(--compatibility-progress); height: 100%; border-radius: inherit; background: linear-gradient(90deg, #D99A1B, #F5B942); }
.tools-compatibility-element-badges { display: flex; align-items: center; justify-content: center; gap: 0.7rem; margin: 1.3rem 0 1rem; }
.tools-compatibility-element-badges span { padding: 0.65rem 0.8rem; border: 1px solid rgba(245, 185, 66, 0.4); border-radius: 999px; color: #F5B942; background: rgba(245, 185, 66, 0.1); font: 0.7rem 'Montserrat', sans-serif; }
.tools-compatibility-element-badges em { color: rgba(253, 250, 247, 0.55); font-style: normal; }
.tools-compatibility-oracle { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tools-compatibility-oracle article { padding: 1.25rem; border: 1px solid rgba(245, 185, 66, 0.24); border-radius: 0.9rem; background: rgba(245, 185, 66, 0.08); }
.tools-compatibility-oracle article > span { color: #F5B942; font: 700 0.68rem 'Montserrat', sans-serif; text-transform: uppercase; letter-spacing: 0.08em; }
.tools-compatibility-oracle h3 { margin-top: 0.45rem; color: #FDFaf7; font-size: 1.15rem; }
.tools-compatibility-oracle p { margin: 0.45rem 0 0; }
.tools-compatibility-premium { position: relative; margin-top: 1rem; overflow: hidden; border: 1px solid rgba(245, 185, 66, 0.35); border-radius: 1.1rem; background: linear-gradient(120deg, rgba(29, 13, 46, 0.9), rgba(61, 43, 79, 0.72)); text-align: center; }
.premium-locked { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.tools-compatibility-premium::before { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 20%, rgba(245, 185, 66, 0.08), transparent 80%); pointer-events: none; }
.tools-compatibility-premium-content { position: relative; z-index: 1; max-width: 45rem; margin: auto; padding: 2rem; }
.tools-compatibility-lock { display: grid; width: 2.8rem; height: 2.8rem; margin: 0 auto 0.7rem; place-items: center; border: 1px solid rgba(245, 185, 66, 0.45); border-radius: 50%; background: rgba(245, 185, 66, 0.12); font-size: 1.2rem; }
.tools-compatibility-premium h3 { color: #F5B942; font-size: clamp(1.4rem, 3vw, 2rem); }
.tools-compatibility-premium ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.55rem 1rem; margin: 1.2rem 0; padding: 0; color: rgba(253, 250, 247, 0.7); font: 0.72rem 'Montserrat', sans-serif; list-style: none; }
.tools-compatibility-premium li::before { content: '✦'; margin-right: 0.4rem; color: #F5B942; }
.tools-compatibility-premium-button { padding: 0 1.3rem; }
.compatibility-vip-accordion-list { display: flex; flex-direction: column; gap: 0.75rem; }
.compatibility-vip-accordion { overflow: hidden; border: 1px solid rgba(245, 185, 66, 0.25); border-radius: 0.75rem; background: rgba(24, 14, 31, 0.52); }
.compatibility-vip-header { display: flex; width: 100%; align-items: center; gap: 0.75rem; padding: 1rem; border: 0; color: #FFFFFF; background: rgba(255, 255, 255, 0.05); font: 600 0.82rem 'Montserrat', sans-serif; text-align: left; cursor: pointer; }
.compatibility-vip-header strong { flex: 1; }
.compatibility-vip-content { max-height: 0; overflow: hidden; padding: 0 1rem; color: #E8DEF8; background: rgba(0, 0, 0, 0.2); transition: max-height 0.4s ease, padding 0.3s ease; }
.compatibility-vip-accordion.is-open .compatibility-vip-content { max-height: 700px; padding: 1rem; }
.compatibility-vip-content p { margin: 0 0 0.65rem; color: rgba(232, 222, 248, 0.84); font: 400 0.74rem/1.65 'Montserrat', sans-serif; }
.compatibility-vip-content p:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
    .tools-compatibility-people, .tools-compatibility-results, .tools-compatibility-oracle { grid-template-columns: 1fr; }
    .tools-compatibility-heart { margin: -0.35rem auto; }
    .tools-compatibility-oracle { grid-column: auto; }
}

@media (max-width: 480px) {
    .tools-compatibility-premium ul { grid-template-columns: 1fr; text-align: left; }
}

.tools-numerology-module { width: min(1180px, calc(100% - 2rem)); margin: 0 auto 5rem; color: #3D2B4F; }
.tools-numerology-shell { padding: clamp(1.25rem, 4vw, 3rem); border: 1px solid rgba(232, 222, 248, 0.9); border-radius: 1.5rem; background: linear-gradient(145deg, rgba(253, 250, 247, 0.98), rgba(241, 245, 249, 0.96)); box-shadow: 0 24px 60px rgba(29, 13, 46, 0.18); }
.tools-numerology-header { max-width: 48rem; margin: 0 auto 2rem; text-align: center; }
.tools-numerology-header h2, .tools-numerology-panel h3, .tools-numerology-result-card h4, .tools-numerology-advice h3, .tools-numerology-premium h3 { margin: 0; color: #3D2B4F; font-family: 'League Spartan', sans-serif; }
.tools-numerology-header h2 { font-size: clamp(2rem, 5vw, 3.4rem); }
.tools-numerology-header p, .tools-numerology-result-card p, .tools-numerology-advice p, .tools-numerology-premium p { color: rgba(61, 43, 79, 0.72); font: 400 0.84rem/1.7 'Montserrat', sans-serif; }
.tools-numerology-panel { padding: clamp(1.15rem, 3vw, 2rem); border: 1px solid #E8DEF8; border-radius: 1.1rem; background: rgba(255, 255, 255, 0.8); }
.tools-numerology-section-heading { margin-bottom: 1.15rem; }
.tools-numerology-section-heading > span, .tools-numerology-eyebrow { display: block; margin-bottom: 0.35rem; color: #D99A1B; font: 700 0.68rem 'Montserrat', sans-serif; letter-spacing: 0.13em; text-transform: uppercase; }
.tools-numerology-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.65fr) auto; gap: 1rem; align-items: end; }
.tools-numerology-form label { display: grid; gap: 0.4rem; color: rgba(61, 43, 79, 0.78); font: 700 0.72rem 'Montserrat', sans-serif; }
.tools-numerology-form input { width: 100%; min-height: 2.8rem; padding: 0.7rem 0.8rem; border: 1px solid #E8DEF8; border-radius: 0.65rem; color: #3D2B4F; background: #F1F5F9; font: 400 0.78rem 'Montserrat', sans-serif; }
.tools-numerology-form small { color: rgba(61, 43, 79, 0.58); font-size: 0.66rem; font-weight: 400; }
.tools-numerology-submit, .tools-numerology-premium-button { min-height: 2.9rem; padding: 0 1.2rem; border: 1px solid #3D2B4F; border-radius: 999px; color: #FFFFFF; background: #3D2B4F; font: 700 0.76rem 'Montserrat', sans-serif; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tools-numerology-submit:hover, .tools-numerology-premium-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(61, 43, 79, 0.22); }
.tools-numerology-results { display: none; margin-top: 1.2rem; }
.tools-numerology-results.is-visible { display: block; }
.tools-numerology-results-title { margin: 0 0 0.8rem; color: #3D2B4F; font: 1.55rem 'League Spartan', sans-serif; }
.tools-numerology-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tools-numerology-result-card { padding: 1.25rem; border: 1px solid #E8DEF8; border-radius: 1rem; background: #F1F5F9; }
.tools-numerology-result-card h4 { font-size: 1.15rem; }
.tools-numerology-result-card p { margin-bottom: 0; }
.tools-numerology-number-wrap { display: flex; align-items: center; gap: 0.75rem; margin: 0.8rem 0; }
.tools-numerology-number-wrap > strong { color: #3D2B4F; font: 700 clamp(3rem, 8vw, 4.8rem)/0.9 'League Spartan', sans-serif; }
.master-number-badge { padding: 0.35rem 0.55rem; border: 1px solid #D99A1B; border-radius: 999px; color: #8c5f00; background: linear-gradient(135deg, #FFF3C8, #F5B942); box-shadow: 0 0 14px rgba(245, 185, 66, 0.45); font: 700 0.62rem 'Montserrat', sans-serif; }
.tools-numerology-advice { margin-top: 1rem; padding: 1.25rem; border: 1px solid rgba(217, 154, 27, 0.42); border-radius: 1rem; background: linear-gradient(120deg, rgba(245, 185, 66, 0.2), rgba(232, 222, 248, 0.45)); }
.tools-numerology-advice h3 { font-size: 1.25rem; }
.tools-numerology-advice p { margin-bottom: 0; }
.tools-numerology-premium { position: relative; overflow: hidden; margin-top: 1.2rem; border: 1px solid rgba(217, 154, 27, 0.42); border-radius: 1.1rem; background: linear-gradient(135deg, rgba(29, 13, 46, 0.93), rgba(61, 43, 79, 0.85)); text-align: center; }
.tools-numerology-premium.premium-locked { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.tools-numerology-premium::before { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 15%, rgba(245, 185, 66, 0.1), transparent 82%); pointer-events: none; }
.tools-numerology-premium-content { position: relative; z-index: 1; max-width: 48rem; margin: auto; padding: 2rem; }
.tools-numerology-lock { display: grid; width: 2.8rem; height: 2.8rem; margin: 0 auto 0.7rem; place-items: center; border: 1px solid rgba(245, 185, 66, 0.5); border-radius: 50%; background: rgba(245, 185, 66, 0.12); font-size: 1.2rem; }
.tools-numerology-premium h3 { color: #F5B942; font-size: clamp(1.45rem, 3vw, 2rem); }
.tools-numerology-premium p { color: rgba(253, 250, 247, 0.72); }
.tools-numerology-premium p strong { color: #F5B942; }
.tools-numerology-premium ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.65rem 1.2rem; margin: 1.2rem 0; padding: 0; color: rgba(253, 250, 247, 0.82); font: 0.72rem/1.45 'Montserrat', sans-serif; list-style: none; text-align: left; }
.tools-numerology-premium li::before { content: '✦'; margin-right: 0.4rem; color: #F5B942; }
.tools-numerology-premium li small { display: block; margin: 0.15rem 0 0 1rem; color: rgba(253, 250, 247, 0.55); font-size: 0.64rem; }
.tools-numerology-premium-button { border-color: #F5B942; color: #3D2B4F; background: #F5B942; }

.premium-results-wrapper.premium-content-locked { position: relative; margin-top: 2rem; margin-bottom: 1rem; filter: blur(8px); opacity: 0.45; pointer-events: none; user-select: none; transition: filter 0.5s ease, opacity 0.5s ease; }
.premium-header-tag { margin-bottom: 1.5rem; text-align: center; }
.premium-header-tag span { display: inline-block; padding: 6px 16px; border-radius: 20px; color: #E8DEF8; background-color: #3D2B4F; font-size: 0.85rem; font-weight: 600; letter-spacing: 1px; }
.premium-grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
.premium-grid-container article { min-height: 8rem; padding: 1.25rem; border: 1px solid rgba(245, 185, 66, 0.3); border-radius: 1rem; background: rgba(61, 43, 79, 0.82); color: #FDFaf7; box-shadow: 0 12px 28px rgba(29, 13, 46, 0.14); }
.premium-grid-container h4 { margin: 0; color: #F5B942; font: 700 1.05rem 'League Spartan', sans-serif; }
.premium-grid-container p { margin: 0.55rem 0 0; color: rgba(253, 250, 247, 0.78); font: 400 0.74rem/1.6 'Montserrat', sans-serif; }
.astral-vip-accordion-list { display: flex; flex-direction: column; gap: 0.75rem; }
.tarjeta-vip-acordeon { cursor: pointer; overflow: hidden; margin-bottom: 16px; border: 1px solid rgba(138, 92, 246, 0.25); border-radius: 14px; background: linear-gradient(135deg, rgba(20, 16, 42, 0.85) 0%, rgba(35, 25, 68, 0.9) 100%); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.35); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.tarjeta-vip-acordeon:hover { border-color: rgba(168, 85, 247, 0.5); box-shadow: 0 6px 20px rgba(138, 92, 246, 0.2); transform: translateY(-2px); }
.tarjeta-vip-acordeon.activa .tarjeta-vip-header { border-bottom: 1px solid rgba(138, 92, 246, 0.2); background: rgba(138, 92, 246, 0.08); }
.tarjeta-vip-header { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 18px 20px; border: 0; border-bottom: 1px solid transparent; color: #FFFFFF; background: rgba(255, 255, 255, 0.03); font: 600 1.05rem 'Montserrat', sans-serif; text-align: left; cursor: pointer; transition: border-color 0.3s ease, background 0.3s ease; }
.tarjeta-vip-header strong, .tarjeta-vip-header h3, .tarjeta-vip-header h4 { flex: 1; margin: 0; color: #f3e8ff; font-size: 1.05rem; font-weight: 600; letter-spacing: 0.3px; }
.flecha-acordeon { color: #c084fc; font-size: 1.1rem; transition: transform 0.3s ease, color 0.3s ease; }
.tarjeta-vip-acordeon.activa .flecha-acordeon { transform: rotate(180deg) !important; color: #e9d5ff; }
.tarjeta-vip-contenido { max-height: 0; overflow: hidden; padding: 0 20px; color: #E8DEF8; background: rgba(12, 9, 28, 0.5); transition: max-height 0.4s cubic-bezier(0, 1, 0, 1), padding 0.3s ease; }
.tarjeta-vip-acordeon.activa .tarjeta-vip-contenido { max-height: 1200px !important; padding: 20px !important; transition: max-height 0.5s ease-in-out, padding 0.3s ease; }
.tarjeta-vip-contenido h4 { margin: 0 0 0.5rem; color: #F5B942; font: 700 1rem 'League Spartan', sans-serif; }
.tarjeta-vip-contenido p { margin: 0 0 12px; color: #e2e8f0; font: 400 0.95rem/1.65 'Montserrat', sans-serif; }
.tarjeta-vip-contenido p:last-child { margin-bottom: 0; }
.tarjeta-vip-contenido strong { color: #a855f7; font-weight: 600; }
.premium-grid-container .tarjeta-vip-acordeon { background: linear-gradient(135deg, rgba(20, 16, 42, 0.85) 0%, rgba(35, 25, 68, 0.9) 100%); border-radius: 14px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.35); }
.premium-grid-container .tarjeta-vip-acordeon:hover { box-shadow: 0 6px 20px rgba(138, 92, 246, 0.2); }
.premium-grid-container .tarjeta-vip-acordeon.activa { box-shadow: 0 6px 20px rgba(138, 92, 246, 0.2); }

.vip-accordion-wrapper { display: flex; flex-direction: column; gap: 0.75rem; width: 100%; margin-top: 1.25rem; }
.vip-accordion-item { overflow: hidden; border: 1px solid rgba(138, 43, 226, 0.3); border-radius: 0.75rem; background: rgba(20, 15, 38, 0.7); transition: border-color 0.3s ease, box-shadow 0.3s ease; }
.vip-accordion-item.active { border-color: rgba(245, 185, 66, 0.55); box-shadow: 0 8px 22px rgba(29, 13, 46, 0.18); }
.vip-accordion-trigger { display: flex; width: 100%; align-items: center; gap: 0.85rem; padding: 1rem 1.2rem; border: 0; color: #FFFFFF; background: linear-gradient(135deg, #2a1b4e 0%, #170d30 100%); font: 600 1.05rem 'Montserrat', sans-serif; text-align: left; cursor: pointer; }
.vip-accordion-trigger:hover { background: linear-gradient(135deg, #382368 0%, #201242 100%); }
.acc-icon { flex: 0 0 auto; font-size: 1.2rem; }
.acc-title { flex: 1; }
.acc-arrow { transition: transform 0.3s ease; }
.vip-accordion-item.active .acc-arrow { transform: rotate(180deg); }
.vip-accordion-content { padding: 1.25rem; border-top: 1px solid rgba(138, 43, 226, 0.2); color: #E8DEF8; background: rgba(12, 8, 24, 0.9); }
.vip-accordion-content.hidden { display: none; }
.vip-accordion-content h4 { margin: 0; color: #F5B942; font: 700 1.15rem 'League Spartan', sans-serif; }
.vip-accordion-content p { margin: 0.55rem 0 0; color: rgba(232, 222, 248, 0.82); font: 400 0.78rem/1.7 'Montserrat', sans-serif; }
.premium-content-unlocked .vip-accordion-content.hidden { display: none; }
.premium-content-unlocked .vip-accordion-content:not(.hidden) { animation: vip-accordion-open 0.3s ease both; }
@keyframes vip-accordion-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 560px) { .vip-accordion-trigger { padding: 0.9rem; font-size: 0.86rem; } .vip-accordion-content { padding: 1rem; } }
.vip-container-block { margin-top: 2rem; }
.vip-header-title { margin-bottom: 1rem; text-align: center; }
.vip-header-title h2 { margin: 0.8rem 0 0; color: #F5B942; font: 700 clamp(1.5rem, 4vw, 2.2rem) 'League Spartan', sans-serif; }
.vip-badge { display: inline-block; padding: 0.35rem 0.7rem; border-radius: 20px; color: #E8DEF8; background: #3D2B4F; font: 600 0.7rem 'Montserrat', sans-serif; letter-spacing: 0.08em; }
.vip-timeline-wrapper { display: grid; gap: 0.8rem; }
.vip-timeline-item { position: relative; padding: 0.9rem 1rem 0.9rem 1.2rem; border-left: 3px solid #D99A1B; border-radius: 0 0.65rem 0.65rem 0; background: rgba(138, 43, 226, 0.12); }
.vip-timeline-item h4, .vip-card-box h4, .roadmap-step h4 { margin: 0.45rem 0 0; color: #F5B942; font: 700 1rem 'League Spartan', sans-serif; }
.vip-timeline-item p, .vip-card-box p, .roadmap-step p { margin: 0.35rem 0 0; color: rgba(232, 222, 248, 0.82); font: 400 0.74rem/1.6 'Montserrat', sans-serif; }
.vip-badge-arcano { display: inline-block; padding: 0.25rem 0.55rem; border-radius: 20px; color: #FFFFFF; background: #8A2BE2; font: 700 0.64rem 'Montserrat', sans-serif; }
.vip-grid-2cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.vip-card-box { padding: 1rem; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.65rem; background: rgba(255, 255, 255, 0.04); }
.contenedor-finanzas-tarjetas { display: flex; flex-direction: column; gap: 16px; width: 100%; box-sizing: border-box; }
.tarjeta-finanzas { width: 100%; box-sizing: border-box; margin-bottom: 8px; overflow: hidden; }
.vip-resource-keys { display: grid; gap: 0.55rem; margin-top: 0.8rem; }
.vip-resource-keys p { margin: 0; padding-top: 0.55rem; border-top: 1px solid rgba(232, 222, 248, 0.12); }
.vip-resource-keys strong { color: #F5B942; }
.vip-decreto-box { margin-top: 0.8rem; padding: 0.9rem 1rem; border-left: 4px solid #BA55D3; border-radius: 0 0.5rem 0.5rem 0; color: #E8DEF8; background: linear-gradient(135deg, rgba(138, 43, 226, 0.15), rgba(75, 0, 130, 0.25)); font: 400 0.74rem/1.6 'Montserrat', sans-serif; }
.vip-decreto-box p { margin: 0.35rem 0 0; }
.vip-tags-wrapper { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.7rem; }
.vip-roadmap-box { display: grid; gap: 0.8rem; }
.roadmap-step { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.9rem; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.65rem; background: rgba(255, 255, 255, 0.04); }
.step-num { display: grid; flex: 0 0 auto; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; color: #3D2B4F; background: #F5B942; font: 700 0.75rem 'Montserrat', sans-serif; }
.highlight-step { border-color: rgba(245, 185, 66, 0.45); background: rgba(245, 185, 66, 0.1); }
@media (max-width: 560px) { .vip-grid-2cols { grid-template-columns: 1fr; } }

@media (max-width: 820px) { .tools-numerology-form { grid-template-columns: 1fr 1fr; } .tools-numerology-submit { grid-column: 1 / -1; } }
@media (max-width: 560px) { .tools-numerology-form, .tools-numerology-cards { grid-template-columns: 1fr; } .tools-numerology-premium ul { grid-template-columns: 1fr; } }

.caseta-vip-card { position: relative; overflow: hidden; margin-top: 1.2rem; border: 1px solid rgba(245, 185, 66, 0.34); border-radius: 16px; color: #FDFaf7; background: linear-gradient(135deg, #3D2B4F, #241a2d); box-shadow: 0 18px 42px rgba(29, 13, 46, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.caseta-vip-card.premium-locked { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.caseta-vip-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 85% 15%, rgba(245, 185, 66, 0.16), transparent 34%), linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, 0.04), transparent 78%); pointer-events: none; }
.caseta-vip-content { position: relative; z-index: 1; max-width: 58rem; margin: 0 auto; padding: clamp(1.35rem, 4vw, 2.3rem); text-align: center; }
.caseta-vip-lock { display: grid; width: 3rem; height: 3rem; margin: 0 auto 0.75rem; place-items: center; border: 1px solid rgba(245, 185, 66, 0.5); border-radius: 50%; color: #F5B942; background: rgba(232, 222, 248, 0.18); font-size: 1.25rem; }
.caseta-vip-badge { display: inline-block; padding: 0.35rem 0.65rem; border: 1px solid rgba(232, 222, 248, 0.3); border-radius: 0.35rem; color: #FDFaf7; background: rgba(255, 255, 255, 0.12); font: 700 0.62rem 'Montserrat', sans-serif; letter-spacing: 0.14em; }
.caseta-vip-card h3 { margin: 0.8rem 0 0; color: #FFFFFF; font: 700 clamp(1.5rem, 3vw, 2.2rem) 'League Spartan', sans-serif; }
.caseta-vip-card > .caseta-vip-content > p { margin: 0.55rem 0 0; color: #E8DEF8; font: 400 0.82rem/1.6 'Montserrat', sans-serif; }
.caseta-vip-content ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin: 1.3rem 0; padding: 0; list-style: none; text-align: left; }
.caseta-vip-content li { min-height: 4.1rem; padding: 0.75rem 0.85rem; border: 1px solid rgba(232, 222, 248, 0.12); border-radius: 0.7rem; background: rgba(24, 14, 31, 0.55); }
.caseta-vip-content li strong { display: block; color: #FFFFFF; font: 700 0.76rem/1.35 'Montserrat', sans-serif; }
.caseta-vip-content li small { display: block; margin-top: 0.25rem; color: rgba(232, 222, 248, 0.68); font: 400 0.66rem/1.45 'Montserrat', sans-serif; }
.btn-unlock-vip { min-height: 3rem; padding: 0 1.5rem; border: 1px solid #F5B942; border-radius: 50px; color: #3D2B4F; background: #F5B942; box-shadow: 0 8px 20px rgba(245, 185, 66, 0.16); font: 700 0.76rem 'Montserrat', sans-serif; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; }
.btn-unlock-vip:hover { transform: translateY(-2px); background: #FFD166; box-shadow: 0 12px 28px rgba(245, 185, 66, 0.32); }
.vip-checkout-modal { position: fixed; inset: 0; z-index: 100; display: none; place-items: center; padding: 1rem; background: rgba(18, 13, 25, 0.74); }
.vip-checkout-modal.is-open { display: grid; }
.vip-checkout-dialog { position: relative; width: min(100%, 30rem); max-width: 30rem; padding: 2rem; border: 1px solid rgba(245, 185, 66, 0.5); border-radius: 16px; color: #FDFaf7; background: linear-gradient(145deg, #3D2B4F, #1d0d2e); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45); text-align: center; }
.vip-checkout-dialog h2 { margin: 1rem 0 0.6rem; color: #FFFFFF; font: 700 2rem 'League Spartan', sans-serif; }
.vip-checkout-dialog p { margin: 0.55rem 0; color: #E8DEF8; font: 400 0.78rem/1.6 'Montserrat', sans-serif; }
.vip-checkout-tool strong, .vip-checkout-price { color: #F5B942; }
.vip-checkout-price { display: block; margin: 1.15rem 0; font: 700 1.25rem 'League Spartan', sans-serif; }
.vip-checkout-close { position: absolute; top: 0.65rem; right: 0.75rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; color: #E8DEF8; background: transparent; font-size: 1.5rem; cursor: pointer; }
.vip-checkout-confirm { min-height: 2.9rem; padding: 0 1.4rem; border: 1px solid #F5B942; border-radius: 50px; color: #3D2B4F; background: #F5B942; font: 700 0.76rem 'Montserrat', sans-serif; cursor: pointer; }

@media (max-width: 560px) { .caseta-vip-content ul { grid-template-columns: 1fr; } .vip-checkout-dialog { padding: 1.6rem 1.15rem; } }

/* Estilo maestro unificado para acordeones VIP */
.contenedor-acordeon-vip,
.vip-accordion-wrapper,
.astral-vip-accordion-list,
.compatibility-vip-accordion-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.acordeon-vip-item,
.vip-accordion-item,
.tarjeta-vip-acordeon,
.compatibility-vip-accordion {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(138, 92, 246, 0.3);
    border-radius: 12px;
    background: #191b40;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transition: all 0.3s ease;
}

.acordeon-vip-item:hover,
.vip-accordion-item:hover,
.tarjeta-vip-acordeon:hover,
.compatibility-vip-accordion:hover {
    border-color: rgba(168, 85, 247, 0.6);
    background: #1e214d;
}

.acordeon-vip-header,
.vip-accordion-trigger,
.tarjeta-vip-header,
.compatibility-vip-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
    padding: 16px 20px;
    border: 0;
    background: transparent;
    color: #FFFFFF;
    text-align: left;
    cursor: pointer;
}

.acordeon-vip-header-titulo,
.vip-accordion-trigger .acc-title,
.tarjeta-vip-header strong,
.compatibility-vip-header strong {
    flex: 1;
    color: #FFFFFF;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.acordeon-vip-header-titulo i,
.acordeon-vip-header-titulo svg,
.vip-accordion-trigger .acc-icon,
.tarjeta-vip-header span:first-child,
.compatibility-vip-header span:first-child {
    color: #A855F7;
    font-size: 1.1rem;
}

.acordeon-vip-flecha,
.vip-accordion-trigger .acc-arrow,
.flecha-acordeon,
.compatibility-vip-header > span:last-child {
    color: #FFFFFF;
    font-size: 0.85rem;
    transition: transform 0.3s ease;
}

.acordeon-vip-item.activo,
.vip-accordion-item.active,
.tarjeta-vip-acordeon.activa,
.compatibility-vip-accordion.is-open {
    border-color: #A855F7;
    box-shadow: 0 0 15px rgba(168, 85, 247, 0.2);
}

.acordeon-vip-item.activo .acordeon-vip-flecha,
.vip-accordion-item.active .vip-accordion-trigger .acc-arrow,
.tarjeta-vip-acordeon.activa .flecha-acordeon,
.compatibility-vip-accordion.is-open .compatibility-vip-header > span:last-child {
    transform: rotate(180deg);
}

.acordeon-vip-contenido,
.vip-accordion-content,
.tarjeta-vip-contenido,
.compatibility-vip-content {
    max-height: 0;
    overflow: hidden;
    box-sizing: border-box;
    padding: 0 20px;
    border-top: 1px solid transparent;
    background: rgba(15, 17, 38, 0.95);
    transition: max-height 0.4s cubic-bezier(0, 1, 0, 1), padding 0.3s ease;
}

.acordeon-vip-item.activo .acordeon-vip-contenido,
.vip-accordion-item.active .vip-accordion-content,
.tarjeta-vip-acordeon.activa .tarjeta-vip-contenido,
.compatibility-vip-accordion.is-open .compatibility-vip-content {
    max-height: 1200px !important;
    padding: 20px !important;
    border-top-color: rgba(138, 92, 246, 0.2);
    transition: max-height 0.4s ease-in-out, padding 0.3s ease;
}

.acordeon-vip-contenido p,
.vip-accordion-content p,
.tarjeta-vip-contenido p,
.compatibility-vip-content p {
    margin: 0 0 10px;
    color: #D1D5DB;
    font-size: 0.92rem;
    line-height: 1.6;
}

.acordeon-vip-contenido p:last-child,
.vip-accordion-content p:last-child,
.tarjeta-vip-contenido p:last-child,
.compatibility-vip-content p:last-child {
    margin-bottom: 0;
}

.acordeon-vip-contenido strong,
.vip-accordion-content strong,
.tarjeta-vip-contenido strong,
.compatibility-vip-content strong {
    color: #FBBF24;
}

/* Estados de acceso VIP liberado */
.premium-results-wrapper.premium-content-unlocked {
    filter: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    user-select: text !important;
}

body.vip-active .caseta-vip-card {
    display: none !important;
}

.vip-badge-active {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    color: #1A1A1A;
    background: linear-gradient(135deg, #FFD700, #FFA500);
    box-shadow: 0 2px 8px rgba(255, 215, 0, 0.4);
    font-size: 0.8rem;
    font-weight: 700;
}

.modal-overlay { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 1rem; background: rgba(18, 13, 25, 0.78); }
.modal-overlay.hidden { display: none; }
.modal-content-card { position: relative; width: min(100%, 520px); max-height: min(90vh, 760px); overflow-y: auto; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid rgba(245, 185, 66, 0.5); border-radius: 16px; color: #FDFaf7; background: linear-gradient(145deg, #3D2B4F, #1d0d2e); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.48); }
.modal-close-btn { position: absolute; top: 0.65rem; right: 0.75rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; color: #E8DEF8; background: transparent; font-size: 1.5rem; cursor: pointer; }
.warning-header { display: flex; gap: 0.7rem; align-items: center; padding-right: 2rem; }
.warning-icon { font-size: 1.5rem; }
.warning-header h3 { margin: 0; color: #F5B942; font: 700 clamp(1.35rem, 4vw, 1.8rem) 'League Spartan', sans-serif; }
.warning-body { margin-top: 1.3rem; }
.warning-body p { color: #E8DEF8; font: 400 0.78rem/1.7 'Montserrat', sans-serif; }
.warning-highlight { margin: 0; color: #FFFFFF !important; }
.warning-highlight strong { color: #F5B942; }
.warning-text { margin: 0.85rem 0 0; }
.legal-checkbox-box { margin-top: 1.1rem; padding: 1rem; border: 1px solid rgba(245, 185, 66, 0.32); border-radius: 0.75rem; background: rgba(24, 14, 31, 0.62); cursor: pointer; }
.checkbox-label { display: flex; gap: 0.7rem; align-items: flex-start; color: rgba(253, 250, 247, 0.84); font: 400 0.72rem/1.6 'Montserrat', sans-serif; cursor: pointer; }
.checkbox-label input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: 0.15rem; accent-color: #F5B942; cursor: pointer; }
.checkbox-label strong { color: #FFFFFF; }
.warning-footer { margin-top: 1.25rem; text-align: center; }
.btn-pay-disabled, .btn-pay-active { display: inline-flex; min-height: 2.9rem; align-items: center; justify-content: center; padding: 0 1.2rem; border-radius: 50px; font: 700 0.75rem 'Montserrat', sans-serif; text-decoration: none; transition: background 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; }
.btn-pay-disabled { background: #6B7280; color: #F3F4F6; opacity: 0.6; cursor: not-allowed; pointer-events: none; }
.btn-pay-active { background: #F5B942; color: #3D2B4F; cursor: pointer; pointer-events: auto; box-shadow: 0 8px 24px rgba(245, 185, 66, 0.3); }
.btn-pay-active:hover { background: #FFD166; box-shadow: 0 12px 30px rgba(245, 185, 66, 0.42); }
.legal-microprint { margin: 0.7rem 0 0; color: rgba(232, 222, 248, 0.58); font: 0.62rem 'Montserrat', sans-serif; }
