:root {
--primary-color: #2563eb;
--green-color: #10b981;
--background-color: #f8fafc;
--card-background-color: #FFFFFF;
--text-color: #1e293b;
--text-color-light: #6c757d;
--border-color: #e2e8f0;
--qa-background-color: #f0fdf4;
}
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;
background-color: var(--background-color);
color: var(--text-color);
margin: 0;
line-height: 1.6;
overflow-x: hidden; /* --- [核心修改] 新增此行 --- */
}
.container { max-width: 1000px; margin: 0 auto; padding: 0 1rem; }
.main-content { padding: 2rem 0; }
.content-card {
background: var(--card-background-color);
border-radius: 16px;
padding: 2.5rem;
margin-bottom: 2rem;
box-shadow: 0 4px 30px rgba(0,0,0,0.05);
}
/* Header & Nav */
.site-header { background-color: #fff; padding: 0 2rem; position: sticky; top: 0; z-index: 100; box-shadow: 0 1px 4px rgba(0,0,0,0.05); }
.nav-container { display: flex; justify-content: space-between; align-items: center; max-width: 1400px; margin: 0 auto; height: 65px; }
.nav-logo a { font-size: 1.8rem; font-weight: bold; text-decoration: none; color: var(--text-color); }
.main-nav { display: flex; gap: 1.5rem; }
.main-nav a { color: var(--text-color-light); font-weight: 500; text-decoration: none; padding: 22px 0; border-bottom: 3px solid transparent; transition: color 0.2s, border-color 0.2s; }
.main-nav a.active, .main-nav a:hover { color: var(--primary-color); border-bottom-color: var(--primary-color); }
.header-actions { display: flex; align-items: center; gap: 1rem; }
.header-actions .icon-link { color: var(--text-color-light); font-size: 1.3rem; }
/* Language Selector */
.language-selector-wrapper { position: relative; }
.language-selector-button { display: flex; align-items: center; gap: 0.5rem; background-color: transparent; border: 1px solid #ddd; padding: 0.5rem 1rem; border-radius: 6px; cursor: pointer; font-size: 1rem; }
.language-dropdown { display: none; position: absolute; top: calc(100% + 10px); right: 0; background-color: #fff; border-radius: 8px; box-shadow: 0 5px 25px rgba(0,0,0,0.1); padding: 0.8rem; width: 320px; z-index: 101; }
.language-dropdown.active { display: block; }
.language-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.2rem 0.8rem; }
.language-link { display: block; padding: 0.4rem 0.6rem; border-radius: 4px; color: var(--text-color); text-decoration: none; font-size: 0.9rem; }
.language-link:hover { background-color: #f0f2f5; }
/* Download Box & Results - 统一整合版本 */
.download-container {
background-color: var(--card-background-color);
border-radius: 12px;
box-shadow: 0 4px 15px rgba(0,0,0,0.08);
text-align: center;
animation: fadeIn 0.5s ease-out;
padding: 2.5rem;
}
/* 首页特定的下载容器 - 解决宽度对齐问题 */
.download-section .download-container {
max-width: 1000px;
margin: 0 auto;
padding: 2rem;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
.download-title { font-size: 2.8rem; font-weight: 700; margin: 0 0 1.5rem 0; }
.download-form { display: flex; gap: 10px; max-width: 700px; margin: 0 auto; }
.input-wrapper { position: relative; flex-grow: 1; }
#video_link { width: 100%; height: 55px; padding: 0 1.2rem; border: 2px solid #ddd; border-radius: 8px; font-size: 1rem; box-sizing: border-box; transition: border-color 0.2s; }
#video_link:focus { border-color: var(--primary-color); outline: none; }
.download-btn { height: 55px; border: none; background-color: var(--green-color); color: white; font-weight: bold; font-size: 1rem; padding: 0 2rem; border-radius: 8px; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; transition: background-color 0.2s; }
.download-btn:hover { background-color: #059669; }
.download-btn:disabled { background-color: #999; cursor: not-allowed; }
#error_message { color: #e74c3c; margin-top: 1rem; font-weight: 500; }
.results-container { padding: 1rem; }
.video-info { display: flex; align-items: center; margin-bottom: 1.5rem; }
.video-info img { width: 150px; border-radius: 8px; margin-right: 1.5rem; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.video-info video { width: 150px; height: 100px; object-fit: cover; display: block; }
.video-title { font-size: 1.4rem; font-weight: 600; }
.video-duration { color: var(--text-color-light); }
.format-tabs { display: flex; border-bottom: 2px solid var(--primary-color); margin-bottom: -1px; }
.format-tab { padding: 0.8rem 1.5rem; cursor: pointer; background-color: #e9ecef; }
.format-tab.active { background-color: var(--primary-color); color: white; font-weight: 600; }
.results-table { table-layout: fixed; width: 100%; border-collapse: collapse; }
.results-table th, .results-table td { border: 1px solid #e9ecef; padding: 1rem; text-align: center; }
.results-table th { background-color: #f8f9fa; font-weight: 600; }
.btn-download { background-color: var(--green-color); color: white !important; text-decoration: none; padding: 0.6rem 2rem; border-radius: 6px; display: inline-block; font-weight: 500; white-space: nowrap; }
.download-more-btn { display: block; width: 100%; margin-top: 2rem; padding: 1rem; background-color: #6c757d; color: white; text-align: center; border-radius: 8px; text-decoration: none; font-weight: bold; }
/* Features & CTA - 统一特性样式 */
.section-title { text-align: center; font-size: 2.2rem; font-weight: 600; margin-bottom: 2.5rem; }
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; text-align: center; }
.feature-icon { font-size: 2.8rem; color: var(--green-color); }
.feature-title { font-weight: 600; }
/* 为service_page.html中的feature样式 */
.feature-item {
background: var(--card-background-color);
padding: 2rem 1.5rem;
border-radius: 12px;
text-align: center;
transition: all 0.3s ease;
border: 1px solid var(--border-color);
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.feature-item:hover {
transform: translateY(-3px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
border-color: var(--primary-color);
}
.feature-item .feature-icon {
font-size: 2.5rem;
color: var(--primary-color);
margin-bottom: 1rem;
display: block;
}
.feature-item .feature-title {
font-size: 1.2rem;
font-weight: 600;
margin-bottom: 1rem;
color: var(--text-color);
}
.feature-description {
color: var(--text-color-light);
line-height: 1.6;
font-size: 0.95rem;
margin: 0;
}
.cta-section { text-align: center; padding: 2rem 0; }
.cta-section h3 { font-size: 1.8rem; font-weight: 600; margin: 0 0 0.25rem 0; }
.cta-section p { font-size: 1rem; color: var(--text-color-light); margin: 0; }
/* Q&A Section */
.qa-item {
background-color: var(--qa-background-color);
border: 1px solid #d9f3e4;
border-radius: 12px;
margin-bottom: 1rem;
overflow: hidden;
}
.qa-question {
padding: 1rem 1.5rem;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
font-weight: 500;
font-size: 1.05rem;
color: #333;
}
.qa-question .fa-chevron-down { transition: transform 0.3s ease; }
.qa-item.active .qa-question .fa-chevron-down { transform: rotate(180deg); }
.qa-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.4s ease-in-out, padding 0.4s ease-in-out;
color: var(--text-color-light);
padding: 0 1.5rem;
}
.qa-item.active .qa-answer {
max-height: 200px;
padding: 0 1.5rem 1.5rem 1.5rem;
}
.qa-answer p { margin-top: 0; border-top: 1px solid var(--border-color); padding-top: 1.5rem; }
/* Footer */
.site-footer {
background-color: #fff;
color: var(--text-color-light);
padding: 1rem 1rem;
border-top: 1px solid #eee;
/* [核心修改] 强制页脚容器隐藏任何水平方向的溢出内容 */
overflow-x: hidden;
}
.footer-links-container {
display: flex;
justify-content: space-around;
gap: 4rem;
padding-bottom: 2rem;
border-bottom: 1px solid var(--border-color);
}
.footer-column { flex: 1; overflow: hidden; }
.footer-column-articles {
/*
* flex-basis 定义了在分配多余空间之前，项目占据的主轴空间（可以理解为基础宽度）。
* 其他列的 flex: 1; 相当于 flex-basis: 0;
* 所以这一列会比其他列多出 58px 的基础宽度，
* 然后大家再一起均分剩下的空间，最终结果就是它会比其他列宽 58px。
*/
flex-basis: 58px;
}
.footer-column h4 {
color: var(--text-color);
font-size: 0.9rem;
text-transform: uppercase;
margin-bottom: 1rem;
}
.footer-column ul {
list-style: none;
padding: 0;
margin: 0;
}
/*
.footer-column ul li a {
color: var(--text-color-light);
text-decoration: none;
line-height: 2.2;
font-size: 0.9rem;
white-space: nowrap;
}
*/
.footer-column ul li a {
color: var(--text-color-light);
text-decoration: none;
line-height: 2.2; /* 保持您原有的行高 */
font-size: 0.9rem; /* 保持您原有的字体大小 */
/* --- [核心优化] 开始 --- */
/* 1. 确保元素是块级，这样宽度和溢出才能正确计算 */
display: block;
/* 2. 强制文本在一行内显示，不换行 */
white-space: nowrap;
/* 3. 隐藏超出容器宽度的部分 */
overflow: hidden;
/* 4. 在被截断的地方显示省略号 (...) */
text-overflow: ellipsis;
/* --- [核心优化] 结束 --- */
}
.footer-column ul li a:hover {
color: var(--primary-color);
text-decoration: none;
}
.footer-bottom-bar {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 1rem;
font-size: 0.85rem;
color: #999;
}
.footer-bottom-bar a {
color: #999;
margin-left: 1.5rem;
}
/* === Landing Hub Page: Visual Upgrade === */
/* Hero Section */
.landing-hub .hero-section {
padding: 1rem 1rem;
border-radius: 16px;
margin-bottom: 2rem;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
border: none;
}
.hero-content {
position: relative;
max-width: 1000px;
margin: 0 auto;
text-align: center;
}
.hero-title {
font-size: clamp(2.5rem, 5vw, 2.5rem);
font-weight: 800;
color: white;
margin-bottom: 1rem;
line-height: 1.2;
}
.hero-subtitle {
font-size: clamp(1rem, 2vw, 1.15rem);
color: rgba(255, 255, 255, 0.9);
max-width: 650px;
margin: 0 auto 2rem auto;
}
.btn-hero {
background: var(--primary-color);
color: white;
padding: 0.9rem 2.2rem;
border-radius: 50px;
text-decoration: none;
font-weight: 600;
font-size: 1.1rem;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(13, 110, 253, 0.2);
}
.btn-hero:hover {
transform: translateY(-4px);
box-shadow: 0 10px 25px rgba(13, 110, 253, 0.3);
}
.btn-hero.secondary {
background: white;
color: #667eea;
border: 2px solid white;
}
/* General Section Styling */
.content-section { margin-bottom: 3rem; }
.section-title-landing {
font-size: clamp(2rem, 4vw, 2.8rem);
font-weight: 700;
text-align: center;
margin-bottom: 30px;
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
color: #2c3e50;
}
.section-title-landing.small-title {
font-size: clamp(1.8rem, 3vw, 2.2rem);
text-align: left;
justify-content: flex-start;
margin-bottom: 2rem;
}
/* 首页特有的样式 */
.key-features {
display: flex;
flex-wrap: wrap;
gap: 0.8rem;
justify-content: center;
margin-bottom: 1.5rem;
}
.feature-badge {
background: rgba(255, 255, 255, 0.2);
color: white;
padding: 0.5rem 1rem;
border-radius: 20px;
font-size: 0.9rem;
font-weight: 500;
}
.cta-buttons {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.platforms-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 1.2rem;
margin-top: 1.5rem;
}
.platform-card {
background: var(--card-background-color);
border-radius: 12px;
padding: 1.2rem;
text-align: center;
transition: all 0.3s ease;
border: 1px solid var(--border-color);
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.platform-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.platform-link { text-decoration: none; color: inherit; }
.platform-icon {
font-size: 2.5rem;
color: var(--primary-color);
margin-bottom: 1rem;
}
.platform-name {
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 0.5rem;
color: var(--text-color);
}
.platform-desc {
color: var(--text-color-light);
font-size: 0.9rem;
margin: 0;
}
.steps-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 1.5rem;
margin-top: 1.5rem;
}
.step-item { text-align: center; padding: 1.5rem 1rem; }
.step-number {
width: 50px;
height: 50px;
background: var(--primary-color);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3rem;
font-weight: bold;
margin: 0 auto 1rem auto;
}
.step-title {
font-size: 1.2rem;
font-weight: 600;
margin-bottom: 1rem;
color: var(--text-color);
}
.step-desc {
color: var(--text-color-light);
line-height: 1.6;
margin: 0;
}
.features-section .features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.feature-card {
background: var(--card-background-color);
border-radius: 12px;
padding: 2rem;
text-align: center;
transition: all 0.3s ease;
border: 1px solid var(--border-color);
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.feature-card .feature-icon {
font-size: 3rem;
color: var(--primary-color);
margin-bottom: 1.5rem;
}
.feature-card .feature-title {
font-size: 1.3rem;
font-weight: 600;
margin-bottom: 1rem;
color: var(--text-color);
}
.feature-card .feature-desc {
color: var(--text-color-light);
line-height: 1.6;
margin: 0;
}
.faq-container { max-width: 800px; margin: 0 auto; }
.faq-item {
background: var(--card-background-color);
border-radius: 12px;
margin-bottom: 1rem;
border: 1px solid var(--border-color);
overflow: hidden;
}
.faq-question {
padding: 1.5rem;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
color: var(--text-color);
margin: 0;
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f0fdf4;
transition: background-color 0.3s ease;
}
.faq-question::after {
content: '+';
font-size: 1.5rem;
transition: transform 0.3s ease;
}
.faq-question:hover {
background-color: #ecfdf5;
}
.faq-item.active .faq-question::after { transform: rotate(45deg); }
.faq-answer {
padding: 0 1.5rem 1.5rem 1.5rem;
color: var(--text-color-light);
line-height: 1.6;
display: none;
}
.faq-item.active .faq-answer { display: block; }
/* Section Headers */
.section-header { margin-bottom: 3rem; }
.section-subtitle {
color: var(--text-color-light);
font-size: 1.1rem;
margin-top: 1rem;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
/* Breadcrumb */
.breadcrumb-nav {
background: var(--card-background-color);
padding: 1rem 0;
border-bottom: 1px solid var(--border-color);
}
.breadcrumb { list-style: none; padding: 0; margin: 0; display: flex; align-items: center; }
.breadcrumb-item { display: flex; align-items: center; }
.breadcrumb-item + .breadcrumb-item::before { content: '/'; margin: 0 0.5rem; color: var(--text-color-light); }
.breadcrumb-item a { color: var(--primary-color); text-decoration: none; }
.breadcrumb-item.active { color: var(--text-color-light); }
/* Article Page Styles */
.article-wrapper { background-color: var(--background-color); padding-bottom: 4rem; }
.article-header { padding: 4rem 1rem 3rem 1rem; text-align: center; background-color: #ffffff; border-bottom: 1px solid var(--border-color); margin-bottom: -6px; position: relative; z-index: 10; }
.article-container { position: relative; z-index: 20; }
.article-page { padding: 3rem clamp(1.5rem, 5vw, 4rem); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08); }
.article-page h1 { font-size: clamp(2rem, 5vw, 3.2rem); margin-bottom: 0.75rem; line-height: 1.25; color: #1a202c; }
.article-meta { color: var(--text-color-light); margin-bottom: 0; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.5px; }
.article-body { max-width: 720px; margin: 0 auto; }
.article-body h2 { font-size: 1.8rem; margin: 3rem 0 1.5rem 0; padding-bottom: 0.75rem; border-bottom: 2px solid var(--primary-color); color: #2d3748; }
.article-body h3 { font-size: 1.4rem; margin: 2.5rem 0 1rem 0; color: #4a5568; }
.article-body p, .article-body li { line-height: 1.8; margin-bottom: 1.5rem; font-size: 1.05rem; color: #333; }
.article-body a { color: var(--primary-color); text-decoration: none; border-bottom: 1px solid rgba(13, 110, 253, 0.3); transition: all 0.2s ease; font-weight: 500; }
.article-body a:hover { background-color: rgba(13, 110, 253, 0.1); border-bottom-color: var(--primary-color); }
.article-body ul, .article-body ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }
.article-body li { margin-bottom: 0.75rem; }
.article-body blockquote { border-left: 4px solid #a0aec0; padding: 1rem 1.5rem; margin: 2.5rem 0; color: #4a5568; background-color: #f7fafc; border-radius: 8px; font-style: italic; }
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body strong { color: #000; }
.article-body pre { background-color: #f7fafc; border: 1px solid #e2e8f0; padding: 1.5rem; border-radius: 8px; overflow-x: auto; font-size: 0.9rem; line-height: 1.6; }
/* Responsive Design */
@media (max-width: 768px) {
.main-content { padding-top: 1rem; padding-bottom: 1rem; }
.content-card { padding: 1.5rem; }
.nav-container { padding: 0 1rem; }
.main-nav, .header-actions .icon-link { display: none; }
.download-title { font-size: 1.8rem; }
.download-form { flex-direction: column; }
.features-grid { grid-template-columns: 1fr; gap: 2rem; }
.section-title, .cta-section h3 { font-size: 1.6rem; }
.footer-links-container { flex-direction: column; text-align: center; }
.footer-bottom-bar { flex-direction: column; gap: 1rem; }
.results-table { display: block; width: 100%; }
.results-table thead { display: none; }
.results-table tbody, .results-table tr { display: block; }
.results-table tr { border: 1px solid #ddd; margin-bottom: 1rem; display: block; }
.results-table td { display: flex; justify-content: space-between; align-items: center; text-align: right; border: none; border-bottom: 1px solid #eee; padding: 0.8rem; }
.results-table td:before { content: attr(data-label); font-weight: bold; text-align: left; margin-right: 1rem; }
.language-dropdown { width: 90vw; right: 50%; transform: translateX(50%); max-height: 70vh; overflow-y: auto; }
.cta-buttons { flex-direction: column; align-items: center; }
.key-features { justify-content: center; }
.steps-container { grid-template-columns: 1fr; }
.platforms-grid { grid-template-columns: 1fr; }
.feature-item .feature-icon { font-size: 2rem; }
/* --- [核心修改] 在这里添加新规则 --- */
.footer-column-articles {
/* 在移动端（列布局），将基础尺寸重置为自动，使其高度由内容决定 */
flex-basis: auto;
}
}
/* 平台特定品牌颜色 */
.platform-card[data-platform="twitter"] .platform-icon { color: #1da1f2; }
.platform-card[data-platform="tiktok"] .platform-icon { color: #ffc107; }
.platform-card[data-platform="douyin"] .platform-icon { color: #000000; }
.platform-card[data-platform="youtube"] .platform-icon { color: #ff0000; }
.platform-card[data-platform="bilibili"] .platform-icon { color: #00a1d6; }
.platform-card[data-platform="facebook"] .platform-icon { color: #1877f2; }
.platform-card[data-platform="pinterest"] .platform-icon { color: #bd081c; }
.platform-card[data-platform="vk"] .platform-icon { color: #4c75a3; }
.platform-card[data-platform="instagram"] .platform-icon { color: #e4405f; }
/* Feature badges 特定颜色 */
.key-features .feature-badge:nth-child(1) { background: rgba(59, 130, 246, 0.9); } /* HD Quality - 蓝色 */
.key-features .feature-badge:nth-child(2) { background: rgba(16, 185, 129, 0.9); } /* No Watermark - 绿色 */
.key-features .feature-badge:nth-child(3) { background: rgba(245, 158, 11, 0.9); } /* All Devices - 橙色 */
.key-features .feature-badge:nth-child(4) { background: rgba(239, 68, 68, 0.9); } /* Free Forever - 红色 */
/* Why Choose Our Video Downloader 图标颜色优化 */
.feature-card:nth-child(1) .feature-icon { color: #3b82f6; } /* Lightning Fast - 蓝色 */
.feature-card:nth-child(2) .feature-icon { color: #10b981; } /* 100% Secure - 绿色 */
.feature-card:nth-child(3) .feature-icon { color: #f59e0b; } /* HD Quality - 橙色 */
.feature-card:nth-child(4) .feature-icon { color: #8b5cf6; } /* All Devices - 紫色 */
.feature-card:nth-child(5) .feature-icon { color: #ef4444; } /* 10+ Platforms - 红色 */
.feature-card:nth-child(6) .feature-icon { color: #06b6d4; } /* Free Forever - 青色 */
