/* Font được đóng gói local để CMS không phải gọi Google Fonts. */
@font-face { font-family: 'Great Vibes'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/great-vibes-400.ttf') format('truetype'); }
@font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 300; font-display: swap; src: url('fonts/merriweather-300.ttf') format('truetype'); }
@font-face { font-family: 'Merriweather'; font-style: italic; font-weight: 300; font-display: swap; src: url('fonts/merriweather-300-italic.ttf') format('truetype'); }
@font-face { font-family: 'Merriweather'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/merriweather-400.ttf') format('truetype'); }
@font-face { font-family: 'Merriweather'; font-style: italic; font-weight: 700; font-display: swap; src: url('fonts/merriweather-700-italic.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: normal; font-weight: 300; font-display: swap; src: url('fonts/mulish-300.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/mulish-400.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/mulish-400-italic.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/mulish-600.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: italic; font-weight: 600; font-display: swap; src: url('fonts/mulish-600-italic.ttf') format('truetype'); }
@font-face { font-family: 'Mulish'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/mulish-700.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/playfair-400.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/playfair-400-italic.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/playfair-600.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/playfair-700.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 700; font-display: swap; src: url('fonts/playfair-700-italic.ttf') format('truetype'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 900; font-display: swap; src: url('fonts/playfair-900.ttf') format('truetype'); }

:root {
            --primary-orange: #E59F24;
            --primary-light: #F2B84B;
            --dark-copper: #261201; /* Tông nâu đồng sẫm liên kết với màu cam */
            --text-dark: #1a1a1a;
            --text-light: #f5f5f5;
            --content-background: #fffaf2;
        }

        body {
            font-family: 'Mulish', sans-serif;
            background-color: var(--content-background);
            color: var(--text-dark);
            overflow-x: hidden;
            scroll-behavior: smooth;
        }

        h1, h2, h3, .font-serif {
            font-family: 'Playfair Display', serif;
        }

        .text-orange {
            color: var(--primary-orange);
        }

        .bg-orange {
            background-color: var(--primary-orange);
        }

        .bg-dark-copper {
            background-color: var(--dark-copper);
        }

        /* Parallax Backgrounds */
        .parallax {
            background-attachment: fixed;
            background-position: center;
            background-repeat: no-repeat;
            background-size: cover;
        }

        /* 1. THIẾT LẬP MẶC ĐỊNH CHO ĐIỆN THOẠI (MOBILE) */
        .hero-banner {
            background-image: url('images/coverMobile.jpg'); 
            background-size: cover; 
            background-position: center top; 
            background-repeat: no-repeat;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }

        /* 2. THIẾT LẬP CHO MÁY TÍNH BẢNG & MÁY TÍNH BÀN (PC) - Màn hình từ 768px trở lên */
        @media (min-width: 768px) {
            .hero-banner {
                background-image: url('images/coverPC1.jpg'); 
                background-size: cover; 
                background-position: center top; 
            }
        }

        .overlay {
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.8) 100%);
        }

        /* Scroll Reveal Effect (Fade-up kèm trượt - Dùng cho body bài viết) */
        .reveal {
            opacity: 0;
            transform: translateY(28px);
            transition: opacity 0.55s ease-out, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        /* Scroll Reveal Effect (Chỉ Fade In tĩnh lặng) */
        .reveal-fade {
            opacity: 0;
            transition: opacity 1.5s ease-in-out;
            will-change: opacity;
        }

        .reveal-fade.active {
            opacity: 1;
        }

        /* Hero Scroll Fade */
        .fade-overlay {
            position: absolute;
            inset: 0;
            background-color: var(--primary-orange);
            opacity: 0;
            z-index: 5;
            pointer-events: none;
        }
        
        .hero-content {
            position: relative;
            z-index: 10;
            width: 100%;
            will-change: opacity, transform;
        }

        /* --- Sapo Cinematic Section Styling --- */
        .sapo-cinematic-container {
            position: relative;
            z-index: 20;
            background-color: var(--dark-copper);
        }

        .sapo-sticky-view {
            background: linear-gradient(to bottom, var(--dark-copper) 0%, var(--primary-orange) 45%, var(--content-background) 100%);
            overflow: hidden;
        }

        .sapo-box {
            position: relative;
            background: linear-gradient(to bottom, var(--primary-light) 0%, var(--content-background) 90%);
            border-radius: 1rem;
            box-shadow: 
                0 30px 60px rgba(229, 159, 36, 0.25),
                0 -25px 60px rgba(229, 159, 36, 0.25);
            border: 1px solid rgba(255, 255, 255, 0.4);
            will-change: transform, opacity;
            backface-visibility: hidden;
        }
        
        .sapo-box::after {
            content: "";
            position: absolute;
            top: -3px; 
            left: 2%;
            right: 2%;
            height: 5px;
            background: linear-gradient(to right, transparent, #FDE047, var(--primary-light), var(--primary-orange), #D97706, transparent);
            filter: blur(3px);
            border-radius: 50%;
            opacity: 1;
            z-index: -1;
            pointer-events: none;
        }

        .sapo-glow-bottom {
            position: absolute;
            bottom: -3px;
            left: 2%;
            right: 2%;
            height: 5px;
            background: linear-gradient(to right, transparent, #D97706, var(--primary-orange), var(--primary-light), #FDE047, transparent);
            filter: blur(3px);
            border-radius: 50%;
            opacity: 1;
            z-index: -1;
            pointer-events: none;
        }

        .sapo-box::before {
            content: "“";
            font-family: 'Playfair Display', serif;
            font-size: 8rem;
            color: rgba(255, 255, 255, 0.4);
            position: absolute;
            top: -20px;
            left: 20px;
            line-height: 1;
        }

        .sapo-text-1, .sapo-text-2, .sapo-text-3 {
            will-change: opacity, transform, visibility;
        }

        /* Article content */
        .content-wrap {
            max-width: 800px;
            margin: 0 auto;
        }
        
        .content-wrap p {
            margin-bottom: 1.5rem;
        }

        .content-wrap .question {
            color: #111;
            margin-top: 2.5rem;
            margin-bottom: 1rem;
        }

/* Section Header sử dụng ảnh thiết kế hoàn chỉnh */
        .section-header-image {
            margin-bottom: 3rem;
            border-radius: 1rem;
            overflow: hidden;
            box-shadow: 0 15px 30px rgba(0,0,0,0.1);
            background: transparent;
        }

        .section-header-image img {
            display: block;
            width: 100%;
            height: auto;
        }

 /* Full-width Quote Styling */
        .quote1-parallax {
            background-image: url('images/quote1.jpg');
        }
        
        .quote-parallax-2 {
            background-image: url('images/quote3.jpg');
        }

        .quote-overlay {
            background-color: rgba(0, 0, 0, 0.7);
        }

        /* Quote 2 — full-width, bố cục nội dung 60% / hình ảnh 40% */
        .quote2-feature {
            position: relative;
            width: 100vw;
            margin: clamp(4rem, 7vw, 7rem) calc(50% - 50vw);
            overflow: hidden;
            color: var(--text-light);
            background:
                radial-gradient(circle at 16% 14%, rgba(229, 159, 36, 0.24), transparent 34%),
                linear-gradient(135deg, #261201 0%, #43250e 55%, #5b3215 100%);
            border-top: 6px solid var(--primary-orange);
            border-bottom: 1px solid rgba(242, 184, 75, 0.45);
            box-shadow: 0 28px 70px rgba(38, 18, 1, 0.22);
        }

        .quote2-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            min-height: clamp(620px, 76vh, 780px);
            width: 100%;
        }

        .quote2-copy {
            position: relative;
            z-index: 2;
            display: flex;
            flex-direction: column;
            justify-content: center;
            min-width: 0;
            padding: clamp(3rem, 6vw, 7rem);
        }

        .quote2-copy::before {
            content: "“";
            position: absolute;
            top: clamp(0.5rem, 2vw, 1.5rem);
            left: clamp(1.5rem, 4vw, 4.5rem);
            color: rgba(242, 184, 75, 0.2);
            font-family: 'Playfair Display', serif;
            font-size: clamp(8rem, 13vw, 13rem);
            line-height: 1;
            pointer-events: none;
        }

        .quote2-kicker {
            position: relative;
            z-index: 1;
            margin: 0 0 1.4rem;
            color: var(--primary-light);
        }

        .quote2-blockquote {
            position: relative;
            z-index: 1;
            margin: 0;
        }

        .quote2-feature .quote-text {
            margin: 0;
            color: #fffaf2;
            text-wrap: pretty;
        }

        .quote2-author {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-top: clamp(2rem, 4vw, 3.25rem);
        }

        .quote2-author-line {
            width: clamp(42px, 5vw, 72px);
            height: 3px;
            flex: 0 0 auto;
            background: var(--primary-orange);
        }

        .quote2-author-name {
            margin: 0;
            color: var(--primary-light);
        }

        .quote2-author-title {
            margin: 0.15rem 0 0;
            color: rgba(255, 250, 242, 0.72);
        }

        .quote2-media {
            position: relative;
            min-width: 0;
            min-height: 100%;
            margin: 0;
            overflow: hidden;
            background: #6d431f;
        }

        .quote2-media::before {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 1;
            background: linear-gradient(90deg, #43250e 0%, rgba(67, 37, 14, 0.25) 18%, transparent 42%);
            pointer-events: none;
        }

        .quote2-media::after {
            content: "";
            position: absolute;
            inset: auto 0 0;
            z-index: 1;
            height: 32%;
            background: linear-gradient(to top, rgba(38, 18, 1, 0.42), transparent);
            pointer-events: none;
        }

        .quote2-media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: 62% center;
            filter: saturate(0.88) sepia(0.08) contrast(1.03);
        }

        @media (max-width: 900px) {
            .quote2-grid {
                grid-template-columns: 1fr;
                min-height: 0;
            }

            .quote2-copy {
                padding: clamp(3rem, 9vw, 5rem) clamp(1.5rem, 7vw, 4rem);
            }

            .quote2-media {
                min-height: clamp(360px, 62vw, 520px);
            }

            .quote2-media::before {
                background: linear-gradient(180deg, #43250e 0%, rgba(67, 37, 14, 0.12) 20%, transparent 40%);
            }

            .quote2-media img {
                object-position: 57% 38%;
            }
        }
        
        /* Avatar tác giả tại Quote 1 */
        .quote1-author {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.95rem;
            max-width: 100%;
            text-align: left;
        }

        .quote1-avatar {
            position: relative;
            width: 72px;
            height: 72px;
            flex: 0 0 72px;
            overflow: hidden;
            border: 3px solid var(--primary-orange);
            border-radius: 50%;
            background: #f4d49b;
            box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
        }

        .quote1-avatar img {
            position: absolute;
            top: -26px;
            left: -142px;
            width: 350px;
            max-width: none;
            height: auto;
        }

        .quote1-author-copy {
            min-width: 0;
        }

        @media (max-width: 480px) {
            .quote1-author {
                gap: 0.75rem;
            }

            .quote1-avatar {
                width: 60px;
                height: 60px;
                flex-basis: 60px;
            }

            .quote1-avatar img {
                top: -22px;
                left: -119px;
                width: 292px;
            }
        }
    

        /* NỀN PHẦN NỘI DUNG — giữ nguyên khi chỉnh sửa text */
        html,
        body,
        body > section.py-12,
        body > section.py-20 {
            background-color: var(--content-background) !important;
        }

        /* ============================================================
           BIỂU ĐỒ TƯƠNG TÁC CƠ CẤU GDP — tách biệt với CSS của bài
           ============================================================ */
        #gdp-interactive {
            --gdp-cream: #fffaf2;
            --gdp-cream-deep: #f5ead8;
            --gdp-copper: #261201;
            --gdp-orange: #E59F24;
            --gdp-gold: #F2B84B;
            --gdp-brown: #5B3215;
            --gdp-terracotta: #B85C38;
            width: 100vw;
            margin: 4rem 0 0 calc(50% - 50vw);
            background: var(--gdp-cream);
            color: var(--gdp-copper);
            isolation: isolate;
            overflow: clip;
        }

        #gdp-interactive,
        #gdp-interactive * {
            box-sizing: border-box;
        }

        #gdp-interactive .gdp-intro {
            min-height: 72vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 5rem 1.5rem;
            background:
                radial-gradient(circle at 50% 20%, rgba(242, 184, 75, 0.28), transparent 34%),
                linear-gradient(145deg, #fffaf2 0%, #f5ead8 100%);
            border-top: 1px solid rgba(38, 18, 1, 0.10);
            border-bottom: 1px solid rgba(38, 18, 1, 0.10);
        }

        #gdp-interactive .gdp-eyebrow {
            margin: 0 0 1rem;
            color: var(--gdp-orange);
        }

        #gdp-interactive .gdp-title {
            margin: 0;
            max-width: 900px;
            color: var(--gdp-copper);
        }

        #gdp-interactive .gdp-title span {
            color: var(--gdp-orange);
        }
 	

        #gdp-interactive .gdp-intro-copy {
            max-width: 760px;
            margin: 1.6rem auto 0;
            color: #6f4a2d;
        }

        #gdp-interactive .gdp-scroll-cue {
            margin-top: 2rem;
            color: #8a684c;
        }

        #gdp-interactive .gdp-scrolly {
            position: relative;
            height: 420vh;
            background:
                linear-gradient(rgba(229, 159, 36, 0.04) 1px, transparent 1px),
                linear-gradient(90deg, rgba(229, 159, 36, 0.04) 1px, transparent 1px),
                var(--gdp-cream);
            background-size: 48px 48px;
        }

        /* Desktop: biểu đồ đứng yên bên trái trong toàn bộ cảnh cuộn. */
        #gdp-interactive .gdp-sticky-chart {
            position: sticky;
            top: 0;
            z-index: 1;
            width: 100%;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            padding: 6vh 4vw;
            background: transparent;
        }

        #gdp-interactive .gdp-chart-frame {
            width: min(58vw, 1100px);
            height: min(76vh, 680px);
            display: flex;
            flex-direction: column;
            padding: clamp(0.75rem, 2vw, 1.5rem);
            background: rgba(255, 250, 242, 0.94);
            border: 1px solid rgba(38, 18, 1, 0.13);
            border-radius: 1.25rem;
            box-shadow: 0 28px 70px rgba(38, 18, 1, 0.13);
        }

        #gdp-interactive #gdp-chart-mask,
        #gdp-interactive #gdp-echarts-container {
            width: 100%;
            height: 100%;
        }

        #gdp-interactive #gdp-chart-mask {
            position: relative;
            flex: 1 1 auto;
            min-height: 0;
            height: auto;
            clip-path: inset(0 100% 0 0);
        }

        #gdp-interactive .gdp-chart-note {
            flex: 0 0 auto;
            margin: 0.55rem 0.25rem 0;
            color: #7d5d43;
        }

        /* Khung đứng yên; chỉ các lớp nội dung bên trong trượt ngang. */
        #gdp-interactive .gdp-scroll-text {
            position: absolute;
            inset: 0;
            z-index: 2;
            pointer-events: none;
        }

        #gdp-interactive .gdp-text-sticky {
            position: sticky;
            top: 0;
            height: 100vh;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding: 6vh 4vw;
        }

        #gdp-interactive .gdp-text-stage {
            position: relative;
            width: min(32vw, 500px);
            height: min(70vh, 560px);
            overflow: hidden;
            color: var(--gdp-copper);
            background:
                radial-gradient(circle at 14% 0%, rgba(242, 184, 75, 0.30), transparent 38%),
                linear-gradient(160deg, rgba(242, 184, 75, 0.24), rgba(255, 250, 242, 0.96) 66%);
            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);
            border: 1px solid rgba(255, 255, 255, 0.62);
            border-radius: 1rem;
            box-shadow:
                0 24px 60px rgba(38, 18, 1, 0.16),
                0 -18px 48px rgba(229, 159, 36, 0.16);
            pointer-events: auto;
        }

        #gdp-interactive .gdp-text-stage::before {
            content: "";
            position: absolute;
            z-index: 3;
            top: 0;
            left: 8%;
            right: 8%;
            height: 3px;
            background: linear-gradient(90deg, transparent, #FDE047, var(--gdp-orange), transparent);
            filter: blur(1px);
            pointer-events: none;
        }

        #gdp-interactive .gdp-step {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            padding: clamp(1.35rem, 3vw, 2.35rem);
            opacity: 0;
            visibility: hidden;
            transform: translate3d(105%, 0, 0);
            will-change: transform, opacity;
        }

        #gdp-interactive .gdp-step-content {
            width: 100%;
            max-height: 100%;
            overflow: auto;
            padding-right: 0.25rem;
        }

        #gdp-interactive .gdp-step.is-active {
            visibility: visible;
        }

        #gdp-interactive .gdp-step h2 {
            margin: 0 0 0.8rem;
            color: var(--gdp-brown);
        }

        #gdp-interactive .gdp-step[data-step="3"] h2 {
            color: var(--gdp-orange);
        }

        #gdp-interactive .gdp-step p,
        #gdp-interactive .gdp-step blockquote {
            margin: 0;
        }

        #gdp-interactive .gdp-step-note {
            display: block;
            margin-top: 1rem;
            color: #87684f;
        }

        #gdp-interactive .gdp-step blockquote {
            margin-top: 1rem;
            padding-left: 1rem;
            color: #5d3d25;
            border-left: 2px solid var(--gdp-gold);
        }

        #gdp-interactive .gdp-step blockquote footer {
            margin-top: 0.65rem;
            color: var(--gdp-orange);
        }

        #gdp-interactive .gdp-outro {
            position: relative;
            z-index: 3;
            padding: 5rem 1.5rem;
            color: var(--gdp-cream);
            background: linear-gradient(135deg, var(--gdp-copper), #4a260c);
        }

        #gdp-interactive .gdp-outro h2 {
            margin: 0 0 1rem;
            color: var(--gdp-gold);
        }

        #gdp-interactive .gdp-outro p {
            max-width: 720px;
            margin: 0 auto;
            color: #f8ead4;
        }

        /* Tablet và mobile quay về trên–dưới để bảo đảm chart vẫn dễ đọc. */
        @media (max-width: 900px) {
            #gdp-interactive .gdp-intro {
                min-height: 62vh;
                padding: 4rem 1.1rem;
            }

            #gdp-interactive .gdp-sticky-chart {
                height: 55vh;
                padding: 2vh 0.6rem;
            }

            #gdp-interactive .gdp-chart-frame {
                width: 100%;
                height: 51vh;
                border-radius: 0.8rem;
            }

            #gdp-interactive .gdp-text-sticky {
                top: 55vh;
                height: 45vh;
                padding: 0.65rem;
            }

            #gdp-interactive .gdp-text-stage {
                width: 100%;
                height: calc(45vh - 1.3rem);
                border-radius: 0.8rem;
            }

            #gdp-interactive .gdp-step {
                padding: 1.1rem 1.2rem;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            #gdp-interactive .gdp-step {
                transform: none;
            }
        }

        /* ============================================================
           THDA — HỆ THỐNG DỰ ÁN KIẾN QUỐC TƯƠNG TÁC
           Toàn bộ selector được giới hạn trong #thda-interactive
           ============================================================ */
        #thda-interactive {
            --thda-cream: #fffaf2;
            --thda-cream-deep: #f2e4cd;
            --thda-copper: #261201;
            --thda-brown: #5b3215;
            --thda-orange: #E59F24;
            --thda-gold: #F2B84B;
            width: 100vw;
            margin: 4rem 0 0 calc(50% - 50vw);
            color: var(--thda-copper);
            background: var(--thda-cream);
            isolation: isolate;
            overflow: hidden;
        }

        #thda-interactive,
        #thda-interactive * {
            box-sizing: border-box;
        }

        #thda-interactive .thda-layout {
            position: relative;
            display: flex;
            flex-direction: column;
            width: 100%;
            height: 100svh;
            min-height: 760px;
            overflow: hidden;
            background:
                radial-gradient(circle at 38% 32%, rgba(242, 184, 75, 0.24), transparent 27%),
                linear-gradient(145deg, var(--thda-cream) 0%, var(--thda-cream-deep) 100%);
            border-top: 1px solid rgba(38, 18, 1, 0.12);
            border-bottom: 1px solid rgba(38, 18, 1, 0.12);
        }

        #thda-interactive .thda-left-panel,
        #thda-interactive .thda-right-panel {
            position: relative;
            width: 100%;
            transition:
                width 0.8s cubic-bezier(0.25, 1, 0.25, 1),
                height 0.8s cubic-bezier(0.25, 1, 0.25, 1),
                opacity 0.65s ease;
        }

        #thda-interactive .thda-left-panel {
            z-index: 2;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            background:
                radial-gradient(circle at center, rgba(255, 250, 242, 0.98) 0%, rgba(242, 228, 205, 0.84) 58%, rgba(229, 159, 36, 0.13) 100%);
        }

        #thda-interactive .thda-right-panel {
            z-index: 1;
            height: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            opacity: 0;
            overflow: hidden;
            background: linear-gradient(145deg, var(--thda-copper), #4b270d);
        }

        #thda-interactive .thda-layout.is-split .thda-left-panel {
            height: 44%;
        }

        #thda-interactive .thda-layout.is-split .thda-right-panel {
            height: 56%;
            padding: 0.8rem;
            opacity: 1;
            overflow-y: auto;
        }

        #thda-interactive .thda-orbit-ring {
            position: absolute;
            left: 50%;
            top: 50%;
            aspect-ratio: 1;
            border: 1px solid rgba(91, 50, 21, 0.22);
            border-radius: 50%;
            transform: translate(-50%, -50%);
            pointer-events: none;
        }

        #thda-interactive .thda-orbit-ring.is-outer {
            width: min(76vh, 80vw, 680px);
            border-style: dashed;
        }

        #thda-interactive .thda-orbit-ring.is-inner {
            width: min(48vh, 51vw, 430px);
            opacity: 0.58;
        }

        #thda-interactive .thda-orbit-center {
            position: absolute;
            z-index: 2;
            left: 50%;
            top: 50%;
            width: min(390px, 58vw);
            transform: translate(-50%, -50%);
            pointer-events: none;
        }

        #thda-interactive .thda-orbit-center small {
            display: block;
            margin-bottom: 0.75rem;
            color: var(--thda-orange);
        }

        #thda-interactive .thda-orbit-center h2 {
            margin: 0;
            color: var(--thda-copper);
        }

        #thda-interactive .thda-orbit-subtitle {
            max-width: 360px;
            margin: 0.9rem auto 0;
            color: rgba(91, 50, 21, 0.82);
            text-wrap: balance;
        }

        #thda-interactive .thda-orbit-system {
            position: relative;
            z-index: 3;
            width: min(76vh, 80vw, 680px);
            aspect-ratio: 1;
            border-radius: 50%;
            transition: width 0.8s cubic-bezier(0.25, 1, 0.25, 1);
        }

        @keyframes thda-orbit-spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        @keyframes thda-counter-spin {
            from { transform: translate(-50%, -50%) rotate(0deg); }
            to { transform: translate(-50%, -50%) rotate(-360deg); }
        }

        #thda-interactive .thda-orbit-system {
            animation: thda-orbit-spin 54s linear infinite;
        }

        #thda-interactive .thda-orbit-node {
            position: absolute;
            width: auto;
            margin: 0;
            padding: 0;
            color: var(--thda-brown);
            background: transparent;
            border: 0;
            cursor: pointer;
            animation: thda-counter-spin 54s linear infinite;
        }

        #thda-interactive .thda-left-panel:hover .thda-orbit-system,
        #thda-interactive .thda-left-panel:hover .thda-orbit-node,
        #thda-interactive .thda-left-panel:focus-within .thda-orbit-system,
        #thda-interactive .thda-left-panel:focus-within .thda-orbit-node {
            animation-play-state: paused;
        }

        #thda-interactive .thda-node-circle {
            position: relative;
            width: clamp(54px, 7vw, 70px);
            height: clamp(54px, 7vw, 70px);
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            color: var(--thda-copper);
            background: var(--thda-cream);
            border: 2px solid rgba(91, 50, 21, 0.22);
            border-radius: 50%;
            box-shadow: 0 8px 20px rgba(38, 18, 1, 0.17);
            transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
        }

        #thda-interactive .thda-node-logo-group {
            width: 100%;
            height: 100%;
            display: grid;
            place-items: center;
            padding: 10px;
            pointer-events: none;
        }

        #thda-interactive .thda-node-logo-group.is-single {
            grid-template-columns: 1fr;
        }

        #thda-interactive .thda-node-logo-group.is-double {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 4px;
            padding: 8px 6px;
        }

        #thda-interactive .thda-node-logo-group img {
            width: 100%;
            height: 100%;
            min-width: 0;
            object-fit: contain;
        }

        #thda-interactive .thda-node-logo-group.is-double img:first-child {
            padding-right: 4px;
            border-right: 1px solid rgba(91, 50, 21, 0.18);
        }

        #thda-interactive .thda-node-more {
            position: absolute;
            right: 1px;
            bottom: 1px;
            min-width: 19px;
            height: 19px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0 4px;
            color: var(--thda-cream);
            background: var(--thda-orange);
            border: 2px solid var(--thda-cream);
            border-radius: 999px;
        }

        #thda-interactive .thda-node-series-count {
            position: absolute;
            right: 1px;
            bottom: 1px;
            min-width: 19px;
            height: 19px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0 4px;
            color: var(--thda-cream);
            background: var(--thda-orange);
            border: 2px solid var(--thda-cream);
            border-radius: 999px;
        }

        #thda-interactive .thda-node-fallback {
            color: var(--thda-copper);
        }

        #thda-interactive .thda-node-fallback.is-group {
        }

        #thda-interactive.has-many-projects .thda-node-circle {
            width: clamp(50px, 6vw, 62px);
            height: clamp(50px, 6vw, 62px);
        }

        #thda-interactive.has-many-projects .thda-node-label {
            max-width: 118px;
        }

        #thda-interactive .thda-node-label {
            position: absolute;
            left: 50%;
            top: calc(100% - 2px);
            max-width: 140px;
            color: #785538;
            transform: translateX(-50%) translateY(4px);
            transition: color 0.3s ease, transform 0.3s ease;
        }

        #thda-interactive .thda-orbit-node:hover .thda-node-circle,
        #thda-interactive .thda-orbit-node[aria-pressed="true"] .thda-node-circle {
            border-color: var(--thda-orange);
            box-shadow: 0 0 0 7px rgba(229, 159, 36, 0.16), 0 12px 28px rgba(38, 18, 1, 0.22);
            transform: scale(1.12);
        }

        #thda-interactive .thda-orbit-node:hover .thda-node-label,
        #thda-interactive .thda-orbit-node[aria-pressed="true"] .thda-node-label {
            color: var(--thda-orange);
            transform: translateX(-50%) translateY(8px);
        }

        #thda-interactive .thda-orbit-node:focus-visible {
            outline: 3px solid var(--thda-orange);
            outline-offset: 8px;
            border-radius: 999px;
        }

        #thda-interactive .thda-hint {
            position: absolute;
            z-index: 4;
            left: 50%;
            bottom: 2.2rem;
            width: calc(100% - 2rem);
            margin: 0;
            color: #8b6749;
            transform: translateX(-50%);
            transition: opacity 0.4s ease;
            pointer-events: none;
        }

        #thda-interactive .thda-layout.is-split .thda-hint {
            opacity: 0;
        }

        #thda-interactive .thda-project-box {
            position: relative;
            width: min(820px, 100%);
            min-height: 100%;
            display: flex;
            align-items: flex-end;
            overflow: hidden;
            color: var(--thda-cream);
            background: var(--thda-copper);
            border: 1px solid rgba(242, 184, 75, 0.35);
            border-radius: 1.1rem;
            box-shadow: 0 24px 70px rgba(20, 8, 0, 0.34);
        }

        #thda-interactive .thda-project-box.has-project-series {
            cursor: pointer;
            touch-action: pan-y;
        }

        #thda-interactive .thda-project-box:focus-visible {
            outline: 3px solid var(--thda-orange);
            outline-offset: 4px;
        }

        #thda-interactive .thda-project-image {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: sepia(0.08) saturate(1.08) brightness(0.94) contrast(1.03);
            transform: scale(1.02);
            transition: opacity 0.35s ease, transform 0.8s ease;
        }

        #thda-interactive .thda-project-overlay {
            position: absolute;
            inset: 0;
            background:
                linear-gradient(
                    to top,
                    rgba(38, 18, 1, 0.92) 0%,
                    rgba(38, 18, 1, 0.78) 28%,
                    rgba(38, 18, 1, 0.42) 52%,
                    rgba(38, 18, 1, 0.12) 74%,
                    rgba(38, 18, 1, 0.02) 100%
                ),
                linear-gradient(to right, rgba(38, 18, 1, 0.18), transparent 62%);
        }

        #thda-interactive .thda-project-copy {
            position: relative;
            z-index: 2;
            width: 100%;
            padding: clamp(1.5rem, 4vw, 3.6rem);
            opacity: 1;
            transform: translateY(0);
            transition: opacity 0.35s ease, transform 0.35s ease;
        }

        #thda-interactive .thda-project-copy.is-hidden {
            opacity: 0;
            transform: translateY(22px);
        }

        #thda-interactive .thda-project-copy.is-slide-out-left {
            opacity: 0;
            transform: translateX(-52px);
        }

        #thda-interactive .thda-project-copy.is-slide-out-right {
            opacity: 0;
            transform: translateX(52px);
        }

        #thda-interactive .thda-project-copy.is-slide-in-left,
        #thda-interactive .thda-project-copy.is-slide-in-right {
            opacity: 0;
            transition: none;
        }

        #thda-interactive .thda-project-copy.is-slide-in-left {
            transform: translateX(-52px);
        }

        #thda-interactive .thda-project-copy.is-slide-in-right {
            transform: translateX(52px);
        }

        #thda-interactive .thda-project-nav {
            position: absolute;
            z-index: 4;
            top: 1rem;
            right: 1rem;
            display: flex;
            align-items: center;
            gap: 0.45rem;
            padding: 0.35rem;
            color: var(--thda-cream);
            background: rgba(38, 18, 1, 0.68);
            border: 1px solid rgba(242, 184, 75, 0.42);
            border-radius: 999px;
            box-shadow: 0 8px 24px rgba(20, 8, 0, 0.24);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        #thda-interactive .thda-project-nav[hidden] {
            display: none;
        }

        #thda-interactive .thda-project-nav button {
            width: 34px;
            height: 34px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--thda-cream);
            background: rgba(255, 250, 242, 0.10);
            border: 1px solid rgba(255, 250, 242, 0.22);
            border-radius: 50%;
            transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
        }

        #thda-interactive .thda-project-nav button:hover,
        #thda-interactive .thda-project-nav button:focus-visible {
            color: var(--thda-copper);
            background: var(--thda-gold);
            border-color: var(--thda-gold);
            outline: none;
        }

        #thda-interactive .thda-project-nav span {
            min-width: 76px;
        }

        #thda-interactive .thda-project-meta {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 0.85rem;
            color: var(--thda-gold);
            text-shadow: 0 2px 12px rgba(20, 8, 0, 0.72);
        }

        #thda-interactive .thda-project-meta::before {
            content: "";
            width: 42px;
            height: 2px;
            background: var(--thda-orange);
        }

        #thda-interactive .thda-project-logos {
            min-height: 42px;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.55rem;
            margin-bottom: 1rem;
        }

        #thda-interactive .thda-project-logo-chip {
            min-width: 58px;
            height: 42px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.4rem 0.7rem;
            color: var(--thda-copper);
            background: rgba(255, 250, 242, 0.94);
            border: 1px solid rgba(242, 184, 75, 0.52);
            border-radius: 0.65rem;
        }

        #thda-interactive .thda-project-logo-chip img {
            width: auto;
            max-width: 96px;
            height: auto;
            max-height: 28px;
            object-fit: contain;
        }

        #thda-interactive .thda-project-logo-chip.is-text {
        }

        #thda-interactive .thda-project-title {
            margin: 0 0 1rem;
            color: var(--thda-cream);
            text-shadow: 0 3px 18px rgba(20, 8, 0, 0.82);
        }

        #thda-interactive .thda-project-title.is-compact {
        }

        #thda-interactive .thda-project-desc {
            max-width: 720px;
            margin: 0 0 1.4rem;
            color: #f8ead4;
            text-shadow: 0 2px 12px rgba(20, 8, 0, 0.88);
        }

        #thda-interactive .thda-project-facts {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.65rem;
        }

        #thda-interactive .thda-project-date {
            display: inline-flex;
            align-items: center;
            gap: 0.55rem;
            padding: 0.55rem 0.9rem;
            color: var(--thda-cream);
            background: rgba(255, 250, 242, 0.10);
            border: 1px solid rgba(255, 250, 242, 0.25);
            border-radius: 999px;
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }

        #thda-interactive .thda-project-date[hidden] {
            display: none;
        }

        #thda-interactive .thda-project-date small {
            color: #e6caa7;
        }

        @media (min-width: 1024px) {
            #thda-interactive .thda-layout {
                flex-direction: row;
            }

            #thda-interactive .thda-left-panel {
                width: 100%;
                height: 100%;
            }

            #thda-interactive .thda-right-panel {
                width: 0;
                height: 100%;
            }

            #thda-interactive .thda-layout.is-split .thda-left-panel {
                width: 42%;
                height: 100%;
            }

            #thda-interactive .thda-layout.is-split .thda-right-panel {
                width: 58%;
                height: 100%;
                padding: 1.2rem;
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-system,
            #thda-interactive .thda-layout.is-split .thda-orbit-ring.is-outer {
                width: min(63vh, 37vw, 520px);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-ring.is-inner {
                width: min(40vh, 24vw, 330px);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-center {
                width: min(240px, 22vw);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-center h2 {
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-subtitle {
                max-width: 230px;
                margin-top: 0.6rem;
            }

            #thda-interactive .thda-project-box {
                min-height: min(78vh, 720px);
            }
        }

        @media (max-width: 640px) {
            #thda-interactive .thda-layout {
                min-height: 720px;
            }

            #thda-interactive .thda-orbit-system,
            #thda-interactive .thda-orbit-ring.is-outer {
                width: min(68vh, 88vw, 430px);
            }

            #thda-interactive .thda-orbit-ring.is-inner {
                width: min(42vh, 55vw, 270px);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-system,
            #thda-interactive .thda-layout.is-split .thda-orbit-ring.is-outer {
                width: min(38vh, 78vw, 315px);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-ring.is-inner {
                width: min(24vh, 49vw, 200px);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-center h2 {
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-center {
                width: min(190px, 54vw);
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-subtitle {
                max-width: 180px;
                margin-top: 0.35rem;
            }

            #thda-interactive .thda-layout.is-split .thda-orbit-center small {
                margin-bottom: 0.4rem;
            }

            #thda-interactive .thda-layout.is-split .thda-node-circle {
                width: 46px;
                height: 46px;
            }

            #thda-interactive .thda-layout.is-split .thda-node-label {
                display: none;
            }

            #thda-interactive .thda-project-box {
                min-height: 100%;
            }

            #thda-interactive .thda-project-copy {
                padding: 1.3rem;
            }

            #thda-interactive .thda-project-nav {
                top: 0.65rem;
                right: 0.65rem;
                gap: 0.3rem;
                padding: 0.28rem;
            }

            #thda-interactive .thda-project-nav button {
                width: 30px;
                height: 30px;
            }

            #thda-interactive .thda-project-nav span {
                min-width: 64px;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            #thda-interactive .thda-orbit-system,
            #thda-interactive .thda-orbit-node {
                animation: none;
            }

            #thda-interactive .thda-orbit-node {
                transform: translate(-50%, -50%);
            }

            #thda-interactive .thda-left-panel,
            #thda-interactive .thda-right-panel,
            #thda-interactive .thda-project-copy {
                transition: none;
            }
        }

/* Bố cục mobile theo yêu cầu: biểu đồ 50% trên, nội dung 50% dưới. */
@media (max-width: 900px) {
  #gdp-interactive .gdp-sticky-chart {
    height: 50svh;
    padding: 0.5rem;
  }

  #gdp-interactive .gdp-chart-frame {
    height: calc(50svh - 1rem);
  }

  #gdp-interactive .gdp-text-sticky {
    top: 50svh;
    height: 50svh;
    padding: 0.5rem;
  }

  #gdp-interactive .gdp-text-stage {
    height: calc(50svh - 1rem);
  }

  #thda-interactive .thda-layout {
    height: 100svh;
    min-height: 680px;
  }

  #thda-interactive .thda-orbit-center {
    width: min(156px, 40vw);
  }

  #thda-interactive .thda-orbit-center h2 {
    font-size: clamp(1.3rem, 5.8vw, 1.55rem);
    line-height: 1.05;
    letter-spacing: 0.015em;
  }

  #thda-interactive .thda-orbit-subtitle {
    max-width: 156px;
    margin-top: 0.45rem;
    font-size: clamp(0.58rem, 2.55vw, 0.68rem);
    line-height: 1.38;
  }

  #thda-interactive .thda-node-label,
  #thda-interactive.has-many-projects .thda-node-label {
    max-width: 86px;
    font-size: 0.56rem;
    line-height: 1.18;
  }

  /* Trình duyệt nhúng trên điện thoại có thể làm lệch pha hai animation
     orbit/counter-orbit, khiến logo và nhãn node bị nghiêng. Trên mobile,
     giữ sơ đồ tĩnh và buộc mọi node luôn thẳng đứng. */
  #thda-interactive .thda-orbit-system,
  #thda-interactive .thda-orbit-node {
    animation: none !important;
  }

  #thda-interactive .thda-orbit-system {
    transform: none !important;
  }

  #thda-interactive .thda-orbit-node {
    transform: translate(-50%, -50%) !important;
  }

  #thda-interactive .thda-right-panel {
    visibility: hidden;
  }

  #thda-interactive .thda-layout.is-split .thda-left-panel {
    height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    pointer-events: none;
  }

  #thda-interactive .thda-layout.is-split .thda-right-panel {
    height: 100%;
    padding: 0.65rem;
    opacity: 1;
    visibility: visible;
    overflow-y: auto;
  }

  #thda-interactive .thda-project-box {
    min-height: 100%;
  }

  #thda-interactive .thda-back-button {
    position: absolute;
    z-index: 8;
    top: 0.8rem;
    left: 0.8rem;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.55rem 0.85rem;
    color: var(--thda-cream);
    background: rgba(38, 18, 1, 0.78);
    border: 1px solid rgba(242, 184, 75, 0.62);
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(20, 8, 0, 0.28);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  #thda-interactive .thda-back-button:focus-visible {
    outline: 3px solid var(--thda-gold);
    outline-offset: 3px;
  }
}

@media (min-width: 901px) {
  #thda-interactive .thda-back-button {
    display: none;
  }
}

/* Cover mobile dùng thẻ ảnh cơ bản để CMS nhận diện và không cắt mất nội dung. */
.hero-cover-mobile {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 767px) {
  .hero-banner {
    display: block;
    height: auto;
    min-height: 0;
    background-image: none;
  }

  .hero-banner.parallax,
  .quote1-parallax,
  .quote-parallax-2 {
    background-attachment: scroll;
  }
}

@media (min-width: 768px) {
  .hero-cover-mobile {
    display: none;
  }
}

/* Giảm lớp tối để nhìn rõ ảnh cinematic quote, vẫn giữ tương phản cho chữ. */
.quote-overlay {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.28) 0%,
    rgba(0, 0, 0, 0.40) 100%
  );
}

.quote1-parallax .quote-text,
.quote-parallax-2 .quote-text {
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72);
}

/* Typography theo thiết kế biên tập. */
.sapo-cinematic-container [class^="sapo-text-"] > p,
.sapo-cinematic-container [class^="sapo-text-"] > p *:not(.sapo-signature):not(.sapo-role) {
  font-family: 'Merriweather', Georgia, serif !important;
  font-size: 24px !important;
  line-height: 40.8px !important;
  font-weight: 300 !important;
  font-style: italic !important;
}

/* Sapo 2 và 3 dùng chữ đứng, cùng cỡ chữ với nội dung bài. */
.sapo-cinematic-container .sapo-text-2 > p,
.sapo-cinematic-container .sapo-text-2 > p *,
.sapo-cinematic-container .sapo-text-3 > p,
.sapo-cinematic-container .sapo-text-3 > p * {
  font-size: 19px !important;
  line-height: 35.15px !important;
  font-style: normal !important;
}

.sapo-cinematic-container .sapo-signature {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  font-family: 'Great Vibes', cursive !important;
  font-size: clamp(1.75rem, 7.8vw, 2.25rem) !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: -0.01em !important;
}

.sapo-cinematic-container .sapo-role {
  font-family: 'Merriweather', Georgia, serif !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
  font-weight: 300 !important;
  font-style: italic !important;
}

.content-wrap > p {
  font-family: 'Merriweather', Georgia, serif !important;
  font-size: 19px !important;
  line-height: 35.15px !important;
  font-weight: 300 !important;
  font-style: normal !important;
}

.content-wrap > p.question {
  font-weight: 700 !important;
  font-style: italic !important;
}

.source-link {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.source-link:hover,
.source-link:focus-visible {
  color: var(--primary-light);
}

@media (min-width: 768px) {
  .sapo-cinematic-container .sapo-signature {
    font-size: 3rem !important;
  }

  .sapo-cinematic-container .sapo-role {
    font-size: 18px !important;
    line-height: 28.8px !important;
  }
}

