﻿/* css/style.css */

/* =========================================
   1. SETUP & VARIABLES
   ========================================= */
:root {
   /* MÀU SẮC CHỦ ĐẠO (Corporate Palette) */
   --hh-green: #005f4b; /* Xanh ngọc lục bảo đậm */
   --hh-orange: #d85c27; /* Cam đồng sang trọng */
   --hh-gold: #c5a059; /* Vàng Gold điểm nhấn */

   --text-main: #1a1a1a;
   --text-gray: #555;
   --bg-light: #f4f6f8; /* Nền xám xanh rất nhạt */
   --white: #ffffff;
   /* FONT CHỮ */
   --font-head: 'Montserrat', sans-serif; /* Tiêu đề mạnh mẽ */
   --font-body: 'Roboto', sans-serif; /* Nội dung dễ đọc */
}

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: var(--font-body);
   color: var(--text-main);
   line-height: 1.6;
   overflow-x: hidden;
   background: var(--white);
}

h1, h2, h3, h4, h5 {
   font-family: var(--font-head);
   font-weight: 700;
   color: var(--hh-green);
}

.text-accent {
   color: var(--hh-orange);
}

a {
   text-decoration: none;
   color: inherit;
   transition: 0.3s;
}

ul {
   list-style: none;
}

img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
}

/* Animation Reveal */
.reveal {
   opacity: 0;
   transform: translateY(40px);
   transition: all 1s ease;
}

   .reveal.active {
      opacity: 1;
      transform: translateY(0);
   }

/* =========================================
   2. STOCK TICKER
   ========================================= */
.stock-ticker {
   background: #002b22;
   color: white;
   font-size: 12px;
   padding: 8px 0;
   display: flex;
   justify-content: flex-end;
   padding-right: 50px;
   border-bottom: 1px solid rgba(255,255,255,0.1);
}

.stock-item {
   margin-left: 20px;
   display: flex;
   align-items: center;
   gap: 5px;
   font-family: var(--font-body);
}

.stock-up {
   color: #00e676;
}

.stock-code {
   font-weight: bold;
   color: var(--hh-gold);
}

/* =========================================
   3. HEADER & MENU
   ========================================= */
header {
   position: sticky;
   top: 0;
   width: 100%;
   z-index: 1000;
   padding: 0 50px;
   height: 85px;
   display: flex;
   justify-content: space-between;
   align-items: center;
   background: rgba(255, 255, 255, 0.98);
   box-shadow: 0 4px 20px rgba(0,0,0,0.05);
   border-bottom: 3px solid var(--hh-green);
}

.logo-container {
   height: 55px;
   z-index: 1001;
}

   .logo-container img {
      height: 100%;
      width: auto;
   }

/* Mobile Menu Button (Mặc định ẩn trên PC) */
.menu-toggle {
   display: none;
   font-size: 28px;
   color: var(--hh-green);
   cursor: pointer;
   z-index: 1002;
}

.nav-container {
   display: flex;
   align-items: center;
   height: 100%;
}

.main-menu {
   display: flex;
   gap: 30px;
   height: 100%;
   align-items: center;
}

   .main-menu > li {
      position: relative;
      height: 100%;
      display: flex;
      align-items: center;
   }

      /* Menu Cấp 1 */
      .main-menu > li > a {
         color: var(--hh-green);
         font-weight: 700;
         font-size: 15px;
         text-transform: uppercase;
         letter-spacing: 0.5px;
         padding: 10px 0;
         position: relative;
         display: flex;
         align-items: center;
         gap: 5px;
      }

         .main-menu > li > a i {
            font-size: 11px;
            margin-top: -2px;
            transition: 0.3s;
         }

      .main-menu > li:hover > a i {
         transform: rotate(180deg);
         color: var(--hh-orange);
      }

      .main-menu > li > a::before {
         content: '';
         position: absolute;
         bottom: 0;
         left: 0;
         width: 0;
         height: 3px;
         background: var(--hh-orange);
         transition: 0.3s;
      }

      .main-menu > li:hover > a::before {
         width: 100%;
      }

/* Menu Cấp 2 (Dropdown) */
.submenu {
   position: absolute;
   top: 100%;
   left: -20px;
   width: 280px;
   background: var(--hh-green);
   box-shadow: 0 10px 30px rgba(0,0,0,0.15);
   opacity: 0;
   visibility: hidden;
   transform: translateY(15px);
   transition: 0.3s ease;
   border-top: 3px solid var(--hh-orange);
   padding: 10px 0;
   border-radius: 0 0 5px 5px;
}

.main-menu > li:hover .submenu {
   opacity: 1;
   visibility: visible;
   transform: translateY(0);
}

.submenu li {
   border-bottom: 1px solid rgba(255,255,255,0.1);
}

.submenu a {
   display: block;
   padding: 12px 25px;
   font-size: 14px;
   color: white;
   font-weight: 500;
   text-transform: none;
   transition: 0.2s;
}

   .submenu a:hover {
      background: rgba(255,255,255,0.1);
      color: var(--hh-orange);
      padding-left: 30px;
   }

/* Language Switcher */
.lang-switch {
   margin-left: 30px;
   display: flex;
   gap: 10px;
   align-items: center;
   border-left: 1px solid #ddd;
   padding-left: 20px;
}

.flag-icon {
   width: 24px;
   cursor: pointer;
   transition: 0.3s;
   border-radius: 2px;
}

   .flag-icon:hover {
      transform: scale(1.1);
   }

.flag-inactive {
   opacity: 0.5;
   filter: grayscale(100%);
}

   .flag-inactive:hover {
      opacity: 1;
      filter: grayscale(0%);
   }

/* =========================================
   4. HERO SLIDER
   ========================================= */
.hero-slider {
   position: relative;
   height: 85vh;
   overflow: hidden;
}

.slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity 1s ease;
   z-index: 1;
}

   .slide.active {
      opacity: 1;
      z-index: 2;
   }

.slide-bg {
   width: 100%;
   height: 100%;
   background-position: center;
   background-size: cover;
   transform: scale(1);
   transition: transform 10s ease;
}

.slide.active .slide-bg {
   transform: scale(1.05);
}

.slide-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to right, rgba(0,40,30,0.85) 0%, rgba(0,0,0,0.2) 60%);
   display: flex;
   align-items: center;
   padding: 0 80px;
}

.slide-content {
   max-width: 800px;
   color: white;
   border-left: 6px solid var(--hh-orange);
   padding-left: 40px;
}

   .slide-content h1 {
      font-size: 56px;
      line-height: 1.2;
      margin-bottom: 20px;
      color: white;
      text-transform: uppercase;
      font-weight: 800;
      opacity: 0;
      transform: translateX(30px);
      transition: 0.8s 0.3s;
   }

   .slide-content p {
      font-size: 18px;
      font-weight: 300;
      opacity: 0.9;
      margin-bottom: 40px;
      opacity: 0;
      transform: translateX(30px);
      transition: 0.8s 0.5s;
   }

.slide.active h1, .slide.active p {
   opacity: 1;
   transform: translateX(0);
}

.btn-premium {
   display: inline-block;
   padding: 15px 40px;
   background: var(--hh-orange);
   color: white;
   font-size: 14px;
   font-weight: 700;
   text-transform: uppercase;
   border-radius: 4px;
   transition: 0.3s;
   opacity: 0;
   transform: translateY(20px);
   transition: opacity 0.8s 0.7s, transform 0.8s 0.7s;
}

.slide.active .btn-premium {
   opacity: 1;
   transform: translateY(0);
}

.btn-premium:hover {
   background: #bf4918;
   transform: translateY(-2px);
}

.slider-controls {
   position: absolute;
   bottom: 50px;
   right: 80px;
   z-index: 10;
   display: flex;
   gap: 15px;
}

.control-btn {
   width: 50px;
   height: 50px;
   border: 2px solid rgba(255,255,255,0.5);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   cursor: pointer;
   backdrop-filter: blur(5px);
   transition: 0.3s;
}

   .control-btn:hover {
      background: var(--hh-orange);
      border-color: var(--hh-orange);
   }

/* =========================================
   5. ABOUT SECTION (Layered)
   ========================================= */
.section-padding {
   padding: 100px 50px;
}

.bg-light {
   background: var(--bg-light);
}

.about-wrapper {
   position: relative;
   max-width: 1400px;
   margin: 0 auto;
   display: flex;
   align-items: center;
}

.about-img-box {
   flex: 6;
   height: 600px;
   position: relative;
   z-index: 1;
   box-shadow: 0 20px 50px rgba(0,0,0,0.15);
   border-radius: 8px;
   overflow: hidden;
}

.about-content-box {
   flex: 5;
   background: white;
   padding: 60px;
   z-index: 2;
   margin-left: -100px;
   box-shadow: 0 15px 40px rgba(0,0,0,0.1);
   border-radius: 8px;
   position: relative;
}

   .about-content-box::before {
      content: '';
      position: absolute;
      top: 0;
      left: 60px;
      width: 80px;
      height: 5px;
      background: var(--hh-orange);
   }

.section-subtitle {
   font-size: 14px;
   color: var(--hh-orange);
   font-weight: 700;
   text-transform: uppercase;
   margin-bottom: 15px;
   letter-spacing: 2px;
   display: block;
}

.section-title {
   font-size: 42px;
   color: var(--hh-green);
   margin-bottom: 30px;
   text-transform: uppercase;
   line-height: 1.25;
}

.about-stats {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 30px;
   margin-top: 40px;
   border-top: 1px solid #eee;
   padding-top: 30px;
}

.a-stat h4 {
   font-size: 48px;
   color: var(--hh-green);
   line-height: 1;
   margin-bottom: 5px;
}

/* =========================================
   6. FIELDS (Mosaic Grid)
   ========================================= */
.fields-section {
   padding: 100px 50px;
   text-align: center;
}

.center-header {
   margin-bottom: 60px;
   max-width: 800px;
   margin-left: auto;
   margin-right: auto;
}

.mosaic-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   grid-template-rows: repeat(2, 300px);
   gap: 20px;
   max-width: 1600px;
   margin: 0 auto;
}

.mosaic-item {
   position: relative;
   overflow: hidden;
   border-radius: 4px;
   cursor: pointer;
}

   .mosaic-item.large {
      grid-column: span 2;
      grid-row: span 2;
   }

   .mosaic-item.wide {
      grid-column: span 2;
   }

   .mosaic-item img {
      transition: transform 0.8s ease;
      width: 100%;
      height: 100%;
   }

   .mosaic-item:hover img {
      transform: scale(1.05);
   }

.mosaic-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to top, rgba(0,95,75,0.9), transparent 70%);
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   padding: 30px;
   text-align: left;
}

   .mosaic-overlay h3 {
      color: white;
      font-size: 26px;
      margin-bottom: 5px;
      text-transform: uppercase;
   }

   .mosaic-overlay span {
      color: var(--hh-orange);
      font-size: 13px;
      font-weight: 800;
      text-transform: uppercase;
      background: white;
      padding: 2px 8px;
      display: inline-block;
      width: fit-content;
      border-radius: 2px;
   }

/* =========================================
   7. NEWS (Magazine Layout)
   ========================================= */
.news-section {
   background: var(--bg-light);
   padding: 100px 50px;
}

.news-layout {
   display: grid;
   grid-template-columns: 1.2fr 1fr;
   gap: 40px;
   max-width: 1400px;
   margin: 0 auto;
}

.news-featured {
   position: relative;
   border-radius: 8px;
   overflow: hidden;
   background: white;
   box-shadow: 0 10px 30px rgba(0,0,0,0.05);
   display: flex;
   flex-direction: column;
   height: 100%;
}

   .news-featured img {
      height: 400px;
      flex-shrink: 0;
   }

.feat-content {
   padding: 40px;
   flex-grow: 1;
   display: flex;
   flex-direction: column;
   justify-content: center;
}

.news-meta {
   color: var(--hh-orange);
   font-weight: 700;
   font-size: 13px;
   text-transform: uppercase;
   margin-bottom: 10px;
   display: block;
}

.feat-title {
   font-size: 28px;
   margin-bottom: 15px;
   color: var(--hh-green);
   line-height: 1.3;
}

.news-list {
   display: flex;
   flex-direction: column;
   gap: 20px;
   height: 100%;
   justify-content: space-between;
}

.news-item-small {
   display: flex;
   gap: 20px;
   background: white;
   padding: 15px;
   border-radius: 8px;
   align-items: center;
   transition: 0.3s;
   border-left: 4px solid transparent;
   flex: 1;
}

   .news-item-small:hover {
      transform: translateX(5px);
      border-left-color: var(--hh-orange);
      box-shadow: 0 5px 15px rgba(0,0,0,0.05);
   }

.small-thumb {
   width: 120px;
   height: 90px;
   border-radius: 4px;
   overflow: hidden;
   flex-shrink: 0;
}

.small-info h4 {
   font-size: 15px;
   margin-bottom: 5px;
   color: var(--text-main);
   line-height: 1.4;
}

/* =========================================
   8. PARTNER SLIDER (Marquee)
   ========================================= */
.partners-section {
   padding: 60px 0;
   background: white;
   overflow: hidden;
}

.partner-header {
   text-align: center;
   margin-bottom: 40px;
}

.partner-track {
   display: flex;
   gap: 50px;
   width: max-content;
   animation: scrollPartner 30s linear infinite;
}

.partner-logo {
   width: 160px;
   height: 90px;
   border: 1px solid #eee;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 8px;
   filter: grayscale(100%);
   opacity: 0.6;
   transition: 0.3s;
   flex-shrink: 0;
}

   .partner-logo:hover {
      filter: grayscale(0);
      opacity: 1;
      border-color: var(--hh-orange);
      transform: translateY(-5px);
   }

   .partner-logo img {
      max-width: 70%;
      max-height: 70%;
      object-fit: contain;
   }

@keyframes scrollPartner {
   0% {
      transform: translateX(0);
   }

   100% {
      transform: translateX(calc(-160px * 6 - 50px * 6));
   }
   /* Tự động tính toán độ dài cuộn */
}

/* =========================================
   9. CONTACT FORM & MAP
   ========================================= */
.contact-wrap {
   display: flex;
   background: var(--hh-green);
}

.contact-form-box {
   flex: 1;
   padding: 80px;
   color: white;
}

   .contact-form-box h2 {
      color: white;
      margin-bottom: 10px;
      font-size: 32px;
      text-transform: uppercase;
   }

.contact-desc {
   opacity: 0.8;
   margin-bottom: 30px;
}

.form-row {
   display: flex;
   gap: 20px;
   margin-bottom: 20px;
}

.c-input, .c-textarea {
   width: 100%;
   padding: 15px;
   background: rgba(255,255,255,0.1);
   border: 1px solid rgba(255,255,255,0.2);
   color: white;
   border-radius: 4px;
   font-family: inherit;
}

   .c-input::placeholder, .c-textarea::placeholder {
      color: rgba(255,255,255,0.6);
   }

   .c-input:focus, .c-textarea:focus {
      outline: none;
      border-color: var(--hh-orange);
      background: rgba(255,255,255,0.15);
   }

.c-textarea {
   height: 120px;
   resize: none;
}

.btn-submit {
   width: 100%;
   padding: 15px;
   background: var(--hh-orange);
   color: white;
   border: none;
   font-weight: 700;
   text-transform: uppercase;
   cursor: pointer;
   transition: 0.3s;
   margin-top: 10px;
}

   .btn-submit:hover {
      background: #bf4918;
   }

.map-box {
   flex: 1;
   min-height: 500px;
}

   .map-box iframe {
      width: 100%;
      height: 100%;
      border: 0;
      filter: grayscale(20%);
   }

/* =========================================
   10. FOOTER
   ========================================= */
footer {
   background: #0f1c18;
   color: #aaa;
   padding: 80px 50px 30px;
   font-family: var(--font-body);
   border-top: 5px solid var(--hh-green);
}

.footer-top {
   display: grid;
   grid-template-columns: 2fr 1fr 1fr 1fr;
   gap: 60px;
   max-width: 1400px;
   margin: 0 auto 60px;
}

.f-logo {
   font-family: var(--font-head);
   font-size: 23px;
   color: white;
   margin-bottom: 20px;
   display: block;
   font-weight: 800;
}

.f-title {
   color: white;
   font-size: 15px;
   font-weight: 700;
   text-transform: uppercase;
   margin-bottom: 25px;
   border-left: 3px solid var(--hh-orange);
   padding-left: 15px;
}

.f-links a {
   font-size: 14px;
   transition: 0.3s;
   display: block;
   margin-bottom: 12px;
}

   .f-links a:hover {
      color: var(--hh-orange);
      padding-left: 5px;
   }

.footer-bottom {
   border-top: 1px solid #333;
   padding-top: 30px;
   display: flex;
   justify-content: space-between;
   font-size: 13px;
}

/* =========================================
   11. BANNER FOR SUB-PAGES
   ========================================= */
.page-banner {
   height: 350px;
   background-size: cover;
   background-position: center;
   position: relative;
   margin-top: 0; /* Tránh header che mất */
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
}

.page-banner-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to bottom, rgba(0, 95, 75, 0.7), rgba(0, 43, 34, 0.5));
}

.page-banner-content {
   position: relative;
   z-index: 2;
   color: white;
}

.page-banner h1 {
   color: white;
   font-size: 42px;
   margin-bottom: 10px;
   border: none;
   padding: 0;
}

.breadcrumb {
   color: rgba(255,255,255,0.8);
   font-size: 14px;
   font-weight: 500;
}

   .breadcrumb span {
      margin: 0 5px;
      color: var(--hh-orange);
   }

/* =========================================
   12. RESPONSIVE (MOBILE UPDATE)
   ========================================= */
@media (max-width: 1024px) {
   .about-wrapper {
      flex-direction: column;
   }

   .about-img-box {
      width: 100%;
      height: 400px;
      margin-bottom: -50px;
   }

   .about-content-box {
      margin-left: 0;
      width: 95%;
      padding: 40px;
   }

   .mosaic-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .news-layout {
      grid-template-columns: 1fr;
   }

   .contact-wrap {
      flex-direction: column;
   }
}

@media (max-width: 768px) {
   /* -- Header & Menu Mobile Fix -- */
   header {
      padding: 0 20px;
      justify-content: flex-start; /* Căn trái để nút menu nằm đầu */
   }

   .menu-toggle {
      display: block;
      margin-right: auto; /* Đẩy logo ra giữa nếu cần, nhưng logo dùng absolute */
   }

   .logo-container {
      position: absolute;
      left: 50%;
      transform: translateX(-50%); /* Căn giữa tuyệt đối */
   }

   .nav-container {
      position: fixed;
      top: 85px;
      left: -100%; /* Giấu sang TRÁI */
      right: auto;
      width: 80%;
      height: calc(100vh - 85px);
      background: white;
      flex-direction: column;
      align-items: flex-start;
      padding: 30px;
      transition: 0.4s ease;
      box-shadow: 5px 0 20px rgba(0,0,0,0.1);
      overflow-y: auto;
   }

      .nav-container.active {
         left: 0;
      }
   /* Trượt ra từ trái */

   .main-menu {
      flex-direction: column;
      width: 100%;
      align-items: flex-start;
      gap: 0;
   }

      .main-menu > li {
         width: 100%;
         height: auto;
         border-bottom: 1px solid #eee;
         display: block;
      }

         .main-menu > li > a {
            padding: 15px 0;
            justify-content: space-between;
            width: 100%;
         }

   /* Submenu Mobile */
   .submenu {
      position: static;
      visibility: visible;
      opacity: 1;
      transform: none;
      width: 100%;
      box-shadow: none;
      border: none;
      padding: 0 0 10px 20px;
      display: none;
      background: #fff;
   }

      .submenu a {
         color: #555;
         padding: 10px 0;
      }

   .main-menu > li.active .submenu {
      display: block;
   }

   .main-menu > li.active > a {
      color: var(--hh-orange);
   }

   /* -- Other Sections Mobile -- */
   .hero-slider {
      height: 500px;
   }

   .slide-content h1 {
      font-size: 32px;
   }

   .mosaic-grid {
      grid-template-columns: 1fr;
   }

   .mosaic-item.large, .mosaic-item.wide {
      grid-column: auto;
      grid-row: auto;
      height: 250px;
   }

   .footer-top {
      grid-template-columns: 1fr;
      gap: 40px;
   }

   .stock-ticker {
      display: none;
   }

   .contact-form-box {
      padding: 40px 20px;
   }

   .map-box {
      height: 350px;
   }

   .lang-switch {
      margin: 20px 0 0 0;
      border: none;
      padding: 0;
   }
}
/* =========================================
   13. TIMELINE PAGE STYLES (New)
   ========================================= */
.timeline-wrapper {
   position: relative;
   max-width: 900px;
   margin: 60px auto 0;
   padding-left: 30px; /* Chừa chỗ cho đường kẻ dọc */
}

/* Đường kẻ dọc màu xanh */
.timeline-line {
   position: absolute;
   top: 0;
   bottom: 0;
   left: 18px; /* Căn chỉnh vị trí */
   width: 2px;
   background: var(--hh-green);
   opacity: 0.3;
}

.timeline-item {
   position: relative;
   margin-bottom: 30px;
   padding-left: 40px;
}

/* Chấm tròn trên timeline */
.timeline-dot {
   position: absolute;
   left: -19px; /* Căn chỉnh để nằm đè lên đường kẻ */
   top: 0;
   width: 16px;
   height: 16px;
   background: white;
   border: 3px solid var(--hh-green);
   border-radius: 50%;
   z-index: 2;
   transition: 0.3s;
}

/* Khi item active (mở ra) thì chấm tròn đổi màu cam */
.timeline-item.active .timeline-dot {
   background: var(--hh-orange);
   border-color: var(--hh-orange);
   box-shadow: 0 0 0 4px rgba(216, 92, 39, 0.2);
}

/* Header: Năm và Tiêu đề */
.timeline-header {
   cursor: pointer;
   display: flex;
   align-items: flex-start;
   gap: 20px;
}

.t-year {
   font-family: var(--font-head);
   font-size: 28px;
   font-weight: 800;
   color: var(--hh-green);
   line-height: 1;
   min-width: 80px;
}

.t-title {
   font-size: 20px;
   margin: 0;
   color: var(--text-main);
   flex: 1;
   transition: 0.3s;
   line-height: 1.3;
}

.timeline-item.active .t-title {
   color: var(--hh-orange);
}

/* Icon cộng/trừ */
.t-icon {
   font-size: 16px;
   color: #ccc;
   transition: 0.3s;
   margin-top: 5px;
}

.timeline-item.active .t-icon {
   transform: rotate(45deg); /* Xoay thành dấu X */
   color: var(--hh-orange);
}

/* Body: Nội dung chi tiết (Mặc định ẩn) */
.timeline-body {
   max-height: 0;
   overflow: hidden;
   transition: max-height 0.5s ease-out;
}

   .timeline-body img {
      box-shadow: none !important;
      max-width: 300px;
      height: auto !important;
   }

.t-content {
   padding-top: 15px;
   color: var(--text-gray);
   font-size: 15px;
   line-height: 1.6;
}

   .t-content img {
      margin-top: 15px;
      border-radius: 8px;
      box-shadow: 0 5px 15px rgba(0,0,0,0.1);
      max-height: 300px;
      width: auto;
      max-width: 100%;
   }

/* Responsive Timeline */
@media (max-width: 768px) {
   .timeline-header {
      flex-direction: column;
      gap: 5px;
   }

   .t-year {
      font-size: 24px;
      color: var(--hh-orange);
   }

   .t-title {
      font-size: 18px;
   }

   .t-icon {
      position: absolute;
      right: 0;
      top: 0;
   }

   .timeline-wrapper {
      padding-left: 20px;
   }

   .timeline-dot {
      left: -29px;
   }

   .timeline-line {
      left: -3px;
   }
}

/* =========================================
   14. ABOUT PAGE SPECIFIC (NEW)
   ========================================= */
/* Vision/Mission Cards */
.vision-section {
   padding: 80px 50px;
   background: white;
}

.vision-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
   max-width: 1200px;
   margin: 0 auto;
}

.vision-card {
   background: var(--bg-light);
   padding: 40px 30px;
   text-align: center;
   border-radius: 8px;
   transition: 0.3s;
   border-bottom: 3px solid transparent;
}

   .vision-card:hover {
      transform: translateY(-10px);
      box-shadow: 0 10px 30px rgba(0,0,0,0.1);
      border-bottom-color: var(--hh-orange);
   }

.v-icon {
   font-size: 40px;
   color: var(--hh-green);
   margin-bottom: 20px;
}

.vision-card h3 {
   font-size: 20px;
   margin-bottom: 15px;
   color: var(--text-main);
   text-transform: uppercase;
}

.vision-card p {
   font-size: 15px;
   color: var(--text-gray);
   line-height: 1.6;
}

/* Leadership Team */
.leadership-section {
   padding: 80px 50px;
   background: var(--bg-light);
}

.leader-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 30px;
   max-width: 1400px;
   margin: 0 auto;
}

.leader-card {
   background: white;
   border-radius: 8px;
   overflow: hidden;
   box-shadow: 0 5px 15px rgba(0,0,0,0.05);
   transition: 0.3s;
   text-align: center;
}

   .leader-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 15px 30px rgba(0,0,0,0.15);
   }

.l-img {
   height: 320px;
   overflow: hidden;
   position: relative;
}

   .l-img img {
      transition: 0.5s;
      width: 100%;
      height: 100%;
      object-fit: cover;
   }

.leader-card:hover .l-img img {
   transform: scale(1.1);
}

.l-info {
   padding: 25px 20px;
}

.l-name {
   font-size: 18px;
   color: var(--hh-green);
   font-weight: 700;
   margin-bottom: 5px;
   display: block;
}

.l-pos {
   font-size: 12px;
   color: var(--hh-orange);
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 1px;
}

/* Responsive for New Sections */
@media (max-width: 1024px) {
   .vision-grid {
      grid-template-columns: 1fr;
   }

   .leader-grid {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media (max-width: 768px) {
   .leader-grid {
      grid-template-columns: 1fr;
   }

   .vision-section, .leadership-section {
      padding: 60px 20px;
   }
}

/* =========================================
   15. INVESTOR RELATIONS (IR) STYLES - RESTORED
   ========================================= */
/* Sidebar Layout */
.ir-container {
   max-width: 1400px;
   margin: 0 auto;
   padding: 80px 50px;
   display: grid;
   grid-template-columns: 300px 1fr;
   gap: 50px;
}

.ir-sidebar {
   background: #fff;
   border-right: 1px solid #eee;
   padding-right: 30px;
}

.ir-menu-title {
   font-size: 20px;
   color: var(--hh-green);
   margin-bottom: 25px;
   padding-bottom: 10px;
   border-bottom: 2px solid var(--hh-orange);
   display: inline-block;
}

.ir-menu {
   list-style: none;
}

   .ir-menu li {
      margin-bottom: 15px;
   }

   .ir-menu a {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 12px 15px;
      color: #555;
      font-weight: 500;
      border-radius: 4px;
      transition: 0.3s;
      background: #f9f9f9;
   }

      .ir-menu a:hover, .ir-menu a.active {
         background: var(--hh-green);
         color: white;
      }

.ir-content h2 {
   font-size: 32px;
   margin-bottom: 30px;
   color: var(--text-main);
   border-bottom: 1px solid #eee;
   padding-bottom: 15px;
}

/* Download List (Reports) */
.doc-list {
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.doc-item {
   display: flex;
   align-items: center;
   background: white;
   border: 1px solid #eee;
   border-radius: 6px;
   padding: 20px;
   transition: 0.3s;
   gap: 20px;
}

   .doc-item:hover {
      box-shadow: 0 5px 15px rgba(0,0,0,0.08);
      border-color: var(--hh-green);
   }

.doc-icon {
   font-size: 32px;
   color: #e74c3c; /* PDF red color */
}

.doc-info {
   flex: 1;
}

.doc-date {
   font-size: 13px;
   color: #888;
   display: block;
   margin-bottom: 5px;
}

.doc-title {
   font-size: 16px;
   font-weight: 700;
   color: var(--text-main);
   line-height: 1.4;
   margin-bottom: 0;
}

.btn-download {
   padding: 8px 20px;
   border: 1px solid var(--hh-green);
   color: var(--hh-green);
   border-radius: 30px;
   font-size: 13px;
   font-weight: 600;
   display: flex;
   align-items: center;
   gap: 8px;
   transition: 0.3s;
   white-space: nowrap;
}

   .btn-download:hover {
      background: var(--hh-green);
      color: white;
   }

/* Financial Highlights (Tables) */
.fin-table-wrap {
   overflow-x: auto;
   margin-top: 30px;
}

.fin-table {
   width: 100%;
   border-collapse: collapse;
   min-width: 600px;
}

   .fin-table th, .fin-table td {
      padding: 15px;
      text-align: left;
      border-bottom: 1px solid #eee;
   }

   .fin-table th {
      background: var(--bg-light);
      color: var(--hh-green);
      font-weight: 700;
      text-transform: uppercase;
      font-size: 14px;
   }

   .fin-table tr:hover {
      background: #fdfdfd;
   }

/* Annual Report Grid */
.report-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
}

.report-card {
   border: 1px solid #eee;
   border-radius: 8px;
   overflow: hidden;
   transition: 0.3s;
}

   .report-card:hover {
      box-shadow: 0 10px 30px rgba(0,0,0,0.1);
      transform: translateY(-5px);
   }

.report-cover-text {
   height: 350px;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   padding: 30px;
   text-align: center;
   position: relative;
   background: linear-gradient(135deg, var(--hh-green) 0%, #004d3d 100%);
   color: white;
   transition: 0.5s;
}

.report-card:hover .report-cover-text {
   background: linear-gradient(135deg, var(--hh-orange) 0%, #bf4918 100%) !important;
}

/* --- CÁC STYLE MÀU CHO BÌA BÁO CÁO --- */
.bg-green {
   background: linear-gradient(135deg, #005f4b 0%, #00332a 100%);
}

.bg-orange {
   background: linear-gradient(135deg, #d85c27 0%, #a03e15 100%);
}

.bg-gold {
   background: linear-gradient(135deg, #c5a059 0%, #94763e 100%);
}

.bg-blue {
   background: linear-gradient(135deg, #2980b9 0%, #154360 100%);
}

.bg-teal {
   background: linear-gradient(135deg, #16a085 0%, #0e6655 100%);
}

.bg-slate {
   background: linear-gradient(135deg, #7f8c8d 0%, #2c3e50 100%);
}

.bg-red {
   background: linear-gradient(135deg, #c0392b 0%, #781d16 100%);
}

.bg-indigo {
   background: linear-gradient(135deg, #5b4b8a 0%, #322653 100%);
}

.rc-year {
   font-size: 60px;
   font-family: var(--font-head);
   font-weight: 800;
   opacity: 0.15;
   position: absolute;
   top: 20px;
   right: 20px;
   line-height: 1;
}

.rc-logo {
   font-size: 14px;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 2px;
   margin-bottom: 40px;
   border-bottom: 2px solid rgba(255,255,255,0.3);
   padding-bottom: 10px;
}

.rc-title {
   font-size: 24px;
   font-family: var(--font-head);
   font-weight: 700;
   text-transform: uppercase;
   line-height: 1.3;
   margin-bottom: 10px;
}

.rc-subtitle {
   font-size: 14px;
   font-style: italic;
   opacity: 0.8;
}

.report-cover-text::after {
   content: '';
   position: absolute;
   inset: 15px;
   border: 1px solid rgba(255,255,255,0.3);
}

.report-info {
   padding: 20px;
   text-align: center;
}

.report-year {
   font-size: 24px;
   font-weight: 800;
   color: var(--hh-orange);
   display: block;
   margin-bottom: 5px;
}

.report-name {
   font-size: 16px;
   color: var(--text-main);
   font-weight: 600;
   margin-bottom: 15px;
}

/* Responsive IR */
@media (max-width: 1024px) {
   .ir-container {
      grid-template-columns: 1fr;
      padding: 60px 20px;
   }

   .ir-sidebar {
      border-right: none;
      border-bottom: 1px solid #eee;
      padding-right: 0;
      padding-bottom: 30px;
   }

   .report-grid {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media (max-width: 768px) {
   .report-grid {
      grid-template-columns: 1fr;
   }

   .doc-item {
      flex-direction: column;
      align-items: flex-start;
      gap: 15px;
   }

   .btn-download {
      width: 100%;
      justify-content: center;
   }

   .fin-table th, .fin-table td {
      padding: 10px;
      font-size: 14px;
   }
}

/* =========================================
   16. NEWS PAGE STYLES (NEW)
   ========================================= */
/* Hero News (Tin nổi bật đầu trang) */
.news-hero-section {
   padding: 60px 50px;
   max-width: 1400px;
   margin: 0 auto;
   display: grid;
   grid-template-columns: 2fr 1fr;
   gap: 30px;
}

.hero-news-card {
   position: relative;
   border-radius: 8px;
   overflow: hidden;
   height: 100%;
   min-height: 400px;
   background-color: #000;
}

   .hero-news-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: 0.5s;
      filter: brightness(0.9);
   }

   .hero-news-card:hover img {
      transform: scale(1.05);
      filter: brightness(1);
   }

.hero-news-overlay {
   position: absolute;
   bottom: 0;
   left: 0;
   width: 100%;
   background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.7) 40%, transparent 100%);
   padding: 40px 30px 30px 30px;
   color: white;
   z-index: 2;
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
}

.news-tag {
   background: var(--hh-orange);
   color: white;
   padding: 5px 12px;
   font-size: 12px;
   font-weight: 700;
   text-transform: uppercase;
   border-radius: 4px;
   margin-bottom: 15px;
   display: inline-block;
   width: fit-content;
   box-shadow: 0 2px 5px rgba(0,0,0,0.3);
   letter-spacing: 0.5px;
}

.hero-news-title {
   font-size: 32px;
   font-weight: 800;
   margin-bottom: 15px;
   line-height: 1.25;
   color: white;
   text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

.side-news-card .hero-news-title {
   font-size: 20px;
   line-height: 1.35;
}

.hero-news-meta {
   font-size: 14px;
   opacity: 0.9;
   color: rgba(255,255,255,0.9);
   display: flex;
   align-items: center;
   gap: 15px;
   font-weight: 500;
}

   .hero-news-meta i {
      color: var(--hh-orange);
      margin-right: 5px;
   }

/* Side list in hero */
.hero-side-list {
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.side-news-card {
   flex: 1;
   position: relative;
   border-radius: 8px;
   overflow: hidden;
}

/* News Filter & Grid */
.news-filter-bar {
   text-align: center;
   margin-bottom: 40px;
   border-bottom: 1px solid #eee;
   padding-bottom: 10px;
   max-width: 800px;
   margin-left: auto;
   margin-right: auto;
}

.n-filter-btn {
   border: none;
   background: none;
   font-size: 15px;
   font-weight: 600;
   color: #666;
   padding: 10px 25px;
   cursor: pointer;
   transition: 0.3s;
   position: relative;
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

   .n-filter-btn.active, .n-filter-btn:hover {
      color: var(--hh-green);
   }

      .n-filter-btn.active::after {
         content: '';
         position: absolute;
         bottom: -11px;
         left: 50%;
         transform: translateX(-50%);
         width: 100%;
         height: 3px;
         background: var(--hh-green);
      }

.news-main-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
   max-width: 1400px;
   margin: 0 auto;
   padding: 0 50px 80px;
}

.news-card {
   background: white;
   border-radius: 8px;
   overflow: hidden;
   box-shadow: 0 5px 15px rgba(0,0,0,0.05);
   transition: 0.3s;
   border-bottom: 3px solid transparent;
   display: flex;
   flex-direction: column;
}

   .news-card:hover {
      transform: translateY(-10px);
      box-shadow: 0 15px 30px rgba(0,0,0,0.1);
      border-bottom-color: var(--hh-green);
   }

.nc-thumb {
   height: 220px;
   overflow: hidden;
   position: relative;
}

   .nc-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: 0.5s;
   }

.news-card:hover .nc-thumb img {
   transform: scale(1.1);
}

.nc-content {
   padding: 25px;
   flex: 1;
   display: flex;
   flex-direction: column;
}

   .nc-content .news-tag {
      background: #eee;
      color: #555;
      font-size: 11px;
      padding: 4px 8px;
      margin-bottom: 10px;
      box-shadow: none;
   }

.nc-date {
   font-size: 12px;
   color: #999;
   margin-bottom: 10px;
   display: block;
   font-weight: 500;
}

.nc-title {
   font-size: 18px;
   font-weight: 700;
   color: var(--text-main);
   margin-bottom: 12px;
   line-height: 1.4;
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   transition: 0.3s;
}

.news-card:hover .nc-title {
   color: var(--hh-green);
}

.nc-desc {
   font-size: 14px;
   color: #666;
   line-height: 1.6;
   margin-bottom: 20px;
   display: -webkit-box;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;
   overflow: hidden;
   flex: 1;
}

.nc-link {
   color: var(--hh-orange);
   font-weight: 700;
   font-size: 13px;
   text-transform: uppercase;
   letter-spacing: 1px;
   display: inline-flex;
   align-items: center;
   gap: 5px;
   margin-top: auto;
}

   .nc-link:hover {
      color: var(--hh-green);
      gap: 10px;
   }

/* Pagination */
.pagination {
   display: flex;
   justify-content: center;
   gap: 10px;
   margin-top: 20px;
   margin-bottom: 80px;
}

.page-link {
   width: 40px;
   height: 40px;
   display: flex;
   align-items: center;
   justify-content: center;
   border: 1px solid #eee;
   border-radius: 4px;
   color: #555;
   font-weight: 600;
   transition: 0.3s;
}

   .page-link:hover, .page-link.active {
      background: var(--hh-green);
      color: white;
      border-color: var(--hh-green);
   }

/* =========================================
   18. CUSTOM MODAL (BOOTSTRAP-LIKE)
   ========================================= */
/* Modal Container (Nền đen mờ) */
.modal {
   display: none; /* Mặc định ẩn */
   position: fixed;
   z-index: 9999;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   overflow: auto; /* Cho phép cuộn nếu modal quá dài */
   background-color: rgba(0, 0, 0, 0.5); /* Màu đen độ trong suốt 0.5 */
   opacity: 0;
   transition: opacity 0.3s ease; /* Hiệu ứng mờ dần */
}

   /* Class để kích hoạt hiển thị Modal */
   .modal.show {
      display: flex; /* Dùng Flexbox để căn giữa */
      align-items: flex-start; /* Căn trên một chút cho tự nhiên, hoặc center */
      justify-content: center;
      opacity: 1;
      padding: 20px;
   }

/* Modal Dialog (Khung trắng chính) */
.modal-dialog {
   position: relative;
   width: 100%;
   max-width: 500px; /* Độ rộng tối đa giống Bootstrap */
   margin: 3rem auto; /* Cách top một chút */
   background-color: #fff;
   border-radius: 0.3rem; /* Bo góc nhẹ */
   box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); /* Đổ bóng */
   animation: slideDown 0.3s ease-out; /* Hiệu ứng trượt xuống */
   display: flex;
   flex-direction: column;
}

@keyframes slideDown {
   from {
      transform: translateY(-20px);
      opacity: 0;
   }

   to {
      transform: translateY(0);
      opacity: 1;
   }
}

/* Header */
.modal-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 1rem 1rem;
   border-bottom: 1px solid #dee2e6;
   border-top-left-radius: 0.3rem;
   border-top-right-radius: 0.3rem;
}

.modal-title {
   margin-bottom: 0;
   line-height: 1.5;
   font-size: 1.1rem;
   font-weight: 700;
   color: var(--hh-green);
}

/* Nút đóng (X) */
.modal-close {
   padding: 0;
   background-color: transparent;
   border: 0;
   font-size: 1.5rem;
   font-weight: 700;
   line-height: 1;
   color: #000;
   text-shadow: 0 1px 0 #fff;
   opacity: .5;
   cursor: pointer;
   margin-left: auto;
}

   .modal-close:hover {
      opacity: .75;
   }

/* Body */
.modal-body {
   position: relative;
   flex: 1 1 auto;
   padding: 1.5rem;
}

/* Footer */
.modal-footer {
   display: flex;
   align-items: center;
   justify-content: flex-end;
   padding: 0.75rem;
   border-top: 1px solid #dee2e6;
   border-bottom-right-radius: 0.3rem;
   border-bottom-left-radius: 0.3rem;
}

/* Nút trong Modal */
.btn-secondary {
   color: #fff;
   background-color: #6c757d;
   border-color: #6c757d;
   display: inline-block;
   font-weight: 400;
   text-align: center;
   vertical-align: middle;
   user-select: none;
   border: 1px solid transparent;
   padding: 0.375rem 0.75rem;
   font-size: 0.9rem;
   line-height: 1.5;
   border-radius: 0.25rem;
   transition: 0.15s;
   cursor: pointer;
}

   .btn-secondary:hover {
      background-color: #5a6268;
      border-color: #545b62;
   }

/* Style cho danh sách file trong modal */
.modal-file-list {
   list-style: none;
   padding: 0;
   margin: 0;
}

.modal-file-item {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 10px;
   border-bottom: 1px solid #eee;
   transition: 0.2s;
}

   .modal-file-item:last-child {
      border-bottom: none;
   }

   .modal-file-item:hover {
      background-color: #f8f9fa;
   }

.mf-name {
   font-size: 14px;
   font-weight: 500;
   color: var(--text-main);
   display: flex;
   align-items: center;
   gap: 10px;
}

   .mf-name i {
      color: #e74c3c;
      font-size: 18px;
   }

.mf-download {
   font-size: 13px;
   color: var(--hh-green);
   font-weight: 600;
   text-decoration: none;
   display: flex;
   align-items: center;
   gap: 5px;
   padding: 5px 10px;
   border: 1px solid var(--hh-green);
   border-radius: 4px;
   transition: 0.2s;
}

   .mf-download:hover {
      background-color: var(--hh-green);
      color: white;
   }
/* ... (Giữ nguyên các phần trước) ... */

/* =========================================
   19. IR YEAR FILTER (NEW)
   ========================================= */
.ir-filter-bar {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-bottom: 30px;
   padding-bottom: 20px;
   border-bottom: 1px solid #eee;
}

.ir-year-btn {
   padding: 8px 20px;
   border: 1px solid #ddd;
   background: white;
   color: #555;
   border-radius: 4px;
   font-weight: 600;
   cursor: pointer;
   transition: 0.3s;
   font-size: 14px;
   min-width: 80px;
   text-align: center;
}

   .ir-year-btn:hover {
      border-color: var(--hh-green);
      color: var(--hh-green);
   }

   .ir-year-btn.active {
      background: var(--hh-green);
      color: white;
      border-color: var(--hh-green);
      box-shadow: 0 4px 10px rgba(0,95,75,0.2);
   }

/* Ẩn hiện các nhóm năm */
.year-group {
   display: none; /* Mặc định ẩn */
   animation: fadeIn 0.5s;
}

   .year-group.active {
      display: block; /* Chỉ hiện nhóm có class active */
   }

@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translateY(10px);
   }

   to {
      opacity: 1;
      transform: translateY(0);
   }
}

/* Tiêu đề nhóm năm (nếu cần hiển thị lại) */
.year-label {
   font-size: 18px;
   color: var(--hh-orange);
   font-weight: 700;
   margin-bottom: 20px;
   display: flex;
   align-items: center;
   gap: 10px;
}

   .year-label::after {
      content: '';
      flex: 1;
      height: 1px;
      background: #eee;
   }

/* Responsive Filter */
@media (max-width: 768px) {
   .ir-filter-bar {
      gap: 8px;
   }

   .ir-year-btn {
      flex: 1; /* Nút co giãn đều trên mobile */
      padding: 8px 10px;
      font-size: 13px;
   }
}


/* =========================================
   21. FINANCIAL REPORT MATRIX TABLE (NEW - UPDATED)
   ========================================= */
.matrix-table-container {
   overflow-x: auto;
   background: white;
   border: 1px solid #e5e5e5;
   /* border-radius: 8px;  Bỏ border-radius để giống bảng báo cáo truyền thống hơn */
   box-shadow: none;
   margin-top: 20px;
}

.matrix-table {
   width: 100%;
   border-collapse: collapse;
   min-width: 900px;
   font-family: var(--font-body); /* Dùng font body cho dễ đọc số liệu */
}

   .matrix-table th, .matrix-table td {
      padding: 10px 15px; /* Giảm padding một chút cho gọn */
      text-align: center;
      border: 1px solid #ddd; /* Viền kẻ rõ ràng hơn */
      vertical-align: middle;
      font-size: 14px;
   }

   /* Header Bảng */
   .matrix-table thead th {
      background-color: var(--hh-green);
      color: white;
      font-weight: 700;
      text-transform: uppercase;
      font-size: 13px;
      white-space: nowrap;
      border: 1px solid #004d3d; /* Viền header tối hơn chút */
   }

   /* Cột đầu tiên (Tên báo cáo) */
   .matrix-table tbody td:first-child {
      text-align: left;
      color: var(--text-main);
      font-weight: 500;
      width: 300px; /* Cố định độ rộng cột tên */
   }

   /* Dòng Group Header (I, II, III...) */
   .matrix-table .group-header td {
      background-color: #f0f8ff; /* Nền xanh nhạt nổi bật */
      font-weight: 700;
      color: var(--hh-green);
      text-align: left;
      text-transform: uppercase;
      padding-left: 15px;
   }

   /* Hover row */
   .matrix-table tbody tr:not(.group-header):hover td {
      background-color: #f9f9f9;
   }

/* Icon tải về */
.download-icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 28px; /* Nhỏ gọn hơn */
   height: 28px;
   /* border-radius: 4px; Bỏ border-radius nút */
   color: #e74c3c;
   /* background-color: #fff; */
   /* border: 1px solid #e74c3c; */
   transition: 0.2s;
   font-size: 20px; /* Icon to hơn xíu */
   text-decoration: none;
}

   .download-icon:hover {
      color: var(--hh-green); /* Đổi màu khi hover */
      transform: scale(1.1);
   }

.empty-cell {
   color: #ddd; /* Màu nhạt hơn cho ô trống */
   font-size: 16px;
}

/* Responsive */
@media (max-width: 768px) {
   .matrix-table th, .matrix-table td {
      padding: 8px 5px;
      font-size: 12px;
   }
}

* --- Video Indicator on Thumbnail --- */
.video-badge {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 50px;
   height: 50px;
   background: rgba(0, 0, 0, 0.6);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 20px;
   border: 2px solid rgba(255, 255, 255, 0.8);
   transition: 0.3s;
   z-index: 2;
   pointer-events: none; /* Để click xuyên qua vào thẻ a */
}

.news-card:hover .video-badge {
   background: var(--hh-orange);
   border-color: var(--hh-orange);
   transform: translate(-50%, -50%) scale(1.1);
}

/* --- News Detail Page --- */
.news-detail-section {
   max-width: 900px; /* Nội dung bài viết hẹp hơn container chung để dễ đọc */
   margin: 0 auto;
   padding: 60px 20px;
   background: white;
}

.nd-header {
   margin-bottom: 40px;
   border-bottom: 1px solid #eee;
   padding-bottom: 30px;
}

.nd-tag {
   color: var(--hh-orange);
   font-weight: 700;
   text-transform: uppercase;
   font-size: 14px;
   letter-spacing: 1px;
   margin-bottom: 15px;
   display: inline-block;
}

.nd-title {
   font-size: 36px;
   line-height: 1.3;
   color: var(--text-main);
   margin-bottom: 20px;
   font-family: var(--font-head);
}

.nd-meta {
   font-size: 14px;
   color: #888;
   display: flex;
   gap: 20px;
   font-style: italic;
}

   .nd-meta i {
      margin-right: 5px;
   }

.nd-content {
   font-size: 17px;
   line-height: 1.8;
   color: #333;
   text-align: justify;
}

   .nd-content p {
      margin-bottom: 25px;
   }

   .nd-content h3 {
      font-size: 24px;
      color: var(--hh-green);
      margin: 40px 0 20px;
   }

   .nd-content h4 {
      font-size: 20px;
      color: var(--text-main);
      margin: 30px 0 15px;
   }

   .nd-content ul {
      list-style: disc;
      margin-left: 20px;
      margin-bottom: 25px;
   }

   .nd-content li {
      margin-bottom: 10px;
   }

   .nd-content img {
      max-width: 100%;
      height: auto;
      border-radius: 8px;
      margin: 30px 0;
      box-shadow: 0 5px 15px rgba(0,0,0,0.05);
   }

   .nd-content figure {
      margin: 30px 0;
      text-align: center;
   }

   .nd-content figcaption {
      font-size: 14px;
      color: #666;
      font-style: italic;
      margin-top: 10px;
      background: #f9f9f9;
      padding: 10px;
      border-radius: 4px;
   }

   .nd-content blockquote {
      border-left: 5px solid var(--hh-orange);
      padding: 20px 30px;
      background: #fff8f5;
      font-size: 20px;
      font-weight: 500;
      font-style: italic;
      color: var(--hh-green);
      margin: 40px 0;
      border-radius: 0 8px 8px 0;
   }

/* Related News */
.related-news-section {
   background: var(--bg-light);
   padding: 80px 50px;
   border-top: 1px solid #e5e5e5;
}

.related-header {
   max-width: 1400px;
   margin: 0 auto 40px;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.related-title {
   font-size: 28px;
   color: var(--hh-green);
   text-transform: uppercase;
}

.related-link {
   color: var(--hh-orange);
   font-weight: 600;
   text-decoration: none;
   transition: 0.3s;
}

   .related-link:hover {
      color: var(--hh-green);
   }

/* Responsive Detail Page */
@media (max-width: 768px) {
   .nd-title {
      font-size: 26px;
   }

   .nd-content {
      font-size: 16px;
   }

   .related-news-section {
      padding: 50px 20px;
   }

   .related-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 15px;
   }
}


/* --- Video Indicator on Thumbnail --- */
.video-badge {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 50px;
   height: 50px;
   background: rgba(0, 0, 0, 0.6);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   color: white;
   font-size: 20px;
   border: 2px solid rgba(255, 255, 255, 0.8);
   transition: 0.3s;
   z-index: 2;
   pointer-events: none; /* Để click xuyên qua vào thẻ a */
}

.news-card:hover .video-badge {
   background: var(--hh-orange);
   border-color: var(--hh-orange);
   transform: translate(-50%, -50%) scale(1.1);
}

/* --- News Detail Page --- */
.news-detail-section {
   max-width: 900px; /* Nội dung bài viết hẹp hơn container chung để dễ đọc */
   margin: 0 auto;
   padding: 60px 20px;
   background: white;
}

.nd-header {
   margin-bottom: 40px;
   border-bottom: 1px solid #eee;
   padding-bottom: 30px;
}

.nd-tag {
   color: var(--hh-orange);
   font-weight: 700;
   text-transform: uppercase;
   font-size: 14px;
   letter-spacing: 1px;
   margin-bottom: 15px;
   display: inline-block;
}

.nd-title {
   font-size: 36px;
   line-height: 1.3;
   color: var(--text-main);
   margin-bottom: 20px;
   font-family: var(--font-head);
}

.nd-meta {
   font-size: 14px;
   color: #888;
   display: flex;
   gap: 20px;
   font-style: italic;
}

   .nd-meta i {
      margin-right: 5px;
   }

.nd-content {
   font-size: 17px;
   line-height: 1.8;
   color: #333;
   text-align: justify;
}

   .nd-content p {
      margin-bottom: 25px;
   }

   .nd-content h3 {
      font-size: 24px;
      color: var(--hh-green);
      margin: 40px 0 20px;
   }

   .nd-content h4 {
      font-size: 20px;
      color: var(--text-main);
      margin: 30px 0 15px;
   }

   .nd-content ul {
      list-style: disc;
      margin-left: 20px;
      margin-bottom: 25px;
   }

   .nd-content li {
      margin-bottom: 10px;
   }

   .nd-content img {
      max-width: 100%;
      height: auto;
      border-radius: 8px;
      margin: 30px 0;
      box-shadow: 0 5px 15px rgba(0,0,0,0.05);
   }

   .nd-content figure {
      margin: 30px 0;
      text-align: center;
   }

   .nd-content figcaption {
      font-size: 14px;
      color: #666;
      font-style: italic;
      margin-top: 10px;
      background: #f9f9f9;
      padding: 10px;
      border-radius: 4px;
   }

   .nd-content blockquote {
      border-left: 5px solid var(--hh-orange);
      padding: 20px 30px;
      background: #fff8f5;
      font-size: 20px;
      font-weight: 500;
      font-style: italic;
      color: var(--hh-green);
      margin: 40px 0;
      border-radius: 0 8px 8px 0;
   }

/* Related News */
.related-news-section {
   background: var(--bg-light);
   padding: 80px 50px;
   border-top: 1px solid #e5e5e5;
}

.related-header {
   max-width: 1400px;
   margin: 0 auto 40px;
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.related-title {
   font-size: 28px;
   color: var(--hh-green);
   text-transform: uppercase;
}

.related-link {
   color: var(--hh-orange);
   font-weight: 600;
   text-decoration: none;
   transition: 0.3s;
}

   .related-link:hover {
      color: var(--hh-green);
   }

/* Responsive Detail Page */
@media (max-width: 768px) {
   .nd-title {
      font-size: 26px;
   }

   .nd-content {
      font-size: 16px;
   }

   .related-news-section {
      padding: 50px 20px;
   }

   .related-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 15px;
   }
}


/* =========================================
   22. GALLERY & ALBUM STYLES (NEW)
   ========================================= */
.gallery-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 30px;
   max-width: 1400px;
   margin: 0 auto;
   padding: 0 50px 80px;
}

.album-card {
   position: relative;
   border-radius: 8px;
   overflow: hidden;
   background: white;
   box-shadow: 0 5px 15px rgba(0,0,0,0.08);
   transition: 0.3s;
}

   .album-card:hover {
      transform: translateY(-10px);
      box-shadow: 0 15px 30px rgba(0,0,0,0.15);
   }

.album-thumb {
   height: 250px;
   position: relative;
   overflow: hidden;
}

   .album-thumb img {
      transition: 0.6s;
   }

.album-card:hover .album-thumb img {
   transform: scale(1.1);
}

/* Số lượng ảnh badge */
.photo-count {
   position: absolute;
   top: 15px;
   right: 15px;
   background: rgba(0,0,0,0.7);
   color: white;
   padding: 5px 12px;
   border-radius: 20px;
   font-size: 12px;
   font-weight: 600;
   z-index: 2;
   display: flex;
   align-items: center;
   gap: 5px;
   backdrop-filter: blur(4px);
}

.album-info {
   padding: 20px;
}

.album-date {
   font-size: 13px;
   color: #888;
   margin-bottom: 8px;
   display: block;
}

.album-title {
   font-size: 18px;
   font-weight: 700;
   color: var(--hh-green);
   line-height: 1.4;
   margin-bottom: 10px;
   transition: 0.3s;
}

.album-card:hover .album-title {
   color: var(--hh-orange);
}

/* --- Gallery Detail (Masonry/Grid) --- */
.gallery-detail-container {
   max-width: 1400px;
   margin: 0 auto;
   padding: 60px 50px;
}

.gallery-header {
   text-align: center;
   margin-bottom: 50px;
}

   .gallery-header h2 {
      font-size: 32px;
      color: var(--hh-green);
      margin-bottom: 15px;
   }

.gallery-meta {
   color: #777;
   font-size: 15px;
}

.photo-grid {
   columns: 4 300px;
   column-gap: 20px;
}

.photo-item {
   break-inside: avoid;
   margin-bottom: 20px;
   border-radius: 8px;
   overflow: hidden;
   cursor: pointer;
   position: relative;
}

   .photo-item img {
      width: 100%;
      height: auto;
      display: block;
      transition: 0.5s;
   }

   .photo-item:hover img {
      transform: scale(1.03);
      filter: brightness(0.8);
   }

   .photo-item::after {
      content: '\f00e';
      font-family: 'Font Awesome 6 Free';
      font-weight: 900;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      color: white;
      font-size: 24px;
      opacity: 0;
      transition: 0.3s;
   }

   .photo-item:hover::after {
      opacity: 1;
   }

/* Lightbox Simple */
.lightbox {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0,0,0,0.9);
   z-index: 9999;
   display: none;
   align-items: center;
   justify-content: center;
   padding: 40px;
}

   .lightbox.active {
      display: flex;
   }

.lightbox-img {
   max-width: 90%;
   max-height: 90%;
   box-shadow: 0 0 30px rgba(0,0,0,0.5);
   border: 3px solid white;
}

.lightbox-close {
   position: absolute;
   top: 30px;
   right: 40px;
   color: white;
   font-size: 40px;
   cursor: pointer;
}

/* Responsive Gallery */
@media (max-width: 1024px) {
   .gallery-grid {
      grid-template-columns: repeat(2, 1fr);
      padding: 0 20px 60px;
   }
}

@media (max-width: 768px) {
   .gallery-grid {
      grid-template-columns: 1fr;
   }

   .photo-grid {
      columns: 2 150px;
   }

   .gallery-detail-container {
      padding: 40px 20px;
   }
}