/* =========================================
   1. SHARED LAYOUT STYLES
   ========================================= */
.section {
    width: 100%;
    min-height: 100vh;
    position: relative;
    overflow: hidden;
}

/* Style cho chữ và trạng thái ban đầu của Animation */
.hero-line {
    display: block;
    /* Bắt buộc để transform chạy */

    /* Font Oswald */
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    font-size: 5vw;
    line-height: 1.3;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #fff !important;
    /* Màu đen */

    /* TRẠNG THÁI INIT CHO GSAP (Quan trọng) */
    transform: translateY(110%);
    /* Đẩy xuống dưới */
    opacity: 0;
    /* Ẩn đi */
}

/* =========================================
   5. GLOBAL NAVIGATOR (CLEAN & FIXED)
   ========================================= */

/* A. Khung chứa chính */
.global-navigator {
    position: fixed;
    top: 50%;
    right: 2vw;
    transform: translateY(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
    /* Khung rỗng không chặn click */
}

/* B. Cột chứa các chấm tròn (Tracker) */
.nav-tracker {
    display: flex;
    flex-direction: column;
    gap: 40px;
    /* Khoảng cách giữa các chấm */
    align-items: center;
    pointer-events: auto;
    /* Bật click cho chấm */
}

.nav-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
    position: relative;

    /* Màu mặc định (Trắng mờ) */
    background-color: rgba(255, 255, 255, 0.3) !important;
}

/* Tăng vùng click */
.nav-dot::after {
    content: "";
    position: absolute;
    top: -10px;
    left: -10px;
    right: -10px;
    bottom: -10px;
}

.nav-dot.active {
    background-color: #ffffff !important;
}

/* C. Vòng tròn chạy (Indicator) */
.active-indicator {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 40px !important;
    height: 40px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 10;

    /* LOGIC ẨN HIỆN FIX BUG VỊ TRÍ */
    /* opacity: 0; */
    /* visibility: hidden; */
    opacity: 1;
    /* Thêm dòng này để ép nó hiện */
    visibility: visible;
    transition: opacity 0.5s ease;
}

/* Khi JS thêm class .nav-ready vào cha thì mới hiện lên */
.global-navigator.nav-ready .active-indicator {
    opacity: 1;
    visibility: visible;
}

.indicator-wrapper {
    position: relative;
    width: 40px;
    height: 40px;
}

.indicator-svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.circle-progress {
    transition: stroke-dashoffset 0.1s linear, stroke 0.3s ease;
    stroke: #ffffff !important;
    /* Màu trắng cố định */
}

/* Vòng tròn nền mờ */
.global-navigator circle:first-child {
    stroke: rgba(255, 255, 255, 0.2) !important;
}

/* D. Chữ tiêu đề (Nav Label) */
.nav-label {
    position: absolute;
    right: 50px;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;

    /* --- FONT OSWALD --- */
    font-family: 'Oswald', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;

    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;

    /* Màu trắng cố định */
    color: #ffffff !important;
}