/* Generated by tools/build-css.py; edit assets/css/src/*.css. */
:root { --bg-page: #ffffff; --bg-soft: #f5f5f4; --text-dark: #2b2b2b; --text-body: #555; --text-muted: #8a8a8a; --border-soft: #e8e8e8; --btn-dark: #2b2b2b; --btn-dark-hov: #1a1a1a; --nova-blue: #1E9BD7; --nova-blue-dark: #0A6FA8; --nova-blue-light: #4FC3F7; --nova-cyan: #00D4FF; --nova-deep: #0A4F8F; --accent-lime: #84CC16; --accent-gold: #FBBF24; --accent-violet: #A855F7; --accent-pink: #EC4899; --font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --site-max-width: 1700px; --bg-outer-gray: #f4f6f8; --bg-outer-blue: #eef6fb; --page-pad-x: clamp(1.5rem, 4vw, 4rem); --section-space: 3rem; --wave-space: 5rem; } @media (max-width: 767.98px) { :root { --page-pad-x: 1.5rem; --section-space: 2.5rem; --wave-space: 4rem; } } @media (max-width: 575.98px) { :root { --page-pad-x: 1.25rem; --section-space: 2rem; --wave-space: 3rem; } } * { box-sizing: border-box; } html { scroll-behavior: smooth; overflow-x: clip; } body { font-family: var(--font-body); color: var(--text-body); background: linear-gradient(115deg, var(--bg-outer-gray), var(--bg-outer-blue)); min-height: 100vh; line-height: 1.6; -webkit-font-smoothing: antialiased; letter-spacing: -0.01em; margin: 0; overflow-x: clip; } h1, h2, h3, h4, h5, h6 { color: var(--text-dark); letter-spacing: -0.03em; font-weight: 700; } a { text-decoration: none; }   .site-wrapper { max-width: var(--site-max-width); width: 100%; margin: 0 auto; min-height: 100vh; background: var(--bg-page); box-shadow: 0 0 48px rgba(44, 75, 98, 0.045); position: relative; } button, input, select, textarea { font-family: inherit; } @media (max-width: 374.98px) { :root { --page-pad-x: 1rem; } } main section[id] { scroll-margin-top: 108px; } @media (max-width: 1199.98px) { main section[id] { scroll-margin-top: 94px; } } @media (max-width: 575.98px) { main section[id] { scroll-margin-top: 88px; } }   .nc-header { position: sticky; top: 0; z-index: 1040; background: #fff; border-bottom: 1px solid #e9eef2; } .nc-header.is-scrolled { box-shadow: 0 5px 20px rgb(20 49 70 / 7%); } .nc-header-main { min-height: 96px; padding: 14px 36px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 28px; } .nc-logo { display: flex; flex-shrink: 0; } .nc-logo img { width: 152px; height: auto; display: block; } .nc-desktop-nav { flex: 1; } .nc-nav-list { list-style: none; margin: 0; padding: 0; display: flex; justify-content: flex-start; align-items: center; gap: clamp(20px, 1.8vw, 30px); } .nc-nav-list > li > a, .nc-services-trigger { color: #263642; font-size: 16px; font-weight: 600; white-space: nowrap; display: flex; align-items: center; min-height: 44px; } .nc-header a:hover, .nc-header a[aria-current="page"] { color: #0a6fa8; } .nc-actions { display: flex; align-items: center; gap: 20px; border-left: 1px solid #e8edf1; padding-left: 24px; } .nc-action { display: inline-flex; align-items: center; justify-content: center; flex-direction: row; gap: 9px; min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #263642; text-decoration: none; } .nc-action svg { width: 24px; height: 24px; flex-shrink: 0; } .nc-action span { font-size: 12px; font-weight: 500; white-space: nowrap; } .nc-menu-toggle { display: none; } .nc-mega[hidden] { display: none; } .nc-mega { position: absolute; top: calc(100% - 1px); left: 0; right: 0; background: #fff; border-top: 1px solid #e9eef2; border-bottom: 1px solid #e9eef2; padding: 30px 36px 36px; box-shadow: 0 18px 25px rgb(20 49 70 / 10%); max-height: calc(100dvh - 96px); overflow-y: auto; } .nc-mega-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; } .nc-mega-heading span { display: block; color: #0878b1; font-size: 10px; letter-spacing: .13em; font-weight: 700; margin-bottom: 4px; } .nc-mega-heading strong { color: #263642; font-size: 21px; font-weight: 600; } .nc-mega-heading > a { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: #0878b1; } .nc-mega-heading svg { width: 18px; } .nc-mega-grid { padding: 0; margin: 0; list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px 20px; } .nc-mega-grid a { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 10px; color: #263642; background: #fff; border: 1px solid #eaf0f4; min-height: 88px; } .nc-mega-grid a:hover { background: #edf6fc; } .nc-service-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; background: #eff7fc; color: #0878b1; flex-shrink: 0; } .nc-mega-grid strong { display: block; font-size: 14px; font-weight: 600; } .nc-mega-grid small { display: block; font-size: 12px; color: #637583; margin-top: 3px; } .nc-mega-grid a > svg { margin-left: auto; width: 17px; flex-shrink: 0; } .nc-skip { position: fixed; left: 16px; top: -100px; z-index: 2000; padding: 12px 18px; color: white; background: #075c89; border-radius: 6px; } .nc-skip:focus { top: 12px; color: white; } .nc-header :focus-visible, .nc-mobile-menu :focus-visible { outline: 3px solid #158ac3; outline-offset: 4px; } #nc-content { scroll-margin-top: 100px; } .nc-mobile-menu { width: min(420px, 100%); max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; padding: 0; border: 0; color: #263642; background: #fff; overscroll-behavior: contain; } .nc-mobile-menu::backdrop { background: rgb(13 32 48 / 40%); } .nc-mobile-menu[open] { display: flex; flex-direction: column; } body.nc-menu-open { overflow: hidden; } .nc-mobile-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid #e9eef2; } .nc-mobile-head strong { font-size: 15px; } .nc-mobile-menu nav { padding: 12px 22px; } .nc-mobile-menu nav > a, .nc-mobile-menu summary { display: flex; justify-content: space-between; align-items: center; min-height: 54px; padding: 13px 0; border-bottom: 1px solid #edf1f4; font-size: 17px; font-weight: 600; color: #263642; cursor: pointer; } .nc-mobile-menu summary { list-style: none; } .nc-mobile-menu summary::-webkit-details-marker { display: none; } .nc-mobile-menu summary svg { width: 18px; } .nc-mobile-menu details[open] summary svg { transform: rotate(180deg); } .nc-mobile-menu a[aria-current="page"] { color: #0878b1; } .nc-mobile-services { padding: 8px 12px; background: #f5f9fc; border-radius: 8px; } .nc-mobile-services a { display: flex; align-items: center; gap: 12px; min-height: 48px; font-size: 14px; color: #344957; } .nc-mobile-services svg { width: 20px; height: 20px; color: #0878b1; flex-shrink: 0; } .nc-mobile-bottom { padding: 20px 22px max(24px,env(safe-area-inset-bottom)); margin-top: auto; display: grid; gap: 18px; } .nc-mobile-bottom > a { display: flex; gap: 10px; align-items: center; color: #426071; font-size: 13px; min-height: 32px; } .nc-mobile-bottom svg { width: 20px; height: 20px; } .nc-services-trigger { gap: 8px; padding: 0; background: none; border: 0; cursor: pointer; } .nc-services-trigger svg { width: 14px; height: 14px; transition: transform .18s; color: #82929d; } .nc-services-trigger[aria-expanded="true"] { color: #0a6fa8; } .nc-services-trigger[aria-expanded="true"] svg { transform: rotate(180deg); color: currentColor; } .nc-nav-list > li > a, .nc-services-trigger { position: relative; } .nc-nav-list > li > a::after, .nc-services-trigger::after { content: ""; position: absolute; height: 2px; bottom: 3px; left: 0; right: 0; background: #168bc1; transform: scaleX(0); transform-origin: left; transition: transform .18s; } .nc-nav-list > li > a:hover::after, .nc-nav-list > li > a[aria-current="page"]::after, .nc-services-trigger[aria-expanded="true"]::after { transform: scaleX(1); } .nc-mobile-head .nc-action { min-width: 44px; } @media (max-width: 1399.98px) { .nc-header-main { padding-inline: 26px; gap: 26px; } .nc-actions { gap: 20px; padding-left: 22px; } .nc-contact-action span { display: none; } } @media (max-width: 1199.98px) { .nc-desktop-nav { display: none; } .nc-header-main { min-height: 82px; grid-template-columns: auto auto minmax(0, 1fr); } .nc-menu-toggle { display: inline-flex; gap: 7px; } .nc-header-main > .nc-menu-toggle span { font-size: 13px; font-weight: 600; } .nc-actions { border: 0; padding: 0; justify-self: end; } .nc-actions .nc-action span { display: none; } .nc-logo img { width: 140px; } } @media (max-width: 575.98px) { .nc-header-main { padding: 12px 18px; min-height: 76px; gap: 12px; } .nc-logo img { width: 110px; } .nc-actions { gap: 0; } .nc-actions .nc-action span { display: none; } #nc-content { scroll-margin-top: 76px; } } @media (prefers-reduced-motion: reduce) { .nc-services-trigger svg, .nc-nav-list > li > a::after, .nc-services-trigger::after { transition: none; } } @media (max-width: 374.98px) { .nc-header-main { padding-inline: 10px; gap: 8px; } .nc-logo img { width: 82px; } .nc-header-main > .nc-menu-toggle { gap: 4px; } .nc-header-main > .nc-menu-toggle span { font-size: 12px; } }   .hero-wrap { position: relative; padding: 0; background: #fff; } .hero-card { position: relative; border-radius: 0; overflow: hidden; background-color: #0A4F8F; background-image: radial-gradient(ellipse 60% 70% at 18% 78%, rgba(0, 212, 255, 0.55) 0%, rgba(0, 212, 255, 0) 60%), radial-gradient(ellipse 55% 70% at 82% 25%, rgba(168, 85, 247, 0.5) 0%, rgba(168, 85, 247, 0) 62%), radial-gradient(ellipse 50% 60% at 15% 25%, rgba(236, 72, 153, 0.3) 0%, rgba(236, 72, 153, 0) 60%), radial-gradient(ellipse 55% 60% at 90% 80%, rgba(251, 146, 60, 0.28) 0%, rgba(251, 146, 60, 0) 60%), radial-gradient(ellipse 70% 90% at 0% 0%, rgba(30, 155, 215, 0.9) 0%, rgba(30, 155, 215, 0) 65%), linear-gradient(135deg, #062b4d 0%, #0A4F8F 40%, #1E9BD7 100%); color: #fff; display: flex; align-items: center; justify-content: center; } .hero-particles { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; opacity: 0.85; } .hero-bg-layers { position: absolute; inset: 0; pointer-events: none; z-index: 0; } .hero-blob { position: absolute; border-radius: 50%; filter: blur(45px); opacity: 0.55; will-change: transform; transform: translateZ(0); } .hero-blob-1 { width: 440px; height: 440px; background: radial-gradient(circle, #00D4FF 0%, rgba(0,212,255,0) 70%); top: 15%; left: 8%; animation: blobFloat1 22s ease-in-out infinite; } .hero-blob-2 { width: 480px; height: 480px; background: radial-gradient(circle, #A855F7 0%, rgba(168,85,247,0) 70%); top: 5%; right: 5%; animation: blobFloat2 26s ease-in-out infinite; } .hero-blob-3 { width: 380px; height: 380px; background: radial-gradient(circle, #EC4899 0%, rgba(236,72,153,0) 70%); bottom: 5%; left: 40%; animation: blobFloat3 24s ease-in-out infinite; } @keyframes blobFloat1 { 0%, 100% { transform: translate(0,0) scale(1); } 33% { transform: translate(60px,-40px) scale(1.08); } 66% { transform: translate(-30px,50px) scale(0.95); } } @keyframes blobFloat2 { 0%, 100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-70px,60px) scale(1.1); } } @keyframes blobFloat3 { 0%, 100% { transform: translate(0,0) scale(1); } 50% { transform: translate(40px,-50px) scale(1.05); } } .hero-aurora { position: absolute; width: 60%; height: 300%; top: -100%; filter: blur(30px); opacity: 0.25; pointer-events: none; } .hero-aurora-1 { left: -30%; background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.35) 45%, rgba(0, 212, 255, 0.5) 50%, rgba(0, 212, 255, 0.35) 55%, transparent); transform: rotate(20deg); animation: auroraSweep1 16s ease-in-out infinite; } .hero-aurora-2 { right: -30%; background: linear-gradient(90deg, transparent, rgba(168, 85, 247, 0.3) 45%, rgba(168, 85, 247, 0.45) 50%, rgba(168, 85, 247, 0.3) 55%, transparent); transform: rotate(-20deg); animation: auroraSweep2 20s ease-in-out infinite; } @keyframes auroraSweep1 { 0%, 100% { transform: rotate(20deg) translateX(-30%); opacity: 0.18; } 50% { transform: rotate(20deg) translateX(30%); opacity: 0.4; } } @keyframes auroraSweep2 { 0%, 100% { transform: rotate(-20deg) translateX(30%); opacity: 0.15; } 50% { transform: rotate(-20deg) translateX(-30%);opacity: 0.35; } } .hero-shooting-star { position: absolute; top: 20%; left: -10%; width: 120px; height: 2px; background: linear-gradient(90deg, transparent, #fff 60%, transparent); opacity: 0; animation: shootingStar 10s ease-in infinite; animation-delay: 4s; will-change: transform, opacity; } @keyframes shootingStar { 0%, 84% { opacity: 0; transform: translate(0, 0) rotate(15deg) scaleX(0.4); } 86% { opacity: 1; transform: translate(0, 0) rotate(15deg) scaleX(1); } 94% { opacity: 1; transform: translate(80vw, 20vh) rotate(15deg) scaleX(1); } 100% { opacity: 0; transform: translate(80vw, 20vh) rotate(15deg) scaleX(0.4); } } .hero-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 56px 56px; background-position: center; opacity: 0.85; } .hero-grid::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 30%, rgba(10,79,143,0.55) 90%); } .hero-noise { position: absolute; inset: 0; opacity: 0.18; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E"); } .hero-spotlight { position: absolute; inset: 0; background: radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%), rgba(0, 212, 255, 0.2), transparent 60%); pointer-events: none; } .hero-sparkles { position: absolute; inset: 0; pointer-events: none; z-index: 2; } .sparkle { position: absolute; width: 14px; height: 14px; animation: sparkle 3.5s ease-in-out infinite; will-change: transform, opacity; } .sparkle-1 { top: 12%; left: 18%; background: radial-gradient(circle, #fff 0%, rgba(0,212,255,0.55) 35%, transparent 70%); } .sparkle-2 { top: 25%; right: 12%; background: radial-gradient(circle, #fff 0%, rgba(251,191,36,0.55) 35%, transparent 70%); } .sparkle-3 { top: 68%; left: 8%; background: radial-gradient(circle, #fff 0%, rgba(132,204,22,0.55) 35%, transparent 70%); } .sparkle-4 { bottom: 20%; right: 20%; background: radial-gradient(circle, #fff 0%, rgba(0,212,255,0.55) 35%, transparent 70%); } @keyframes sparkle { 0%, 100% { transform: scale(0); opacity: 0; } 50% { transform: scale(1); opacity: 1; } } .hero-marquee { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); overflow: hidden; pointer-events: none; z-index: 1; opacity: 0.06; } .marquee-track { display: flex; gap: 3rem; white-space: nowrap; animation: marqueeScroll 50s linear infinite; font-size: clamp(4rem, 10vw, 9rem); font-weight: 800; letter-spacing: -0.04em; color: #fff; text-transform: uppercase; will-change: transform; } .marquee-track .dot { color: var(--nova-cyan); } @keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } } .hero-floats { position: absolute; inset: 0; pointer-events: none; z-index: 3; } .float-chip { position: absolute; width: 62px; height: 62px; border-radius: 16px; background: rgba(15, 40, 75, 0.85); border: 1.5px solid rgba(255,255,255,0.55); display: flex; align-items: center; justify-content: center; font-size: 1.7rem; box-shadow: 0 12px 30px rgba(0, 30, 60, 0.4), 0 0 0 4px rgba(255,255,255,0.08); animation: floatChip 7s ease-in-out infinite; will-change: transform; } .float-chip-1 { top: 10%; left: 5%; animation-delay: 0s; } .float-chip-2 { top: 18%; right: 6%; animation-delay: 1.4s; } .float-chip-3 { bottom: 30%; left: 7%; animation-delay: 2.4s; } .float-chip-4 { bottom: 22%; right: 5%;animation-delay: 3.8s; } .float-chip i { filter: drop-shadow(0 0 6px rgba(255,255,255,0.5)); } .float-chip-1 i { color: #4FC3F7; } .float-chip-2 i { color: #95BF47; } .float-chip-3 i { color: #FF2D20; } .float-chip-4 i { color: #84CC16; } @keyframes floatChip { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-16px) rotate(2deg); } } .float-card { position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 16px; background: rgba(15, 40, 75, 0.85); border: 1.5px solid rgba(255,255,255,0.35); box-shadow: 0 16px 40px rgba(0, 30, 60, 0.35); color: #fff; animation: floatCard 8s ease-in-out infinite; white-space: nowrap; will-change: transform; } .float-card-1 { top: 38%; left: 4%; animation-delay: 0.5s; } .float-card-2 { bottom: 38%; right: 4%; animation-delay: 2.5s; } @keyframes floatCard { 0%, 100% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-14px) translateX(6px); } } .fc-icon { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; flex-shrink: 0; } .fc-icon-blue { background: linear-gradient(135deg, #84CC16, #22C55E); box-shadow: 0 4px 14px rgba(132, 204, 22, 0.5); color: #fff; } .fc-icon-dark { background: linear-gradient(135deg, #FBBF24, #F97316); border: 1px solid rgba(255,255,255,0.15); box-shadow: 0 4px 14px rgba(251, 191, 36, 0.4); color: #fff; } .fc-label { font-size: 10.5px; color: rgba(255,255,255,0.85); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; margin-bottom: 2px; } .fc-value { font-size: 1.15rem; font-weight: 700; color: #fff; letter-spacing: -0.02em; line-height: 1; } @media (max-width: 1199.98px) { .float-card { display: none; } } @media (max-width: 991.98px) { .hero-floats { display: none; } .hero-marquee { display: none; } .hero-sparkles { display: none; } .hero-aurora { display: none; } .hero-shooting-star { display: none; } } .hero-card-centered { padding: 2rem var(--page-pad-x) 5.5rem; min-height: 0; width: 100%; } @media (min-width: 768px) { .hero-card-centered { padding: 2.5rem var(--page-pad-x) 6rem; min-height: 0; } } @media (min-width: 1200px) { .hero-card-centered { padding: 2.75rem var(--page-pad-x) 6rem; min-height: 0; } } .hero-inner { position: relative; z-index: 4; max-width: 900px; margin: 0 auto; } .hero-badge-rotator { position: relative; width: 80px; height: 80px; } .rotator-conic { position: absolute; inset: -8px; border-radius: 50%; background: conic-gradient(from 0deg, transparent 0%, #00D4FF 20%, transparent 40%, #84CC16 55%, transparent 70%, #FBBF24 85%, transparent 100%); filter: blur(8px); opacity: 0.75; animation: conicSpin 8s linear infinite; z-index: 0; will-change: transform; } @keyframes conicSpin { to { transform: rotate(360deg); } } .rotator-svg { position: relative; z-index: 2; width: 100%; height: 100%; animation: rotateText 30s linear infinite; will-change: transform; } .rotator-text { fill: rgba(255,255,255,0.95); font-size: 8.5px; font-family: var(--font-body); font-weight: 600; letter-spacing: 0.12em; } .rotator-center { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.1rem; } @keyframes rotateText { to { transform: rotate(360deg); } } @media (max-width: 767.98px) { .hero-badge-rotator { width: 68px; height: 68px; } .rotator-center { font-size: 0.9rem; } } .hero-badge { background: rgba(10, 60, 110, 0.7); border: 1px solid rgba(0, 212, 255, 0.55); color: #fff; padding: 7px 15px 7px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 500; transition: background .25s, transform .25s, border-color .25s, box-shadow .25s; } .hero-badge:hover { background: rgba(10, 79, 143, 0.85); border-color: #00D4FF; color: #fff; transform: translateY(-1px); box-shadow: 0 0 0 6px rgba(0, 212, 255, 0.08); } .hero-badge i { font-size: 11px; } .hero-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: #84CC16; box-shadow: 0 0 8px rgba(132, 204, 22, 0.6); animation: pulseDot 2.5s ease-in-out infinite; } @keyframes pulseDot { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.4); opacity: 0.6; } } .hero-title { font-size: clamp(1.7rem, 4vw, 3.4rem); line-height: 1.05; font-weight: 700; color: #fff; letter-spacing: -0.04em; text-shadow: 0 2px 30px rgba(0, 30, 60, 0.35); } .hero-gradient-text { background: linear-gradient(120deg, #ffffff 0%, #00D4FF 30%, #84CC16 55%, #00D4FF 80%, #ffffff 100%); background-size: 200% 200%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: shine 8s ease-in-out infinite; display: inline-block; filter: drop-shadow(0 2px 12px rgba(0, 212, 255, 0.4)); } @keyframes shine { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .hero-title .letter { display: inline-block; opacity: 0; transform: translateY(0.5em); animation: letterReveal .6s cubic-bezier(.2,.7,.2,1) forwards; } @keyframes letterReveal { to { opacity: 1; transform: translateY(0); } } .hero-subtitle { color: rgba(255,255,255,0.94); font-size: clamp(0.92rem, 1vw, 1.05rem); max-width: 620px; font-weight: 400; line-height: 1.55; } .hero-subtitle strong { color: #fff; font-weight: 600; background: linear-gradient(180deg, transparent 60%, rgba(132, 204, 22, 0.4) 60%); padding: 0 2px; } .btn-hero-cta { position: relative; background: #fff; color: var(--text-dark); border: none; font-weight: 700; font-size: 14px; padding: 0.75rem 1.6rem; border-radius: 999px; overflow: hidden; transition: background .25s, transform .25s, box-shadow .25s, color .25s; box-shadow: 0 10px 24px rgba(0, 30, 60, 0.35); } .btn-hero-cta:hover { background: #00D4FF; color: var(--text-dark); transform: translateY(-2px); box-shadow: 0 16px 34px rgba(0, 212, 255, 0.5); } .btn-hero-cta::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255,255,255,0.5), transparent); transition: left .6s ease; } .btn-hero-cta:hover::after { left: 100%; } .btn-outline-hero { background: rgba(255,255,255,0.08); color: #fff; border: 1.5px solid rgba(0, 212, 255, 0.55); font-weight: 600; font-size: 14px; padding: 0.75rem 1.6rem; border-radius: 999px; transition: background .25s, transform .25s, border-color .25s, box-shadow .25s; } .btn-outline-hero:hover { background: rgba(0, 212, 255, 0.18); color: #fff; border-color: #00D4FF; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0, 212, 255, 0.25); } .hero-stats { padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.18); max-width: 660px; margin-left: auto; margin-right: auto; } .stat-item { min-width: 110px; } .hero-stats .stat-item:nth-child(1) .stat-value { color: #00D4FF; } .hero-stats .stat-item:nth-child(3) .stat-value { color: #FBBF24; } .hero-stats .stat-item:nth-child(5) .stat-value { color: #84CC16; } .stat-value { font-size: clamp(1.3rem, 1.9vw, 1.75rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; text-shadow: 0 0 20px rgba(255,255,255,0.15); } .stat-label { margin-top: 5px; font-size: 11px; color: rgba(255,255,255,0.85); text-transform: uppercase; letter-spacing: 0.14em; font-weight: 500; } .stat-sep { width: 1px; height: 34px; background: rgba(79, 195, 247, 0.35); align-self: center; } @media (max-width: 575.98px) { .stat-sep { display: none; } .hero-stats { gap: 8px !important; padding-top: 1rem; } .hero-stats .stat-item { min-width: 0; flex: 1 1 0; } .hero-stats .stat-label { font-size: 10px; line-height: 1.4; letter-spacing: .06em; } } .hero-wave { position: absolute; bottom: -1px; left: 0; right: 0; z-index: 5; pointer-events: none; line-height: 0; } .hero-wave svg { display: block; width: 100%; height: 60px; } @media (max-width: 767.98px) { .hero-wave svg { height: 42px; } } .hero-scroll-indicator { position: relative; margin: 24px auto 0; width: fit-content; z-index: 6; display: flex; flex-direction: column; align-items: center; gap: 5px; color: rgba(255,255,255,0.95); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; transition: color .25s; text-shadow: 0 1px 4px rgba(0, 30, 60, 0.5); } .hero-scroll-indicator:hover { color: #00D4FF; } .scroll-mouse { width: 18px; height: 28px; border: 1.5px solid rgba(255,255,255,0.9); border-radius: 10px; position: relative; display: flex; justify-content: center; padding-top: 5px; background: rgba(10, 79, 143, 0.5); box-shadow: 0 4px 14px rgba(0, 30, 60, 0.3); } .scroll-wheel { width: 3px; height: 5px; background: #00D4FF; border-radius: 2px; animation: scrollWheel 1.8s ease-in-out infinite; } @keyframes scrollWheel { 0%, 100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(7px); opacity: 0.3; } } @media (max-width: 767.98px) { .hero-scroll-indicator { margin-top: 20px; } .scroll-mouse { width: 16px; height: 24px; } } @media (max-width: 575.98px) { .hero-scroll-indicator { display: none; } } .hero-inner > * { opacity: 0; transform: translateY(20px); animation: heroReveal .8s cubic-bezier(.2,.7,.2,1) forwards; } .hero-inner > *:nth-child(1) { animation-delay: .05s; } .hero-inner > *:nth-child(2) { animation-delay: .15s; } .hero-inner > *:nth-child(3) { animation-delay: .25s; } .hero-inner > *:nth-child(4) { animation-delay: .35s; } .hero-inner > *:nth-child(5) { animation-delay: .45s; } .hero-inner > *:nth-child(6) { animation-delay: .55s; } @keyframes heroReveal { to { opacity: 1; transform: translateY(0); } } @media (max-width: 991.98px) { .hero-title { font-size: clamp(1.6rem, 6vw, 2.2rem); } .btn-hero-cta, .btn-outline-hero { width: 100%; justify-content: center; } } @media (max-width: 575.98px) { .hero-card-centered { padding: 1.5rem var(--page-pad-x) 4rem; } }   .tech-section { background: #fff; padding: var(--section-space) 0; } .tech-section .container { padding-left: var(--page-pad-x); padding-right: var(--page-pad-x); max-width: var(--site-max-width); } .tech-title { font-size: clamp(1.8rem, 3.8vw, 3.2rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.04em; color: var(--text-dark); margin-top: 0; } .tech-title strong { background: linear-gradient(120deg, #1E9BD7 0%, #84CC16 60%, #FBBF24 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .tech-subtitle { font-size: clamp(0.95rem, 1.1vw, 1.08rem); color: var(--text-body); max-width: 620px; font-weight: 400; } .btn-gradient-tech { background: linear-gradient(135deg, #00D4FF 0%, #1E9BD7 50%, #0A4F8F 100%); color: #fff; border: none; font-weight: 600; font-size: 15px; padding: 0.85rem 1.8rem; border-radius: 10px; display: inline-flex; align-items: center; gap: 10px; transition: transform .25s, box-shadow .25s, filter .25s; box-shadow: 0 8px 22px rgba(30, 155, 215, 0.4); } .btn-gradient-tech:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(30, 155, 215, 0.55); filter: brightness(1.05); } .btn-gradient-tech i { font-size: 14px; } .tech-logos { margin-top: 2rem; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2.5rem 3rem; } .tech-item { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 1.15rem; letter-spacing: -0.02em; opacity: 0.9; transition: opacity .25s, transform .25s; filter: saturate(0.9); } .tech-item:hover { opacity: 1; transform: translateY(-3px) scale(1.05); filter: saturate(1.15); } .tech-item i { font-size: 1.9rem; line-height: 1; } .tech-item-woocommerce { color: #96588A; } .tech-item-woocommerce i { color: #96588A; } .tech-item-magento { color: #F46F25; } .tech-item-magento i { color: #F46F25; } .tech-item-php { color: #777BB4; } .tech-item-php i { color: #777BB4; } .tech-item-laravel { color: #FF2D20; } .tech-item-laravel i { color: #FF2D20; } .tech-item-react { color: #61DAFB; } .tech-item-react i { color: #61DAFB; } .tech-item-googleads { color: #4285F4; } .tech-item-googleads i { color: #4285F4; }   .services-section { background: #fff; padding: var(--section-space) 0; position: relative; }   .services-container { width: 100%; padding: 0 var(--page-pad-x); margin: 0 auto; }   .services-header { margin: 0 0 3rem; padding: 0; } @media (max-width: 767.98px) { .services-header { margin-bottom: 2rem; } } .services-title { font-size: clamp(1.6rem, 3.4vw, 3rem); line-height: 1.15; font-weight: 700; letter-spacing: -0.035em; color: var(--text-dark); margin: 0 0 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; } @media (max-width: 767.98px) { .services-title { justify-content: center; text-align: center; } } .services-title-icon { display: inline-flex; align-items: center; justify-content: center; padding: 6px 14px; border-radius: 999px; background: linear-gradient(135deg, #00D4FF 0%, #A855F7 50%, #EC4899 100%); color: #fff; box-shadow: 0 6px 18px rgba(168, 85, 247, 0.35); transition: transform .3s ease, box-shadow .3s ease; } .services-title-icon svg { width: 22px; height: 22px; transition: transform .3s ease; } .services-title:hover .services-title-icon { transform: scale(1.06) rotate(-3deg); box-shadow: 0 10px 24px rgba(168, 85, 247, 0.5); } .services-title:hover .services-title-icon svg { transform: translateX(3px); } .services-title-muted { color: #b0b0b0; font-weight: 700; } .services-subtitle { font-size: clamp(1rem, 1.5vw, 1.35rem); color: #6b7280; line-height: 1.45; max-width: 900px; font-weight: 400; margin: 0; } @media (max-width: 767.98px) { .services-subtitle { text-align: center; margin: 0 auto; } }   .service-card { height: 100%; padding: 1.85rem 1.85rem 1.6rem; background: #f6f6f6; border-radius: 22px; display: flex; flex-direction: column; border: 1px solid transparent; transition: background .35s ease, border-color .35s ease, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; opacity: 0; transform: translateY(28px); will-change: transform, opacity; position: relative; overflow: hidden; } .service-card::before { content: ""; position: absolute; inset: 0; border-radius: 22px; padding: 1px; background: linear-gradient(135deg, #00D4FF, #A855F7, #EC4899); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .35s ease; pointer-events: none; } .service-card:hover::before { opacity: 1; } .service-card.is-visible { opacity: 1; transform: translateY(0); } .service-card:hover { background: #ffffff; transform: translateY(-6px); box-shadow: 0 24px 50px rgba(0, 0, 0, 0.08); }   .service-icon-wrap { position: relative; width: 64px; height: 64px; margin-bottom: 1.5rem; display: inline-block; } .service-icon { position: relative; width: 64px; height: 64px; border-radius: 18px; background: #ffffff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06); transition: transform .4s cubic-bezier(.2,.7,.2,1); overflow: hidden; } .service-icon .service-svg { width: 34px; height: 34px; position: relative; z-index: 2; animation: iconFloat 4s ease-in-out infinite; } .service-card:hover .service-icon { transform: scale(1.08) rotate(-4deg); } .service-card:hover .service-icon .service-svg { animation-duration: 1.5s; } .icon-glow { position: absolute; inset: -20%; border-radius: 50%; opacity: 0.35; filter: blur(14px); z-index: 0; transition: opacity .4s ease, transform .6s ease; } .service-icon-pink .icon-glow { background: radial-gradient(circle, #EC4899, transparent 70%); } .service-icon-blue .icon-glow { background: radial-gradient(circle, #1E9BD7, transparent 70%); } .service-icon-green .icon-glow { background: radial-gradient(circle, #22C55E, transparent 70%); } .service-icon-violet .icon-glow { background: radial-gradient(circle, #A855F7, transparent 70%); } .service-card:hover .icon-glow { opacity: 0.6; transform: scale(1.15); } @keyframes iconFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } } .service-icon-pink { color: #EC4899; } .service-icon-blue { color: #1E9BD7; } .service-icon-green { color: #22C55E; } .service-icon-violet{ color: #A855F7; }   .service-title { font-size: 1.15rem; font-weight: 700; color: var(--text-dark); margin: 0 0 0.55rem; letter-spacing: -0.02em; position: relative; z-index: 2; } .service-desc { font-size: 0.93rem; color: #6b7280; line-height: 1.55; margin: 0 0 1.5rem; flex-grow: 1; position: relative; z-index: 2; } .service-link { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; background: #ffffff; color: var(--text-dark); border-radius: 12px; font-size: 0.85rem; font-weight: 600; align-self: flex-start; transition: background .25s ease, color .25s ease, gap .3s ease, box-shadow .25s ease; border: 1px solid #e5e5e5; position: relative; z-index: 2; } .service-link svg { width: 13px; height: 13px; transition: transform .3s ease; } .service-link:hover { background: var(--text-dark); color: #fff; border-color: var(--text-dark); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); } .service-link:hover svg { transform: translateX(3px); }   .service-card-large { height: 100%; padding: 1.85rem; background: #f6f6f6; border-radius: 22px; display: flex; flex-direction: column; border: 1px solid transparent; transition: background .35s ease, transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; opacity: 0; transform: translateY(28px); position: relative; overflow: hidden; } .service-card-large::before { content: ""; position: absolute; inset: 0; border-radius: 22px; padding: 1px; background: linear-gradient(135deg, #00D4FF, #A855F7, #EC4899); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .35s ease; pointer-events: none; } .service-card-large:hover::before { opacity: 1; } .service-card-large.is-visible { opacity: 1; transform: translateY(0); } .service-card-large:hover { background: #ffffff; transform: translateY(-6px); box-shadow: 0 24px 50px rgba(0, 0, 0, 0.08); }   .service-visual { position: relative; background: #ffffff; border-radius: 16px; padding: 1.75rem 1rem; margin-bottom: 1.75rem; min-height: 175px; display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: 0 4px 14px rgba(0,0,0,0.04); } .sv-bg-icons { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .sv-bg-icon { position: absolute; width: 32px; height: 32px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; color: #fff; opacity: 0.6; animation: svFloat 6s ease-in-out infinite; will-change: transform; } .sv-bg-icon i { color: #fff; } .sv-bg-1 { top: 12%; left: 8%; background: linear-gradient(135deg, #F472B6, #EC4899); animation-delay: 0s; } .sv-bg-2 { top: 18%; right: 10%; background: linear-gradient(135deg, #2b2b2b, #000); animation-delay: 1.5s; } .sv-bg-3 { bottom: 12%; left: 12%; background: linear-gradient(135deg, #4FC3F7, #1E9BD7); animation-delay: 3s; } .sv-bg-4 { bottom: 16%; right: 8%; background: linear-gradient(135deg, #00D4FF, #0A6FA8); animation-delay: 4.5s; } @keyframes svFloat { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-8px) rotate(4deg); } } .sv-row { position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; } .sv-avatar { width: 46px; height: 46px; border-radius: 50%; background-size: cover; background-position: center; flex-shrink: 0; border: 2.5px solid #fff; box-shadow: 0 6px 16px rgba(0,0,0,0.12); } .sv-avatar-1 { background-image: linear-gradient(135deg, #4FC3F7, #1E9BD7); } .sv-avatar-2 { background-image: linear-gradient(135deg, #FBBF24, #EC4899); margin-left: -16px; } .sv-brand { display: flex; align-items: center; gap: 8px; padding: 9px 14px; background: #f9fafb; border-radius: 12px; border: 1px solid #e5e7eb; margin-left: 6px; } .sv-brand-icon { width: 26px; height: 26px; border-radius: 7px; background: linear-gradient(135deg, #2b2b2b, #1a1a1a); color: #fff; display: flex; align-items: center; justify-content: center; } .sv-brand-icon svg { width: 14px; height: 14px; } .sv-brand-text { font-weight: 800; font-size: 0.92rem; color: var(--text-dark); letter-spacing: -0.03em; } .sv-check { width: 32px; height: 32px; border-radius: 50%; background: #84CC16; color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 6px 14px rgba(132, 204, 22, 0.35); } .sv-check svg { width: 14px; height: 14px; } .sv-check-1 { margin-left: 6px; } .sv-check-2 { margin-left: 0; background: #22C55E; }   .service-large-title { font-size: 1.55rem; font-weight: 700; line-height: 1.15; letter-spacing: -0.03em; color: var(--text-dark); margin: 0 0 0.75rem; } .service-large-title-muted { color: #b0b0b0; } .service-large-desc { font-size: 0.93rem; color: #6b7280; line-height: 1.55; margin: 0 0 1.5rem; flex-grow: 1; }   .service-tags { display: flex; flex-wrap: wrap; gap: 8px; } .service-tag { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; background: #ffffff; border: 1px solid #e5e5e5; color: var(--text-dark); border-radius: 999px; font-size: 0.83rem; font-weight: 600; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease; } .service-tag svg { width: 12px; height: 12px; transition: transform .3s ease; } .service-tag:hover { background: var(--text-dark); color: #fff; border-color: var(--text-dark); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .service-tag:hover svg { transform: translateX(2px); } .service-tag-primary { background: var(--text-dark); color: #fff; border-color: var(--text-dark); } .service-tag-primary:hover { background: linear-gradient(135deg, #00D4FF, #A855F7); border-color: transparent; box-shadow: 0 8px 22px rgba(168, 85, 247, 0.35); }   @media (max-width: 991.98px) { .service-card { padding: 1.5rem; border-radius: 18px; } .service-card-large { border-radius: 18px; } .service-icon-wrap, .service-icon { width: 58px; height: 58px; border-radius: 16px; } .service-icon .service-svg { width: 30px; height: 30px; } .service-large-title { font-size: 1.35rem; } } @media (max-width: 767.98px) { .service-card, .service-card-large { border-radius: 16px; } .service-visual { padding: 1.4rem 0.75rem; min-height: 150px; } .service-large-title { font-size: 1.25rem; } .sv-avatar { width: 38px; height: 38px; } .sv-avatar-2 { margin-left: -14px; } .sv-brand { padding: 7px 11px; gap: 6px; margin-left: 4px; } .sv-brand-text { font-size: 0.82rem; } .sv-brand-icon { width: 22px; height: 22px; } .sv-brand-icon svg { width: 12px; height: 12px; } .sv-check { width: 26px; height: 26px; } .sv-check svg { width: 12px; height: 12px; } .sv-bg-icon { width: 26px; height: 26px; font-size: 0.75rem; } } @media (max-width: 400px) { .sv-row { gap: 6px; } .sv-brand { padding: 6px 9px; margin-left: 2px; } .sv-check-1 { margin-left: 2px; } }   @media (max-width: 991.98px) { .navbar-collapse { background: #fff; padding: 1rem; border-radius: 16px; margin-top: 1rem; box-shadow: 0 10px 30px rgba(0,0,0,0.06); } .nav-pill { padding: 0.7rem 1rem !important; width: 100%; } .tech-item { font-size: 1rem; } .tech-item i { font-size: 1.5rem; } .tech-logos { gap: 1.5rem 2rem; } } @media (max-width: 575.98px) { .tech-logos { gap: 1.25rem 1.5rem; } .tech-item { font-size: 0.9rem; } .tech-item i { font-size: 1.3rem; } }   @media (max-width: 767.98px) { .tech-section .row { --bs-gutter-y: 1.5rem; } .services-header { margin-bottom: 1.5rem; } .services-grid, .services-grid .row { --bs-gutter-y: 1rem; } .service-card, .service-card-featured { padding: 1.25rem; } .service-visual { min-height: 120px; padding-block: 1rem; } }   .ct-section { position: relative; margin-inline: 0; padding: var(--wave-space) 0; background: linear-gradient(130deg,#f0f8fc 0%,#f6f9fb 52%,#edf6f5 100%); overflow: clip; } .ct-wave { position: absolute; left: 0; right: 0; line-height: 0; pointer-events: none; z-index: 1; } .ct-wave svg { display: block; width: 100%; height: clamp(28px,3vw,48px); } .ct-wave-top { top: -1px; } .ct-wave-bottom { bottom: -1px; } .ct-container { position: relative; z-index: 2; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--page-pad-x); } .ct-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(32px,5vw,80px); align-items: center; } .ct-intro { min-width: 0; } .ct-eyebrow { display: block; color: #0878b1; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 16px; } .ct-title { font-size: clamp(28px,3vw,44px); line-height: 1.13; letter-spacing: -.04em; margin: 0 0 18px; } .ct-title span { color: #0878b1; } .ct-subtitle { font-size: 15px; line-height: 1.7; max-width: 440px; margin: 0; color: #617482; } .ct-response { display: flex; gap: 8px; align-items: center; font-size: 12px; color: #476676; margin-top: 18px; } .ct-response > span { width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: #26a47c; box-shadow: 0 0 0 4px #26a47c12; } .ct-direct-list { display: grid; gap: 8px; margin-top: 26px; } .ct-direct { display: flex; gap: 12px; align-items: center; color: #263642; padding: 8px 0; border-radius: 12px; transition: color .2s,transform .2s; } .ct-direct:hover { color: #0878b1; transform: translateX(3px); } .ct-contact-icon { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; background: #fff; border: 1px solid #dceaf2; color: #0878b1; } .ct-contact-icon svg { width: 19px; height: 19px; } .ct-contact-info { min-width: 0; display: grid; gap: 2px; } .ct-contact-label { font-size: 11px; color: #70828f; } .ct-contact-value { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; } .ct-availability { margin-top: 18px; font-size: 12px; color: #627585; } .ct-availability summary { cursor: pointer; min-height: 44px; padding-block: 12px; } .ct-availability p { margin: 4px 0 0; line-height: 1.7; } .ct-form { min-width: 0; width: 100%; background: #fff; border: 1px solid #e0eaf0; border-radius: 24px; padding: 28px; box-shadow: 0 16px 44px #244d6910; } .ct-form-header { margin-bottom: 20px; } .ct-form-title { margin: 0 0 6px; font-size: 21px; font-weight: 600; } .ct-form-subtitle { font-size: 12px; color: #71818d; margin: 0; } .ct-check { min-height: 44px; } .ct-check input:focus-visible, .ct-direct:focus-visible, .ct-availability summary:focus-visible, .ct-submit:focus-visible { outline: 3px solid #168bc1; outline-offset: 3px; } .ct-submit { min-height: 48px; justify-content: center; } @media (max-width: 991.98px) { .ct-layout { grid-template-columns: 1fr; gap: 24px; max-width: 640px; margin: auto; } .ct-subtitle { max-width: 100%; } .ct-direct-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 18px; } .ct-direct { flex-direction: column; gap: 8px; padding: 12px 8px; background: #ffffffa6; border: 1px solid #e0eaf0; text-align: center; } .ct-contact-value { display: none; } .ct-contact-label { color: #263642; font-size: 12px; font-weight: 500; } .ct-contact-icon { background: transparent; border: 0; width: 24px; height: 24px; } .ct-availability { margin-top: 4px; } } @media (max-width: 575.98px) { .ct-layout { gap: 16px; } .ct-eyebrow { margin-bottom: 10px; } .ct-title { font-size: 30px; margin-bottom: 12px; } .ct-subtitle { font-size: 14px; line-height: 1.6; } .ct-response { font-size: 11px; margin-top: 12px; } .ct-form { padding: 20px 0 0; border: 0; border-top: 1px solid #d8e6ee; border-radius: 0; background: transparent; box-shadow: none; } .ct-form-header { margin-bottom: 16px; } .ct-form-title { font-size: 19px; } .ct-form-footer { border-top: 0; padding-top: 0; } }   .ct-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 1.25rem; } .ct-field-half { grid-column: span 1; } .ct-field-full { grid-column: span 2; } @media (max-width: 575.98px) { .ct-form-grid { gap: 10px; } .ct-field:has(#ctEmail), .ct-field:has(#ctTelefono) { grid-column: span 2; } }   .ct-field { position: relative; } .ct-input { width: 100%; padding: 17px 14px 7px; background: #fafbfc; border: 1px solid #e2e6ea; border-radius: 9px; font-family: var(--font-body); font-size: 1rem; color: var(--text-dark); transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; outline: none; line-height: 1.3; height: 48px; } .ct-input:hover { background: #ffffff; border-color: #d0d6dd; } .ct-input:focus { background: #ffffff; border-color: #1E9BD7; box-shadow: 0 0 0 3px rgba(30, 155, 215, 0.10); } .ct-textarea { resize: vertical; height: 104px; min-height: 104px; padding-top: 22px; line-height: 1.5; }   .ct-float-label { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); font-size: .875rem; color: #627585; font-weight: 400; pointer-events: none; transition: top .18s ease, font-size .18s ease, color .18s ease; } .ct-input:focus + .ct-float-label, .ct-input:not(:placeholder-shown) + .ct-float-label { top: 9px; transform: translateY(0); font-size: 0.68rem; font-weight: 600; color: #1E9BD7; letter-spacing: 0.03em; } .ct-textarea + .ct-float-label, .ct-select + .ct-float-label { top: 14px; transform: none; font-size: 0.68rem; font-weight: 600; color: #627585; letter-spacing: 0.03em; } .ct-textarea:focus + .ct-float-label, .ct-textarea:not(:placeholder-shown) + .ct-float-label, .ct-select:focus + .ct-float-label, .ct-select.has-value + .ct-float-label { color: #1E9BD7; }   .ct-field-select { position: relative; } .ct-select { appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer; padding-top: 17px; padding-bottom: 7px; height: 48px; } .ct-select:invalid { color: #627585; } .ct-select option { color: var(--text-dark); } .ct-select-icon { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; color: #627585; pointer-events: none; transition: transform .25s ease; } .ct-select:focus + .ct-select-icon { transform: translateY(-50%) rotate(180deg); }   .ct-input.is-invalid { border-color: #dc2626; background: #fef2f2; } .ct-input.is-invalid + .ct-float-label { color: #dc2626; }   .ct-turnstile-wrap { margin-bottom: 1rem; min-height: 65px; width: max(100%, 300px); margin-left: 50%; transform: translateX(-50%); }   .ct-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.25rem; border-top: 1px solid #eef1f4; flex-wrap: wrap; } @media (max-width: 575.98px) { .ct-form-footer { flex-direction: column; align-items: stretch; gap: 14px; } }   .ct-check { display: flex; align-items: center; gap: 9px; cursor: pointer; font-size: 0.83rem; color: #6b7280; line-height: 1.4; } .ct-check input { appearance: none; -webkit-appearance: none; width: 17px; height: 17px; border: 1.5px solid #cbd5e1; border-radius: 4px; flex-shrink: 0; cursor: pointer; position: relative; transition: background .2s, border-color .2s; background: #fff; } .ct-check input:checked { background: #1E9BD7; border-color: #1E9BD7; } .ct-check input:checked::after { content: ""; position: absolute; left: 4.5px; top: 1.5px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); } .ct-check a { color: #1E9BD7; font-weight: 600; } .ct-check input.is-invalid { border-color: #dc2626; }   .ct-submit { position: relative; display: inline-flex; align-items: center; gap: 9px; padding: 0.8rem 1.5rem; background: #0878b1; color: #fff; font-weight: 600; font-size: 0.9rem; border: none; border-radius: 9px; cursor: pointer; transition: background .2s ease, transform .2s ease, opacity .2s ease; white-space: nowrap; flex-shrink: 0; } .ct-submit:hover:not(:disabled) { background: #065d8a; } .ct-submit:disabled { opacity: 0.55; cursor: not-allowed; } .ct-submit-icon { display: inline-flex; transition: transform .25s ease; } .ct-submit-icon svg { width: 13px; height: 13px; } .ct-submit:hover:not(:disabled) .ct-submit-icon { transform: translateX(3px); } .ct-submit-spinner { display: none; width: 14px; height: 14px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: ctSpin .7s linear infinite; } .ct-submit.is-loading .ct-submit-text, .ct-submit.is-loading .ct-submit-icon { display: none; } .ct-submit.is-loading .ct-submit-spinner { display: inline-block; } @keyframes ctSpin { to { transform: rotate(360deg); } }   .ct-feedback { display: none; margin-top: 1rem; padding: 11px 14px; border-radius: 8px; font-size: 0.83rem; font-weight: 500; line-height: 1.5; } .ct-feedback.is-visible { display: block; } .ct-feedback.is-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; } .ct-feedback.is-success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }   .ct-toast { position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #ffffff; border: 1px solid #e8ebee; border-radius: 12px; box-shadow: 0 12px 40px rgba(30, 60, 90, 0.14); max-width: 400px; width: calc(100% - 48px); transform: translateY(150%); opacity: 0; visibility: hidden; transition: transform .4s cubic-bezier(.2,.7,.2,1), opacity .3s ease, visibility 0s linear .4s; overflow: hidden; pointer-events: none; } .ct-toast.is-visible { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; transition: transform .4s cubic-bezier(.2,.7,.2,1), opacity .3s ease, visibility 0s; } @media (max-width: 575.98px) { .ct-toast { bottom: 16px; right: 16px; left: 16px; width: auto; max-width: none; } } .ct-toast-icon { width: 36px; height: 36px; border-radius: 50%; background: #f0fdf4; color: #16a34a; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid #bbf7d0; } .ct-toast-icon svg { width: 16px; height: 16px; } .ct-toast-body { flex-grow: 1; min-width: 0; } .ct-toast-title { font-size: 0.9rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.015em; line-height: 1.2; margin-bottom: 2px; } .ct-toast-text { font-size: 0.8rem; color: #6b7280; line-height: 1.4; } .ct-toast-close { width: 28px; height: 28px; border-radius: 6px; border: none; background: transparent; color: #9ca3af; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; transition: background .2s, color .2s; } .ct-toast-close svg { width: 12px; height: 12px; } .ct-toast-close:hover { background: #f2f4f6; color: #1a1a1a; } .ct-toast-progress { position: absolute; bottom: 0; left: 0; height: 2px; width: 100%; background: #16a34a; transform-origin: left; transform: scaleX(1); } .ct-toast.is-visible .ct-toast-progress { animation: ctToastProgress 5s linear forwards; } @keyframes ctToastProgress { to { transform: scaleX(0); } }   .pr-section { background: #ffffff; padding: var(--section-space) 0; position: relative; } .pr-container { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding: 0 var(--page-pad-x); }   .pr-header { text-align: center; max-width: 850px; margin: 0 auto 2.5rem; } @media (max-width: 767.98px) { .pr-header { margin-bottom: 2rem; } } .pr-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: #eef6fd; color: #0A6FA8; border-radius: 999px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1rem; } .pr-eyebrow svg { width: 13px; height: 13px; } .pr-title { font-size: clamp(1.75rem, 3.6vw, 3rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; color: var(--text-dark); margin: 0 0 1rem; } .pr-title-muted { color: #b0b0b0; } .pr-subtitle { font-size: clamp(0.92rem, 1.1vw, 1.05rem); color: #5a6675; line-height: 1.55; max-width: 600px; margin: 0 auto 1.5rem; }   .pr-toggle-wrap { display: flex; justify-content: center; } .pr-toggle { display: inline-flex; background: #f5f7f9; border: 1px solid #eef3f8; border-radius: 999px; padding: 4px; gap: 2px; } .pr-toggle-btn { padding: 9px 20px; border: none; background: transparent; color: #6b7280; font-family: var(--font-body); font-size: 0.87rem; font-weight: 700; border-radius: 999px; cursor: pointer; transition: background .3s ease, color .3s ease, box-shadow .3s ease; display: inline-flex; align-items: center; gap: 7px; } .pr-toggle-btn.is-active { background: #ffffff; color: var(--text-dark); box-shadow: 0 4px 12px rgba(30, 60, 90, 0.08); } .pr-toggle-badge { padding: 2px 7px; background: linear-gradient(135deg, #84CC16, #22C55E); color: #fff; font-size: 0.65rem; font-weight: 800; border-radius: 999px; letter-spacing: 0.02em; }   .pr-grid { align-items: stretch; } .pr-grid > [class^="col-"] { display: flex; }   .pr-card { position: relative; width: 100%; background: #ffffff; border: 1.5px solid #eef3f8; border-radius: 20px; padding: 1.75rem 1.6rem 1.5rem; display: flex; flex-direction: column; transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease; overflow: hidden; opacity: 0; transform: translateY(24px); } .pr-card.is-visible { opacity: 1; transform: translateY(0); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), border-color .3s ease, box-shadow .3s ease; } .pr-card:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(30, 60, 90, 0.1); } @media (max-width: 767.98px) { .pr-card { padding: 1.35rem 1.25rem 1.25rem; border-radius: 16px; } .pr-card:hover { transform: translateY(-3px); } }   .pr-card-pattern { position: absolute; inset: 0; opacity: 0.5; pointer-events: none; background-image: radial-gradient(circle at 1px 1px, rgba(30, 155, 215, 0.12) 1px, transparent 0); background-size: 20px 20px; mask-image: linear-gradient(180deg, #000 0%, transparent 40%); -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 40%); } .pr-pattern-dark { background-image: radial-gradient(circle at 1px 1px, rgba(0, 212, 255, 0.2) 1px, transparent 0); opacity: 0.6; }   .pr-card-featured { background: linear-gradient(165deg, #0A4F8F 0%, #062b4d 60%, #04233f 100%); border-color: transparent; color: #fff; box-shadow: 0 30px 70px rgba(10, 79, 143, 0.3); transform: translateY(-6px) scale(1.02); } .pr-card-featured.is-visible { transform: translateY(-6px) scale(1.02); } .pr-card-featured:hover { transform: translateY(-12px) scale(1.02); box-shadow: 0 40px 90px rgba(10, 79, 143, 0.45); } @media (max-width: 991.98px) { .pr-card-featured, .pr-card-featured.is-visible, .pr-card-featured:hover { transform: translateY(0) scale(1); } .pr-card-featured:hover { transform: translateY(-3px); } }   .pr-card-perfect { background: linear-gradient(180deg, #ffffff 0%, #f6fdf9 100%); border-color: #e6f6ee; } .pr-card-perfect:hover { border-color: #c8ead8; }   .pr-feat-deco { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .pr-feat-blob { position: absolute; border-radius: 50%; filter: blur(60px); } .pr-feat-blob-1 { width: 220px; height: 220px; background: radial-gradient(circle, rgba(0, 212, 255, 0.5), transparent 70%); top: -70px; right: -70px; } .pr-feat-blob-2 { width: 180px; height: 180px; background: radial-gradient(circle, rgba(168, 85, 247, 0.35), transparent 70%); bottom: -50px; left: -50px; }   .pr-sparkle { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 8px #fff, 0 0 14px #00D4FF; animation: prSparkle 3s ease-in-out infinite; } .pr-sparkle-1 { top: 15%; left: 12%; animation-delay: 0s; } .pr-sparkle-2 { top: 25%; right: 15%; animation-delay: 1s; } .pr-sparkle-3 { bottom: 35%; left: 18%; animation-delay: 2s; } @keyframes prSparkle { 0%, 100% { transform: scale(0); opacity: 0; } 50% { transform: scale(1.4); opacity: 1; } }   .pr-popular { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; background: linear-gradient(135deg, #FBBF24, #F97316); color: #fff; font-size: 0.65rem; font-weight: 800; border-radius: 999px; letter-spacing: 0.02em; z-index: 3; box-shadow: 0 6px 18px rgba(251, 191, 36, 0.4); animation: prPopularPulse 2.5s ease-in-out infinite; } .pr-popular svg { width: 10px; height: 10px; } @keyframes prPopularPulse { 0%, 100% { box-shadow: 0 6px 18px rgba(251, 191, 36, 0.4); } 50% { box-shadow: 0 6px 24px rgba(251, 191, 36, 0.7); } } @media (max-width: 575.98px) { .pr-popular { top: 10px; right: 10px; padding: 4px 8px; font-size: 0.6rem; } }   .pr-card-top { display: flex; align-items: center; gap: 14px; margin-bottom: 1.25rem; position: relative; z-index: 2; } @media (max-width: 575.98px) { .pr-card-top { gap: 10px; margin-bottom: 1rem; } } .pr-icon { width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; transition: transform .4s cubic-bezier(.2,.7,.2,1); animation: prIconFloat 5s ease-in-out infinite; } .pr-icon svg { width: 26px; height: 26px; } @keyframes prIconFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } } .pr-card:hover .pr-icon { animation-duration: 1.8s; transform: scale(1.08) rotate(-4deg); } @media (max-width: 575.98px) { .pr-icon { width: 44px; height: 44px; border-radius: 12px; } .pr-icon svg { width: 22px; height: 22px; } } .pr-icon-light { background: linear-gradient(135deg, #4FC3F7, #1E9BD7); box-shadow: 0 8px 20px rgba(30, 155, 215, 0.4); } .pr-icon-genius { background: linear-gradient(135deg, #00D4FF, #A855F7); box-shadow: 0 8px 20px rgba(168, 85, 247, 0.5); } .pr-icon-perfect { background: linear-gradient(135deg, #84CC16, #22C55E); box-shadow: 0 8px 20px rgba(34, 197, 94, 0.4); } .pr-card-title-wrap { display: flex; flex-direction: column; } .pr-name { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.03em; color: var(--text-dark); margin: 0 0 2px; line-height: 1.1; } .pr-card-featured .pr-name { color: #fff; } @media (max-width: 575.98px) { .pr-name { font-size: 1.2rem; } } .pr-tagline { font-size: 0.78rem; color: #7a8a9a; margin: 0; line-height: 1.3; font-weight: 500; } .pr-card-featured .pr-tagline { color: rgba(255,255,255,0.65); }   .pr-price { padding: 1rem 0 1.25rem; border-top: 1px solid #eef3f8; border-bottom: 1px solid #eef3f8; margin-bottom: 1.25rem; position: relative; z-index: 2; } .pr-card-featured .pr-price { border-color: rgba(255,255,255,0.1); } @media (max-width: 575.98px) { .pr-price { padding: 0.85rem 0 1rem; margin-bottom: 1rem; } } .pr-price-monthly, .pr-price-annual { display: flex; align-items: baseline; gap: 1px; line-height: 1; margin-bottom: 0.35rem; } .pr-price-annual { display: none; } .pr-section.show-annual .pr-price-monthly { display: none; } .pr-section.show-annual .pr-price-annual { display: flex; } .pr-section.show-annual .pr-price-note-monthly { display: none; } .pr-section:not(.show-annual) .pr-price-note-annual { display: none; } .pr-price-cur { font-size: 1.25rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.02em; } .pr-price-val { font-size: 2.5rem; font-weight: 900; letter-spacing: -0.05em; color: var(--text-dark); line-height: 1; font-feature-settings: "tnum"; } .pr-price-period { font-size: 0.85rem; font-weight: 600; color: #7a8a9a; margin-left: 3px; } .pr-card-featured .pr-price-cur, .pr-card-featured .pr-price-val { color: #fff; } .pr-card-featured .pr-price-period { color: rgba(255,255,255,0.55); } .pr-price-note { font-size: 0.75rem; color: #7a8a9a; margin: 0; line-height: 1.4; } .pr-price-note strong { color: #22C55E; font-weight: 800; } .pr-card-featured .pr-price-note { color: rgba(255,255,255,0.55); } .pr-card-featured .pr-price-note strong { color: #84CC16; } @media (max-width: 575.98px) { .pr-price-val { font-size: 2.1rem; } .pr-price-cur { font-size: 1.1rem; } .pr-price-period { font-size: 0.78rem; } .pr-price-note { font-size: 0.7rem; } }   .pr-features { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 12px; position: relative; z-index: 2; flex-grow: 1; align-content: start; } .pr-features li { display: flex; align-items: flex-start; gap: 7px; font-size: 0.78rem; color: #4a5b6c; line-height: 1.35; } .pr-card-featured .pr-features li { color: rgba(255,255,255,0.85); } .pr-features li strong { font-weight: 800; color: var(--text-dark); } .pr-card-featured .pr-features li strong { color: #fff; } .pr-feat-highlight svg { color: #FBBF24 !important; } .pr-features li svg { width: 13px; height: 13px; color: #22C55E; flex-shrink: 0; margin-top: 2px; } .pr-card-featured .pr-features li svg { color: #00D4FF; } @media (max-width: 767.98px) { .pr-features { gap: 6px 10px; } .pr-features li { font-size: 0.75rem; } } @media (max-width: 575.98px) { .pr-features { gap: 6px 8px; margin-bottom: 1.15rem; } .pr-features li { font-size: 0.72rem; gap: 5px; } .pr-features li svg { width: 11px; height: 11px; margin-top: 1px; } }   .pr-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0.85rem 1.3rem; border-radius: 12px; font-weight: 700; font-size: 0.88rem; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease; width: 100%; position: relative; z-index: 2; overflow: hidden; } .pr-cta svg { width: 13px; height: 13px; transition: transform .3s ease; } .pr-cta:hover svg { transform: translateX(4px); } @media (max-width: 575.98px) { .pr-cta { padding: 0.75rem 1.15rem; font-size: 0.83rem; } } .pr-cta-light { background: #f5f7f9; border: 1.5px solid #e6eef7; color: var(--text-dark); } .pr-cta-light:hover { background: var(--text-dark); border-color: var(--text-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,0.15); } .pr-cta-perfect { background: linear-gradient(135deg, #84CC16, #22C55E); color: #fff; border: none; box-shadow: 0 10px 24px rgba(34, 197, 94, 0.35); } .pr-cta-perfect:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(34, 197, 94, 0.5); filter: brightness(1.05); } .pr-cta-featured { background: linear-gradient(135deg, #00D4FF, #1E9BD7); color: #fff; border: none; box-shadow: 0 10px 26px rgba(0, 212, 255, 0.4); position: relative; } .pr-cta-featured::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent); transition: left .7s ease; } .pr-cta-featured:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 36px rgba(0, 212, 255, 0.55); filter: brightness(1.08); } .pr-cta-featured:hover::after { left: 100%; }   .pr-footnote { display: flex; align-items: center; justify-content: center; gap: 7px; text-align: center; font-size: 0.78rem; color: #7a8a9a; margin: 2rem auto 0; max-width: 700px; line-height: 1.5; } .pr-footnote svg { width: 13px; height: 13px; flex-shrink: 0; color: #1E9BD7; } @media (max-width: 575.98px) { .pr-footnote { flex-direction: column; gap: 5px; font-size: 0.72rem; } } @media (prefers-reduced-motion: reduce) { .pr-card, .pr-icon, .pr-sparkle, .pr-popular { animation: none !important; transition: none !important; } .pr-card { opacity: 1 !important; transform: none !important; } .pr-card-featured, .pr-card-featured.is-visible { transform: none !important; } }   @media (max-width: 575.98px) { .pr-header { margin-bottom: 1.5rem; } }   @media (prefers-reduced-motion: reduce) { .hero-blob, .hero-aurora, .hero-shooting-star, .rotator-svg, .rotator-conic, .float-chip, .float-card, .sparkle, .marquee-track, .scroll-wheel, .hero-gradient-text, .hero-badge-dot, .hero-title .letter, .hero-inner > *, .service-icon .service-svg, .sv-bg-icon { animation: none !important; } .hero-inner > *, .hero-title .letter { opacity: 1; transform: none; } .hero-particles { display: none; } .service-card, .service-card-large { opacity: 1 !important; transform: none !important; } html { scroll-behavior: auto; } }   .marketing-section { position: relative;   margin-inline: 0; padding: var(--wave-space) 0; background: linear-gradient(180deg, #f7fbfe 0%, #f2f9f5 45%, #eef7ee 100%); overflow: hidden; z-index: 1; }   .marketing-wave { position: absolute; left: 0; right: 0; line-height: 0; pointer-events: none; z-index: 2; } .marketing-wave svg { display: block; width: 100%; height: 70px; } .marketing-wave-top { top: -1px;   } .marketing-wave-bottom { bottom: -1px; } @media (max-width: 767.98px) { .marketing-wave svg { height: 48px; } }   .marketing-section::before, .marketing-section::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; } .marketing-section::before { width: 800px; height: 800px; top: -200px; left: -200px; background: radial-gradient(circle, rgba(0, 212, 255, 0.13) 0%, rgba(0, 212, 255, 0.06) 35%, rgba(0, 212, 255, 0.02) 55%, transparent 75%); } .marketing-section::after { width: 900px; height: 900px; bottom: -250px; right: -250px; background: radial-gradient(circle, rgba(132, 204, 22, 0.11) 0%, rgba(132, 204, 22, 0.05) 35%, rgba(132, 204, 22, 0.02) 55%, transparent 75%); }   .marketing-container { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding: 0 var(--page-pad-x); position: relative; z-index: 3; }   .marketing-content { max-width: 680px; opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); } .marketing-content.is-visible { opacity: 1; transform: translateY(0); }   .marketing-partner { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 1.75rem; padding: 8px 14px; background: #fff; border: 1px solid #e6eef7; border-radius: 999px; box-shadow: 0 4px 14px rgba(30, 155, 215, 0.06); } .marketing-made { font-size: 0.78rem; font-weight: 600; letter-spacing: -0.01em; padding: 3px 10px; border-radius: 999px; background: rgba(132, 204, 22, 0.12); color: #5f8a11; } .marketing-partner-divider { width: 3px; height: 22px; background: linear-gradient(180deg, #4285F4 0%, #EA4335 33%, #FBBC05 66%, #34A853 100%); border-radius: 2px; } .marketing-google-partner { display: inline-flex; align-items: center; } .gp-text { display: inline-flex; flex-direction: column; line-height: 1; } .gp-text-google { font-size: 0.78rem; font-weight: 600; letter-spacing: -0.01em; background: linear-gradient(90deg, #4285F4 0%, #EA4335 40%, #FBBC05 70%, #34A853 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .gp-text-partner { font-size: 0.92rem; font-weight: 800; color: #4a5b6c; letter-spacing: -0.03em; margin-top: 1px; }   .marketing-title { font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; color: var(--text-dark); margin: 0 0 1.5rem; } .marketing-title-accent { background: linear-gradient(120deg, #1E9BD7 0%, #00D4FF 50%, #84CC16 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; }   .marketing-desc { font-size: 1rem; line-height: 1.65; color: #5a6675; margin: 0 0 1rem; } .marketing-desc strong { color: var(--text-dark); font-weight: 600; }   .marketing-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.5rem; } .btn-marketing-primary { display: inline-flex; align-items: center; gap: 10px; padding: 0.9rem 1.6rem; border-radius: 12px; background: linear-gradient(135deg, #00D4FF 0%, #1E9BD7 60%, #0A4F8F 100%); color: #fff; font-weight: 600; font-size: 0.95rem; border: none; box-shadow: 0 10px 24px rgba(30, 155, 215, 0.35); transition: transform .3s ease, box-shadow .3s ease, filter .3s ease; text-decoration: none; } .btn-marketing-primary svg { width: 16px; height: 16px; } .btn-marketing-primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(30, 155, 215, 0.5); filter: brightness(1.05); } .btn-marketing-ghost { display: inline-flex; align-items: center; gap: 8px; padding: 0.9rem 1.6rem; border-radius: 12px; background: #fff; color: var(--text-dark); font-weight: 600; font-size: 0.95rem; border: 1.5px solid #e0e8f0; transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease, color .25s ease; text-decoration: none; } .btn-marketing-ghost svg { width: 13px; height: 13px; transition: transform .3s ease; } .btn-marketing-ghost:hover { border-color: var(--nova-blue); color: var(--nova-blue); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30, 155, 215, 0.15); } .btn-marketing-ghost:hover svg { transform: translateX(3px); }   .marketing-visual { position: relative; max-width: 620px; margin: 0 auto; opacity: 0; transform: translateY(28px); transition: opacity .9s ease .15s, transform .9s cubic-bezier(.2,.7,.2,1) .15s; } .marketing-visual.is-visible { opacity: 1; transform: translateY(0); }   .mv-float { position: absolute; background: #ffffff; border: 1px solid #e6eef7; border-radius: 14px; box-shadow: 0 16px 40px rgba(30, 60, 90, 0.12), 0 4px 12px rgba(30, 60, 90, 0.05); z-index: 5; pointer-events: none; animation: mvFloat 6s ease-in-out infinite; will-change: transform; } @keyframes mvFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }   .mv-float-traffic { top: 20px; left: -40px; width: 190px; padding: 14px 16px 12px; animation-delay: 0s; } .mv-float-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } .mv-float-icon { width: 26px; height: 26px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; } .mv-float-icon svg { width: 14px; height: 14px; } .mv-icon-cyan { background: linear-gradient(135deg, #00D4FF, #1E9BD7); color: #fff; } .mv-float-label { font-size: 0.66rem; font-weight: 600; color: #7a8a9a; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.2; } .mv-float-spark { height: 30px; margin: 4px -2px 6px; } .mv-float-spark svg { width: 100%; height: 100%; display: block; } .mv-float-value { font-size: 1.15rem; font-weight: 800; color: #1a1a1a; letter-spacing: -0.03em; line-height: 1; background: linear-gradient(90deg, #1E9BD7, #84CC16); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }   .mv-float-conv { bottom: 60px; right: -50px; display: flex; align-items: center; gap: 10px; padding: 12px 16px 12px 12px; animation-delay: 2s; } .mv-float-ring { position: relative; width: 44px; height: 44px; flex-shrink: 0; } .mv-float-ring svg { width: 100%; height: 100%; display: block; } .mv-float-ring-text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 0.68rem; font-weight: 800; color: #1a1a1a; letter-spacing: -0.02em; } .mv-float-text .mv-float-label { margin-bottom: 2px; } .mv-float-value-sm { font-size: 1rem; font-weight: 800; color: #A855F7; letter-spacing: -0.03em; line-height: 1; }   .mv-float-pill { top: 58%; left: -20px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; animation-delay: 1s; } .mv-pill-dot { width: 8px; height: 8px; border-radius: 50%; background: #34A853; box-shadow: 0 0 0 4px rgba(52, 168, 83, 0.18); animation: mvPulse 2s ease-in-out infinite; } @keyframes mvPulse { 0%, 100% { box-shadow: 0 0 0 4px rgba(52, 168, 83, 0.18); } 50% { box-shadow: 0 0 0 8px rgba(52, 168, 83, 0.05); } } .mv-pill-text { font-size: 0.72rem; font-weight: 700; color: #1a7f37; letter-spacing: -0.01em; white-space: nowrap; }   .gm-mockup { position: relative; max-width: 480px; margin: 0 auto; transform: perspective(1400px) rotateY(-4deg) rotateX(2deg); transition: transform .6s cubic-bezier(.2,.7,.2,1); will-change: transform; z-index: 3; } .gm-mockup:hover { transform: perspective(1400px) rotateY(-1deg) rotateX(1deg) translateY(-4px); } .gm-browser { position: relative; background: #fff; border-radius: 18px; box-shadow: 0 20px 50px rgba(30, 60, 90, 0.12), 0 4px 12px rgba(30, 60, 90, 0.06); overflow: hidden; border: 1px solid #eaeef4; } .gm-browser-bar { display: flex; align-items: center; gap: 8px; padding: 12px 14px; background: #f7f9fc; border-bottom: 1px solid #eaeef4; } .gm-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; } .gm-dot-red { background: #ff5f57; } .gm-dot-yellow { background: #febc2e; } .gm-dot-green { background: #28c840; } .gm-url { display: flex; align-items: center; gap: 6px; margin-left: 10px; padding: 5px 12px; background: #fff; border: 1px solid #eaeef4; border-radius: 8px; font-size: 0.72rem; color: #7a8a9a; font-weight: 500; flex-grow: 1; max-width: 240px; } .gm-url svg { width: 11px; height: 11px; color: #84CC16; } .gm-browser-body { padding: 1.5rem 1.5rem 1.75rem; background: #fff; } .gm-google { font-weight: 700; font-size: 1.9rem; letter-spacing: -0.05em; text-align: center; margin-bottom: 1rem; line-height: 1; } .gm-search { display: flex; align-items: center; gap: 10px; padding: 11px 16px; background: #fff; border: 1.5px solid #e0e8f0; border-radius: 999px; box-shadow: 0 2px 10px rgba(30, 60, 90, 0.05); margin-bottom: 1.25rem; transition: border-color .3s ease, box-shadow .3s ease; } .gm-search:focus-within, .gm-search.is-active { border-color: var(--nova-blue); box-shadow: 0 4px 16px rgba(30, 155, 215, 0.18); } .gm-search-icon { width: 16px; height: 16px; color: #9ca3af; flex-shrink: 0; } .gm-search-text { font-size: 0.88rem; color: #2b2b2b; font-weight: 500; letter-spacing: -0.01em; min-height: 1.2em; flex-grow: 1; } .gm-cursor { display: inline-block; width: 1.5px; height: 1em; background: var(--nova-blue); animation: gmCursor .9s steps(2) infinite; margin-left: -6px; } .gm-search.is-done .gm-cursor { animation: none; opacity: 0; } @keyframes gmCursor { 0%, 50% { opacity: 1; } 51%, 100% { opacity: 0; } } .gm-results { display: flex; flex-direction: column; gap: 14px; } .gm-result { opacity: 0; transform: translateY(6px); transition: opacity .5s ease, transform .5s ease; } .gm-result.is-visible { opacity: 1; transform: translateY(0); } .gm-result-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; } .gm-ad-badge { display: inline-flex; align-items: center; justify-content: center; padding: 1px 6px; background: #1a7f37; color: #fff; font-size: 0.62rem; font-weight: 700; border-radius: 4px; letter-spacing: 0.02em; } .gm-result-url { font-size: 0.68rem; color: #4b5563; } .gm-result-title { font-size: 0.88rem; font-weight: 600; color: #1a0dab; margin-bottom: 4px; letter-spacing: -0.01em; line-height: 1.3; } .gm-result-desc { font-size: 0.72rem; color: #4d5156; line-height: 1.45; } .gm-result-ad { padding: 10px 12px; border-radius: 10px; background: linear-gradient(180deg, rgba(0, 212, 255, 0.05) 0%, rgba(132, 204, 22, 0.05) 100%); border: 1px solid rgba(30, 155, 215, 0.18); position: relative; } .gm-result-ad::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; background: linear-gradient(180deg, #00D4FF, #84CC16); border-radius: 2px; } .gm-result-ad .gm-result-url { color: #1a7f37; font-weight: 600; } .gm-skel { background: linear-gradient(90deg, #eef2f6 0%, #e3e9f0 50%, #eef2f6 100%); background-size: 200% 100%; border-radius: 4px; animation: gmSkel 1.8s ease-in-out infinite; } .gm-skel-title { height: 12px; width: 70%; margin-bottom: 6px; background: linear-gradient(90deg, #c9d5e2 0%, #b8c6d6 50%, #c9d5e2 100%); background-size: 200% 100%; } .gm-skel-line { height: 8px; width: 95%; margin-bottom: 5px; } .gm-skel-line-short { width: 60%; } @keyframes gmSkel { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .gm-glow { position: absolute; left: 50%; bottom: -40px; transform: translateX(-50%); width: 80%; height: 80px; background: radial-gradient(ellipse, rgba(30, 155, 215, 0.22), transparent 70%); filter: blur(30px); z-index: -1; pointer-events: none; }   @media (max-width: 1199.98px) { .mv-float-traffic { left: -10px; } .mv-float-conv { right: -10px; } .mv-float-pill { left: -5px; } } @media (max-width: 991.98px) { .marketing-content { max-width: 100%; text-align: center; margin: 0 auto; } .marketing-actions { justify-content: center; } .marketing-visual { margin-top: 0; } .gm-mockup { transform: none; } .gm-mockup:hover { transform: translateY(-4px); } .mv-float-traffic { top: 10px; left: -10px; width: 160px; padding: 10px 12px; } .mv-float-conv { bottom: 30px; right: -10px; padding: 10px 12px 10px 10px; } .mv-float-pill { display: none; } } @media (max-width: 575.98px) { .marketing-partner { flex-wrap: wrap; gap: 8px; padding: 6px 12px; } .marketing-title { font-size: clamp(1.6rem, 7vw, 2.2rem); } .marketing-desc { font-size: 0.94rem; } .btn-marketing-primary, .btn-marketing-ghost { width: 100%; justify-content: center; } .gm-browser-body { padding: 1.25rem 1rem 1.5rem; } .gm-google { font-size: 1.6rem; } .gm-search { padding: 10px 14px; } .gm-search-text { font-size: 0.82rem; } .gm-result-title { font-size: 0.82rem; } .mv-float { display: none; } }   @media (max-width: 991.98px) { .marketing-container > .row { --bs-gutter-y: 1.75rem; } } @media (max-width: 575.98px) { .marketing-content { text-align: left; } .marketing-partner { margin-bottom: 1rem; } .marketing-title { margin-bottom: 1rem; } .marketing-actions { gap: 8px; margin-top: 1.25rem; } .marketing-wave svg { height: 32px; } }   .dp-section { background: #ffffff; padding: var(--section-space) 0; position: relative; } .dp-container { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding: 0 var(--page-pad-x); position: relative; z-index: 2; }   .dp-visual { position: relative; max-width: 620px; margin: 0 auto; opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); } .dp-visual.is-visible { opacity: 1; transform: translateY(0); }   .dp-float-logos { position: absolute; inset: 0; pointer-events: none; z-index: 8; } .dp-logo { position: absolute; width: 56px; height: 56px; border-radius: 16px; background: #ffffff; border: 1px solid #e6eef7; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; box-shadow: 0 14px 32px rgba(30, 60, 90, 0.14), 0 4px 10px rgba(30, 60, 90, 0.06); animation: dpLogoFloat 6s ease-in-out infinite; will-change: transform; transition: transform .35s ease, box-shadow .35s ease; } .dp-logo i { line-height: 1; }   .dp-logo-shopify { top: 8%; left: -22px; color: #95BF47; animation-delay: 0s; } .dp-logo-prestashop { top: 42%; right: -26px; color: #DF0067; animation-delay: 1.5s; } .dp-logo-magento { bottom: 32%; left: -30px; color: #F46F25; animation-delay: 3s; }   .dp-logo-woo { bottom: 5%; right: -18px; background: linear-gradient(135deg, #7F54B3 0%, #96588A 100%); border-color: #7F54B3; color: #fff; animation-delay: 4.5s; box-shadow: 0 14px 32px rgba(127, 84, 179, 0.35), 0 4px 10px rgba(127, 84, 179, 0.2); } .dp-logo-woo i { color: #ffffff; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15)); } @keyframes dpLogoFloat { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-14px) rotate(2deg); } }   @media (hover: hover) { .dp-logo:hover { transform: translateY(-6px) scale(1.1); box-shadow: 0 20px 40px rgba(30, 60, 90, 0.18), 0 6px 14px rgba(30, 60, 90, 0.08); } .dp-logo-woo:hover { box-shadow: 0 20px 40px rgba(127, 84, 179, 0.45), 0 6px 14px rgba(127, 84, 179, 0.3); } }   .dp-mockup { position: relative; padding-bottom: 2.5rem; } .dp-dash { background: #ffffff; border-radius: 18px; border: 1px solid #e6eef7; box-shadow: 0 20px 50px rgba(30, 60, 90, 0.10), 0 4px 12px rgba(30, 60, 90, 0.04); overflow: hidden; position: relative; } .dp-dash-head { display: flex; align-items: center; gap: 6px; padding: 12px 16px; background: #f7fafd; border-bottom: 1px solid #eaf0f7; } .dp-dot { width: 8px; height: 8px; border-radius: 50%; } .dp-dot-1 { background: #ff5f57; } .dp-dot-2 { background: #febc2e; } .dp-dot-3 { background: #28c840; } .dp-dash-title-line { flex-grow: 1; height: 6px; max-width: 140px; margin-left: 12px; border-radius: 3px; background: linear-gradient(90deg, #e6eef7, #f2f7fb); position: relative; overflow: hidden; } .dp-dash-title-line::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.35), transparent); transform: translateX(-100%); animation: dpShimmer 3s ease-in-out infinite; animation-delay: 1s; } @keyframes dpShimmer { 0% { transform: translateX(-100%); } 60% { transform: translateX(100%); } 100% { transform: translateX(100%); } } .dp-dash-body { display: flex; padding: 1.25rem 1.5rem 1.5rem; gap: 1.25rem; } .dp-dash-side { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; width: 32px; flex-shrink: 0; } .dp-side-line { height: 6px; border-radius: 3px; background: #eaf0f7; } .dp-side-line-active { background: linear-gradient(90deg, #00D4FF, #1E9BD7); width: 100%; animation: dpSideGlow 2.5s ease-in-out infinite; } @keyframes dpSideGlow { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } } .dp-dash-main { flex-grow: 1; min-width: 0; } .dp-donut-wrap { display: flex; justify-content: center; margin-bottom: 1.25rem; } .dp-donut { width: 140px; height: 140px; display: block; } .dp-donut-center-1 { font-family: var(--font-body); font-size: 20px; font-weight: 800; fill: #1a1a1a; letter-spacing: -0.03em; } .dp-donut-center-2 { font-family: var(--font-body); font-size: 9px; font-weight: 600; fill: #7a8a9a; letter-spacing: 0.05em; text-transform: uppercase; } .dp-donut-arc { transition: stroke-dasharray 1.2s cubic-bezier(.2,.7,.2,1); } .dp-visual:not(.is-visible) .dp-donut-arc { stroke-dasharray: 0 264 !important; } .dp-visual.is-visible .dp-donut-arc-1 { transition-delay: .2s; } .dp-visual.is-visible .dp-donut-arc-2 { transition-delay: .5s; } .dp-visual.is-visible .dp-donut-arc-3 { transition-delay: .8s; }   .dp-bars { display: flex; flex-direction: column; gap: 12px; } .dp-bar-row { display: flex; align-items: center; gap: 10px; } .dp-bar-label-line { width: 60px; height: 6px; border-radius: 3px; background: #eaf0f7; flex-shrink: 0; } .dp-bar { flex-grow: 1; height: 8px; background: #eef3f8; border-radius: 4px; overflow: hidden; position: relative; } .dp-bar-fill { display: block; height: 100%; border-radius: 4px; width: 0; position: relative; overflow: hidden; transition: width 1.3s cubic-bezier(.2,.7,.2,1); } .dp-bar-fill::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent); transform: translateX(-100%); animation: dpBarShimmer 2.2s ease-in-out infinite; } @keyframes dpBarShimmer { 0% { transform: translateX(-100%); } 60% { transform: translateX(100%); } 100% { transform: translateX(100%); } } .dp-visual.is-visible .dp-bar-fill-1 { width: 78%; transition-delay: .3s; } .dp-visual.is-visible .dp-bar-fill-2 { width: 55%; transition-delay: .5s; } .dp-visual.is-visible .dp-bar-fill-3 { width: 92%; transition-delay: .7s; } .dp-visual.is-visible .dp-bar-fill-4 { width: 40%; transition-delay: .9s; } .dp-bar-fill-1 { background: linear-gradient(90deg, #00D4FF, #1E9BD7); } .dp-bar-fill-2 { background: linear-gradient(90deg, #84CC16, #22C55E); } .dp-bar-fill-3 { background: linear-gradient(90deg, #A855F7, #7C3AED); } .dp-bar-fill-4 { background: linear-gradient(90deg, #FBBF24, #F97316); }   .dp-sync-card { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 92%; max-width: 420px; display: flex; align-items: center; gap: 14px; padding: 14px 18px; background: #ffffff; border-radius: 14px; border: 1px solid #e6eef7; box-shadow: 0 16px 40px rgba(30, 60, 90, 0.12), 0 4px 12px rgba(30, 60, 90, 0.04); z-index: 5; animation: dpSyncFloat 6s ease-in-out infinite; } @keyframes dpSyncFloat { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-6px); } } .dp-sync-icon { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, #00D4FF, #1E9BD7); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 6px 16px rgba(30, 155, 215, 0.35); } .dp-sync-icon svg { width: 18px; height: 18px; animation: dpSpin 3s linear infinite; } @keyframes dpSpin { to { transform: rotate(360deg); } } .dp-sync-text { flex-grow: 1; min-width: 0; } .dp-sync-title { font-size: 0.86rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.015em; line-height: 1.2; margin-bottom: 2px; } .dp-sync-sub { font-size: 0.7rem; color: #7a8a9a; font-weight: 500; } .dp-sync-arrow { color: var(--nova-blue); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; } .dp-sync-arrow svg { width: 16px; height: 16px; }   .dp-badge-float { position: absolute; top: 18px; right: -12px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; background: #ffffff; border: 1px solid #e6eef7; border-radius: 999px; box-shadow: 0 10px 24px rgba(30, 60, 90, 0.10); z-index: 6; animation: dpSyncFloat 5s ease-in-out infinite; animation-delay: 1.5s; } .dp-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: #34A853; animation: dpBadgePulse 2s ease-in-out infinite; } @keyframes dpBadgePulse { 0%, 100% { box-shadow: 0 0 0 3px rgba(52,168,83,0.2); } 50% { box-shadow: 0 0 0 6px rgba(52,168,83,0.05); } } .dp-badge-text { font-size: 0.7rem; font-weight: 700; color: #1a7f37; letter-spacing: -0.01em; white-space: nowrap; }   .dp-features { display: flex; flex-wrap: wrap; gap: 2.5rem; margin-top: 3.5rem; padding-left: 0.25rem; } @media (max-width: 575.98px) { .dp-features { gap: 1.5rem; margin-top: 2.75rem; } } .dp-feature { display: flex; align-items: flex-start; gap: 12px; } .dp-feature-icon { width: 44px; height: 44px; border-radius: 50%; background: #fff; border: 1.5px solid #e0e8f0; color: #22C55E; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(34, 197, 94, 0.08); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; } .dp-feature-icon svg { width: 20px; height: 20px; } .dp-feature:hover .dp-feature-icon { transform: translateY(-2px) scale(1.05); border-color: #84CC16; box-shadow: 0 8px 20px rgba(132, 204, 22, 0.2); } .dp-feature-title { font-size: 0.95rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.015em; line-height: 1.2; margin-bottom: 3px; } .dp-feature-desc { font-size: 0.83rem; color: #6b7280; line-height: 1.4; }   .dp-content { max-width: 680px; opacity: 0; transform: translateY(28px); transition: opacity .8s ease .15s, transform .8s cubic-bezier(.2,.7,.2,1) .15s; } .dp-content.is-visible { opacity: 1; transform: translateY(0); }   .dp-badge { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 1.5rem; padding: 7px 18px 7px 7px; background: #fff; border: 1px solid #e6eef7; border-radius: 999px; box-shadow: 0 4px 14px rgba(30, 155, 215, 0.06); } .dp-badge-icon { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg, #84CC16, #22C55E); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(34, 197, 94, 0.35); line-height: 0; } .dp-badge-icon svg { width: 15px; height: 15px; display: block; transform: translateY(-0.5px); } .dp-badge-label { font-size: 0.85rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.01em; line-height: 1; }   .dp-title { font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; color: var(--text-dark); margin: 0 0 1.5rem; } .dp-title-accent { background: linear-gradient(120deg, #1E9BD7 0%, #00D4FF 50%, #84CC16 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; } .dp-desc { font-size: 1rem; line-height: 1.65; color: #5a6675; margin: 0 0 1rem; } .dp-desc strong { color: var(--text-dark); font-weight: 600; }   .dp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.5rem; } .dp-btn-primary { display: inline-flex; align-items: center; gap: 10px; padding: 0.9rem 1.6rem; border-radius: 12px; background: linear-gradient(135deg, #00D4FF 0%, #1E9BD7 60%, #0A4F8F 100%); color: #fff; font-weight: 600; font-size: 0.95rem; border: none; box-shadow: 0 10px 24px rgba(30, 155, 215, 0.35); transition: transform .3s ease, box-shadow .3s ease, filter .3s ease; text-decoration: none; position: relative; overflow: hidden; } .dp-btn-primary::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent); transition: left .6s ease; } .dp-btn-primary:hover::after { left: 100%; } .dp-btn-primary svg { width: 13px; height: 13px; transition: transform .3s ease; } .dp-btn-primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(30, 155, 215, 0.5); filter: brightness(1.05); } .dp-btn-primary:hover svg { transform: translateX(3px); } .dp-btn-ghost { display: inline-flex; align-items: center; gap: 8px; padding: 0.9rem 1.6rem; border-radius: 12px; background: #fff; color: var(--text-dark); font-weight: 600; font-size: 0.95rem; border: 1.5px solid #e0e8f0; transition: border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease; text-decoration: none; } .dp-btn-ghost i { font-size: 13px; color: var(--nova-blue); transition: transform .3s ease; } .dp-btn-ghost:hover { border-color: var(--nova-blue); color: var(--nova-blue); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30, 155, 215, 0.15); } .dp-btn-ghost:hover i { transform: rotate(-15deg); }   @media (max-width: 1199.98px) { .dp-logo-shopify { left: -12px; } .dp-logo-prestashop { right: -14px; } .dp-logo-magento { left: -18px; } .dp-logo-woo { right: -10px; } } @media (max-width: 991.98px) { .dp-visual { max-width: 520px; } .dp-content { max-width: 100%; text-align: center; margin: 0 auto; } .dp-actions { justify-content: center; } .dp-badge { margin-left: auto; margin-right: auto; } .dp-features { justify-content: center; } .dp-badge-float { right: 0; } .dp-logo { width: 48px; height: 48px; font-size: 1.3rem; } .dp-logo-shopify { top: 5%; left: -6px; } .dp-logo-prestashop { top: 40%; right: -8px; } .dp-logo-magento { bottom: 34%; left: -10px; } .dp-logo-woo { bottom: 8%; right: -6px; } } @media (max-width: 575.98px) { .dp-donut { width: 110px; height: 110px; } .dp-donut-center-1 { font-size: 17px; } .dp-dash-body { padding: 1rem; gap: 0.75rem; } .dp-dash-side { display: none; } .dp-sync-card { padding: 12px 14px; gap: 10px; } .dp-sync-icon { width: 34px; height: 34px; } .dp-sync-icon svg { width: 16px; height: 16px; } .dp-sync-title { font-size: 0.78rem; } .dp-sync-sub { font-size: 0.64rem; } .dp-badge-float { display: none; } .dp-title { font-size: clamp(1.6rem, 7vw, 2.2rem); } .dp-desc { font-size: 0.94rem; } .dp-btn-primary, .dp-btn-ghost { width: 100%; justify-content: center; } .dp-feature { flex-basis: 100%; } .dp-logo { width: 40px; height: 40px; font-size: 1.1rem; border-radius: 12px; } .dp-logo-shopify { top: 0%; left: -4px; } .dp-logo-prestashop { top: 42%; right: -6px; } .dp-logo-magento { bottom: 30%; left: -6px; } .dp-logo-woo { bottom: 4%; right: -4px; } }   @media (max-width: 991.98px) { .dp-container > .row { --bs-gutter-y: 1.75rem; } } @media (max-width: 575.98px) { .dp-content { text-align: left; } .dp-badge { margin: 0 0 1rem; } .dp-title { margin-bottom: 1rem; } .dp-actions { gap: 8px; margin-top: 1.25rem; } .dp-features { justify-content: flex-start; gap: 12px; } }     .pf-section svg { width: 14px; height: 14px; max-width: 14px; max-height: 14px; flex-shrink: 0; display: inline-block; vertical-align: middle; } .pf-section .pf-metrics-icon svg { width: 22px; height: 22px; max-width: 22px; max-height: 22px; } .pf-section .pf-dark-link svg { width: 15px; height: 15px; max-width: 15px; max-height: 15px; } .pf-section .pf-nav svg { width: 18px; height: 18px; max-width: 18px; max-height: 18px; } .portfolio-modal .pf-modal-close svg { width: 15px; height: 15px; max-width: 15px; max-height: 15px; }   .pf-section { position: relative; padding: var(--section-space) 0; background: #ffffff; overflow: hidden; isolation: isolate; }   .pf-section::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; background: radial-gradient(ellipse 50% 60% at 10% 40%, rgba(0, 212, 255, 0.06) 0%, rgba(0, 212, 255, 0.02) 40%, transparent 72%), radial-gradient(ellipse 50% 60% at 90% 55%, rgba(168, 85, 247, 0.055) 0%, rgba(168, 85, 247, 0.02) 40%, transparent 72%), radial-gradient(ellipse 60% 40% at 50% 100%, rgba(132, 204, 22, 0.045) 0%, transparent 65%), linear-gradient(180deg, #ffffff 0%, #fcfdff 30%, #fafcff 50%, #fcfdff 70%, #ffffff 100%); }   .pf-section::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; background: linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0) 14%, rgba(255, 255, 255, 0) 86%, #ffffff 100%); } .pf-container { position: relative; z-index: 2; width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 var(--page-pad-x); }   .pf-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 3rem; flex-wrap: wrap; } @media (max-width: 767.98px) { .pf-header { align-items: flex-start; gap: 1.5rem; margin-bottom: 2rem; } } .pf-header-text { max-width: 720px; } .pf-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 0.72rem; font-weight: 800; color: #1E9BD7; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.85rem; } .pf-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: #84CC16; box-shadow: 0 0 0 4px rgba(132, 204, 22, 0.18); animation: pfPulseDot 2s ease-in-out infinite; } @keyframes pfPulseDot { 0%, 100% { box-shadow: 0 0 0 4px rgba(132, 204, 22, 0.18); } 50% { box-shadow: 0 0 0 10px rgba(132, 204, 22, 0.04); } } .pf-title { font-size: clamp(1.8rem, 3.4vw, 3rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.035em; color: var(--text-dark, #111827); margin: 0 0 1rem; } .pf-title-muted { color: #b0b0b0; } .pf-sub { font-size: 0.95rem; color: #6b7280; line-height: 1.65; margin: 0; max-width: 640px; } .pf-header-cta { display: inline-flex; align-items: center; gap: 8px; padding: 0.75rem 1.35rem; background: #ffffff; border: 1px solid #e6e6e6; border-radius: 10px; color: var(--text-dark, #111827); font-weight: 600; font-size: 0.9rem; text-decoration: none; white-space: nowrap; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03); transition: background .25s ease, border-color .25s ease, transform .25s ease, color .25s ease, box-shadow .25s ease; } .pf-header-cta svg { width: 13px; height: 13px; transition: transform .3s ease; } .pf-header-cta:hover { background: var(--text-dark, #111827); border-color: var(--text-dark, #111827); color: #ffffff; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12); } .pf-header-cta:hover svg { transform: translate(2px, -2px); } @media (max-width: 767.98px) { .pf-header-cta { width: 100%; justify-content: center; } }   .pf-slider-wrap { position: relative; margin: 0 -8px; } .pf-slider { display: flex; gap: 22px; overflow-x: auto; overflow-y: hidden; padding: 8px 8px 24px; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } .pf-slider::-webkit-scrollbar { display: none; }   .pf-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; width: 48px; height: 48px; border-radius: 50%; background: #ffffff; border: 1px solid #e6eef7; color: var(--text-dark, #111827); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 8px 22px rgba(30, 60, 90, 0.12); transition: background .25s ease, color .25s ease, transform .25s ease, opacity .25s ease, box-shadow .25s ease; } .pf-nav svg { width: 18px; height: 18px; } .pf-nav:hover { background: var(--text-dark, #111827); color: #ffffff; transform: translateY(-50%) scale(1.08); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18); } .pf-nav:disabled, .pf-nav[aria-disabled="true"] { opacity: 0.3; cursor: not-allowed; pointer-events: none; } .pf-nav-prev { left: -22px; } .pf-nav-next { right: -22px; } @media (max-width: 991.98px) { .pf-nav-prev { left: -8px; } .pf-nav-next { right: -8px; } } @media (max-width: 575.98px) { .pf-nav { display: none; } }   .pf-card { flex: 0 0 380px; max-width: 380px; height: 500px; scroll-snap-align: start; border-radius: 22px; overflow: hidden; cursor: pointer; position: relative; outline: none; will-change: transform; isolation: isolate; transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease; } @media (max-width: 991.98px) { .pf-card { flex: 0 0 340px; max-width: 340px; height: 470px; } } @media (max-width: 575.98px) { .pf-card { flex: 0 0 84%; max-width: 84%; height: 460px; } } .pf-card:hover, .pf-card:focus-visible { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(30, 60, 90, 0.18); }   .pf-card-stat { background: #ffffff; padding: 0; } .pf-card-stat::before { content: ""; position: absolute; inset: 0; border-radius: 22px; padding: 2px; background: linear-gradient(135deg, #84CC16 0%, #22C55E 40%, #FBBF24 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; opacity: 0.85; transition: opacity .35s ease; } .pf-card-stat:hover::before { opacity: 1; } .pf-stat-inner { display: flex; flex-direction: column; height: 100%; padding: 2.25rem 2rem 2rem; background: #ffffff; border-radius: 22px; } .pf-stat-top { display: flex; flex-direction: column; } .pf-stat-number { font-size: clamp(3.5rem, 6vw, 5rem); font-weight: 900; letter-spacing: -0.06em; line-height: 0.9; color: #1a1a1a; margin-bottom: 0.5rem; } .pf-stat-unit { font-size: 0.55em; vertical-align: super; margin-left: 2px; } .pf-stat-label { font-size: 0.9rem; font-weight: 700; color: #22C55E; letter-spacing: -0.01em; } .pf-stat-middle { flex-grow: 1; display: flex; align-items: flex-end; padding: 1.5rem 0; } .pf-stat-title { font-size: 1.5rem; line-height: 1.15; font-weight: 700; letter-spacing: -0.03em; color: #1a1a1a; margin: 0; } .pf-stat-title-muted { color: #b0b0b0; } .pf-stat-bottom { border-top: 1px solid #eef3f8; padding-top: 1.25rem; } .pf-stat-desc { font-size: 0.85rem; color: #6b7280; line-height: 1.5; margin: 0 0 1rem; } .pf-stat-link { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; font-weight: 700; color: #22C55E; letter-spacing: -0.01em; } .pf-stat-link svg { width: 13px; height: 13px; transition: transform .3s ease; } .pf-card-stat:hover .pf-stat-link svg { transform: translateX(4px); } .pf-stat-brand { position: absolute; top: 1.5rem; right: 1.75rem; font-size: 0.68rem; color: #b0b0b0; font-weight: 600; letter-spacing: 0.02em; }   .pf-card-dark { background: #0a0a0a; color: #ffffff; position: relative; } .pf-dark-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.28; transition: opacity .5s ease, transform .6s cubic-bezier(.2, .7, .2, 1); } .pf-card-dark:hover .pf-dark-bg { opacity: 0.42; transform: scale(1.05); } .pf-dark-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 10, 10, 0.7) 0%, rgba(10, 10, 10, 0.35) 40%, rgba(10, 10, 10, 0.95) 100%); z-index: 1; } .pf-dark-content { position: relative; z-index: 2; padding: 2rem; display: flex; flex-direction: column; height: 100%; } .pf-dark-logo { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 1.05rem; letter-spacing: -0.03em; color: #ffffff; } .pf-dark-logo-dot { width: 12px; height: 12px; border-radius: 50%; background: linear-gradient(135deg, #F472B6, #A855F7); box-shadow: 0 0 12px rgba(244, 114, 182, 0.6); animation: pfDarkDot 2.2s ease-in-out infinite; } @keyframes pfDarkDot { 0%, 100% { box-shadow: 0 0 12px rgba(244, 114, 182, 0.6); } 50% { box-shadow: 0 0 20px rgba(244, 114, 182, 0.95); } } .pf-dark-middle { flex-grow: 1; display: flex; flex-direction: column; justify-content: center; } .pf-dark-title { font-size: 1.75rem; line-height: 1.1; font-weight: 800; letter-spacing: -0.035em; margin: 0 0 1rem; color: #ffffff; } .pf-dark-title-muted { color: rgba(255, 255, 255, 0.45); } .pf-dark-quote { font-size: 0.85rem; line-height: 1.5; color: rgba(255, 255, 255, 0.75); font-style: italic; margin: 0; border-left: 2px solid #F472B6; padding-left: 12px; } .pf-dark-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; border-top: 1px solid rgba(255, 255, 255, 0.15); padding-top: 1.25rem; } .pf-dark-stat { display: flex; flex-direction: column; gap: 2px; } .pf-dark-stat-num { font-size: 1.75rem; font-weight: 900; letter-spacing: -0.04em; line-height: 1; background: linear-gradient(120deg, #F472B6, #A855F7); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .pf-dark-stat-lbl { font-size: 0.72rem; color: rgba(255, 255, 255, 0.55); font-weight: 500; letter-spacing: 0.02em; } .pf-dark-link { width: 40px; height: 40px; border-radius: 50%; background: #ffffff; color: #0a0a0a; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform .3s ease, background .3s ease, color .3s ease; } .pf-dark-link svg { width: 15px; height: 15px; } .pf-card-dark:hover .pf-dark-link { background: #F472B6; color: #ffffff; transform: translateX(4px); }   .pf-card-metrics { background: #f6f6f6; color: var(--text-dark, #111827); } .pf-metrics-inner { padding: 2rem; display: flex; flex-direction: column; height: 100%; } .pf-metrics-icon { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, #FBCFE8, #F472B6); color: #ffffff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-bottom: 1.25rem; box-shadow: 0 6px 18px rgba(244, 114, 182, 0.35); } .pf-metrics-icon svg { width: 22px; height: 22px; } .pf-metrics-title { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.03em; color: #1a1a1a; margin: 0 0 0.5rem; } .pf-metrics-desc { font-size: 0.85rem; color: #6b7280; line-height: 1.5; margin: 0 0 1.5rem; } .pf-metrics-bars { display: flex; flex-direction: column; gap: 14px; flex-grow: 1; justify-content: center; margin-bottom: 1.5rem; } .pf-metric-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; font-size: 0.78rem; font-weight: 600; color: #1a1a1a; } .pf-metric-head span:last-child { color: #EC4899; font-weight: 800; } .pf-metric-track { height: 6px; background: #e8e8e8; border-radius: 3px; overflow: hidden; } .pf-metric-fill { display: block; height: 100%; width: 0; border-radius: 3px; background: linear-gradient(90deg, #F472B6, #EC4899); transition: width 1.4s cubic-bezier(.2, .7, .2, 1); } .pf-card-metrics.is-inview .pf-metric-fill { width: var(--target-width, 0%); } .pf-metrics-link { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; font-weight: 700; color: #EC4899; letter-spacing: -0.01em; align-self: flex-start; } .pf-metrics-link svg { width: 13px; height: 13px; transition: transform .3s ease; } .pf-card-metrics:hover .pf-metrics-link svg { transform: translateX(4px); }   .pf-card-image { position: relative; color: #ffffff; } .pf-image-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); } .pf-card-image:hover .pf-image-bg { transform: scale(1.06); } .pf-image-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 30, 50, 0.5) 0%, rgba(10, 30, 50, 0.15) 35%, rgba(10, 30, 50, 0.92) 100%); z-index: 1; } .pf-image-content { position: relative; z-index: 2; padding: 2rem; display: flex; flex-direction: column; height: 100%; color: #ffffff; } .pf-image-top { display: flex; justify-content: space-between; align-items: center; } .pf-image-brand { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: rgba(255, 255, 255, 0.95); color: #0a1f33; border-radius: 999px; font-size: 0.78rem; font-weight: 800; letter-spacing: -0.02em; } .pf-image-brand-dot { width: 8px; height: 8px; border-radius: 50%; background: #00D4FF; box-shadow: 0 0 10px rgba(0, 212, 255, 0.8); } .pf-image-bottom { margin-top: auto; } .pf-image-title { font-size: 1.6rem; line-height: 1.1; font-weight: 800; letter-spacing: -0.035em; margin: 0 0 0.75rem; color: #ffffff; } .pf-image-title-muted { color: rgba(255, 255, 255, 0.6); } .pf-image-desc { font-size: 0.83rem; line-height: 1.5; color: rgba(255, 255, 255, 0.85); margin: 0 0 1.25rem; } .pf-image-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; background: #ffffff; color: #0a1f33; border-radius: 12px; font-size: 0.85rem; font-weight: 700; letter-spacing: -0.01em; transition: background .25s ease, color .25s ease, transform .3s ease; } .pf-image-btn svg { width: 13px; height: 13px; transition: transform .3s ease; } .pf-card-image:hover .pf-image-btn { background: #00D4FF; color: #ffffff; transform: translateY(-2px); } .pf-card-image:hover .pf-image-btn svg { transform: translateX(4px); }   .pf-dots { display: flex; justify-content: center; gap: 8px; margin-top: 1rem; } .pf-dot { width: 8px; height: 8px; border-radius: 50%; background: #e5edf5; border: none; padding: 0; cursor: pointer; transition: background .25s, width .25s; } .pf-dot.is-active { background: var(--text-dark, #111827); width: 24px; border-radius: 4px; }   .pf-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid #eef3f8; flex-wrap: wrap; } @media (max-width: 767.98px) { .pf-footer { flex-direction: column; align-items: stretch; text-align: center; gap: 1.25rem; } } .pf-footer-note { display: inline-flex; align-items: center; gap: 8px; font-size: 0.85rem; color: #6b7280; margin: 0; line-height: 1.5; } .pf-footer-note i { color: #1E9BD7; font-size: 0.85rem; } @media (max-width: 767.98px) { .pf-footer-note { justify-content: center; font-size: 0.82rem; } } .pf-footer-cta { display: inline-flex; align-items: center; gap: 9px; padding: 0.85rem 1.5rem; background: linear-gradient(135deg, #00D4FF, #1E9BD7 60%, #0A4F8F); color: #ffffff; border-radius: 10px; font-size: 0.86rem; font-weight: 700; text-decoration: none; box-shadow: 0 10px 24px rgba(30, 155, 215, 0.28); transition: transform .2s ease, box-shadow .2s ease; white-space: nowrap; flex-shrink: 0; } .pf-footer-cta svg { width: 14px; height: 14px; transition: transform .25s ease; } .pf-footer-cta:hover { color: #ffffff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(30, 155, 215, 0.45); } .pf-footer-cta:hover svg { transform: translateX(3px); } @media (max-width: 767.98px) { .pf-footer-cta { width: 100%; justify-content: center; } }   .portfolio-modal .modal-content { border: none; border-radius: 22px; overflow: hidden; background: #ffffff; box-shadow: 0 30px 80px rgba(30, 60, 90, 0.25); } .portfolio-modal .modal-dialog { margin: 1rem auto; } .portfolio-modal.modal-dialog-scrollable, .portfolio-modal .modal-dialog-scrollable .modal-content, .portfolio-modal .modal-dialog-scrollable { max-height: calc(100vh - 2rem); } .portfolio-modal .modal-body { overflow-y: auto !important; -webkit-overflow-scrolling: touch; padding: 1.5rem 2rem 2rem; } @media (max-width: 767.98px) { .portfolio-modal .modal-body { padding: 1.25rem 1.15rem 1.75rem; } } body.modal-open { overflow: hidden !important; } .pf-modal-header { border-bottom: 1px solid #eef3f8; padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; background: #ffffff; z-index: 10; border-radius: 22px 22px 0 0; } .pf-modal-cat { display: inline-block; padding: 6px 14px; background: #eef6fd; color: #0A6FA8; border-radius: 999px; font-size: 0.72rem; font-weight: 700; letter-spacing: -0.01em; } .pf-modal-close { width: 38px; height: 38px; border-radius: 50%; border: 1px solid #e6eef7; background: #ffffff; color: var(--text-dark, #111827); display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; transition: background .2s, color .2s, transform .25s; } .pf-modal-close svg { width: 15px; height: 15px; } .pf-modal-close:hover { background: var(--text-dark, #111827); color: #ffffff; transform: rotate(90deg); } .pf-modal-browser { display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: #f7fafd; border: 1px solid #eaf0f7; border-radius: 12px; margin-bottom: 1rem; } .pf-b-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; } .pf-b-red { background: #ff5f57; } .pf-b-yellow { background: #febc2e; } .pf-b-green { background: #28c840; } .pf-b-url { margin-left: 10px; font-size: 0.75rem; color: #6b7280; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .pf-modal-img { width: 100%; height: auto; border-radius: 14px; display: block; margin-bottom: 1.5rem; box-shadow: 0 12px 32px rgba(30, 60, 90, 0.1); } .pf-modal-title { font-size: clamp(1.5rem, 2.6vw, 2.25rem); font-weight: 800; color: var(--text-dark, #111827); letter-spacing: -0.035em; line-height: 1.1; margin: 0 0 0.85rem; } .pf-modal-desc { font-size: 0.95rem; color: #5a6675; line-height: 1.7; margin: 0 0 1.75rem; } .pf-modal-desc strong { color: var(--text-dark, #111827); font-weight: 700; } .pf-modal-counters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.75rem; padding: 1.5rem 1.25rem; background: #fafcfe; border: 1px solid #eef3f8; border-radius: 16px; } @media (max-width: 767.98px) { .pf-modal-counters { grid-template-columns: repeat(2, 1fr); gap: 1.25rem 1rem; } } .pf-counter { text-align: center; } .pf-counter-value { font-size: clamp(1.2rem, 1.7vw, 1.6rem); font-weight: 900; letter-spacing: -0.04em; line-height: 1; margin-bottom: 6px; background: linear-gradient(120deg, #1E9BD7 0%, #00D4FF 50%, #84CC16 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .pf-counter-label { font-size: 0.68rem; color: #7a8a9a; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.3; } .pf-modal-bars { display: flex; flex-direction: column; gap: 16px; margin-bottom: 2rem; } .pf-bar-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 0.85rem; font-weight: 700; color: var(--text-dark, #111827); } .pf-bar-head span:last-child { color: #1E9BD7; font-weight: 800; } .pf-bar-track { height: 8px; background: #eef3f8; border-radius: 4px; overflow: hidden; } .pf-bar-fill { display: block; height: 100%; width: 0; border-radius: 4px; background: linear-gradient(90deg, #1E9BD7 0%, #00D4FF 60%, #84CC16 100%); transition: width 1.4s cubic-bezier(.2, .7, .2, 1); } .pf-modal-cta { display: inline-flex; align-items: center; gap: 10px; padding: 0.95rem 1.7rem; background: linear-gradient(135deg, #00D4FF 0%, #1E9BD7 60%, #0A4F8F 100%); color: #ffffff; font-weight: 700; font-size: 0.95rem; border-radius: 12px; text-decoration: none; box-shadow: 0 10px 24px rgba(30, 155, 215, 0.35); transition: transform .3s ease, box-shadow .3s ease, filter .3s ease; } .pf-modal-cta svg { width: 13px; height: 13px; transition: transform .3s ease; } .pf-modal-cta:hover { color: #ffffff; transform: translateY(-2px); box-shadow: 0 16px 34px rgba(30, 155, 215, 0.5); filter: brightness(1.05); } .pf-modal-cta:hover svg { transform: translate(2px, -2px); } @media (max-width: 767.98px) { .portfolio-modal .modal-dialog { margin: 0.5rem; } .portfolio-modal .modal-content { border-radius: 18px; } .pf-modal-header { padding: 1rem 1.15rem; border-radius: 18px 18px 0 0; } .pf-modal-close { width: 34px; height: 34px; } .pf-modal-cat { font-size: 0.68rem; padding: 5px 11px; } }   @media (prefers-reduced-motion: reduce) { .pf-eyebrow-dot, .pf-dark-logo-dot, .pf-image-brand-dot { animation: none !important; } .pf-card, .pf-card:hover, .pf-dark-bg, .pf-card-dark:hover .pf-dark-bg, .pf-image-bg, .pf-card-image:hover .pf-image-bg, .pf-nav, .pf-nav:hover, .pf-header-cta, .pf-header-cta:hover, .pf-image-btn, .pf-card-image:hover .pf-image-btn, .pf-modal-cta, .pf-modal-cta:hover, .pf-modal-close, .pf-modal-close:hover, .pf-footer-cta, .pf-footer-cta:hover, .pf-metric-fill, .pf-bar-fill { transition: none !important; transform: none !important; animation: none !important; } }   .tm-section { position: relative; margin-inline: 0; padding: var(--section-space) 0; background: linear-gradient(180deg, #f7fbfe 0%, #f4faf4 50%, #eef7ee 100%); overflow: clip; z-index: 1; }   .tm-section::before, .tm-section::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; } .tm-section::before { width: 700px; height: 700px; top: -180px; left: -180px; background: radial-gradient(circle, rgba(0, 212, 255, 0.10) 0%, rgba(0, 212, 255, 0.04) 40%, transparent 72%); } .tm-section::after { width: 800px; height: 800px; bottom: -220px; right: -220px; background: radial-gradient(circle, rgba(132, 204, 22, 0.10) 0%, rgba(132, 204, 22, 0.04) 40%, transparent 72%); }   .tm-wave { position: absolute; left: 0; right: 0; line-height: 0; pointer-events: none; z-index: 2; } .tm-wave svg { display: block; width: 100%; height: clamp(28px, 3vw, 48px); } .tm-wave-top { top: -1px; } .tm-wave-bottom { bottom: -1px; }   .tm-container { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding: 0 var(--page-pad-x); position: relative; z-index: 3; }   .tm-slider { position: relative; max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 1fr; }   .tm-slide { grid-area: 1 / 1; display: grid; grid-template-columns: 156px minmax(0, 1fr); gap: 2rem; padding: 2rem; background: transparent; border: 1px solid transparent; border-radius: 24px; box-shadow: none; align-items: center; opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), visibility 0s linear .7s; pointer-events: none; } .tm-slide.is-active { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), visibility 0s; }   .tm-media { position: relative; width: 100%; max-width: 156px; aspect-ratio: 1 / 1; margin: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }   .tm-media-ring { position: absolute; inset: -8px; border: 1.5px dashed rgba(30, 60, 90, 0.15); border-radius: 50%; animation: tmRingSpin 40s linear infinite; pointer-events: none; } @keyframes tmRingSpin { to { transform: rotate(360deg); } }   .tm-media-inner { position: relative; width: 100%; height: 100%; border-radius: 50%; padding: 5px; background: linear-gradient(135deg, var(--tm-accent) 0%, var(--tm-accent-2) 100%); box-shadow: 0 24px 60px rgba(30, 60, 90, 0.18), 0 8px 20px rgba(30, 60, 90, 0.08); overflow: hidden; isolation: isolate; } .tm-media-inner::before { content: ""; position: absolute; top: -40%; left: -40%; width: 160%; height: 160%; background: radial-gradient(circle at 25% 25%, rgba(255,255,255,0.5), transparent 55%); animation: tmInnerGlow 8s ease-in-out infinite; z-index: 1; pointer-events: none; } @keyframes tmInnerGlow { 0%, 100% { transform: translate(0,0); } 50% { transform: translate(15%, 12%); } }   .tm-media-inner img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; border-radius: 50%; display: block; border: 3px solid #ffffff; box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.05); }   .tm-body { max-width: none; min-width: 0; }   .tm-rating { display: inline-flex; align-items: center; gap: 12px; padding: 0; background: transparent; border: 0; border-radius: 14px; box-shadow: none; margin-bottom: 1rem; } .tm-stars { display: inline-flex; gap: 3px; color: #FBBF24; } .tm-stars svg { width: 16px; height: 16px; filter: drop-shadow(0 1px 2px rgba(251, 191, 36, 0.35)); } .tm-rating-label { font-size: 0.82rem; color: #6b7280; font-weight: 500; letter-spacing: -0.005em; white-space: nowrap; } .tm-rating-label strong { color: #1a1a1a; font-weight: 700; }   .tm-quote { font-size: clamp(1.05rem, 1.5vw, 1.45rem); line-height: 1.5; font-weight: 700; letter-spacing: -0.03em; color: #263642; margin: 0 0 1.25rem; padding-left: 1rem; border-left: 3px solid var(--tm-accent); position: relative; } .tm-quote::before { content: none; position: absolute; left: -0.05em; top: -0.05em; font-size: 1.8em; line-height: 1; font-family: var(--font-body); opacity: 0.35; color: var(--tm-accent); }   .tm-author { display: flex; align-items: center; gap: 1rem; padding-top: 1rem; border-top: 1px solid rgba(30, 60, 90, 0.08); max-width: none; } .tm-author-logo { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 10px; font-size: 0.85rem; font-weight: 800; letter-spacing: -0.02em; flex-shrink: 0; } .tm-author-logo svg { width: 16px; height: 16px; } .tm-logo-green { background: linear-gradient(135deg, #ECFCCB, #D9F99D); color: #3F6212; border: 1px solid rgba(132, 204, 22, 0.3); } .tm-logo-pink { background: linear-gradient(135deg, #FCE7F3, #FBCFE8); color: #9D174D; border: 1px solid rgba(236, 72, 153, 0.25); } .tm-logo-cyan { background: linear-gradient(135deg, #E0F2FE, #BAE6FD); color: #075985; border: 1px solid rgba(14, 165, 233, 0.25); } .tm-logo-orange { background: linear-gradient(135deg, #FEF3C7, #FED7AA); color: #9A3412; border: 1px solid rgba(251, 146, 60, 0.3); } .tm-author-info { line-height: 1.3; } .tm-author-name { font-size: 1rem; font-weight: 800; color: #1a1a1a; letter-spacing: -0.02em; } .tm-author-role { font-size: 0.85rem; color: #6b7280; font-weight: 500; }   .tm-dots { display: flex; justify-content: center; gap: 10px; margin-top: .5rem; } .tm-dot { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; display: grid; place-items: center; cursor: pointer; } .tm-dot::after { content: ""; width: 7px; height: 7px; border-radius: 99px; background: #c1d1dd; transition: width .3s, background .3s; } .tm-dot.is-active::after { width: 24px; background: #0878b1; } .tm-dot:hover::after { background: #0878b1; } .tm-dot:focus-visible { outline: 2px solid #0878b1; outline-offset: -5px; border-radius: 12px; } @media (max-width: 991.98px) { .tm-slide { grid-template-columns: 112px minmax(0,1fr); gap: 1.5rem; padding: 1.5rem; } .tm-media { max-width: 112px; } .tm-author { flex-wrap: wrap; gap: 10px 16px; } } @media (max-width: 575.98px) { .tm-slide { grid-template-columns: 60px minmax(0,1fr); gap: 16px; padding: 20px; border-radius: 18px; align-items: center; } .tm-body { display: contents; } .tm-media { grid-column: 1; grid-row: 1; width: 60px; } .tm-media-inner { padding: 3px; } .tm-media-ring { inset: -5px; } .tm-rating { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; background: transparent; } .tm-rating-label { font-size: 12px; } .tm-stars svg { width: 13px; height: 13px; } .tm-quote { grid-column: 1 / -1; margin: 0; font-size: 16px; line-height: 1.55; letter-spacing: -.015em; padding-left: 12px; } .tm-author { grid-column: 1 / -1; gap: 10px; padding-top: 14px; } .tm-author-logo { font-size: 11px; padding: 5px 8px; } .tm-author-name { font-size: 14px; } .tm-author-role { font-size: 12px; } .tm-dots { gap: 2px; margin-top: 0; } } @media (prefers-reduced-motion: reduce) { .tm-media-ring, .tm-media-inner::before { animation: none; } .tm-slide, .tm-dot::after { transition: none; } }   .ft-footer { background: #ffffff; color: #5a6675; padding: 3rem 0 2rem; position: relative; } @media (max-width: 767.98px) { .ft-footer { padding: 2rem 0 1.5rem; } } .ft-container { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding: 0 var(--page-pad-x); }   .ft-top { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid #e5e9ee; flex-wrap: wrap; } @media (max-width: 767.98px) { .ft-top { flex-direction: column; align-items: flex-start; gap: 1.25rem; padding-bottom: 1.5rem; } } .ft-top-brand { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; } .ft-logo-link { display: inline-block; transition: opacity .2s ease; } .ft-logo-link:hover { opacity: 0.8; } .ft-logo { display: block; height: 55px; width: auto; } @media (max-width: 575.98px) { .ft-logo { height: 46px; } } .ft-tagline { font-size: 0.9rem; color: #6b7280; line-height: 1.5; margin: 0; max-width: 380px; } @media (max-width: 575.98px) { .ft-tagline { font-size: 0.85rem; max-width: 100%; } } .ft-top-right { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; } @media (max-width: 767.98px) { .ft-top-right { width: 100%; justify-content: space-between; } }   .ft-badges { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .ft-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: #ffffff; border: 1px solid #e5e9ee; border-radius: 10px; font-size: 0.75rem; color: #5a6675; line-height: 1.15; transition: border-color .25s ease, box-shadow .25s ease; } .ft-badge:hover { border-color: #d0d8e2; box-shadow: 0 4px 10px rgba(30, 60, 90, 0.06); } .ft-badge svg { width: 26px; height: 26px; color: #1a1a1a; flex-shrink: 0; } .ft-badge strong { color: #1a1a1a; font-weight: 800; display: block; } .ft-badge-google { padding: 8px 14px 8px 12px; } .ft-badge-g-bar { width: 4px; height: 26px; background: linear-gradient(180deg, #4285F4 0%, #EA4335 33%, #FBBC05 66%, #34A853 100%); border-radius: 2px; flex-shrink: 0; } .ft-badge-g-text { display: flex; flex-direction: column; line-height: 1; } .ft-badge-g-google { font-size: 0.7rem; font-weight: 600; background: linear-gradient(90deg, #4285F4 0%, #EA4335 40%, #FBBC05 70%, #34A853 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .ft-badge-g-partner { font-size: 0.9rem; font-weight: 800; color: #4a5b6c; letter-spacing: -0.03em; margin-top: 1px; }   .ft-top-cta { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; background: linear-gradient(135deg, #00D4FF 0%, #1E9BD7 60%, #0A4F8F 100%); color: #fff; font-weight: 700; font-size: 0.9rem; border-radius: 10px; text-decoration: none; box-shadow: 0 6px 16px rgba(30, 155, 215, 0.28); transition: transform .25s ease, box-shadow .25s ease, filter .25s ease; white-space: nowrap; } .ft-top-cta svg { width: 15px; height: 15px; transition: transform .3s ease; } .ft-top-cta:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(30, 155, 215, 0.45); filter: brightness(1.05); } .ft-top-cta:hover svg { transform: translateX(3px); }   .ft-main { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.5rem; padding: 2.5rem 0; border-bottom: 1px solid #e5e9ee; } @media (max-width: 767.98px) { .ft-main { grid-template-columns: 1fr; gap: 0; padding: 1rem 0; } } .ft-col {   } @media (max-width: 767.98px) { .ft-col { border-bottom: 1px solid #e5e9ee; } .ft-col:last-child { border-bottom: none; } }   .ft-col details { border: none; } .ft-col summary { list-style: none; cursor: pointer; font-size: 0.92rem; font-weight: 700; color: var(--text-dark); letter-spacing: -0.01em; line-height: 1.3; padding: 0; margin: 0 0 1.1rem; display: flex; align-items: center; justify-content: space-between; user-select: none; } .ft-col summary::-webkit-details-marker { display: none; } .ft-col summary::after { content: "+"; font-size: 1.2rem; font-weight: 400; color: #9ca3af; transition: transform .2s ease; line-height: 1; } .ft-col details[open] > summary::after { content: "−"; }   @media (max-width: 767.98px) { .ft-col summary { padding: 16px 0; margin: 0; font-size: 0.95rem; } .ft-col details[open] > summary { margin-bottom: 0; } .ft-col details > ul { padding: 0 0 14px 0; } }   @media (min-width: 768px) { .ft-col summary { pointer-events: none; cursor: default; } .ft-col summary::after { display: none; } .ft-col details > .ft-links { display: flex; } }   .ft-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.7rem; } .ft-links a { font-size: 0.9rem; color: #6b7280; text-decoration: none; line-height: 1.4; transition: color .2s ease; display: inline-block; } .ft-links a:hover { color: var(--nova-blue); } @media (max-width: 767.98px) { .ft-links a { font-size: 0.88rem; } }   .ft-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; padding-top: 1.5rem; flex-wrap: wrap; } @media (max-width: 767.98px) { .ft-bottom { flex-direction: column; align-items: flex-start; gap: 1rem; padding-top: 1.25rem; } }   .ft-copy { font-size: 0.82rem; color: #7a8a9a; margin: 0; line-height: 1.4; white-space: nowrap; } @media (max-width: 575.98px) { .ft-copy { font-size: 0.75rem; white-space: normal; } }   .ft-legal { display: flex; list-style: none; padding: 0; margin: 0; gap: 0.5rem 1.5rem; flex-wrap: wrap; } .ft-legal a { font-size: 0.82rem; color: #7a8a9a; text-decoration: none; transition: color .2s ease; line-height: 1.4; } .ft-legal a:hover { color: var(--text-dark); } @media (max-width: 575.98px) { .ft-legal a { font-size: 0.78rem; } }   .ft-social { display: flex; gap: 8px; } .ft-social-link { width: 48px; height: 48px; border-radius: 12px; background: #ffffff; border: 1px solid #e5e9ee; color: #5a6675; display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem; text-decoration: none; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; } .ft-social-link:hover { background: #1a1a1a; border-color: #1a1a1a; color: #ffffff; transform: translateY(-3px); } @media (max-width: 575.98px) { .ft-social-link { width: 42px; height: 42px; font-size: 1.15rem; border-radius: 10px; } }   .ft-payments { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } @media (max-width: 575.98px) { .ft-payments { gap: 6px; } } .ft-pay-icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 40px; border-radius: 8px; background: #ffffff; border: 1px solid #e5e9ee; font-size: 2.1rem; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; line-height: 1; } .ft-pay-icon:hover { border-color: #d0d8e2; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(30, 60, 90, 0.1); } .ft-pay-icon svg { width: 32px; height: 32px; } @media (max-width: 575.98px) { .ft-pay-icon { width: 52px; height: 36px; font-size: 1.8rem; border-radius: 7px; } .ft-pay-icon svg { width: 28px; height: 28px; } }   .ft-pay-visa { color: #1434CB; } .ft-pay-mastercard { color: #EB001B; } .ft-pay-amex { color: #006FCF; } .ft-pay-paypal { color: #003087; } .ft-pay-apple { color: #000000; } .ft-pay-google { color: #5F6368; } .ft-pay-stripe { color: #635BFF; } .ft-pay-sumup { color: #00A7E1; padding: 0 14px; width: auto; gap: 6px; } .ft-pay-sumup svg { width: 22px; height: 22px; }   @media (prefers-reduced-motion: reduce) { .ft-top-cta, .ft-social-link, .ft-pay-icon, .ft-badge { transition: none !important; transform: none !important; } }  :root { --nc-button: #0878b1; --nc-button-hover: #065e8c; --nc-button-radius: 12px; } :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 11px 22px; border: 1px solid var(--nc-button); border-radius: var(--nc-button-radius); background: var(--nc-button); color: #fff; box-shadow: none; text-shadow: none; font-family: var(--font-body); font-size: 15px; font-weight: 500; line-height: 1.4; letter-spacing: -.015em; text-decoration: none; transform: none; filter: none; transition: background-color .18s,border-color .18s,color .18s; } :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn):hover { background: var(--nc-button-hover); border-color: var(--nc-button-hover); color: #fff; box-shadow: none; transform: none; filter: none; } :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn):focus-visible { outline: 3px solid #4fc3f7; outline-offset: 3px; } :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn)::before, :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn)::after { content: none; } :root .site-wrapper :is(.btn-outline-hero,.service-link,.btn-marketing-ghost,.dp-btn-ghost,.ab-btn-ghost,.ab-btn-ghost-dark,.pt-btn-ghost,.ec-btn-ghost,.sw-btn-ghost,.ds-btn-ghost,.mk-btn-ghost,.gw-btn-ghost,.mw-btn-ghost,.sv-btn-ghost,.cp-btn-ghost,.lg-btn-secondary) { background: transparent; color: var(--nc-button); border-color: var(--nc-button); } :root .site-wrapper :is(.btn-outline-hero,.service-link,.btn-marketing-ghost,.dp-btn-ghost,.ab-btn-ghost,.ab-btn-ghost-dark,.pt-btn-ghost,.ec-btn-ghost,.sw-btn-ghost,.ds-btn-ghost,.mk-btn-ghost,.gw-btn-ghost,.mw-btn-ghost,.sv-btn-ghost,.cp-btn-ghost,.lg-btn-secondary):hover { background: #e5f2fa; color: var(--nc-button-hover); border-color: var(--nc-button-hover); } :root .site-wrapper :is(.hero-wrap,.pt-hero,.ec-hero,.sw-hero,.ds-hero,.mk-hero,.gw-hero,.mw-hero,.sv-hero,.cp-cta) :is(.btn-outline-hero,.pt-btn-ghost,.ec-btn-ghost,.sw-btn-ghost,.ds-btn-ghost,.mk-btn-ghost,.gw-btn-ghost,.mw-btn-ghost,.sv-btn-ghost,.cp-btn-ghost) { color: #fff; border-color: #d8edf9; background: transparent; } :root .site-wrapper :is(.hero-wrap,.pt-hero,.ec-hero,.sw-hero,.ds-hero,.mk-hero,.gw-hero,.mw-hero,.sv-hero,.cp-cta) :is(.btn-outline-hero,.pt-btn-ghost,.ec-btn-ghost,.sw-btn-ghost,.ds-btn-ghost,.mk-btn-ghost,.gw-btn-ghost,.mw-btn-ghost,.sv-btn-ghost,.cp-btn-ghost):hover { background: #ffffff18; } @media (max-width: 575.98px) { :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn) { font-size: 14px; padding: 11px 18px; } } @media (prefers-reduced-motion: reduce) { :root .site-wrapper :is(.btn-hero-cta,.btn-outline-hero,.btn-gradient-tech,.service-link,.btn-marketing-primary,.btn-marketing-ghost,.dp-btn-primary,.dp-btn-ghost,.pf-header-cta,.pf-footer-cta,.pf-modal-cta,.ft-top-cta,.pr-cta,.ct-submit,.ab-btn,.pt-btn,.pt-modal-cta,.ec-btn,.sw-btn,.ds-btn,.mk-btn,.gw-btn,.mw-btn,.sv-btn,.cp-btn,.lg-btn) { transition: none; } }   :is(.pt-modal,.portfolio-modal) .modal-dialog { max-width: 1080px; } :is(.pt-modal,.portfolio-modal) .modal-content { border: 1px solid #e1eaf0; border-radius: 18px; box-shadow: none; } :is(.pt-modal,.portfolio-modal) .modal-header { padding: 12px 24px; background: #fff; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-close,.pf-modal-close) { width: 44px; height: 44px; border-radius: 10px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-body,.pf-modal-body) { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); grid-template-areas: "title title" "browser description" "image description" "image counters" "bars bars" "action action"; gap: 16px 28px; padding: 24px; align-content: start; align-items: start; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-title,.pf-modal-title) { grid-area: title; font-size: clamp(23px,2.3vw,30px); line-height: 1.2; font-weight: 600; color: #243746; margin: 0 0 4px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-desc,.pf-modal-desc) { grid-area: description; font-size: 14px; line-height: 1.65; color: #506575; margin: 0; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-browser,.pf-modal-browser) { grid-area: browser; padding: 9px 12px; border: 1px solid #e2ebf1; border-radius: 10px; margin: 0; min-width: 0; } :is(.pt-modal,.portfolio-modal) :is(.pt-b-url,.pf-b-url) { font-size: 12px; background: transparent; border: 0; padding: 0; color: #526979; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-img,.pf-modal-img) { grid-area: image; width: 100%; height: 240px; object-fit: contain; background: #f4f7f9; border: 1px solid #e2ebf1; border-radius: 10px; margin: 0; box-shadow: none; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-counters,.pf-modal-counters) { grid-area: counters; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 16px; background: #eff7fc; border: 1px solid #dcebf4; border-radius: 12px; margin: 0; } :is(.pt-modal,.portfolio-modal) :is(.pt-counter,.pf-counter) { text-align: left; min-width: 0; } :is(.pt-modal,.portfolio-modal) :is(.pt-counter-value,.pf-counter-value) { color: #0878b1; -webkit-text-fill-color: #0878b1; background: none; font-size: 27px; line-height: 1.1; font-weight: 600; margin-bottom: 5px; } :is(.pt-modal,.portfolio-modal) :is(.pt-counter-label,.pf-counter-label) { color: #465e70; font-size: 12px; font-weight: 500; line-height: 1.4; letter-spacing: 0; text-transform: none; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-bars,.pf-modal-bars) { grid-area: bars; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin: 0; padding-top: 16px; border-top: 1px solid #e5edf2; } :is(.pt-modal,.portfolio-modal) :is(.pt-bar-head,.pf-bar-head) { font-size: 12px; color: #526979; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-cta,.pf-modal-cta) { grid-area: action; justify-self: end; margin-top: 0; } @media (max-width: 767.98px) { :is(.pt-modal,.portfolio-modal) .modal-dialog { margin: 12px; } :is(.pt-modal,.portfolio-modal) .modal-dialog-scrollable { height: calc(100% - 24px); } :is(.pt-modal,.portfolio-modal) .modal-header { padding: 8px 16px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-body,.pf-modal-body) { padding: 18px 16px; grid-template-columns: minmax(0,1fr); grid-template-areas: "title" "description" "counters" "browser" "image" "bars" "action"; gap: 16px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-img,.pf-modal-img) { height: 180px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-bars,.pf-modal-bars) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 18px; } :is(.pt-modal,.portfolio-modal) :is(.pt-modal-cta,.pf-modal-cta) { width: 100%; } :is(.pt-modal,.portfolio-modal) :is(.pt-counter-value,.pf-counter-value) { font-size: 24px; } }

/* Keep the primary headline visible on the first paint for people and LCP. */
.hero-inner > .hero-title { opacity: 1; transform: none; animation: none; }
@media (max-width: 767.98px) { .hero-gradient-text { animation: none; } }

/* Readable brand labels and muted copy on light backgrounds. */
.tech-item span { color: #34495a !important; }
.services-title-muted, .pr-title-muted { color: #53616c; }
.pr-footnote, .ft-copy, .ft-legal a { color: #4b5966; }
.ct-float-label, .ct-select { color: #425464; }

/* Horizontal portfolio scrolling remains interactive without a permanent snap layer. */
.pf-slider { scroll-snap-type: none; scroll-behavior: auto; }
.pf-card { scroll-snap-align: none; will-change: auto; }
