/* ===== Reset & Variables ===== */ *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; } html { scroll-behavior:smooth; } :root { --navy-900:#0a132e; --navy-800:#0f1f4a; --navy-700:#1a3380; --teal-500:#06b6d4; --teal-400:#22d3ee; --amber-400:#fbbf24; --amber-500:#f59e0b; --white:#ffffff; --gray-50:#f8fafc; --gray-100:#f1f5f9; --gray-200:#e2e8f0; --gray-300:#cbd5e1; --gray-400:#94a3b8; --gray-500:#64748b; --gray-600:#475569; --font-display:'Noto Serif SC','PingFang SC',serif; --font-body:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; --font-logo:'Noto Serif SC','KaiTi',cursive; --radius-sm:8px; --radius-md:12px; --radius-lg:20px; --shadow-sm:0 1px 3px rgba(0,0,0,.06); --shadow-md:0 4px 16px rgba(0,0,0,.08); --shadow-lg:0 8px 32px rgba(0,0,0,.12); --transition:all .3s cubic-bezier(.4,0,.2,1); } body { font-family:var(--font-body); background:var(--gray-50); color:var(--navy-900); line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased; } /* ===== SVG icon helper ===== */ .icon-svg { display:inline-flex; align-items:center; justify-content:center; } .icon-svg svg { width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; } /* ===== HEADER ===== */ header { position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(255,255,255,.88); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--gray-200); transition:var(--transition); } .header-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:0 24px; height:68px; } .logo { font-size:20px; font-weight:700; color:var(--navy-800); display:flex; align-items:center; gap:12px; text-decoration:none; } .logo-icon { width:36px; height:36px; background:linear-gradient(135deg,var(--navy-700),var(--teal-500)); border-radius:10px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; font-weight:700; } .logo span { color:var(--gray-400); font-weight:400; font-size:14px; } nav { display:flex; gap:36px; } nav a { color:var(--gray-600); text-decoration:none; font-size:14px; font-weight:500; position:relative; transition:color .2s; padding:4px 0; } nav a::after { content:''; position:absolute; bottom:-2px; left:0; right:0; height:2px; background:var(--teal-500); border-radius:1px; transform:scaleX(0); transition:transform .2s; } nav a:hover { color:var(--navy-800); } nav a:hover::after { transform:scaleX(1); } .mobile-toggle { display:none; background:none; border:none; cursor:pointer; color:var(--gray-600); padding:4px; } .mobile-toggle svg { width:24px; height:24px; } /* ===== HERO ===== */ .hero { padding:140px 24px 100px; position:relative; overflow:hidden; color:var(--white); background: linear-gradient(135deg,rgba(10,19,46,.92) 0%,rgba(15,31,74,.75) 50%,rgba(26,51,128,.6) 100%), url('https://images.pexels.com/photos/577585/pexels-photo-577585.jpeg?auto=compress&cs=tinysrgb&w=1920') center/cover no-repeat fixed; } .hero::before { content:''; position:absolute; top:-40%; right:-10%; width:60%; height:180%; background:radial-gradient(ellipse,rgba(6,182,212,.1) 0%,transparent 70%); pointer-events:none; } .hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:100px; background:linear-gradient(to top,var(--gray-50),transparent); } .hero-inner { max-width:1200px; margin:0 auto; position:relative; z-index:1; } .hero-badge { display:inline-flex; align-items:center; gap:8px; padding:7px 18px; border-radius:20px; background:rgba(255,255,255,.1); font-size:13px; font-weight:500; margin-bottom:20px; border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(8px); } .hero-badge svg { width:16px; height:16px; color:var(--amber-400); } .hero h1 { font-family:var(--font-display); font-size:clamp(38px,5vw,60px); font-weight:700; line-height:1.12; margin-bottom:18px; } .hero h1 em { font-style:normal; background:linear-gradient(135deg,var(--amber-400),var(--teal-400)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; } /* Fallback for browsers that don't support bg-clip:text */ @supports not (background-clip:text) { .hero h1 em { color:var(--amber-400); -webkit-text-fill-color:var(--amber-400); } } .hero p { font-size:17px; color:rgba(255,255,255,.75); max-width:580px; margin-bottom:34px; line-height:1.75; } .hero-actions { display:flex; gap:14px; flex-wrap:wrap; } .btn { display:inline-flex; align-items:center; gap:8px; padding:14px 30px; border-radius:var(--radius-sm); font-size:15px; font-weight:600; text-decoration:none; transition:var(--transition); border:none; cursor:pointer; font-family:var(--font-body); } .btn svg { width:18px; height:18px; } .btn-primary { background:var(--white); color:var(--navy-800); box-shadow:0 4px 14px rgba(0,0,0,.15); } .btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.2); } .btn-outline { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.25); } .btn-outline:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.45); } /* ===== SECTION ===== */ section { padding:80px 24px; } .section-inner { max-width:1200px; margin:0 auto; } .section-label { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--teal-500); margin-bottom:8px; } .section-label svg { width:14px; height:14px; } .section-title { font-family:var(--font-display); font-size:clamp(26px,3.5vw,38px); font-weight:700; color:var(--navy-800); margin-bottom:10px; } .section-desc { font-size:16px; color:var(--gray-500); max-width:560px; margin-bottom:44px; line-height:1.7; } /* ===== SERVICES ===== */ .services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:24px; } .service-card { background:var(--white); border-radius:var(--radius-md); padding:32px; box-shadow:var(--shadow-sm); border:1px solid var(--gray-200); transition:var(--transition); } .service-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:var(--gray-300); } .service-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; } .service-icon svg { width:24px; height:24px; } .service-card h3 { font-size:18px; font-weight:600; margin-bottom:8px; color:var(--navy-800); } .service-card p { font-size:14px; color:var(--gray-500); line-height:1.7; margin-bottom:14px; } .service-tags { display:flex; flex-wrap:wrap; gap:6px; } .service-tags span { font-size:12px; padding:3px 10px; border-radius:6px; background:var(--gray-100); color:var(--gray-500); } /* Link wrapper around service card */ .service-card-link { text-decoration:none; color:inherit; display:block; } .service-card-link:hover .service-card { box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:var(--gray-300); } /* ===== PRODUCTS ===== */ .products-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:24px; } .product-card { background:var(--white); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--gray-200); transition:var(--transition); display:flex; flex-direction:column; } .product-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); } .product-img { height:130px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#eef2ff,#e0e7ff); } .product-img svg { width:44px; height:44px; } .product-body { padding:24px; flex:1; display:flex; flex-direction:column; } .product-body h3 { font-size:18px; font-weight:600; margin-bottom:8px; color:var(--navy-800); } .product-body p { font-size:14px; color:var(--gray-500); line-height:1.7; margin-bottom:12px; flex:1; } .product-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; } .product-tags span { font-size:12px; padding:3px 10px; border-radius:6px; background:var(--gray-100); color:var(--gray-500); } .product-btn { display:inline-flex; align-items:center; gap:6px; padding:10px 20px; border-radius:6px; font-size:14px; font-weight:600; background:var(--navy-800); color:var(--white); text-decoration:none; transition:var(--transition); border:none; cursor:pointer; font-family:var(--font-body); } .product-btn svg { width:16px; height:16px; } .product-btn:hover { background:var(--navy-700); } /* ===== WHY US ===== */ .why-section { background:var(--white); } .why-section .section-inner { text-align:center; } .why-section .section-desc { margin:0 auto 44px; } .why-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:24px; } .why-card { text-align:center; padding:44px 28px; background:var(--gray-50); border-radius:var(--radius-md); border:1px solid var(--gray-200); transition:var(--transition); } .why-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:var(--gray-300); } .why-icon { width:48px; height:48px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; margin-bottom:16px; } .why-icon svg { width:24px; height:24px; } .why-card h3 { font-size:18px; font-weight:600; margin-bottom:8px; color:var(--navy-800); } .why-card p { font-size:14px; color:var(--gray-500); line-height:1.8; } /* ===== PERSPECTIVE (博海视角) ===== */ .perspective-section { background: linear-gradient(135deg, #fefce8 0%, #fffbeb 100%); border-top: 1px solid var(--gray-200); } .perspective-section .section-desc { margin:0 auto 44px; text-align:left; } .perspective-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; } .perspective-card { background:var(--white); border-radius:var(--radius-md); padding:24px; border:1px solid var(--gray-200); box-shadow:var(--shadow-sm); transition:var(--transition); display:flex; flex-direction:column; } .perspective-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:var(--amber-400); } .perspective-card .cat { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--teal-500); margin-bottom:6px; } .perspective-card h3 { font-size:16px; font-weight:600; color:var(--navy-800); margin-bottom:8px; line-height:1.4; } .perspective-card .meta { font-size:12px; color:var(--gray-400); margin-top:auto; } .perspective-link { display:flex; align-items:center; gap:6px; font-size:13px; font-weight:500; color:var(--navy-700); text-decoration:none; margin-top:12px; transition:color .2s; } .perspective-link:hover { color:var(--teal-500); } .perspective-link svg { width:14px; height:14px; } .perspective-actions { margin-top:36px; text-align:center; } .perspective-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 28px; border-radius:var(--radius-sm); font-size:15px; font-weight:600; text-decoration:none; background:var(--navy-800); color:var(--white); transition:var(--transition); border:none; cursor:pointer; font-family:var(--font-body); } .perspective-btn svg { width:16px; height:16px; } .perspective-btn:hover { background:var(--navy-700); transform:translateY(-2px); box-shadow:0 6px 20px rgba(15,31,74,.2); } /* ===== CONTACT ===== */ .contact-section { background:linear-gradient(135deg,var(--navy-900) 0%,var(--navy-800) 100%); color:var(--white); position:relative; overflow:hidden; } .contact-section::before { content:''; position:absolute; top:-30%; right:-15%; width:50%; height:150%; background:radial-gradient(ellipse,rgba(6,182,212,.06) 0%,transparent 70%); pointer-events:none; } .contact-section .section-title { color:var(--white); } .contact-section .section-desc { color:rgba(255,255,255,.55); } .contact-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:24px; position:relative; z-index:1; } .contact-item { padding:24px; border-radius:var(--radius-md); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.06); transition:var(--transition); } .contact-item:hover { background:rgba(255,255,255,.08); transform:translateY(-2px); } .contact-item .icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; background:rgba(6,182,212,.12); color:var(--teal-400); } .contact-item .icon svg { width:20px; height:20px; } .contact-item h4 { font-size:13px; font-weight:500; color:rgba(255,255,255,.45); margin-bottom:6px; letter-spacing:1px; text-transform:uppercase; } .contact-item .value { font-size:16px; color:var(--white); font-weight:500; } .contact-item .value a { color:var(--amber-400); text-decoration:none; } .contact-item .value a:hover { text-decoration:underline; } .contact-item .value .divider { color:rgba(255,255,255,.2); margin:0 10px; font-size:14px; } .contact-item .sub { font-size:13px; color:rgba(255,255,255,.3); margin-top:4px; } /* ===== FOOTER ===== */ footer { background:#060d1f; color:rgba(255,255,255,.35); padding:32px 24px; text-align:center; font-size:13px; } footer a { color:rgba(255,255,255,.4); text-decoration:none; transition:color .2s; } footer a:hover { color:var(--teal-400); } footer .sep { margin:0 10px; color:rgba(255,255,255,.1); } /* ===== CONSULT MODAL ===== */ .consult-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,.5); z-index:1000; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; padding:24px; } .consult-overlay.open { opacity:1; visibility:visible; } .consult-modal { background:#fff; border-radius:16px; padding:32px; max-width:440px; width:100%; box-shadow:0 24px 48px rgba(0,0,0,.2); position:relative; transform:scale(.95); transition:transform .3s; } .consult-overlay.open .consult-modal { transform:scale(1); } .consult-close { position:absolute; top:12px; right:16px; background:none; border:none; font-size:28px; color:var(--gray-400); cursor:pointer; line-height:1; } .consult-close:hover { color:var(--gray-600); } .consult-modal h3 { font-family:"Noto Serif SC",serif; font-size:22px; font-weight:700; color:var(--navy-900); margin-bottom:6px; } .consult-desc { font-size:14px; color:var(--gray-500); margin-bottom:24px; } .form-group { margin-bottom:16px; } .form-group label { display:block; font-size:13px; font-weight:600; color:var(--navy-800); margin-bottom:6px; } .form-group input,.form-group textarea { width:100%; padding:10px 14px; border:1px solid var(--gray-300); border-radius:8px; font-size:14px; font-family:inherit; transition:border-color .2s; background:#fff; } .form-group input:focus,.form-group textarea:focus { outline:none; border-color:var(--teal-500); box-shadow:0 0 0 3px rgba(6,182,212,.12); } .consult-submit { width:100%; padding:12px; border:none; border-radius:8px; background:linear-gradient(135deg,var(--teal-500),#0891b2); color:#fff; font-size:15px; font-weight:600; cursor:pointer; transition:opacity .2s; } .consult-submit:hover { opacity:.9; } .consult-submit:disabled { opacity:.5; cursor:not-allowed; } .consult-tip { text-align:center; font-size:13px; color:var(--gray-400); margin-top:12px; } .consult-tip strong { color:var(--teal-600); } .consult-success { text-align:center; padding:20px 0; } .consult-success .success-icon { width:56px; height:56px; border-radius:50%; background:#10b981; color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; margin:0 auto 16px; } .consult-success h4 { font-size:18px; color:var(--navy-900); margin-bottom:6px; } .consult-success p { font-size:14px; color:var(--gray-500); } /* ===== FLOAT CONSULT ===== */ .float-btn { position:fixed; bottom:28px; right:28px; z-index:99; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; text-decoration:none; background:linear-gradient(135deg,var(--teal-500),#0891b2); color:var(--white); box-shadow:0 6px 20px rgba(6,182,212,.35); transition:var(--transition); border:none; cursor:pointer; } .float-btn svg { width:26px; height:26px; } .float-btn:hover { transform:scale(1.1) translateY(-2px); box-shadow:0 8px 28px rgba(6,182,212,.45); } /* ===== ANIMATIONS ===== */ .fade-in { opacity:0; transform:translateY(30px); transition:all .7s ease-out; } .fade-in.visible { opacity:1; transform:translateY(0); } .fade-in-d1 { transition-delay:.08s; } .fade-in-d2 { transition-delay:.16s; } .fade-in-d3 { transition-delay:.24s; } .fade-in-d4 { transition-delay:.32s; } /* ===== RESPONSIVE ===== */ @media (max-width:768px) { nav { display:none; } nav.open { display:flex; flex-direction:column; position:absolute; top:68px; left:0; right:0; background:rgba(255,255,255,.98); backdrop-filter:blur(16px); padding:16px 24px; border-bottom:1px solid var(--gray-200); gap:16px; } .mobile-toggle { display:flex; } .hero { padding:120px 24px 70px; background-attachment:scroll; } .hero-actions { flex-direction:column; } .btn { width:100%; justify-content:center; } .services-grid { grid-template-columns:1fr; } .contact-grid { grid-template-columns:1fr; } .perspective-grid { grid-template-columns:1fr; } } @media (max-width:480px) { .hero h1 { font-size:clamp(28px,8vw,36px); } .logo { font-size:17px; } .logo span { display:none; } }