/**
 * Public styles for Numerology Compatibility Plugin
 */

:root {
    --nc-primary: #6B46C1;
    --nc-secondary: #F59E0B;
    --nc-success: #10B981;
    --nc-danger: #EF4444;
    --nc-text: #1F2937;
    --nc-light: #F3F4F6;
    --nc-border: #E5E7EB;
}

/* Calculator Wrapper */
.nc-calculator {
    max-width: 62.5rem;
    margin: 0 auto;
    padding: 1.25rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Utility Classes */
.nc-hidden {
    display: none !important;
}

.nc-mt-1 {
    margin-top: 0.8rem;
}

.nc-mt-2 {
    margin-top: 1.25rem;
}

.nc-my-2 {
    margin-top: 1.25rem;
    margin-bottom: 1.25rem;
}

.nc-my-3 {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Steps */
.nc-step {
    animation: fadeIn 0.3s ease-in;
}

.nc-dates-form {
    max-width: 600px;
    margin: 0 auto;
}

.nc-step h2 {
    color: var(--nc-text);
    margin-bottom: 0.8rem;
}

.nc-step .nc-subtitle {
    color: #6B7280;
    margin-bottom: 2rem;
}

/* Form */
.nc-form {
    margin-top: 2rem;
}

.nc-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

@media (max-width: 768px) {
    .nc-form-row {
        grid-template-columns: 1fr;
    }
}

.nc-form-group {
    margin-bottom: 1.25rem;
}

.nc-form-group h3 {
    color: var(--nc-primary);
    margin-bottom: 1rem;
    font-size: 1.6em;
}

.nc-field {
    margin-bottom: 1rem;
}

.nc-field label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--nc-text);
}

.nc-field input[type="text"],
.nc-field input[type="email"],
.nc-field input[type="date"],
.nc-field input[type="time"],
.nc-field select {
    width: 100%;
    padding: 0.8rem;
    border: 1px solid var(--nc-border);
    border-radius: 0.5rem;
    font-size: 1rem;
    transition: border-color 0.2s;
    max-width: 12.5rem;
}

.nc-field input:focus {
    outline: none;
    border-color: var(--nc-primary);
    box-shadow: 0 0 0 0.2rem rgba(107, 70, 193, 0.1);
}

.nc-field input.error {
    border-color: var(--nc-danger);
}

.nc-field .nc-error-message {
    color: var(--nc-danger);
    font-size: 0.8rem;
    margin-top: 0.5rem;
}

.nc-field.nc-required label::after {
    content: " *";
    color: var(--nc-danger);
}

/* Checkboxes */
.nc-checkbox {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0.8rem;
    cursor: pointer;
}

.nc-checkbox input[type="checkbox"] {
    margin-right: 0.8rem;
    margin-top: 0.25rem;
    cursor: pointer;
}

.nc-checkbox span {
    flex: 1;
    line-height: 1.5;
}

.nc-consent-group {
    font-size: 0.8rem;
    border-radius: 0.5rem;
    padding: 1rem;
}

.nc-form-actions {
    display: flex;
    justify-content: center;
}

.nc-alert {
    padding: 0.8rem;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
}

.nc-alert-warning {
    background: #fbf4d7;
    color: #92400E;
    border: 1px solid #FCD34D;
}

/* Buttons */
.nc-btn {
    display: inline-block;
    padding: 0.8rem 1.5rem;
    border: none;
    border-radius: 0.5rem;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.nc-btn-primary {
    background: var(--nc-primary);
    color: white !important;
}

.nc-btn-primary:hover {
    background: #5A3AAA;
    transform: translateY(-0.0625rem);
    box-shadow: 0 0.25rem 0.8rem rgba(107, 70, 193, 0.3);
}

.nc-btn-secondary {
    background: var(--nc-light);
    color: var(--nc-text);
}

.nc-btn-outline {
    background: transparent;
    border: 2px solid var(--nc-primary);
    color: var(--nc-primary);
}

.nc-btn-google {
    background: white;
    border: 1px solid var(--nc-border);
    color: var(--nc-text);
    display: flex;
    align-items: center;
    justify-content: center;
}

.nc-btn-google img {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 1rem;
}

.nc-btn-large {
    padding: 1rem 2rem;
    font-size: 1rem;
}

.nc-btn-small {
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
}

.nc-btn-block {
    display: block;
    width: 100%;
}

.nc-btn-danger {
    background: var(--nc-danger);
    color: white;
}

.nc-btn.loading {
    opacity: 0.7;
    pointer-events: none;
}

/* Disabled Button Styles */
.nc-btn:disabled,
.nc-btn[disabled] {
    background: #9CA3AF !important;
    color: #D1D5DB !important;
    cursor: not-allowed !important;
    opacity: 0.6;
    pointer-events: none;
}

.nc-btn:disabled:hover,
.nc-btn[disabled]:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* Package Selection */
.nc-packages {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
    gap: 1.25rem;
    margin: 2rem 0;
}

.nc-package {
    border: 2px solid var(--nc-border);
    border-radius: 0.8rem;
    padding: 2rem;
    text-align: center;
    position: relative;
    transition: all 0.3s;
    box-sizing: border-box;
    max-width: 100%;
}

.nc-package:hover {
    border-color: var(--nc-primary);
    transform: translateY(-0.3rem);
    box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.1);
}

.nc-package.nc-package-featured {
    border-color: var(--nc-primary);
    transform: scale(1.05);
}

.nc-package.nc-selected {
    background: rgba(107, 70, 193, 0.05);
    border-color: var(--nc-primary);
}

.nc-badge {
    position: absolute;
    top: -0.8rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--nc-secondary);
    color: white;
    padding: 0.25rem 1rem;
    border-radius: 0.8rem;
    font-size: 0.8rem;
    font-weight: bold;
}

.nc-package-header h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.nc-price {
    font-size: 2.25rem;
    font-weight: bold;
    color: var(--nc-primary);
    margin: 1rem 0;
}

.nc-features {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    text-align: left;
}

.nc-features li {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--nc-light);
}

.nc-features li:before {
    content: "✓";
    color: var(--nc-success);
    font-weight: bold;
    margin-right: 1rem;
}

.nc-package .nc-select-package {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Modal */
.nc-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: none;
}

.nc-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(0.25rem);
}

.nc-modal-content {
    position: relative;
    max-width: 32rem;
    margin: 3rem auto;
    background: white;
    border-radius: 0.8rem;
    box-shadow: 0 1.25rem 4rem rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.nc-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    color: #9CA3AF;
    z-index: 1;
}

/* Processing */
.nc-processing {
    text-align: center;
    padding: 4rem;
}

.nc-spinner {
    width: 3rem;
    height: 3rem;
    border: 0.2rem solid var(--nc-light);
    border-top-color: var(--nc-primary);
    border-radius: 50%;
    margin: 0 auto 2rem;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Results */
.nc-result {
    padding: 2.5rem;
    text-align: center;
}

.nc-result-content {
    margin: 2rem 0;
}

.nc-summary {
    background: var(--nc-light);
    padding: 1.25rem;
    border-radius: 0.5rem;
    margin: 1.25rem 0;
}

.nc-score {
    font-size: 1.5rem;
    margin: 1.25rem 0;
}

.nc-score span {
    color: var(--nc-primary);
    font-weight: bold;
}

/* Dashboard */
.nc-dashboard-wrapper {
    max-width: 75rem;
    margin: 0 auto;
    padding: 1.25rem;
}

.nc-dashboard-header {
    background: linear-gradient(135deg, var(--nc-primary), #8B5CF6);
    color: white;
    padding: 2.5rem;
    border-radius: 0.8rem;
    margin-bottom: 2rem;
}

.nc-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.nc-stat-box {
    background: white;
    padding: 1.25rem;
    border-radius: 0.5rem;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1);
}

.nc-stat-label {
    color: #6B7280;
    font-size: 0.8rem;
    margin-bottom: 0.5rem;
}

.nc-stat-value {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--nc-text);
}

/* Tabs */
.nc-dashboard-tabs {
    background: white;
    border-radius: 0.8rem;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1);
}

.nc-tab-nav {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid var(--nc-border);
}

.nc-tab-item {
    flex: 1;
}

.nc-tab-item a {
    display: block;
    padding: 1rem;
    text-align: center;
    text-decoration: none;
    color: #6B7280;
    transition: all 0.3s;
}

.nc-tab-item.active a {
    color: var(--nc-primary);
    border-bottom: 2px solid var(--nc-primary);
    margin-bottom: -1px;
}

.nc-tab-panel {
    display: none;
    padding: 2rem;
}

.nc-tab-panel.active {
    display: block;
}

/* Calculation Cards */
.nc-calculations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18.75rem, 1fr));
    gap: 1.25rem;
    margin: 1.25rem 0;
}

.nc-calculation-card {
    border: 1px solid var(--nc-border);
    border-radius: 0.5rem;
    padding: 1.25rem;
    transition: all 0.3s;
}

.nc-calculation-card:hover {
    box-shadow: 0 0.25rem 0.8rem rgba(0, 0, 0, 0.1);
}

.nc-calc-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.nc-calc-type {
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.8rem;
    font-weight: bold;
    text-transform: uppercase;
}

.nc-badge-free {
    background: var(--nc-success);
    color: white;
}

.nc-badge-light {
    background: var(--nc-primary);
    color: white;
}

.nc-badge-pro {
    background: var(--nc-secondary);
    color: white;
}

.nc-calc-partners {
    display: flex;
    align-items: center;
    justify-content: space-around;
    margin: 1rem 0;
}

.nc-partner {
    text-align: center;
}

.nc-compatibility-icon {
    font-size: 1.5rem;
}

.nc-calc-actions {
    display: flex;
    gap: 1rem;
    margin-top: 1rem;
}

/* Tables */
.nc-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
}

.nc-table th {
    background: var(--nc-light);
    padding: 1rem;
    text-align: left;
    font-weight: 600;
}

.nc-table td {
    padding: 1rem;
    border-bottom: 1px solid var(--nc-border);
}

/* Empty State */
.nc-empty-state {
    text-align: center;
    padding: 4rem 1.5rem;
    color: #6B7280;
}

/* Pricing Table */
.nc-pricing-table {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
    gap: 2rem;
    margin: 2.5rem 0;
}

.nc-pricing-card {
    background: white;
    border: 2px solid var(--nc-border);
    border-radius: 0.8rem;
    padding: 2rem;
    text-align: center;
    position: relative;
    transition: all 0.3s;
}

.nc-pricing-card.nc-featured {
    border-color: var(--nc-primary);
    transform: scale(1.05);
    box-shadow: 0 0.8rem 2.5rem rgba(107, 70, 193, 0.2);
}

/* Messages */
.nc-message {
    padding: 1rem;
    border-radius: 0.5rem;
    margin: 1rem 0;
}

.nc-message-success {
    background: #D1FAE5;
    color: #065F46;
    border: 1px solid #10B981;
}

.nc-message-error {
    background: #FEE2E2;
    color: #991B1B;
    border: 1px solid #EF4444;
}

/* Success Page */
.nc-success {
    text-align: center;
    padding: 4rem 1.25rem;
}

.nc-success-icon {
    width: 5rem;
    height: 5rem;
    background: var(--nc-success);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    margin: 0 auto 1.5rem;
    animation: scaleIn 0.5s ease-out;
}

/* Generating Icon (Yellow) */
.nc-generating-icon {
    width: 5rem;
    height: 5rem;
    background: var(--nc-secondary);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    margin: 0 auto 1.5rem;
    animation: pulse 1.5s ease-in-out infinite;
}

.nc-success h2 {
    color: var(--nc-text);
    margin-bottom: 1rem;
}

.nc-success-message {
    font-size: 1rem;
    color: #6B7280;
    margin-bottom: 2rem;
}

.nc-success-details {
    background: var(--nc-light);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin: 2rem 0;
    text-align: left;
}

.nc-success-details ul {
    margin-top: 1rem;
    padding-left: 1.5rem;
}

.nc-success-details li {
    margin: 0.5rem 0;
    line-height: 1.6;
}

/* Error Page */
.nc-error-page {
    text-align: center;
    padding: 4rem 1.5rem;
}

.nc-error-icon {
    width: 5rem;
    height: 5rem;
    background: var(--nc-danger);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    margin: 0 auto 1.5rem;
    animation: shake 0.5s ease-out;
}

.nc-error-page h2 {
    color: var(--nc-text);
    margin-bottom: 1rem;
}

.nc-error-page .nc-error-message {
    font-size: 1rem;
    color: var(--nc-danger);
    margin-bottom: 1.5rem;
    font-weight: 500;
}

.nc-error-details {
    background: #FEE2E2;
    border: 1px solid #FCA5A5;
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin: 2rem 0;
    color: #991B1B;
}

.nc-error-details p {
    margin: 0;
    line-height: 1.6;
}

/* Pending Page */
.nc-pending {
    text-align: center;
    padding: 4rem 1.5rem;
}

.nc-pending h2 {
    margin-bottom: 1rem;
}

.nc-pending-message {
    font-size: 1rem;
    color: #6B7280;
    margin-bottom: 1.5rem;
}

.nc-pending-details {
    margin-top: 2rem;
}

.nc-pending-details small {
    color: #9CA3AF;
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleIn {
    from {
        transform: scale(0);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-0.3rem); }
    20%, 40%, 60%, 80% { transform: translateX(0.3rem); }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.05);
        opacity: 0.8;
    }
}

/* PDF and Email Components */
.nc-pdf-download {
    margin: 1.5rem 0;
}

.nc-pdf-generating {
    color: #666;
}

.nc-email-form {
    margin: 2rem 0;
    padding: 1.5rem;
    background: #f8f8f8;
    border-radius: 0.5rem;
}

.nc-email-form h3 {
    margin-bottom: 1rem;
}

.nc-email-form p {
    margin-bottom: 1rem;
    color: #6B7280;
}

.nc-email-sent-message {
    color: var(--nc-success);
    margin-top: 1rem;
}

/* Responsive */
@media (max-width: 768px) {
    .nc-packages {
        grid-template-columns: 1fr;
    }

    .nc-package.nc-package-featured {
        transform: none;
    }

    .nc-stats-row {
        grid-template-columns: 1fr 1fr;
    }

    .nc-calculations-grid {
        grid-template-columns: 1fr;
    }

    .nc-tab-nav {
        flex-direction: column;
    }

    .nc-modal-content {
        margin: 1.25rem;
    }
}

/* ================================================
   Hero Theme (for embedding in hero sections)
   Tailwind color reference:
   - purple-100: #ede9fe
   - purple-200: #ddd6fe
   - purple-900: #581c87
   - yellow-400: #facc15
   - yellow-500: #eab308
   ================================================ */

.nc-calculator.nc-theme-hero {
    background: transparent !important;
    padding: 0 !important;
    max-width: 100% !important;
}

.nc-theme-hero .nc-step h2,
.nc-theme-hero .nc-step h3 {
    color: #fff !important;
}

.nc-theme-hero .nc-form-group h3 {
    color: #ede9fe !important; /* purple-100 */
    font-size: 2rem !important;
    margin-bottom: 0.75rem !important;
}

/* Labels - purple-100 like original */
.nc-theme-hero .nc-field label {
    display: block !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: #ede9fe !important; /* purple-100 - same as original */
    margin-bottom: 0.5rem !important;
}

.nc-theme-hero .nc-field label svg {
    display: inline !important;
    width: 1rem !important;
    height: 1rem !important;
    margin-right: 0.5rem !important;
}

/* Inputs - matching original: bg-white/20 border-white/30 text-white */
.nc-theme-hero .nc-field input[type="text"],
.nc-theme-hero .nc-field input[type="email"],
.nc-theme-hero .nc-field input[type="date"],
.nc-theme-hero .nc-field input[type="time"],
.nc-theme-hero .nc-field select {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.75rem 1rem !important;
    border-radius: 0.5rem !important;
    background: rgba(255, 255, 255, 0.2) !important; /* bg-white/20 */
    border: 1px solid rgba(255, 255, 255, 0.3) !important; /* border-white/30 */
    color: #fff !important; /* text-white */
    font-size: 1rem !important;
    transition: all 0.2s ease !important;
}

.nc-theme-hero .nc-field input::placeholder {
    color: #ddd6fe !important; /* purple-200 */
}

/* Focus: ring-2 ring-yellow-400 */
.nc-theme-hero .nc-field input:focus {
    outline: none !important;
    border-color: transparent !important;
    box-shadow: 0 0 0 2px #facc15 !important; /* yellow-400 */
}

/* Date input calendar icon - webkit browsers */
.nc-theme-hero .nc-field input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1);
    opacity: 0.7;
    cursor: pointer;
}

.nc-theme-hero .nc-field input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

/* Error states */
.nc-theme-hero .nc-field input.error {
    border-color: rgba(239, 68, 68, 0.8);
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.3);
}

.nc-theme-hero .nc-field .nc-error-message {
    color: rgba(254, 202, 202, 1); /* red-200 */
    font-size: 0.75rem;
    margin-top: 0.5rem;
}

/* Required field asterisk */
.nc-theme-hero .nc-field.nc-required label::after {
    color: rgba(252, 165, 165, 1); /* red-300 */
}

/* Checkboxes */
.nc-theme-hero .nc-consent-group {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 0.5rem;
    padding: 1rem;
}

.nc-theme-hero .nc-checkbox span {
    color: rgba(233, 213, 255, 0.9); /* purple-100 */
    font-size: 0.875rem;
    text-align: left;
}

.nc-theme-hero .nc-checkbox input[type="checkbox"] {
    accent-color: #facc15; /* yellow-400 */
}

/* Primary button - yellow gradient matching original:
   bg-gradient-to-r from-yellow-400 to-yellow-500 text-purple-900 font-bold
   py-4 px-8 rounded-lg shadow-lg hover:scale-105 */
.nc-theme-hero .nc-btn-primary {
    width: 100% !important;
    background: linear-gradient(to right, #facc15, #eab308) !important; /* from-yellow-400 to-yellow-500 */
    color: #581c87 !important; /* text-purple-900 */
    font-weight: 700 !important; /* font-bold */
    padding: 1rem 2rem !important; /* py-4 px-8 */
    border-radius: 0.5rem !important; /* rounded-lg */
    border: none !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important; /* shadow-lg */
}

.nc-theme-hero .nc-btn-primary:hover {
    background: linear-gradient(to right, #fde047, #facc15) !important; /* hover:from-yellow-300 to-yellow-400 */
    transform: scale(1.05) !important; /* hover:scale-105 */
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important; /* shadow-xl */
}

/* Outline button */
.nc-theme-hero .nc-btn-outline {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: #fff;
}

.nc-theme-hero .nc-btn-outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
}

/* Secondary button */
.nc-theme-hero .nc-btn-secondary {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.nc-theme-hero .nc-btn-secondary:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* Processing/Pending states */
.nc-theme-hero .nc-processing,
.nc-theme-hero .nc-pending {
    color: #fff;
}

.nc-theme-hero .nc-processing-title,
.nc-theme-hero .nc-processing-message,
.nc-theme-hero .nc-pending h2,
.nc-theme-hero .nc-pending-message {
    color: #fff;
}

.nc-theme-hero .nc-pending-details small {
    color: rgba(233, 213, 255, 0.7);
}

.nc-theme-hero .nc-spinner {
    border-color: rgba(255, 255, 255, 0.2);
    border-top-color: #facc15; /* yellow-400 */
}

/* Success state */
.nc-theme-hero .nc-success {
    color: #fff;
}

.nc-theme-hero .nc-success h2 {
    color: #fff;
}

.nc-theme-hero .nc-success-message {
    color: rgba(233, 213, 255, 0.9);
}

.nc-theme-hero .nc-success-icon {
    background: #10b981; /* green-500 */
}

.nc-theme-hero .nc-generating-icon {
    background: #facc15; /* yellow-400 */
    color: #581c87; /* purple-900 */
}

/* PDF download */
.nc-theme-hero .nc-pdf-download a {
    background: linear-gradient(to right, #facc15, #eab308);
    color: #fff;
}

.nc-theme-hero .nc-pdf-generating {
    color: rgba(233, 213, 255, 0.8);
}

/* Email form */
.nc-theme-hero .nc-email-form {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.nc-theme-hero .nc-email-form h3,
.nc-theme-hero .nc-email-form-title {
    color: #fff;
}

.nc-theme-hero .nc-email-form p {
    color: rgba(233, 213, 255, 0.8);
}

.nc-theme-hero .nc-email-sent-message {
    color: #34d399; /* green-400 */
}

/* Error page */
.nc-theme-hero .nc-error-page {
    color: #fff;
}

.nc-theme-hero .nc-error-page h2 {
    color: #fff;
}

.nc-theme-hero .nc-error-page .nc-error-message {
    color: rgba(254, 202, 202, 1); /* red-200 */
}

.nc-theme-hero .nc-error-details {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.4);
    color: rgba(254, 202, 202, 1);
}

/* Packages (if shown) */
.nc-theme-hero .nc-packages {
    gap: 1rem;
}

.nc-theme-hero .nc-package {
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(4px);
}

.nc-theme-hero .nc-package:hover {
    border-color: rgba(250, 204, 21, 0.5);
    background: rgba(255, 255, 255, 0.15);
}

.nc-theme-hero .nc-package.nc-package-featured {
    border-color: #facc15;
    background: rgba(250, 204, 21, 0.1);
}

.nc-theme-hero .nc-package-header h3 {
    color: #fff;
}

.nc-theme-hero .nc-price {
    color: #facc15;
}

.nc-theme-hero .nc-features {
    color: rgba(233, 213, 255, 0.9);
}

.nc-theme-hero .nc-features li {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.nc-theme-hero .nc-features li:before {
    color: #34d399; /* green-400 */
}

.nc-theme-hero .nc-badge {
    background: linear-gradient(to right, #facc15, #eab308);
    color: #581c87;
}

/* ================================================
   Result Page Styles ([numerology_result] shortcode)
   ================================================ */

.nc-result-wrapper {
    max-width: 40rem;
    margin: 0 auto;
    padding: 2rem 1.25rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.nc-result-state {
    animation: fadeIn 0.3s ease-in;
}

/* Loading/Pending State */
.nc-result-loading .nc-pending,
.nc-result-generating .nc-generating {
    text-align: center;
    padding: 3rem 1rem;
}

.nc-result-loading h2,
.nc-result-generating h2 {
    color: var(--nc-text);
    margin-bottom: 1rem;
}

.nc-result-loading p,
.nc-result-generating p {
    color: #6B7280;
}

/* PDF Progress */
.nc-pdf-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.5rem;
    color: #6B7280;
}

.nc-spinner-small {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--nc-light);
    border-top-color: var(--nc-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

/* Success State */
.nc-result-success .nc-success {
    text-align: center;
    padding: 2rem 1rem;
}

.nc-result-success .nc-success-icon {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1.5rem;
    background: var(--nc-success);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    animation: scaleIn 0.3s ease-out;
}

.nc-result-success h2 {
    color: var(--nc-text);
    margin-bottom: 0.5rem;
}

.nc-result-success .nc-success-message {
    color: #6B7280;
    margin-bottom: 1.5rem;
}

/* PDF Download */
.nc-result-success .nc-pdf-download {
    margin: 1.5rem 0;
}

.nc-result-success .nc-pdf-download a {
    display: inline-block;
}

/* Tier Badge */
.nc-tier-badge {
    margin: 1rem 0;
}

.nc-tier-label {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    background: var(--nc-primary);
    color: white;
    border-radius: 1rem;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Error/Cancelled/Empty States */
.nc-result-error .nc-error-page,
.nc-result-cancelled .nc-error-page,
.nc-result-empty .nc-error-page {
    text-align: center;
    padding: 3rem 1rem;
}

.nc-result-error .nc-error-icon,
.nc-result-cancelled .nc-error-icon,
.nc-result-empty .nc-error-icon {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1.5rem;
    background: var(--nc-danger);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    animation: shake 0.5s ease-in-out;
}

.nc-result-error h2,
.nc-result-cancelled h2,
.nc-result-empty h2 {
    color: var(--nc-text);
    margin-bottom: 0.5rem;
}

.nc-result-error .nc-error-message,
.nc-result-cancelled .nc-error-message,
.nc-result-empty .nc-error-message {
    color: #6B7280;
    margin-bottom: 1rem;
}

.nc-result-error .nc-error-details,
.nc-result-cancelled .nc-error-details {
    margin: 1.5rem 0;
    padding: 1rem;
    background: #FEF2F2;
    border-radius: 0.5rem;
    color: #991B1B;
    font-size: 0.875rem;
}

.nc-result-error .nc-form-actions,
.nc-result-cancelled .nc-form-actions,
.nc-result-empty .nc-form-actions {
    margin-top: 1.5rem;
}

/* Result Page Responsive */
@media (max-width: 768px) {
    .nc-result-wrapper {
        padding: 1rem;
    }

    .nc-result-success .nc-success-icon,
    .nc-result-error .nc-error-icon,
    .nc-result-cancelled .nc-error-icon,
    .nc-result-empty .nc-error-icon {
        width: 4rem;
        height: 4rem;
        font-size: 2rem;
    }
}

/* ================================================
   Pricing Theme (for embedding in pricing sections)
   Matches the original pricing.twig design
   ================================================ */

.nc-calculator.nc-theme-pricing {
    background: transparent !important;
    padding: 0 !important;
    max-width: 100% !important;
}

/* Packages grid - 3 columns */
.nc-theme-pricing .nc-packages {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2rem !important;
    margin: 0 !important;
}

@media (max-width: 768px) {
    .nc-theme-pricing .nc-packages {
        grid-template-columns: 1fr !important;
    }

    .nc-theme-pricing .nc-package.nc-package-featured {
        transform: none !important;
    }

    .nc-theme-pricing .nc-package.nc-package-featured:hover {
        transform: translateY(-0.5rem) !important;
    }
}

/* Package cards - white bg, rounded-2xl, shadow-lg, hover effects */
.nc-theme-pricing .nc-package {
    position: relative !important;
    background: #fff !important;
    border: none !important;
    border-radius: 1rem !important; /* rounded-2xl */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important; /* shadow-lg */
    padding: 2rem !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    transform: translateY(0) !important;
}

.nc-theme-pricing .nc-package:hover {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important; /* shadow-2xl */
    transform: translateY(-0.5rem) !important; /* hover:-translate-y-2 */
}

/* Featured package - ring-4 ring-purple-200 scale-105 */
.nc-theme-pricing .nc-package.nc-package-featured {
    box-shadow: 0 0 0 4px #ddd6fe, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important; /* ring-4 ring-purple-200 */
    transform: scale(1.05) !important;
}

.nc-theme-pricing .nc-package.nc-package-featured:hover {
    box-shadow: 0 0 0 4px #ddd6fe, 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    transform: scale(1.05) translateY(-0.5rem) !important;
}

/* Badge - purple gradient */
.nc-theme-pricing .nc-badge {
    position: absolute !important;
    top: -1rem !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: linear-gradient(to right, #9333ea, #7e22ce) !important; /* from-purple-600 to-purple-700 */
    color: #fff !important;
    padding: 0.5rem 1.5rem !important;
    border-radius: 9999px !important; /* rounded-full */
    font-size: 0.875rem !important;
    font-weight: 700 !important;
}

/* Package header */
.nc-theme-pricing .nc-package-header {
    text-align: center !important;
    margin-bottom: 2rem !important;
}

.nc-theme-pricing .nc-package-header h3 {
    font-size: 1.5rem !important; /* text-2xl */
    font-weight: 700 !important;
    color: #1f2937 !important; /* text-gray-800 */
    margin-bottom: 0.5rem !important;
}

/* Price - purple-600, bold */
.nc-theme-pricing .nc-price {
    font-size: 2.25rem !important; /* text-4xl */
    font-weight: 700 !important;
    color: #9333ea !important; /* text-purple-600 */
    margin: 1rem 0 !important;
}

/* Features list */
.nc-theme-pricing .nc-features {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 2rem 0 !important;
    text-align: left !important;
}

.nc-theme-pricing .nc-features li {
    display: flex !important;
    align-items: flex-start !important;
    padding: 0.5rem 0 !important;
    border-bottom: none !important;
    color: #4b5563 !important; /* text-gray-600 */
}

.nc-theme-pricing .nc-features li:before {
    content: "\2713" !important; /* checkmark */
    color: #22c55e !important; /* text-green-500 */
    font-weight: 700 !important;
    margin-right: 0.75rem !important;
    flex-shrink: 0 !important;
    margin-top: 0.125rem !important;
}

/* Buttons - gradient backgrounds */
.nc-theme-pricing .nc-select-package {
    width: 100% !important;
    font-weight: 700 !important;
    padding: 1rem 1.5rem !important;
    border-radius: 0.5rem !important; /* rounded-lg */
    border: none !important;
    color: #fff !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important; /* shadow-lg */
}

.nc-theme-pricing .nc-select-package:hover {
    opacity: 0.9 !important;
    transform: scale(1.05) !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important; /* shadow-xl */
}

/* Free package button - gray gradient */
.nc-theme-pricing .nc-package[data-tier="free"] .nc-select-package {
    background: linear-gradient(to right, #6b7280, #4b5563) !important; /* from-gray-500 to-gray-600 */
}

/* Standard package button - purple gradient */
.nc-theme-pricing .nc-package[data-tier="standard"] .nc-select-package {
    background: linear-gradient(to right, #9333ea, #7e22ce) !important; /* from-purple-600 to-purple-700 */
}

/* Premium package button - yellow gradient */
.nc-theme-pricing .nc-package[data-tier="premium"] .nc-select-package {
    background: linear-gradient(to right, #eab308, #ca8a04) !important; /* from-yellow-500 to-yellow-600 */
}

/* Form elements in pricing theme */
.nc-theme-pricing .nc-step h2 {
    color: #1f2937 !important; /* text-gray-800 */
    text-align: center !important;
}

.nc-theme-pricing .nc-step .nc-subtitle {
    color: #6b7280 !important; /* text-gray-500 */
    text-align: center !important;
}

.nc-theme-pricing .nc-form-group h3 {
    color: #9333ea !important; /* purple-600 */
}

.nc-theme-pricing .nc-field label {
    color: #374151 !important; /* text-gray-700 */
}

.nc-theme-pricing .nc-field input[type="text"],
.nc-theme-pricing .nc-field input[type="email"],
.nc-theme-pricing .nc-field input[type="date"],
.nc-theme-pricing .nc-field input[type="time"],
.nc-theme-pricing .nc-field select {
    background: #fff !important;
    border: 1px solid #e5e7eb !important; /* border-gray-200 */
    color: #1f2937 !important;
    max-width: 100% !important;
}

.nc-theme-pricing .nc-field input:focus {
    border-color: #9333ea !important;
    box-shadow: 0 0 0 2px rgba(147, 51, 234, 0.2) !important;
}

.nc-theme-pricing .nc-checkbox span {
    color: #4b5563 !important; /* text-gray-600 */
}

.nc-theme-pricing .nc-consent-group {
    background: #f9fafb !important; /* bg-gray-50 */
    border: 1px solid #e5e7eb !important;
}

/* Primary button in form steps */
.nc-theme-pricing .nc-btn-primary {
    background: linear-gradient(to right, #9333ea, #7e22ce) !important;
    color: #fff !important;
}

.nc-theme-pricing .nc-btn-primary:hover {
    opacity: 0.9 !important;
    transform: scale(1.02) !important;
}

/* Processing/Pending states */
.nc-theme-pricing .nc-processing,
.nc-theme-pricing .nc-pending {
    background: #fff !important;
    border-radius: 1rem !important;
    padding: 3rem !important;
}

.nc-theme-pricing .nc-spinner {
    border-color: #e5e7eb !important;
    border-top-color: #9333ea !important;
}

/* Success state */
.nc-theme-pricing .nc-success {
    background: #fff !important;
    border-radius: 1rem !important;
    padding: 3rem !important;
}

.nc-theme-pricing .nc-success-icon {
    background: #22c55e !important; /* green-500 */
}

/* Error state */
.nc-theme-pricing .nc-error-page {
    background: #fff !important;
    border-radius: 1rem !important;
    padding: 3rem !important;
}

/* Email form */
.nc-theme-pricing .nc-email-form {
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
}