/**
 * SD CORE PVT LTD - Production v4 UI repair
 * Fixes missing utility classes, low-contrast page heroes, responsive partner sections,
 * and adds a stable light/dark theme system.
 */

:root {
    --sd-bg: #ffffff;
    --sd-bg-soft: #f5f8fc;
    --sd-bg-alt: #eef4fb;
    --sd-panel: #ffffff;
    --sd-panel-2: #f8fafc;
    --sd-text: #0b1220;
    --sd-text-2: #334155;
    --sd-muted: #64748b;
    --sd-border: #dbe4ee;
    --sd-navy: #061a33;
    --sd-navy-2: #092b55;
    --sd-blue: #0a58ca;
    --sd-teal: #00a6a6;
    --sd-cyan: #00d4ff;
    --sd-shadow: 0 18px 48px rgba(2, 11, 23, 0.10);
    --sd-shadow-soft: 0 12px 30px rgba(2, 11, 23, 0.07);
}

html[data-theme="dark"] {
    --sd-bg: #07111f;
    --sd-bg-soft: #0b1728;
    --sd-bg-alt: #0f2034;
    --sd-panel: #0d1b2d;
    --sd-panel-2: #10243a;
    --sd-text: #f8fafc;
    --sd-text-2: #dbeafe;
    --sd-muted: #a8b6c8;
    --sd-border: rgba(255, 255, 255, 0.11);
    --sd-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
    --sd-shadow-soft: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    background: var(--sd-bg) !important;
    color: var(--sd-text) !important;
}

/* Core utilities missing from original package */
.bg-deep-navy,
.bg-navy {
    background:
        radial-gradient(circle at 18% 20%, rgba(0, 212, 255, 0.10), transparent 34%),
        linear-gradient(135deg, #020b17 0%, #062b5f 54%, #020b17 100%) !important;
    color: #ffffff !important;
}

.bg-off-white {
    background: var(--sd-bg-soft) !important;
}

.text-white,
.text-white *:not(.btn):not(.section-tag):not(.badge):not(.card-link) {
    color: #ffffff !important;
}

.text-navy {
    color: var(--sd-text) !important;
}

.text-center {
    text-align: center !important;
}

.text-cyan { color: var(--sd-cyan) !important; }
.text-teal { color: var(--sd-teal) !important; }
.text-royal { color: var(--sd-blue) !important; }

/* Global typography contrast */
.section-title,
.card-title,
.step-title,
.p-title,
.industry-card h4,
.mv-card h3,
.framework-item h3,
.contact-method h4,
.package-card h3,
.ind-detail-content h3,
.faq-trigger {
    color: var(--sd-text) !important;
}

.section-subtitle,
.card-desc,
.step-desc,
.p-text-line,
.body-text,
.framework-item p,
.contact-method p,
.package-card p,
.ind-detail-content p,
.faq-content p,
.lead-text,
.trust-text p {
    color: var(--sd-muted) !important;
}

.bg-deep-navy .section-title,
.bg-navy .section-title,
.bg-deep-navy .cta-title,
.bg-navy .cta-title,
.bg-deep-navy h1,
.bg-deep-navy h2,
.bg-deep-navy h3,
.bg-navy h1,
.bg-navy h2,
.bg-navy h3 {
    color: #ffffff !important;
}

.bg-deep-navy .section-subtitle,
.bg-navy .section-subtitle,
.bg-deep-navy .cta-text,
.bg-navy .cta-text,
.bg-deep-navy p,
.bg-navy p {
    color: #cbd5e1 !important;
}

/* Header */
.site-header {
    height: 78px !important;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(219, 228, 238, 0.88);
}

.site-header.transparent-header:not(.sticky) {
    background: linear-gradient(180deg, rgba(2, 11, 23, 0.78), rgba(2, 11, 23, 0));
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.site-header.sticky {
    height: 68px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-bottom: 1px solid rgba(219, 228, 238, 0.95) !important;
    box-shadow: 0 10px 30px rgba(2, 11, 23, 0.08);
}

html[data-theme="dark"] .site-header:not(.transparent-header),
html[data-theme="dark"] .site-header.sticky {
    background: rgba(7, 17, 31, 0.94) !important;
    border-bottom-color: rgba(255, 255, 255, 0.10) !important;
}

html[data-theme="dark"] .site-header:not(.transparent-header) .nav-link,
html[data-theme="dark"] .site-header.sticky .nav-link {
    color: #e2e8f0 !important;
}

html[data-theme="dark"] .site-header.sticky .logo-light,
html[data-theme="dark"] .site-header:not(.transparent-header) .logo-light {
    display: none !important;
}

html[data-theme="dark"] .site-header.sticky .logo-dark,
html[data-theme="dark"] .site-header:not(.transparent-header) .logo-dark {
    display: block !important;
}

.nav-list {
    gap: 24px !important;
}

.nav-link {
    color: var(--sd-text) !important;
    font-weight: 700 !important;
}

.site-header.transparent-header:not(.sticky) .nav-link {
    color: #ffffff !important;
}

.theme-switch-wrap {
    display: flex;
    align-items: center;
    margin-left: auto;
    margin-right: 12px;
}

.theme-toggle {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: var(--sd-text);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--sd-border);
    cursor: pointer;
    transition: transform 0.22s ease, background 0.22s ease, border-color 0.22s ease;
}

.site-header.transparent-header:not(.sticky) .theme-toggle {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.22);
}

html[data-theme="dark"] .site-header.sticky .theme-toggle,
html[data-theme="dark"] .site-header:not(.transparent-header) .theme-toggle {
    color: #e2e8f0;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.13);
}

.theme-toggle:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 166, 166, 0.44);
}

.theme-toggle svg {
    width: 20px;
    height: 20px;
}

.theme-toggle .theme-icon-moon { display: none; }
html[data-theme="dark"] .theme-toggle .theme-icon-sun { display: none; }
html[data-theme="dark"] .theme-toggle .theme-icon-moon { display: block; }

/* Professional buttons */
.btn {
    border-radius: 12px !important;
    min-height: 48px;
    padding: 14px 24px !important;
    font-weight: 800 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-primary,
.bg-cyan-glow {
    background: linear-gradient(135deg, #00d4ff 0%, #00a6a6 100%) !important;
    color: #020b17 !important;
    border: 1px solid rgba(0, 212, 255, 0.45) !important;
}

.btn-primary:hover,
.bg-cyan-glow:hover {
    transform: translateY(-2px);
    filter: saturate(1.08);
}

.btn-secondary {
    background: var(--sd-panel) !important;
    color: var(--sd-text) !important;
    border: 1px solid var(--sd-border) !important;
}

.hero-actions .btn-secondary,
.bg-navy .btn-secondary,
.bg-deep-navy .btn-secondary,
.final-cta-section .btn-secondary,
.about-cta-section .btn-secondary,
.portfolio-cta .btn-secondary,
.solutions-cta .btn-secondary,
.industries-cta .btn-secondary,
.services-cta .btn-secondary {
    background: rgba(255, 255, 255, 0.09) !important;
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
}

/* Home hero */
.hero-slider-section {
    min-height: 720px !important;
    height: auto !important;
    background:
        radial-gradient(circle at 74% 20%, rgba(0, 212, 255, 0.16), transparent 28%),
        radial-gradient(circle at 10% 80%, rgba(0, 87, 217, 0.25), transparent 38%),
        linear-gradient(135deg, #020b17 0%, #062b5f 58%, #020b17 100%) !important;
}

.slider-container,
.slide,
.slide-content {
    min-height: 720px !important;
}

.slide-content {
    padding: 118px 32px 94px !important;
    grid-template-columns: minmax(0, 650px) minmax(340px, 500px) !important;
    gap: 56px !important;
}

.hero-title {
    font-size: clamp(46px, 4.5vw, 72px) !important;
    line-height: 1.02 !important;
    letter-spacing: -2.6px !important;
    color: #ffffff !important;
    margin-bottom: 22px !important;
    max-width: 720px !important;
}

.hero-subtitle {
    color: #cbd5e1 !important;
    font-size: clamp(16px, 1.2vw, 19px) !important;
    line-height: 1.75 !important;
    max-width: 640px !important;
    margin-bottom: 30px !important;
}

.badge {
    color: #9af2ff !important;
    background: rgba(0, 212, 255, 0.10) !important;
    border: 1px solid rgba(0, 212, 255, 0.26) !important;
    border-radius: 999px !important;
}

.tech-dashboard-mockup {
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38) !important;
    border-color: rgba(0, 212, 255, 0.24) !important;
}

.slider-arrow {
    top: auto !important;
    bottom: 42px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
}

.slider-arrow.prev { left: max(24px, calc((100vw - 1200px) / 2 + 32px)) !important; }
.slider-arrow.next { left: max(80px, calc((100vw - 1200px) / 2 + 88px)) !important; right: auto !important; }
.slider-dots { left: max(145px, calc((100vw - 1200px) / 2 + 155px)) !important; bottom: 58px !important; }

/* Inner page hero repair */
.inner-hero-section {
    position: relative;
    isolation: isolate;
    padding: 148px 0 92px !important;
    min-height: 390px;
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 16% 24%, rgba(0, 212, 255, 0.18), transparent 35%),
        radial-gradient(circle at 86% 18%, rgba(10, 88, 202, 0.22), transparent 34%),
        linear-gradient(135deg, #020b17 0%, #062b5f 62%, #020b17 100%) !important;
    color: #ffffff !important;
    overflow: hidden;
}

.inner-hero-section::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 44px 44px;
    opacity: 0.55;
    z-index: -1;
}

.inner-hero-glow {
    z-index: -1 !important;
    opacity: 0.9;
}

.inner-hero-section .container {
    position: relative;
    z-index: 2;
}

.inner-hero-title {
    color: #ffffff !important;
    font-size: clamp(38px, 4vw, 60px) !important;
    line-height: 1.06 !important;
    letter-spacing: -1.8px !important;
    max-width: 900px;
    margin: 0 auto 18px !important;
}

.inner-hero-subtitle {
    color: #cbd5e1 !important;
    font-size: 18px !important;
    line-height: 1.72 !important;
    max-width: 760px !important;
}

/* Light and dark card system */
.services-bento-section,
.process-section,
.industries-section,
.faq-section,
.about-intro-section,
.about-framework-section,
.contact-grid-section,
.portfolio-cases-section,
.solutions-packages-section,
.industries-detailed-section,
.service-details-section {
    background: var(--sd-bg) !important;
}

.services-slider-section,
.portfolio-slider-section,
.mission-vision-section,
.solutions-comparison,
.testimonial-section,
.bg-off-white {
    background: var(--sd-bg-soft) !important;
}

.bento-card,
.carousel-card,
.why-card,
.portfolio-card,
.industry-card,
.faq-item,
.mv-card,
.framework-item,
.contact-form-panel,
.contact-method,
.package-card,
.ind-detail-row,
.partner-logo-card,
.trusted-partner-logo,
.trust-item {
    background: var(--sd-panel) !important;
    border-color: var(--sd-border) !important;
    box-shadow: var(--sd-shadow-soft);
}

.bento-card:hover,
.carousel-card:hover,
.why-card:hover,
.portfolio-card:hover,
.industry-card:hover,
.faq-item:hover,
.package-card:hover,
.ind-detail-row:hover,
.partner-logo-card:hover {
    border-color: rgba(0, 166, 166, 0.45) !important;
    box-shadow: var(--sd-shadow) !important;
}

.card-header-icon,
.step-number,
.ind-icon,
.sd-icon-box,
.value-icon {
    background: var(--sd-panel-2) !important;
    border-color: var(--sd-border) !important;
}

.card-bullets,
.card-bullets li,
.sd-capabilities-list li,
.package-features li,
.ind-solutions-tags span {
    color: var(--sd-text-2) !important;
}

.card-link,
.section-tag {
    color: var(--sd-teal) !important;
}

/* Partner sections */
.trusted-partner-bar-section,
.partner-ecosystem-section {
    background: var(--sd-bg) !important;
}

.trusted-partner-bar {
    grid-template-columns: 44px minmax(240px, 330px) minmax(0, 1fr) !important;
    background:
        radial-gradient(circle at 14% 16%, rgba(0, 212, 255, 0.08), transparent 30%),
        var(--sd-panel) !important;
    border-color: var(--sd-border) !important;
    box-shadow: var(--sd-shadow-soft) !important;
}

.trusted-partner-copy h2,
.partner-rail h2,
.partner-wall-header h3 {
    color: var(--sd-text) !important;
}

.trusted-partner-copy p,
.partner-rail p {
    color: var(--sd-muted) !important;
}

.trusted-partner-logo-grid {
    grid-template-columns: repeat(6, minmax(96px, 1fr)) !important;
}

.trusted-partner-logo,
.partner-logo-card {
    min-width: 0;
    background: var(--sd-panel) !important;
    border: 1px solid var(--sd-border) !important;
    box-shadow: none !important;
}

.trusted-partner-logo img,
.partner-logo-card img {
    filter: none !important;
    opacity: 0.98;
}

html[data-theme="dark"] .trusted-partner-logo img,
html[data-theme="dark"] .partner-logo-card img {
    filter: brightness(1.08) contrast(1.04) !important;
}

.partner-ecosystem-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr) !important;
    gap: 28px !important;
}

.partner-rail {
    background: linear-gradient(180deg, var(--sd-panel) 0%, var(--sd-panel-2) 100%) !important;
    border: 1px solid var(--sd-border) !important;
    border-radius: 22px !important;
    box-shadow: var(--sd-shadow-soft);
}

.partner-logo-wall {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

.partner-logo-card {
    height: 76px !important;
    padding: 12px 14px !important;
    border-radius: 14px !important;
}

.partner-logo-card img {
    max-width: 142px !important;
    max-height: 42px !important;
}

/* Final CTA and dark sections */
.final-cta-section,
.about-cta-section,
.portfolio-cta,
.solutions-cta,
.industries-cta,
.services-cta,
.tech-solutions-section {
    background:
        radial-gradient(circle at 20% 25%, rgba(0, 212, 255, 0.14), transparent 38%),
        linear-gradient(135deg, #020b17 0%, #062b5f 56%, #020b17 100%) !important;
    color: #ffffff !important;
}

.glow-card {
    background: rgba(255, 255, 255, 0.055) !important;
    border-color: rgba(255, 255, 255, 0.10) !important;
}

/* Mobile menu */
.mobile-menu {
    background:
        radial-gradient(circle at 20% 20%, rgba(0, 212, 255, 0.18), transparent 34%),
        #020b17 !important;
}

.hamburger-bar {
    background: var(--sd-text) !important;
}

.site-header.transparent-header:not(.sticky) .hamburger-bar {
    background: #ffffff !important;
}

html[data-theme="dark"] .site-header.sticky .hamburger-bar,
html[data-theme="dark"] .site-header:not(.transparent-header) .hamburger-bar {
    background: #ffffff !important;
}

/* Responsive corrections */
@media (max-width: 1120px) {
    .slide-content {
        grid-template-columns: 1fr !important;
        text-align: center;
        gap: 30px !important;
    }

    .slide-text,
    .hero-title,
    .hero-subtitle {
        margin-left: auto;
        margin-right: auto;
    }

    .slide-visual {
        display: none !important;
    }

    .hero-actions {
        justify-content: center !important;
    }

    .trusted-partner-bar {
        grid-template-columns: 38px 1fr !important;
    }

    .trusted-partner-logo-grid {
        grid-column: 1 / -1;
        grid-template-columns: repeat(4, minmax(120px, 1fr)) !important;
    }

    .partner-ecosystem-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 1120px) {
    .desktop-nav,
    .header-actions {
        display: none !important;
    }

    .mobile-menu-toggle {
        display: flex !important;
    }

    .theme-switch-wrap {
        margin-left: auto;
        margin-right: 14px;
    }

    .site-header .logo-light,
    .site-header .logo-dark {
        width: 178px;
        height: auto;
    }

    .partner-logo-wall {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    .container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .hero-slider-section,
    .slider-container,
    .slide,
    .slide-content {
        min-height: 650px !important;
    }

    .slide-content {
        padding: 104px 20px 94px !important;
    }

    .hero-title {
        font-size: clamp(34px, 10vw, 48px) !important;
        letter-spacing: -1.4px !important;
    }

    .hero-subtitle {
        font-size: 15.5px !important;
    }

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

    .hero-actions .btn {
        width: 100%;
    }

    .inner-hero-section {
        min-height: 330px;
        padding: 120px 0 72px !important;
    }

    .inner-hero-title {
        font-size: clamp(32px, 9vw, 44px) !important;
    }

    .inner-hero-subtitle {
        font-size: 16px !important;
    }

    .trusted-partner-bar {
        grid-template-columns: 1fr !important;
        padding: 18px !important;
    }

    .trusted-partner-vertical {
        writing-mode: horizontal-tb !important;
        transform: none !important;
        min-height: 36px;
    }

    .trusted-partner-logo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .partner-logo-wall {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .partner-logo-card,
    .trusted-partner-logo {
        height: 66px !important;
    }

    .section-title {
        font-size: clamp(28px, 7vw, 36px) !important;
    }

    .cta-buttons,
    .hero-actions {
        gap: 12px !important;
    }

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

    .cta-buttons {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .site-header .logo-light,
    .site-header .logo-dark {
        width: 154px;
    }

    .theme-toggle {
        width: 40px;
        height: 40px;
        border-radius: 11px;
    }

    .hero-slider-section,
    .slider-container,
    .slide,
    .slide-content {
        min-height: 620px !important;
    }

    .slide-content {
        padding: 96px 16px 86px !important;
    }

    .slider-arrow {
        display: none !important;
    }

    .slider-dots {
        left: 50% !important;
        bottom: 32px !important;
        transform: translateX(-50%) !important;
    }

    .trusted-partner-logo-grid,
    .partner-logo-wall {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .partner-logo-card img,
    .trusted-partner-logo img {
        max-width: 118px !important;
        max-height: 34px !important;
    }
}
