/* Design tokens and header, shared with the homepage. */
:root {
            /* Brand Colors */
            --primary: #2235DD;
            --primary-dark: #1a2bc6;
            --secondary: #05060F;
            --accent: #3564e4;
            --light-bg: #f0f1fd;
            --dark-bg: #131739;
            --white: #FFFFFF;
            --gray-light: #E4E7FD;
            --success: #10b981;
            --warning: #f59e0b;
            
            /* Typography */
            --font-display: 'Cairo', sans-serif;
            --font-body: 'IBM Plex Sans Arabic', sans-serif;
            
            /* Spacing */
            --section-padding: clamp(60px, 10vw, 120px);
            --container-max: 1200px;
            
            /* Shadows */
            --shadow-sm: 0 2px 8px rgba(34, 53, 221, 0.08);
            --shadow-md: 0 4px 20px rgba(34, 53, 221, 0.12);
            --shadow-lg: 0 12px 40px rgba(34, 53, 221, 0.16);
            
            /* Animations */
            --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

body.dark-theme {
            background: #0a0b14;
            color: #e4e7fd;
        }


        /* CRITICAL FIX: Keep header visible while making sections full width */

        /* Override WP plugin rule: .entry-content ul/ol { padding/margin: revert }
 */
        .entry-content ul,
        .entry-content ol {
            padding: 0 !important;
            margin: 0 !important;
            list-style: none !important;
        }


        /* Remove WP auto-generated <p> tags inside content wrapper */
        .entry-content.clear > p {
            display: none !important;
            margin: 0 !important;
            padding: 0 !important;
            height: 0 !important;
            line-height: 0 !important;
            font-size: 0 !important;
        }

        
        /* Hide WordPress site header completely */
        #masthead,
        .site-header,
        header.site-header,
        .ast-header-break-point .site-header {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            height: 0 !important;
            overflow: hidden !important;
        }


        /* Hide ALL WordPress/Astra mobile menu elements */
        .ast-mobile-popup-drawer,
        .ast-mobile-popup-overlay,
        .ast-mobile-header-wrap,
        .ast-mobile-popup-inner,
        .main-header-menu-toggle,
        .menu-toggle,
        .ast-button-wrap,
        .ast-mobile-menu-buttons,
        #ast-mobile-popup,
        .ast-header-break-point .main-navigation,
        .ast-header-break-point .ast-mobile-header-stack {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            height: 0 !important;
            width: 0 !important;
            overflow: hidden !important;
            pointer-events: none !important;
            position: absolute !important;
            z-index: -1 !important;
        }

        
        /* Remove padding from content areas only - NOT from header */
        .entry-content,
        article.post,
        article.page,
        .site-main,
        main.site-main {
            margin-left: 0 !important;
            margin-right: 0 !important;
            padding-left: 0 !important;
            padding-right: 0 !important;
        }

        
        /* Force full width for page wrapper but preserve header */
        #page,
        #content,
        .site-content {
            width: 100% !important;
            max-width: 100% !important;
            overflow-x: hidden !important;
        }

        
        /* Keep WordPress site header hidden - our custom landing-header replaces it */
        
        /* Prevent body overflow issues */
        body,
        html {
            overflow-x: hidden !important;
            width: 100% !important;
        }

        
        body.dark-theme .landing-header.scrolled {
            background: rgba(15, 17, 23, 0.7);
            border-bottom: 1px solid rgba(91, 138, 245, 0.2);
        }

        
        body.dark-theme .landing-header-menu a {
            color: #e4e7fd;
        }

        
        body.dark-theme .landing-header-menu a:hover {
            color: #5b8af5;
        }

        
        body.dark-theme .landing-lang-switcher {
            background: rgba(42, 45, 62, 0.8);
            border-color: rgba(91, 138, 245, 0.2);
        }

        
        body.dark-theme .landing-lang-current {
            color: #e4e7fd;
        }

        
        body.dark-theme .landing-lang-icon svg {
            fill: #e4e7fd;
        }

        
        body.dark-theme .landing-lang-dropdown {
            background: #1a1d2e;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
        }

        
        body.dark-theme .landing-lang-link {
            color: #e4e7fd;
        }

        
        body.dark-theme .landing-lang-link:hover {
            background: rgba(91, 138, 245, 0.15);
            color: #5b8af5;
        }

        
        body.dark-theme .landing-lang-link.active {
            background: #5b8af5;
            color: #0a0b14;
        }

        
        body.dark-theme .landing-mobile-toggle span {
            background: #e4e7fd;
        }

        
        /* Header Styles */
        .landing-header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            width: 100%;
            z-index: 1000;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            background: transparent;
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
            border-bottom: 1px solid transparent;
            padding-top: 10px;
        }

        
        .landing-header.scrolled {
            background: rgba(255, 255, 255, 0.7);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
            border-bottom: 1px solid rgba(34, 53, 221, 0.1);
        }

        
        /* Remove white text color overrides on scroll */
        
        .landing-header-container {
            max-width: var(--container-max);
            margin: 0 auto;
            padding: 0 clamp(20px, 4vw, 40px);
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 90px;
            gap: 30px;
        }

        
        .landing-header-logo {
            display: flex;
            align-items: center;
            text-decoration: none;
            transition: var(--transition);
            position: relative;
            flex-shrink: 0;
        }

        
        .landing-header-logo img {
            height: 55px;
            width: auto;
            transition: opacity 0.3s ease;
        }

        
        /* Light mode: show black logo, hide white logo */
        .logo-light {
            opacity: 1;
        }

        
        .logo-dark {
            opacity: 0;
            position: absolute;
            left: 0;
        }

        
        /* Dark mode: hide black logo, show white logo */
        body.dark-theme .logo-light {
            opacity: 0;
        }

        
        body.dark-theme .logo-dark {
            opacity: 1;
        }

        
        .landing-header-logo:hover {
            transform: scale(1.05);
        }

        
        .landing-header-nav {
            display: flex;
            align-items: center;
            gap: 25px;
        }

        
        .landing-header-menu {
            display: flex;
            align-items: center;
            gap: 25px;
            list-style: none;
            margin: 0;
            padding: 0;
        }

        
        .landing-header-menu a {
            text-decoration: none;
            color: var(--secondary);
            font-weight: 600;
            font-size: 0.95rem;
            transition: var(--transition);
            position: relative;
            white-space: nowrap;
        }

        
        .landing-header-menu a::after {
            content: '';
            position: absolute;
            bottom: -5px;
            left: 0;
            right: 0;
            height: 2px;
            background: var(--primary);
            transform: scaleX(0);
            transition: transform 0.3s ease;
        }

        
        .landing-header-menu a:hover {
            color: var(--primary);
        }

        
        .landing-header-menu a:hover::after {
            transform: scaleX(1);
        }

        
        .landing-header-actions {
            display: flex;
            align-items: center;
            gap: 15px;
            flex-shrink: 0;
        }

        
        /* Header Social Media Icons */
        /* Theme Toggle Button */
        .theme-toggle-btn {
            background: var(--light-bg);
            border: 1px solid rgba(34, 53, 221, 0.15);
            border-radius: 50%;
            width: 42px;
            height: 42px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: var(--transition);
            position: relative;
            overflow: hidden;
            padding: 0;
        }

        
        body.dark-theme .theme-toggle-btn {
            background: rgba(42, 45, 62, 0.8);
            border-color: rgba(91, 138, 245, 0.2);
        }

        
        .theme-toggle-btn:hover {
            background: rgba(34, 53, 221, 0.08);
            transform: scale(1.1);
            border-color: rgba(34, 53, 221, 0.25);
        }

        
        body.dark-theme .theme-toggle-btn:hover {
            background: rgba(91, 138, 245, 0.15);
            border-color: rgba(91, 138, 245, 0.4);
        }

        
        .landing-lang-switcher {
            position: relative;
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px 16px;
            background: var(--light-bg);
            border-radius: 50px;
            border: 1px solid rgba(34, 53, 221, 0.15);
            cursor: pointer;
            transition: var(--transition);
        }

        
        .landing-lang-switcher:hover {
            background: rgba(34, 53, 221, 0.08);
            border-color: rgba(34, 53, 221, 0.25);
        }

        
        .landing-lang-icon {
            font-size: 1.1rem;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        
        /* Google Translate style icon */
        .landing-lang-icon svg {
            width: 18px;
            height: 18px;
            fill: var(--secondary);
        }

        
        .landing-lang-current {
            font-weight: 600;
            font-size: 0.9rem;
            color: var(--secondary);
            text-transform: uppercase;
        }

        
        .landing-lang-dropdown-arrow {
            font-size: 0.7rem;
            color: var(--secondary);
            transition: transform 0.3s ease;
        }

        
        .landing-lang-switcher.active .landing-lang-dropdown-arrow {
            transform: rotate(180deg);
        }

        
        .landing-lang-dropdown {
            position: absolute;
            top: calc(100% + 8px);
            right: 0;
            background: var(--white);
            border-radius: 12px;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
            padding: 8px;
            min-width: 120px;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-10px);
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 100;
        }

        
        .landing-lang-switcher.active .landing-lang-dropdown {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        
        .landing-lang-link {
            text-decoration: none;
            color: var(--secondary);
            font-weight: 600;
            font-size: 0.9rem;
            padding: 10px 14px;
            border-radius: 8px;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 8px;
        }

        
        .landing-lang-link:hover {
            background: var(--light-bg);
            color: var(--primary);
        }

        
        .landing-lang-link.active {
            background: var(--primary);
            color: var(--white);
        }

        
        /* Sized directly rather than downscaled. The old transform fought
           .landing-btn-primary:hover's scale(1.05), so hovering jumped the
           button from 0.85 to 1.05 in one step, and the downscale softened
           the label. The mobile rule below already sized it properly. */
        .landing-header-cta {
            padding: 9px 20px;
            font-size: 0.82rem;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        
        /* Scale down sparkles in header */
        .landing-header-cta .sparkles-icon {
            font-size: 0.8rem;
        }

        
        /* Mobile Menu Toggle */
        .landing-mobile-toggle {
            display: none;
            flex-direction: column;
            gap: 5px;
            cursor: pointer;
            padding: 8px;
        }

        
        .landing-mobile-toggle span {
            width: 25px;
            height: 3px;
            background: var(--secondary);
            border-radius: 3px;
            transition: var(--transition);
        }

        
        .landing-mobile-toggle.active span:nth-child(1) {
            transform: rotate(45deg) translate(8px, 8px);
        }

        
        .landing-mobile-toggle.active span:nth-child(2) {
            opacity: 0;
        }

        
        .landing-mobile-toggle.active span:nth-child(3) {
            transform: rotate(-45deg) translate(7px, -7px);
        }

        
        .landing-solution-list li:last-child {
            border-bottom: none;
        }

        
        /* Responsive */
        @media (max-width: 768px) {
            body {
                padding-top: 0; /* Header floats over content on mobile too */
            }

            .landing-header-container {
                height: 75px;
            }

            .landing-header-logo img {
                height: 42px;
            }

            .landing-mobile-toggle {
                display: flex;
                z-index: 1002;
            }

            /* Full-screen mobile menu overlay */
            .landing-header-nav {
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                width: 100vw;
                height: 100vh;
                background: rgba(255, 255, 255, 0.98);
                backdrop-filter: blur(20px);
                -webkit-backdrop-filter: blur(20px);
                padding: 100px 30px 40px;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                gap: 12px;
                opacity: 0;
                visibility: hidden;
                transform: scale(0.95);
                transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
                z-index: 1001;
                overflow-y: auto;
            }

            /* Dark theme full-screen menu */
            body.dark-theme .landing-header-nav {
                background: rgba(10, 11, 20, 0.98);
            }

            .landing-header-nav.active {
                transform: scale(1);
                opacity: 1;
                visibility: visible;
            }

            .landing-header-menu {
                flex-direction: column;
                gap: 10px;
                width: 100%;
                max-width: 320px;
                align-items: center;
                padding: 0;
                margin: 0;
            }

            .landing-header-menu li {
                width: 100%;
                text-align: center;
                list-style: none;
            }

            .landing-header-menu a {
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 14px 20px;
                background: var(--light-bg);
                border-radius: 12px;
                color: var(--secondary);
                width: 100%;
                text-align: center;
                font-size: 1.05rem;
                font-weight: 600;
            }

            /* Dark theme mobile menu items */
            body.dark-theme .landing-header-menu a {
                background: rgba(42, 45, 62, 0.8);
                color: #e4e7fd;
            }

            body.dark-theme .landing-header-menu a:hover {
                background: rgba(91, 138, 245, 0.2);
                color: #5b8af5;
            }

            .landing-header-actions {
                flex-direction: column;
                width: 100%;
                max-width: 320px;
                align-items: center;
                gap: 12px;
                margin-top: 10px;
            }

            .landing-lang-switcher,
            .landing-header-cta {
                width: 100%;
                justify-content: center;
                text-align: center;
            }

            .landing-header-cta {
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 0.9rem;
                padding: 12px 24px;
            }
            
            .landing-pain-section,
            .landing-outcome-section,
            .landing-solution-section,
            .landing-process-section {
                padding-left: 20px !important;
                padding-right: 20px !important;
            }
            
            .landing-hero-stats {
                grid-template-columns: 1fr;
            }
            
            .landing-pain-grid,
            .landing-outcome-grid,
            .landing-process-steps {
                grid-template-columns: 1fr;
            }
            
            .landing-solution-showcase {
                grid-template-columns: 1fr;
                gap: 50px;
            }
            
            .landing-solution-showcase:nth-child(even) {
                direction: ltr;
            }
            
            .landing-hero-cta {
                flex-direction: column;
            }
            
            .landing-btn {
                width: 100%;
                justify-content: center;
            }
            
            h1 {
                font-size: 2.2rem;
            }
            
            h2 {
                font-size: 1.9rem;
            }
            
            /* CTA Social Mobile */
            .landing-cta-social {
                margin-top: 40px;
                padding-top: 30px;
            }
            
            .landing-cta-social h4 {
                font-size: 1rem;
                margin-bottom: 20px;
            }
            
            .landing-social-links {
                gap: 15px;
            }
            
            .landing-social-links a {
                width: 45px;
                height: 45px;
            }
        }


        /* ===== Storylane Demo Section ===== */
        .landing-demo-section {
            padding: var(--section-padding) 0 0;
            background: var(--light-bg);
            scroll-margin-top: 80px;
            /* same full-bleed pattern the other sections use */
            width: 100vw;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
            overflow-x: hidden;
        }


        .landing-logo-track {
            display: flex;
            align-items: center;
            width: max-content;
            animation: logoMarquee 34s linear infinite;
        }


        /* Let someone stop it to actually click a logo. */
        .landing-hero-logos:hover .landing-logo-track,
        .landing-hero-logos:focus-within .landing-logo-track {
            animation-play-state: paused;
        }


        /* Fixed width, not auto. The loop is only seamless while one half of
           the track is at least as wide as the viewport — with auto widths a
           half measured ~1600px, so on a normal desktop the strip ran out and
           visibly snapped back to the start. 12 x 240px = 2880px per half. */
        .landing-logo-item {
            display: flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 240px;
            height: 64px;
            padding: 0 30px;
            box-sizing: border-box;
        }


        /* Shown in full colour. These are not flat monochrome wordmarks — one
           is a gold-crown mascot, the other a pastel candle emblem — so the
           usual grayscale logo-wall treatment turned both into gray blobs. */
        .landing-logo-item img {
            max-height: 100%;
            max-width: 180px;
            width: auto;
            opacity: 0.9;
            transition: opacity 0.3s ease, transform 0.3s ease;
        }


        .landing-logo-item:hover img,
        .landing-logo-item:focus-visible img {
            opacity: 1;
            transform: scale(1.06);
        }


        /* Arwa's wordmark is near-black and vanishes on the dark hero, so it
           ships as two files and the theme picks one. Smash needs no variant —
           its artwork already carries a light outline. Never a background:
           this page defaults to dark, so any "dark mode only" plate is what
           almost everyone would actually see. */
        .landing-logo-d {
            display: none;
        }


        body.dark-theme .landing-logo-l {
            display: none;
        }


        body.dark-theme .landing-logo-d {
            display: block;
        }


        @media (max-width: 600px) {
            .landing-hero-logos {
                margin-top: 22px;
            }

            .landing-logo-item {
                flex: 0 0 160px;
                height: 50px;
                padding: 0 18px;
            }

            .landing-logo-item img {
                max-width: 124px;
            }
        }


        @media (prefers-reduced-motion: reduce) {
            .landing-logo-track {
                animation: none;
            }
        }


        /* ===== Mobile hero: everything above the fold on first paint =====
           Last block in the sheet on purpose — it has to win over the earlier
           768px rules without an !important arms race. Budget on a 390x660
           screen is roughly: 76 chrome + 40 badge + 105 title + 115 subtitle +
           100 buttons + 62 logos + 91 stats + 40 padding = ~629px. */
        @media (max-width: 768px) {
            .landing-hero {
                padding-top: 76px;
                padding-bottom: 28px;
            }

            .landing-hero-badge {
                padding: 6px 14px;
                font-size: 0.78rem;
                margin-bottom: 12px;
                border-width: 1px;
            }

            .landing-hero h1 {
                font-size: 1.75rem;
                margin-bottom: 12px;
            }

            .landing-hero-subtitle {
                font-size: 0.92rem;
                line-height: 1.55;
            }

            .landing-hero-cta {
                gap: 12px;
                margin-top: 20px;
            }

            .landing-hero-cta .landing-btn {
                padding: 12px 20px;
                font-size: 0.92rem;
            }

            .landing-hero-logos {
                margin-top: 18px;
            }

            .landing-logo-item {
                flex: 0 0 150px;
                height: 44px;
                padding: 0 16px;
            }

            .landing-logo-item img {
                max-width: 116px;
            }

            /* Three across, not stacked. The earlier 768px block sets 1fr,
               which costs three full rows — on its own that blew the budget. */
            .landing-hero-stats {
                grid-template-columns: repeat(3, 1fr);
                gap: 8px;
                margin-top: 18px;
                padding-top: 14px;
            }

            .landing-stat-item {
                padding: 0 2px;
            }

            .landing-stat-number {
                font-size: 1.3rem;
                margin-bottom: 2px;
            }

            .landing-stat-label {
                font-size: 0.68rem;
                line-height: 1.3;
            }
        }


        /* Very short phones (SE-class, ~570px of usable height). */
        @media (max-width: 768px) and (max-height: 700px) {
            .landing-hero h1 {
                font-size: 1.55rem;
            }

            .landing-hero-subtitle {
                font-size: 0.86rem;
            }

            .landing-hero-logos {
                margin-top: 12px;
            }

            .landing-logo-item {
                height: 38px;
            }

            .landing-hero-stats {
                margin-top: 12px;
                padding-top: 10px;
            }
        }


        
        body.dark-theme .landing-btn-primary {
            background: #5b8af5;
            color: #0a0b14;
        }


        
        body.dark-theme .landing-btn-primary:hover {
            background: #3564e4;
        }


        
        body.dark-theme .landing-btn-primary::after {
            background: #5b8af5;
        }


        
        body.dark-theme .landing-btn-primary:hover::after {
            background: #3564e4;
        }


        
        body.dark-theme .landing-btn-outline {
            border-color: #5b8af5;
            color: #5b8af5;
        }


        
        body.dark-theme .landing-btn-outline:hover {
            background: #5b8af5;
            color: #0a0b14;
        }


        
        body.dark-theme .landing-btn-white {
            background: #0a0b14;
            color: #5b8af5;
        }


        
        body.dark-theme .landing-btn-white:hover {
            background: #1a1d2e;
        }


        
        .theme-icon {
            font-size: 1.3rem;
            position: absolute;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }


        
        /* Light mode: show sun, hide moon */
        .theme-icon-light {
            opacity: 1;
            transform: rotate(0deg) scale(1);
        }


        
        .theme-icon-dark {
            opacity: 0;
            transform: rotate(180deg) scale(0);
        }


        
        /* Dark mode: hide sun, show moon */
        body.dark-theme .theme-icon-light {
            opacity: 0;
            transform: rotate(-180deg) scale(0);
        }


        
        body.dark-theme .theme-icon-dark {
            opacity: 1;
            transform: rotate(0deg) scale(1);
        }


        
        /* Sized directly rather than downscaled. The old transform fought
           .landing-btn-primary:hover's scale(1.05), so hovering jumped the
           button from 0.85 to 1.05 in one step, and the downscale softened
           the label. The mobile rule below already sized it properly. */
        .landing-header-cta {
            padding: 9px 20px;
            font-size: 0.82rem;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }


        
        /* Scale down sparkles in header */
        .landing-header-cta .sparkles-icon {
            font-size: 0.8rem;
        }


        
        /* Animated sparkles icon */
        .sparkles-icon {
            display: inline-block;
            font-size: 1.1rem;
            animation: sparkleFloat 2s ease-in-out infinite;
        }


        
        /* Buttons */
        .landing-btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 18px 40px;
            font-family: var(--font-display);
            font-size: 1.1rem;
            font-weight: 700;
            text-decoration: none;
            border-radius: 50px;
            border: 2px solid transparent;
            cursor: pointer;
            transition: var(--transition);
            position: relative;
            overflow: hidden;
        }


        
        .landing-btn-primary {
            background: var(--primary);
            color: var(--white);
            box-shadow: var(--shadow-md);
        }


        
        .landing-btn-primary:hover {
            background: var(--primary-dark);
            color: var(--white);
            transform: scale(1.05);
            box-shadow: var(--shadow-lg);
        }


        
        .landing-btn-outline {
            background: transparent;
            color: var(--primary);
            border-color: var(--primary);
        }


        
        .landing-btn-outline:hover {
            background: var(--primary);
            color: var(--white);
        }


        
        /* ===== Primary button animation =====
           One definition, not two. Explicit z-index on each layer so paint
           order is deterministic: ring (-2) sits behind the fill (-1), which
           sits behind the label. No blur — that was what smeared it. */
        .landing-btn-primary {
            position: relative;
            overflow: visible;
        }



        .landing-btn-primary::before {
            content: '';
            position: absolute;
            inset: -3px;
            border-radius: inherit;
            background: linear-gradient(
                115deg,
                var(--accent),
                #7c9ff7,
                var(--primary),
                #5b8af5,
                var(--accent)
            );
            background-size: 260% 260%;
            animation: btnGlow 6s linear infinite;
            opacity: 0.85;
            transition: opacity 0.3s ease;
            z-index: -2;
        }



        /* Masks the middle of the ring so only the rim shows. */
        .landing-btn-primary::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: var(--primary);
            z-index: -1;
        }



        /* Speed up on hover rather than freezing mid-sweep. */
        .landing-btn-primary:hover::before {
            opacity: 1;
            animation-duration: 2.5s;
        }


        
        .landing-btn-white {
            background: var(--white);
            color: var(--primary);
        }


        
        .landing-btn-white:hover {
            background: var(--light-bg);
            color: var(--primary);
            transform: scale(1.05);
        }
@keyframes btnGlow {
            0% {
                background-position: 0% 50%;
            }
            50% {
                background-position: 100% 50%;
            }
            100% {
                background-position: 0% 50%;
            }
        }
@keyframes sparkleFloat {
            0%, 100% {
                transform: translateY(0) rotate(0deg) scale(1);
            }
            25% {
                transform: translateY(-3px) rotate(10deg) scale(1.1);
            }
            50% {
                transform: translateY(0) rotate(-10deg) scale(1);
            }
            75% {
                transform: translateY(-2px) rotate(5deg) scale(1.05);
            }
        }

/* ---------------------------------------------------------------------------
   Page content, themed to match the homepage: dark ground, Cairo headings and
   a readable measure. Astra's own chrome is hidden by the layout reset above.
--------------------------------------------------------------------------- */
body.sp-themed {
    background: var(--light-bg);
    color: var(--secondary);
    font-family: var(--font-body);
}

body.sp-themed.dark-theme {
    background: #0a0b14;
    color: #e4e7fd;
}

/* The header is fixed, so the first block clears it. */
body.sp-themed .site-content,
body.sp-themed #content { padding-top: clamp(96px, 12vw, 132px); }

body.sp-themed .ast-container,
body.sp-themed .entry-content > *:not(.alignfull):not(.alignwide) {
    max-width: 1120px;
    margin-inline: auto;
}

body.sp-themed .entry-content { padding-inline: clamp(18px, 4vw, 28px); }

body.sp-themed .entry-title,
body.sp-themed .entry-content h1,
body.sp-themed .entry-content h2,
body.sp-themed .entry-content h3,
body.sp-themed .entry-content h4 {
    font-family: var(--font-display);
    font-weight: 800;
    line-height: 1.3;
    color: var(--secondary);
}

body.sp-themed.dark-theme .entry-title,
body.sp-themed.dark-theme .entry-content h1,
body.sp-themed.dark-theme .entry-content h2,
body.sp-themed.dark-theme .entry-content h3,
body.sp-themed.dark-theme .entry-content h4 { color: #ffffff; }

body.sp-themed .entry-title { font-size: clamp(1.8rem, 4vw, 2.9rem); margin-bottom: .6em; }
body.sp-themed .entry-content h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); margin-top: 1.6em; }
body.sp-themed .entry-content h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); margin-top: 1.4em; }

body.sp-themed .entry-content p,
body.sp-themed .entry-content li {
    font-size: 1.02rem;
    line-height: 1.9;
    color: #4a4f6b;
}

body.sp-themed.dark-theme .entry-content p,
body.sp-themed.dark-theme .entry-content li { color: #b8bbd5; }

body.sp-themed .entry-content ul,
body.sp-themed .entry-content ol {
    padding-inline-start: 1.3em !important;
    margin: 0 0 1.2em !important;
    list-style: disc !important;
}
body.sp-themed .entry-content ol { list-style: decimal !important; }

body.sp-themed .entry-content a { color: var(--primary); font-weight: 600; }
body.sp-themed.dark-theme .entry-content a { color: #5b8af5; }
body.sp-themed .entry-content a:hover { text-decoration: underline; }

body.sp-themed .entry-content img,
body.sp-themed .wp-block-image img { border-radius: 16px; }

body.sp-themed .entry-content blockquote {
    border-inline-start: 4px solid var(--primary);
    background: rgba(34, 53, 221, .06);
    border-radius: 14px;
    padding: 18px 22px;
    margin: 1.6em 0;
}
body.sp-themed.dark-theme .entry-content blockquote {
    background: rgba(91, 138, 245, .1);
    border-inline-start-color: #5b8af5;
}

body.sp-themed .entry-content table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
body.sp-themed .entry-content th,
body.sp-themed .entry-content td {
    border: 1px solid rgba(34, 53, 221, .14);
    padding: 12px 14px;
    text-align: start;
}
body.sp-themed .entry-content th { background: rgba(34, 53, 221, .07); font-weight: 700; }
body.sp-themed.dark-theme .entry-content th,
body.sp-themed.dark-theme .entry-content td { border-color: rgba(228, 231, 253, .12); }
body.sp-themed.dark-theme .entry-content th { background: rgba(91, 138, 245, .12); }

/* ── Blog cards (Spectra post grid) and archive entries ─────────────────── */
body.sp-themed .uagb-post__inner-wrap,
body.sp-themed .ast-article-post,
body.sp-themed article.post {
    background: #ffffff;
    border: 1px solid rgba(34, 53, 221, .1);
    border-radius: 18px;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body.sp-themed.dark-theme .uagb-post__inner-wrap,
body.sp-themed.dark-theme .ast-article-post,
body.sp-themed.dark-theme article.post {
    background: #1a1d2e;
    border-color: rgba(228, 231, 253, .12);
}

body.sp-themed .uagb-post__inner-wrap:hover,
body.sp-themed .ast-article-post:hover,
body.sp-themed article.post:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(34, 53, 221, .16);
    border-color: rgba(34, 53, 221, .3);
}

body.sp-themed.dark-theme .uagb-post__inner-wrap:hover,
body.sp-themed.dark-theme .ast-article-post:hover,
body.sp-themed.dark-theme article.post:hover {
    box-shadow: 0 18px 44px rgba(0, 0, 0, .5);
    border-color: rgba(91, 138, 245, .4);
}

body.sp-themed .uagb-post__image img { border-radius: 0; }

body.sp-themed .uagb-post__title a,
body.sp-themed .ast-article-post .entry-title a,
body.sp-themed article.post .entry-title a {
    font-family: var(--font-display);
    font-weight: 800;
    color: var(--secondary);
}
body.sp-themed.dark-theme .uagb-post__title a,
body.sp-themed.dark-theme .ast-article-post .entry-title a,
body.sp-themed.dark-theme article.post .entry-title a { color: #ffffff; }

body.sp-themed .uagb-post__title a:hover { color: var(--primary); }
body.sp-themed.dark-theme .uagb-post__title a:hover { color: #5b8af5; }

body.sp-themed .uagb-post__excerpt { color: #4a4f6b; line-height: 1.8; }
body.sp-themed.dark-theme .uagb-post__excerpt { color: #b8bbd5; }

body.sp-themed .uagb-post__cta,
body.sp-themed .uagb-post__cta a {
    background: linear-gradient(135deg, var(--primary), var(--accent)) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
}

body.sp-themed .uagb-post__text,
body.sp-themed .uagb-post__meta,
body.sp-themed .entry-meta,
body.sp-themed .posted-on { color: #7a7f9c; }
body.sp-themed.dark-theme .uagb-post__meta,
body.sp-themed.dark-theme .entry-meta,
body.sp-themed.dark-theme .posted-on { color: #8f93b2; }

/* ── Forms (Contact Form 7 / WPForms) ──────────────────────────────────── */
body.sp-themed input[type="text"],
body.sp-themed input[type="email"],
body.sp-themed input[type="tel"],
body.sp-themed input[type="url"],
body.sp-themed textarea,
body.sp-themed select {
    border-radius: 12px !important;
    border: 1px solid rgba(34, 53, 221, .18) !important;
    padding: 12px 14px !important;
    font-family: var(--font-body);
}

body.sp-themed.dark-theme input[type="text"],
body.sp-themed.dark-theme input[type="email"],
body.sp-themed.dark-theme input[type="tel"],
body.sp-themed.dark-theme input[type="url"],
body.sp-themed.dark-theme textarea,
body.sp-themed.dark-theme select {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(228, 231, 253, .16) !important;
    color: #e4e7fd !important;
}

body.sp-themed input[type="submit"],
body.sp-themed button[type="submit"],
body.sp-themed .wpforms-submit {
    background: linear-gradient(135deg, var(--primary), var(--accent)) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 12px !important;
    padding: 13px 28px !important;
    font-weight: 800 !important;
    transition: transform .18s ease, box-shadow .18s ease;
}

body.sp-themed input[type="submit"]:hover,
body.sp-themed button[type="submit"]:hover,
body.sp-themed .wpforms-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(34, 53, 221, .35);
}

/* ── Site footer, rebuilt to match the header ──────────────────────────── */
.sp-site-footer {
    background: #0a0b14;
    color: #b8bbd5;
    padding: 44px clamp(18px, 5vw, 40px) 34px;
    margin-top: clamp(50px, 8vw, 90px);
    border-top: 1px solid rgba(228, 231, 253, .1);
}

.sp-site-footer-inner {
    max-width: var(--container-max);
    margin-inline: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
}

.sp-site-footer a { color: #b8bbd5; text-decoration: none; font-size: .92rem; }
.sp-site-footer a:hover { color: #5b8af5; }
.sp-site-footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.sp-site-footer-copy { font-size: .85rem; color: #8f93b2; }

/* ── Blog posts ───────────────────────────────────────────────────────── */

/* Posts open with an empty Spectra container left over from the old design;
   it only reserved space for a hero that no longer exists. */
body.sp-themed.single .entry-content > .wp-block-uagb-container:first-child { display: none !important; }
body.sp-themed.single .entry-content > .wp-block-spacer:first-child { display: none !important; }
body.sp-themed.single .wp-block-spacer { max-height: 40px !important; }

body.sp-themed.single .entry-content {
    max-width: 900px;
    margin-inline: auto;
}

body.sp-themed.single .entry-content > .wp-block-uagb-advanced-heading:first-of-type h2,
body.sp-themed.single .entry-content .uagb-heading-text {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(1.7rem, 3.6vw, 2.6rem);
    line-height: 1.3;
    text-align: start;
}




/* ── Article palette ──────────────────────────────────────────────────────
   The posts were written with their own slate/blue palette inline. Those values
   were rewritten to these variables, so one set of colours drives both themes
   and the layout the articles ship with is left untouched. */
body.sp-themed {
    --sp-a-ink: #0f172a;
    --sp-a-body: #475569;
    --sp-a-muted: #64748b;
    --sp-a-brand: #2235DD;
    --sp-a-brand-strong: #1a2bc6;
    --sp-a-brand-soft-ink: #3564e4;
    --sp-a-surface: #ffffff;
    --sp-a-soft: #eef1fe;
}

body.sp-themed.dark-theme {
    --sp-a-ink: #ffffff;
    --sp-a-body: #b8bbd5;
    --sp-a-muted: #8f93b2;
    --sp-a-brand: #5b8af5;
    --sp-a-brand-strong: #4a79e4;
    --sp-a-brand-soft-ink: #7fa5f8;
    --sp-a-surface: #1a1d2e;
    --sp-a-soft: rgba(91, 138, 245, .12);
}

/* ── Single post layout ───────────────────────────────────────────────────
   The article wrapper carries its own max-width; the title block above it used
   to run full width, which is what made the page look misaligned. */
body.sp-themed.single .entry-content > .wp-block-uagb-advanced-heading,
body.sp-themed.single .entry-content > .wp-block-image,
body.sp-themed.single .entry-content > p,
body.sp-themed.single .entry-content > ul,
body.sp-themed.single .entry-content > ol,
body.sp-themed.single .entry-content > figure {
    max-width: 860px;
    margin-inline: auto;
}

body.sp-themed.single .sp-article {
    max-width: 860px !important;
    margin-inline: auto !important;
    color: var(--sp-a-body) !important;
    font-family: var(--font-body) !important;
}

/* Follow the document's direction rather than the one baked into the article. */
body.sp-themed.single[dir="rtl"] .sp-article,
html[dir="rtl"] body.sp-themed.single .sp-article { text-align: start; }

body.sp-themed.single .entry-content > .wp-block-uagb-advanced-heading .uagb-heading-text {
    text-align: start;
    color: var(--sp-a-ink);
}

body.sp-themed.single .sp-article h1,
body.sp-themed.single .sp-article h2,
body.sp-themed.single .sp-article h3,
body.sp-themed.single .sp-article h4 { font-family: var(--font-display); }

body.sp-themed.single .sp-article img { border-radius: 14px; max-width: 100%; height: auto; }
body.sp-themed.single .sp-article table { width: 100%; border-collapse: collapse; }

/* Cards inside the articles pick up the surface colour of the active theme. */
body.sp-themed.dark-theme .sp-article [style*="var(--sp-a-surface)"] {
    border-color: rgba(228, 231, 253, .14) !important;
}

/* ── Related posts and post navigation ────────────────────────────────────
   Astra prints both after the article; untouched they sat on a bare background
   with default type, which read as an unfinished strip under the post. */
body.sp-themed .ast-single-related-posts-container {
    max-width: 1120px;
    margin: clamp(40px, 6vw, 70px) auto 0;
    padding: clamp(28px, 4vw, 46px) clamp(18px, 3vw, 30px);
    background: transparent;
    border-top: 1px solid var(--sp-line, rgba(34, 53, 221, .12));
}

body.sp-themed .ast-related-posts-title-section { margin-bottom: 22px; }

body.sp-themed .ast-related-posts-title {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: clamp(1.3rem, 2.6vw, 1.8rem);
    color: var(--sp-a-ink);
    text-align: start;
}

body.sp-themed .ast-related-posts-wrapper {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width: 940px) {
    body.sp-themed .ast-related-posts-wrapper { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
    body.sp-themed .ast-related-posts-wrapper { grid-template-columns: 1fr; }
}

body.sp-themed .ast-related-posts-inner-section,
body.sp-themed .ast-article-post.ast-related-post {
    background: var(--sp-a-surface);
    border: 1px solid var(--sp-line, rgba(34, 53, 221, .12));
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body.sp-themed .ast-related-posts-inner-section:hover {
    transform: translateY(-6px);
    border-color: rgba(34, 53, 221, .3);
    box-shadow: 0 18px 40px rgba(34, 53, 221, .14);
}

body.sp-themed.dark-theme .ast-related-posts-inner-section:hover {
    border-color: rgba(91, 138, 245, .4);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .5);
}

body.sp-themed .ast-related-post-featured-section { margin: 0 !important; }

body.sp-themed .ast-related-post-featured-section img,
body.sp-themed .post-thumb-img-content img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

body.sp-themed .ast-related-post-content { padding: 18px 18px 22px; }

body.sp-themed .ast-related-post-title {
    font-family: var(--font-display);
    font-size: 1rem !important;
    font-weight: 800;
    line-height: 1.5;
    margin: 0 0 8px;
}

body.sp-themed .ast-related-post-title a { color: var(--sp-a-ink); text-decoration: none; }
body.sp-themed .ast-related-post-title a:hover { color: var(--sp-a-brand); }
body.sp-themed .ast-related-post-excerpt p { font-size: .88rem; color: var(--sp-a-muted); line-height: 1.7; margin: 0; }
body.sp-themed .ast-related-posts-inner-section .entry-meta,
body.sp-themed .ast-related-posts-inner-section .posted-on { font-size: .78rem; color: var(--sp-a-muted); }

/* Previous / next links */
body.sp-themed .post-navigation {
    max-width: 900px;
    margin: clamp(30px, 5vw, 50px) auto 0;
    padding-inline: clamp(18px, 4vw, 28px);
}

body.sp-themed .post-navigation .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
}

body.sp-themed .post-navigation .nav-previous,
body.sp-themed .post-navigation .nav-next {
    flex: 1 1 240px;
    background: var(--sp-a-surface);
    border: 1px solid var(--sp-line, rgba(34, 53, 221, .12));
    border-radius: 14px;
    padding: 14px 18px;
    transition: border-color .2s ease, transform .2s ease;
}

body.sp-themed .post-navigation .nav-previous:hover,
body.sp-themed .post-navigation .nav-next:hover {
    transform: translateY(-3px);
    border-color: var(--sp-a-brand);
}

body.sp-themed .post-navigation a {
    color: var(--sp-a-ink);
    font-weight: 700;
    text-decoration: none;
    font-size: .92rem;
}
body.sp-themed .post-navigation a:hover { color: var(--sp-a-brand); }

/* ── Article direction follows the post's own language ────────────────────
   site.js measures the rendered text and stamps dir/lang on .entry-content for
   single posts only. Text then aligns to the start of that direction, while the
   header, footer and every other page keep the site's direction. */
body.sp-themed.single .entry-content.sp-article-dir,
body.sp-themed.single .entry-content.sp-article-dir .sp-article {
    text-align: start;
}

body.sp-themed.single .entry-content.sp-article-dir p,
body.sp-themed.single .entry-content.sp-article-dir li,
body.sp-themed.single .entry-content.sp-article-dir h1,
body.sp-themed.single .entry-content.sp-article-dir h2,
body.sp-themed.single .entry-content.sp-article-dir h3,
body.sp-themed.single .entry-content.sp-article-dir h4,
body.sp-themed.single .entry-content.sp-article-dir blockquote {
    text-align: start;
}

/* Deliberately centred blocks stay centred. */
body.sp-themed.single .entry-content.sp-article-dir [style*="text-align:center"],
body.sp-themed.single .entry-content.sp-article-dir [style*="text-align: center"],
body.sp-themed.single .entry-content.sp-article-dir .uagb-heading-text[class*="center"] {
    text-align: center !important;
}

/* Tables and lists mirror with the article rather than the site. */
body.sp-themed.single .entry-content.sp-article-dir th,
body.sp-themed.single .entry-content.sp-article-dir td { text-align: start; }

/* ── Mobile safety net ────────────────────────────────────────────────────
   The articles were authored with inline multi-column grids and fixed paddings.
   On a phone those overflow the viewport, so they collapse to a single column
   and anything unavoidably wide scrolls inside its own box instead of pushing
   the page sideways. */
@media (max-width: 620px) {
    body.sp-themed .entry-content [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }

    body.sp-themed .entry-content [style*="display:flex"],
    body.sp-themed .entry-content [style*="display: flex"] {
        flex-wrap: wrap !important;
    }

    body.sp-themed .entry-content table {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Generous inline padding eats most of a 360px screen. */
    body.sp-themed .entry-content [style*="padding:52px"],
    body.sp-themed .entry-content [style*="padding: 52px"],
    body.sp-themed .entry-content [style*="padding:48px"],
    body.sp-themed .entry-content [style*="padding: 48px"],
    body.sp-themed .entry-content [style*="padding:40px"],
    body.sp-themed .entry-content [style*="padding: 40px"] {
        padding: 24px 18px !important;
    }

    body.sp-themed .sp-page-wrap,
    body.sp-themed .entry-content { padding-inline: 16px; }
}

/* Nothing may push the page sideways, whatever a post contains. */
body.sp-themed .entry-content img,
body.sp-themed .entry-content svg,
body.sp-themed .entry-content iframe,
body.sp-themed .entry-content video {
    max-width: 100% !important;
    height: auto;
}

body.sp-themed { overflow-x: hidden; }

/* The fixed header is shorter on phones, so the first block clears less. */
@media (max-width: 768px) {
    body.sp-themed .site-content,
    body.sp-themed #content { padding-top: 88px; }
    body.sp-themed .sp-page-hero { padding-top: clamp(28px, 8vw, 56px); }
}

/* The burger must stay tappable and above the overlay it opens. */
@media (max-width: 768px) {
    body.sp-themed .landing-mobile-toggle {
        display: flex !important;
        z-index: 1002 !important;
        pointer-events: auto !important;
        cursor: pointer;
        padding: 10px 8px;      /* a finger-sized target, not three 3px bars */
        margin-inline-start: auto;
    }

    body.sp-themed .landing-header-nav { z-index: 1001 !important; }

    /* Nothing in the bar may sit on top of the burger. */
    body.sp-themed .landing-header-container { position: relative; z-index: 1; }
}
