/* --- CSS STYLES --- */ :root { --background: #ffffff; --foreground: #09090b; --card: #ffffff; --primary: #18181b; --primary-foreground: #fafafa; --secondary: #f4f4f5; --secondary-foreground: #18181b; --muted: #f4f4f5; --muted-foreground: #71717a; --border: #e4e4e7; --input: #e4e4e7; --radius: 0.5rem; --section-spacing: clamp(60px, 10vw, 120px); --container-max: 1200px; --gutter: 20px; --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; --font-arabic: "Cairo", ui-sans-serif, system-ui, sans-serif; } /* Apply Arabic font if language is Arabic */ html[lang="ar"] { --font-sans: "Cairo", ui-sans-serif, system-ui, sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; color: var(--foreground); line-height: 1.6; overflow-x: hidden; letter-spacing: -0.01em; } /* Directionality helper */ .container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--gutter); } a { text-decoration: none; color: inherit; transition: 0.2s; } ul { list-style: none; } /* Typography */ h1, h2, h3 { letter-spacing: -0.025em; line-height: 1.1; margin-bottom: 1rem; } h1 { font-size: clamp(2.25rem, 8vw, 4rem); } h2 { font-size: clamp(1.75rem, 5vw, 2.5rem); } h3 { font-size: 1.25rem; font-weight: 600; } p { color: var(--muted-foreground); } .lead { font-size: clamp(1.1rem, 3vw, 1.25rem); } /* Navigation */ header { position: fixed; top: 0; left: 0; right: 0; height: 6rem; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); z-index: 1000; display: flex; align-items: center; } .nav-inner { display: flex; justify-content: space-between; align-items: center; width: 100%; } .logo { font-weight: 800; font-size: 1.25rem; letter-spacing: -0.05em; display: flex; align-items: center; gap: 0.5rem; text-decoration: none; color: inherit;} .logo img { height: 70px; width: auto; } .nav-links { display: flex; gap: 1.5rem; } .nav-links a { font-size: 0.875rem; font-weight: 500; color: var(--muted-foreground); } .nav-links a:hover { color: var(--foreground); } .mobile-toggle { display: none; background: none; border: none; cursor: pointer; color: var(--foreground); } /* Language Switcher */ .lang-switch { display: flex; gap: 0.5rem; align-items: center; font-size: 0.8rem; font-weight: 600; margin: 0 1rem; cursor: pointer; border: 1px solid var(--border); padding: 4px 8px; border-radius: 4px; } .lang-switch:hover { background: var(--secondary); } /* Mobile Overlay */ .nav-overlay { position: fixed; top: 6rem; left: 0; width: 100%; height: 0; background: var(--background); overflow: hidden; transition: 0.3s cubic-bezier(0.16, 1, 0.3, 1); z-index: 999; display: flex; flex-direction: column; padding: 0 1.5rem; } .nav-overlay.open { height: calc(100vh - 6rem); padding-top: 2rem; } .nav-overlay a { font-size: 1.5rem; font-weight: 600; padding: 1.25rem 0; border-bottom: 1px solid var(--border); } /* Hero & Visuals */ .hero { padding: 8rem 0 var(--section-spacing); background: radial-gradient(#e4e4e7 1px, transparent 1px); background-size: 24px 24px; } .hero-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 3rem; align-items: center; } .hero-visual { border: 1px solid var(--border); border-radius: var(--radius); height: 320px; background: white; position: relative; overflow: hidden; box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.05); } .hero-visual-bg { width: 100%; height: 100%; background: linear-gradient(to right, #f4f4f5 1px, transparent 1px), linear-gradient(to bottom, #f4f4f5 1px, transparent 1px); background-size: 20px 20px; } .hero-img { width: 100%; height: 100%; object-fit: cover; display: block; } /* --- Marquee --- */ .partners-section { padding: 2.5rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); overflow: hidden; /* Prevents selection while dragging over logos */ user-select: none; } .marquee-track { display: flex; gap: 3rem; width: max-content; padding: 0 1rem; /* Removed 120s here - will be handled by JS for consistent speed */ animation: marquee linear infinite; /* Ensure smooth rendering */ will-change: transform; } .partner-logo { height: 40px; width: auto; object-fit: contain; filter: grayscale(100%); opacity: 0.5; transition: opacity 0.3s; } .partner-logo:hover { opacity: 1; filter: grayscale(0%); } .partner-item { font-weight: 700; color: #d4d4d8; font-size: 1.1rem; white-space: nowrap; display: flex; align-items: center; padding: 0 0.5rem; } @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* Cards & Badge */ .badge { display: inline-block; padding: 0.25rem 0.75rem; background: var(--secondary); border-radius: 99px; font-size: 0.75rem; font-weight: 600; margin-bottom: 1.5rem; } /* Carousel Styles (Shared) */ .section-header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 2rem; } .carousel-container { position: relative; } .carousel-track { display: flex; gap: 1.5rem; overflow-x: auto; scroll-behavior: smooth; padding-bottom: 1rem; -ms-overflow-style: none; scrollbar-width: none; scroll-snap-type: x mandatory; } .carousel-track::-webkit-scrollbar { display: none; } .carousel-item { flex: 0 0 auto; scroll-snap-align: start; width: 100%; } @media (min-width: 768px) { .services-track .carousel-item { width: calc(33.333% - 1rem); } .testimonials-track .carousel-item { width: calc(50% - 0.75rem); } .team-track .carousel-item { width: calc(25% - 1.125rem); } } .card { padding: 2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); transition: transform 0.2s, box-shadow 0.2s; height: 100%; display: flex; flex-direction: column; } .card:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,0.05); } .card-icon { width: 3rem; height: 3rem; background: var(--secondary); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; color: var(--foreground); } /* Testimonial Specifics */ .testimonial-img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--secondary); margin: 0 auto 1.5rem auto; display: block; } .testimonial-text { font-size: 1.125rem; font-weight: 500; color: var(--foreground); margin-bottom: auto; text-align: center; } .testimonial-author { text-align: center; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--secondary); } .testimonial-author-name { font-size: 0.9rem; font-weight: 700; color: var(--foreground); display: block; margin-bottom: 0.25rem; } .testimonial-author-role { font-size: 0.8rem; color: var(--muted-foreground); } /* Team Specifics */ .team-card { text-align: center; align-items: center; justify-content: center; } .team-card:hover { border-color: var(--foreground); } .team-img-wrapper { width: 96px; height: 96px; margin-bottom: 1.25rem; border-radius: 50%; background: var(--muted); overflow: hidden; flex-shrink: 0; } .team-img-wrapper img { width: 100%; height: 100%; object-fit: cover; } /* Carousel Controls */ .carousel-controls { display: flex; gap: 0.5rem; } .slider-btn { background: white; border: 1px solid var(--border); color: var(--foreground); width: 40px; height: 40px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.2s; flex-shrink: 0; } .slider-btn:hover { background: var(--secondary); border-color: var(--foreground); } /* Product Section (Dark) */ .product-section { background: #18181b; color: white; padding: var(--section-spacing) 0; position: relative; } .product-slider-wrapper { position: relative; width: 100%; overflow: hidden; } .product-slide { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; opacity: 0; position: absolute; top: 0; left: 0; width: 100%; transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); transform: translateY(30px); z-index: 0; pointer-events: none; visibility: hidden; } .product-slide.active { opacity: 1; position: relative; transform: translateY(0); z-index: 10; pointer-events: all; visibility: visible; } .product-ui-mockup { background: #27272a; border: 1px solid #3f3f46; border-radius: var(--radius); aspect-ratio: 16/10; padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; box-shadow: 0 20px 50px -10px rgba(0,0,0,0.5); } @keyframes popIn { 0% { transform: scale(0.95); opacity: 0; } 100% { transform: scale(1); opacity: 1; } } .product-slide.active .product-ui-mockup { animation: popIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } .ui-block { background: #3f3f46; border-radius: 4px; } .feature-list { list-style: none; margin-top: 1.5rem; } .feature-list li { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; color: #d4d4d8; } /* Product Controls */ .slider-controls { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; margin-bottom: 2rem; } .slider-controls .slider-btn { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: white; } .slider-controls .slider-btn:hover { background: white; color: #18181b; } .slider-indicators { display: flex; gap: 0.5rem; } .indicator { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.2); cursor: pointer; transition: 0.2s; } .indicator.active { background: white; width: 20px; border-radius: 4px; } /* Form Controls */ .contact-wrapper { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: white; } .contact-info { background: var(--secondary); padding: 3.5rem; } .contact-form-box { padding: 3.5rem; } .form-label { display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.5rem; } .form-control { width: 100%; padding: 0.75rem; border: 1px solid var(--input); border-radius: var(--radius); margin-bottom: 1.25rem; font-family: inherit; transition: 0.2s; } .form-control:focus { outline: none; border-color: var(--foreground); } textarea.form-control { min-height: 120px; resize: vertical; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0 1.5rem; height: 3rem; font-size: 0.875rem; font-weight: 500; border-radius: var(--radius); cursor: pointer; border: 1px solid transparent; transition: 0.2s; } .btn-primary { background: var(--primary); color: var(--primary-foreground); } .btn-primary:hover { opacity: 0.9; } .btn-outline { border: 1px solid var(--border); background: transparent; } .btn-outline:hover { background: var(--secondary); } .btn-lg { height: 3.5rem; padding: 0 2rem; font-size: 1rem; } /* Reveal Animation */ .reveal { opacity: 0; transform: translateY(20px); transition: 0.8s cubic-bezier(0.16, 1, 0.3, 1); } .reveal.active { opacity: 1; transform: translateY(0); } /* Footer */ footer { padding: 5rem 0 2.5rem; border-top: 1px solid var(--border); } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 4rem; } .footer-links li { margin-bottom: 0.75rem; font-size: 0.875rem; color: var(--muted-foreground); cursor: pointer; transition: 0.2s;} .footer-links li:hover { color: var(--foreground); } @media (max-width: 1024px) { .hero-grid, .product-slide, .contact-wrapper, .footer-grid { grid-template-columns: 1fr; } .nav-links, .nav-cta { display: none; } .mobile-toggle { display: block; } .product-slide { gap: 2rem; text-align: center; } .feature-list li { justify-content: center; } .slider-controls { justify-content: center; } .contact-info, .contact-form-box { padding: 2rem; } .carousel-item { width: 85%; } .section-header { flex-direction: column; align-items: flex-start; gap: 1rem; } } /* css for logo */ .logo-wrapper { --logo-scale: 0.35; font-size: calc(40px * var(--logo-scale)); display: inline-flex; flex-direction: row; align-items: center; gap: 0.8em; color: #132238; text-decoration: none; direction: ltr; } /* Refined Geometry */ .logo-wrapper { --t: 0.52em; --gap: 0.42em; --width: 3.2em; --r: 0.85em; /* Width of the text block - adjust this to make text wider/narrower */ --text-width: 3.5em; } /* --- SYMBOL CONSTRUCTION --- */ .symbol { position: relative; width: var(--width); height: calc((var(--t) * 4) + (var(--gap) * 3)); flex-shrink: 0; } .b { position: absolute; background: currentColor; } .top-left { top: 0; left: 0; width: 0.80em; height: var(--t); } .top-right { top: 0; right: 0; width: 1.88em; height: var(--t); } .middle { top: calc(var(--t) + var(--gap)); left: 0; width: 100%; height: var(--t); } .stem { top: calc(var(--t) + var(--gap)); bottom: 0; left: 0.80em; width: var(--t); } .inner { top: calc((var(--t) * 2) + (var(--gap) * 2)); right: 0; width: 1.65em; height: var(--t); } .bottom-base { bottom: 0; left: 0; right: var(--r); height: var(--t); } .right-wall { top: calc((var(--t) * 2) + (var(--gap) * 2)); bottom: var(--r); right: 0; width: var(--t); } .corner-arc { position: absolute; bottom: 0; right: 0; width: var(--r); height: var(--r); border-bottom: var(--t) solid currentColor; border-right: var(--t) solid currentColor; border-bottom-right-radius: var(--r); box-sizing: border-box; } /* --- STRETCHED TEXT GROUP --- */ .brand-text { display: flex; flex-direction: column; width: var(--text-width); /* Fixed width for both to fill */ align-items: stretch; } .arabic { font-family: 'Cairo', sans-serif; font-size: 0.9em; /* Larger to feel balanced with English height */ font-weight: 800; line-height: 1; text-align: justify; text-align-last: justify; /* Stretches the Arabic characters */ width: 100%; margin-bottom: 0.4em; direction: rtl; } .english { font-family: 'Inter', sans-serif; font-size: 0.8em; /* Smaller font stretched wide looks more premium */ font-weight: 700; text-transform: uppercase; display: flex; justify-content: space-between; /* Stretches English letters to edges */ width: 100%; line-height: 1; direction: ltr; } @media (max-width: 768px) { .logo-wrapper { --logo-scale: 0.25; } }