/* AD Technology Partners Custom Styles */ /* Font imports */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); :root { --primary-color: #2D2D2D; --secondary-color: #575757; --accent-color: #0A67B2; --text-color: #2D2D2D; --light-bg: #F8F8F8; --dark-bg: #1A1A1A; --border-radius: 0px; --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } * { border-radius: 0; } body { font-family: 'Inter', sans-serif; color: var(--text-color); line-height: 1.6; background-color: white; } /* Typography */ h1, .h1 { font-size: 5.5rem; font-weight: 800; line-height: 1.1; color: var(--primary-color); margin-bottom: 2rem; letter-spacing: -0.02em; } h2, .h2 { font-size: 3.5rem; font-weight: 700; line-height: 1.2; color: var(--primary-color); margin-bottom: 1.5rem; letter-spacing: -0.02em; } h3, .h3 { font-size: 2rem; font-weight: 600; line-height: 1.3; color: var(--primary-color); margin-bottom: 1rem; letter-spacing: -0.01em; } .lead { font-size: 1.5rem; font-weight: 400; line-height: 1.5; color: var(--secondary-color); margin-bottom: 2rem; } /* Hero Section */ .hero { position: relative; padding: 180px 0 120px; background-color: #fff; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 50%; left: 50%; width: 200%; height: 200%; background-image: url('../img/logo-no-text.svg'); background-repeat: repeat; background-size: 120px; opacity: 0.01; filter: brightness(0%) contrast(100%); z-index: 0; transform: translate(-50%, -50%) rotate(45deg); } .hero-content { position: relative; z-index: 1; } .hero h1 { font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 800; line-height: 1.2; margin-bottom: 1.5rem; background: linear-gradient(45deg, #2D2D2D, #575757); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero .lead { font-size: clamp(1.125rem, 2vw, 1.25rem); font-weight: 500; color: #575757; margin-bottom: 2rem; max-width: 540px; } .hero .btn { position: relative; padding: 0.875rem 2rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; border: none; overflow: hidden; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); z-index: 1; border-radius: 0; } .hero .btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 120%; height: 0; padding-bottom: 120%; border-radius: 50%; transform: translate3d(-50%, -50%, 0) scale(0); z-index: -1; transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); } .hero .btn:hover { transform: translateY(-2px); } .hero .btn:active { transform: translateY(1px); } .hero .btn-primary { background: linear-gradient(45deg, #0A67B2, #0a77cc); color: white; box-shadow: 0 4px 15px rgba(10, 103, 178, 0.2); border-radius: 0; } .hero .btn-primary::before { background: linear-gradient(45deg, #0a77cc, #0A67B2); } .hero .btn-primary:hover { box-shadow: 0 8px 25px rgba(10, 103, 178, 0.3); } .hero .btn-primary:hover::before { transform: translate3d(-50%, -50%, 0) scale(1.5); } .hero .btn-outline-dark { background: transparent; color: #2D2D2D; border: 2px solid #2D2D2D; border-radius: 0; } .hero .btn-outline-dark::before { background: #2D2D2D; transition: transform 0.7s ease; } .hero .btn-outline-dark:hover { color: white; border-color: #2D2D2D; box-shadow: 0 8px 25px rgba(45, 45, 45, 0.15); } .hero .btn-outline-dark:hover::before { transform: translate3d(-50%, -50%, 0) scale(1.5); } .hero-pattern { position: relative; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } .hero-pattern svg { max-width: 100%; height: auto; animation: float 6s ease-in-out infinite; } .hero-pattern circle[r="200"] { animation: pulse 4s ease-in-out infinite; } .hero-pattern circle[r="150"] { animation: rotate 20s linear infinite; transform-origin: 250px 250px; } .hero-pattern path { animation: dash 15s linear infinite; stroke-dasharray: 400; stroke-dashoffset: 400; } .hero-pattern circle[r="8"] { animation: glow 3s ease-in-out infinite; } .hero-pattern circle[fill="#FF5733"] { animation: pulse-orange 4s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 0.1; } 50% { transform: scale(1.05); opacity: 0.2; } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes dash { 0% { stroke-dashoffset: 400; } 50% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -400; } } @keyframes glow { 0%, 100% { opacity: 1; filter: drop-shadow(0 0 2px rgba(45, 45, 45, 0.3)); } 50% { opacity: 0.7; filter: drop-shadow(0 0 5px rgba(45, 45, 45, 0.5)); } } @keyframes pulse-orange { 0%, 100% { opacity: 1; filter: drop-shadow(0 0 2px rgba(10, 103, 178, 0.3)); } 50% { opacity: 0.7; filter: drop-shadow(0 0 5px rgba(10, 103, 178, 0.5)); } } @keyframes blink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.8); } } @keyframes orbit { from { transform: rotate(0deg) translateX(150px) rotate(0deg); } to { transform: rotate(360deg) translateX(150px) rotate(-360deg); } } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20px); } } @media (max-width: 991.98px) { .hero { padding: 140px 0 80px; } .hero .btn { padding: 0.75rem 1.5rem; font-size: 0.875rem; border-radius: 0; } } /* Global Section Styles */ section { min-height: 100vh; display: flex; align-items: center; position: relative; overflow: hidden; } /* Adjust container vertical spacing */ section > .container { width: 100%; padding-top: 7rem; padding-bottom: 7rem; margin: 0; } /* Remove py-5 classes from sections since we have global padding */ section.section, section.hero, section.how-it-works, section#services, section#expertise, section#case-studies, section#contact { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 0; position: relative; } /* Adjust navbar offset */ section:first-of-type { padding-top: 120px; } /* Ensure content is centered when section is taller than content */ section .container { margin: auto; width: 100%; } @media (max-width: 768px) { section.section, section.hero, section.how-it-works, section#services, section#expertise, section#case-studies, section#contact { min-height: 100vh; padding: 0; } section:first-of-type { padding-top: 100px; } } /* Services Section */ .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin: 3rem 0; } .service-card { position: relative; padding: 2.5rem; background: white; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; height: 100%; } .service-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 0; background: linear-gradient(180deg, #0A67B2, #0a77cc); transition: height 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .service-card:hover, .active-service-card { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .service-card:hover::before { height: 100%; } .service-card i { color: #0A67B2; margin-bottom: 1.5rem; font-size: 2.5rem; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .service-card:hover i, .active-service-card i { transform: scale(1.1); } .service-card h3 { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; color: #2D2D2D; } .service-card p { color: #575757; margin-bottom: 1.5rem; } .service-card ul { margin-top: auto; list-style: none; padding: 0; width: 100%; } .service-card ul li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; color: #575757; } .service-card ul li::before { content: '→'; position: absolute; left: 0; color: #0A67B2; font-weight: 700; } /* Expertise Section */ .expertise-dark { background: linear-gradient(135deg, #1a1a1a, #2d2d2d); position: relative; overflow: hidden; } .expertise-dark::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 50% 50%, rgba(10, 103, 178, 0.1) 0%, rgba(10, 103, 178, 0) 70%); pointer-events: none; } .expertise-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; margin-top: 3rem; } .expertise-card { background: rgba(255, 255, 255, 0.02); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 0; padding: 2rem; transition: var(--transition); position: relative; overflow: hidden; } .expertise-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); opacity: 0; transition: var(--transition); } .expertise-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } .expertise-card:hover::before { opacity: 1; } .expertise-icon { width: 64px; height: 64px; background: linear-gradient(135deg, var(--accent-color), #0a77cc); border-radius: 16px; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; position: relative; overflow: hidden; } .expertise-icon::after { content: ''; position: absolute; width: 100%; height: 100%; background: linear-gradient(45deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)); animation: shimmer 2s infinite; } .expertise-icon i { font-size: 1.75rem; color: white; position: relative; z-index: 1; } .expertise-content { color: white; } .expertise-content h3 { color: white; margin-bottom: 1.5rem; font-size: 1.75rem; } .expertise-features { display: grid; gap: 1rem; margin: 1.5rem 0; } .feature { display: flex; align-items: center; gap: 1rem; color: rgba(255, 255, 255, 0.8); font-size: 1rem; } .feature i { color: var(--accent-color); font-size: 1rem; } .expertise-link { color: var(--accent-color); text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem; font-weight: 500; transition: var(--transition); } .expertise-link:hover { color: #0a77cc; } .expertise-link i { transition: var(--transition); } .expertise-link:hover i { transform: translateX(5px); } @keyframes shimmer { 0% { transform: translateX(-100%) rotate(45deg); } 100% { transform: translateX(100%) rotate(45deg); } } @media (max-width: 768px) { .expertise-grid { grid-template-columns: 1fr; } } /* Process Section */ .process-section { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); position: relative; overflow: hidden; } .process-section::before { content: ''; position: absolute; width: 1000px; height: 1000px; background: linear-gradient(45deg, rgba(10, 103, 178, 0.03), rgba(10, 103, 178, 0)); border-radius: 50%; top: -400px; right: -400px; z-index: 0; } .process-section::after { content: ''; position: absolute; width: 800px; height: 800px; background: linear-gradient(45deg, rgba(10, 103, 178, 0), rgba(10, 103, 178, 0.03)); border-radius: 50%; bottom: -300px; left: -300px; z-index: 0; } .process-timeline { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; padding: 2rem 0; z-index: 1; } .process-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2rem; background: white; border-radius: 0; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); position: relative; } .process-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); } .process-icon { position: relative; width: 80px; height: 80px; background: linear-gradient(135deg, #0A67B2, #0a77cc); border-radius: 20px; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.75rem; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); margin-bottom: 1.5rem; } .process-card:hover .process-icon { transform: scale(1.1) rotate(-5deg); box-shadow: 0 10px 20px rgba(10, 103, 178, 0.2); } .process-number { position: absolute; bottom: -10px; right: -10px; background: white; border-radius: 12px; padding: 0.25rem 0.75rem; font-size: 0.875rem; font-weight: 700; color: #0A67B2; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .process-content { flex: 1; } .process-content h3 { font-size: 1.75rem; font-weight: 700; color: #2D2D2D; margin-bottom: 1rem; line-height: 1.3; } .process-content p { font-size: 1.125rem; color: #575757; margin-bottom: 1.5rem; line-height: 1.5; } .process-features { display: flex; flex-direction: column; gap: 0.5rem; } .process-feature { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background: rgba(10, 103, 178, 0.05); border-radius: 12px; transition: all 0.3s ease; } .process-card:hover .process-feature { transform: translateX(5px); background: rgba(10, 103, 178, 0.1); } .process-feature i { color: var(--accent-color); margin-right: 0.5rem; } .process-feature span { color: #575757; font-weight: 500; } .process-section .section-title { font-size: 3.5rem; font-weight: 800; background: linear-gradient(135deg, #2D2D2D 0%, #575757 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 1.5rem; line-height: 1.2; } .process-section .section-subtitle { font-size: 1.25rem; color: #575757; max-width: 800px; margin: 0 auto; line-height: 1.6; } @media (max-width: 768px) { .process-section .section-title { font-size: 2.5rem; } .process-section .section-subtitle { font-size: 1.125rem; } .process-content h3 { font-size: 1.5rem; } .process-content p { font-size: 1rem; } .process-feature span { font-size: 0.9375rem; } } @media (max-width: 992px) { .process-timeline { grid-template-columns: repeat(2, 1fr); } .process-timeline::before { display: none; } } @media (max-width: 576px) { .process-timeline { grid-template-columns: 1fr; } .process-card { padding: 1.5rem; } .process-icon { width: 60px; height: 60px; font-size: 1.5rem; } .process-features { width: 100%; } } /* Case Studies Section */ .case-studies-section { background: linear-gradient(135deg, #1a1a1a, #2d2d2d); position: relative; overflow: hidden; } .case-studies-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 50% 50%, rgba(10, 103, 178, 0.1) 0%, rgba(10, 103, 178, 0) 70%); pointer-events: none; } .case-studies-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; margin-top: 3rem; } .case-study-card { position: relative; overflow: hidden; transition: transform 0.3s ease; } .card-glass { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 24px; padding: 2.5rem; height: 100%; transition: all 0.3s ease; } .case-study-card:hover .card-glass { background: rgba(255, 255, 255, 0.05); transform: translateY(-5px); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); } .case-study-icon { width: 80px; height: 80px; background: linear-gradient(135deg, var(--accent-color), #0077cc); border-radius: 20px; display: flex; align-items: center; justify-content: center; margin-bottom: 2rem; position: relative; box-shadow: 0 10px 20px rgba(10, 103, 178, 0.2); } .case-study-icon i { font-size: 2rem; color: white; } .case-study-card h3 { color: white; font-size: 1.8rem; margin-bottom: 2rem; font-weight: 700; } .metrics-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; } .metric { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1.5rem; background: rgba(255, 255, 255, 0.03); border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.05); transition: all 0.3s ease; } .case-study-card:hover .metric { background: rgba(255, 255, 255, 0.05); transform: translateY(-3px); } .metric-value { font-size: 2.5rem; font-weight: 800; color: var(--accent-color); margin-bottom: 0.5rem; background: linear-gradient(135deg, #0A67B2, #0077cc); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .metric-label { color: rgba(255, 255, 255, 0.8); font-size: 1rem; font-weight: 500; } .text-gradient { background: linear-gradient(135deg, #0A67B2, #0077cc); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } @media (max-width: 768px) { .case-studies-grid { grid-template-columns: 1fr; } .metrics-grid { grid-template-columns: 1fr 1fr; } .case-study-card h3 { font-size: 1.5rem; } .metric-value { font-size: 2rem; } } /* Gradient Button */ .btn-gradient { background: linear-gradient(45deg, var(--accent-color), #0a77cc); color: white; box-shadow: 0 4px 15px rgba(10, 103, 178, 0.2); border-radius: 0; } .btn-gradient::before { background: linear-gradient(45deg, #0a77cc, var(--accent-color)); } .btn-gradient:hover { color: white; box-shadow: 0 8px 25px rgba(10, 103, 178, 0.3); } .btn-gradient:hover::before { transform: translate3d(-50%, -50%, 0) scale(1.5); } /* How it works Section */ .how-it-works { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); padding: 6rem 0; position: relative; } .step-card { display: flex; flex-direction: column; padding: 2.5rem; background: white; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); position: relative; border: 1px solid rgba(0, 0, 0, 0.05); } .step-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); border-color: transparent; } .step-number { position: relative; width: 64px; height: 64px; background: linear-gradient(135deg, #0A67B2, #0a77cc); border-radius: 16px; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.5rem; font-weight: 700; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); margin-bottom: 1.5rem; } .step-card:hover .step-number { transform: scale(1.1) rotate(-5deg); box-shadow: 0 10px 20px rgba(10, 103, 178, 0.2); } .step-content { flex: 1; } .step-card h3 { font-size: 1.75rem; font-weight: 700; color: #2D2D2D; margin-bottom: 1rem; line-height: 1.3; } .step-card p { font-size: 1.125rem; color: #575757; margin-bottom: 1.5rem; line-height: 1.5; } .step-features { display: flex; flex-direction: column; gap: 0.75rem; margin-top: auto; } .step-feature { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background: rgba(10, 103, 178, 0.05); border-radius: 12px; transition: all 0.3s ease; } .step-card:hover .step-feature { transform: translateX(5px); background: rgba(10, 103, 178, 0.1); } .step-feature i { color: #0A67B2; font-size: 1rem; } .step-feature span { font-size: 0.9375rem; color: #575757; font-weight: 500; } .step-list { list-style: none; padding-left: 0; margin-top: 1rem; } .step-list li { display: flex; align-items: center; margin-bottom: 0.5rem; } .step-list li i { color: var(--accent-color); margin-right: 0.75rem; font-size: 1rem; } @media (max-width: 768px) { .step-card { padding: 2rem; } .step-number { width: 56px; height: 56px; font-size: 1.25rem; border-radius: 14px; } } /* Timeline Layout */ .timeline-wrapper { position: relative; padding: 0; min-height: 800px; } .timeline { position: absolute; left: 50%; top: 0; height: 100%; width: 2px; background-color: rgba(45, 45, 45, 0.1); transform: translateX(-50%); --progress: 0%; } .timeline::before { content: ''; position: absolute; left: 0; top: 0; width: 100%; height: var(--progress); background-color: #0A67B2; transition: height 0.6s cubic-bezier(0.16, 1, 0.3, 1); will-change: transform, height; transform-origin: top; } .timeline-cards { position: relative; max-width: 1200px; margin: 0 auto; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 0; } /* Mobile Responsive */ @media (max-width: 768px) { .timeline { left: 20px; top: 0; height: 100%; } .timeline-wrapper { padding: 40px 0; } .timeline-cards { padding: 0; } .timeline { left: 20px; top: 40px; bottom: 40px; } .timeline-cards { display: block; } .timeline-item { padding: 0 0 0 50px !important; position: relative; } .timeline-dot { left: 20px !important; /* transform: translateY(-50%) !important; */ position: absolute; } .timeline-item:nth-child(1) .timeline-dot, .timeline-item:nth-child(2) .timeline-dot, .timeline-item:nth-child(3) .timeline-dot { left: 20px !important; } .timeline-item .step-card { width: 100%; margin: 0; } } /* Timeline Items */ .timeline-item { position: relative; width: 100%; display: flex; opacity: 0; transform: translateY(50px); transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); margin: 0; min-height: 120px; /* Ensure consistent height for steps */ } .timeline-item:nth-child(1) { align-self: flex-start; } .timeline-item:nth-child(1) .timeline-dot { top: 50%; } .timeline-item:nth-child(2) { align-self: center; } .timeline-item:nth-child(2) .timeline-dot { top: 50%; } .timeline-item:nth-child(3) { align-self: flex-end; } .timeline-item:nth-child(3) .timeline-dot { top: 50%; } .timeline-item.active { opacity: 1; transform: translateY(0); } .timeline-item.right { justify-content: flex-end; padding-left: 50%; padding-right: 0; } .timeline-item.left { justify-content: flex-start; padding-right: 50%; padding-left: 0; } /* Timeline Dots */ .timeline-dot { position: absolute; left: 50%; width: 16px; height: 16px; background-color: #2D2D2D; border: 3px solid #fff; border-radius: 50%; transform: translate(-50%, -50%); transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 2; } .timeline-item.active .timeline-dot { background-color: #0A67B2; transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Step Cards */ .timeline-item .step-card { width: 90%; max-width: 500px; margin: 0 30px; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform, opacity; align-self: center; } /* Contact Form */ .contact-form { padding: 3rem; border-radius: 0; background-color: var(--light-bg); border: 1px solid transparent; transition: var(--transition); } .contact-form:hover { background-color: white; border-color: var(--primary-color); } .form-control { padding: 1rem 1.25rem; border-radius: 0; border: 1px solid var(--secondary-color); background-color: white; font-size: 1rem; transition: var(--transition); } .form-control:focus { border-color: var(--primary-color); box-shadow: none; outline: none; } /* Button Styles */ .btn { position: relative; padding: 0.875rem 2rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; border: none; overflow: hidden; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); z-index: 1; border-radius: 0; } .btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 120%; height: 0; padding-bottom: 120%; border-radius: 50%; transform: translate3d(-50%, -50%, 0) scale(0); z-index: -1; transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); } .btn:hover { transform: translateY(-2px); } .btn:active { transform: translateY(1px); } /* Primary Button */ .btn-primary { background: linear-gradient(45deg, #0A67B2, #0a77cc); color: white; box-shadow: 0 4px 15px rgba(10, 103, 178, 0.2); border-radius: 0; } .btn-primary::before { background: linear-gradient(45deg, #0a77cc, #0A67B2); } .btn-primary:hover { box-shadow: 0 8px 25px rgba(10, 103, 178, 0.3); } .btn-primary:hover::before { transform: translate3d(-50%, -50%, 0) scale(1.5); } /* Outline Button */ .btn-outline-dark { background: transparent; color: #2D2D2D; border: 2px solid #2D2D2D; border-radius: 0; } .btn-outline-dark::before { background: #2D2D2D; } .btn-outline-dark:hover { color: white; border-color: #2D2D2D; box-shadow: 0 8px 25px rgba(45, 45, 45, 0.15); } .btn-outline-dark:hover::before { transform: translate3d(-50%, -50%, 0) scale(1.5); } /* Button Loading State */ .btn.loading { pointer-events: none; opacity: 0.8; } .btn.loading::after { content: ''; position: absolute; width: 20px; height: 20px; top: 50%; right: 1rem; transform: translateY(-50%); border: 2px solid rgba(255, 255, 255, 0.3); border-top-color: white; border-radius: 50%; animation: button-loading 0.8s linear infinite; } @keyframes button-loading { to { transform: translateY(-50%) rotate(360deg); } } /* Button Group */ .btn-group { display: flex; gap: 1rem; flex-wrap: wrap; } /* Mobile Responsive */ @media (max-width: 768px) { .btn { padding: 0.75rem 1.5rem; font-size: 0.875rem; } .btn-group { gap: 0.75rem; } } /* Navigation */ .navbar { padding: 1.5rem 0; transition: var(--transition); background-color: transparent; } .navbar.scrolled { background-color: white; box-shadow: 0 2px 20px rgba(0,0,0,0.1); padding: 1rem 0; } .navbar-brand { position: relative; display: inline-block; font-weight: 700; font-size: 1.5rem; color: var(--primary-color); } .nav-logo { height: 40px; width: 200px; background-image: url('../img/logo.svg'); background-size: contain; background-repeat: no-repeat; background-position: left center; transition: all 0.3s ease; } .navbar-brand:hover .nav-logo { background-image: url('../img/logo-color.svg'); } .nav-link { font-weight: 500; color: var(--primary-color); margin: 0 1.5rem; position: relative; padding: 0.5rem 0; } .nav-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--primary-color); transition: var(--transition); } .nav-link:hover::after { width: 100%; } /* Navigation Logo */ .navbar-brand { padding: 0; margin-right: 2rem; } .nav-logo { height: 40px; width: 200px; background-image: url('../img/logo.svg'); background-size: contain; background-repeat: no-repeat; background-position: left center; transition: all 0.3s ease; } .navbar-brand:hover .nav-logo { background-image: url('../img/logo-color.svg'); } /* Adjust logo size on scroll */ .navbar.scrolled .nav-logo { height: 35px; width: 175px; } /* Sections */ .section { padding: 0; } .section-dark { background-color: var(--dark-bg); color: white; } .section-dark h2 { color: white; } /* Animations */ .fade-in { opacity: 0; transform: translateY(30px); transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .fade-in.visible { opacity: 1; transform: translateY(0); } /* Footer */ .footer { background: #2D2D2D; color: #ffffff; padding: 5rem 0 3rem; } .footer-main { margin-bottom: 3rem; } .footer h4 { color: #ffffff; font-size: 1.1rem; font-weight: 600; margin-bottom: 1.5rem; letter-spacing: 0.5px; } .footer-brand p { color: rgba(255, 255, 255, 0.7); font-size: 0.95rem; line-height: 1.5; max-width: 300px; } .footer-logo { height: 40px; width: auto; filter: brightness(0) invert(1); opacity: 0.9; transition: opacity 0.3s ease; flex-shrink: 0; } .footer-logo:hover { opacity: 1; } .footer-links-group { margin-bottom: 2rem; } .footer-links { list-style: none; padding: 0; margin: 0; } .footer-links li { margin-bottom: 1rem; } .footer-links a, .footer-links span { color: rgba(255, 255, 255, 0.7); text-decoration: none; display: flex; align-items: center; transition: var(--transition); } .footer-links i { margin-right: 10px; font-size: 1.2rem; color: rgba(255, 255, 255, 0.7); width: 20px; text-align: center; } .footer-links a:hover { color: #ffffff; } .footer-links li span.hover-underline { color: rgba(255, 255, 255, 0.7); transition: color 0.3s ease; } .footer-links li span.hover-underline:hover { color: #ffffff; } .hover-underline { color: rgba(255, 255, 255, 0.7); text-decoration: none; position: relative; transition: color 0.3s ease; padding-bottom: 2px; } .hover-underline::after { content: ''; position: absolute; width: 0; height: 1px; bottom: 0; left: 0; background-color: #ffffff; transition: width 0.3s ease; } .hover-underline:hover { color: #ffffff; } .hover-underline:hover::after { width: 100%; } .partner-badges { display: flex; gap: 2rem; align-items: center; margin-top: 1rem; } .partner-badge { height: 40px; width: auto; filter: brightness(0) invert(1); opacity: 0.7; transition: all 0.3s ease; } .partner-badge:hover { opacity: 1; transform: translateY(-2px); } /* Security Badges */ .security-badges { display: flex; gap: 1rem; align-items: center; margin-top: 1rem; flex-wrap: wrap; } .security-badge { transition: all 0.3s ease; opacity: 0.9; } .security-badge:hover { opacity: 1; transform: translateY(-2px); } /* Footer Bottom */ .footer-divider { margin: 2rem 0; border-color: rgba(255, 255, 255, 0.1); } .footer-bottom { padding-top: 1.5rem; } .footer-bottom p { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; margin: 0; } .footer-legal { display: flex; align-items: center; list-style: none; padding: 0; margin: 0; justify-content: flex-end; gap: 2rem; } /* Responsive Adjustments */ @media (max-width: 991px) { .footer { padding: 4rem 0 2rem; } .footer-legal { justify-content: flex-start; margin-top: 1rem; gap: 1.5rem; } .partner-badges, .security-badges { justify-content: flex-start; } } @media (max-width: 767px) { .footer { text-align: center; } .footer-brand .d-flex { flex-direction: column; text-align: center; } .footer-brand p { margin-top: 1rem; margin-left: 0 !important; max-width: none; } .footer-brand, .footer-links-group, .footer-partners, .footer-security { margin-bottom: 2.5rem; } .footer-logo { margin: 0 auto; } .partner-badges, .security-badges { justify-content: center; } .footer-legal { flex-wrap: wrap; justify-content: center; gap: 1rem 2rem; } .footer-bottom { text-align: center; } } /* Remove old contact and social links styles */ .footer-contact, .contact-item, .social-links, .social-link { display: none; } /* Partner Section */ .partner-section { background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(10, 103, 178, 0.03) 100%); } .partner-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin: 3rem 0; } .partner-card { position: relative; padding: 2.5rem; background: white; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; } .partner-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 0; background: linear-gradient(180deg, #0A67B2, #0a77cc); transition: height 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .partner-card:hover, .active-partner-card { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .partner-card:hover::before { height: 100%; } .partner-icon { margin-bottom: 1.5rem; color: #0A67B2; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .partner-card:hover .partner-icon { transform: scale(1.1); } .partner-card h3 { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; color: #2D2D2D; } .partner-card p { color: #575757; margin-bottom: 1.5rem; } .partner-hover-content { opacity: 0; transform: translateY(20px); transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .partner-card:hover .partner-hover-content, .active-partner-hover-content { opacity: 1; transform: translateY(0); } .feature-list { list-style: none; padding: 0; margin: 0; } .feature-list li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; color: #575757; } .feature-list li::before { content: '→'; position: absolute; left: 0; color: #0A67B2; font-weight: 700; } .partner-cta { padding: 3rem; background: white; border: 1px solid rgba(0,0,0,0.1); margin-top: 4rem; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .partner-cta:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); } .partner-cta h3 { font-size: 2rem; font-weight: 700; margin-bottom: 1rem; background: linear-gradient(45deg, #2D2D2D, #575757); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .partner-cta p { color: #575757; margin-bottom: 2rem; } @media (max-width: 768px) { .partner-grid { grid-template-columns: 1fr; gap: 1.5rem; } .partner-card { padding: 2rem; } .partner-cta { padding: 2rem; } .partner-cta h3 { font-size: 1.75rem; } } /* Add animation classes */ @keyframes slideInUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .partner-card.fade-in { opacity: 0; animation: slideInUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; } .partner-card:nth-child(2).fade-in { animation-delay: 0.2s; } .partner-card:nth-child(3).fade-in { animation-delay: 0.4s; } /* Logo Styles */ .contact-logo { display: block; max-width: 280px; height: auto; margin-bottom: 2rem; animation: fadeInDown 0.6s ease-out; } .partner-logo { display: block; max-width: 80px; height: auto; margin: 0 auto 2rem; animation: fadeInScale 0.6s ease-out; } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } /* Contact Section Styles */ .contact-section { padding: 100px 0; background: linear-gradient(to bottom, #ffffff, #f8f9fa); } .contact-info h2 { font-size: 3.5rem; font-weight: 800; margin-bottom: 1.5rem; background: linear-gradient(135deg, var(--primary-color), #575757); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .contact-details { margin-top: 3rem; } .contact-item { display: flex; align-items: center; margin-bottom: 1.5rem; padding: 1rem; border-radius: 0; background: #ffffff; box-shadow: 0 2px 4px rgba(0,0,0,0.04); transition: transform 0.3s ease; } .contact-item:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.08); } .contact-item svg { margin-right: 1rem; color: var(--primary-color); } .contact-item span { font-size: 1rem; color: #575757; } .contact-form { background: #ffffff; padding: 2.5rem; border-radius: 0; box-shadow: 0 8px 24px rgba(0,0,0,0.08); } .form-floating > .form-control { border: 2px solid #e9ecef; border-radius: 0; height: calc(3.5rem + 2px); padding: 1rem 0.75rem; transition: border-color 0.2s ease; } .form-floating > textarea.form-control { height: 150px; resize: none; } .form-floating > .form-control:focus { border-color: var(--primary-color); box-shadow: none; outline: none; } .form-floating > label { padding: 1rem 0.75rem; } .contact-form .btn { display: inline-flex; align-items: center; padding: 0.8rem 1.5rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; transition: transform 0.3s ease; border-radius: 0; } .contact-form .btn svg { margin-left: 0.5rem; transition: transform 0.3s ease; } .contact-form .btn:hover { transform: translateY(-2px); } .contact-form .btn:hover svg { transform: translateX(4px); } /* Form validation styles */ .form-control:invalid:not(:placeholder-shown) { border-color: #dc3545; } .form-control:valid:not(:placeholder-shown) { border-color: #198754; } @media (max-width: 991.98px) { .contact-info { margin-bottom: 3rem; } .contact-form { padding: 2rem; } } /* Responsive Design */ @media (max-width: 768px) { h1, .h1 { font-size: 3.5rem; } h2, .h2 { font-size: 2.5rem; } h3, .h3 { font-size: 1.75rem; } .lead { font-size: 1.25rem; } .hero { padding: 80px 0; } .section { padding: 0; } .service-card, .expertise-card, .process-card, .case-study-card { padding: 2rem; } .navbar-nav { padding: 2rem 0; } .nav-link { margin: 1rem 0; } .how-it-works { padding: 80px 0; } .step-card { padding: 30px; margin-bottom: 30px; } } /* Hero Image Styles */ .hero-image { position: relative; width: 100%; max-width: 500px; aspect-ratio: 1; margin: 0 auto; overflow: visible; transition: transform 0.3s ease-out; will-change: transform; } .hero-image::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.1) 0%, rgba(var(--accent-rgb), 0) 100%); z-index: 1; transition: opacity 0.3s ease; border-radius: 50%; } .hero-image:hover::after { opacity: 0.8; } .hero-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; transition: transform 0.4s ease-out; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15), 0 0 0 15px rgba(255, 255, 255, 0.8), 0 0 0 30px rgba(255, 255, 255, 0.4); } @media (max-width: 768px) { .hero-image { max-width: 300px; } .hero-img { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15), 0 0 0 10px rgba(255, 255, 255, 0.8), 0 0 0 20px rgba(255, 255, 255, 0.4); } } .reveal-section { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); } .reveal-section.revealed { opacity: 1; transform: translateY(0); } .reveal-item { opacity: 0; transform: translateY(30px); transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); transition-delay: var(--delay, 0ms); } .reveal-item.revealed { opacity: 1; transform: translateY(0); } /* Alternate reveal directions for variety */ .expertise-card.reveal-item { transform: translateX(-30px); } .expertise-card.reveal-item:nth-child(even) { transform: translateX(30px); } .expertise-card.reveal-item.revealed { transform: translateX(0); } /* Process cards slide in from sides */ .process-card.reveal-item:nth-child(odd) { transform: translateX(-50px); } .process-card.reveal-item:nth-child(even) { transform: translateX(50px); } .process-card.reveal-item.revealed { transform: translateX(0); } /* Contact form elements fade up with increasing delays */ .contact-form .form-floating { opacity: 0; transform: translateY(20px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); transition-delay: calc(var(--index, 0) * 100ms); } .contact-form.revealed .form-floating { opacity: 1; transform: translateY(0); } /* Ensure animations don't play on mobile devices */ @media (prefers-reduced-motion: reduce) { .reveal-section, .reveal-item, .expertise-card.reveal-item, .process-card.reveal-item, .contact-form .form-floating { transition: none !important; transform: none !important; opacity: 1 !important; } } /* Contact Section Reveal Animations */ .contact-info { opacity: 0; transform: translateX(-50px); transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); } .contact-info.revealed { opacity: 1; transform: translateX(0); } .contact-info .contact-item { opacity: 0; transform: translateX(-20px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .contact-info.revealed .contact-item { opacity: 1; transform: translateX(0); } .contact-info.revealed .contact-item:nth-child(1) { transition-delay: 200ms; } .contact-info.revealed .contact-item:nth-child(2) { transition-delay: 300ms; } .contact-info.revealed .contact-item:nth-child(3) { transition-delay: 400ms; } .contact-form { opacity: 0; transform: translateX(50px); transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); } .contact-form.revealed { opacity: 1; transform: translateX(0); } .contact-form .form-floating, .contact-form .form-group { opacity: 0; transform: translateY(20px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .contact-form.revealed .form-floating, .contact-form.revealed .form-group { opacity: 1; transform: translateY(0); } .contact-form.revealed .form-floating:nth-child(1) { transition-delay: 300ms; } .contact-form.revealed .form-floating:nth-child(2) { transition-delay: 400ms; } .contact-form.revealed .form-floating:nth-child(3) { transition-delay: 500ms; } .contact-form.revealed .form-floating:nth-child(4) { transition-delay: 600ms; } .contact-form.revealed .form-group { transition-delay: 700ms; } /* Button reveal animation */ .contact-form .btn-primary { opacity: 0; transform: translateY(20px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .contact-form.revealed .btn-primary { opacity: 1; transform: translateY(0); transition-delay: 800ms; } /* Social icons reveal */ .social-links { opacity: 0; transform: translateY(20px); transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .contact-info.revealed .social-links { opacity: 1; transform: translateY(0); transition-delay: 500ms; } /* Ensure animations don't play on reduced motion preference */ @media (prefers-reduced-motion: reduce) { .contact-info, .contact-info .contact-item, .contact-form, .contact-form .form-floating, .contact-form .form-group, .contact-form .btn-primary, .social-links { transition: none !important; transform: none !important; opacity: 1 !important; } }