:root {
    --primary: #113f2e;       
    --primary-light: #1b5c45; 
    --gold: #D4AF37;          
    --gold-dark: #b89123;     
    --dark: #0a1c13;          
    --gray: #F7F5F0;          
    --white: #ffffff;
    --text: #333333;
    --text-light: #666666;
    --border: #e5e0d8;        
    --container-width: 1240px;
    --header-height: 70px;
}

* { box-sizing: border-box; margin: 0; padding: 0; outline: none; -webkit-tap-highlight-color: transparent; }
body { font-family: 'Inter', Helvetica, Arial, sans-serif; background-color: var(--white); color: var(--text); line-height: 1.6; overflow-x: hidden; font-size: 15px; }
a { text-decoration: none; color: inherit; transition: all 0.3s ease; }
img { max-width: 100%; height: auto; display: block; }

.section-wrapper { padding: 80px 0; } .bg-white { background-color: var(--white); } .bg-light { background-color: var(--gray); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.container { max-width: var(--container-width); margin: 0 auto; padding: 0 20px; }
.section-header { text-align: center; margin-bottom: 50px; position: relative; }
.section-title { font-family: 'Playfair Display', serif; font-size: 2.2rem; color: var(--primary); text-transform: uppercase; letter-spacing: 2px; font-weight: 800; display: inline-block; position: relative; padding-bottom: 15px; }
.section-title::after { content:''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background: linear-gradient(90deg, var(--gold), var(--gold-dark)); }
.section-title::before { content:''; position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); width: 30px; height: 1px; background: var(--primary); opacity: 0.4; }

.top-bar { background: var(--primary); color: #d0d8d5; font-size: 12px; padding: 10px 0; letter-spacing: 0.5px; }
.top-inner { max-width: var(--container-width); margin: 0 auto; padding: 0 20px; display: flex; justify-content: space-between; }
header { background: rgba(255,255,255,0.98); position: sticky; top: 0; z-index: 1000; box-shadow: 0 4px 20px rgba(17,63,46,0.08); height: var(--header-height); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.header-inner { max-width: var(--container-width); margin: 0 auto; height: 100%; padding: 0 20px; display: flex; justify-content: space-between; align-items: center; position: relative; }
.logo { font-family: 'Playfair Display', serif; font-size: 24px; font-weight: 800; color: var(--primary); letter-spacing: -0.5px; display:flex; align-items:center; gap:8px; z-index:1002; } .logo span { color: var(--gold); }
nav { display: flex; gap: 35px; align-items: center; }
nav a { font-size: 13px; font-weight: 600; text-transform: uppercase; color: var(--text-light); letter-spacing: 1px; position: relative; }
nav a:hover, nav a.active { color: var(--primary); }
nav a::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: var(--gold); transition: 0.3s; }
nav a:hover::after { width: 100%; }

/* ★★★ Mega Menu (巨型网格菜单) 升级 ★★★ */
.mobile-toggle { display: none; font-size: 22px; cursor: pointer; z-index: 1002; color: var(--primary); }
.nav-dropdown { position: relative; }
.dropdown-content { 
    display: none; position: absolute; background-color: #fff; 
    width: 850px; /* 拓宽宽度容纳多列 */
    left: 50%; transform: translateX(-60%); /* 居中对齐 */
    box-shadow: 0 15px 40px rgba(17,63,46,0.12); z-index: 1001; top: 100%; 
    border-top: 3px solid var(--gold); padding: 30px; border-radius: 0 0 6px 6px; 
}
.nav-dropdown:hover .dropdown-content { 
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; /* 4列网格，自动换行 */
    animation: fadeInUp 0.2s ease; 
}
.mega-col { display: flex; flex-direction: column; gap: 6px; }
.mega-parent { 
    font-family: 'Playfair Display', serif; font-size: 16px; font-weight: 800; 
    color: var(--primary); border-bottom: 1px solid var(--border); 
    padding-bottom: 8px; margin-bottom: 5px; text-transform: none; letter-spacing: 0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* 长文字截断 */
}
.mega-parent:hover { color: var(--gold); }
.mega-parent::after { display: none; }
.mega-child { 
    font-size: 13px; color: var(--text-light); padding: 4px 0; transition: 0.3s; 
    text-transform: none; letter-spacing: 0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* 长文字截断 */
}
.mega-child::after { display: none; }
.mega-child:hover { color: var(--primary); font-weight: 700; padding-left: 5px; }

/* === Hero & Layout ... === */
.hero { position: relative; height: 600px; background: var(--dark); overflow: hidden; } .hero-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out; z-index: 1; display:flex; align-items:center; justify-content:center; text-align:center; color:#fff; padding: 20px; } .hero-slide.active { opacity: 1; z-index: 2; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.5); z-index: -1; transform: scale(1.05); transition: transform 6s linear; } .hero-slide.active .hero-bg { transform: scale(1); } .hero-content { position: relative; z-index: 3; max-width: 900px; } .hero-brand { font-size: 14px; letter-spacing: 6px; color: var(--gold); font-weight:700; margin-bottom:20px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); } .hero h1 { font-family: 'Playfair Display', serif; font-size: 4rem; line-height: 1.1; margin-bottom: 25px; font-weight:800; text-shadow: 0 5px 15px rgba(0,0,0,0.4); } .hero-sub { font-size: 18px; font-weight: 300; margin-bottom: 45px; opacity: 0.9; letter-spacing: 1px; max-width: 700px; margin-left: auto; margin-right: auto; line-height: 1.8; }
.btn-gold { background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%); color: #fff; padding: 16px 45px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; font-size: 13px; display:inline-block; border-radius: 2px; box-shadow: 0 10px 20px rgba(212, 175, 55, 0.2); transition: 0.4s; border: 1px solid transparent; } .btn-gold:hover { background: var(--white); color: var(--primary); box-shadow: 0 10px 25px rgba(255, 255, 255, 0.3); transform: translateY(-3px); }

/* === Products & Sections === */
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; } .prod-card { background: #fff; box-shadow: 0 5px 20px rgba(17,63,46,0.04); border-radius: 4px; overflow: hidden; transition: 0.4s ease; cursor: pointer; border: 1px solid var(--border); } .prod-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(17,63,46,0.1); border-color: var(--gold); } .prod-img-box { width: 100%; overflow: hidden; position: relative; background: var(--gray); } .prod-img-box img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; } .prod-card:hover .prod-img-box img { transform: scale(1.1); } .prod-body { padding: 25px; text-align: center; } .prod-title { font-family: 'Playfair Display', serif; font-size: 17px; font-weight: 700; color: var(--primary); margin-bottom: 12px; height: 26px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; transition: 0.3s; } .prod-card:hover .prod-title { color: var(--gold); } .btn-view-text { color: var(--gold); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; position: relative; display: inline-block; padding-bottom: 4px; } .btn-view-text::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gold); transition:0.3s; } .prod-card:hover .btn-view-text::after { width:100%; }
#news .prod-img-box { aspect-ratio: 16/10; } #news .prod-title { white-space: normal; height: auto; max-height: 48px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

@media (min-width: 1024px) { .product-grid.hot-layout { grid-template-columns: repeat(3, 1fr) !important; gap: 25px; } .hot-layout .prod-card { display: flex; flex-direction: row; height: 240px; align-items: stretch; border: 1px solid var(--border); box-shadow: none; background: transparent; } .hot-layout .prod-card:hover { transform: translateY(-5px); border-color: var(--gold); background: #fff; box-shadow: 0 15px 30px rgba(17,63,46,0.06); } .hot-layout .prod-img-box { width: 50%; height: 100%; aspect-ratio: auto; } .hot-layout .prod-body { width: 50%; padding: 25px; text-align: left; display: flex; flex-direction: column; justify-content: center; } .hot-layout .prod-title { color: var(--primary); font-size: 16px; margin-bottom: 12px; white-space: normal; line-height: 1.3; height: auto; max-height: 44px; } .hot-layout .prod-card:hover .prod-title { color: var(--gold); } .prod-short-desc { font-size: 13px; color: var(--text-light); margin-bottom: 20px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .btn-hot { background: var(--primary); color: var(--gold); font-size: 11px; padding: 8px 20px; display: inline-block; width: fit-content; text-transform: uppercase; font-weight: 700; letter-spacing: 1px; transition: 0.3s; } .hot-layout .prod-card:hover .btn-hot { background: var(--gold); color: #fff; } .hot-layout .prod-card:nth-child(n+4) { flex-direction: row-reverse; } }

.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; } .project-item { position: relative; aspect-ratio: 16/10; overflow: hidden; border-radius: 4px; cursor: pointer; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .project-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; } .project-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(17,63,46,0.9), transparent); opacity: 0; transition: 0.4s; display: flex; align-items: flex-end; padding: 25px; } .project-title { color: var(--gold); font-family: 'Playfair Display', serif; transform: translateY(20px); transition: 0.4s; font-size: 20px; font-weight: 700; } .project-item:hover img { transform: scale(1.1); } .project-item:hover .project-overlay { opacity: 1; } .project-item:hover .project-title { transform: translateY(0); color: #fff; }
.dark-section { background: var(--dark); padding: 80px 0; color: #fff; overflow: hidden; border-top: 4px solid var(--gold); } .dark-header h2 { color: var(--gold); font-family: 'Playfair Display', serif; font-size: 2.2rem; text-align: center; margin-bottom: 40px; text-transform: uppercase; letter-spacing: 2px; } .carousel-track { display: flex; gap: 25px; overflow-x: auto; padding-bottom: 30px; scroll-snap-type: x mandatory; } .carousel-track::-webkit-scrollbar { height: 4px; background: rgba(255,255,255,0.1); } .carousel-track::-webkit-scrollbar-thumb { background: var(--gold); } .carousel-item { min-width: 280px; scroll-snap-align: start; cursor: pointer; transition: 0.4s; position: relative; } .carousel-item:hover { transform: translateY(-8px); } .carousel-item img { width: 100%; height: 350px; object-fit: cover; border-radius: 4px; filter: brightness(0.7) grayscale(0.2); transition: 0.4s; border: 1px solid rgba(255,255,255,0.1); } .carousel-item:hover img { filter: brightness(1) grayscale(0); border-color: var(--gold); } .carousel-item h4 { color: #fff; font-size: 15px; font-weight: 600; text-align: center; text-transform: uppercase; letter-spacing: 1px; margin-top: 15px; transition: 0.3s; } .carousel-item:hover h4 { color: var(--gold); }
.about-split { display: flex; min-height: 500px; background: #fff; } .about-img { flex: 1; position: relative; overflow: hidden; } .about-img img { width: 100%; height: 100%; object-fit: cover; transition: 5s linear; } .about-split:hover .about-img img { transform: scale(1.05); } .about-content { flex: 1; padding: 80px 60px; display: flex; flex-direction: column; justify-content: center; background: var(--gray); border-left: 5px solid var(--gold); } .about-content h2 { font-family: 'Playfair Display', serif; font-size: 2.8rem; color: var(--primary); margin-bottom: 25px; line-height: 1.2; } .about-content p { color: var(--text-light); margin-bottom: 40px; font-size: 16px; max-width: 550px; line-height: 1.8; }
.cert-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; } .cert-box { background: #fff; border: 1px solid var(--border); padding: 20px; aspect-ratio: 3/4; display: flex; align-items: center; justify-content: center; transition: 0.4s; border-radius: 4px; box-shadow: 0 5px 15px rgba(0,0,0,0.02); } .cert-box:hover { border-color: var(--gold); box-shadow: 0 15px 35px rgba(17,63,46,0.1); transform: translateY(-8px); } .cert-box img { width: 100%; height: 100%; object-fit: contain; }
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; } .contact-card { background: #fff; padding: 40px 20px; border-radius: 4px; box-shadow: 0 5px 20px rgba(17,63,46,0.04); transition: 0.4s; border-top: 3px solid var(--primary); border-bottom: 1px solid var(--border); border-left: 1px solid var(--border); border-right: 1px solid var(--border); } .contact-card:hover { transform: translateY(-8px); border-top-color: var(--gold); box-shadow: 0 15px 30px rgba(17,63,46,0.08); } .contact-card h3 { color: var(--primary); margin-bottom: 15px; font-family: 'Playfair Display', serif; font-size: 20px; } .contact-card p { color: var(--text-light); font-size: 15px; }

/* === Footer === */
footer { background: var(--dark); color: #9bb0a5; padding: 80px 0 0; font-size: 14px; } .footer-grid-4 { display: grid; grid-template-columns: 1.2fr 1fr 0.8fr 1fr; gap: 50px; margin-bottom: 50px; } .footer-col h4, .footer-col-form h4 { color: var(--gold); margin-bottom: 25px; font-family: 'Playfair Display', serif; font-size: 20px; border-bottom: 1px solid rgba(204,164,97,0.3); display: inline-block; padding-bottom: 8px; letter-spacing: 1px; }
.footer-col-form input, .footer-col-form textarea { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); padding: 12px; margin-bottom: 12px; color: #fff; font-size: 13px; border-radius: 2px; transition: 0.3s; } .footer-col-form input:focus, .footer-col-form textarea:focus { border-color: var(--gold); background: rgba(255,255,255,0.1); } .btn-footer-submit { background: var(--gold); color: var(--primary); border: none; padding: 12px 25px; font-weight: 800; cursor: pointer; text-transform: uppercase; font-size: 12px; transition: 0.3s; border-radius: 2px; letter-spacing: 1px; } .btn-footer-submit:hover { background: #fff; }
.footer-col ul li { margin-bottom: 12px; list-style:none; } .footer-col a { color: #9bb0a5; font-size: 14px; transition: 0.3s; } .footer-col a:hover { color: var(--gold); padding-left: 8px; } .contact-row { font-size: 14px; margin-bottom: 15px; display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; } .contact-row i { color: var(--gold); margin-top: 4px; font-size: 16px; } .copyright { background: #06110b; text-align: center; padding: 25px; font-size: 13px; color: #667870; border-top: 1px solid rgba(255,255,255,0.05); }

/* === List Pages & Details === */
.page-banner { height: 280px; background: var(--primary); display: flex; align-items: center; justify-content: center; text-align: center; border-bottom: 4px solid var(--gold); } .banner-overlay { color: #fff; z-index: 2; } .banner-overlay h1 { font-family: 'Playfair Display', serif; font-size: 3rem; margin-bottom: 15px; font-weight: 800; } .breadcrumbs { font-size: 14px; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 1px; } .breadcrumbs a { color: var(--gold); font-weight: 600; }
.layout-split { display: flex; gap: 50px; align-items: flex-start; } 
.sidebar-col { width: 300px; flex-shrink: 0; } 
.main-col { flex: 1; min-width: 0; } /* 防止网格溢出 */

.sidebar-widget { background: #fff; padding: 25px; border: 1px solid var(--border); border-radius: 4px; margin-bottom: 30px; box-shadow: 0 5px 15px rgba(17,63,46,0.03); } 
.sidebar-widget h3 { font-family: 'Playfair Display', serif; font-size: 18px; margin-bottom: 20px; border-bottom: 2px solid var(--gold); padding-bottom: 10px; color: var(--primary); } 

/* ★★★ 侧边栏：手风琴折叠树 (Accordion Tree) ★★★ */
.category-tree { display: flex; flex-direction: column; gap: 6px; }
.tree-item { 
    display: block; padding: 12px 15px; background: #fff; border: 1px solid var(--border); 
    border-radius: 4px; color: var(--text); font-size: 14px; font-weight: 600; 
    transition: 0.3s; text-decoration: none; 
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* 长文字截断 */
}
.tree-item:hover { border-color: var(--gold); color: var(--primary); background: var(--gray); }
.tree-item.active { background: var(--primary); color: var(--gold); border-color: var(--primary); }

.tree-group { background: #fff; border: 1px solid var(--border); border-radius: 4px; transition: 0.3s; }
.tree-group[open] { border-color: var(--gold); box-shadow: 0 4px 10px rgba(0,0,0,0.02); }
.tree-group summary { 
    padding: 12px 15px; font-size: 14px; font-weight: 600; color: var(--text); 
    cursor: pointer; list-style: none; position: relative; transition: 0.3s; 
    padding-right: 35px; border-radius: 4px;
}
/* 处理 summary 内的 a 标签文字溢出 */
.tree-group summary a { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: inherit; }
.tree-group summary::-webkit-details-marker { display: none; }
.tree-group summary::after { content: '+'; position: absolute; right: 15px; top: 12px; font-size: 18px; color: var(--gold); font-weight: 400; line-height: 1; }
.tree-group[open] summary::after { content: '−'; }
.tree-group summary.active { color: var(--primary); }
.tree-group summary:hover { background: var(--gray); color: var(--primary); }

.tree-children { display: flex; flex-direction: column; background: var(--gray); border-top: 1px dashed var(--border); padding: 5px 0; border-radius: 0 0 4px 4px; }
.tree-child { 
    padding: 8px 15px 8px 30px; font-size: 13px; color: var(--text-light); 
    transition: 0.3s; text-decoration: none; position: relative; 
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* 长文字截断 */
}
.tree-child::before { content: ''; position: absolute; left: 15px; top: 16px; width: 6px; height: 1px; background: var(--gold); }
.tree-child:hover { color: var(--primary); font-weight: 600; background: #fff; }
.tree-child.active { color: var(--gold); font-weight: 700; background: #fff; }


.product-page-wrapper { display: flex; gap: 50px; margin-top: 20px; } .gallery-section { width: 50%; } .main-image-box { width: 100%; aspect-ratio: 1/1; border: 1px solid var(--border); margin-bottom: 15px; display:flex; align-items:center; justify-content:center; background: var(--gray); padding: 10px; } .thumb-list { display: flex; gap: 15px; overflow-x: auto; } .thumb-item { width: 80px; height: 80px; border: 1px solid var(--border); flex-shrink: 0; cursor:pointer; transition: 0.3s; opacity: 0.7; } .thumb-item:hover { border-color: var(--gold); opacity: 1; transform: translateY(-3px); } .info-section { width: 50%; } .product-h1 { font-family: 'Playfair Display', serif; font-size: 2.2rem; color: var(--primary); margin-bottom: 20px; font-weight: 800; } .btn-inquire { display: block; width: 100%; background: var(--primary); color: var(--gold); text-align: center; padding: 18px; font-weight: 800; margin-top: 30px; text-transform: uppercase; letter-spacing: 2px; transition: 0.3s; border-radius: 2px; border: 1px solid var(--primary); } .btn-inquire:hover { background: var(--gold); color: #fff; border-color: var(--gold); box-shadow: 0 10px 20px rgba(212,175,55,0.3); }

/* Responsive */
.mobile-bottom-bar { display: none; }
@media (max-width: 1024px) { 
    .product-grid, .cert-grid { grid-template-columns: repeat(3, 1fr); } .project-grid { grid-template-columns: repeat(2, 1fr); } 
    .about-split, .layout-split, .product-page-wrapper { flex-direction: column; height: auto; } 
    .sidebar-col, .gallery-section, .info-section, .about-img { width: 100%; } 
    .about-content { padding: 50px 30px; border-left: none; border-top: 5px solid var(--gold); }
}
@media (max-width: 768px) { 
    body { padding-bottom: 60px; } .mobile-toggle { display: block; } 
    nav { position: fixed; top: var(--header-height); left: 0; width: 100%; background: #fff; flex-direction: column; align-items: flex-start; gap: 0; border-top: 1px solid var(--border); max-height: 0; overflow: hidden; transition: max-height 0.4s ease; box-shadow: 0 10px 30px rgba(17,63,46,0.1); } 
    nav.active { max-height: 400px; overflow-y: auto; } 
    nav a { width: 100%; padding: 18px 25px; border-bottom: 1px solid var(--gray); font-size: 14px; } 
    
    /* Mobile Mega Menu Adjustments */
    .nav-dropdown { width: 100%; } 
    .dropdown-content { position: static; box-shadow: none; border: none; background: var(--gray); display: none; padding: 15px 25px; width: 100%; transform: none; grid-template-columns: 1fr; gap: 15px; } 
    .nav-dropdown:hover .dropdown-content { display: block; } 
    .mega-col { margin-bottom: 10px; }
    .mega-parent { border-bottom: none; font-size: 15px; margin-bottom: 0; }
    .mega-child { padding-left: 15px; font-size: 14px; border-left: 2px solid var(--border); }

    .nav-dropdown > a::after { content: ' +'; float: right; color: var(--gold); } 
    .hero { height: 450px; } .hero h1 { font-size: 2.5rem; } .section-title { font-size: 1.8rem; } 
    .product-grid, .cert-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; } .project-grid, .footer-grid-4 { grid-template-columns: 1fr; gap: 30px; } 
    .hot-layout .prod-card { flex-direction: column !important; height: auto; } .hot-layout .prod-img-box, .hot-layout .prod-body { width: 100%; } .hot-layout .prod-img-box { aspect-ratio: 1/1; }
    .mobile-bottom-bar { display: flex; position: fixed; bottom: 0; left: 0; width: 100%; height: 60px; z-index: 9999; box-shadow: 0 -5px 20px rgba(0,0,0,0.15); } .bar-item { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; color: #fff; font-weight: 700; font-size: 15px; text-transform: uppercase; text-decoration: none; transition: 0.2s; letter-spacing: 1px; } .email-btn { background-color: var(--primary); } .call-btn { background: linear-gradient(90deg, var(--gold), var(--gold-dark)); color: #fff; } 
}
@keyframes fadeInUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }