/* =============================================================================
   public.css — portal / marketing / auth (loads after shared.css)
   Production notes (audit):
   - scroll-padding-top + section scroll-margin use --anchor-offset (fixed header)
   - Avoid transition:all on fixed header (reduces repaint; preserves transform centering)
   - Duplicate resets and late global input resets were removed (they stripped borders)

   Section map (logical order; file is not fully re-sorted to avoid risky mega-diff):
   1. Reset / base / typography utilities
   2. Navbar (.new-header*)
   3. Hero + landing (.hero-section*, .btn*)
   4. About / services / cards (incl. body.frontend.public-portal refinements)
   5. Auth, contact, signals, payments, misc components
   6. Footer / modals / animations / media queries
   ============================================================================= */

/* =============================================================================
   Migrated from shared.pre-refactor.css (design-system split)
   ============================================================================= */

.new-header {
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--glass-border);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10040;
    transition:
        background-color var(--transition-smooth),
        box-shadow var(--transition-smooth),
        border-color var(--transition-smooth),
        backdrop-filter var(--transition-smooth);
}

.new-header.scrolled {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    box-shadow: var(--elevation-2);
}

.nav-primary.mobile-open {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
}

.new-header-mobile-menu.active {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
}

body.menu-open {
    overflow: hidden;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Public anchor/header offset — define before html {} uses var(--anchor-offset) */
:root {
    /* Floating pill header (flush top + safe-area + bar + buffer) */
    --anchor-offset: 70px;
}

@media (max-width: 768px) {
    :root {
        --anchor-offset: 64px;
    }
}

@media (max-width: 480px) {
    :root {
        --anchor-offset: 58px;
    }
}

html {
    font-size: 16px;
    scroll-behavior: auto;
    /* Pairs with section[id] scroll-margin — anchor links clear fixed header without jump */
    scroll-padding-top: var(--anchor-offset);
    /* Reserve gutter when vertical scrollbar appears (reduces horizontal layout shift) */
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(16, 185, 129, 0.75) rgba(241, 245, 249, 0.6);
    -ms-overflow-style: auto;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

section[id] {
    scroll-margin-top: var(--anchor-offset);
}

/* In-page targets that are not sections (e.g. div#services) */
[id]:target {
    scroll-margin-top: var(--anchor-offset);
}

body {
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--text-primary);
    background-color: var(--bg-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    overflow-y: auto;
}

/* Typography utilities: see shared.css (removed duplicate .text-*/.font-*/.leading-* rules) */

/* Container: single source (was split across 3 blocks — merged for consistency) */
.container,
.responsive-container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--page-gutter, 16px);
    box-sizing: border-box;
    overflow: visible;
    height: auto;
    max-height: none;
}

a,
button,
input,
select,
textarea,
.btn {
    transition:
        color var(--transition-fast),
        background-color var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
}

a,
button,
.btn {
    cursor: pointer;
}

:focus-visible {
    outline: none;
}

a:focus-visible,
.btn:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    box-shadow: var(--ring);
    border-radius: var(--radius-sm);
}

input,
textarea,
select {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

input:focus,
input:active,
textarea:focus,
textarea:active,
select:focus,
select:active {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

h1, h2, h3, h4, h5, h6 {
    color: #0B2578;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1rem;
}

/* Specificity after h1–h6 block — !important removed (was redundant vs. ordered rules) */
h3 {
    color: #1A9464;
}

h1 { font-size: 40px; font-weight: 800; }

h2 { font-size: 32px; font-weight: 700; }

h3 { font-size: 24px; font-weight: 600; }

h4 { font-size: 20px; font-weight: 600; }

h5 { font-size: 18px; font-weight: 600; }

h6 { font-size: 16px; font-weight: 600; }

.heading-primary { color: #0B2578; }

.heading-accent { color: #1A9464; }

h1 .blue-half, h2 .blue-half, h3 .blue-half, h4 .blue-half, h5 .blue-half, h6 .blue-half {
    color: #0B2578;
}

h1 .green-half, h2 .green-half, h3 .green-half, h4 .green-half, h5 .green-half, h6 .green-half {
    color: #1A9464;
}

.form-control:invalid {
    border-color: #ef4444;
}

.form-control:valid {
    border-color: #10b981;
}

.loading {
    opacity: 0.6;
    pointer-events: none;
}

.explore-more-container {
    display: flex;
    justify-content: center;
    margin-top: clamp(2rem, 4vw, 3rem);
    margin-bottom: clamp(1rem, 2vw, 2rem);
    text-align: center;
}

.explore-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: clamp(0.75rem, 2vw, 1rem) clamp(1.5rem, 3vw, 2.5rem);
    font-size: clamp(1rem, 2.5vw, 1.1rem);
    font-weight: 600;
    color: #FFFFFF;
    background: var(--success, #16A34A);
    border: none;
    border-radius: var(--radius-lg);
    text-decoration: none;
    transition:
        color var(--transition-smooth),
        background-color var(--transition-smooth),
        box-shadow var(--transition-smooth),
        transform var(--transition-smooth);
    box-shadow: 0 4px 15px rgba(22, 163, 74, 0.3);
    position: relative;
    overflow: hidden;
    min-height: 44px;
    line-height: 1;
}

.explore-more-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: #15803D;
    transition: left 0.3s ease;
    z-index: 1;
}

.explore-more-btn span,
.explore-more-btn i {
    position: relative;
    z-index: 2;
}

.explore-more-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(22, 163, 74, 0.4);
    color: #FFFFFF;
    text-decoration: none;
}

.explore-more-btn:hover::before {
    left: 0;
}

.explore-more-btn .arrow-icon {
    transition: transform 0.3s ease;
}

.explore-more-btn:hover .arrow-icon {
    transform: translateX(4px);
}

body.frontend .hero-gradient-text,
.section-title.hero-gradient-text,
.testimonials-title.hero-gradient-text,
.about-hero-headline.hero-gradient-text {
    color: #111827;
    background: none;
    background-image: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #111827;
}

.hero-gradient-text .blue-half {
    color: #0B2578;
    -webkit-text-fill-color: #0B2578;
}

.hero-gradient-text .green-half {
    color: #16A34A;
    -webkit-text-fill-color: #16A34A;
}

.container-fluid {
    max-width: 100%;
    padding: 0 var(--container-padding);
}

.container-sm {
    max-width: min(640px, 95%);
    padding: 0 var(--container-padding);
}

.container-md {
    max-width: min(768px, 95%);
    padding: 0 var(--container-padding);
}

.container-lg {
    max-width: min(1024px, 95%);
    padding: 0 var(--container-padding);
}

.container-xl {
    max-width: min(1280px, 95%);
    padding: 0 var(--container-padding);
}

@media (min-width: 1920px) {
    .container {
        max-width: 1400px;
    }
    
    .container-xl {
        max-width: 1600px;
    }
}

@media (min-width: 1440px) {
    .container {
        max-width: 1300px;
    }
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 12px;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    font-size: 15px; 
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition:
        color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.btn-primary {
    background: #0B2578;
    color: #FFFFFF;
    box-shadow: 0 2px 8px rgba(11, 37, 120, 0.2);
}

.btn-primary:hover {
    background: #1A9464;
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(26, 148, 100, 0.3);
    text-decoration: none;
}

.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(11, 37, 120, 0.2);
}

.btn-outline {
    background: transparent;
    color: #0B2578;
    border: 2px solid #0B2578;
    font-weight: 600;
    min-height: 44px;
}

.btn-outline:hover {
    background: #0B2578;
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(11, 37, 120, 0.2);
    text-decoration: none;
}

.btn-brand {
    background: #1A9464;
    color: #FFFFFF;
    border: none;
}

.btn-brand:hover {
    background: #15803D;
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(26, 148, 100, 0.3);
    text-decoration: none;
}

.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: 1.125rem;
}

.btn:focus-visible {
    outline: 2px solid #0B2578;
    outline-offset: 2px;
}

.btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.text-primary { color: #0B2578; }

.text-secondary { color: #64748B; }

.text-muted { color: #94A3B8; }

.text-white { color: #FFFFFF; }

input, textarea, select {
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    font-size: 1rem;
    line-height: 1.5;
    color: #1F2937;
    background: #FFFFFF;
    border: 2px solid #E5E7EB;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease;
}

input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: #0B2578;
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.1);
}

label {
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    font-weight: 600;
    color: #374151;
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
    display: block;
}

.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.dashboard-card {
    position: relative;
    padding: 1.5rem;
    border-radius: 16px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 
        0 8px 24px rgba(0, 0, 0, 0.04),
        0 2px 6px rgba(0, 0, 0, 0.02);
}

.dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.dashboard-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem !important;
    font-weight: 700;
    color: #0F172A;
}

.dashboard-title i {
    width: 18px;
    height: 18px;
    color: var(--primary);
}

.status-badge {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 600;
    background: rgba(22, 163, 74, 0.12);
    color: #16A34A;
    line-height: 1;
}

.status-badge.active {
    background: rgba(22, 163, 74, 0.12);
    color: #16A34A;
}

.status-badge.profit {
    background: rgba(22, 163, 74, 0.12);
    color: #16A34A;
}

.status-badge.loss {
    background: rgba(220, 38, 38, 0.12);
    color: #DC2626;
}

.status-badge.closed {
    background: rgba(107, 114, 128, 0.12);
    color: #6B7280;
}

.status-badge.pending {
    background: rgba(245, 158, 11, 0.12);
    color: #F59E0B;
}

.pulse-dot {
    width: 6px;
    height: 6px;
    background: #16A34A;
    border-radius: 50%;
    animation: pulse 2s ease-in-out infinite;
}

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

.signal-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.signal-symbol {
    font-size: 0.8125rem !important;
    font-weight: 700;
    color: #0F172A;
}

.signal-type {
    font-size: 0.6875rem !important;
    color: #64748B;
    font-weight: 500;
}

.signal-metrics {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.125rem;
}

.metric-value {
    font-size: 0.875rem !important;
    font-weight: 700;
}

.metric-value.success {
    color: #16A34A;
}

.metric-value.loss {
    color: #DC2626;
}

.metric-value.neutral {
    color: #6B7280;
}

.metric-label {
    font-size: 0.625rem !important;
    color: #94A3B8;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.metric-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 100%);
    border-radius: 10px;
    color: var(--primary);
}

.metric-icon i {
    width: 20px;
    height: 20px;
}

.metric-content {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.metric-number {
    font-size: 1.25rem;
    font-weight: 800;
    color: #0F172A;
    line-height: 1;
}

.metric-label {
    font-size: 0.75rem;
    color: #64748B;
    font-weight: 500;
    line-height: 1;
}

.services-section {
    padding: clamp(3rem, 8vw, 5rem) 0;
    background: linear-gradient(180deg, var(--bg-gray-50) 0%, #F8FAFC 100%);
    position: relative;
    overflow: hidden;
}

.services-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 20% 50%, rgba(99, 102, 241, 0.03) 0%, transparent 50%),
                radial-gradient(circle at 80% 50%, rgba(139, 92, 246, 0.03) 0%, transparent 50%);
    pointer-events: none;
}

.section-header {
    text-align: center;
    margin-bottom: clamp(2rem, 5vw, var(--spacing-2xl));
}

.section-title {
    font-size: clamp(1.75rem, 5vw, 2.5rem);
    font-weight: 800;
    margin-bottom: var(--spacing-md);
    color: var(--text-primary);
    letter-spacing: -0.02em;
    line-height: 1;
}

.section-subtitle {
    font-size: clamp(1rem, 3vw, 1.125rem);
    color: var(--text-secondary);
    max-width: 100%;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .section-subtitle {
        max-width: 600px;
    }
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
    gap: clamp(1rem, 3vw, var(--spacing-xl));
}

@media (max-width: 480px) {
    .services-section {
        padding: var(--grid-3, 24px) 0 var(--grid-4, 32px);
    }

    .services-section .section-header {
        margin-bottom: var(--grid-3, 24px);
    }

    .services-grid {
        gap: var(--grid-2, 16px);
    }

    .service-card {
        min-height: 0;
        padding: var(--grid-3, 24px);
    }
}

.service-card {
    background: var(--bg-white);
    padding: clamp(1.5rem, 4vw, var(--spacing-2xl));
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    transition:
        box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1),
        border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    text-align: center;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    min-height: 300px;
}

.service-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--primary-gradient);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.service-card:hover {
    box-shadow: var(--shadow-lg);
    border-color: rgba(0, 0, 0, 0.08);
    
}

.service-card:hover::before {
    transform: scaleX(1);
}

.service-card .service-icon {
    transition: transform 0.25s ease;
}

.service-card:hover .service-icon {
    
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.service-card:hover .service-btn {
    
    box-shadow: var(--shadow-glow);
}

.service-card-featured {
    border-color: rgba(99, 102, 241, 0.3);
    box-shadow: var(--shadow-md), 0 0 0 1px rgba(99, 102, 241, 0.1);
}

.service-card-featured::before {
    transform: scaleX(1);
    background: linear-gradient(90deg, var(--primary), var(--secondary));
}

.service-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(11, 37, 120, 0.08);
    border: none;
    color: #0B2578;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 auto var(--spacing-lg);
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.service-icon::before {
    display: none;
}

@keyframes iconPulse {
    0%, 100% { transform: scale(1); box-shadow: var(--shadow-primary); }
    50% { transform: scale(1.05); box-shadow: var(--shadow-glow); }
}

@keyframes iconShine {
    0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
    100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

.service-title {
    font-size: clamp(1.125rem, 3vw, 1.25rem);
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    color: var(--text-primary);
}

.service-description {
    color: var(--text-secondary);
    margin-bottom: var(--spacing-lg);
    line-height: 1.7;
    flex-grow: 1;
    font-size: clamp(0.875rem, 2.5vw, 0.9375rem);
}

.service-btn {
    margin-top: auto;
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    font-weight: 600;
    transition: all var(--transition-smooth);
}

.service-btn .inline-icon {
    width: 16px;
    height: 16px;
    transition: transform var(--transition-fast);
}

.service-btn:hover .inline-icon {
    transform: translateX(3px);
}

.about-section {
    padding: 7rem 0;
    background: linear-gradient(180deg, var(--bg-white) 0%, #FAFBFC 100%);
    position: relative;
    overflow: hidden;
}

.about-section::before {
    content: "";
    position: absolute;
    top: -5%;
    right: 0;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(99, 102, 241, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.about-section::after {
    content: "";
    position: absolute;
    bottom: -10%;
    left: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.04) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.about-section .container {
    position: relative;
    z-index: 1;
}

/* Legacy two-column about layout (.about-content / .about-badge / .about-visual-*) removed — home uses .about-content-refined (see body.frontend.public-portal). */

.about-hero-headline {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--text-primary);
    margin-bottom: 1.25rem;
    letter-spacing: -0.03em;
}

.about-hero-headline .gradient-text {
    color: var(--text-primary);
}

.about-subtext {
    font-size: 1.125rem;
    color: var(--text-secondary);
    margin-bottom: 2.5rem;
    line-height: 1.7;
    max-width: 95%;
}

.auth-page {
    padding: var(--grid-3, 24px) 0 var(--grid-4, 32px);
    background: linear-gradient(180deg, #fafafc 0%, #ffffff 100%);
    min-height: calc(100vh - 120px);
    position: relative;
    overflow: visible;
}

.auth-container {
    max-width: 420px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    min-height: 0;
    width: 100%;
}

.auth-page::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(circle at 20% 30%, rgba(99, 102, 241, 0.06) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(139, 92, 246, 0.05) 0%, transparent 50%);
    pointer-events: none;
}

.auth-card {
    background: var(--bg-white);
    padding: var(--grid-3, 24px) var(--grid-2, 16px);
    border-radius: var(--radius-lg, 1rem);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-light);
    animation: authCardSlideIn 0.5s var(--ease-out-expo) backwards;
    overflow: visible;
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
}

@media (min-width: 481px) {
    .auth-card {
        padding: var(--grid-4, 32px) var(--grid-3, 24px);
    }
}

@keyframes authCardSlideIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.auth-header {
    text-align: center;
    margin-bottom: var(--grid-3, 24px);
}

.auth-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--spacing-md);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.08) 100%);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-smooth);
}

.auth-icon i {
    width: 28px;
    height: 28px;
    color: var(--primary);
}

.auth-card:hover .auth-icon {
    transform: scale(1.05);
}

.auth-header h1 {
    font-size: clamp(1.375rem, 4vw, 1.75rem);
    margin-bottom: var(--grid-1, 8px);
    color: var(--text-primary);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.auth-subtitle {
    color: #6b7280;
    font-size: 0.875rem;
    line-height: 1.5;
}

.auth-form {
    animation: authFormFadeIn 0.5s var(--ease-out-expo) backwards 0.1s;
}

.auth-button-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: var(--grid-2, 16px);
}

.auth-btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    height: auto;
    padding: 0.625rem 1rem;
    border-radius: var(--radius-form, 10px);
    font-weight: 600;
    background: var(--primary);
    color: white;
    border: none;
    cursor: pointer;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.9375rem;
    line-height: 1.25;
    box-sizing: border-box;
}

.auth-btn svg,
.auth-btn [data-lucide] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

@media (min-width: 481px) {
    .auth-btn {
        width: auto;
        min-width: 11.75rem;
        max-width: min(100%, 268px);
        min-height: 40px;
        padding: 0.5rem 1.25rem;
    }
}

.auth-btn:hover {
    background: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.auth-btn:active {
    transform: translateY(0);
}

@keyframes authFormFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-sm);
}

.label-row label {
    margin-bottom: 0;
}

.forgot-password-link {
    font-size: 0.8125rem;
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition-fast);
}

.forgot-password-link:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}

.auth-trust {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-md);
    padding: var(--spacing-xs) var(--spacing-sm);
    color: var(--text-muted);
    font-size: 0.8125rem;
    justify-content: center;
    width: 100%;
}

.auth-trust i {
    width: 14px;
    height: 14px;
    color: var(--success);
}

.auth-footer {
    text-align: center;
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-md);
}

.auth-footer p {
    margin: 0;
    font-size: 0.9375rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.auth-footer a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: all var(--transition-fast);
}

.auth-footer a:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}

.auth-message {
    padding: var(--spacing-md);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-lg);
    display: none;
    font-size: 0.9375rem;
    animation: authMessageSlideIn 0.3s var(--ease-out-expo);
}

@keyframes authMessageSlideIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.auth-message.success {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(16, 185, 129, 0.04) 100%);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.2);
    border-left: 4px solid var(--success);
    display: block;
}

.auth-message.error {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.04) 100%);
    color: #B91C1C;
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-left: 4px solid var(--danger);
    display: block;
}

.auth-message.info {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.06) 0%, rgba(139, 92, 246, 0.03) 100%);
    color: var(--primary-dark);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-left: 4px solid var(--primary);
    display: block;
}

.step-indicator {
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.step-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.9rem;
    background: linear-gradient(135deg, var(--bg-gray-100) 0%, var(--bg-gray-50) 100%);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.step-badge-success {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.05) 100%);
    border-color: rgba(16, 185, 129, 0.25);
    color: var(--success);
}

.verified-email-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: linear-gradient(135deg, var(--primary-soft) 0%, #E8ECFF 100%);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-xl);
    font-size: 0.9375rem;
    color: var(--text-primary);
    font-weight: 500;
}

.verified-email-display i {
    width: 16px;
    height: 16px;
    color: var(--primary);
}

.captcha-container {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: var(--bg-gray-50);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
}

.captcha-question {
    font-weight: 600;
    font-size: 1.125rem;
    color: var(--text-primary);
    min-width: 5ch;
}

.captcha-container input {
    width: 5rem;
    text-align: center;
    font-weight: 600;
    font-size: 1.125rem;
    padding: 0.5rem;
    border: 2px solid var(--border-color);
    background: var(--bg-white);
}

.captcha-container input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.captcha-container input:active {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.captcha-refresh {
    background: transparent;
    border: 1.5px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 0.5rem;
    cursor: pointer;
    color: var(--text-muted);
    transition: all var(--transition-fast);
    display: flex;
    align-items: center;
    justify-content: center;
}

.captcha-refresh:hover {
    border-color: var(--primary);
    color: var(--primary);
    transform: rotate(180deg);
}

.captcha-refresh i {
    width: 18px;
    height: 18px;
}

.otp-section {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-xl);
    animation: otpSectionSlideIn 0.4s var(--ease-out-expo) backwards;
}

@keyframes otpSectionSlideIn {
    from {
        opacity: 0;
        transform: translateY(12px);
        max-height: 0;
    }
    to {
        opacity: 1;
        transform: translateY(0);
        max-height: 500px;
    }
}

.otp-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--border-color) 20%, var(--border-color) 80%, transparent 100%);
    margin-bottom: var(--spacing-xl);
}

.otp-input {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.5em;
    padding-left: 2.75rem !important;
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.otp-input:focus,
.otp-input:active {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.otp-timer {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: var(--spacing-xs);
    text-align: center;
}

.otp-timer.expired {
    color: var(--danger);
    font-weight: 600;
}

.auth-step {
    animation: authStepFadeIn 0.4s var(--ease-out-expo) backwards;
}

@keyframes authStepFadeIn {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-xl);
    flex-wrap: wrap;
    gap: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-bottom: none;
    position: relative;
}

.section-header::after {
    display: none;
}

.section-header h2 {
    font-size: 1.375rem;
    font-weight: 800;
    color: #0B2578;
    letter-spacing: -0.02em;
}

.section-header .btn-primary {
    box-shadow: var(--elevation-1);
    transition: transform var(--transition-fast), box-shadow var(--transition-smooth);
}

.section-header .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--elevation-2);
}

.subscriptions-table td:last-child {
    vertical-align: middle;
}

.subscriptions-table td:last-child .d-flex {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    min-height: 40px;
}

.subscriptions-table td:last-child .btn {
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
}

.subscriptions-table .btn-renew,
.subscriptions-table .btn-renew-disabled,
.subscriptions-table .btn-primary,
.subscriptions-table .btn-outline {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.table-container {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--elevation-1);
}

.action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    align-items: center;
}

.action-buttons .btn {
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.45rem 0.9rem;
    border-radius: var(--radius-md);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.action-buttons .btn:hover {
    transform: translateY(-1px);
}

.action-buttons .btn-primary {
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25);
}

.action-buttons .btn-primary:hover {
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35);
}

.badge {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--font-display);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.badge-success {
    background: rgba(16, 185, 129, 0.14);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.3);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.2);
}

.badge-success:hover {
    background: rgba(16, 185, 129, 0.22);
    transform: scale(1.03);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.2);
}

.badge-warning {
    background: rgba(245, 158, 11, 0.14);
    color: #B45309;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

.badge-warning:hover {
    background: rgba(245, 158, 11, 0.22);
    transform: scale(1.02);
}

.badge-danger {
    background: rgba(239, 68, 68, 0.14);
    color: #B91C1C;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.badge-danger:hover {
    background: rgba(239, 68, 68, 0.22);
    transform: scale(1.02);
}

.badge-secondary {
    background: rgba(100, 116, 139, 0.1);
    color: var(--text-muted);
    border: 1px solid var(--border-light);
}

.page-header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}

.page-header h1 {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: var(--spacing-md);
    color: #0B2578;
}

.page-subtitle {
    font-size: 1.125rem;
    color: var(--text-secondary);
}

.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-xl);
}

.product-card {
    background: var(--bg-white);
    padding: var(--spacing-xl);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow);
    border: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    text-align: center;
    transition: box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    min-height: 400px;
}

.product-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--primary-gradient);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-card:hover {
    box-shadow: var(--shadow-xl);
    border-color: var(--primary);
}

.product-card:hover::before {
    transform: scaleX(1);
}

.product-card:hover .product-icon {
    transform: scale(1.05);
}

.product-card .product-icon {
    transition: transform 0.25s ease;
}

.product-card:hover::before {
    transform: scaleX(1);
}

.product-icon {
    font-size: 3rem;
    
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--spacing-md);
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    
    
}

@keyframes productIconFloat {
    0%, 100% { transform: translateY(0); filter: brightness(1); }
    50% { transform: translateY(-5px); filter: brightness(1.2); }
}

.product-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    color: #0B2578;
}

.product-description {
    color: var(--text-secondary);
    margin-bottom: var(--spacing-lg);
    line-height: 1.6;
    flex-grow: 1;
}

.product-pricing {
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-lg);
    background: var(--bg-gray-50);
    border-radius: var(--radius-md);
}

.price-amount {
    font-size: 2rem;
    font-weight: 800;
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: block;
    animation: priceGlow 3s ease-in-out infinite;
}

@keyframes priceGlow {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.3); }
}

.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.type-buy {
    color: #10B981;
    font-weight: 500;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #D1FAE5;
    padding: 2px 8px;
    border-radius: 4px;
}

.type-buy i {
    font-size: 12px;
}

.type-sell {
    color: #EF4444;
    font-weight: 500;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #FEE2E2;
    padding: 2px 8px;
    border-radius: 4px;
}

.type-sell i {
    font-size: 12px;
}

.status-profit {
    color: #10B981;
    font-weight: 500;
    font-size: 12px;
    background: #D1FAE5;
    padding: 4px 12px;
    border-radius: 9999px;
    display: inline-block;
}

.status-loss {
    color: #EF4444;
    font-weight: 500;
    font-size: 12px;
    background: #FEE2E2;
    padding: 4px 12px;
    border-radius: 9999px;
    display: inline-block;
}

.status-active {
    color: #0EA5E9;
    font-weight: 500;
    font-size: 12px;
    background: #E0F2FE;
    padding: 4px 12px;
    border-radius: 9999px;
    display: inline-block;
}

.profit-value {
    color: #10B981;
    font-weight: 600;
    font-size: 14px;
}

.loss-value {
    color: #EF4444;
    font-weight: 600;
    font-size: 14px;
}

.symbol-text {
    font-weight: 700;
    color: var(--text-primary);
    font-size: 1rem;
}

.signal-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: var(--radius-md);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: transform var(--transition-fast);
}

.signal-badge i {
    width: 14px;
    height: 14px;
}

.signal-buy {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(34, 197, 94, 0.08) 100%);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.25);
}

.signal-sell {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.12) 0%, rgba(220, 38, 38, 0.08) 100%);
    color: #B91C1C;
    border: 1px solid rgba(239, 68, 68, 0.25);
}

.signal-badge:hover {
    transform: scale(1.05);
}

.price-value {
    font-weight: 600;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.time-text {
    font-size: 0.875rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.duration-badge {
    display: inline-flex;
    padding: 0.3rem 0.7rem;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(139, 92, 246, 0.06) 100%);
    color: var(--primary);
    border-radius: var(--radius-md);
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid rgba(99, 102, 241, 0.2);
}

.pnl-value {
    font-weight: 700;
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.pnl-profit {
    color: var(--success);
}

.pnl-loss {
    color: var(--danger);
}

.pnl-neutral {
    color: var(--text-muted);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: var(--radius-md);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.status-badge i {
    width: 14px;
    height: 14px;
}

.status-profit {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(34, 197, 94, 0.08) 100%);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.25);
}

.status-loss {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.12) 0%, rgba(220, 38, 38, 0.08) 100%);
    color: #B91C1C;
    border: 1px solid rgba(239, 68, 68, 0.25);
}

.status-active {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.12) 0%, rgba(251, 191, 36, 0.08) 100%);
    color: #B45309;
    border: 1px solid rgba(245, 158, 11, 0.25);
}

.status-closed {
    background: linear-gradient(135deg, rgba(100, 116, 139, 0.1) 0%, rgba(148, 163, 184, 0.06) 100%);
    color: #475569;
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.status-pending {
    background: linear-gradient(135deg, rgba(100, 116, 139, 0.08) 0%, rgba(148, 163, 184, 0.06) 100%);
    color: var(--text-muted);
    border: 1px solid var(--border-color);
}

.product-tag {
    display: inline-flex;
    padding: 0.3rem 0.7rem;
    background: var(--bg-gray-100);
    color: var(--text-primary);
    border-radius: var(--radius-md);
    font-size: 0.8125rem;
    font-weight: 500;
    border: 1px solid var(--border-color);
}

.signal-locked {
    position: relative;
}

.signal-locked::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.9) 30%, rgba(255, 255, 255, 0.95) 100%);
    backdrop-filter: blur(3px);
    pointer-events: none;
}

.signal-locked td {
    filter: blur(4px);
    user-select: none;
}

.summary-card {
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 0;
}

.summary-card:hover {
    transform: translateY(-6px) scale(1.02);
    box-shadow: var(--shadow-xl);
    border-color: var(--primary);
}

.summary-card:hover::after {
    opacity: 0.05;
}

.summary-card > * {
    position: relative;
    z-index: 1;
}

.summary-card .summary-icon {
    transition: transform 0.25s ease;
}

.summary-card:hover .summary-icon {
    transform: scale(1.05);
}

.summary-card.profit {
    border-color: var(--success);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(16, 185, 129, 0.05) 100%);
    position: relative;
    overflow: hidden;
}

.summary-card.profit::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--success) 0%, var(--success-light) 100%);
    animation: profitBar 2s ease-in-out infinite;
}

@keyframes profitBar {
    0%, 100% { transform: scaleX(1); }
    50% { transform: scaleX(1.1); }
}

.summary-card.loss {
    border-color: var(--danger);
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.05) 0%, rgba(239, 68, 68, 0.02) 100%);
}

.summary-label {
    color: var(--text-muted);
}

.summary-value {
    color: var(--text-primary);
}

.summary-card.profit .summary-value {
    color: var(--success);
    animation: profitValuePulse 2s ease-in-out infinite;
}

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

.summary-card.loss .summary-value {
    color: var(--danger);
}

@media (max-width: 1024px) and (min-width: 769px) {
    .about-hero-headline {
        font-size: 2.5rem;
    }
}

@media (max-width: 520px) {
    .plan-badge {
        top: -10px;
    }
    
    
    .about-section {
        padding: 4rem 0;
    }

    .about-hero-headline {
        font-size: 2rem;
        line-height: 1.2;
    }
    
    .about-subtext {
        max-width: 100%;
        font-size: 1rem;
        margin-bottom: 2rem;
    }

    .about-section::before,
    .about-section::after {
        display: none;
    }
    
    .products-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-greeting {
        padding: var(--spacing-md) var(--spacing-lg);
    }

    .greeting-content {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-md);
    }

    .greeting-actions {
        width: 100%;
        flex-direction: column;
    }

    .dashboard-action-btn {
        width: 100%;
        justify-content: center;
    }
    
    .subscriptions-section {
        padding: var(--spacing-lg) var(--spacing-md);
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .signals-hero {
        padding: 2rem 0;
    }

    .signals-hero h1 {
        font-size: 1.75rem;
    }

    .signals-table-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-md);
        padding: var(--spacing-lg);
    }

    .signals-table-header .btn {
        width: 100%;
    }

    .signals-table th,
    .signals-table td {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.875rem;
    }

    .cta-content {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-lg);
    }

    .cta-content .btn {
        width: 100%;
    }

    

    .contact-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }

    .contact-form-section,
    .contact-details-section {
        padding: var(--spacing-xl);
    }

    
    .plans-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .plan-card.plan-featured {
        transform: scale(1);
    }

    .plan-card.plan-featured:hover {
        transform: translateY(-4px);
    }

    .details-grid,
    .payment-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .form-actions:not(.subscription-confirm-actions) {
        flex-direction: column;
    }

    .form-actions:not(.subscription-confirm-actions) .btn {
        width: 100%;
    }

    
    .payment-page .payment-card.payment-confirmation {
        position: static;
        margin-inline: 0;
        padding: var(--spacing-xl);
    }

    
    .trust-container {
        flex-wrap: wrap;
        justify-content: center;
    }

    .trust-item {
        flex: 1 1 45%;
        min-width: 200px;
    }

    .trust-divider {
        display: block;
        height: 1px;
        width: 100%;
        background: linear-gradient(90deg, transparent 0%, var(--border-color) 20%, var(--border-color) 80%, transparent 100%);
    }

    .trust-divider:nth-of-type(2) {
        display: none;
    }

}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

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

@keyframes cardReveal {
    from {
        opacity: 0;
        transform: translateY(16px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Admin KPI cards use admin.css only — removed .admin-summary-cards* from public bundle */
.hero-stats .stat-card,
.services-grid .service-card,
.products-grid .product-card,
.plan-card {
    animation: cardReveal 0.6s var(--ease-out-expo) both;
}

.hero-stats .stat-card:nth-child(2),
.services-grid .service-card:nth-child(2),
.products-grid .product-card:nth-child(2) {
    animation-delay: 0.08s;
}

.hero-stats .stat-card:nth-child(3),
.services-grid .service-card:nth-child(3),
.products-grid .product-card:nth-child(3) {
    animation-delay: 0.16s;
}

.services-grid .service-card:nth-child(4),
.products-grid .product-card:nth-child(4) {
    animation-delay: 0.24s;
}

.fade-in-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.65s var(--ease-out-expo), transform 0.65s var(--ease-out-expo);
}

.fade-in-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.empty-state {
    text-align: center;
    padding: var(--spacing-2xl) var(--spacing-xl);
    color: var(--text-muted);
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.04) 0%, rgba(139, 92, 246, 0.02) 50%, transparent 100%);
    border-radius: var(--radius-xl);
    border: 2px dashed rgba(99, 102, 241, 0.2);
    margin: var(--spacing-md) 0;
    position: relative;
    overflow: hidden;
    transition: border-color var(--transition-fast), box-shadow var(--transition-smooth), transform var(--transition-fast);
}

.empty-state::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    padding: 2px;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.3), rgba(139, 92, 246, 0.2), transparent 50%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    opacity: 0;
    transition: opacity var(--transition-smooth);
}

.empty-state:hover {
    border-color: rgba(99, 102, 241, 0.35);
    box-shadow: var(--elevation-1);
}

.empty-state:hover::before {
    opacity: 1;
}

.empty-state p {
    font-size: 1.0625rem;
    margin-bottom: var(--spacing-xl);
    color: var(--text-secondary);
    font-weight: 500;
}

.empty-state .btn {
    font-weight: 600;
    padding: 0.75rem 1.5rem;
    border-radius: var(--radius-lg);
    box-shadow: var(--elevation-1);
    transition: transform var(--transition-bounce), box-shadow var(--transition-smooth);
}

.empty-state .btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--elevation-2);
}

.empty-state i[data-lucide] {
    display: block;
    width: 64px;
    height: 64px;
    margin: 0 auto var(--spacing-lg);
    color: var(--text-muted);
    opacity: 0.5;
}

@keyframes adminIconPulse {
    0%, 100% { filter: brightness(1); transform: scale(1); }
    50% { filter: brightness(1.3); transform: scale(1.05); }
}

.label-icon {
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.math-captcha-group {
    margin-top: var(--spacing-lg);
}

.math-captcha-wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.math-question {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(139, 92, 246, 0.08) 100%);
    padding: var(--spacing-lg) var(--spacing-xl);
    border-radius: var(--radius-lg);
    border: 2px solid rgba(99, 102, 241, 0.25);
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all var(--transition-smooth);
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.08);
    margin-bottom: var(--spacing-sm);
}

.math-question::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: mathShimmer 3s infinite;
    z-index: 0;
}

@keyframes mathShimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

.math-question:hover {
    border-color: rgba(99, 102, 241, 0.4);
    box-shadow: 0 4px 16px rgba(99, 102, 241, 0.16);
    transform: translateY(-1px);
}

.math-text {
    font-size: 1rem;
    color: var(--text-secondary);
    font-weight: 500;
    position: relative;
    z-index: 1;
}

.math-text strong {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary);
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    padding: 0 var(--spacing-xs);
    font-family: var(--font-display);
}

.math-input {
    width: 100%;
    padding: 0.75rem var(--spacing-md);
    border: 2px solid var(--border-color);
    border-radius: var(--radius-lg);
    font-size: 0.9375rem;
    font-weight: 600;
    text-align: center;
    transition: all var(--transition-fast);
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-display);
}

.math-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15), var(--elevation-1);
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.math-input:active {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.math-input:active {
    background-color: var(--bg-white) !important;
    color: var(--text-primary) !important;
}

.math-input::placeholder {
    color: var(--text-muted);
    font-weight: 500;
}

.form-help-text {
    display: block;
    margin-top: var(--spacing-xs);
    font-size: 0.8125rem;
    color: var(--text-muted);
    font-style: italic;
}

.filter-section {
    margin: var(--spacing-xl) 0 var(--spacing-lg);
}

.filter-chip {
    border: none;
    outline: none;
    background: var(--bg-gray-50);
    color: var(--text-secondary);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 0.8125rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.18s ease-out;
}

.filter-chip .chip-count {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748B;
}

.filter-chip.active {
    background: linear-gradient(135deg, #4F46E5 0%, #6366F1 50%, #22C55E 100%);
    color: #FFFFFF;
    box-shadow: 0 10px 20px rgba(79, 70, 229, 0.25);
    transform: translateY(-1px);
}

.filter-chip.active .chip-count {
    color: #E5E7EB;
}

.filter-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}

.payment-content {
    max-width: min(1080px, 100%);
    margin-inline: auto;
    padding-inline: 0;
    width: 100%;
    box-sizing: border-box;
}

.payment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
    margin-bottom: 2rem;
}

/* Reusable flex helper */
.center-flex {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

/* Payment notes + actions card (matches .payment-section shell) */
.payment-card {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-2xl);
    margin-bottom: 2rem;
    transition: box-shadow var(--transition-smooth), border-color var(--transition-fast);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    width: 100%;
    box-sizing: border-box;
}

.payment-card:hover {
    box-shadow: var(--shadow-lg);
    border-color: rgba(99, 102, 241, 0.2);
}

.payment-card .payment-notes-group {
    margin-bottom: 0;
    width: 100%;
}

.payment-notes-textarea,
.payment-card textarea,
.payment-confirmation textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    resize: vertical;
    min-height: 120px;
    padding: 0.875rem 1rem;
    line-height: 1.5;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    font-family: inherit;
    font-size: 0.9375rem;
}

.payment-notes-textarea:focus,
.payment-card textarea:focus,
.payment-confirmation textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.payment-notes-textarea::placeholder,
.payment-card textarea::placeholder,
.payment-confirmation textarea::placeholder {
    color: var(--text-muted);
}

.payment-actions {
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 20px;
}

.payment-card .payment-actions {
    margin-top: 0;
}

.payment-actions.center-flex {
    justify-content: center;
}

.payment-action-btn.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.75rem 1.25rem;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .payment-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .payment-actions .payment-action-btn {
        width: 100%;
        max-width: 22rem;
        margin-inline: auto;
    }
}

.payment-section {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-xl);
    transition: box-shadow var(--transition-smooth), border-color var(--transition-fast);
}

.payment-section:hover {
    box-shadow: var(--shadow-lg);
    border-color: rgba(99, 102, 241, 0.2);
}

.payment-section .section-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: #0B2578;
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.payment-section .section-title::before {
    content: "";
    width: 4px;
    height: 20px;
    background: var(--primary-gradient);
    border-radius: var(--radius-full);
}

.payment-method {
    background: var(--bg-white);
    border: 2px solid var(--border-color);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    cursor: default;
    transition:
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        background-color var(--transition-fast);
    position: relative;
    overflow: hidden;
}

.payment-method::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.03) 0%, transparent 100%);
    opacity: 0;
    transition: opacity var(--transition-fast);
    pointer-events: none;
}

.payment-method:hover {
    border-color: rgba(99, 102, 241, 0.4);
    box-shadow: var(--shadow);
}

.payment-method.active {
    border-color: var(--primary);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.06) 0%, rgba(139, 92, 246, 0.03) 100%);
    box-shadow: var(--shadow-md), 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.payment-method.active::before {
    opacity: 1;
}

.payment-method.active::after {
    content: "✓";
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    width: 28px;
    height: 28px;
    background: var(--primary-gradient);
    color: var(--text-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    box-shadow: var(--shadow-sm);
    pointer-events: none;
}

.method-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    position: relative;
    z-index: 2;
    cursor: pointer;
    border-radius: var(--radius-md);
}

.payment-method .method-content {
    position: relative;
    z-index: 1;
}

.payment-page .form-group input,
.payment-page .form-group textarea,
.payment-page .payment-notes-textarea {
    pointer-events: auto;
}

.method-header input[type="radio"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--primary);
    flex-shrink: 0;
}

.method-label {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    flex: 1;
}

.method-content {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-light);
}

.qr-code-placeholder {
    display: flex;
    justify-content: center;
    margin-bottom: var(--spacing-lg);
}

.qr-code {
    background: var(--bg-gray-50);
    border: 2px dashed var(--border-color);
    border-radius: var(--radius-lg);
    padding: var(--spacing-2xl);
    text-align: center;
    min-width: 200px;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
}

.qr-code p {
    font-size: 0.875rem;
    color: var(--text-muted);
    margin: 0;
}

.qr-hint {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-style: italic;
}

.bank-details {
    background: linear-gradient(135deg, var(--bg-gray-50) 0%, #F8FAFC 100%);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.bank-details p {
    margin: var(--spacing-xs) 0;
    font-size: 0.9375rem;
    color: var(--text-primary);
    line-height: 1.6;
}

.bank-details p:first-child {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--spacing-sm);
}

.payment-confirmation:not(.payment-card) {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-2xl);
    margin-bottom: var(--spacing-xl);
}

.help-section {
    background: linear-gradient(135deg, var(--primary-soft) 0%, #E8ECFF 100%);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    text-align: center;
}

.help-section p {
    margin: var(--spacing-xs) 0;
    font-size: 0.9375rem;
    color: var(--text-primary);
}

.help-section p:first-child {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--spacing-sm);
}

/* Reusable premium support card (e.g. payment page) */
.support-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 22px 24px;
    border-radius: 12px;
    background: #f9fafb;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 8px 24px rgba(15, 23, 42, 0.06);
}

.payment-page .support-card {
    margin-top: 0;
}

.support-card__header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.support-card__emoji {
    font-size: 1.35rem;
    line-height: 1;
}

.support-card__title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #0b2578;
    letter-spacing: -0.02em;
}

.support-card__desc {
    margin: 0;
    max-width: 26rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--text-muted, #64748b);
}

.support-card__contacts {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 16px;
    width: 100%;
    max-width: 100%;
}

.support-card__row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    padding: 14px 16px;
    border-radius: 10px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    text-decoration: none;
    text-align: left;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
    box-sizing: border-box;
}

.support-card__row:hover {
    border-color: rgba(11, 37, 120, 0.2);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}

.support-card__row:focus-visible {
    outline: 2px solid var(--primary, #0b2578);
    outline-offset: 2px;
}

.support-card__row-emoji {
    font-size: 1.25rem;
    line-height: 1;
    flex-shrink: 0;
}

.support-card__row-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.support-card__label {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.support-card__value {
    font-size: 0.9375rem;
    line-height: 1.35;
    word-break: break-word;
}

.support-card__row--email .support-card__value {
    color: var(--primary, #0b2578);
    font-weight: 600;
}

.support-card__row--email:hover .support-card__value {
    color: var(--primary-hover, #1a9464);
}

.support-card__row--phone .support-card__value {
    color: var(--text-primary, #0f172a);
    font-weight: 700;
}

@media (max-width: 768px) {
    .support-card {
        padding: 20px 16px;
        gap: 14px;
    }

    .support-card__title {
        font-size: 1.125rem;
    }

    .support-card__desc {
        font-size: 0.875rem;
        max-width: 100%;
    }

    .support-card__contacts {
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }

    .support-card__row {
        flex: 1 1 auto;
        width: 100%;
        max-width: 22rem;
        padding: 12px 14px;
    }
}

/* Checkout / payment / subscription confirm — stack grids 521–768px, detail rows, QR, no horizontal scroll */
@media (max-width: 768px) {
    body.user-layout > main {
        overflow-x: clip;
    }

    body.user-layout .payment-page,
    body.user-layout .subscription-confirm-page {
        overflow-x: clip;
    }

    .payment-page .container,
    .subscription-confirm-page .container {
        max-width: 100%;
        padding-left: max(var(--page-gutter, 1rem), env(safe-area-inset-left, 0px));
        padding-right: max(var(--page-gutter, 1rem), env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }

    .payment-content,
    .confirm-content {
        max-width: 100%;
        width: 100%;
        padding-inline: 0;
        box-sizing: border-box;
    }

    .payment-page .page-header h1,
    .subscription-confirm-page .page-header h1 {
        line-height: 1.25;
        overflow-wrap: anywhere;
        hyphens: auto;
        -webkit-hyphens: auto;
    }

    .payment-grid,
    .details-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
        width: 100%;
        min-width: 0;
        margin-bottom: var(--spacing-lg);
    }

    .payment-section,
    .details-section {
        min-width: 0;
        padding: var(--spacing-lg);
    }

    .payment-section .section-title,
    .details-section .section-title {
        flex-wrap: wrap;
        align-items: flex-start;
        row-gap: 0.375rem;
        line-height: 1.35;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .detail-item {
        flex-direction: column;
        align-items: stretch;
        gap: 0.375rem;
        padding: var(--spacing-md) 0;
    }

    .detail-label {
        margin-right: 0;
        text-align: left;
    }

    .detail-value {
        text-align: left;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .detail-item.highlight {
        margin-left: 0;
        margin-right: 0;
    }

    .payment-method {
        padding: var(--spacing-md);
        overflow: visible;
        max-width: 100%;
    }

    .method-header {
        flex-wrap: wrap;
        gap: var(--spacing-sm);
        padding-right: 2.75rem;
    }

    .payment-method.active::after {
        top: var(--spacing-sm);
        right: var(--spacing-sm);
    }

    .bank-details p {
        overflow-wrap: anywhere;
    }

    .qr-code-placeholder {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .qr-code {
        width: 100%;
        max-width: min(280px, 100%);
        min-width: 0;
        min-height: 0;
        aspect-ratio: 1;
        padding: var(--spacing-lg);
        margin-inline: auto;
        box-sizing: border-box;
    }

    .payment-card {
        padding: var(--spacing-lg);
    }

    .payment-actions .payment-action-btn {
        max-width: none;
        width: 100%;
    }

    .payment-confirmation:not(.payment-card),
    .confirmation-section {
        padding: var(--spacing-lg);
        min-width: 0;
    }

    .subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-md);
    }

    .subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions .btn {
        width: 100%;
        max-width: none;
        min-height: 48px;
    }

    .support-card__row {
        flex-direction: column;
        align-items: center;
        text-align: center;
        justify-content: center;
    }

    .support-card__row-body {
        align-items: center;
        text-align: center;
    }

    .support-card__value {
        overflow-wrap: anywhere;
    }
}

.form-help {
    display: block;
    margin-top: var(--spacing-xs);
    font-size: 0.8125rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.form-error {
    display: block;
    margin-top: var(--spacing-xs);
    font-size: 0.8125rem;
    color: #DC2626;
    line-height: 1.4;
    font-weight: 500;
}

.form-error.recaptcha-error {
    text-align: center;
    margin-top: var(--spacing-sm);
}

.btn-secondary {
    background-color: transparent;
    color: var(--text-primary);
    border: 1.5px solid var(--border-color);
    transition: all var(--transition-fast);
}

.btn-secondary:hover {
    background-color: var(--bg-gray-100);
    border-color: var(--border-dark);
    transform: translateY(-1px);
}

.btn-secondary:active {
    transform: translateY(0);
}

.btn i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.inline-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

.method-content {
    animation: methodSlideIn 0.3s var(--ease-out-expo);
}

@keyframes methodSlideIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
        max-height: 0;
    }
    to {
        opacity: 1;
        transform: translateY(0);
        max-height: 1000px;
    }
}

.details-section,
.payment-section,
.confirmation-section,
.payment-card.payment-confirmation,
.payment-confirmation {
    animation: cardSlideUp 0.5s var(--ease-out-expo) backwards;
}

.details-grid .details-section:nth-child(1),
.payment-grid .payment-section:nth-child(1) {
    animation-delay: 0.05s;
}

.details-grid .details-section:nth-child(2),
.payment-grid .payment-section:nth-child(2) {
    animation-delay: 0.1s;
}

.confirmation-section,
.payment-card.payment-confirmation,
.payment-confirmation {
    animation-delay: 0.15s;
}

@keyframes cardSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.profit-value {
    color: var(--success);
}

.loss-value {
    color: var(--danger);
}

.signal-type-buy {
    background: linear-gradient(135deg, var(--primary-soft) 0%, #E0E7FF 100%);
    color: #4338CA;
    transition: all 0.3s ease;
    border: 1px solid rgba(99, 102, 241, 0.2);
}

.signal-type-buy:hover {
    background: var(--primary-gradient);
    color: var(--text-white);
    transform: scale(1.05);
    box-shadow: var(--shadow-sm);
}

.signal-type-sell {
    background: #FEE2E2;
    color: #991B1B;
}

.visual-badge-top,
.visual-badge-bottom {
    background: var(--bg-white);
    color: var(--text-primary);
    border-color: var(--border-color);
    box-shadow: var(--shadow);
}

.visual-label {
    color: var(--text-muted);
}

.product-detail-page {
    padding: var(--spacing-2xl) 0;
    background: linear-gradient(180deg, var(--bg-gray-50) 0%, #F8FAFC 100%);
    min-height: 60vh;
}

.product-header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9375rem;
    margin-bottom: var(--spacing-lg);
    transition: color var(--transition-fast);
}

.back-link:hover {
    color: var(--primary);
}

.product-header h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    color: #0B2578;
    letter-spacing: -0.02em;
    margin-bottom: var(--spacing-md);
}

.product-subtitle {
    font-size: 1.0625rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

.pricing-plans {
    max-width: 900px;
    margin: 0 auto var(--spacing-2xl);
}

.plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-xl);
    align-items: stretch;
}

.plan-badge {
    position: absolute;
    top: -12px;
    right: var(--spacing-lg);
    background: var(--primary-gradient);
    color: var(--text-white);
    padding: 0.4rem 0.9rem;
    border-radius: var(--radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    box-shadow: var(--shadow-md);
    z-index: 2;
}

.plan-header {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border-light);
}

.plan-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #0B2578;
    margin: 0;
}

.plan-price {
    margin-bottom: var(--spacing-xl);
    text-align: center;
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, var(--bg-gray-50) 0%, #F8FAFC 100%);
    border-radius: var(--radius-lg);
}

.price-amount {
    display: block;
    font-size: 2.5rem;
    font-weight: 800;
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.2;
    margin-bottom: var(--spacing-xs);
}

/* Pricing readability: make all plan prices premium black (no gradients).
   Do not affect card accents, buttons, headings, or feature icons.
*/
.price-amount {
    color: #111827;
    background: none;
    -webkit-text-fill-color: #111827;
}

.price-duration {
    display: block;
    font-size: 0.875rem;
    color: var(--text-muted);
    font-weight: 500;
}

.plan-features {
    flex: 1;
    margin-bottom: var(--spacing-xl);
}

.plan-features ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.plan-features li {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 0.9375rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.plan-features li::before {
    content: "";
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--success) 0%, #34D399 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='white' d='M10 3L4.5 8.5L2 6' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px;
}

.subscription-confirm-page {
    padding: var(--spacing-2xl) 0;
    background: linear-gradient(180deg, var(--bg-gray-50) 0%, #F8FAFC 100%);
    min-height: 60vh;
}

.confirm-content {
    max-width: 1000px;
    margin: 0 auto;
}

.subscription-confirm-page .page-header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}

.subscription-confirm-page .page-header h1 {
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: var(--spacing-sm);
}

.subscription-confirm-page .page-subtitle {
    font-size: 1.0625rem;
    color: var(--text-secondary);
}

/* AutoTrade confirm — "What's included" feature grid */
.autotrade-included {
    margin: clamp(2rem, 5vw, 3rem) 0;
    padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.25rem, 3vw, 2rem);
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 12px 40px -12px rgba(15, 23, 42, 0.08);
}

.autotrade-included__header {
    text-align: center;
    max-width: 42rem;
    margin: 0 auto clamp(1.75rem, 4vw, 2.25rem);
}

.autotrade-included__eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary);
    margin: 0 0 0.5rem;
}

.autotrade-included__title {
    font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif;
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: #0B2578;
    margin: 0 0 0.625rem;
    line-height: 1.25;
}

.autotrade-included__lead {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--text-secondary);
    margin: 0;
}

.autotrade-included__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
    gap: clamp(1rem, 2.5vw, 1.25rem);
    max-width: 56rem;
    margin: 0 auto;
}

.autotrade-included-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.875rem;
    padding: 1.35rem 1.25rem 1.4rem;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition:
        transform 0.22s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)),
        box-shadow 0.22s var(--ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1)),
        border-color 0.2s ease;
}

.autotrade-included-card:hover {
    transform: translateY(-3px);
    box-shadow:
        0 4px 12px rgba(15, 23, 42, 0.06),
        0 20px 48px -20px rgba(11, 37, 120, 0.12);
    border-color: rgba(99, 102, 241, 0.22);
}

.autotrade-included-card--accent {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.04) 0%, #ffffff 55%);
}

.autotrade-included-card--accent:hover {
    border-color: rgba(99, 102, 241, 0.28);
}

.autotrade-included-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 auto;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(22, 163, 74, 0.08) 100%);
    color: #0B2578;
    flex-shrink: 0;
}

.autotrade-included-card__lucide {
    width: 1.375rem;
    height: 1.375rem;
    stroke-width: 2px;
}

.autotrade-included-card__name {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.3;
    text-align: center;
    width: 100%;
}

.autotrade-included-card__desc {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--text-secondary);
    margin: 0;
    text-align: center;
    width: 100%;
}

.autotrade-included-card__desc strong {
    color: var(--text-primary);
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .autotrade-included-card {
        transition: none;
    }

    .autotrade-included-card:hover {
        transform: none;
    }
}

@media (max-width: 480px) {
    .autotrade-included {
        padding: 1.5rem 1rem;
    }

    .autotrade-included__grid {
        grid-template-columns: 1fr;
    }
}

.details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-2xl);
}

.details-section {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-xl);
    transition: box-shadow var(--transition-smooth), border-color var(--transition-fast);
}

.details-section:hover {
    box-shadow: var(--shadow-lg);
    border-color: rgba(99, 102, 241, 0.2);
}

.details-section .section-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: #0B2578;
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--border-light);
}

.details-card {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.detail-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--border-light);
}

.detail-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.detail-item.highlight {
    background: linear-gradient(135deg, var(--primary-soft) 0%, #E8ECFF 100%);
    margin: var(--spacing-md) calc(-1 * var(--spacing-md)) 0;
    padding: var(--spacing-md);
    border-radius: var(--radius-md);
    border: 1px solid rgba(99, 102, 241, 0.2);
}

.detail-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex-shrink: 0;
    margin-right: var(--spacing-md);
}

.detail-value {
    font-size: 0.9375rem;
    color: var(--text-primary);
    text-align: right;
    font-weight: 500;
    word-break: break-word;
}

.detail-value.amount {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1e293b;
}

.confirmation-section {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-2xl);
    margin-bottom: var(--spacing-xl);
}

.terms-checkbox {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
    border-bottom: 1px solid var(--border-light);
}

.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    font-size: 0.9375rem;
    color: var(--text-primary);
    cursor: pointer;
    line-height: 1.6;
}

.checkbox-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
    accent-color: var(--primary);
    border-radius: var(--radius-sm);
}

.checkbox-label a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: color var(--transition-fast);
}

.checkbox-label a:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}

.payment-notice {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(245, 158, 11, 0.04) 100%);
    border: 1px solid rgba(245, 158, 11, 0.25);
    border-left: 4px solid var(--warning);
    border-radius: var(--radius-md);
    padding: var(--spacing-md) var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.payment-notice p {
    color: #B45309;
    font-size: 0.9375rem;
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.form-actions {
    display: flex;
    gap: var(--spacing-md);
    justify-content: flex-end;
    flex-wrap: wrap;
}

.form-actions .btn {
    min-width: 140px;
}

/* Subscription / AutoTrade confirm — centered actions */
.subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-lg);
    margin: 0;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
}

.subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions .btn {
    margin: 0;
}

@media (max-width: 520px) {
    .subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .subscription-confirm-page .confirmation-section .subscription-confirm-actions.form-actions .btn {
        width: 100%;
        max-width: 22rem;
    }
}

.confirmation-section {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow);
}

.checkbox-label {
    color: var(--text-primary);
}

.checkbox-label a {
    color: var(--primary);
}

.help-section {
    background: var(--bg-gray-50);
    border: 1px solid var(--border-color);
}

.help-section p {
    color: var(--text-primary);
}

.trust-block {
    max-width: 900px;
    margin: var(--spacing-2xl) auto 0;
    padding: 0 var(--spacing-lg);
}

.trust-container {
    background: var(--bg-white);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: var(--spacing-2xl) var(--spacing-xl);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-xl);
    transition: box-shadow var(--transition-smooth), border-color var(--transition-fast);
    animation: trustBlockFadeIn 0.6s var(--ease-out-expo) backwards 0.2s;
}

@keyframes trustBlockFadeIn {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.trust-container:hover {
    box-shadow: var(--shadow-md);
    border-color: rgba(99, 102, 241, 0.15);
}

.trust-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    flex: 1;
}

.trust-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(139, 92, 246, 0.06) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-smooth), background var(--transition-fast);
}

.trust-icon i {
    width: 20px;
    height: 20px;
    color: var(--primary);
}

.trust-item:hover .trust-icon {
    transform: scale(1.08);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(139, 92, 246, 0.1) 100%);
}

.trust-content {
    flex: 1;
    min-width: 0;
}

.trust-content h4 {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #0B2578;
    margin: 0 0 var(--spacing-xs) 0;
    line-height: 1.4;
}

.trust-content p {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin: 0;
    line-height: 1.5;
}

.trust-divider {
    width: 1px;
    height: 48px;
    background: linear-gradient(180deg, transparent 0%, var(--border-color) 20%, var(--border-color) 80%, transparent 100%);
    flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
    *:not(html):not(body) {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    html, body {
        scroll-behavior: auto !important;
    }
}

@media (max-width: 520px) {
    
}

.heading-primary {
    color: #0B2578;
}

.heading-accent {
    color: #1A9464;
}

body.frontend .hero-gradient-text,
body.user-layout .hero-gradient-text,
.signals-hero .hero-gradient-text,
.signals-hero h1 {
    color: #111827 !important;
    background: none !important;
    background-image: none !important;
    -webkit-text-fill-color: #111827 !important;
}

body.frontend .btn-brand {
    background: #16A34A !important;
}

body.frontend .btn-brand:hover {
    background: #15803D !important;
    box-shadow: 0 8px 25px rgba(22, 163, 74, 0.3) !important;
}

.cta-premium-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 2rem;
    padding: 0.5rem 1rem;
    margin-bottom: 1.5rem;
    color: #111827;
}

.cta-premium-badge i {
    width: 20px;
    height: 20px;
    color: #0B2578;
}

.cta-premium-badge span {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0B2578;
}

.cta-features {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.cta-feature {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    transition: all 0.3s ease;
}

.cta-feature:hover {
    background: rgba(22, 163, 74, 0.04);
    border-color: rgba(22, 163, 74, 0.1);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.cta-feature i {
    width: 16px;
    height: 16px;
    color: #0B2578;
}

.cta-feature span {
    font-size: 0.875rem;
    color: #111827;
    font-weight: 500;
}

h1, h2, h3, h4, h5, h6,
.hero-gradient-text,
.section-title,
.testimonials-title,
.about-hero-headline,
.page-header h1,
.product-header h1,
.plan-header h3,
.contact-form-section h2,
.contact-details-section h2 {
    color: #0B2578 !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    -webkit-text-fill-color: #0B2578 !important;
}

.blue-half {
    color: #0B2578 !important;
    -webkit-text-fill-color: #0B2578 !important;
}

.green-half, .title-accent {
    color: #1A9464 !important;
    -webkit-text-fill-color: #1A9464 !important;
}

/* Brand split heading (public-portal only)
   Fixes cases where public.css forces h1/h2/h3 blue via !important.
*/
body.frontend.public-portal .brand-heading .primary {
    color: var(--secondary) !important;           /* green */
    -webkit-text-fill-color: var(--secondary) !important;
}

body.frontend.public-portal .brand-heading .secondary {
    color: var(--primary) !important;              /* blue */
    -webkit-text-fill-color: var(--primary) !important;
}

/* Optional alias for teams using a different wrapper class name */
.public-app .brand-heading .primary {
    color: var(--secondary) !important;           /* green */
    -webkit-text-fill-color: var(--secondary) !important;
}

.public-app .brand-heading .secondary {
    color: var(--primary) !important;              /* blue */
    -webkit-text-fill-color: var(--primary) !important;
}

/* CMS static pages: split headings (.heading-primary / .heading-accent) inside h1 must override global h1 !important */
body.frontend.public-portal .cms-header h1 .heading-primary {
    color: #0B2578 !important;
    -webkit-text-fill-color: #0B2578 !important;
}

body.frontend.public-portal .cms-header h1 .heading-accent {
    color: #1A9464 !important;
    -webkit-text-fill-color: #1A9464 !important;
}

/* Preserve inline-block behavior previously applied to hero spans */
body.frontend.public-portal .hero-headline.brand-heading .primary,
body.frontend.public-portal .hero-headline.brand-heading .secondary {
    display: inline-block;
    visibility: visible;
    opacity: 1;
}

.public-app .hero-headline.brand-heading .primary,
.public-app .hero-headline.brand-heading .secondary {
    display: inline-block;
    visibility: visible;
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms;
        animation-iteration-count: 1;
        transition-duration: 0.01ms;
    }
}

.hero-heading {
    font-family: var(--font-display);
}

.card-3d-wrapper {
    perspective: var(--perspective);
    transform-style: preserve-3d;
}

.card-3d {
    transform-style: preserve-3d;
    transition: transform 0.4s var(--ease-spring), box-shadow 0.4s ease;
    will-change: transform;
}

.card-3d:hover {
    transform: rotateX(calc(var(--card-3d-rotate-x) * -1)) rotateY(var(--card-3d-rotate-y)) translateZ(12px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
}

.section-title,
.section-title-animated,
.section-header .section-title,
.section-header h2,
.page-header h1,
h1, h2, h3 {
    text-align: center;
    width: 100%;
    display: block;
    line-height: 1;
}

.section-title,
.section-title-animated,
.section-header h2,
.page-header h1 {
    color: #0B2578;
}

.section-title-animated {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: -0.03em;
    position: relative;
    padding-bottom: 0;
    line-height: 1;
}

.stagger-children > * {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo);
}

.stagger-children.visible > *:nth-child(1) { transition-delay: 0.05s; }

.stagger-children.visible > *:nth-child(2) { transition-delay: 0.12s; }

.stagger-children.visible > *:nth-child(3) { transition-delay: 0.19s; }

.stagger-children.visible > *:nth-child(4) { transition-delay: 0.26s; }

.stagger-children.visible > *:nth-child(5) { transition-delay: 0.33s; }

.stagger-children.visible > *:nth-child(6) { transition-delay: 0.4s; }

.stagger-children.visible > *:nth-child(7) { transition-delay: 0.47s; }

.stagger-children.visible > *:nth-child(8) { transition-delay: 0.54s; }

.stagger-children.visible > * {
    opacity: 1;
    transform: translateY(0);
}

body:not(.admin-layout) main {
    animation: contentSlideUp 0.7s var(--ease-out-expo) both;
}

@keyframes contentSlideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.admin-layout) main {
        animation: none;
    }
}

.fade-in-on-scroll {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s var(--ease-out-expo), transform 0.7s var(--ease-out-expo);
}

.fade-in-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.card-3d .service-icon,
.card-3d .stat-value {
    transition: transform 0.25s ease;
}

.card-3d:hover .service-icon {
    transform: scale(1.02);
}

.card-3d:hover .stat-value {
    transform: scale(1.02);
}

@media (max-width: 768px) {
    .card-3d:hover {
        transform: translateY(-6px);
    }
    .heading-reveal .line .word {
        transition-duration: 0.4s;
    }
}

body.frontend input:active,
body.frontend textarea:active,
body.frontend select:active {
    background-color: initial !important;
    color: initial !important;
}

body.frontend .auth-form input[type="text"]:not(.iti__tel-input),
body.frontend .auth-form input[type="email"]:not(.iti__tel-input),
body.frontend .auth-form input[type="tel"]:not(.iti__tel-input),
body.frontend .auth-form input[type="password"] {
    
    width: 100%;
    height: 48px;
    padding-left: 48px;
    padding-right: 16px;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: var(--radius, 0.75rem);
    background: var(--bg-white, #ffffff);
    color: var(--text-primary, #111827);
    font-size: 16px;
    font-family: var(--font-body, "Inter", sans-serif);
    transition: all var(--transition-fast, 0.2s ease);
    box-sizing: border-box;
    
    font-size: 16px;
}

body.frontend .auth-form input:focus {
    outline: none;
    border-color: var(--primary, #0B2578);
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.12);
    background: var(--bg-white, #ffffff);
    color: var(--text-primary, #111827);
}

body.frontend .auth-btn {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    height: auto;
    border-radius: var(--radius-form, 10px);
    background: var(--primary, #0b2578);
    color: var(--text-white, #ffffff);
    border: none;
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1.25;
    cursor: pointer;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    box-sizing: border-box;
    padding: 0.625rem 1rem;
}

@media (min-width: 481px) {
    body.frontend .auth-btn {
        width: auto;
        min-width: 11.75rem;
        max-width: min(100%, 268px);
        min-height: 40px;
        padding: 0.5rem 1.25rem;
    }
}

body.frontend .auth-btn svg,
body.frontend .auth-btn [data-lucide] {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

body.frontend .auth-btn:hover {
    background: var(--primary-hover, #1A9464);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
    color: var(--text-white, #ffffff);
}

body.frontend .auth-btn:focus {
    outline: none;
    background: var(--primary, #0B2578);
    color: var(--text-white, #ffffff);
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.12);
}

body.frontend .auth-btn:active {
    background: var(--primary, #0B2578) !important;
    color: var(--text-white, #ffffff) !important;
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(11, 37, 120, 0.2);
}

body.frontend .auth-btn:focus,
body.frontend .auth-btn:focus-visible,
body.frontend .auth-btn:active,
body.frontend .auth-btn:hover {
    background-color: var(--primary, #0B2578) !important;
    color: var(--text-white, #ffffff) !important;
}

body.frontend .auth-form .recaptcha-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 1.5rem 0;
    width: 100%;
    min-height: auto;
    overflow: visible;
}

body.frontend .auth-form .g-recaptcha {
    border-radius: 12px;
    overflow: visible;
    margin: 0 auto;
    min-height: 78px;
    width: 304px;
    max-width: 100%;
}

body.frontend .captcha-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 10px;
}

body.frontend .g-recaptcha {
    height: auto !important;
}

body.frontend .g-recaptcha > div {
    margin: 0 !important;
}

/* Don't force iframe display — reCAPTCHA injects hidden iframes (challenge/bframe). */
body.frontend .g-recaptcha iframe,
.contact-form .g-recaptcha iframe {
    max-width: 100%;
    border: 0;
}

body.frontend .form-error.recaptcha-error {
    text-align: center;
    margin-top: var(--spacing-sm, 0.5rem);
    color: var(--danger, #DC2626);
    font-size: 0.875rem;
}

body.frontend .form-error.recaptcha-error:empty {
    display: none;
}

body.frontend .auth-form .form-group {
    margin-bottom: var(--grid-2, 16px);
    min-height: 0;
    width: 100%;
}

body.frontend .auth-form .form-group.recaptcha-group {
    min-height: auto !important;
}

body.frontend .auth-page .form-group,
body.frontend .auth-container .form-group {
    margin-bottom: var(--grid-2, 16px) !important;
    min-height: 0 !important;
    width: 100% !important;
}

body.frontend .auth-page .form-group.recaptcha-group,
body.frontend .auth-container .form-group.recaptcha-group {
    min-height: auto !important;
}

body.frontend .auth-form .input-with-icon {
    position: relative;
    display: flex;
    align-items: center;
    
    width: 100%;
    height: 48px;
    min-height: 48px;
}

body.frontend .auth-form .input-with-icon .input-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    color: var(--text-secondary, #6B7280);
    pointer-events: none;
    
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.frontend .auth-form .password-toggle {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--text-secondary, #6B7280);
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    z-index: 2;
    transition: color var(--transition-fast);
    
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.frontend .auth-form .password-toggle:hover {
    color: var(--primary, #0B2578);
}

body.frontend .auth-form input[type="text"]:not(.iti__tel-input),
body.frontend .auth-form input[type="email"]:not(.iti__tel-input),
body.frontend .auth-form input[type="tel"]:not(.iti__tel-input),
body.frontend .auth-form input[type="password"],
body.frontend .auth-form input[type="number"],
body.frontend .auth-form select,
body.frontend .auth-form textarea {
    
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    
    
    padding: 0.75rem 1rem;
    padding-left: 48px; 
    border: 2px solid var(--border-light, #E5E7EB);
    border-radius: var(--radius-md, 8px);
    font-size: 16px;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    line-height: 1.5;
    color: var(--text-primary, #111827);
    background: var(--bg-white, #FFFFFF);
    
    
    box-sizing: border-box;
    transition: all 0.3s ease;
    
    
    margin: 0;
    outline: none;
    
    
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* intl-tel-input: full-width row; avoid 48px “icon” padding on the tel input */
.auth-intl-hidden {
    display: none !important;
}

body.frontend .auth-form .iti {
    width: 100%;
    display: block;
    position: relative;
    z-index: 2;
}

body.frontend .auth-form .iti__country-container {
    z-index: 3;
}

body.frontend .auth-form .iti__tel-input,
body.frontend .auth-form .iti input.iti__tel-input {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    box-sizing: border-box;
}

body.frontend .auth-form .register-intl-wrap .iti,
body.frontend .auth-form .login-identifier-intl .iti {
    width: 100%;
}

body.frontend .auth-form .login-id-toggle {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    width: 100%;
    text-align: center;
}

body.frontend .auth-form .login-id-toggle__btn {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--primary, #0b2578);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.frontend .auth-form .login-id-toggle__btn:hover {
    color: var(--primary-hover, #1a9464);
}

body.frontend .auth-form .login-intl-fallback-msg,
body.frontend .auth-form .register-intl-fallback-msg {
    font-size: 0.8125rem;
    color: var(--text-secondary, #6b7280);
    margin: 0.35rem 0 0;
}

body.frontend .auth-form .phone-input-group {
    width: 100%;
}

body.frontend .auth-form .phone-input-group .country-code {
    padding-left: 0.75rem;
}

body.frontend .auth-form .auth-india-phone-fallback {
    width: 100%;
}

body.frontend .auth-form .auth-india-phone-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

body.frontend .auth-form .auth-india-dial {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 0.75rem;
    border: 2px solid var(--border-light, #e5e7eb);
    border-radius: var(--radius-md, 8px) 0 0 var(--radius-md, 8px);
    background: var(--bg-white, #fff);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--text-primary, #111827);
    box-sizing: border-box;
}

body.frontend .auth-form .auth-india-phone-row input#register_fallback_mobile {
    flex: 1;
    min-width: 0;
    padding-left: 0.75rem;
    border-radius: 0 var(--radius-md, 8px) var(--radius-md, 8px) 0;
    border-left: none;
}

body.frontend .auth-form input[type="password"] {
    padding-right: 48px; 
}

body.frontend .auth-form input[type="text"]:focus,
body.frontend .auth-form input[type="email"]:focus,
body.frontend .auth-form input[type="tel"]:focus,
body.frontend .auth-form input[type="password"]:focus,
body.frontend .auth-form input[type="number"]:focus,
body.frontend .auth-form select:focus,
body.frontend .auth-form textarea:focus {
    border-color: var(--primary, #0B2578);
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.1);
}

body.frontend .auth-form input::placeholder,
body.frontend .auth-form textarea::placeholder {
    color: var(--text-muted, #9CA3AF);
    opacity: 1;
}

body.frontend .auth-form label {
    display: flex;
    align-items: center;
    font-weight: 600;
    color: #374151;
    margin-bottom: var(--grid-1, 8px);
    font-size: 0.8125rem;
}

body.frontend .auth-form .label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.verify-otp-form {
    width: 100%;
    max-width: 100%;
}

.verify-otp-form .form-group {
    margin-bottom: var(--grid-2, 16px);
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
}

.verify-otp-form input[type="email"],
.verify-otp-form input[type="text"],
.verify-otp-form input[type="number"] {
    
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    
    
    padding: 0.75rem 1rem;
    border: 2px solid var(--border-light, #E5E7EB);
    border-radius: var(--radius-md, 8px);
    font-size: 16px;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    line-height: 1.5;
    color: var(--text-primary, #111827);
    background: var(--bg-white, #FFFFFF);
    
    
    box-sizing: border-box;
    transition: all 0.3s ease;
    margin: 0;
    outline: none;
    
    
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.verify-otp-form input[type="email"]:focus,
.verify-otp-form input[type="text"]:focus,
.verify-otp-form input[type="number"]:focus {
    border-color: var(--primary, #0B2578);
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.1);
}

.verify-otp-form .input-readonly {
    background: rgba(255,255,255,0.08) !important;
    color: inherit !important;
    cursor: not-allowed !important;
    border-color: var(--border-light, #E5E7EB) !important;
}

.verify-otp-message {
    padding: 0.75rem;
    border-radius: 8px;
    margin-bottom: 1rem;
    display: none;
    width: 100%;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1.5;
}

.verify-otp-message.success {
    background: rgba(34, 197, 94, 0.15);
    color: #16a34a;
    border: 1px solid #22c55e;
    display: block;
}

.verify-otp-message.error {
    background: rgba(239, 68, 68, 0.1);
    color: #dc2626;
    border: 1px solid #ef4444;
    display: block;
}

.otp-timer {
    font-size: 0.9rem;
    margin-top: 0.25rem;
    color: var(--text-secondary, #6B7280);
    line-height: 1.4;
}

.otp-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    min-height: 104px; 
}

.otp-actions .btn {
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    border: none;
    outline: none;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    line-height: 1;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
}

.otp-actions .btn.btn-primary {
    background: var(--primary, #0B2578);
    color: #FFFFFF;
    border: 2px solid var(--primary, #0B2578);
}

.otp-actions .btn.btn-primary:hover:not(:disabled) {
    background: var(--secondary, #1A9464);
    border-color: var(--secondary, #1A9464);
    color: #FFFFFF;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(26, 148, 100, 0.3);
}

.otp-actions .btn.btn-outline {
    background: transparent;
    color: var(--primary, #0B2578);
    border: 2px solid var(--primary, #0B2578);
}

.otp-actions .btn.btn-outline:hover:not(:disabled) {
    background: var(--primary, #0B2578);
    color: #FFFFFF;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(11, 37, 120, 0.3);
}

.otp-actions .btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.verify-otp-form label {
    display: block;
    font-weight: 600;
    color: var(--text-primary, #374151);
    font-size: 14px;
    margin-bottom: 0.5rem;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
    line-height: 1.4;
}

@media (max-width: 480px) {
    body.frontend .auth-form input[type="text"]:not(.iti__tel-input),
    body.frontend .auth-form input[type="email"]:not(.iti__tel-input),
    body.frontend .auth-form input[type="tel"]:not(.iti__tel-input),
    body.frontend .auth-form input[type="password"] {
        height: 44px;
        font-size: 16px; 
    }

    body.frontend .auth-form .iti__tel-input,
    body.frontend .auth-form .iti input.iti__tel-input {
        height: 44px;
        min-height: 44px;
        max-height: 44px;
    }
    
    body.frontend .auth-btn {
        width: 100%;
        max-width: none;
        min-width: 0;
        min-height: 44px;
        height: auto;
        padding: 0.625rem 1rem;
    }
    
    body.frontend .auth-form .g-recaptcha {
        width: 100%;
        max-width: 304px;
    }
}

.section-sm { padding: var(--section-padding-sm) 0; }

.section-md { padding: var(--section-padding-md) 0; }

.section-lg { padding: var(--section-padding-lg) 0; }

.section-xl { padding: var(--section-padding-xl) 0; }

.section-top-sm { padding-top: var(--section-padding-sm); }

.section-top-md { padding-top: var(--section-padding-md); }

.section-top-lg { padding-top: var(--section-padding-lg); }

.section-top-xl { padding-top: var(--section-padding-xl); }

.section-bottom-sm { padding-bottom: var(--section-padding-sm); }

.section-bottom-md { padding-bottom: var(--section-padding-md); }

.section-bottom-lg { padding-bottom: var(--section-padding-lg); }

.section-bottom-xl { padding-bottom: var(--section-padding-xl); }

.m-0 { margin: 0; }

.m-auto { margin: 0 auto; }

.mt-0 { margin-top: 0; }

.mt-xs { margin-top: var(--space-xs); }

.mt-sm { margin-top: var(--space-sm); }

.mt-md { margin-top: var(--space-md); }

.mt-lg { margin-top: var(--space-lg); }

.mt-xl { margin-top: var(--space-xl); }

.mb-0 { margin-bottom: 0; }

.mb-xs { margin-bottom: var(--space-xs); }

.mb-sm { margin-bottom: var(--space-sm); }

.mb-md { margin-bottom: var(--space-md); }

.mb-lg { margin-bottom: var(--space-lg); }

.mb-xl { margin-bottom: var(--space-xl); }

.ml-0 { margin-left: 0; }

.ml-auto { margin-left: auto; }

.mr-0 { margin-right: 0; }

.mr-auto { margin-right: auto; }

.p-0 { padding: 0; }

.p-xs { padding: var(--space-xs); }

.p-sm { padding: var(--space-sm); }

.p-md { padding: var(--space-md); }

.p-lg { padding: var(--space-lg); }

.p-xl { padding: var(--space-xl); }

.px-0 { padding-left: 0; padding-right: 0; }

.px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }

.px-sm { padding-left: var(--space-sm); padding-right: var(--space-sm); }

.px-md { padding-left: var(--space-md); padding-right: var(--space-md); }

.px-lg { padding-left: var(--space-lg); padding-right: var(--space-lg); }

.px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }

.py-0 { padding-top: 0; padding-bottom: 0; }

.py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }

.py-sm { padding-top: var(--space-sm); padding-bottom: var(--space-sm); }

.py-md { padding-top: var(--space-md); padding-bottom: var(--space-md); }

.py-lg { padding-top: var(--space-lg); padding-bottom: var(--space-lg); }

.py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }

.gap-0 { gap: 0; }

.gap-xs { gap: var(--space-xs); }

.gap-sm { gap: var(--space-sm); }

.gap-md { gap: var(--space-md); }

.gap-lg { gap: var(--space-lg); }

.gap-xl { gap: var(--space-xl); }

.container-fluid {
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.card-grid,
.services-grid,
.plans-grid {
    gap: var(--grid-gap-md);
}

.form-group {
    margin-bottom: var(--form-gap);
}

.form-control {
    padding: var(--button-padding-y) var(--button-padding-x);
    line-height: 1;
}

.btn {
    padding: var(--button-padding-y) var(--button-padding-x);
    line-height: 1;
}

.btn-group {
    gap: var(--button-gap);
}

h1, h2, h3, h4, h5, h6 {
    margin-bottom: var(--heading-margin);
    line-height: 1;
}

p {
    margin-bottom: var(--paragraph-margin);
    line-height: 1;
}

p:last-child {
    margin-bottom: 0;
}

.about-section,
.services-section,
.choose-your-plan {
    padding: var(--section-padding-lg) 0;
}

@media (max-width: 768px) {
    .about-section,
    .services-section,
    .choose-your-plan {
        padding: var(--section-padding-md) 0;
    }
}

main {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    flex: 1 !important;
}

.about-section,
.services-section,
.testimonials-section {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
}

/* Attribute selectors are broad (paint when class names change) — keep for legacy overflow clipping fixes */
.table-container,
.dashboard-card,
.glass,
[class*="card"],
[class*="wrapper"] {
    overflow: visible !important;
}

.service-card,
.product-card,
.testimonial-card {
    overflow: visible !important;
}

/* WebKit scrollbar (properties on html {} above — Firefox scrollbar-width / color) */
html::-webkit-scrollbar {
    width: 8px;
}

html::-webkit-scrollbar-track {
    background: rgba(241, 245, 249, 0.5);
    border-radius: 4px;
}

html::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

html::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, #2563eb 0%, #059669 100%);
}

.hero-section {
    background: linear-gradient(135deg, #F8FAFF 0%, #FFFFFF 50%, #F0FDF4 100%);
    padding: 40px 0 90px;
    position: relative;
    overflow: hidden;
    min-height: 70vh;
    display: flex;
    align-items: center;
}

@media (max-width: 767px) {
    .hero-section {
        padding-top: 32px;
    }
}

.hero-content-centered {
    text-align: center;
    max-width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    animation: heroFadeIn 1s ease-out;
    padding: 0 var(--container-padding, 1rem);
}

@media (min-width: 768px) {
    .hero-content-centered {
        max-width: 1000px;
        padding: 0;
    }
}

@media (min-width: 1440px) {
    .hero-content-centered {
        max-width: 1200px;
    }
}

@media (min-width: 1920px) {
    .hero-content-centered {
        max-width: 1400px;
    }
}

.hero-headline {
    font-family: var(--font-display, "Inter", -apple-system, sans-serif);
    font-size: 64px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 16px;
    display: inline-block;
    visibility: visible;
    opacity: 1;
    position: relative;
    z-index: 10;
}

.hero-headline .heading-primary {
    color: #193784;
    display: inline-block;
    visibility: visible;
    opacity: 1;
}

.hero-headline .heading-accent {
    color: #218E63;
    display: inline-block;
    visibility: visible;
    opacity: 1;
}

.hero-subheading {
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-secondary, #6B7280);
    margin: 0 auto 24px auto;
    max-width: 620px;
    font-weight: 400;
}

@media (min-width: 768px) {
    .hero-subheading {
        max-width: 700px;
    }
}

.hero-stats {
    display: flex;
    justify-content: center;
    gap: 32px;
    margin-bottom: 24px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.stat-item {
    text-align: center;
    padding: 0.5rem 0;
}

.stat-number {
    font-family: var(--font-display, "Inter", -apple-system, sans-serif);
    font-size: clamp(2rem, 5vw, 2.5rem);
    font-weight: 800;
    color: var(--primary, #0B2578);
    line-height: 1;
    margin-bottom: 0.5rem;
    letter-spacing: -0.025em;
}

.stat-label {
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: clamp(0.875rem, 2vw, 1rem);
    color: var(--text-secondary, #6B7280);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
}

@media (max-width: 768px) {
    .hero-section {
        padding: 24px 0 48px;
    }
    
    .hero-headline {
        font-size: clamp(2rem, 8vw, 48px);
        margin-bottom: 12px;
    }
    
    .hero-subheading {
        font-size: 16px;
        margin: 0 auto 20px auto;
        max-width: 100%;
        padding: 0 1rem;
    }
    
    .hero-stats {
        grid-template-columns: 1fr;
        gap: 20px;
        max-width: 300px;
        margin-bottom: 20px;
    }
    
    .hero-cta-group {
        gap: 12px;
        margin-top: 0;
        padding: 0 1rem;
        flex-direction: column;
        align-items: stretch;
    }

    .hero-cta-group .btn-cta-primary,
    .hero-cta-group .btn-cta-secondary {
        width: 100%;
        justify-content: center;
        max-width: 320px;
        margin: 0 auto;
    }

    .btn-cta-primary,
    .btn-cta-secondary {
        padding: var(--button-padding-y, 1rem) var(--button-padding-x, 2rem);
        font-size: clamp(0.875rem, 2.5vw, 16px);
        min-height: 48px;
    }
    
    .stat-item {
        padding: 0.75rem 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }
    
    .stat-item:last-child {
        border-bottom: none;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .hero-section {
        padding: 28px 0 56px;
    }
    
    .hero-headline {
        font-size: 56px;
    }
    
    .hero-subheading {
        font-size: 17px;
        max-width: 520px;
    }
    
    .hero-stats {
        gap: 28px;
        max-width: 500px;
    }
    
    .hero-cta-group {
        gap: 14px;
    }
}

.hero-cta-group {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 16px;
    flex-wrap: wrap;
}

.btn-cta-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 2.5vw, 18px) clamp(2rem, 4vw, 36px);
    background: linear-gradient(135deg, #0f6b47 0%, var(--secondary, #1a9464) 48%, #1fb575 100%);
    color: var(--text-white, #FFFFFF);
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: clamp(1rem, 2.5vw, 18px);
    font-weight: 600;
    border-radius: 12px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    gap: 0.75rem;
    min-height: 52px;
    box-shadow: 0 4px 16px rgba(22, 101, 52, 0.32);
    line-height: 1;
}

.btn-cta-primary i {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.btn-cta-primary:hover {
    background: linear-gradient(135deg, var(--secondary, #1a9464) 0%, var(--success, #16a34a) 55%, #34d399 100%);
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(34, 197, 94, 0.38);
}

.btn-cta-primary:hover i {
    transform: translateX(2px);
}

.btn-cta-primary:active {
    transform: translateY(-1px);
}

.btn-cta-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 2.5vw, 18px) clamp(2rem, 4vw, 36px);
    background: transparent;
    color: var(--primary, #0B2578);
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: clamp(1rem, 2.5vw, 18px);
    font-weight: 600;
    border-radius: 12px;
    border: 2px solid var(--primary, #0B2578);
    cursor: pointer;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    gap: 0.75rem;
    min-height: 52px; 
    line-height: 1;
}

.btn-cta-secondary i {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.btn-cta-secondary:hover {
    color: var(--secondary, #1A9464);
    border-color: var(--secondary, #1A9464);
    background: rgba(26, 148, 100, 0.04);
    transform: translateY(-3px);
}

.btn-cta-secondary:hover i {
    transform: translateX(2px);
}

.btn-cta-secondary:active {
    transform: translateY(-1px);
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(11, 37, 120, 0.08);
    border: 1px solid rgba(11, 37, 120, 0.16);
    border-radius: 50px;
    padding: var(--spacing-xs, 0.25rem) var(--spacing-sm, 0.5rem);
    margin-bottom: var(--hero-element-gap, var(--spacing-lg, 1.5rem));
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
}

.hero-badge:hover {
    background: rgba(11, 37, 120, 0.12);
    transform: translateY(-2px);
}

.badge-icon {
    font-size: 1rem;
    line-height: 1;
}

.badge-text {
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--primary, #0B2578);
    letter-spacing: 0.025em;
}

.hero-trust {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-lg, 1.5rem);
    flex-wrap: wrap;
    opacity: 0.8;
}

.trust-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-body, "Inter", -apple-system, sans-serif);
    font-size: clamp(0.875rem, 2vw, 1rem);
    color: var(--text-secondary, #6B7280);
    font-weight: 500;
    line-height: 1;
}

.trust-icon {
    width: 16px;
    height: 16px;
    color: var(--secondary, #1A9464);
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .hero-trust {
        gap: clamp(1.5rem, 4vw, 2rem);
        flex-direction: column;
        text-align: center;
    }
    
    .trust-item {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
    }
}

@media (max-width: 480px) {
    .hero-section {
        padding: 20px 0 40px;
    }

    .hero-headline {
        font-size: clamp(1.75rem, 5vw, 36px);
    }
    
    .hero-subheading {
        font-size: clamp(0.875rem, 2.5vw, 16px);
    }
    
    .stat-number {
        font-size: clamp(1.5rem, 4vw, 2rem);
    }
    
    .btn-cta-primary,
    .btn-cta-secondary {
        padding: var(--button-padding-y, 1rem) var(--button-padding-x, 2rem);
        font-size: clamp(0.75rem, 2.5vw, 15px);
        min-height: 44px;
    }
}

@keyframes heroFadeIn {
    from { 
        opacity: 0; 
        transform: translateY(20px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-content-centered {
        animation: none;
    }
    
    .btn-cta-primary,
    .btn-cta-secondary,
    .hero-badge {
        transition: none;
    }
    
    .btn-cta-primary:hover,
    .btn-cta-secondary:hover,
    .hero-badge:hover {
        transform: none;
    }
}

.card-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    margin: 0 auto 1.25rem;
    border-radius: 50%;
    background: rgba(11, 37, 120, 0.08);
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1;
}

.card-icon-wrap i,
.card-icon-wrap svg {
    width: 28px;
    height: 28px;
    color: #0B2578;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
}

.card-icon-wrap svg {
    display: block;
}

.user-layout .services-section .card-icon-wrap,
.user-layout .choose-your-plan .card-icon-wrap {
    width: 56px;
    height: 56px;
}

.user-layout .services-section .service-card:nth-child(1) .card-icon-wrap {
    background: rgba(11, 37, 120, 0.08);
}

.user-layout .services-section .service-card:nth-child(1) .card-icon-wrap i,
.user-layout .services-section .service-card:nth-child(1) .card-icon-wrap svg {
    color: #0B2578;
}

.user-layout .services-section .service-card:nth-child(2) .card-icon-wrap {
    background: rgba(107, 114, 128, 0.08);
}

.user-layout .services-section .service-card:nth-child(2) .card-icon-wrap i,
.user-layout .services-section .service-card:nth-child(2) .card-icon-wrap svg {
    color: #6B7280;
}

.user-layout .services-section .service-card:nth-child(3) .card-icon-wrap {
    background: rgba(22, 163, 74, 0.08);
}

.user-layout .services-section .service-card:nth-child(3) .card-icon-wrap i,
.user-layout .services-section .service-card:nth-child(3) .card-icon-wrap svg {
    color: #16A34A;
}

.user-layout .services-section .service-card:nth-child(4) .card-icon-wrap {
    background: rgba(71, 85, 105, 0.08);
}

.user-layout .services-section .service-card:nth-child(4) .card-icon-wrap i,
.user-layout .services-section .service-card:nth-child(4) .card-icon-wrap svg {
    color: #475569;
}

.user-layout .services-section .service-card:hover .card-icon-wrap,
.user-layout .choose-your-plan .plan-card:hover .card-icon-wrap {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    .card-icon-wrap,
    .user-layout .services-section .service-card:hover .card-icon-wrap,
    .user-layout .choose-your-plan .plan-card:hover .card-icon-wrap {
        transition: none;
        transform: none;
    }
}

/* Duplicate universal reset removed: it zeroed heading margins and stripped form borders late in the cascade. */

img {
    max-width: 100%;
    height: auto;
}

:focus:not(:focus-visible) {
    outline: none;
}

:focus-visible {
    outline: 2px solid #0b2578;
    outline-offset: 2px;
}

button, .btn {
    text-decoration: none;
}

button a, .btn a {
    text-decoration: none;
}

.back-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 50px;
    height: 50px;
    background: var(--primary, #0B2578);
    color: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    box-shadow: 0 4px 12px rgba(11, 37, 120, 0.3);
    /* Above .new-header chrome (~10040) so the control stays reachable */
    z-index: 1100;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition:
        opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        visibility 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.back-to-top:hover {
    background: var(--primary-hover, #1A9464);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(11, 37, 120, 0.4);
}

.back-to-top:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(11, 37, 120, 0.3);
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top::before {
    content: "↑";
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
}

@media (max-width: 768px) {
    .back-to-top {
        bottom: 1.5rem;
        right: 1.5rem;
        width: 45px;
        height: 45px;
        font-size: 16px;
    }
    
    .back-to-top::before {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .back-to-top {
        bottom: 1rem;
        right: 1rem;
        width: 40px;
        height: 40px;
        font-size: 14px;
    }
    
    .back-to-top::before {
        font-size: 16px;
    }
}

.back-to-top:focus-visible {
    outline: 2px solid var(--primary, #0B2578);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .back-to-top {
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    .back-to-top:hover {
        transform: none;
    }
}

/* Footer — classic desktop grid: brand + 4 link columns (restored) */
.footer-new {
    background: #f5f5f5;
    padding: 60px 0 20px;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: #333;
}

.footer-new-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.footer-new-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

.footer-new-brand {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.footer-new-brand-title {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    margin: 0;
    letter-spacing: -0.5px;
}

.footer-new-brand-description {
    font-size: 14px;
    line-height: 1.6;
    color: #666;
    margin: 0;
    max-width: 300px;
}

.footer-new-social-icons {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.footer-new-social-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
    border: 1px solid rgba(0, 0, 0, 0.07);
    flex-shrink: 0;
    color: #1d1d1f;
}

.footer-new-social-icon:hover {
    background: rgba(0, 102, 204, 0.1);
    transform: translateY(-2px);
    border-color: rgba(0, 102, 204, 0.2);
    color: #0066cc;
}

.footer-new-social-icon i {
    width: 15px;
    height: 15px;
    transition: color 0.2s ease;
}

.footer-new-social-icon svg {
    width: 15px;
    height: 15px;
    fill: #1d1d1f;
    transition: fill 0.2s ease;
}

.footer-new-social-icon:hover svg {
    fill: #0066cc;
}

.footer-new-column h4 {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin: 0 0 16px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.footer-new-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-new-column ul li {
    margin-bottom: 12px;
}

.footer-new-column ul li a {
    color: #666;
    text-decoration: none;
    font-size: 14px;
    line-height: 1.5;
    transition: color 0.3s ease;
}

.footer-new-column ul li a:hover {
    color: #333;
}

.footer-new-bottom {
    border-top: 1px solid #e0e0e0;
    padding-top: 20px;
    text-align: center;
}

.footer-new-bottom p {
    font-size: 13px;
    color: #666;
    margin: 0;
}

@media (max-width: 1024px) {
    .footer-new-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 30px;
    }

    .footer-new-brand {
        grid-column: 1 / 2;
        grid-row: 1;
    }

    .footer-new-column:nth-child(2) {
        grid-column: 2 / 3;
        grid-row: 1;
    }

    .footer-new-column:nth-child(3) {
        grid-column: 3 / 4;
        grid-row: 1;
    }

    .footer-new-column:nth-child(4) {
        grid-column: 1 / 2;
        grid-row: 2;
    }

    .footer-new-column:nth-child(5) {
        grid-column: 2 / 3;
        grid-row: 2;
    }
}

/* ---------- Mobile only: footer + contact (max-width: 768px) ---------- */
@media (max-width: 768px) {
    .footer-new {
        padding: 40px 0 20px;
    }

    .footer-new-container {
        padding: 0 16px;
    }

    .footer-new-grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 28px;
        margin-bottom: 32px;
    }

    .footer-new-brand {
        width: 100%;
        max-width: 100%;
        align-items: center;
        text-align: center;
    }

    .footer-new-brand-title {
        text-align: center;
    }

    .footer-new-brand-description {
        max-width: 28rem;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .footer-new-social-icons {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        gap: 12px;
        width: 100%;
        margin-top: 12px;
    }

    .footer-new-social-icon {
        flex-shrink: 0;
    }

    .footer-new-column {
        width: 100%;
        max-width: 100%;
        text-align: left;
        align-self: stretch;
    }

    .footer-new-column h4 {
        text-align: left;
    }

    .footer-new-column ul {
        width: 100%;
    }

    body.frontend.public-portal .contact-section {
        padding: var(--grid-4, 32px) 0;
    }

    body.frontend.public-portal .contact-container {
        padding: 0 var(--page-gutter, 16px);
    }

    body.frontend.public-portal .contact-content {
        grid-template-columns: 1fr;
        gap: var(--grid-3, 24px);
    }

    body.frontend.public-portal .contact-info,
    body.frontend.public-portal .contact-form {
        padding: var(--grid-3, 24px);
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    body.frontend.public-portal .contact-info h3 {
        text-align: center;
    }

    body.frontend.public-portal .contact-section .form-row {
        grid-template-columns: 1fr;
        gap: var(--grid-2, 16px);
    }

    body.frontend.public-portal .contact-item {
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        text-align: center;
        padding: var(--grid-2, 16px);
        width: 100%;
    }

    body.frontend.public-portal .contact-icon {
        width: 44px;
        height: 44px;
        margin: 0 auto;
    }

    body.frontend.public-portal .contact-icon svg {
        width: 22px;
        height: 22px;
    }

    body.frontend.public-portal .contact-details {
        width: 100%;
        text-align: center;
    }

    body.frontend.public-portal .contact-details h4,
    body.frontend.public-portal .contact-details p {
        text-align: center;
    }
}

@media (max-width: 480px) {
    .footer-new-brand-description {
        max-width: 100%;
    }
}

.phone-input-group {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.phone-input-group .country-code {
    flex-shrink: 0;
    min-width: 108px;
    padding: 0 0.75rem;
    border: 2px solid #e5e7eb;
    border-radius: var(--radius-form, 10px) 0 0 var(--radius-form, 10px);
    background: var(--bg-white, #ffffff);
    color: var(--text-primary, #374151);
    font-size: 0.875rem;
    font-weight: 500;
    height: var(--field-height, 48px);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.phone-input-group .country-code:focus {
    outline: none;
    border-color: var(--primary-color, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.phone-input-group input[name="mobile"] {
    flex: 1;
    padding: 0 0.75rem;
    border: 2px solid #e5e7eb;
    border-left: none;
    border-radius: 0 var(--radius-form, 10px) var(--radius-form, 10px) 0;
    background: var(--bg-white, #ffffff);
    color: var(--text-primary, #374151);
    font-size: 1rem;
    height: var(--field-height, 48px);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    font-family: "Plus Jakarta Sans", "Inter", sans-serif;
}

.phone-input-group input[name="mobile"]:focus {
    outline: none;
    border-color: var(--primary-color, #2563eb);
    border-left: none;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.phone-input-group input[name="mobile"]::placeholder {
    color: var(--text-muted, #9ca3af);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.phone-input-group .country-code,
.phone-input-group input[name="mobile"] {
    box-sizing: border-box;
    vertical-align: middle;
}

.phone-input-group.has-error .country-code,
.phone-input-group.has-error input[name="mobile"] {
    border-color: var(--error-color, #dc2626);
}

.phone-input-group.has-error .country-code:focus,
.phone-input-group.has-error input[name="mobile"]:focus {
    border-color: var(--error-color, #dc2626);
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

.phone-input-group.has-success .country-code,
.phone-input-group.has-success input[name="mobile"] {
    border-color: var(--success-color, #16a34a);
}

.phone-input-group.has-success .country-code:focus,
.phone-input-group.has-success input[name="mobile"]:focus {
    border-color: var(--success-color, #16a34a);
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

@media (max-width: 768px) {
    .phone-input-group {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }

    .phone-input-group .country-code {
        min-width: auto;
        width: 100%;
        border-radius: 8px;
        height: 48px;
    }

    .phone-input-group input[name="mobile"] {
        border-left: 1px solid var(--border-color, #e5e7eb);
        border-radius: 8px;
        height: 48px;
    }

    .phone-input-group .country-code:focus,
    .phone-input-group input[name="mobile"]:focus {
        border-radius: 8px;
    }
}

@media (max-width: 480px) {
    .phone-input-group .country-code,
    .phone-input-group input[name="mobile"] {
        height: 52px;
        font-size: 1rem;
        padding: 1rem;
    }
}

.btn-cancel,
button.btn-cancel,
.cancel-btn-clean {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0.75rem 1.5rem;
    background: #f8fafc;
    color: #64748b;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    text-decoration: none;
    box-sizing: border-box;
    line-height: 1;
}

.btn-cancel:hover,
.cancel-btn-clean:hover {
    background: #f1f5f9;
    border-color: #cbd5e0;
    color: #475569;
}

.btn-cancel:focus-visible,
.cancel-btn-clean:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
/* ==========================================================================
   CONSOLIDATED PUBLIC WEBSITE CSS - TradeSignals
   Production-Quality SaaS Landing Pages
   Mobile-First: 320px → 1920px+
   ========================================================================== */

/* =========================
   ARCHITECTURE (load order: after shared.css; user.css may override on /user/*)
   SCOPING — Prefer body.frontend …; marketing-only rules use body.frontend.public-portal …
             (layout adds .public-portal except on /user/* and /signals to prevent leakage).
   SECTIONS — See numbered blocks in-file (1→10). Physical order groups marketing before services grid.
   ========================= */

/* ==========================================================================
   CSS RESET - Cross-browser consistency
   ========================================================================== */
/* CSS Reset styles are now integrated into shared.css */

/* ==========================================================================
   SPACING SYSTEM - Responsive foundation
   ========================================================================== */
/* Spacing system styles are now integrated into shared.css */

/* ==========================================================================
   ANIMATIONS - Motion library
   ========================================================================== */
/* Animation styles are now integrated into shared.css */

/* ==========================================================================
   MODERN THEME - Main theme system
   ========================================================================== */
/* Modern theme styles are now integrated into shared.css */

/* ==========================================================================
   FRONTEND THEME - STRICT 2-COLOR SYSTEM: Blue + Green + White ONLY - RESPONSIVE
   Applied ONLY to public website, NOT admin panel
   ========================================================================== */

/* Brand Variables - STRICT 2-COLOR */
:root {
  --brand-blue: #0B2578;
  --brand-green: #1A9464;
  --brand-white: #FFFFFF;
  
  /* Responsive Typography */
  --text-xs-mobile: clamp(0.75rem, 2vw, 0.875rem);
  --text-sm-mobile: clamp(0.875rem, 2.5vw, 1rem);
  --text-base-mobile: clamp(1rem, 3vw, 1.125rem);
  --text-lg-mobile: clamp(1.125rem, 3.5vw, 1.25rem);
  --text-xl-mobile: clamp(1.25rem, 4vw, 1.5rem);
  --text-2xl-mobile: clamp(1.5rem, 5vw, 2rem);
  --text-3xl-mobile: clamp(2rem, 6vw, 3rem);
  --text-4xl-mobile: clamp(3rem, 7vw, 4rem);
  
  /* Responsive Spacing */
  --spacing-xs-mobile: clamp(0.25rem, 1vw, 0.5rem);
  --spacing-sm-mobile: clamp(0.5rem, 1.5vw, 1rem);
  --spacing-md-mobile: clamp(1rem, 2vw, 1.5rem);
  --spacing-lg-mobile: clamp(1.5rem, 3vw, 2rem);
  --spacing-xl-mobile: clamp(2rem, 4vw, 3rem);
  --spacing-2xl-mobile: clamp(3rem, 5vw, 4rem);
}

/* ==========================================================================
   FRONTEND SPECIFIC STYLES
   ========================================================================== */

/* Scope all styles to frontend body */
body.frontend {
  /* Base styles - ONLY WHITE BACKGROUND */
  background-color: #FFFFFF;
  color: #0B2578;
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
}

/* ==========================================================================
   1) HEADER & NAV — body.frontend
   ========================================================================== */

/* Header — floating pill; glass via ::before (opacity anim avoids backdrop-filter jank) */
body.frontend .new-header {
    position: fixed;
    top: 0;
    left: 50%;
    right: auto;
    z-index: 10040;
    width: min(72rem, calc(100% - 1.5rem));
    max-width: calc(100% - 1.5rem);
    margin: 0;
    padding: max(0.35rem, env(safe-area-inset-top, 0px)) 0.5rem 0.35rem;
    box-sizing: border-box;
    transform: translateX(-50%);
    background: transparent;
    border: 1px solid rgba(15, 23, 42, 0.07);
    border-radius: 9999px;
    box-shadow: 0 2px 16px rgba(15, 23, 42, 0.04);
    isolation: isolate;
    transition:
        border-color 0.45s cubic-bezier(0.32, 0.72, 0, 1),
        box-shadow 0.45s cubic-bezier(0.32, 0.72, 0, 1);
}

body.frontend .new-header::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: 0;
    pointer-events: none;
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: saturate(185%) blur(22px);
    -webkit-backdrop-filter: saturate(185%) blur(22px);
    opacity: 0;
    transition: opacity 0.45s cubic-bezier(0.32, 0.72, 0, 1);
}

body.frontend .new-header.scrolled::before {
    opacity: 1;
}

body.frontend .new-header.scrolled {
    border-color: rgba(255, 255, 255, 0.42);
    box-shadow:
        0 10px 40px rgba(15, 23, 42, 0.1),
        0 1px 0 rgba(255, 255, 255, 0.65) inset;
}

body.frontend .new-header > * {
    position: relative;
    z-index: 1;
}

body.frontend .new-header-container {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0 0.375rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: clamp(0.5rem, 2vw, 1rem);
    min-height: 40px;
}

body.frontend .new-header-container .brand-logo {
    font-size: 1rem;
    gap: 0.5rem;
}

body.frontend .new-header-container .logo-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    font-size: 14px;
}

body.frontend .new-header .new-header-nav-link {
    padding: 0.35rem 0.65rem;
    font-size: 0.8125rem;
}

body.frontend .new-header .new-header-btn {
    min-height: 40px;
    padding: 0.4rem 0.875rem;
    font-size: 0.8125rem;
}

body.frontend .new-header .profile-btn {
    min-height: 40px;
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
}

body.frontend .new-header .new-header-mobile-toggle {
    width: 40px;
    height: 40px;
}

body.frontend .new-header .profile-icon,
body.frontend .new-header .profile-arrow {
    width: 15px;
    height: 15px;
}

/* Premium Brand Logo */
body.frontend .brand-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 18px;
    text-decoration: none;
    color: #1a202c;
    transition: all 0.3s ease;
}

body.frontend .brand-logo:hover {
    transform: translateY(-2px);
}

body.frontend .logo-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, #2563EB, #16A34A);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 16px;
    transition: all 0.3s ease;
}

body.frontend .brand-logo:hover .logo-icon {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

body.frontend .brand-text {
    background: linear-gradient(90deg, #2563EB, #16A34A);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    transition: all 0.3s ease;
}

body.frontend .brand-logo:hover .brand-text {
    background: linear-gradient(90deg, #1d4ed8, #15803d);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}


/* Navigation Links - Floating Pills */
body.frontend .new-header-nav {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    justify-content: center;
}

body.frontend .new-header-nav-link {
    color: #4b5563;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.875rem;
    padding: 0.45rem 0.85rem;
    border-radius: var(--radius-form, 10px);
    transition:
        background-color var(--transition-fast, 0.2s ease),
        color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease);
    background: transparent;
    border: 1px solid transparent;
    white-space: nowrap;
}

body.frontend .new-header-nav-link:hover {
    color: #111827;
    background: var(--surface-variant, #f3f4f6);
}

body.frontend .new-header-nav-link.active {
    color: #fff;
    background: var(--primary, #0b2578);
    border-color: rgba(11, 37, 120, 0.2);
    box-shadow: 0 1px 2px rgba(11, 37, 120, 0.12);
}

body.frontend .new-header-nav-link.active:hover {
    background: var(--primary-dark, #081d5c);
    color: #fff;
}

/* Action Buttons - Rounded Rectangle */
body.frontend .new-header-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem 0.625rem;
}

body.frontend .new-header-btn {
    padding: 0.5rem 1rem;
    border-radius: var(--radius-form, 10px);
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        color var(--transition-fast, 0.2s ease),
        border-color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 44px;
    border: 1px solid transparent;
    background: transparent;
    box-sizing: border-box;
}

body.frontend .new-header-btn-primary {
    background: #193784;
    color: white;
    border: 1px solid rgba(25, 55, 132, 0.3);
}

body.frontend .new-header-btn-primary:hover {
    background: #152e6d;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(25, 55, 132, 0.3);
}

/* Dashboard CTA — brand green; hover stays green (--secondary-hover token is navy, do not use here) */
body.frontend .new-header .new-header-btn.btn-dashboard,
body.frontend .new-header-mobile-menu-actions .new-header-btn.btn-dashboard {
    background-color: #16a34a;
    border-color: #16a34a;
    color: #ffffff;
}

body.frontend .new-header .new-header-btn.btn-dashboard:hover,
body.frontend .new-header .new-header-btn.btn-dashboard:focus-visible,
body.frontend .new-header-mobile-menu-actions .new-header-btn.btn-dashboard:hover,
body.frontend .new-header-mobile-menu-actions .new-header-btn.btn-dashboard:focus-visible {
    background-color: #15803d;
    border-color: #15803d;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(22, 163, 74, 0.35);
}

body.frontend .new-header-btn-secondary {
    background: rgba(255, 255, 255, 0.8);
    color: #4a5568;
    border: 1px solid rgba(102, 126, 234, 0.2);
}

body.frontend .new-header-btn-secondary:hover {
    background: rgba(255, 255, 255, 0.95);
    color: #1a202c;
    transform: translateY(-2px);
    border-color: rgba(102, 126, 234, 0.3);
}

/* --------------------------------------------------------------------------
   Account — rounded chip (matches legacy header + .dashboard-action-btn)
   -------------------------------------------------------------------------- */

body.frontend .profile-dropdown {
    position: relative;
    display: inline-block;
}

body.frontend .profile-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-form, 10px);
    color: #6b7280;
    font-weight: 500;
    font-size: 0.875rem;
    cursor: pointer;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        color var(--transition-fast, 0.2s ease),
        border-color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease),
        transform var(--transition-fast, 0.2s ease);
    text-decoration: none;
    font-family: inherit;
    min-height: 44px;
    box-sizing: border-box;
    line-height: 1.2;
}

body.frontend .profile-btn:hover {
    background: #ffffff;
    color: #2563eb;
    transform: translateY(-1px);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    border-color: #2563eb;
}

body.frontend .profile-dropdown.is-open .profile-btn {
    background: #ffffff;
    color: #2563eb;
    border-color: #2563eb;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

body.frontend .profile-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

body.frontend .profile-arrow {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

body.frontend .profile-dropdown:not(.is-open) .profile-btn:hover .profile-arrow {
    transform: translateY(1px);
}

body.frontend .profile-dropdown.is-open .profile-arrow {
    transform: rotate(180deg);
}

body.frontend .profile-menu {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 0.5rem;
    width: min(320px, calc(100vw - 2rem));
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 0, 0, 0.1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition:
        opacity 0.25s ease,
        visibility 0.25s ease,
        transform 0.25s ease;
    z-index: 1100;
}

body.frontend .profile-menu.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

body.frontend .profile-user-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #f1f5f9;
    gap: 0.75rem;
}

body.frontend .profile-user-icon {
    width: 32px;
    height: 32px;
    background: #eff6ff;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

body.frontend .profile-user-icon i {
    width: 16px;
    height: 16px;
    color: #2563eb;
}

body.frontend .profile-user-name {
    font-weight: 600;
    font-size: 0.9375rem;
    color: #1e293b;
    text-align: left;
    flex: 1;
    min-width: 0;
    word-break: break-word;
    line-height: 1.35;
}

body.frontend .profile-divider {
    height: 1px;
    background: #f1f5f9;
}

body.frontend .profile-actions {
    padding: 0.5rem;
}

body.frontend .profile-logout-form,
body.frontend .mobile-logout-form {
    margin: 0;
    display: block;
    width: 100%;
}

body.frontend .profile-logout-form button[type="submit"],
body.frontend .mobile-logout-form button[type="submit"] {
    font-family: inherit;
}

body.frontend .profile-action-btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: #1e293b;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
    text-decoration: none;
    box-sizing: border-box;
    text-align: left;
}

body.frontend .profile-action-btn:hover {
    background: #f8fafc;
    color: #1e293b;
}

body.frontend .profile-action-btn.logout-btn {
    color: #dc2626;
}

body.frontend .profile-action-btn.logout-btn:hover {
    background: #fef2f2;
    color: #b91c1c;
}

body.frontend .profile-action-btn i {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* Mobile drawer: full-width pill + panel */
body.frontend .new-header-mobile-menu-actions .profile-dropdown--mobile {
    width: 100%;
}

body.frontend .new-header-mobile-menu-actions .profile-dropdown--mobile .profile-btn {
    width: 100%;
    justify-content: center;
    border-radius: var(--radius-form, 10px);
}

body.frontend .new-header-mobile-menu-actions .profile-dropdown--mobile .profile-menu {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
    margin-top: 0.5rem;
    transform: none;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

body.frontend .new-header-mobile-menu-actions .profile-dropdown--mobile .profile-menu:not(.active) {
    display: none;
}

body.frontend .new-header-mobile-menu-actions .profile-dropdown--mobile .profile-menu.active {
    display: block;
    opacity: 1;
    visibility: visible;
}

@media (max-width: 768px) {
    body.frontend .profile-menu {
        width: min(300px, calc(100vw - 2rem));
    }
}

/* Mobile menu toggle — 44px touch target */
body.frontend .new-header-mobile-toggle {
    display: none;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: transparent;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: var(--radius-form, 10px);
    cursor: pointer;
    padding: 0;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        border-color var(--transition-fast, 0.2s ease);
}

body.frontend .new-header-mobile-toggle:hover {
    background: var(--surface-variant, #f9fafb);
    border-color: rgba(11, 37, 120, 0.12);
}

body.frontend .new-header-mobile-toggle span {
    width: 20px;
    height: 2px;
    background: #374151;
    border-radius: 1px;
    transition: transform 0.25s ease, opacity 0.2s ease;
}

/* Close control inside overlay — hamburger → X */
#newHeaderMobileMenuClose span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

#newHeaderMobileMenuClose span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

#newHeaderMobileMenuClose span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile menu — full-viewport overlay */
body.frontend .new-header-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    flex-direction: column;
    padding: var(--grid-2, 16px);
    padding-top: max(var(--grid-2, 16px), env(safe-area-inset-top));
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    transition:
        transform 0.32s cubic-bezier(0.32, 0.72, 0, 1),
        opacity 0.28s ease,
        visibility 0.28s ease;
    overflow-y: auto;
}

body.frontend .new-header-mobile-menu.active {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
    body.frontend .new-header-mobile-menu {
        transition: opacity 0.2s ease, visibility 0.2s ease;
        transform: none;
    }

    body.frontend .new-header-mobile-menu.active {
        transform: none;
    }
}

body.frontend .new-header-mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: var(--grid-2, 16px);
    margin-bottom: var(--grid-2, 16px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    flex-shrink: 0;
}

body.frontend .new-header-mobile-menu-header .new-header-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 1.0625rem;
    color: #111827;
}

body.frontend .new-header-mobile-menu-header .new-header-mobile-toggle {
    display: flex;
}

body.frontend .new-header-mobile-menu-nav {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: var(--grid-1, 8px);
    padding: var(--grid-2, 16px) 0;
    min-height: min(40vh, 280px);
}

body.frontend .new-header-mobile-menu-nav a {
    color: #111827;
    text-decoration: none;
    font-size: 1.0625rem;
    font-weight: 600;
    padding: 14px var(--grid-2, 16px);
    border-radius: var(--radius-form, 10px);
    text-align: center;
    transition:
        background-color var(--transition-fast, 0.2s ease),
        color var(--transition-fast, 0.2s ease);
}

body.frontend .new-header-mobile-menu-nav a:hover {
    background: var(--surface-variant, #f3f4f6);
}

body.frontend .new-header-mobile-menu-nav a.active {
    background: rgba(11, 37, 120, 0.08);
    color: var(--primary, #0b2578);
    box-shadow: inset 0 0 0 1px rgba(11, 37, 120, 0.12);
}

body.frontend .new-header-mobile-menu-actions {
    display: flex;
    flex-direction: column;
    gap: var(--grid-1, 8px);
    margin-top: auto;
    padding-top: var(--grid-2, 16px);
    padding-bottom: env(safe-area-inset-bottom);
}

body.frontend .new-header-mobile-menu-actions .new-header-btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    border-radius: var(--radius-form, 10px);
}

/* Responsive — hide desktop nav on small screens */
@media (max-width: 768px) {
    body.frontend .new-header-nav {
        display: none;
    }

    body.frontend .new-header-actions {
        display: none;
    }

    body.frontend .new-header-mobile-toggle {
        display: flex;
    }

    /* Win specificity over .new-header .new-header-mobile-toggle { 40px } — 48px touch target, above chrome */
    body.frontend .new-header .new-header-mobile-toggle {
        display: flex;
        width: 48px;
        min-width: 48px;
        height: 48px;
        min-height: 48px;
        position: relative;
        z-index: 3;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
        align-items: center;
        justify-content: center;
    }

    body.frontend .new-header-mobile-menu-header .new-header-mobile-toggle {
        width: 48px;
        min-width: 48px;
        height: 48px;
        min-height: 48px;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    body.frontend .new-header-mobile-menu {
        min-height: 100vh;
        max-height: 100vh;
        min-height: 100dvh;
        max-height: 100dvh;
        box-sizing: border-box;
        overflow: hidden;
    }

    body.frontend .new-header-mobile-menu-nav {
        justify-content: flex-start;
        min-height: 0;
        flex: 1 1 auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }
}

@media (max-width: 480px) {
    body.frontend .new-header {
        width: calc(100% - 1rem);
        max-width: none;
        padding: max(0.28rem, env(safe-area-inset-top, 0px)) 0.4rem 0.28rem;
    }
}

/* ==========================================================================
   2) LAYOUT — offset for fixed header (all portal pages using user-layout)
   ========================================================================== */

/* Main content clears fixed header */
body.user-layout {
    padding-top: 70px;
}

@media (max-width: 768px) {
    body.user-layout {
        padding-top: 64px;
    }
}

@media (max-width: 480px) {
    body.user-layout {
        padding-top: 58px;
    }
}

/* ==========================================================================
   4) MARKETING — ABOUT (public-portal only)
   ========================================================================== */

/* About Section */
body.frontend.public-portal .about-section {
    padding: var(--section-padding-lg) 0;
    background: #f8fafc;
    border-radius: 24px;
    padding: 80px 60px;
    position: relative;
    overflow: hidden;
}

/* Subtle background pattern */
body.frontend.public-portal .about-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: 
        linear-gradient(rgba(59, 130, 246, 0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.02) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    z-index: 0;
}

/* Centered Heading */
body.frontend.public-portal .about-heading-centered {
    text-align: center;
    margin-bottom: var(--space-lg);
    position: relative;
    z-index: 1;
}

body.frontend.public-portal .about-hero-headline {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 42px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    margin: 0 0 24px 0;
    display: inline-block;
}


/* Refined Content Grid - Left (Paragraph + Cards) + Right (Live Signal) */
body.frontend.public-portal .about-content-refined {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 40px;
    align-items: center;
    position: relative;
    z-index: 1;
}

/* LEFT SIDE - Paragraph + 2 Compact Cards */
body.frontend.public-portal .about-left-refined {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* Left-aligned Paragraph */
body.frontend.public-portal .about-paragraph-left {
    text-align: left;
    max-width: 520px;
}

body.frontend.public-portal .about-subtext {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #64748B;
    margin: 0;
}


/* RIGHT SIDE - Live Signal Card Container (UNCHANGED) */
body.frontend.public-portal .about-right-refined {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    height: auto;
    max-height: fit-content;
}

body.frontend.public-portal .about-visual-container {
    position: relative;
    width: 420px;
    z-index: 1;
    padding: 28px;
    border-radius: 18px;
    transform: translateX(-40px) scale(1.05);
    box-shadow:
        0 25px 60px rgba(0,0,0,0.08),
        0 8px 20px rgba(0,0,0,0.05);
}

/* Responsive Design */
@media (max-width: 1024px) {
    body.frontend.public-portal .about-visual-container {
        width: 100%;
        max-width: 420px;
        transform: translateX(0) scale(1);
    }
}

@media (max-width: 900px) {
    body.frontend.public-portal .about-content-refined {
        grid-template-columns: 1fr;
        gap: 32px;
        align-items: start;
    }
    
    body.frontend.public-portal .about-visual-container {
        transform: translateX(0) scale(1);
        margin: 0 auto;
    }
    
    body.frontend.public-portal .about-left-refined {
        margin-bottom: 24px;
    }
    
    body.frontend.public-portal .about-content-refined {
        gap: 24px;
    }
}

@media (max-width: 1024px) {
    body.frontend.public-portal .about-content-refined {
        flex-direction: column;
        gap: 32px;
    }
    
    body.frontend.public-portal .about-left-refined {
        gap: 20px;
    }
    
    body.frontend.public-portal .about-heading-centered {
        margin-bottom: 32px;
    }
    
    body.frontend.public-portal .about-hero-headline {
        font-size: clamp(28px, 5vw, 36px);
    }
    
    body.frontend.public-portal .about-subtext {
        font-size: 15px;
    }
    
    body.frontend.public-portal .about-right-refined {
        order: 2;
    }
    
    /* Floating badges become static on tablet */
    body.frontend.public-portal .floating-badge,
    body.frontend.public-portal .badge-accuracy,
    body.frontend.public-portal .badge-certified,
    body.frontend.public-portal .badge-traders,
    body.frontend.public-portal .badge-realtime {
        position: static;
        margin: 0.5rem 0;
        transform: none;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto;
    }

    body.frontend.public-portal .floating-badge:hover {
        transform: none;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
        background: rgba(255, 255, 255, 0.85);
    }
    
    body.frontend.public-portal .about-visual-container {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    
    body.frontend.public-portal .about-visual-container::before {
        display: none;
    }
    
    body.frontend.public-portal .about-micro-points {
        margin-top: 1.5rem;
        gap: 0.875rem;
    }
    
    body.frontend.public-portal .micro-point {
        gap: 0.625rem;
    }
    
    body.frontend.public-portal .micro-point-icon {
        width: 18px;
        height: 18px;
    }
    
    body.frontend.public-portal .micro-point-icon i {
        width: 14px;
        height: 14px;
    }
    
    body.frontend.public-portal .micro-point-title {
        font-size: 0.875rem;
    }
    
    body.frontend.public-portal .micro-point-desc {
        font-size: 0.775rem;
    }
}

@media (max-width: 768px) {
    body.frontend.public-portal .about-section {
        padding: 40px 0 40px;
    }
    
    body.frontend.public-portal .about-heading-centered {
        margin-bottom: 24px;
    }
    
    body.frontend.public-portal .about-content-refined {
        gap: 24px;
    }
    
    body.frontend.public-portal .about-left-refined {
        gap: 16px;
    }
    
    body.frontend.public-portal .about-hero-headline {
        font-size: clamp(24px, 6vw, 32px);
    }
    
    body.frontend.public-portal .about-subtext {
        font-size: 14px;
    }
    
}

/* Glassmorphism Floating Feature Badges */
body.frontend.public-portal .floating-badge {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 10;
}

body.frontend.public-portal .floating-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    background: rgba(255, 255, 255, 0.95);
}

body.frontend.public-portal .badge-icon {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

body.frontend.public-portal .badge-icon i {
    width: 16px;
    height: 16px;
    color: #0B2578;
}

body.frontend.public-portal .badge-content {
    flex: 1;
}

body.frontend.public-portal .badge-title {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0B2578;
    line-height: 1.2;
    margin: 0;
}

/* Badge Positioning - Balanced Layout */
body.frontend.public-portal .badge-accuracy {
    top: -10px;
    right: -15px;
    background: rgba(11, 37, 120, 0.08);
    border-color: rgba(11, 37, 120, 0.15);
}

body.frontend.public-portal .badge-accuracy .badge-icon i {
    color: #0B2578;
}

body.frontend.public-portal .badge-certified {
    top: 35%;
    left: -20px;
    transform: translateY(-50%);
    background: rgba(26, 148, 100, 0.08);
    border-color: rgba(26, 148, 100, 0.15);
}

body.frontend.public-portal .badge-certified .badge-icon i {
    color: #1A9464;
}

body.frontend.public-portal .badge-traders {
    bottom: -10px;
    right: -15px;
    background: rgba(11, 37, 120, 0.08);
    border-color: rgba(11, 37, 120, 0.15);
}

body.frontend.public-portal .badge-traders .badge-icon i {
    color: #0B2578;
}

body.frontend.public-portal .badge-realtime {
    top: 65%;
    left: -18px;
    transform: translateY(-50%);
    background: rgba(26, 148, 100, 0.08);
    border-color: rgba(26, 148, 100, 0.15);
}

body.frontend.public-portal .badge-realtime .badge-icon i {
    color: #1A9464;
}

/* Live Signal Card Height Reduction - 50% */
body.frontend.public-portal .about-visual-container .dashboard-card {
    padding: 0.75rem; /* Reduced from 1.5rem */
}

body.frontend.public-portal .about-visual-container .dashboard-header {
    margin-bottom: 0.625rem; /* Reduced from 1.25rem */
    padding-bottom: 0.5rem; /* Reduced from 1rem */
}

body.frontend.public-portal .about-visual-container .signal-preview {
    gap: 0.4375rem; /* Reduced from 0.875rem */
}

body.frontend.public-portal .about-visual-container .signal-row {
    padding: 0.5rem; /* Reduced from 1rem */
}

body.frontend.public-portal .about-visual-container .signal-info {
    gap: 0.125rem; /* Reduced from 0.25rem */
}

body.frontend.public-portal .about-visual-container .signal-metrics {
    gap: 0.0625rem; /* Reduced from 0.125rem */
}

/* Radial gradient glow behind right section */
body.frontend.public-portal .about-visual-container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 120%;
    background: radial-gradient(circle, rgba(11, 37, 120, 0.03) 0%, transparent 70%);
    pointer-events: none;
    z-index: 1;
}



/* Why Choose Us Micro Points */
body.frontend.public-portal .about-micro-points {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

body.frontend.public-portal .micro-point {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    transition: transform 0.2s ease;
}

body.frontend.public-portal .micro-point:hover {
    transform: translateX(4px);
}

body.frontend.public-portal .micro-point-icon {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
}

body.frontend.public-portal .micro-point-icon i {
    width: 16px;
    height: 16px;
    color: #0B2578;
}

body.frontend.public-portal .micro-point-content {
    flex: 1;
}

body.frontend.public-portal .micro-point-title {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: #1F2937;
    margin: 0 0 0.25rem 0;
}

body.frontend.public-portal .micro-point-desc {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 15px;
    color: #6b7280;
    line-height: 1.4;
    margin: 0;
    font-weight: 400;
}

/* ==========================================================================
   5) CONTACT — public-portal only
   ========================================================================== */
body.frontend.public-portal .contact-section {
    padding: var(--grid-4, 32px) 0;
    background: #ffffff;
    position: relative;
    overflow: visible;
}

body.frontend.public-portal .contact-section::before {
    display: none;
}

body.frontend.public-portal .contact-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--page-gutter, 16px);
    position: relative;
    z-index: 1;
}

body.frontend.public-portal .contact-header {
    text-align: center;
    margin-bottom: var(--grid-3, 24px);
}

@media (min-width: 768px) {
    body.frontend.public-portal .contact-header {
        margin-bottom: var(--grid-4, 32px);
    }
}

body.frontend.public-portal .contact-title {
    font-size: clamp(1.5rem, 5vw, 2.25rem);
    font-weight: 800;
    color: #111827;
    margin-bottom: var(--grid-2, 16px);
    line-height: 1.2;
}

body.frontend.public-portal .contact-title strong {
    color: var(--secondary, #1a9464);
    -webkit-text-fill-color: var(--secondary, #1a9464);
    background: none;
}

body.frontend.public-portal .contact-subtitle {
    font-size: 0.9375rem;
    color: #6b7280;
    max-width: 36rem;
    margin: 0 auto;
    line-height: 1.55;
}

body.frontend.public-portal .contact-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--grid-3, 24px);
    align-items: start;
}

@media (min-width: 900px) {
    body.frontend.public-portal .contact-content {
        gap: var(--grid-4, 32px);
    }
}

/* Contact Information */
body.frontend.public-portal .contact-info {
    background: #fff;
    padding: var(--grid-3, 24px);
    border-radius: var(--radius-lg, 1rem);
    box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.04));
    border: 1px solid var(--border-color, rgba(0, 0, 0, 0.06));
}

body.frontend.public-portal .contact-info h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: var(--grid-2, 16px);
    line-height: 1.3;
}

body.frontend.public-portal .contact-info h3 strong {
    background: linear-gradient(135deg, #193784 0%, #218E63 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

body.frontend.public-portal .contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--grid-2, 16px);
    margin-bottom: var(--grid-2, 16px);
    padding: var(--grid-2, 16px);
    background: var(--surface-variant, #f9fafb);
    border-radius: var(--radius-form, 10px);
    transition: border-color var(--transition-fast, 0.2s ease);
    border: 1px solid transparent;
}

body.frontend.public-portal .contact-item:hover {
    border-color: rgba(26, 148, 100, 0.25);
}

body.frontend.public-portal .contact-item:last-child {
    margin-bottom: 0;
}

body.frontend.public-portal .contact-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #0b2578 0%, #1a9464 100%);
    border-radius: var(--radius-form, 10px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.04));
}

body.frontend.public-portal .contact-icon svg {
    width: 24px;
    height: 24px;
    color: white;
}

body.frontend.public-portal .contact-details h4 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1a202c;
    margin-bottom: 0.5rem;
}

body.frontend.public-portal .contact-details p {
    color: #6b7280;
    line-height: 1.5;
    margin: 0;
}

body.frontend.public-portal .contact-detail-link,
body.frontend.public-portal .contact-details a {
    color: var(--primary, #0b2578);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition-fast, 0.2s ease);
}

body.frontend.public-portal .contact-detail-link:hover,
body.frontend.public-portal .contact-details a:hover {
    color: var(--secondary, #1a9464);
    text-decoration: underline;
}

/* Contact Form */
body.frontend.public-portal .contact-form {
    background: #fff;
    padding: var(--grid-3, 24px);
    border-radius: var(--radius-lg, 1rem);
    box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.04));
    border: 1px solid var(--border-color, rgba(0, 0, 0, 0.06));
}

body.frontend.public-portal .contact-form h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: var(--grid-2, 16px);
    line-height: 1.3;
    text-align: center;
}

body.frontend.public-portal .contact-form h3 strong {
    background: linear-gradient(135deg, #193784 0%, #218E63 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Form Messages */
body.frontend.public-portal .success-message,
body.frontend.public-portal .error-message {
    padding: 1rem 1.5rem;
    border-radius: 10px;
    margin-bottom: 1.5rem;
    font-weight: 500;
    display: none;
    animation: slideInDown 0.3s ease;
}

body.frontend.public-portal .success-message {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

body.frontend.public-portal .error-message {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

@keyframes slideInDown {
    from {
        transform: translateY(-20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Form Styles — contact page only */
body.frontend.public-portal .contact-section .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--grid-2, 16px);
    margin-bottom: var(--grid-2, 16px);
}

body.frontend.public-portal .contact-section .form-group {
    margin-bottom: var(--grid-2, 16px);
}

body.frontend.public-portal .contact-section .form-group label {
    display: block;
    font-weight: 600;
    color: #374151;
    margin-bottom: var(--grid-1, 8px);
    font-size: 0.8125rem;
}

body.frontend.public-portal .contact-section .form-group label span {
    color: #e53e3e;
}

body.frontend.public-portal .contact-section .form-group input,
body.frontend.public-portal .contact-section .form-group select,
body.frontend.public-portal .contact-section .form-group textarea {
    width: 100%;
    min-height: var(--field-height, 48px);
    padding: 0.625rem var(--grid-2, 16px);
    border: 2px solid #e5e7eb;
    border-radius: var(--radius-form, 10px);
    font-size: 1rem;
    transition:
        border-color var(--transition-fast, 0.2s ease),
        box-shadow var(--transition-fast, 0.2s ease);
    background: #fff;
    color: #111827;
}

body.frontend.public-portal .contact-section .form-group textarea {
    min-height: 7.5rem;
    resize: vertical;
    font-family: inherit;
}

body.frontend.public-portal .contact-section .form-group input:focus,
body.frontend.public-portal .contact-section .form-group select:focus,
body.frontend.public-portal .contact-section .form-group textarea:focus {
    outline: none;
    border-color: var(--primary, #0b2578);
    box-shadow: 0 0 0 3px rgba(11, 37, 120, 0.1);
}

body.frontend.public-portal .contact-section .form-group select {
    cursor: pointer;
}

body.frontend.public-portal .contact-section .form-group textarea::placeholder {
    color: #9ca3af;
}

/* reCAPTCHA + submit — contained widget; captcha + button stacked and centered */
body.frontend.public-portal .captcha-button-row {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: var(--grid-2, 16px);
    align-items: center;
    width: 100%;
    min-width: 0;
}

body.frontend.public-portal .captcha-container {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
}

body.frontend.public-portal .captcha-container .captcha-wrapper {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

body.frontend.public-portal .captcha-container .g-recaptcha {
    width: 304px;
    max-width: min(304px, 100%);
    flex-shrink: 0;
    box-sizing: border-box;
}

/* Narrow form column: scale widget so it stays inside padded container */
@media (max-width: 359px) {
    body.frontend.public-portal .contact-section .captcha-container .captcha-wrapper .g-recaptcha {
        transform: scale(0.9);
        transform-origin: top center;
        margin-bottom: -0.5rem;
    }
}

body.frontend.public-portal .submit-button-container {
    width: 100%;
    max-width: 20rem;
    display: flex;
    justify-content: center;
    flex-shrink: 0;
}

body.frontend.public-portal .contact-submit-btn {
    width: 100%;
}

@media (min-width: 640px) {
    body.frontend.public-portal .contact-submit-btn {
        width: auto;
        min-width: 10rem;
    }
}

@media (max-width: 480px) {
    body.frontend.public-portal .contact-section {
        padding: var(--grid-3, 24px) 0;
    }

    body.frontend.public-portal .contact-info,
    body.frontend.public-portal .contact-form {
        padding: var(--grid-2, 16px);
    }
}

/* ==========================================================================
   3) SERVICES — home + products (body.frontend; not limited to public-portal)
   Unified SaaS Card Design – Packages grid
   ========================================================================== */

/* Import Spacing System */
/* Spacing system styles are now integrated into shared.css */

/* MASTER OVERRIDE - Fix all heading color conflicts with highest specificity */
body.frontend .services-section .section-header .section-title,
body.frontend .services-section .section-title,
body.user-layout .services-section .section-header .section-title {
    background: none;
    background-image: none;
    -webkit-background-clip: unset;
    background-clip: unset;
}

body.frontend .services-section .section-header .section-title .blue-half,
body.frontend .services-section .section-title .blue-half,
body.user-layout .services-section .section-header .section-title .blue-half {
    color: #0B2578;
    -webkit-text-fill-color: #0B2578;
}

body.frontend .services-section .section-header .section-title .green-half,
body.frontend .services-section .section-title .green-half,
body.user-layout .services-section .section-header .section-title .green-half {
    color: #1A9464;
    -webkit-text-fill-color: #1A9464;
}

/* ---------- Section wrapper - Responsive ---------- */
body.frontend .services-section {
    padding: var(--section-padding-lg) 0;
}

/* Home: tighten gap after hero (pricing grid); /user/products keeps full section padding */
body.frontend.public-portal #services.services-section {
    padding-top: 32px;
    padding-bottom: var(--section-padding-lg);
}

body.frontend .services-section .section-header {
    margin-bottom: var(--space-lg);
}

body.frontend.public-portal #services.services-section .section-header {
    margin-bottom: var(--space-md);
}

body.frontend .services-section .section-title {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 700;
    text-align: center;
    margin-bottom: var(--space-sm);
    display: inline-block;
    color: #0B2578;
    line-height: 1;
}

body.frontend .services-section .section-title .blue-half {
    color: #0B2578;
}

body.frontend .services-section .section-title .green-half {
    color: #1A9464;
}

body.frontend .services-section .section-subtitle {
    font-size: clamp(0.9375rem, 2.5vw, 1.0625rem);
    color: var(--text-gray, #64748B);
    text-align: center;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    line-height: 1;
}

@media (min-width: 768px) {
    body.frontend .services-section .section-subtitle {
        max-width: 480px;
    }
}

/* ---------- Grid: Responsive - 4 → 2 → 1, equal height ---------- */
body.frontend .services-section .services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr));
    gap: var(--grid-gap-md);
    align-items: stretch;
    margin-top: 0;
}

@media (min-width: 1025px) {
    body.frontend .services-section .services-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    body.frontend .services-section .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    body.frontend .services-section .services-grid {
        grid-template-columns: 1fr;
        gap: var(--grid-gap-md);
    }
}

/* ---------- Card wrapper (no 3d needed for clean look) ---------- */
body.frontend .services-section .services-grid .card-3d-wrapper {
    display: flex;
    min-height: 0;
}

/* ---------- Service card: white, rounded, soft shadow - Responsive ---------- */
body.frontend .services-section .service-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    padding: var(--card-padding);
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--border-color, #E5E7EB);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    position: relative;
    overflow: visible;
    min-height: 100%;
    min-height: clamp(300px, 40vw, 400px);
}

body.frontend .services-section .service-card::before {
    display: none;
}

body.frontend .services-section .service-card:hover {
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04);
    border-color: rgba(0, 0, 0, 0.08);
    /* Remove transform to prevent layout flickering */
}

body.user-layout .services-section .service-card:hover {
    border-color: rgba(0, 123, 255, 0.35);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 123, 255, 0.15);
}

/* Featured service card (e.g. Popular) — red accent matches POPULAR badge */
body.frontend .services-section .service-card.service-card--featured {
    border-color: rgba(220, 38, 38, 0.45);
    box-shadow:
        0 4px 14px rgba(220, 38, 38, 0.12),
        0 0 0 1px rgba(220, 38, 38, 0.22);
}

body.frontend .services-section .service-card.service-card--featured:hover {
    box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.08),
        0 0 0 1px rgba(220, 38, 38, 0.32);
}

/* Trading Services "Popular" tag — high-visibility red (overrides default .plan-badge gradient here only) */
body.frontend .services-section .plan-badge {
    background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    font-weight: 700;
    letter-spacing: 0.08em;
    box-shadow:
        0 2px 10px rgba(220, 38, 38, 0.5),
        0 1px 0 rgba(255, 255, 255, 0.15) inset;
}


/* ---------- Icon: centered, soft circular container - Responsive ---------- */
body.frontend .services-section .service-icon-wrap {
    width: clamp(48px, 6vw, 56px);
    height: clamp(48px, 6vw, 56px);
    margin: 0 auto clamp(1rem, 2vw, 1.25rem);
    border-radius: 50%;
    background: rgba(0, 123, 255, 0.15);
    color: #007BFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Frontend layout: ensure card-icon-wrap matches service-icon-wrap styling */
body.frontend .services-section .card-icon-wrap {
    width: clamp(48px, 6vw, 56px);
    height: clamp(48px, 6vw, 56px);
    margin: 0 auto clamp(1rem, 2vw, 1.25rem);
    border-radius: 50%;
    background: rgba(0, 123, 255, 0.15);
    color: #007BFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

body.frontend .services-section .card-icon-wrap i,
body.frontend .services-section .card-icon-wrap svg {
    width: clamp(24px, 3vw, 28px);
    height: clamp(24px, 3vw, 28px);
    color: #007BFF;
    stroke-width: 2;
}

body.user-layout .services-section .service-icon-wrap {
    background: rgba(0, 123, 255, 0.15);
    color: #007BFF;
}

body.frontend .services-section .service-icon-wrap .service-icon,
body.frontend .services-section .service-icon-wrap i {
    width: clamp(24px, 3vw, 28px);
    height: clamp(24px, 3vw, 28px);
    display: block;
}

body.frontend .services-section .service-icon-wrap svg {
    width: clamp(24px, 3vw, 28px);
    height: clamp(24px, 3vw, 28px);
}

/* Legacy: if .service-icon is direct child without wrap, still center */
body.frontend .services-section .service-card > .service-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1.25rem;
    border-radius: 50%;
    background: rgba(0, 123, 255, 0.15);
    color: #007BFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: none;
}

body.frontend .services-section .service-card > .service-icon svg {
    width: 28px;
    height: 28px;
}

body.frontend .services-section .service-card:hover > .service-icon {
    transform: none;
}

/* ---------- Typography: title, description - Responsive ---------- */
body.frontend .services-section .service-title {
    font-size: clamp(1rem, 3vw, 1.125rem);
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    margin: 0 0 var(--space-sm);
    color: var(--text-primary, #0F172A);
}

/* Home / public: service card titles — dual theme (#1e3a8a / #16a34a) */
body.frontend .services-section .service-title.card-title-dual .blue-half {
    color: #1e3a8a;
    -webkit-text-fill-color: #1e3a8a;
}

body.frontend .services-section .service-title.card-title-dual .green-half {
    color: #16a34a;
    -webkit-text-fill-color: #16a34a;
}

body.frontend .services-section .service-description {
    font-size: clamp(0.875rem, 2.5vw, 0.9375rem);
    color: var(--text-gray, #64748B);
    line-height: 1.55;
    text-align: center;
    margin: 0 0 var(--space-md);
    flex-grow: 1;
    max-width: 100%;
}

/* ---------- Button: bottom of card - Responsive ---------- */
body.frontend .services-section .service-btn {
    margin-top: auto;
    width: 100%;
    min-height: 44px;
    padding: clamp(0.75rem, 2vw, 1rem) clamp(1rem, 3vw, 1.25rem);
    font-size: clamp(0.875rem, 2.5vw, 0.9375rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    transition: box-shadow 0.15s ease;
    line-height: 1;
}

body.frontend .services-section .service-btn:hover {
    /* Remove transform to prevent layout flickering */
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}

body.frontend .services-section .service-btn .inline-icon {
    width: 1rem;
    height: 1rem;
}

body.frontend .services-section .service-btn svg {
    width: 1rem;
    height: 1rem;
    margin-top: auto;
}

/* Legacy: service-card-actions for backward compatibility */
body.frontend .services-section .service-card-actions {
    display: none;
}

/* ==========================================================================
   6) TESTIMONIALS — public-portal only (home reviews strip)
   ========================================================================== */

body.frontend.public-portal .testimonials-section {
  background: #ffffff;
  padding: 4.5rem 0 5rem;
  position: relative;
}

body.frontend.public-portal .testimonials-section .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ---- Heading ---- */
body.frontend.public-portal .testimonials-section .testimonials-header {
  text-align: center;
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-title {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 700;
  margin: 0 0 0.5rem;
  text-align: center;
  display: block;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-title .blue-half {
  color: #0B2578;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-title .green-half {
  color: #1A9464;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-title .title-icon {
  color: #0B2578;
  font-size: 1.25em;
  line-height: 1;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-title .title-accent {
  color: #1A9464;
}

body.frontend.public-portal .testimonials-section .testimonials-header .testimonials-subtitle {
  font-size: 1rem;
  color: #666;
  margin: 0;
  font-weight: 400;
  line-height: 1;
}

/* ---- Grid ---- */
body.frontend.public-portal .testimonials-section .testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.75rem;
}

/* ---- Card ---- */
body.frontend.public-portal .testimonials-section .testimonial-card {
  background: #ffffff;
  border: 1px solid rgba(0, 123, 255, 0.35);
  border-radius: 20px;
  padding: 1.75rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 123, 255, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

body.frontend.public-portal .testimonials-section .testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08), 0 0 24px rgba(0, 123, 255, 0.15);
  border-color: rgba(0, 123, 255, 0.5);
}

/* ---- Card top row: avatar + name/service + stars ---- */
body.frontend.public-portal .testimonials-section .testimonial-card-top {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

body.frontend.public-portal .testimonials-section .testimonial-avatar {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e5e7eb, #d1d5db);
  display: flex;
  align-items: center;
  justify-content: center;
}

body.frontend.public-portal .testimonials-section .testimonial-avatar i {
  font-size: 20px;
  color: #6b7280;
}

body.frontend.public-portal .testimonials-section .testimonial-meta {
  flex: 1;
  min-width: 0;
}

body.frontend.public-portal .testimonials-section .testimonial-name {
  font-size: 1rem;
  font-weight: 600;
  color: #111;
  margin: 0 0 0.2rem;
  line-height: 1;
}

body.frontend.public-portal .testimonials-section .testimonial-service {
  font-size: 0.8125rem;
  color: #666;
  margin: 0;
  line-height: 1;
}

body.frontend.public-portal .testimonials-section .testimonial-stars {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 1rem;
  letter-spacing: 0.05em;
}

body.frontend.public-portal .testimonials-section .testimonial-stars .fas.fa-star {
  color: #FFC107;
}

body.frontend.public-portal .testimonials-section .testimonial-stars .far.fa-star {
  color: #e0e0e0;
}

/* ---- Review text ---- */
body.frontend.public-portal .testimonials-section .testimonial-text {
  font-size: 0.9375rem;
  line-height: 1;
  color: #333;
  margin: 0;
  padding-left: 0;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
  body.frontend.public-portal .testimonials-section {
    padding: 3rem 0 4rem;
  }

  body.frontend.public-portal .testimonials-section .testimonials-header {
    margin-bottom: 2rem;
  }

  body.frontend.public-portal .testimonials-section .testimonials-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  body.frontend.public-portal .testimonials-section .testimonial-card {
    padding: 1.5rem;
  }

  body.frontend.public-portal .testimonials-section .testimonial-card-top {
    flex-wrap: wrap;
  }

  body.frontend.public-portal .testimonials-section .testimonial-stars {
    width: 100%;
    margin-top: 0.25rem;
    margin-left: 0;
  }
}

@media (max-width: 480px) {
  body.frontend.public-portal .testimonials-section .testimonials-title {
    font-size: 1.5rem;
  }

  body.frontend.public-portal .testimonials-section .testimonial-avatar {
    width: 42px;
    height: 42px;
  }

  body.frontend.public-portal .testimonials-section .testimonial-avatar i {
    font-size: 18px;
  }
}

/* ==========================================================================
   6b) HOME HERO CTAs — public-portal only (shared.css covers .hero-cta-group layout)
   ========================================================================== */
body.frontend.public-portal .btn-cta-primary {
  background: linear-gradient(135deg, #0f6b47 0%, var(--secondary, #1a9464) 48%, #1fb575 100%);
  color: white;
  border-radius: 14px;
  padding: clamp(0.875rem, 2.5vw, 14px) clamp(1.5rem, 4vw, 28px);
  border: none;
  font-weight: 600;
  font-size: clamp(0.875rem, 2.5vw, 16px);
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  line-height: 1;
  box-shadow: 0 4px 16px rgba(22, 101, 52, 0.32);
}

body.frontend.public-portal .btn-cta-primary:hover {
  background: linear-gradient(135deg, var(--secondary, #1a9464) 0%, var(--success, #16a34a) 55%, #34d399 100%);
  color: white;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(34, 197, 94, 0.38);
  transform: translateY(-2px);
}

body.frontend.public-portal .btn-cta-secondary {
  color: #0B2578;
  border: 1px solid #0B2578;
  background: white;
  border-radius: 14px;
  padding: clamp(0.875rem, 2.5vw, 14px) clamp(1.5rem, 4vw, 28px);
  font-weight: 600;
  font-size: clamp(0.875rem, 2.5vw, 16px);
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  line-height: 1;
}

body.frontend.public-portal .btn-cta-secondary:hover {
  color: #0B2578;
  border-color: #0B2578;
  text-decoration: none;
}

/* ==========================================================================
   7) SHELL — shared UI on frontend (incl. /signals): headings, cards, buttons
   ========================================================================== */

/* Hero Gradient Text - Match Site Theme */
body.frontend .hero-gradient-text {
  color: #0B2578;
  font-weight: 800;
  line-height: 1;
  background: none;
  background-image: none;
  -webkit-text-fill-color: #0B2578;
}

/* Frontend Cards */
body.frontend .front-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
  border: 1px solid rgba(108, 92, 231, 0.1);
}

body.frontend .front-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(108, 92, 231, 0.15);
}

/* Brand Buttons - Match Site Theme */
body.frontend .btn-brand {
  background: #16A34A;
  color: white;
  border-radius: 12px;
  padding: 0.75rem 2rem;
  font-size: 0.9rem;
  font-weight: 600;
  min-width: 160px;
  width: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  line-height: 1;
}

body.frontend .btn-brand:hover {
  background: #15803D;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(22, 163, 74, 0.3);
}

body.frontend .btn-primary {
  background: var(--brand-blue);
  color: white;
  border: none;
  border-radius: 12px;
  padding: 10px 20px;
  font-weight: 600;
  transition: all 0.3s ease;
  text-decoration: none;
  line-height: 1;
}

body.frontend .btn-primary:hover {
  background: #3d5ec9;
  transform: translateY(-2px);
  color: white;
  text-decoration: none;
}

body.frontend .btn-outline {
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.5);
  background: transparent;
  border-radius: 12px;
  padding: 10px 20px;
  font-weight: 600;
  transition: all 0.3s ease;
  text-decoration: none;
  line-height: 1;
}

body.frontend .btn-outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: white;
  color: white;
  text-decoration: none;
}

/* Section Headers - Half Blue Half Green */
body.frontend .section-title {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 1rem;
  display: inline-block;
  line-height: 1;
}

body.frontend .section-title .blue-half {
  color: #0B2578;
}

body.frontend .section-title .green-half {
  color: #1A9464;
}

body.frontend .section-subtitle {
  font-size: 1.125rem;
  color: #0B2578;
  margin-bottom: 3rem;
  line-height: 1;
}

/* Duplicate frontend contact form styles removed - handled in footer-contact-unified.css */

body.frontend .form-control {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--border-color, #E2E8F0);
  border-radius: 8px;
  font-size: 16px;
  transition: all 0.3s ease;
  line-height: 1;
}

body.frontend .form-control:focus {
  outline: none;
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

/* Responsive */
@media (max-width: 768px) {
  body.frontend .section-title {
    font-size: 2rem;
  }
  
  body.frontend .front-card {
    padding: 20px;
  }
}


/* ==========================================================================
   9) MODALS — change password
   ========================================================================== */

body.frontend .change-password-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

body.frontend .change-password-modal.active {
    opacity: 1;
    visibility: visible;
}

body.frontend .change-password-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
}

body.frontend .change-password-content {
    position: relative;
    background: white;
    border-radius: 16px;
    width: 90%;
    max-width: 420px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    transform: scale(0.9);
    transition: transform 0.3s ease;
}

body.frontend .change-password-modal.active .change-password-content {
    transform: scale(1);
}

body.frontend .change-password-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 1.5rem 1rem;
    border-bottom: 1px solid #f1f5f9;
}

body.frontend .change-password-header h3 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: #1a202c;
}

body.frontend .change-password-close {
    width: 32px;
    height: 32px;
    border: none;
    background: #f8fafc;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

body.frontend .change-password-close:hover {
    background: #e2e8f0;
}

body.frontend .change-password-close i {
    width: 16px;
    height: 16px;
    color: #64748b;
}

body.frontend .change-password-form {
    padding: 1.5rem;
}

body.frontend .change-password-form .form-group {
    margin-bottom: 1.25rem;
}

body.frontend .change-password-form .form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: #374151;
    font-size: 0.875rem;
}

body.frontend .change-password-form .form-group input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.875rem;
    transition: all 0.2s ease;
}

body.frontend .change-password-form .form-group input:focus {
    outline: none;
    border-color: #193784;
    box-shadow: 0 0 0 3px rgba(25, 55, 132, 0.1);
}

body.frontend .change-password-form .form-group input.error {
    border-color: #dc2626;
}

body.frontend .form-error {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: #dc2626;
    min-height: 1rem;
}

body.frontend .password-requirements {
    margin-top: 0.5rem;
}

body.frontend .password-requirements small {
    color: #6b7280;
    font-size: 0.75rem;
}

body.frontend .change-password-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

body.frontend .change-password-modal .btn-cancel {
    flex: 1;
    padding: 0.75rem 1.5rem;
    background: #f8fafc;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    color: #6b7280;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

body.frontend .change-password-modal .btn-cancel:hover {
    background: #e5e7eb;
}

body.frontend .change-password-modal .btn-submit {
    flex: 1;
    padding: 0.75rem 1.5rem;
    background: #193784;
    border: none;
    border-radius: 8px;
    color: white;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

body.frontend .change-password-modal .btn-submit:hover {
    background: #152e6d;
}

body.frontend .change-password-modal .btn-submit:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

/* Responsive Design */
@media (max-width: 768px) {
    body.frontend .change-password-content {
        width: 95%;
        margin: 1rem;
    }
    
    body.frontend .change-password-header,
    body.frontend .change-password-form {
        padding: 1rem;
    }
}

/* ==========================================================================
   10) ACCESSIBILITY — body.frontend
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  body.frontend .services-section .service-card,
  body.frontend.public-portal .testimonials-section .testimonial-card,
  body.frontend.public-portal .contact-item {
    transition: none;
  }

  body.frontend .services-section .service-card:hover,
  body.frontend.public-portal .testimonials-section .testimonial-card:hover,
  body.frontend.public-portal .contact-item:hover {
    transform: none;
  }

  body.frontend .new-header,
  body.frontend .new-header::before,
  body.frontend .new-header-nav-link,
  body.frontend .profile-btn,
  body.frontend .profile-arrow,
  body.frontend .profile-menu {
    transition: none;
  }

  body.frontend .profile-btn:hover {
    transform: none;
  }

  body.frontend .profile-dropdown:not(.is-open) .profile-btn:hover .profile-arrow {
    transform: none;
  }
}

@media (prefers-contrast: high) {
  body.frontend .services-section .service-card,
  body.frontend.public-portal .testimonials-section .testimonial-card {
    border-width: 2px;
    border-color: var(--text-primary, #0B2578);
  }
}
