/**
 * Green Vina — Textile Elegant Theme
 * Phong cách nhẹ nhàng, thanh tao, cao cấp — ngành dệt / webbing / phụ liệu may
 * Scope: .gv-textile-elegant (load sau các file CSS hiện có)
 */

/* ==========================================================================
   Design tokens
   ========================================================================== */
.gv-textile-elegant {
    --gv-logo-green: #07ff10;
    --gv-logo-green-soft: rgba(7, 255, 16, 0.14);
    --gv-logo-green-muted: #1faa28;
    --gv-logo-green-deep: #157a20;
    --gv-ink-soft: #1e2f28;
    --gv-ink-heading: #14261e;
    --gv-ink-muted: #5c6b64;
    --gv-bg-cream: #faf9f6;
    --gv-bg-mint: #f3f9f4;
    --gv-bg-sage: #e8f2ea;
    --gv-border-soft: rgba(20, 38, 30, 0.08);
    --gv-border-accent: rgba(7, 255, 16, 0.22);
    --gv-radius-soft: 12px;
    --gv-radius-pill: 999px;
    --gv-shadow-soft: 0 8px 32px rgba(20, 38, 30, 0.06);
    --gv-shadow-card: 0 12px 40px rgba(20, 38, 30, 0.08);
    --gv-font-display: "Cormorant Garamond", Georgia, serif;
    --gv-font-ui: "DM Sans", "Roboto", sans-serif;

    /* Ghi đè token cũ — giảm neon, dùng xanh logo làm điểm nhấn */
    --gv-green: #157a20;
    --gv-green-dark: #0f2419;
    --gv-orange: var(--gv-logo-green-muted);
    --gv-orange-hover: var(--gv-logo-green-deep);
    --gv-ink: var(--gv-ink-soft);
    --gv-muted: var(--gv-ink-muted);
    --gv-bg: var(--gv-bg-mint);
    --gv-brand-neon: var(--gv-logo-green-muted);
    --gv-brand-neon-bright: var(--gv-logo-green);
    --gv-brand-neon-dark: var(--gv-logo-green-deep);
    --gv-brand-black: var(--gv-ink-heading);
    --gv-header-bg: rgba(255, 255, 255, 0.92);
    --gv-fiber-neon: var(--gv-logo-green-muted);
    --gv-fiber-neon-bright: var(--gv-logo-green);
    --gv-fiber-neon-glow: rgba(7, 255, 16, 0.18);
    --gv-fiber-black: var(--gv-ink-heading);
    --gv-fiber-charcoal: var(--gv-bg-cream);
    --gv-fiber-cream: var(--gv-bg-cream);
    --gv-fiber-grey: var(--gv-ink-muted);
    --gv-fiber-grey-light: #7a8a82;
}

/* Họa tiết vân sợi dệt dùng chung */
.gv-textile-elegant .gv-weave-pattern {
    background-image:
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 5px,
            rgba(7, 255, 16, 0.04) 5px,
            rgba(7, 255, 16, 0.04) 6px
        ),
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 14px,
            rgba(20, 38, 30, 0.03) 14px,
            rgba(20, 38, 30, 0.03) 15px
        );
}

/* ==========================================================================
   Base typography
   ========================================================================== */
.gv-textile-elegant {
    font-family: var(--gv-font-ui);
    color: var(--gv-ink-soft);
    background: var(--gv-bg-cream);
}

.gv-textile-elegant h1,
.gv-textile-elegant h2,
.gv-textile-elegant h3,
.gv-textile-elegant h4,
.gv-textile-elegant h5,
.gv-textile-elegant h6 {
    font-family: var(--gv-font-ui);
    font-weight: 600;
    color: var(--gv-ink-heading);
    letter-spacing: -0.01em;
}

.gv-textile-elegant .text-accent {
    color: var(--gv-logo-green-muted) !important;
}

/* ==========================================================================
   Header — textile elegant (bổ sung greenvina-header.css)
   ========================================================================== */
.gv-textile-elegant .gv-fiber-header {
    background: #ffffff !important;
    box-shadow: 0 1px 0 var(--gv-border-soft);
}

.gv-textile-elegant .gv-fiber-header .gv-header-weave {
    opacity: 0.03;
}

.gv-textile-elegant .gv-fiber-header .gv-logo-link {
    background: transparent;
    border: none;
    box-shadow: none;
}

.gv-textile-elegant .gv-fiber-header .gv-nav-link::after {
    background: var(--gv-logo-green-muted);
    height: 2px;
}

.gv-textile-elegant .gv-fiber-header .gv-nav-link:hover,
.gv-textile-elegant .gv-fiber-header .gv-nav-link.is-active,
.gv-textile-elegant .gv-fiber-header .has-megamenu.is-open > .gv-nav-link {
    color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-fiber-header .gv-btn-header-cta {
    background: var(--gv-logo-green-deep);
    border-color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-fiber-header .gv-btn-header-cta:hover {
    background: var(--gv-logo-green-muted);
    border-color: var(--gv-logo-green-muted);
}

.gv-textile-elegant .gv-fiber-header .gv-search-toggle:hover,
.gv-textile-elegant .gv-fiber-header .gv-icon-btn:hover {
    border-color: var(--gv-border-accent);
}

.gv-textile-elegant .gv-fiber-header .gv-megamenu-panel {
    border-color: var(--gv-border-soft);
    box-shadow: var(--gv-shadow-card);
}

.gv-textile-elegant .gv-fiber-header .gv-mega-eyebrow::before {
    background: var(--gv-logo-green);
}

.gv-textile-elegant .gv-fiber-header .gv-mega-title {
    font-family: var(--gv-font-display);
}

/* Header trên hero — luôn nền trắng */
.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-site-header.gv-fiber-header,
.gv-textile-elegant .gv-site-header.gv-fiber-header.gv-header-on-hero:not(.is-scrolled),
.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .gv-utility-bar,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-utility-bar {
    background: #ffffff !important;
    box-shadow: 0 1px 0 var(--gv-border-soft);
}

.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .gv-utility-bar,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-utility-bar {
    background: #f7fbf8 !important;
}

.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .gv-utility-links a,
.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .top-link,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-utility-links a,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .top-link {
    color: var(--gv-ink-muted);
}

.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-site-header.gv-fiber-header .gv-nav-link,
.gv-textile-elegant .gv-site-header.gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-nav-link {
    color: var(--gv-ink-heading) !important;
}

.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .gv-icon-btn,
.gv-textile-elegant.gv-page-home:not(.is-scrolled):not(.gv-search-open):not(.gv-mobile-open):not(.gv-mega-open) .gv-fiber-header .gv-hamburger,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-icon-btn,
.gv-textile-elegant .gv-fiber-header.gv-header-on-hero:not(.is-scrolled) .gv-hamburger {
    color: var(--gv-logo-green-deep);
    border-color: var(--gv-border-soft);
    background: #fff;
}

.gv-textile-elegant.is-scrolled .gv-fiber-header,
.gv-textile-elegant .gv-fiber-header.is-scrolled {
    background: #ffffff !important;
    box-shadow: var(--gv-shadow-soft);
}

.gv-textile-elegant.gv-page-home .gv-header-spacer {
    height: 0 !important;
}

/* Đồng bộ padding ngang header / footer với Bootstrap .container */
.gv-textile-elegant .gv-site-header .gv-utility-inner,
.gv-textile-elegant .gv-site-header .gv-header-wrap > .container,
.gv-textile-elegant .gv-textile-footer .footer-content > .container,
.gv-textile-elegant .gv-textile-footer .footer-bottom > .container {
    width: 100%;
    max-width: var(--gv-container, 1320px);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--bs-gutter-x, 0.75rem);
    padding-right: var(--bs-gutter-x, 0.75rem);
}

/* Mobile drawer */
.gv-textile-elegant .gv-mobile-drawer-panel {
    background: #fff;
}

.gv-textile-elegant .gv-mobile-drawer-head {
    background: var(--gv-bg-cream);
}

.gv-textile-elegant .gv-mobile-nav-list > li > a:hover,
.gv-textile-elegant .gv-mobile-accordion-btn:hover {
    color: var(--gv-logo-green-deep);
    background: var(--gv-logo-green-soft);
}

.gv-textile-elegant .gv-mobile-cta-quote {
    background: var(--gv-logo-green-deep) !important;
    border-color: var(--gv-logo-green-deep) !important;
    border-radius: var(--gv-radius-pill) !important;
}

.gv-textile-elegant .gv-mobile-cta-quote:hover {
    background: var(--gv-ink-heading) !important;
    border-color: var(--gv-ink-heading) !important;
}

/* Search panel */
.gv-textile-elegant .gv-search-panel {
    background: rgba(250, 249, 246, 0.97);
}

.gv-textile-elegant .gv-search-input {
    border-color: var(--gv-border-soft);
    background: #fff;
}

.gv-textile-elegant .gv-btn-primary,
.gv-textile-elegant .gv-search-submit {
    background: var(--gv-logo-green-deep) !important;
    color: #fff !important;
    box-shadow: none;
}

.gv-textile-elegant .gv-btn-primary:hover,
.gv-textile-elegant .gv-search-submit:hover {
    background: var(--gv-ink-heading) !important;
}

/* ==========================================================================
   Home — Hero
   ========================================================================== */
.gv-textile-elegant .gv-textile-hero,
.gv-textile-elegant .gv-page-home .gv-fiber-hero {
    background:
        linear-gradient(135deg, var(--gv-bg-cream) 0%, var(--gv-bg-mint) 48%, #eef6f0 100%);
    min-height: auto;
    margin-top: calc(var(--gv-header-height, 120px) * -1);
    padding-top: calc(var(--gv-header-height, 120px) + 2rem);
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__weave {
    opacity: 0.35;
    background-image:
        repeating-linear-gradient(90deg, transparent, transparent 6px, rgba(7, 255, 16, 0.05) 6px, rgba(7, 255, 16, 0.05) 7px),
        repeating-linear-gradient(0deg, transparent, transparent 18px, rgba(20, 38, 30, 0.025) 18px, rgba(20, 38, 30, 0.025) 19px);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__glow {
    background: radial-gradient(circle, rgba(7, 255, 16, 0.08) 0%, transparent 68%);
    top: 5%;
    left: auto;
    right: -8%;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__copy .gv-field-headline h1 {
    font-family: var(--gv-font-ui);
    font-weight: 700;
    font-size: clamp(2rem, 4.8vw, 3.75rem);
    line-height: 1.08;
    color: var(--gv-ink-heading);
    text-transform: none;
    letter-spacing: -0.02em;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__copy .gv-field-headline h1 em {
    font-family: var(--gv-font-display);
    font-style: italic;
    font-weight: 500;
    color: var(--gv-logo-green-deep);
    text-shadow: none;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__subtitle {
    color: var(--gv-ink-muted);
    font-size: clamp(1.05rem, 1.8vw, 1.3rem);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__trust {
    border-top-color: var(--gv-border-soft);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__trust-item strong {
    color: var(--gv-logo-green-deep);
    font-size: 1.2rem;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__trust-item span {
    color: var(--gv-ink-muted);
    letter-spacing: 0.06em;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__frame {
    border-radius: var(--gv-radius-soft);
    box-shadow: var(--gv-shadow-card);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__frame::before {
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.15) 0%, transparent 45%, rgba(7, 255, 16, 0.04) 100%);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__frame::after {
    border: 1px solid var(--gv-border-accent);
    border-radius: var(--gv-radius-soft);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__badge {
    background: #fff;
    color: var(--gv-ink-heading);
    border: 2px solid var(--gv-logo-green-muted);
    box-shadow: var(--gv-shadow-soft);
    rotate: -6deg;
    font-family: var(--gv-font-display);
    font-weight: 600;
    font-size: 0.9rem;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__badge b {
    color: var(--gv-logo-green-deep);
    font-family: var(--gv-font-ui);
    font-weight: 700;
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__scroll {
    color: var(--gv-ink-muted);
}

.gv-textile-elegant .gv-page-home .gv-fiber-hero__scroll i {
    color: var(--gv-logo-green-muted);
}

/* Buttons & links — home */
.gv-textile-elegant .gv-page-home .gv-field-eyebrow {
    color: var(--gv-logo-green-deep);
    letter-spacing: 0.18em;
    font-weight: 500;
}

.gv-textile-elegant .gv-page-home .gv-field-eyebrow--serif {
    color: var(--gv-ink-muted);
    font-size: 1rem;
}

.gv-textile-elegant .gv-page-home .gv-sonoco-button--pill,
.gv-textile-elegant .gv-page-home .gv-fiber-btn--primary,
.gv-textile-elegant .gv-page-home .gv-cta-large .gv-sonoco-button--large,
.gv-textile-elegant .gv-page-home .gv-cta-medium .gv-sonoco-button--large {
    background: var(--gv-logo-green-deep);
    border-color: var(--gv-logo-green-deep);
    color: #fff !important;
    border-radius: var(--gv-radius-pill);
    box-shadow: 0 4px 16px rgba(21, 122, 32, 0.2);
    text-transform: none;
    letter-spacing: 0.04em;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-sonoco-button--pill:hover,
.gv-textile-elegant .gv-page-home .gv-fiber-btn--primary:hover,
.gv-textile-elegant .gv-page-home .gv-cta-large .gv-sonoco-button--large:hover,
.gv-textile-elegant .gv-page-home .gv-cta-medium .gv-sonoco-button--large:hover {
    background: var(--gv-ink-heading);
    border-color: var(--gv-ink-heading);
    color: #fff !important;
    box-shadow: 0 6px 20px rgba(20, 38, 30, 0.15);
    transform: translateY(-2px);
}

.gv-textile-elegant .gv-page-home .gv-fiber-btn--outline {
    border-color: var(--gv-border-soft);
    color: var(--gv-ink-heading) !important;
    background: rgba(255, 255, 255, 0.7);
}

.gv-textile-elegant .gv-page-home .gv-fiber-btn--outline:hover {
    border-color: var(--gv-logo-green-muted);
    color: var(--gv-logo-green-deep) !important;
    background: var(--gv-logo-green-soft);
}

.gv-textile-elegant .gv-page-home .gv-sonoco-link {
    color: var(--gv-logo-green-deep);
    text-transform: none;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-sonoco-link:hover {
    color: var(--gv-ink-heading);
    border-bottom-color: var(--gv-logo-green-muted);
}

/* ==========================================================================
   Home — Quy trình sản xuất
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-fiber-process {
    background: #fff;
    border-top: 1px solid var(--gv-border-soft);
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__header h2 {
    font-weight: 600;
    text-transform: none;
    color: var(--gv-ink-heading);
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__grid {
    gap: 1.25rem;
    background: transparent;
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__card {
    background: var(--gv-bg-mint);
    border: 1px solid var(--gv-border-soft);
    border-radius: var(--gv-radius-soft);
    padding: clamp(1.75rem, 3vw, 2.5rem);
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__card:hover {
    background: #fff;
    transform: translateY(-4px);
    box-shadow: var(--gv-shadow-soft);
    border-color: var(--gv-border-accent);
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__icon {
    width: 56px;
    height: 56px;
    border-color: var(--gv-border-accent);
    color: var(--gv-logo-green-deep);
    background: #fff;
    font-size: 1.25rem;
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__card:hover .gv-fiber-process__icon {
    box-shadow: none;
    border-color: var(--gv-logo-green-muted);
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__card h3 {
    text-transform: none;
    letter-spacing: 0.02em;
    color: var(--gv-ink-heading);
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-fiber-process__card p {
    color: var(--gv-ink-muted);
}

/* ==========================================================================
   Home — Tin tức carousel
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber {
    background: var(--gv-bg-mint);
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-carousel-item-highlight {
    background: #fff;
    border: 1px solid var(--gv-border-soft);
    border-radius: var(--gv-radius-soft);
    box-shadow: var(--gv-shadow-soft);
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-carousel-item-copy h2 {
    color: var(--gv-ink-heading);
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-field-eyebrow {
    color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-sonoco-link {
    color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-carousel-item-image {
    border-radius: 8px;
    overflow: hidden;
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-carousel-arrow {
    border-color: var(--gv-border-accent);
    color: var(--gv-logo-green-deep);
    border-radius: 50%;
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-carousel-arrow:hover:not(:disabled) {
    background: var(--gv-logo-green-deep);
    color: #fff;
    border-color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-slider-dot {
    background: rgba(20, 38, 30, 0.12);
}

.gv-textile-elegant .gv-page-home .gv-carousel-highlight.theme-fiber .gv-slider-dot.is-active {
    background: var(--gv-logo-green-muted);
}

/* ==========================================================================
   Home — Thống kê
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-stats-layer {
    background: #fff;
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.gv-textile-elegant .gv-page-home .gv-stats-layer-copy .gv-field-headline h2 {
    text-transform: none;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-stat-circle {
    border-radius: 50%;
    border-color: var(--gv-border-soft);
    background: var(--gv-bg-cream);
}

.gv-textile-elegant .gv-page-home .gv-stat-circle:hover {
    box-shadow: 0 16px 40px rgba(7, 255, 16, 0.1);
}

.gv-textile-elegant .gv-page-home .gv-stat-number {
    color: var(--gv-logo-green-deep);
    font-weight: 700;
}

.gv-textile-elegant .gv-page-home .gv-stat-label {
    color: var(--gv-ink-muted);
}

/* ==========================================================================
   Home — Danh mục
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-launchpad-icon {
    background: var(--gv-bg-cream);
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.gv-textile-elegant .gv-page-home .gv-launchpad-icon-header .gv-field-headline h2 {
    text-transform: none;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-launchpad-icon-card {
    border-radius: var(--gv-radius-soft);
    border: 1px solid var(--gv-border-soft);
    border-top: 3px solid transparent;
    background: #fff;
    box-shadow: var(--gv-shadow-soft);
}

.gv-textile-elegant .gv-page-home .gv-launchpad-icon-card:hover {
    border-top-color: var(--gv-logo-green-muted);
    box-shadow: var(--gv-shadow-card);
}

.gv-textile-elegant .gv-page-home .gv-launchpad-icon-media i {
    color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-launchpad-icon-card h3 {
    text-transform: none;
    letter-spacing: 0.02em;
    color: var(--gv-ink-heading);
}

.gv-textile-elegant .gv-page-home .gv-launchpad-arrow {
    border-radius: 50%;
    border-color: var(--gv-border-accent);
    color: var(--gv-logo-green-deep);
    background: #fff;
}

.gv-textile-elegant .gv-page-home .gv-launchpad-arrow:hover:not(:disabled) {
    background: var(--gv-logo-green-deep);
    color: #fff;
    border-color: var(--gv-logo-green-deep);
}

/* ==========================================================================
   Home — Sản phẩm nổi bật
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-insights-layer {
    background: linear-gradient(180deg, #fff 0%, var(--gv-bg-mint) 100%);
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.gv-textile-elegant .gv-page-home .gv-insights-header .gv-field-headline h2 {
    color: var(--gv-ink-heading);
    text-transform: none;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-insights-header .gv-sonoco-button {
    background: transparent;
    border: 1.5px solid var(--gv-logo-green-deep);
    color: var(--gv-logo-green-deep) !important;
    border-radius: var(--gv-radius-pill);
}

.gv-textile-elegant .gv-page-home .gv-insights-header .gv-sonoco-button:hover {
    background: var(--gv-logo-green-deep);
    color: #fff !important;
    border-color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-insight-teaser {
    border-radius: var(--gv-radius-soft);
    border: 1px solid var(--gv-border-soft);
    box-shadow: var(--gv-shadow-soft);
    overflow: hidden;
    background: #fff;
}

.gv-textile-elegant .gv-page-home .gv-insight-teaser:hover {
    border-color: var(--gv-border-accent);
    box-shadow: var(--gv-shadow-card);
}

.gv-textile-elegant .gv-page-home .gv-insight-category {
    background: var(--gv-logo-green-soft);
    color: var(--gv-logo-green-deep);
    border-radius: var(--gv-radius-pill);
    font-weight: 600;
    letter-spacing: 0.05em;
}

.gv-textile-elegant .gv-page-home .gv-insight-teaser h3 {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.4) 55%, transparent 100%);
    color: var(--gv-ink-heading);
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-insight-teaser h3 span {
    color: var(--gv-ink-heading);
}

/* ==========================================================================
   Home — CTA sections
   ========================================================================== */
.gv-textile-elegant .gv-page-home .gv-cta-large {
    background: var(--gv-bg-sage);
    border-top: 1px solid var(--gv-border-soft);
    border-radius: 0;
}

.gv-textile-elegant .gv-page-home .gv-cta-large-image::after {
    background: linear-gradient(90deg, var(--gv-bg-sage) 0%, rgba(232, 242, 234, 0.4) 50%, transparent 100%);
}

.gv-textile-elegant .gv-page-home .gv-cta-large-copy .gv-field-headline h2 {
    color: var(--gv-ink-heading);
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-cta-large-copy .gv-field-headline h2 em {
    font-family: var(--gv-font-display);
    font-style: italic;
    color: var(--gv-logo-green-deep);
}

.gv-textile-elegant .gv-page-home .gv-about-highlights i {
    color: var(--gv-logo-green-muted);
}

.gv-textile-elegant .gv-page-home .gv-cta-medium {
    background: var(--gv-ink-heading);
    position: relative;
    overflow: hidden;
}

.gv-textile-elegant .gv-page-home .gv-cta-medium::before {
    background:
        repeating-linear-gradient(90deg, transparent, transparent 48px, rgba(7, 255, 16, 0.04) 48px, rgba(7, 255, 16, 0.04) 49px);
    opacity: 0.6;
}

.gv-textile-elegant .gv-page-home .gv-cta-medium-image {
    opacity: 0.22;
}

.gv-textile-elegant .gv-page-home .gv-cta-medium-copy .gv-field-headline h2 {
    color: #fff;
    font-weight: 600;
}

.gv-textile-elegant .gv-page-home .gv-cta-medium-copy .gv-field-headline h2 span {
    color: var(--gv-logo-green);
    text-shadow: none;
}

.gv-textile-elegant .gv-page-home .gv-cta-medium-lead {
    color: rgba(255, 255, 255, 0.78);
}

/* ==========================================================================
   Footer — xanh đậm mềm, không đen tuyền
   ========================================================================== */
.gv-textile-elegant .gv-textile-footer {
    background: var(--gv-green-dark);
    color: rgba(255, 255, 255, 0.88);
    position: relative;
    overflow: hidden;
}

.gv-textile-elegant .gv-textile-footer .gv-footer-weave {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.35;
    background-image:
        repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(7, 255, 16, 0.04) 8px, rgba(7, 255, 16, 0.04) 9px),
        repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(255, 255, 255, 0.02) 20px, rgba(255, 255, 255, 0.02) 21px);
}

.gv-textile-elegant .gv-textile-footer .footer-content {
    position: relative;
    z-index: 1;
    padding: clamp(3rem, 6vw, 4.5rem) 0 2.5rem;
}

.gv-textile-elegant .gv-textile-footer .gv-footer-logo-img {
    max-height: 52px;
    width: auto;
    background: #fff;
    padding: 6px 10px;
    border-radius: 8px;
}

.gv-textile-elegant .gv-textile-footer .gv-footer-brand-name {
    font-family: var(--gv-font-display);
    font-size: 1.75rem;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.04em;
}

.gv-textile-elegant .gv-textile-footer .footer-heading {
    font-family: var(--gv-font-ui);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0.03em;
    font-size: 1rem;
    color: #fff;
}

.gv-textile-elegant .gv-textile-footer .footer-heading::after {
    background: var(--gv-logo-green-muted);
    width: 32px;
    height: 2px;
}

.gv-textile-elegant .gv-textile-footer .footer-desc {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.75;
    max-width: 36ch;
}

.gv-textile-elegant .gv-textile-footer .footer-links a {
    color: rgba(255, 255, 255, 0.72);
}

.gv-textile-elegant .gv-textile-footer .footer-links a:hover {
    color: var(--gv-logo-green);
    transform: translateX(3px);
}

.gv-textile-elegant .gv-textile-footer .footer-social a {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.gv-textile-elegant .gv-textile-footer .footer-social a:hover {
    background: var(--gv-logo-green-muted);
    border-color: var(--gv-logo-green-muted);
    transform: translateY(-2px);
}

.gv-textile-elegant .gv-textile-footer .footer-contact {
    color: rgba(255, 255, 255, 0.72);
}

.gv-textile-elegant .gv-textile-footer .footer-contact a {
    color: rgba(255, 255, 255, 0.88);
}

.gv-textile-elegant .gv-textile-footer .footer-contact a:hover {
    color: var(--gv-logo-green);
}

.gv-textile-elegant .gv-textile-footer .footer-newsletter input {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.15);
    border-radius: var(--gv-radius-pill);
    padding-right: 3rem;
}

.gv-textile-elegant .gv-textile-footer .btn-accent {
    background: var(--gv-logo-green-muted);
    border-radius: 0 var(--gv-radius-pill) var(--gv-radius-pill) 0;
}

.gv-textile-elegant .gv-textile-footer .btn-accent:hover {
    background: var(--gv-logo-green);
}

.gv-textile-elegant .gv-textile-footer .footer-bottom {
    background: rgba(0, 0, 0, 0.18);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    position: relative;
    z-index: 1;
}

.gv-textile-elegant .gv-textile-footer .copyright-text {
    color: rgba(255, 255, 255, 0.55);
}

/* Scroll top */
.gv-textile-elegant .scroll-top {
    background: var(--gv-logo-green-deep);
    color: #fff;
    border-radius: 50%;
    box-shadow: var(--gv-shadow-soft);
}

.gv-textile-elegant .scroll-top:hover {
    background: var(--gv-ink-heading);
}

/* Chat widget — đồng bộ tông xanh mềm */
.gv-textile-elegant #chat-btn,
.gv-textile-elegant #chat-header,
.gv-textile-elegant .msg-user {
    background: var(--gv-logo-green-deep);
}

.gv-textile-elegant #send-btn {
    color: var(--gv-logo-green-deep);
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 991.98px) {
    .gv-textile-elegant .gv-page-home .gv-fiber-hero {
        padding-top: calc(var(--gv-header-height, 100px) + 1.5rem);
    }

    .gv-textile-elegant .gv-page-home .gv-fiber-hero__badge {
        width: 110px;
        height: 110px;
        font-size: 0.8rem;
        bottom: -1rem;
        left: 0.5rem;
    }

    .gv-textile-elegant .gv-page-home .gv-insights-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

@media (max-width: 575.98px) {
    .gv-textile-elegant .gv-page-home .gv-fiber-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .gv-textile-elegant .gv-page-home .gv-fiber-hero__actions .gv-sonoco-button,
    .gv-textile-elegant .gv-page-home .gv-fiber-hero__actions .gv-fiber-btn {
        justify-content: center;
        text-align: center;
    }

    .gv-textile-elegant .gv-page-home .gv-fiber-hero__trust {
        gap: 1rem 1.5rem;
    }
}
