/* --- 全局重置 --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    outline: none;
}

body {
    margin: 0;
    padding: 0;
    overflow: hidden;
    width: 100%;
    height: 100vh;
    /* font-family: "Microsoft YaHei", "PingFang SC", sans-serif; */
    background: #fff;
    font-family: 'Source Han Serif CN', serif;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
    box-shadow: none !important;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

nav li,
.nav-menu li {
    position: relative;
}

.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;
}

.bottom-nav .dropdown-menu {
    bottom: 100%;
    top: auto;
    margin-bottom: 10px;
}

.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: #00A9A5;
}

.dropdown-menu.show {
    display: block;
}

button {
    border: none;
    background: none;
    cursor: pointer;
}

/* --- 全屏滚动容器 --- */
#fullpage-main {
    width: 100%;
    height: 100vh;
    position: relative;
    transform: translateY(0);
    transition: transform 1000ms cubic-bezier(0.645, 0.045, 0.355, 1.000);
    /* 丝滑缓动 */
}

.section {
    width: 100%;
    height: 100vh;
    position: relative;
    overflow: hidden;
    background: #fff;
    padding-top: calc(100/1920*100vw);
    /* Space for fixed header */
}

/* --- 进场动画类 (大幅度飞入) --- */
.anim-up,
.anim-left,
.anim-right,
.anim-fade {
    opacity: 0;
    transition: all 1200ms cubic-bezier(0.19, 1, 0.22, 1);
    /* 更长的缓动 */
}

/* 从屏幕外飞入 */
.anim-up {
    transform: translateY(60vh);
}

.anim-left {
    transform: translateX(-50vw);
}

.anim-right {
    transform: translateX(50vw);
}

.anim-fade {
    transform: scale(0.8);
    opacity: 0;
}

.section.active .anim-up {
    opacity: 1;
    transform: translateY(0);
}

.section.active .anim-left {
    opacity: 1;
    transform: translateX(0);
}

.section.active .anim-right {
    opacity: 1;
    /*transform: translateX(calc(-120/1920*100vw));*/
}

.section.active .anim-fade {
    opacity: 1;
    transform: scale(1);
}

.delay-100 {
    transition-delay: 100ms;
}

.delay-200 {
    transition-delay: 200ms;
}

.delay-300 {
    transition-delay: 300ms;
}

.delay-400 {
    transition-delay: 400ms;
}

.delay-500 {
    transition-delay: 500ms;
}

/* --- 通用顶部导航栏样式 (Fixed) --- */
/* 引入 quality.html 的 Header 样式并适配 fixed 定位 */
header.common-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: fixed;
    /* 保持 Fixed */
    top: 0;
    left: 0;
    z-index: 1000;
    transition: transform 0.5s ease, opacity 0.5s ease;
}

/* Hidden state for Home page */
header.common-header.hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.search-container {
    position: relative;
}

.search-container input {
    padding: calc(8/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: #1bbab8;
    /* var(--primary) */
}

.search-icon {
    position: absolute;
    right: 12px;
    top: 57%;
    transform: translateY(-50%);
    color: #999;
    cursor: pointer;
}

header.common-header nav ul {
    display: flex;
    list-style: none;
    gap: calc(14/1920*100vw);
    align-items: center;
    font-size: 14px;
    flex-wrap: nowrap;
}

header.common-header nav li {
    display: flex;
    align-items: center;
    position: relative;
}

header.common-header nav a {
    text-decoration: none;
    color: #333;
    font-weight: normal;
    display: block;
}

header.common-header nav a.menu-item-box {
    width: 100px;
    height: 40px;
    border-radius: 20px;
    text-align: center;
    line-height: 40px;
    color: #333;
    text-decoration: none;
    padding: 0;
    font-weight: 800;
    /* Reset padding from previous styles */
}

header.common-header nav a.active {
    background-color: #1bbab8;
    /* var(--primary) */
    color: white !important;
    border-radius: 20px;
    width: 100px;
    height: 40px;
    text-align: center;
    line-height: 40px;
    box-shadow: none;
    font-weight: 800;
    /* Reset shadow */
}

.logo-area {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-left: 3vw;
    flex-shrink: 0;
}

.logo-area img {
    height: calc(68/1920*100vw);
    width: calc(362/1920*100vw);
}

.fake-logo {
    font-weight: bold;
    font-size: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-right: 2vw;
}

/* ==========================================================================
   1. PAGE: HOME (home.html)
   Prefix: .page-home
   ========================================================================== */
.page-home {
    --primary-color: #5a9a8f;
    --text-color: #333333;
    --text-light: #ffffff;
    --font-main: 'PingFang SC', 'Microsoft YaHei', sans-serif;
    --font-serif: 'KaiTi', 'STKaiti', serif;
    padding-top: 0;
    /* Home page background needs to cover top, header overlays it */
}

.page-home .hero {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.page-home .hero-bg {
    width: 100%;
    height: 100%;
}

/* 轮播图项 */
.hero-slides {
  position: relative;
  width: 100%;
  height: 100%;
}
.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.slide.active {
  opacity: 1;
}
/* 视频背景样式 */
.hero-video {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 保持视频比例并覆盖整个区域 */
    z-index: -1; /* 确保视频在内容下方 */
}

.page-home .hero-overlay {
    display: none;
}

.page-home .main-title {
    position: relative;
    z-index: 20;
    text-align: center;
    padding-top: 20vh;
    /* Increased to account for header */
}

.page-home .main-title h1 {
    font-size: 5rem;
    color: var(--text-light);
    font-weight: bold;
    text-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);
    letter-spacing: 24px;
    font-family: var(--font-serif);
    margin-bottom: 30px;
}

.page-home .main-title .slogan {
    font-size: 1.8rem;
    color: var(--text-light);
    letter-spacing: 15px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
    font-weight: 300;
}

.page-home .product-showcase {
    position: absolute;
    z-index: 15;
    left: 50%;
    bottom: 100px;
    transform: translateX(-50%);
    text-align: center;
    width: auto;
}

.page-home .product-image {
    width: 300px;
    height: 550px;
    margin: 0 auto;
}

.page-home .pavilion,
.page-home .mist,
.page-home .mountains,
.page-home .water-reflection {
    display: none;
}

/* Home Specific Bottom Nav */
.page-home .bottom-nav {
    position: absolute;
    bottom: 0;
    right: 0;
    width: calc(1585/1920*100vw);
    height: calc(100/1920*100vw);
    box-sizing: border-box;
    border-radius: calc(30/1920*100vw) 0 0 0;
    background: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    z-index: 50;
}

.page-home .logo-area {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-right: calc(20/1920*100vw);
}

.page-home .logo-area img {
    height: calc(67/1920*100vw);
    width: calc(353/1920*100vw);
}

.page-home .nav-container {
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-right: 2vw;
}

.page-home .nav-menu {
    display: flex;
    align-items: center;
    list-style: none;
}

.page-home .nav-menu li a:hover {
    color: #00A9A5;
}

.page-home .nav-menu li a.active {
    color: #fff;
    text-align: center;
    background: #00A9A5;
    width: calc(130/1920*100vw);
    height: calc(40/1920*100vw);
    border-radius: calc(40/2/1920*100vw);
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
}

.page-home .menu-item-box {
    text-decoration: none;
    transition: all 0.3s ease;
    white-space: nowrap;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(16/1920*100vw);
    color: #333333;
    width: calc(130/1920*100vw);
    height: calc(40/1920*100vw);
    border-radius: calc(40/2/1920*100vw);
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-home .search-box {
    display: flex;
    align-items: center;
    border-radius: calc(20/1920*100vw);
    padding: calc(6/1920*100vw) calc(15/1920*100vw);
    background: #f7f7f7;
    transition: all 0.3s;
    width: calc(155 / 1920 * 100vw);
    height: calc(33 / 1920 * 100vw);
}

.page-home .search-box:focus-within {
    background: #fff;
    border-color: #00A9A5;
    box-shadow: 0 0 0 2px rgba(0, 169, 165, 0.1);
}

.page-home .search-box input {
    border: none;
    outline: none;
    padding: 5px;
    font-size: 14px;
    width: 100%;
    color: #333;
    background: transparent;
}


/* ==========================================================================
   2. PAGE: NEWS (home-news.html)
   Prefix: .page-news
   ========================================================================== */
.page-news {
    --news-gold-light: #E8D8B9;
    --news-gold-border: #EBDEC2;
    --news-gold-dark: #DABE87;
    --news-brown: #78552B;
    --news-brown-light: #956B39;
    --news-primary-teal: #00A9A5;
    --font-base: 16px;
}

.page-news .main-container {
    display: flex;
    height: 100%;
    width: 100%;
    position: relative;
    background-size: 100%;
    background-position: center;
    justify-content: center;
}

.page-news .left-panel {
    padding-top: calc(104/1920*100vw);
    margin-left: calc(160/1920*100vw);
    position: relative;
}

.page-news .section-title {
    position: relative;
    /*width: calc(248/1920*100vw);*/
    font-family: 'Source Han Serif CN', serif;
    padding-left: clamp(10px, 0.833vw, 16px);

    font-weight: 800;
    font-size: calc(30/1920*100vw);
    color: #E8D8B9;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-news .main-text-style {
    font-family: 'Source Han Serif CN', serif, serif;
    font-weight: 800;
    line-height: 1.2;

    font-size: calc(48/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-news .section-title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 1px;
    width: clamp(3px, 0.208vw, 4px);
    height: 88%;
    background: var(--news-gold-dark);
}

.page-news .news-tabs-container {
    position: absolute;
    bottom: 0;
    left: calc(-1vw + clamp(10px, 0.833vw, 16px));
    display: flex;
    align-items: flex-end;
}

.page-news .left-bottom {
    /*height: clamp(320px, 26.302vw, 505px);*/
    height: 29.302vw;
    width: clamp(50px, 4.167vw, 80px);
    border: 2px solid var(--news-gold-border);
    position: relative;
    flex-shrink: 0;
    cursor: pointer;
}

.page-news .tab-text {
    width: 100%;
    height: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: clamp(5px, 0.417vw, 8px);
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: clamp(14px, 1.042vw, 20px);
    color: var(--news-brown);
    transition: all 0.3s ease;
}

.page-news .left-bottom.active .tab-text {
    background: #E1F7F5;
    color: #00A9A5;
}

.page-news .image-box-wrapper {
    position: absolute;
    bottom: 0;
    left: 0;
    width: clamp(50px, 4.167vw, 80px);
    height: 50%;
    pointer-events: none;
    z-index: 10;
}

.page-news .image-box {
    width: 100%;
    height: 100%;
    background: #00A9A5;
    border: 1px solid #E0C99C;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Content Slider */
.page-news .news-content-wrapper {
    flex: 1;
    overflow: hidden;
    position: relative;
    height: 100%;
}

.page-news .news-content-track {
    display: flex;
    width: 200%;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.page-news .news-content-panel {
    width: 50%;
    height: 100%;
    flex-shrink: 0;
}

.page-news .content-container {
    /*flex: 1;*/
    padding-top: clamp(50px, 7.813vw, 150px);
    padding-right: clamp(80px, 6.771vw, 130px);
    display: flex;
    gap: calc(65/1920*100vw);
    width: 100%;
}

.page-news .featured-news {
    flex: 1.2;
}

.page-news .featured-image {
    width: calc(630/1920*100vw);
    height: calc(351/1920*100vw);
    background: transparent;
    box-shadow: none;
    border: none;
}

.page-news .news-date-large {
    font-family: Source Han Serif CN, serif;
    color: var(--news-brown);
    margin-top: calc(20/1920*100vw);
    width: calc(630 / 1920* 100vw);
}

.page-news .date-day {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: calc(40/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    height: calc(57/1920*100vw);
    margin-bottom: calc(-13/1920*100vw);
}

.page-news .date-year {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;

    font-size: calc(20/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    transform: translateY(calc(10/1920*100vw));
}

.page-news .featured-title {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    letter-spacing: 1px;

    font-size: calc(21/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    margin-top: calc(6/1920*100vw);
    margin-bottom: calc(8/1920*100vw);
}

.page-news .featured-desc {
    line-height: 1.4;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 600;
    width: calc(624/1920*100vw);

    font-size: calc(16/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-news .news-list-section {
    /*flex: 1;*/
    display: flex;
    flex-direction: column;
    gap: calc(31/1920*100vw);
}

.page-news .news-item {
    display: flex;
    gap: calc(32/1920*100vw);
    opacity: 1;
    transform: translateY(0);
    transition: all 0.5s ease;
}

.page-news .news-item.loading {
    opacity: 0;
    transform: translateY(20px);
}

.page-news .news-item-img {
    width: calc(220/1920*100vw);
    height: calc(161/1920*100vw);
    aspect-ratio: 220 / 161;
    object-fit: cover;
    box-shadow: none;
}

.page-news .news-item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: calc(374/1920*100vw);
    transform: translateY(calc(-14/1920*100vw));

}

.page-news .news-item-date {
    font-family: Source Han Serif CN, serif;
    color: var(--news-brown);
}

.page-news .news-item-day {
    margin-right: clamp(6px, 0.521vw, 10px);
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;

    font-size: calc(40/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-news .news-item-year {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;

    font-size: calc(20/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    transform: translateY(calc(-10/1920*100vw));
}

.page-news .more-link {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: clamp(16px, 1.094vw, 21px);
    color: var(--news-primary-teal);
    cursor: pointer;
    text-align: right;
    margin-top: auto;
}

.page-news .news-item-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    max-width: clamp(240px, 19.635vw, 377px);
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    letter-spacing: 1px;

    font-size: calc(21/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    transform: translateY(calc(-3/1920*100vw));
}

.page-news .news-item-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    width: 100%;
    max-width: clamp(240px, 19.479vw, 374px);
    font-family: 'Source Han Serif CN', serif;

    font-weight: 600;
    font-size: calc(16/1920*100vw);
    color: #956B39;
    text-align: left;
    font-style: normal;
    text-transform: none;
    margin-top: calc(7/1920*100vw);
}

.page-news .more-link {
    text-align: right;
    margin-top: -1vh;
    color: var(--news-primary-teal);
    font-size: var(--font-base);
    font-weight: bold;
    cursor: pointer;
    padding-top: clamp(12px, 1.042vw, 20px);
}

.page-news .date-arrow {
    width: clamp(24px, calc(36/1920 * 100vw), 36px);
    height: clamp(7px, calc(11/1920 * 100vw), 11px);
}

/* ==========================================================================
   3. PAGE: ABOUT (home-about.html)
   Prefix: .page-about
   ========================================================================== */
.page-about {
    --right-panel-padding-left: calc(334/1920*100vw);
    /*--right-panel-padding-left: 50vw;*/
    padding-top: 0;
}

.page-about .main-container {
    display: flex;
    width: 100%;
    height: 100%;
    position: relative;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}

.page-about .left-panel {
    padding-top: calc(204/1920*100vw);
    margin-left: calc(160/1920*100vw);
    position: relative;
    width: calc(576/1920*100vw);
}

.page-about .section-title {
    position: relative;
    width: 100%;
    /* max-width: 436px; */
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(30/1920*100vw);
    color: #E8D8B9;
    padding-left: 16px;
}

.page-about .main-text-style {
    width: auto;
    height: auto;
    font-family: 'Source Han Serif CN', serif, serif;
    font-weight: 800;
    font-size: calc(48/1920*100vw);
    color: #78552B;
    margin-top: 10px;
    line-height: 1.2;
}

.page-about .section-title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 4px;
    height: 88%;
    background: #DABE87;
}

.page-about .left-tabs-container {
    position: absolute;
    bottom: 0;
    /*left: 6vw;*/
    height: 29.302vw;
    display: flex;
    align-items: flex-end;
    z-index: 5;
}

.page-about .tab-item {
    width: clamp(50px, 4.167vw, 80px);
    height: 100%;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    box-sizing: border-box;
    border-bottom: none;
}

.page-about .tab-item.active {
    background: #E1F7F5;
    border: 2px solid #EBDEC2;
    border-bottom: none;
}

.page-about #tab-group.active {
    border-left: none;
}

.page-about .tab-item:not(.active) {
    background: transparent;
    border-top: 2px solid #EBDEC2;
    border-right: 2px solid #EBDEC2;
    border-bottom: none;
    border-left: none;
}

.page-about .tab-item:first-child:not(.active) {
    border-left: 2px solid #EBDEC2;
}

.page-about .tab-text {
    height: 50%;
    flex: none;
    display: flex;
    justify-content: center;
    align-items: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-family: Source Han Serif CN, serif;
    font-weight: 800;
    font-size: clamp(14px, 1.042vw, 20px);
    letter-spacing: 8px;
    padding-top: 20px;
    width: 100%;
    transition: color 0.3s;
}

.page-about .tab-item.active .tab-text {
    color: #00A9A5;
}

.page-about .tab-item:not(.active) .tab-text {
    color: #78552B;
}

.page-about .tab-image-box {
    width: 100%;
    height: 50%;
    background: #00A9A5;
    border-top: 1px solid #E0C99C;
    display: flex;
    justify-content: center;
    align-items: center;
    visibility: hidden;
    opacity: 0;
    transition: all 0.3s ease;
}

.page-about .tab-item.active .tab-image-box {
    visibility: visible;
    opacity: 1;
}

.page-about .tab-image-box img {
    max-width: 80%;
    height: auto;
}

.page-about .center-divider {
    position: absolute;
    left: 40%;
    top: 0;
    bottom: 0;
    width: 150px;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    pointer-events: none;
}

.page-about .center-badge {
    position: absolute;
    bottom: 15%;
    width: 140px;
    height: 140px;
    background: #f5e6d3;
    border: 2px solid #cfa972;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.page-about .center-badge-text {
    writing-mode: vertical-rl;
    font-family: "Xingkai SC", "KaiTi", cursive;
    font-size: 32px;
    color: #5d4037;
    height: 80px;
    letter-spacing: 5px;
}

.page-about .seal {
    background-color: #a83232;
    color: white;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    margin-left: 5px;
}

.page-about .right-panel {
    width: 60%;
    position: relative;
}

.page-about .right-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: calc(0/1920*100vw + 15vh) 5vw 3.5vh var(--right-panel-padding-left);
    transition: all 0.3s ease;
    padding-left: 24vw;
}

.page-about .hero-title {
    font-family: 'Source Han Serif CN', serif;
    transition: color 0.3s ease, text-align 0.3s ease;

    width: calc(576/1920*100vw);
    height: calc(184/1920*100vw);
    font-weight: 800;
    font-size: calc(64/1920*100vw);
    color: #EED3AF;
    text-align: left;
    font-style: normal;
    text-transform: none;
}

.page-about .hero-title span {
    display: block;
    /*font-size: 0.6em;*/
    margin-bottom: 10px;
}

.page-about .description-box {
    width: calc(635/1920*100vw);
    /*max-width: 635px;*/
    /*height: auto;*/
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    /*padding-bottom: 20px;*/
    transition: color 0.3s ease;
    font-size: calc(20/1920*100vw);
    color: #EED3AF;
    line-height: calc(30/1920*100vw);
    text-align: justify;
    font-style: normal;
    text-transform: none;
    text-indent: 2em;
    letter-spacing: calc(1.5/1920*100vw);
}

/* 集团背书样式 */
.page-about .g-sub-top {
    font-size: calc(20/1920*100vw);
    margin-bottom: 5px;
    display: block;
    opacity: 0.95;
    letter-spacing: 1px;
    width: 426px;
    height: 30px;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    color: #EED3AF;
    line-height: 30px;
}

.page-about .g-h1 {
    width: calc(743/1920*100vw);
    height: calc(92/1920*100vw);
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(64/1920*100vw);
    color: #EED3AF;
}

.page-about .g-sub-mid {
    width: 341px;
    height: 30px;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(20/1920*100vw);
    color: #EED3AF;
    line-height: 30px;
}

.page-about .g-h2 {
    width: 224px;
    height: 46px;
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(32/1920*100vw);
    color: #FFFFFF;
}

.page-about .g-desc-line {
    display: block;
    font-weight: 800;

    /*width: 635px;*/
    /*height: 210px;*/
    font-family: 'Source Han Serif CN', serif;
    font-size: calc(20/1920*100vw);
    color: #EED3AF;
    line-height: calc(30/1920*100vw);
    text-align: right;
    font-style: normal;
    text-transform: none;
}

/* ==========================================================================
   4. PAGE: PRODUCTS (home-products.html)
   Prefix: .page-products
   ========================================================================== */
.page-products {
    --primary-teal: #00A9A5;
    --page-padding-x: clamp(20px, 6vw, 160px);
}

.page-products .main-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, #fff 0%, #f9f9f9 100%);
    position: relative;
    overflow-y: auto;
    overflow-x: hidden;
}

.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;
    height: calc(100vh - calc(100 / 1920* 100vw));
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.page-products .left-panel {
    /*width: 25%;*/
    /*min-width: 300px;*/
    /*padding-top: clamp(40px, 4.16vw, 80px);*/
    /*padding-left: var(--page-padding-x);*/
    /*position: relative;*/
    /*z-index: 2;*/

    padding-top: calc(104/1920*100vw);
    margin-left: calc(160/1920*100vw);
    position: relative;
}

.page-products .section-title {
    position: relative;
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: calc(30/1920*100vw);
    color: #E8D8B9;
    padding-left: 16px;
    margin-bottom: 10px;
}

.section-title2 {
    position: relative;
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: calc(30/1920*100vw);
    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;
}

.section-title2::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 3%;
    width: 4px;
    height: 90%;
    background: #DABE87;
}

.page-products .main-text-style {
    font-family: "Source Han Serif CN", serif;
    font-weight: 800;
    font-size: calc(48/1920*100vw);
    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;
    /*left: var(--page-padding-x);*/
    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: 2vw;
    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: 31vh;
    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: 6.4vh;
    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-weight: bold;
    font-size: calc(24/1920*100vw);
    color: #333333;
    line-height: calc(46/1920*100vw);
    font-style: normal;
    text-transform: none;
}

.page-products .product-img-old {
    max-height: calc(100% - 6.4vh - 15px - 1vh);
    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: none;
    flex-direction: column;
    animation: fadeIn 0.5s ease;
}

.page-products .series-tabs {
    display: flex;
    justify-content: center;
    gap: 60px;
    margin-bottom: 10px;
}

.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;
}

.page-products .series-tab-item.active::after {
    content: '';
    position: absolute;
    bottom: calc(-15/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: 200%;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.page-products .slide-panel {
    width: 50%;
    padding: 20px 0 10px 0;
}

.page-products .new-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.6vh;
    width: 100%;
    margin: 0 auto;
}

/* 保持 3 列布局，不随屏幕宽度改变列数 */
@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;
}

.page-products .hover-text-row {
    display: flex;
    font-size: 14px;
    color: #333;
    line-height: 1.5;
    text-align: left;
    align-items: baseline;
}

.page-products .hover-label {
    width: 75px;
    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);
}

.page-products .pg-input {
    width: 40px;
    height: 32px;
    border: 1px solid #ddd;
    text-align: center;
}

.page-products .pg-confirm {
    height: 32px;
    padding: 0 15px;
    border: 1px solid #ddd;
    background: #fff;
}

.page-products .pg-confirm:hover {
    border-color: var(--primary-teal);
    color: var(--primary-teal);
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   5. PAGE: PATENT (home-patent.html)
   Prefix: .page-patent
   ========================================================================== */
.page-patent {
    --primary-teal: #00A9A5;
    --accent-gold: #cfa972;
    --text-dark: #333;
    --text-brown: #78552B;
    --border-gold: #E0C99C;
    --header-height: calc(100/1920*100vw);
    display: flex;
    flex-direction: column;
    /* Height 100vh to fit the fullpage slot, but allow internal scrolling */
    height: 100vh;
    overflow-y: auto;
    /* Enable internal scroll */
    overflow-x: hidden;
    position: relative;
}

/* Main Container Height: Full viewport minus header, so it fills the screen initially */
.page-patent .main-container {
    flex: 1;
    /* min-height: calc(100vh - var(--header-height)); */
    width: 100%;
    display: flex;
    
    background-size: cover;
    position: relative;
    height: auto;
    min-height: 100vh; 
    padding-bottom: 0;
    /* 预留 Footer 空间 */
}

.page-patent .left-panel {
    padding-top: calc(104/1920*100vw);
    margin-left: calc(160/1920*100vw);
    position: relative;
    z-index: 1;
    /* 确保层级低于 Footer */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 60vh; /* Give it a fixed height or relative to viewport to anchor the tabs */
    align-self: center; /* Center vertically in main-container */
}

.page-patent .section-title {
    position: relative;
    margin-bottom: 4vh;
    padding-left: 1rem;
}

.page-patent .section-title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 10%;
    width: 4px;
    height: 80%;
    background: #DABE87;
}

.page-patent .section-title .en {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(30/1920*100vw);
    color: #E8D8B9;
}

.page-patent .section-title .zh {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: calc(48/1920*100vw);
    color: var(--text-brown);
    line-height: 1.2;
}

.page-patent .left-tabs-container {
    display: flex;
    margin-top: auto;
    position: relative;
    /* bottom: 0; */
    height: 29.302vw;
}

.page-patent .tab-box {
    width: clamp(50px, 4vw, 80px);
    /*height: calc(50vh - 40px);*/
    /* max-height: 505px; */
    height: 100%;
    border: 2px solid #E0C99C;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    cursor: pointer;
    transition: all 0.3s;
    border-bottom: none;
}

.page-patent .tab-text {
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.5rem;
    font-weight: 800;
    font-size: clamp(16px, 1.1vw, 20px);
    height: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-patent .tab-default {
    color: var(--text-brown);
    /* border-left: none; */
    /* 视觉重叠处理，可根据需要调整 */
}

.page-patent .tab-box+.tab-box {
    border-left: none;
}

.page-patent .tab-active {
    background: #E1F7F5;
    color: var(--primary-teal);
}

.page-patent .tab-icon-box {
    width: 100%;
    flex: 1;
    background: var(--primary-teal);
    border-top: 1px solid var(--border-gold);
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-patent .tab-icon-box img {
    width: 60%;
    object-fit: contain;
}

/* Removed footer animation */


.page-patent .content-gallery {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    gap: 2vw;
    padding-right: 4vw;
    padding-bottom: 4vh;
    padding-top: 3vw;
    margin-left: -5vw;
}

.page-patent .card {
    background: #FFFFFF;
    border: 1px solid var(--border-gold);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 0.5vw;
    transition: transform 0.3s ease;
    position: relative;
    box-sizing: border-box;
}

.page-patent .card-side {
    width: calc(25% - 1vw);
    height: 47vh;
}

.page-patent .card-center {
    width: calc(30% - 1vw);
    height: 55vh;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transform: scale(1.05);
    z-index: 2;
}

.page-patent .card img {
    max-width: 100%;
    max-height: calc(100% - 2rem);
    /* 留出 deco 和 title 的空间 */
    object-fit: contain;
    margin: auto 0;
}

.page-patent .card-title {
    font-family: 'Source Han Serif CN', serif;
    font-weight: bold;
    font-size: calc(14/1920*100vw);
    color: var(--text-brown);
    text-align: center;
    margin-top: 1vh;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    overflow: hidden;
    line-height: 1.2;
}

/* Patent Slider Styles */
.patent-gallery-wrapper {
    width: calc(1400 / 1920 * 100vw); 
    overflow: hidden;
    padding: 20px 0; /* Space for shadow/scale */
}

.patent-gallery-grid {
    display: flex;
    align-items: center;
    /* gap: calc(40 / 1920 * 100vw); */
    /* gap handled manually or via margin in loop if needed, but gap is better */
    gap: 2vw;
    width: max-content; /* Allow growing */
    transition: transform 0.5s ease-in-out;
    margin-left: 3.2vw; /* Center the 3 visible items in the wrapper */
    /* We will manage alignment via JS/CSS logic */
}

.page-patent .card {
    width: calc(400 / 1920 * 100vw); /* Base width ~20vw */
    height: 47vh;
    flex-shrink: 0;
    transition: all 0.5s ease;
    transform-origin: center center;
    opacity: 0.8;
    transform: scale(0.9);
    z-index: 1;
    /* Reset specific margins */
    margin: 0 !important;
}

.page-patent .card.active {
    opacity: 1;
    transform: scale(1.1);
    z-index: 10;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    height: 47vh; /* Keep base height, scale handles the size increase */
}

.page-patent .patent-prev,
.page-patent .patent-next {
    z-index: 20;
    position: relative;
}

/* PATENT FOOTER: Flow naturally below content */
/* ---------------- FOOTER ---------------- */
footer {
    background-color: #fff;
    padding: 40px 0 20px;
    width: 100%;
}

.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;
}

.more-link {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: clamp(16px, 1.094vw, 21px);
    color: var(--news-primary-teal);
    cursor: pointer;
    text-align: right;
    margin-top: auto;
}

.more-link2 {
    font-family: 'Source Han Serif CN', serif;
    font-weight: 800;
    font-size: clamp(16px, 1.094vw, 21px);
    color: var(--news-primary-teal);
    cursor: pointer;
    text-align: right;
    margin-top: auto;
}