/* ================= 全局重置 & 变量 ================= */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    color: #333;
    overflow-x: hidden;
    /*background: url("/{ms:global.style/}ui/zu_01_2x.png") no-repeat top center;*/
    /*background-size: 100% auto;*/
    font-family: 'Source Han Serif CN', serif;
}

/* 颜色变量 */
:root {
    --primary: #00A9A5;
    --gold: #956B39;
    --bg-gray: #FCFCFA;
    --border-gold: #E0C99C;
    --page-padding-x: calc(160/1920*100vw);
    --primary-teal: #00A9A5;
}

/* 通用 Flex 类 */
.flex-row {
    display: flex;
    flex-direction: row;
}

.flex-col {
    display: flex;
    flex-direction: column;
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-start {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

/* --- Header 头部 (Flex布局) --- */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: calc(15/1920*100vw) 3vw;
    border-bottom: 1px solid #eee;
    background: #fff;
    width: 100%;
    height: calc(100/1920*100vw);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.search-container {
    position: relative;
}

.search-container input {
    padding: calc(7/1920*100vw) calc(10/1920*100vw);
    padding-right: calc(35/1920*100vw);
    border-radius: calc(20/1920*100vw);
    border: 1px solid #ddd;
    font-size: 14px;
    width: calc(135/1920*100vw);
    outline: none;
    transition: border-color 0.3s;
}

.search-container input:focus {
    border-color: var(--primary);
}

.search-icon {
    position: absolute;
    right: 12px;
    top: 57%;
    transform: translateY(-69%);
    color: #999;
    cursor: pointer;
}

nav ul {
    display: flex;
    list-style: none;
    gap: calc(14/1920*100vw);
    align-items: center;
    font-size: 14px;
    flex-wrap: nowrap;
}

nav li {
    position: relative;
    display: flex;
    align-items: center;
}

nav a {
    text-decoration: none;
    color: #333;
    font-weight: normal;
    display: block;
}

nav a.menu-item-box {
    width: 100px;
    height: 40px;
    border-radius: 20px;
    text-align: center;
    line-height: 40px;
    color: #333;
    text-decoration: none;
    font-weight: 800;
}

nav a.active {
    background-color: var(--primary);
    color: white;
    border-radius: 20px;
    width: 100px;
    height: 40px;
    text-align: center;
    line-height: 40px;
}

.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    padding: 5px 0;
    z-index: 1000;
    min-width: 120px;
}

.dropdown-menu a {
    display: block;
    padding: 8px 15px;
    color: #333;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    width: 100%;
    font-weight: 400;
    height: auto;
    line-height: normal;
}

.dropdown-menu a:hover {
    background-color: #f5f5f5;
    color: var(--primary);
}

.dropdown-menu.show {
    display: block;
}

.logo-area {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-left: 5.4vw;
    flex-shrink: 0;
}

.logo-area img {
    height: calc(68/1920*100vw);
    width: calc(362/1920*100vw);
}

/* ---------------- FOOTER ---------------- */
footer {
    padding: 40px 0 20px;
    width: 100%;
    background: #FCFCFA;
}

.footer-content {
    width: 90%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-bottom: 30px;
    border-bottom: 1px solid #f0f0f0;
    gap: 40px;
}

.footer-left {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: calc(694 / 1920 * 100vw);
    
}

.footer-logos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.footer-logos img {
    max-width: 100%;
    height: auto;
    max-height: 68px;
}

.footer-links {
    height: auto;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: 20px;
    color: #85663F;
    letter-spacing: 1px;
    text-align: left;
    font-style: normal;
    text-transform: none;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 14px;
    color: #78552B;
    font-weight: bold;
    font-family: Source Han Serif CN, serif;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    height: auto;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: 16px;
    color: #85663F;
    letter-spacing: 1px;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.contact-item img.icon {
    width: 25px;
    height: 24px;
    object-fit: contain;
    flex-shrink: 0;
}

.footer-right {
    display: flex;
    gap: 20px;

}

.qr-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.qr-item img {
    width: 80px;
    height: 80px;
    border: 1px dashed #ccc;
    padding: 2px;
}

.qr-item span {
    font-family: NotoSansHans, NotoSansHans;
    font-weight: bold;
    font-size: calc(20/1920*100vw);
    color: #6D6D6D;
    line-height: calc(46/1920*100vw);
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.footer-bottom {
    padding-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    height: auto;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: 16px;
    color: #956B39;
    letter-spacing: 1px;
    text-align: center;
    font-style: normal;
    text-transform: none;
    line-height: 1.5;
}

.police-icon {
    width: 20px;
    height: 20px;
    margin-right: 5px;
    vertical-align: middle;
}

/* ================= Extracted CSS from home-index.html ================= */
.page-products .top-banner-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    background: #fff;
    flex-shrink: 0;
}

.page-products .content-wrapper {
    display: flex;
    width: 100%;
    flex-shrink: 0;
    position: relative;
}

.page-products .left-panel {
    padding-top: calc(104/1920*100vw);
    margin-left: calc(160/1920*100vw);
    position: relative;
    height: calc(100vh - calc(100/1920*100vw));
}

.page-products .section-title {
    position: relative;
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: clamp(20px, 1.56vw, 30px);
    color: #E8D8B9;
    padding-left: 16px;
    margin-bottom: 10px;
}

.page-products .section-title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 15%;
    width: 4px;
    height: 70%;
    background: #DABE87;
}

.page-products .main-text-style {
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: clamp(32px, 2.5vw, 48px);
    color: #78552B;
    line-height: 1.2;
}

.page-products .left-bottom {
    height: 29.302vw;
    width: clamp(50px, 4.167vw, 80px);
    border: 2px solid #EBDEC2;
    position: relative;
    background: #fff;
    transition: all 0.3s;
    cursor: pointer;
    flex-shrink: 0;
    border-bottom: none;
}

.page-products .products-tabs-container {
    position: absolute;
    bottom: 0;
    display: flex;
    align-items: flex-end;
    z-index: 5;
}

.page-products .qyjs-box {
    width: 100%;
    height: 50%;
    background: #E1F7F5;
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: clamp(14px, 1.042vw, 20px);
    color: #00A9A5;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.4em;
}

.page-products .image-box {
    width: 100%;
    height: 50%;
    background: #00A9A5;
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-products .image-box img {
    max-width: 80%;
}

.page-products .left-bottom-text {
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: clamp(14px, 1.042vw, 20px);
    color: #78552B;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    border-left: none;
}

.page-products .left-bottom-text>div:first-child {
    height: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.4em;
    width: 100%;
}

.page-products .left-bottom-text>div:last-child {
    height: 50%;
    width: 100%;
}

.page-products .left-bottom-text:hover {
    background-color: #fcfcfc;
    color: var(--primary-teal);
}

.page-products .products-area {
    flex: 1;
    padding-top: clamp(40px, 4vw, 60px);
    padding-bottom: 40px;
    padding-right: var(--page-padding-x);
    padding-left: var(--page-padding-x);
    display: flex;
    flex-direction: column;
}

.page-products #default-view {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 40px;
    animation: fadeIn 0.5s ease;
}

.page-products .old-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(28/1920*100vw);
    width: 100%;
    margin: 0 auto;
}

.page-products .product-card-old {
    position: relative;
    background: #FFFFFF;
    border: 1px solid #E0C99C;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: calc(337/1920*100vw);
    transition: transform 0.3s;
    box-sizing: border-box;
    overflow: hidden;
}

.page-products .product-card-old:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
    cursor: pointer;
}

.page-products .product-title-old {
    height: 3.6vw;
    width: 85%;
    margin-bottom: 15px;
    text-align: center;
    border-bottom: 1px solid #E0C99C;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;

    font-family: "SimSun", serif;
    font-weight: bold;
    font-size: calc(24/1920*100vw);
    color: #333333;
    line-height: calc(46/1920*100vw);
    /*text-align: left;*/
    font-style: normal;
    text-transform: none;
}

.page-products .product-img-old {
    max-height: calc(100% - 3.6vw - 15px - 1vw);
    width: auto;
    object-fit: contain;
    cursor: pointer;
    box-shadow: none;
}

.page-products .old-pagination {
    margin-top: 20px;
    display: flex;
    justify-content: start;
    align-items: center;
    position: relative;
}

.page-products .page-btn-old {
    width: 28px;
    height: 28px;
    background: #22C7C3;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
}

.page-products .page-btn-old img {
    width: 9px;
}

.page-products .more-link-old {
    position: absolute;
    right: 0;
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: clamp(16px, 1.09vw, 21px);
    color: #00A9A5;
}

.page-products #series-view {
    width: 100%;
    display: flex;
    flex-direction: column;
    animation: fadeIn 0.5s ease;
}

.page-products .series-tabs {
    display: flex;
    justify-content: center;
    gap: 60px;
    margin-bottom: calc(27/1920*100vw);
}

.page-products .series-tab-item {
    cursor: pointer;
    padding-bottom: 15px;
    position: relative;
    transition: color 0.3s;
    width: calc(236/1920*100vw);
    height: calc(51/1920*100vw);
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(52/1920*100vw);
    color: #333333;
    line-height: calc(56/1920*100vw);
    text-align: left;
}

.page-products .series-tab-item.active {
    color: #00A9A5;
    font-weight: bold;
}

.page-products .series-tab-item.active::after {
    content: '';
    position: absolute;
    bottom: calc(-27/1920*100vw);
    left: 26%;
    transform: translateX(-50%);
    width: 50%;
    height: 4px;
    background-color: var(--primary-teal);
}

.page-products .series-desc {
    padding: calc(15/1920*100vw) 0;
    font-family: 'Source Han Serif CN', serif;
    font-weight: bold;
    font-size: calc(20/1920*100vw);
    color: #956B39;
    text-align: center;
    width: 100%;
    height: calc(72/1920*100vw);
    background: #FFFFFF;
    border: 1px solid #E0C99C;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    box-sizing: border-box;
}

.page-products .slider-viewport {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.page-products .slider-track {
    display: flex;
    flex-direction: row;
    /*width: fit-content; */
    transition: transform 0.6s ease;
}

.page-products .slide-panel {
    width: 50%;
    padding: 20px 0 10px 0;
    display: none; /* 默认隐藏 */
}

.slide-panel.active {
    display: block; /* 激活态显示 */
}

.page-products .new-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(28/1920*100vw);
    width: 100%;
    margin: 0 auto;
}

@media (max-width: 1024px) {

    .page-products .old-products-grid,
    .page-products .new-product-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {

    .page-products .old-products-grid,
    .page-products .new-product-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.page-products .hover-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 13.8vw;
    background: #fff;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}

.page-products .product-card-old:hover .hover-overlay {
    opacity: 1;
    visibility: visible;
}

.page-products .hover-inner-frame {
    width: 97%;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: calc(10/1920*100vw) calc(33/1920*100vw);
    box-sizing: border-box;
    background: #fff;
}

.page-products .hover-content {
    background-color: #EFF5F3;
    flex: 1;
    width: 100%;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    text-align: left;
    align-items: baseline;
    font-family: NotoSansHans, NotoSansHans;
    font-weight: 400;
    font-size: calc(22 / 1920 * 100vw);
    color: #333333;
    line-height: calc(36 / 1920 * 100vw);
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-products .hover-text-row {
    display: flex;
    text-align: left;
    align-items: baseline;

    font-family: NotoSansHans, NotoSansHans;
    font-weight: 400;
    font-size: calc(22/1920*100vw);
    color: #333333;
    line-height: calc(36/1920*100vw);
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-products .hover-label {
    width: calc(120/1920*100vw);
    text-align-last: justify;
    flex-shrink: 0;
    color: #333;
}

.page-products .hover-value {
    color: #333;
    flex: 1;
    padding-left: 5px;
}

.page-products .hover-btn {
    margin-top: 10px;
    align-self: center;
    background-color: #2A9D94;
    color: #fff;
    padding: 6px 25px;
    font-size: 14px;
    border: none;
    cursor: pointer;
    transition: background 0.3s;
}

.page-products .footer-pagination {
    margin-top: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 13px;
    color: #666;
}

.page-products .pg-btn {
    width: 32px;
    height: 32px;
    border: 1px solid #ddd;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    cursor: pointer;
}

.page-products .pg-btn:hover {
    border-color: var(--primary-teal);
    color: var(--primary-teal);
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Pagination Styles (Copied from news.html) --- */
.pagination-container {
    margin-top: calc(42 / 1920 * 100vw);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(14 / 1920 * 100vw);
    font-family: 'Source Han Serif CN', serif;
    font-size: calc(20 / 1920 * 100vw);
    color: #999;
}

.pagination-info {
    margin-right: calc(10 / 1920 * 100vw);
    letter-spacing: 1px;
}

.pagination-info b {
    color: var(--gold);
    font-weight: normal;
    margin: 0 2px;
    font-family: Times New Roman, serif;
}

/* Common Box Styles */
.page-box,
.page-select-box,
.page-input-box,
.page-confirm-box {
    height: calc(44 / 1920 * 100vw);
    border: 1px solid #ccc;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    box-sizing: border-box;
    color: #333;
    transition: all 0.3s;
}

.page-box {
    width: calc(44 / 1920 * 100vw);
    cursor: pointer;
    font-family: 'Times New Roman', serif;
    font-size: calc(22 / 1920 * 100vw);
}

.page-box:hover,
.page-confirm-box:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.page-box.active {
    background-color: var(--primary);
    color: white;
    border-color: var(--primary);
}

.page-select-box {
    padding: 0 calc(20 / 1920 * 100vw);
    font-weight: bold;
    font-family: 'Source Han Serif CN', serif;
    font-size: calc(20 / 1920 * 100vw);
    cursor: pointer;
}

.page-input-box {
    width: calc(60 / 1920 * 100vw);
    color: #000;
    font-weight: bold;
    font-family: 'Times New Roman', serif;
    font-size: calc(22 / 1920 * 100vw);
    text-align: center;
    outline: none;
}

.page-input-box:focus {
    border-color: var(--primary);
}

.page-confirm-box {
    padding: 0 calc(25 / 1920 * 100vw);
    cursor: pointer;
    font-weight: bold;
    font-family: 'Source Han Serif CN', serif;
    font-size: calc(20 / 1920 * 100vw);
}

.page-label {
    color: #999;
    font-size: calc(20 / 1920 * 100vw);
    font-family: 'Source Han Serif CN', serif;
}

/* --- Grid Animation Styles --- */
.grid-viewport {
    width: 100%;
    position: relative;
    overflow: hidden;
    /* Ensure it has a height to contain absolute children if needed, 
       but grid usually dictates height. Since we'll use absolute on clone,
       we need to make sure viewport has height. 
       The original grid gives it height. */
}

.new-product-grid {
    width: 100%;
    /* transition: transform 0.5s ease-in-out; */
}

.new-product-grid.clone {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 2;
    /* Sit on top of entering grid if needed, or behind. */
    pointer-events: none;
}

@keyframes slideLeftOut {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes slideLeftIn {
    from {
        transform: translateX(100%);
    }

    to {
        transform: translateX(0);
    }
}

@keyframes slideRightOut {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(100%);
    }
}

@keyframes slideRightIn {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

.anim-slide-left-out {
    animation: slideLeftOut 0.5s ease-in-out forwards;
}

.anim-slide-left-in {
    animation: slideLeftIn 0.5s ease-in-out forwards;
}

.anim-slide-right-out {
    animation: slideRightOut 0.5s ease-in-out forwards;
}

.anim-slide-right-in {
    animation: slideRightIn 0.5s ease-in-out forwards;
}