1
0
Files
ag-index/assets/css/solution.css
2026-04-16 11:17:07 +08:00

1110 lines
28 KiB
CSS

/* ========== 主色调覆盖 - rgba(0, 100, 255, 1) ========== */
:root {
--primary-color: rgba(0, 100, 255, 1);
--primary-color-dark: rgba(0, 80, 200, 1);
--primary-color-light: rgba(0, 100, 255, 0.8);
}
/* ========== Solution Page Styles ========== */
/* Hero Section */
.solution-hero {
position: relative;
min-height: 50vh;
display: flex;
align-items: center;
padding-top: 110px; /* header高度80px + 最小间距30px */
overflow: hidden;
background: url("../images/solution/neihe.png");
}
.solution-hero::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 60%;
height: 60%;
background: radial-gradient(circle, rgba(0, 100, 255, 0.15) 0%, transparent 70%);
animation: blob 8s ease-in-out infinite;
}
.solution-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 60%;
height: 60%;
background: radial-gradient(circle, rgba(0, 100, 255, 0.1) 0%, transparent 70%);
animation: blob 8s ease-in-out infinite 2s;
}
@keyframes blob {
0%, 100% { transform: translate(0, 0) scale(1); }
33% { transform: translate(30px, -30px) scale(1.1); }
66% { transform: translate(-20px, 20px) scale(0.9); }
}
.hero-content {
position: relative;
z-index: 10;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 16px;
border-radius: 50px;
background: #0066ff;
color: rgb(255, 255, 255);
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
margin-top: 24px;
}
.hero-badge .pulse-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: rgb(255, 255, 255);
animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(1.2); }
}
.hero-title {
font-size: 38px;
font-weight: 700;
color: #fff;
line-height: 1.2;
margin-bottom: 24px;
}
.hero-title .gradient-text {
background: linear-gradient(90deg, rgba(0, 150, 255, 1), rgba(100, 200, 255, 1));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-desc {
font-size: 18px;
color: #eef6ff;
line-height: 1.8;
max-width: 520px;
margin-bottom: 32px;
}
.hero-buttons {
display: flex;
flex-wrap: wrap;
gap: 16px;
}
.btn-primary-custom {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 28px;
background: rgba(0, 100, 255, 1);
color: #fff;
border-radius: 8px;
font-weight: 500;
text-decoration: none;
transition: all 0.3s ease;
box-shadow: 0 10px 40px -10px rgba(0, 100, 255, 0.5);
}
.btn-primary-custom:hover {
background: rgba(0, 80, 200, 1);
color: #fff;
transform: translateY(-2px);
}
.btn-outline-custom {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 28px;
background: transparent;
color: #fff;
border: 1px solid #475569;
border-radius: 8px;
font-weight: 500;
text-decoration: none;
transition: all 0.3s ease;
}
.btn-outline-custom:hover {
background: rgba(255, 255, 255, 0.05);
color: #fff;
}
/* Hero Stats Cards */
.hero-stats {
position: relative;
z-index: 10;
}
.stats-card-container {
padding: 24px 24px 48px 24px;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
position: relative;
}
.stat-item {
background: rgba(0, 50, 128, 0.5);
padding: 30px;
border-radius: 12px;
box-shadow: -1px 3px 6px 0px rgb(8 75 159 / 33%);
height: 130px;
display: flex;
flex-direction: column;
justify-content: center;
}
.stat-item .stat-icon {
width: 40px;
height: 40px;
margin-bottom: 12px;
}
/* 覆盖 themify-icons 默认样式 */
.stat-item .stat-icon[class^="ti-"],
.stat-item .stat-icon[class*=" ti-"] {
font-size: 32px;
line-height: 1;
display: block;
}
.stat-item .stat-icon.blue { color: rgba(0, 150, 255, 1); }
.stat-item .stat-icon.cyan { color: rgba(0, 180, 255, 1); }
.stat-item .stat-icon.indigo { color: rgba(80, 120, 255, 1); }
.stat-item .stat-icon.green { color: #34d399; }
.stat-item .stat-number {
font-size: 28px;
font-weight: 700;
color: #fff;
margin-bottom: 4px;
}
.stat-item .stat-label {
font-size: 12px;
color: #94a3b8;
}
/* 风车叶片错开效果 - 使用transform不影响间距 */
.stat-item:nth-child(2),
.stat-item:nth-child(4) {
transform: translateY(24px);
}
.stats-center-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, calc(-50% + 12px));
width: 64px;
height: 64px;
background: rgba(0, 100, 255, 1);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 10px 40px -10px rgba(0, 100, 255, 0.5);
border: 4px solid rgba(0, 40, 100, 1);
z-index: 10;
}
.stats-center-icon i {
font-size: 24px;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
line-height: 1;
}
/* 覆盖 flaticon 默认样式 */
.stats-center-icon [class^="flaticon-"]:before,
.stats-center-icon [class*=" flaticon-"]:before,
.stats-center-icon [class^="flaticon-"]:after,
.stats-center-icon [class*=" flaticon-"]:after {
font-family: Flaticon;
font-size: 28px;
font-style: normal;
margin-left: 0;
}
/* Pain Points Section */
.pain-points-section {
padding: 100px 0;
background: #fff;
}
.section-header {
text-align: center;
max-width: 700px;
margin: 0 auto 60px;
}
.section-header h2 {
font-size: 32px;
font-weight: 700;
color: #0f172a;
margin-bottom: 16px;
}
.section-header p {
font-size: 16px;
color: #64748b;
}
.pain-point-card {
height: 100%;
padding: 32px;
text-align: center;
background: #f8fafc;
border-radius: 16px;
border: 1px solid #e2e8f0;
transition: all 0.3s ease;
}
.pain-point-card:hover {
background: #fff;
box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.1);
transform: translateY(-4px);
}
.pain-point-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
background: #fff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
margin-bottom: 24px;
transition: transform 0.3s ease;
}
.pain-point-card:hover .pain-point-icon {
transform: scale(1.1);
}
.pain-point-icon i {
font-size: 28px;
}
.pain-point-icon.red i { color: #0a7cff; }
.pain-point-icon.orange i { color: #00751d; }
.pain-point-icon.yellow i { color: #eab308; }
.pain-point-icon.purple i { color: #a855f7; }
.pain-point-card h3 {
font-size: 20px;
font-weight: 700;
color: #0f172a;
margin-bottom: 12px;
line-height: 1.4;
min-height: 2.8em;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
line-clamp: 2;
box-orient: vertical;
}
.pain-point-card p {
font-size: 14px;
color: #64748b;
line-height: 1.7;
margin: 0;
}
/* Solution Architecture Section */
.architecture-section {
padding: 100px 0;
background: linear-gradient(135deg, #005dc7 0%, rgb(1, 79, 212) 100%);
color: #fff;
overflow: hidden;
}
.architecture-section > .container > .row {
display: flex;
flex-wrap: wrap;
align-items: center;
}
.architecture-section > .container > .row > .col-md-6 {
display: flex;
align-items: center;
}
.arch-step {
display: flex;
align-items: flex-start;
gap: 20px;
margin-bottom: 32px;
}
.arch-step-number {
flex-shrink: 0;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 14px;
}
.arch-step-number.blue {
background: rgba(177, 208, 255, 0.2);
border: 1px solid rgba(0, 100, 255, 0.3);
color: rgb(255, 255, 255);
}
.arch-step-number.cyan {
background: rgba(177, 208, 255, 0.2);
border: 1px solid rgba(0, 100, 255, 0.3);
color: rgb(255, 255, 255);
}
.arch-step-number.indigo {
background: rgba(177, 208, 255, 0.2);
border: 1px solid rgba(0, 100, 255, 0.3);
color: rgb(255, 255, 255);
}
.arch-step-content h4 {
font-size: 18px;
font-weight: 600;
margin-bottom: 8px;
}
.arch-step-content h4.blue { color: rgb(255, 255, 255); }
.arch-step-content h4.cyan { color: rgb(255, 255, 255); }
.arch-step-content h4.indigo { color: rgb(255, 255, 255); }
.arch-step-content p {
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
margin: 0;
}
.arch-visual {
position: relative;
max-width: 400px;
margin: 0 auto;
}
.arch-visual::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(0, 100, 255, 0.2), rgba(0, 150, 255, 0.1));
border-radius: 50%;
filter: blur(60px);
animation: pulse 4s ease-in-out infinite;
}
.arch-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
position: relative;
}
.arch-grid-item {
background: rgba(30, 41, 59, 0.8);
backdrop-filter: blur(8px);
border: 1px solid rgba(71, 85, 105, 0.5);
border-radius: 16px;
padding: 24px;
text-align: center;
transition: transform 0.3s ease;
}
.arch-grid-item:hover {
transform: translateY(-8px);
}
.arch-grid-item:nth-child(2),
.arch-grid-item:nth-child(4) {
margin-top: 32px;
}
.arch-grid-item i {
font-size: 40px;
margin-bottom: 12px;
}
.arch-grid-item i.blue { color: rgba(0, 150, 255, 1); }
.arch-grid-item i.cyan { color: rgba(0, 180, 255, 1); }
.arch-grid-item i.indigo { color: rgba(100, 150, 255, 1); }
.arch-grid-item i.green { color: #34d399; }
.arch-grid-item span {
font-weight: 600;
font-size: 14px;
}
.arch-center-link {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 56px;
height: 56px;
background: #fff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 10px 40px rgba(0, 100, 255, 0.3);
z-index: 10;
}
.arch-center-link i {
font-size: 24px;
color: #003080;
}
/* Architecture Visual Image Container */
.arch-visual-container {
position: relative;
width: 100%;
max-width: 700px;
margin: 20px auto;
background: rgba(255, 255, 255, 0.05);
border-radius: 16px;
padding: 10px ;
border: 1px solid rgba(71, 85, 105, 0.5);
backdrop-filter: blur(8px);
box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
}
.arch-visual-container::before {
content: '';
position: absolute;
inset: -2px;
background: linear-gradient(135deg, rgba(0, 100, 255, 0.3), rgba(0, 150, 255, 0.2));
border-radius: 18px;
filter: blur(20px);
opacity: 0.5;
z-index: -1;
animation: pulse 4s ease-in-out infinite;
}
.arch-visual-container img {
width: 100%;
height: auto;
display: block;
border-radius: 8px;
position: relative;
z-index: 1;
}
/* Add hover effect */
.arch-visual-container:hover {
transform: translateY(-4px);
transition: transform 0.3s ease;
border-color: rgba(0, 150, 255, 0.6);
}
/* Responsive adjustments for the image container */
@media (max-width: 1200px) {
.arch-visual-container {
max-width: 540px;
}
}
@media (max-width: 991px) {
.arch-visual-container {
max-width: 480px;
}
}
@media (max-width: 767px) {
.arch-visual-container {
max-width: 100%;
margin: 24px auto 0;
}
}
/* Product Matrix Section */
.products-section {
padding: 100px 0;
background: #f8fafc;
}
.section-header-flex {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-end;
margin-bottom: 48px;
}
.section-header-left {
max-width: 600px;
}
.section-label {
font-size: 12px;
font-weight: 700;
color: rgba(0, 100, 255, 1);
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 8px;
}
.section-header-left h2 {
font-size: 32px;
font-weight: 700;
color: #0f172a;
margin-bottom: 12px;
}
.section-header-left p {
font-size: 16px;
color: #64748b;
margin: 0;
}
.view-all-link {
display: inline-flex;
align-items: center;
gap: 8px;
color: rgba(0, 100, 255, 1);
font-weight: 600;
text-decoration: none;
transition: color 0.3s ease;
}
.view-all-link:hover {
color: rgba(0, 80, 200, 1);
}
/* 让同一行的产品卡片高度一致 */
.products-section .row {
display: flex;
flex-wrap: wrap;
}
.products-section .row > [class*="col-"] {
display: flex;
margin-bottom: 24px;
}
.product-card {
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
border: 1px solid #e2e8f0;
transition: all 0.3s ease;
height: 100%;
display: flex;
flex-direction: column;
margin-bottom: 0;
width: 100%;
}
.product-card:hover {
box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.15);
transform: translateY(-4px);
}
.product-card-bar {
height: 4px;
width: 100%;
}
.product-card-bar.blue { background: rgba(0, 100, 255, 1); }
.product-card-bar.cyan { background: rgba(0, 120, 255, 1); }
.product-card-bar.indigo { background: rgba(50, 100, 255, 1); }
.product-card-bar.slate { background: rgba(0, 60, 150, 1); }
.product-card-bar.green { background: rgba(0, 80, 200, 1); }
.product-card-body {
padding: 28px;
flex: 1;
display: flex;
flex-direction: column;
}
.product-tags {
display: flex;
gap: 8px;
margin-bottom: 16px;
}
.product-tag {
font-size: 12px;
font-weight: 500;
padding: 4px 10px;
background: #f1f5f9;
color: #475569;
border-radius: 4px;
}
.product-card-body h3 {
font-size: 18px;
font-weight: 700;
color: #0f172a;
margin-bottom: 12px;
transition: color 0.3s ease;
}
.product-card:hover h3 {
color: rgba(0, 100, 255, 1);
}
.product-card-body > p {
font-size: 14px;
color: #64748b;
line-height: 1.7;
flex: 1;
margin-bottom: 20px;
}
.product-card-footer {
display: flex;
justify-content: space-between;
align-items: center;
}
.product-card-footer span {
font-size: 14px;
color: #94a3b8;
transition: color 0.3s ease;
}
.product-card:hover .product-card-footer span {
color: rgba(0, 100, 255, 1);
}
.product-card-arrow {
width: 32px;
height: 32px;
border-radius: 50%;
background: #f1f5f9;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.product-card-arrow i {
font-size: 14px;
color: #64748b;
}
.product-card:hover .product-card-arrow {
background: rgba(0, 100, 255, 1);
}
.product-card:hover .product-card-arrow i {
color: #fff;
}
/* Value Section */
.value-section {
padding: 70px 0;
background: #fff;
}
.value-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 28px;
background: #f8fafc;
border-radius: 16px;
transition: all 0.3s ease;
cursor: default;
margin-bottom: 16px;
}
.value-item:hover {
background: rgba(0, 100, 255, 1);
}
.value-item:hover *:not(.value-icon i) {
color: #fff !important;
}
.value-item:hover .value-icon i {
color: #fff;
}
.value-item:hover .value-icon {
background: rgba(255, 255, 255, 0.2);
box-shadow: none;
}
.value-icon {
flex-shrink: 0;
width: 64px;
height: 64px;
background: #fff;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
margin-bottom: 20px;
transition: all 1.2s ease;
}
.value-icon i {
font-size: 28px;
color: rgba(0, 100, 255, 1);
transition: color 1.2s ease;
}
.value-content {
text-align: center;
}
.value-content h3 {
font-size: 18px;
font-weight: 700;
color: #0f172a;
margin-bottom: 8px;
transition: color 1.2s ease;
}
.value-content p {
font-size: 14px;
color: #64748b;
line-height: 1.7;
margin: 0;
transition: color 1.2s ease;
}
@media (min-width: 768px) {
.value-item {
flex-direction: row;
text-align: left;
}
.value-icon {
margin-bottom: 0;
margin-right: 24px;
}
.value-content {
text-align: left;
}
}
/* Advantages Section */
.advantages-section {
padding: 100px 0;
background: url("../images/solution/bg.png");
color: #fff;
position: relative;
overflow: hidden;
}
.advantages-section .row {
display: flex;
align-items: center;
}
@media (max-width: 767px) {
.advantages-section .row {
flex-direction: column;
}
.advantages-section .col-md-6 {
width: 100%;
}
}
.advantages-section::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 50%;
height: 100%;
}
.advantage-item {
display: flex;
gap: 16px;
margin-bottom: 32px;
}
.advantage-check {
flex-shrink: 0;
margin-top: 4px;
}
.advantage-check i {
font-size: 24px;
color: rgba(0, 150, 255, 1);
}
.advantage-item h4 {
font-size: 18px;
font-weight: 700;
color: #fff;
margin-bottom: 8px;
}
.advantage-item p {
font-size: 14px;
color: #94a3b8;
margin: 0;
line-height: 1.7;
}
.stats-boxes {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
position: relative;
}
.stat-box {
background: rgba(0, 40, 100, 0.5);
padding: 28px;
border-radius: 16px;
text-align: center;
border: 1px solid rgba(0, 100, 255, 0.3);
transition: border-color 0.3s ease;
}
.stat-box:hover {
border-color: rgba(0, 150, 255, 1);
}
.stat-box.full-width {
grid-column: span 2;
}
.stat-box .stat-number {
font-size: 36px;
font-weight: 700;
color: rgb(255, 255, 255);
margin-bottom: 8px;
}
.stat-box .stat-label {
font-size: 14px;
color: #94a3b8;
}
/* Cases Section */
.cases-section {
padding: 100px 0;
background: #f8fafc;
}
.case-card-link {
display: block;
color: inherit;
text-decoration: none;
}
.case-card-link:hover,
.case-card-link:focus {
color: inherit;
text-decoration: none;
}
.cases-section .row + .row {
margin-top: 30px;
}
.case-card {
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
border: 1px solid #e2e8f0;
height: 100%;
display: flex;
flex-direction: column;
}
.case-card-header {
position: relative;
padding: 28px;
display: flex;
align-items: flex-end;
overflow: hidden;
}
.case-card-header.blue {
background: linear-gradient(135deg, rgba(0, 60, 180, 1), rgba(0, 100, 255, 1));
}
.case-card-header.cyan {
background: linear-gradient(135deg, rgba(0, 80, 200, 1), rgba(0, 120, 255, 1));
}
.case-card-header.teal {
background: linear-gradient(135deg, rgba(0, 110, 140, 1), rgba(0, 160, 190, 1));
}
.case-card-header.green {
background: linear-gradient(135deg, rgba(0, 120, 90, 1), rgba(40, 180, 120, 1));
}
.case-card-header.indigo {
background: linear-gradient(135deg, rgba(30, 60, 180, 1), rgba(50, 100, 255, 1));
}
.case-card-header::before {
content: '';
position: absolute;
top: -50%;
right: -10%;
width: 160px;
height: 160px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
}
.case-card-header h3 {
position: relative;
font-size: 20px;
font-weight: 700;
color: #fff;
margin: 0;
}
.case-card-body {
padding: 28px;
flex: 1;
}
.case-project {
font-size: 14px;
font-weight: 600;
color: rgba(0, 100, 255, 1);
margin-bottom: 12px;
}
.case-card-body p {
font-size: 14px;
color: #64748b;
line-height: 1.7;
margin: 0;
}
/* Scroll Animation */
.reveal {
opacity: 0;
transform: translateY(40px);
transition: all 0.8s ease;
}
.reveal.active {
opacity: 1;
transform: translateY(0);
}
/* Responsive */
@media (max-width: 991px) {
.hero-title {
font-size: 36px;
}
.hero-stats {
margin-top: 48px;
}
}
@media (max-width: 767px) {
.solution-hero {
min-height: auto;
padding: 110px 0 60px; /* header高度80px + 最小间距30px */
}
.hero-title {
font-size: 28px;
}
.hero-desc {
font-size: 16px;
}
.section-header h2,
.section-header-left h2 {
font-size: 24px;
}
.section-header-flex {
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
.cases-section .row + .row {
margin-top: 24px;
}
.cases-section .col-md-4 + .col-md-4 {
margin-top: 24px;
}
.stat-box .stat-number {
font-size: 28px;
}
}
.value-grid {
display: flex;
flex-wrap: wrap;
margin: 0 -15px;
}
.value-grid-item {
width: 50%;
padding: 0 15px;
box-sizing: border-box;
display: flex;
}
.value-grid-item .value-item {
width: 100%;
}
@media (max-width: 767px) {
.value-grid-item {
width: 100%;
}
}