 :root {
      --brand-red: #AF2F26;
      --brand-dark: #141414;
      --brand-light: #ffffff;
      --brand-gray: #f5f5f5;
      --max-width: 1200px;
      --section-padding-y: 5rem;
      --section-padding-x: 1rem;
      --red: #c62828;
      --text: #333;
      --line: #e0e0e0;
      --bg: #f7f7f7;
      --font-sans: "Inter", "Helvetica Neue", Arial, sans-serif;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: var(--font-sans);
      line-height: 1.5;
      color: #333;
      background: var(--brand-light);
    }
    img { max-width: 100%; height: auto; display: block; }
    h1, h2, h3, h4 { margin-top: 0; font-weight: 600; line-height: 1.2; }
    p { margin-top: 0; margin-bottom: 1rem; }
    ul { margin-top: 0; padding-left: 1.2rem; }

    /* Header */
    .site-header {
      width: 100%;
      position: sticky;
      top: 0;
      z-index: 1000;
      background: rgba(255,255,255,0.95);
      border-bottom: 1px solid #e0e0e0;
      backdrop-filter: blur(8px);
    }
    .header-inner {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 0.25rem 6rem;
    }
    .header-left { display: flex; align-items: center; }
    .header-right { display: flex; align-items: center; gap: 1rem; margin-left: auto; }

    .brand {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      text-decoration: none;
      color: inherit;
    }
    .brand-logo { width: 80px; height: 52px; border-radius: 4px; display: flex; align-items: center; justify-content: center; }
    .brand-name { font-size: 1.05rem; font-weight: 700; color: var(--brand-red); line-height: 1.1; max-width: 14ch; }
    @media (min-width:480px){ .brand-name{font-size:1.15rem;max-width:none;} }
    @media (min-width:768px){ .brand-name{font-size:1.25rem;} }

    /* Globe button */
    .main-site-btn {
      display: flex;
      align-items: center;
      text-decoration: none;
      color: var(--brand-red);
      font-size: 1rem;
      gap: 0.4rem;
    }
    .main-site-btn:hover { opacity:.8; }

    /* Hamburger Button */
    .menu-toggle {
      display: none;
      background: none;
      border: none;
      font-size: 38px;
      cursor: pointer;
      color: var(--brand-red);
    }

    /* Lang toggle & scroll buttons container */
    .header-actions{display:flex;align-items:center;gap:0.5rem;}
    .scroll-btn{
      cursor:pointer;
      border:1px solid var(--brand-red);
      background:var(--brand-light);
      color:var(--brand-red);
      padding:0.35rem 0.75rem;
      font-size:0.85rem;
      border-radius:999px;
      transition:all 0.2s ease;
    }
    .scroll-btn:hover{background:var(--brand-red);color:#fff;}

    /* Single lang toggle button */
    #langToggleBtn{
      cursor:pointer;
      border:1px solid var(--brand-red);
      background:var(--brand-light);
      color:var(--brand-red);
      padding:0.35rem 0.75rem;
      font-size:0.85rem;
      border-radius:999px;
      transition:all 0.2s ease;
    }
    #langToggleBtn.active{background:var(--brand-red);color:#fff;}

    /* ====== Mobile ====== */
    @media (max-width: 768px) {
      .menu-toggle { display: block; }
      .header-inner{padding:0.25rem 1rem;}
      .header-actions {
        display: none;
        flex-direction: column;
        background: #fff;
        position: absolute;
        top: 60px;
        right: 10px;
        width: 220px;
        border: 1px solid #ddd;
        padding: 10px;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        opacity: 0;
        transform: translateY(-10px);
        transition: all 0.3s ease;
      }
      .header-actions.show { display: flex; opacity: 1; transform: translateY(0); }
      .main-site-btn span { display: none; }
    }

    /* Hero */
    .hero{position:relative;width:100%;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#000 url('hero.png') center/cover no-repeat;}
    .sub-hero{position:relative;width:100%;min-height:50vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#000 url('pagetitle.jpg') center/cover no-repeat;}
    .projects-hero{position:relative;width:100%;min-height:50vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#000 url('Picture1.png') center/cover no-repeat;}
    .hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.45);}    
    .sub-hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.10);}   
    .hero-content{position:relative;max-width:800px;padding:2rem;z-index:1;}
    .hero-tagline{font-size:clamp(1.75rem,5vw,3rem);margin-bottom:1rem;font-weight:700;color:#fff;}
    .hero-sub{font-size:1.1rem;max-width:600px;margin:0 auto 2rem;}
    .hero-cta{cursor:pointer;border:none;background:var(--brand-red);color:#fff;padding:0.85rem 1.75rem;font-size:1rem;font-weight:600;border-radius:4px;transition:opacity 0.2s ease;} 
    .hero-cta:hover{opacity:0.85;}

    /* Section base */
    section{padding:var(--section-padding-y) var(--section-padding-x);}  
    .section-inner{max-width:var(--max-width);margin:0 auto;}
    .section-heading{text-align:center;margin-bottom:2.5rem;}
    .section-heading h2{color:var(--brand-dark);font-size:clamp(1.5rem,4vw,2.25rem);}  
    
    /* For specific product info page */
    .product-info-container {
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
            padding: 20px;
    }
    
    .product-info {
            text-align: center;
            font-size: 15px;
            color: #444;
            margin: 15px 0;
            line-height: 1.6;
    }
    .product-info p {
            margin: 6px 0;
    }

    /* About */
    .about-grid{display:grid;grid-template-columns:1fr;gap:2rem;}
    @media(min-width:768px){.about-grid{grid-template-columns:repeat(2,1fr);align-items:start;}}
    .key-points-list{margin:0;padding-left:1.2rem;}
    .key-points-list li{margin-bottom:0.5rem;}

    /* Capabilities */
    .caps-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.5rem;}
    .cap-card{padding:1.5rem;border:1px solid #e0e0e0;border-radius:8px;background:#fff;}
    .cap-card h3{color:var(--brand-red);margin-bottom:0.75rem;font-size:1.1rem;}

    /* Services */
    .services-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.5rem;list-style:none;padding:0;margin:0;}
    .services-list li{background:var(--brand-gray);padding:1.5rem;border-radius:8px;font-weight:600;text-align:center;}

    /* Industries */
    .industries-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.25rem;list-style:none;padding:0;margin:0;text-align:center;}
    .industries-list li{padding:1.25rem;border:1px solid #e0e0e0;border-radius:8px;background:#fff;font-weight:600;}

    .industries {display:flex;flex-wrap:wrap;justify-content:center;gap:50px;padding:10px 10px;}
    .industry-item{text-align:center;width:150px;}
    .industry-item i{font-size:65px;color:#AF2F26;display:block;margin-bottom:8px;}
    .industry-item p{font-size:0.95rem;font-weight:bold;margin:0;line-height:1.2;}

    /* Products */
 	.product-section {
            max-width: 1400px;
            margin: 50px auto;
        }

        .section-title {
            font-size: 24px;
            margin-bottom: 20px;
            border-left: 4px solid var(--brand-red);
            padding-left: 10px;
            color: var(--brand-red);
        }

        .product-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 15px;
        }

        .product {
            text-align: center;
            border: 1px solid #eee;
            padding: 5px;
        }
        
        .product img {
           width: 100%;
           height: 280px;        /* 控制图片展示大小 */
           object-fit: cover; /* 保证不变形 */
        }

        .product-name {
            margin-top: 10px;
            font-size: 18px;
        }

    /* Key Products */
    .kps-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.5rem;list-style:none;padding:0;margin:0;text-align:center;}
    .kps-items li{padding:1.5rem;border:1px solid #e0e0e0;border-radius:8px;background:#fff;font-weight:600;}

    /* (Legacy) Past Projects card styles - kept in case you want fallback but not used now */
    .timeline-container{display:none;}

    /* Mission */
    .mission-box{max-width:800px;margin:0 auto;padding:2rem;border-left:4px solid var(--brand-red);background:var(--brand-gray);}

    /* Contact */
    .contact-wrapper{max-width:700px;margin:0 auto;text-align:center;}
    .contact-details{margin-bottom:2rem;font-size:1.05rem;}
    .contact-details p{margin:0.25rem 0;}
    .social-icons{display:flex;justify-content:center;gap:1rem;margin-top:1rem;}
    .social-icons a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--brand-red);border-radius:50%;color:var(--brand-red);text-decoration:none;font-size:0.95rem;transition:all 0.2s;} 
    .social-icons a:hover{background:var(--brand-red);color:#fff;}

    /* QR Section */
    .qr-box{margin-top:2rem;}
    .qr-box canvas,.qr-box img{margin:0 auto;}
    .qr-box small{display:block;margin-top:0.5rem;color:#666;}

    /* Footer */
    .site-footer{text-align:center;padding:2rem 1rem;font-size:0.85rem;color:#666;background:#fafafa;border-top:1px solid #e0e0e0;}

    /* Utility */
    .visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}

    /* Slide-in animation */
    .animate-slidein {opacity: 0;transform: translateY(40px);transition: opacity 0.6s ease-out, transform 0.6s ease-out;}
    .animate-slidein.animate-visible {opacity: 1;transform: translateY(0);}

     /* ========== Timeline Styles ========== */

    /* 横向时间线容器 */
    .pp-horiz-inner {
      position: relative;
      display: flex;
      justify-content: space-between;
      align-items: center;
      width: 100%;                     /* 占满容器 */
      max-width: var(--max-width);
      padding: 0 3rem;
      height: 100px;
    }
    /* 横线 */
    .pp-horiz-inner::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      height: 4px;
      background: var(--brand-red);
      transform: translateY(-50%);
      z-index: 0;
    }
    /* 时间点按钮 */
    .pp-point {
      position: relative;
      flex: 0 0 auto;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--brand-red);
      border: 3px solid #fff;
      cursor: pointer;
      z-index: 1;
      outline: none;
    }
    .pp-point:focus-visible {
      box-shadow: 0 0 0 3px rgba(175, 47, 38, 0.35);
    }
    /* 时间点标签 */
    .pp-label {
      position: absolute;
      top: calc(100% + 8px);
      left: 50%;
      transform: translateX(-50%);
      font-size: 0.8rem;
      font-weight: bold;
      color: var(--brand-red);
      white-space: nowrap;
      pointer-events: none;
    }
    /* 悬浮内容框 */
    .pp-tooltip {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    transform: translateX(-50%) translateY(0);
    background: var(--brand-red);
    color: #fff;
    padding: 0.6rem 0.9rem;
    border-radius: 6px;
    font-size: 0.85rem;
    line-height: 1.4;
    max-width: min(90vw, 500px)!important;
    width: max-content;
    white-space: normal;
    word-break: break-word;
    opacity: 0;
    overflow: visible;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    z-index: 2;
    }
    .pp-tooltip strong {
      display: block;
      margin-bottom: 0.25rem;
      color: #fff;
      font-size: 0.9rem;
    }
    .pp-tooltip::after {
      content: '';
      position: absolute;
      top: 100%;
      left: 50%;
      margin-left: -6px;
      border-width: 6px;
      border-style: solid;
      border-color: var(--brand-red) transparent transparent transparent;
    }
    /* hover和focus显示悬浮内容 */
    .pp-point:hover .pp-tooltip,
    .pp-point:focus .pp-tooltip,
    .pp-point.pp-active .pp-tooltip {
      opacity: 1;
      visibility: visible;
      transform: translateX(-50%) translateY(-6px);
    }

    /* ========== 纵向时间线（小屏幕） ========== */
    @media (max-width: 800px) {
      .pp-horiz-inner {
        flex-direction: column;
        align-items: flex-start;
	min-width: auto; 
        gap: 2rem;
        height: auto;
        padding-left: 2rem;
        border-left: 4px solid var(--brand-red);
      }
      .pp-point {
        position: relative;
        width: 100%;
        height: auto;
        padding: 0;
        margin-left: 0;
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        border: none;
        background: none;
        cursor: default;
      }
      /* 圆点用伪元素 */
      .pp-point::before {
        content: '';
        flex: 0 0 10px;
        height: 10px;
        border-radius: 50%;
        background: var(--brand-red);
        border: 3px solid #fff;
        margin-top: 4px;
      }
      .pp-label {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        font-size: 1rem;
        font-weight: bold;
        color: var(--brand-red);
        white-space: nowrap;
        flex-shrink: 0;
        min-width: 60px;
      }

      .pp-tooltip {
        position: relative;
        bottom: auto;
        left: auto;
        transform: none;
        background: var(--brand-gray);
        color: #333;
        padding: 1rem;
        border-radius: 6px;
        max-width: 600px;
        width: auto;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto;
        box-shadow: none;
        margin-top: 4px;
      }
      .pp-tooltip::after {
        display: none;
      }

	.pp-horiz-inner::before {
    	content: none;
  	}

	.pp-tooltip strong {
    	color: #000 !important;
  	}

      /* 关闭悬浮效果 */
      .pp-point:hover .pp-tooltip,
      .pp-point:focus .pp-tooltip,
      .pp-point.pp-active .pp-tooltip {
        opacity: 1;
        visibility: visible;
        transform: none;
      }
    }

/* Certifications Section */
.certifications {
  text-align: center;
  padding: 20px 0;
  background-color: var(--brand-gray); /* 和 contact 背景保持一致 */
}

.certifications p {
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 1.2rem;
  color: #333; /* 文字颜色可根据主题调整 */
}

.cert-logos {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.cert-logos img {
  height: 60px;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.cert-logos img:hover {
  transform: scale(1.1);
  filter: brightness(1.1);
}

 /* Projects */
/* The actual timeline (the vertical ruler) */
/*.timeline {*/
/*  position: relative;*/
/*  max-width: 1200px;*/
/*  margin: auto;*/
/*  padding: 0 20px;*/

/*}*/

/* The actual timeline (the vertical ruler) */
/*.timeline::after {*/
/*  content: '';*/
/*  position: absolute;*/
/*  width: 4px;*/
/*  background-color: var(--line);*/
/*  top: 0;*/
/*  bottom: 0;*/
/*  left: 50%;*/
/*  margin-left: -3px;*/
/*}*/

/* Container around content */
/*.container {*/
/*  padding: 10px 40px;*/
/*  position: relative;*/
/*  background-color: inherit;*/
/*  width: 50%;*/
/*}*/

/* The circles on the timeline */
/*.container::after {*/
/*  content: '';*/
/*  position: absolute;*/
/*  width: 12px;*/
/*  height: 12px;*/
/*  right: -8px;*/
/*  background-color: var(--red);*/
/*  border: 4px solid var(--red);*/
/*  top: 15px;*/
/*  border-radius: 50%;*/
/*  z-index: 1;*/
/*}*/

/* Place the container to the left */
/*.left {*/
/*  left: 0;*/
/*}*/

/* Place the container to the right */
/*.right {*/
/*  left: 50%;*/
/*}*/

/* Add arrows to the left container (pointing right) */
/*.left::before {*/
/*  content: " ";*/
/*  height: 0;*/
/*  position: absolute;*/
/*  top: 22px;*/
/*  width: 0;*/
/*  z-index: 1;*/
/*  right: 30px;*/
/*  border: medium solid white;*/
/*  border-width: 10px 0 10px 10px;*/
/*  border-color: transparent transparent transparent white;*/
/*}*/

/* Add arrows to the right container (pointing left) */
/*.right::before {*/
/*  content: " ";*/
/*  height: 0;*/
/*  position: absolute;*/
/*  top: 22px;*/
/*  width: 0;*/
/*  z-index: 1;*/
/*  left: 30px;*/
/*  border: medium solid white;*/
/*  border-width: 10px 10px 10px 0;*/
/*  border-color: transparent white transparent transparent;*/
/*}*/

/* Fix the circle for containers on the right side */
/*.right::after {*/
/*  left: -12px;*/
/*}*/

/* The actual content */
/*.content {*/
/*  padding: 20px 30px;*/
/*  background-color: white;*/
/*  position: relative;*/
/*  border-radius: 6px;*/
/*  box-shadow: 0 4px 12px rgba(0,0,0,0.08);*/
/*}*/
  
/*.content h2 {*/
/*  color: var(--red);*/
/*  margin-bottom: 2px;*/
/*  font-size: 22px;*/

/*}*/
/* .content p {*/
/*  font-size: 15px;*/
/*  line-height: 1.6;*/
/*}*/


/* Media queries - Responsive timeline on screens less than 600px wide */
/*@media screen and (max-width: 600px) {*/
  /* Place the timelime to the left */
/*  .timeline::after {*/
/*  left: 31px;*/
/*  }*/
  
  /* Full-width containers */
/*  .container {*/
/*  width: 100%;*/
/*  padding-left: 70px;*/
/*  padding-right: 25px;*/
/*  }*/
  
  /* Make sure that all arrows are pointing leftwards */
/*  .container::before {*/
/*  left: 60px;*/
/*  border: medium solid white;*/
/*  border-width: 10px 10px 10px 0;*/
/*  border-color: transparent white transparent transparent;*/
/*  }*/

  /* Make sure all circles are at the same spot */
/*  .left::after, .right::after {*/
/*  left: 0px;*/
/*  }*/
  
  /* Make all right containers behave like the left ones */
/*  .right {*/
/*  left: 0%;*/
/*  }*/
/*}*/

.form-section { display: flex; justify-content: center; align-items: center; min-height: 90vh; padding: 20px;}
.contact-form { background-color: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); max-width: 500px; width: 100%; }
    .contact-form h2 { text-align: center; margin-bottom: 25px; color:var(--brand-dark); font-size: clamp(1.25rem, 3.5vw, 2rem);}
    .form-group { margin-bottom: 15px; }
    .form-group label { display: block; margin-bottom: 5px; font-weight: bold; color: #333; }
    .form-group input, .form-group textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 8px; font-size: 14px; transition: border-color 0.3s; }
    .form-group input:focus, .form-group textarea:focus { border-color: #AF2F26; outline: none; }
    .form-group textarea { resize: vertical; min-height: 120px; }
    .submit-btn { width: 100%; padding: 14px; background-color: #AF2F26; color: #fff; border: none; border-radius: 8px; font-size: 16px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; }
    .submit-btn:hover { background-color: #922221; }
    .success-message, .error-message { text-align: center; margin-top: 15px; font-weight: bold; }
    .success-message { color: green; }
    .error-message { color: red; }
    @media (max-width: 600px) { .contact-form { padding: 20px; } }
    
    
/* ===== Intro ===== */
.page-intro {
  max-width: 1200px;
  margin: 80px auto 60px;
  padding: 0 20px;
}
.page-intro h1 {
  font-size: 36px;
  margin-bottom: 10px;
justify-content:center;
text-align:center;
}

/* ===== Layout ===== */
.projects-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 60px;
  max-width: 1600px;
  margin: 50px auto 120px;
  padding: 0 20px;
}

/* ===== Timeline ===== */
.timeline {
  position: sticky;
  top: 120px;
  align-self: start;
}

.timeline h2 {
  font-size: 22px;
  margin-bottom: 24px;
}

.timeline-list {
  position: relative;
  padding-left: 20px;
}
.timeline-list::before {
  content: "";
  position: absolute;
  left: 0px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #ddd;
}

.timeline-item {
  position: relative;
  margin-bottom: 40px;
}
.timeline-item::before {
  content: "";
  position: absolute;
  left: -25px;
  top: 4px;
  width: 12px;
  height: 12px;
  background: var(--brand-red);
  border-radius: 50%;
}

.timeline-year {
  font-weight: 600;
  margin-bottom: 6px;
}
.timeline-item p {
  margin: 4px 0;
  color: var(--text-muted);
  font-size: 14px;
}

/* ===== Gallery ===== */
.gallery {
  column-count: 3;
  column-gap: 20px;
}

.gallery img {
  width: 100%;
  display: block;
  margin-bottom: 20px;
  border-radius: 6px;
  break-inside: avoid;
  background: #ddd;
}

/* ===== Responsive ===== */
@media (max-width: 1200px) {
  .gallery {
    column-count: 2;
  }
}

@media (max-width: 768px) {
  .projects-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .timeline {
    position: relative;
    top: auto;
  }

  .gallery {
    column-count: 1;
  }
}


