/*
Theme Name: Twenty Twenty
Text Domain: twentytwenty
Version: 2.9
Tested up to: 6.8
Requires at least: 4.7
Requires PHP: 5.2.4
Description: Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor. Organizations and businesses have the ability to create dynamic landing pages with endless layouts using the group and column blocks. The centered content column and fine-tuned typography also makes it perfect for traditional blogs. Complete editor styles give you a good idea of what your content will look like, even before you publish. You can give your site a personal touch by changing the background colors and the accent color in the Customizer. The colors of all elements on your site are automatically calculated based on the colors you pick, ensuring a high, accessible color contrast for your visitors.
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-patterns, block-styles, wide-blocks, accessibility-ready
Author: the WordPress team
Author URI: https://wordpress.org/
Theme URI: https://wordpress.org/themes/twentytwenty/
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

All files, unless otherwise stated, are released under the GNU General Public
License version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html)

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned
with others.
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------

	0. 	CSS Reset
	1. 	Document Setup
	2. 	Element Base
	3. 	Helper Classes
	4. 	Site Header
	5. 	Menu Modal
	6. 	Search Modal
	7. 	Page Templates
		a. 	Template: Cover Template
		c. 	Template: Full Width
	8.  Post: Archive
	9.  Post: Single
	10. Blocks
	11. Entry Content
	12. Comments
	13. Site Pagination
	14. Error 404
	15. Widgets
	16. Site Footer
	17. Media Queries

----------------------------------------------------------------------------- */


/* -------------------------------------------------------------------------- */

/*	0. CSS Reset
/* -------------------------------------------------------------------------- */

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

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: #1f2937;
    overflow-x: hidden;
}

/* Utility Classes */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1rem;
}

.min-h-screen {
    min-height: 100vh;
}

.text-blue-600 {
    color: #2563eb;
}

.text-cyan-600 {
    color: #0891b2;
}

.icon-16 {
    width: 16px;
    height: 16px;
}

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

.icon-40 {
    width: 40px;
    height: 40px;
}

.icon-48 {
    width: 48px;
    height: 48px;
}

/* Hero Section */
.hero-section {
    position: relative;
    background: none; /* Original gradient removed for premium background */
    padding: 8rem 0 5rem;
    overflow: hidden;
}

/* Premium Animated Background Styles */
.premium-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%);
}

/* Animated Gradient Orbs */
.animated-orbs {
    position: absolute;
    width: 100%;
    height: 100%;
}

.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(40px);
    opacity: 0.7;
    animation: floatOrb 15s ease-in-out infinite;
}

.orb-1 {
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, #6366f1, transparent 70%);
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.orb-2 {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, #06b6d4, transparent 70%);
    top: 60%;
    left: 80%;
    animation-delay: 3s;
}

.orb-3 {
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, #8b5cf6, transparent 70%);
    top: 80%;
    left: 20%;
    animation-delay: 6s;
}

.orb-4 {
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, #10b981, transparent 70%);
    top: 30%;
    left: 70%;
    animation-delay: 9s;
}

@keyframes floatOrb {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(50px, -30px) scale(1.1);
    }
    50% {
        transform: translate(-30px, 40px) scale(0.9);
    }
    75% {
        transform: translate(-50px, -20px) scale(1.05);
    }
}

/* Floating Tech Elements */
.floating-tech {
    position: absolute;
    width: 100%;
    height: 100%;
}

.tech-element {
    position: absolute;
    font-size: 2rem;
    opacity: 0.3;
    animation: floatTech 8s ease-in-out infinite;
    transition: all 0.3s ease;
}

.tech-element:hover {
    opacity: 0.8;
    transform: scale(1.5);
}

.tech-element:nth-child(1) {
    top: 15%;
    left: 15%;
    animation-delay: 0s;
}

.tech-element:nth-child(2) {
    top: 25%;
    left: 85%;
    animation-delay: 1s;
}

.tech-element:nth-child(3) {
    top: 75%;
    left: 10%;
    animation-delay: 2s;
}

.tech-element:nth-child(4) {
    top: 65%;
    left: 90%;
    animation-delay: 3s;
}

.tech-element:nth-child(5) {
    top: 85%;
    left: 75%;
    animation-delay: 4s;
}

.tech-element:nth-child(6) {
    top: 45%;
    left: 5%;
    animation-delay: 5s;
}

@keyframes floatTech {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    33% {
        transform: translateY(-20px) rotate(120deg);
    }
    66% {
        transform: translateY(10px) rotate(240deg);
    }
}

/* Animated Grid */
.animated-grid {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: 
        linear-gradient(rgba(37, 99, 235, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.1) 1px, transparent 1px);
    background-size: 50px 50px;
    animation: gridMove 20s linear infinite;
    opacity: 0.4;
}

@keyframes gridMove {
    0% {
        transform: translate(0, 0);
    }
    100% {
        transform: translate(50px, 50px);
    }
}

/* Pulse Rings */
.pulse-rings {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.pulse-ring {
    position: absolute;
    border: 2px solid rgba(37, 99, 235, 0.3);
    border-radius: 50%;
    animation: pulseRing 4s linear infinite;
}

.pulse-ring:nth-child(1) {
    width: 100px;
    height: 100px;
    animation-delay: 0s;
}

.pulse-ring:nth-child(2) {
    width: 200px;
    height: 200px;
    animation-delay: 1s;
}

.pulse-ring:nth-child(3) {
    width: 300px;
    height: 300px;
    animation-delay: 2s;
}

@keyframes pulseRing {
    0% {
        transform: scale(0.1);
        opacity: 1;
    }
    100% {
        transform: scale(2);
        opacity: 0;
    }
}

/* Original Hero Background Elements (Removed) */
.hero-background,
.pulse-circle-1,
.pulse-circle-2 {
    display: none;
}

.hero-content {
    text-align: center;
    position: relative;
    z-index: 10; /* Ensure content stays above background */
}

.hero-title {
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    color: white; /* Updated for dark background */
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.hero-description {
    font-size: 1.5rem;
    color: rgba(255, 255, 255, 0.9); /* Updated for dark background */
    margin-bottom: 2rem;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
}

.hero-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
    align-items: center;
    margin-bottom: 4rem;
}

@media (min-width: 640px) {
    .hero-buttons {
        flex-direction: row;
    }
}

.btn-primary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    background: #2563eb;
    color: white;
    border: none;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.btn-primary:hover {
    background: #1d4ed8;
    transform: scale(1.05);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.btn-secondary {
    padding: 1rem 2rem;
    background: white;
    color: #2563eb;
    border: 2px solid #2563eb;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.btn-secondary:hover {
    background: #dbeafe;
    transform: scale(1.05);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

/* Stats Grid */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    position: relative;
    z-index: 10; /* Ensure stats stay above background */
}

@media (min-width: 768px) {
    .stats-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.stat-item {
    text-align: center;
}

.stat-number {
    font-size: 3rem;
    font-weight: 800;
    color: #60a5fa; /* Updated for dark background */
    margin-bottom: 0.5rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

@media (min-width: 768px) {
    .stat-number {
        font-size: 3.75rem;
    }
}

.stat-label {
    color: rgba(255, 255, 255, 0.8); /* Updated for dark background */
    font-weight: 500;
}

/* Services Section */
.services-section {
    padding: 5rem 0;
    background: white;
}

.section-header {
    text-align: center;
    margin-bottom: 4rem;
}

.section-title {
    font-size: 3rem;
    font-weight: 800;
    color: #111827;
    margin-bottom: 1rem;
}

@media (min-width: 768px) {
    .section-title {
        font-size: 3.75rem;
    }
}

.section-description {
    font-size: 1.25rem;
    color: #4b5563;
    max-width: 42rem;
    margin: 0 auto;
}

.services-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.service-card {
    background: linear-gradient(135deg, #ffffff 0%, #dbeafe 100%);
    padding: 2rem;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    border: 1px solid #dbeafe;
    cursor: pointer;
    transition: all 0.3s ease;
}

.service-card:hover {
    transform: translateY(-0.5rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    border-color: #2563eb;
}

.service-icon {
    color: #2563eb;
    margin-bottom: 1.5rem;
    transition: transform 0.3s ease;
}

.service-card:hover .service-icon {
    transform: scale(1.1);
}

.service-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.service-description {
    color: #4b5563;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.service-link {
    color: #2563eb;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    transition: gap 0.3s ease;
}

.service-card:hover .service-link {
    gap: 0.75rem;
}

/* Why Choose Section */
.why-choose-section {
    padding: 5rem 0;
    background: linear-gradient(135deg, #2563eb 0%, #0891b2 100%);
    color: white;
}

.features-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .features-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.feature-item {
    text-align: center;
}

.feature-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.feature-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.feature-description {
    font-size: 1.125rem;
    opacity: 0.9;
}

/* Testimonials Section */
.testimonials-section {
    padding: 5rem 0;
    background: #f9fafb;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-bottom: 4rem;
}

@media (min-width: 768px) {
    .testimonials-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.testimonial-card {
    background: white;
    padding: 2rem;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.testimonial-card:hover {
    transform: translateY(-0.5rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.testimonial-avatar {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.testimonial-content {
    color: #4b5563;
    font-style: italic;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.testimonial-author {
    border-top: 1px solid #e5e7eb;
    padding-top: 1rem;
}

.author-name {
    font-weight: 700;
    color: #111827;
}

.author-role {
    font-size: 0.875rem;
    color: #6b7280;
}

.clients-section {
    text-align: center;
}

.clients-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 2rem;
}

.clients-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 2rem;
}

.client-item {
    padding: 1rem 2rem;
    background: white;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    color: #374151;
    font-weight: 600;
    font-size: 1.125rem;
    transition: box-shadow 0.3s ease;
}

.client-item:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* CTA Section */
.cta-section {
    padding: 5rem 0;
    background: linear-gradient(135deg, #2563eb 0%, #0891b2 100%);
    color: white;
    text-align: center;
}

.cta-title {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .cta-title {
        font-size: 3.75rem;
    }
}

.cta-description {
    font-size: 1.25rem;
    margin-bottom: 2rem;
    opacity: 0.9;
    max-width: 64rem;
    margin-left: auto;
    margin-right: auto;
}

.cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
}

@media (min-width: 640px) {
    .cta-buttons {
        flex-direction: row;
    }
}

.btn-cta-primary {
    padding: 1rem 2rem;
    background: white;
    color: #2563eb;
    border: none;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.btn-cta-primary:hover {
    background: #f3f4f6;
    transform: scale(1.05);
}

.btn-cta-secondary {
    padding: 1rem 2rem;
    background: transparent;
    color: white;
    border: 2px solid white;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-cta-secondary:hover {
    background: white;
    color: #2563eb;
    transform: scale(1.05);
}

/* Animations */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeInUp 10000s ease forwards;
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Scroll Animations */
.scroll-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}

.scroll-animate.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Video Background Styles */
.video-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
}

.bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}

.video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.7); /* Dark overlay for better text contrast */
    z-index: 1;
}

/* Ensure content stays above video */
.hero-content,
.stats-grid {
    position: relative;
    z-index: 10;
}