/*
 * Custom CSS for: About
 * Page: /about
 * Generated: 2026-04-15 06:17:56
 */

/* ============================================
  ABOUT US PAGE
=============================================== */
/* Headings */
.about-section .about-label {
    font-family: var(--jdg-heading-font-family);
    font-weight: 400;
    text-transform: uppercase;
    font-size: clamp(0.75rem, 0.7vw, 0.875rem);
    letter-spacing: 1px;
    color: #7c7c7c;
}

.about-section .about-title {
    margin-top: 12px;
}

.about-section .about-desc,
p.tech-inner-title {
    color: var(--jdg-white);
    font-family: var(--jdg-heading-font-family);
    font-weight: 400;
    font-size: clamp(1.375rem, 1.2vw, 1.625rem);
    line-height: normal;
}

/* Card */
.about-section .about-card {
    border-radius: 20px;
    padding: 40px 41px;
    margin-bottom: 80px;
    background: linear-gradient(
        180deg,
        rgba(10, 10, 10, 0.6) 0%,
        rgba(10, 10, 10, 0.8) 100%
    );
    box-shadow: none;
}

/* Image */
.about-section .about-image-wrapper {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    background: #00000078;
    padding: 10px;
}

.about-section .about-image-wrapper img {
    width: 100%;
    display: block;
    transition: opacity 0.3s ease;
}

.about-section .image-plus {
    position: absolute;
    top: 15px;
    left: 15px;
    font-size: clamp(0.875rem, 0.8vw, 1rem);
    line-height: 1px;
    width: 34px;
    font-family: "Roboto", sans-serif;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    z-index: 2;
}

.about-section .image-caption {
    font-size: clamp(1rem, 1vw, 1.25rem);
    padding: 16px 0 0;
    font-family: Funnel Display;
    font-weight: 400;
    text-align: center;
    color: var(--jdg-white);
    transition: opacity 0.3s ease;
}

/* Tabs */
.about-section .about-tabs {
    gap: 30px;
}

.about-section .about-top-align-center{
  align-items: center;
}

.about-section .about-desc{
  margin: auto;
}

.about-section .about-tabs .nav-link {
    background: none !important;
    border: none !important;
    color: var(--jdg-gray);
    padding: 10px 0 15px;
    font-family: var(--jdg-heading-font-family);
    font-weight: 400;
    font-size: clamp(1.25rem, 1.2vw, 1.5rem);
}

.about-section .about-tabs .nav-link.active {
    color: #fff;
}

.tab-pane p {
    color: #fff !important;
}

/* Stats */
.about-section .stats-row {
    margin-top: 60px;
}

.about-section .stat-label {
    font-family: var(--jdg-heading-font-family);
    font-size: clamp(0.75rem, 0.7vw, 0.875rem);
    text-transform: uppercase;
    width: 80%;
    align-items: center;
    color: var(--jdg-gray);
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.about-section .stat-label + .stat-value::before {
    content: "";
    display: block;
    width: 80%;
    height: 1px;
    background: var(--jdg-gray);;
    margin-bottom: 14px;
}

.about-section .stat-value {
    font-size: clamp(5rem, 4vw, 6.25rem);
    color: var(--jdg-white);
}

/* ===============================
   IMAGE
================================ */

.c-img {
    position: relative;
}

.c-img img {
    width: 100%;
    max-width: 100%;
    height: 100%;
    border-radius: 25px;
    object-fit: cover;
}

.image-side,
.c-img {
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-side {
    flex: 1 1 100%;
    transition: flex 0.5s ease;
}

/* ===============================
   CARD BOX
================================ */

.card-box {
    display: flex;
    align-items: center;
    padding: 10px;
    gap: 0;
    background: #000000;
    border-radius: 25px;
    position: relative;
    width: 100%;
    height: 470px;
    flex: 1;
    overflow: hidden;
    transition: flex 0.5s ease;
}

.card-flex {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.card-flex:hover .card-box {
    flex: 0.6;
}

.card-flex .card-box:hover {
    flex: 1.4;
}

/* --- CSS OVERRIDE TO PREVENT TEXT WRAPPING --- */

/* 1. Force the inner elements to a fixed width so they don't reflow */
.card-box .text-side h3,
.card-box .text-side p {
    /* This creates a 'virtual' container width of 350px 
       so the text stays put while the parent slides over it */
    min-width: 20vw !important;
    white-space: normal;
    /* Allows normal wrapping within the 350px */
    display: block !important;
}

/* 2. Ensure the text-side doesn't try to 'squeeze' its children */
.card-box .text-side {
    display: block !important;
    /* Block handles the 'curtain' effect better than flex here */
    overflow: hidden !important;
}

/* 3. Smooth out the reveal */
.card-box:hover .text-side {
    /* We keep your 45% flex, but the content inside is now 350px wide constant */
    opacity: 1 !important;
    transition:
        flex 0.5s ease,
        opacity 0.3s ease 0.1s !important;
}

/* ===============================
   TEXT SIDE
================================ */

.text-side {
    flex: 0 0 0%;
    opacity: 0;
    padding-left: 0;
    overflow: hidden;
    min-width: 0;
    overflow-y: auto;
    transition:
        flex 0.5s ease,
        opacity 0.4s ease,
        padding 0.5s ease;
}

.card-box:hover .image-side {
    flex: 0 0 55%;
}

.card-box:hover .text-side {
    flex: 0 0 45%;
    opacity: 1;
    padding-left: 30px;
}

/* ===============================
   TEXT STYLES
================================ */

.text-side h3 {
    font-size: clamp(1.375rem, 1.2vw, 1.625rem);
    line-height: 32px;
    color: var(--jdg-white);
    margin-bottom: 50px;
}

.text-side p {
    font-size: clamp(1rem, 0.8vw, 1.125rem);
    line-height: 28px;
    color: var(--jdg-gray);
    margin: 0;
}

/* ===============================
   NAME
================================ */

.c-name {
    position: absolute;
    margin-top: -100px;
    margin-left: 36px;
    font-family: var(--jdg-heading-font-family);
    font-style: normal;
    font-weight: 600;
    font-size: clamp(1.5625rem, 1.8vw, 2rem);
    line-height: 42px;
    color: var(--jdg-white);
}

/* ===============================
   MISC
================================ */

.spacer-line {
    text-align: center;
}

/* history section */
.title-cn h4 {
    font-weight: 400;
    font-size: clamp(0.75rem, 0.7vw, 0.875rem);
    line-height: 100%;
    text-transform: uppercase;
    color: var(--jdg-white);
}

.title-cn .section-main-title {
  width: 55%;
}

/*.title-cn h2 {*/
/*    font-weight: 400;*/
/*    font-size: clamp(2.1875rem, 2vw, 3rem);*/
/*    line-height: 58px;*/
/*    letter-spacing: -0.03em;*/
/*    color: var(--jdg-white);*/
/*}*/

.title-cn {
    margin-bottom: 97px;
}

/* timeline section */
.year-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 40px;
    gap: 10px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(229, 229, 229, 0.2);
    border-radius: 20px;
    margin-bottom: 30px;
}

.year-info h3 {
    font-weight: 400;
    font-size: clamp(3rem, 4vw, 6.25rem);
    line-height: 58px;
    letter-spacing: -0.03em;
    color: var(--jdg-white);
    margin-bottom: 50px;
}

.year-info h6 {
    font-weight: 400;
    font-size: clamp(1.25rem, 1.2vw, 1.5rem);
    line-height: 100%;
    letter-spacing: -0.03em;
    color: var(--jdg-white);
    margin-bottom: 10px;
}

.year-info p {
    font-size: clamp(1rem, 0.8vw, 1.125rem);
    line-height: 28px;
    color: var(--jdg-gray);
    margin: 0;
}

.timeline-section {
    display: flex;
    justify-content: space-between;
    gap: 35px;
}

.timeline-image {
    flex-shrink: 0.4;
}

.timeline-image img {
    max-width: 100%;
}

/* new */
.timeline-section {
    display: flex;
    justify-content: space-between;
    gap: 35px;
    position: relative;
    padding: 50px 0;
}

.timeline-box {
    flex: 1;
    max-width: 45%;
}

.year-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 40px;
    gap: 10px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(229, 229, 229, 0.2);
    border-radius: 20px;
    margin-bottom: 30px;
    min-height: 280px;
    opacity: 0.4;
    transform: translateX(-20px);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.year-info.active {
    opacity: 1;
    transform: translateX(0);
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(229, 229, 229, 0.5);
}

.year-info.active h3 {
    opacity: 1;
}

/* Timeline Line */
.timeline-line {
    flex-shrink: 0;
    width: 60px;
    display: flex;
    justify-content: center;
}

.timeline-line img {
    height: 100%;
    object-fit: contain;
}

/* Sticky Image Container */
.timeline-image {
    flex: 1;
    max-width: 40%;
    position: sticky;
    top: 100px;
    padding-bottom: 30px;

    height: fit-content;
    align-self: flex-start;
}

.year-img {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    border-radius: 20px;
    overflow: hidden;
}

/* Stacked Images */
.year-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    opacity: 0;
    visibility: hidden;
    transform: scale(0.95) translateY(30px);
    transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.year-img img.active {
    opacity: 1;
    visibility: visible;
    transform: scale(1) translateY(0);
    z-index: 10;
}

/* Optional: Add a subtle shadow to active image */
.year-img img.active {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* Exiting animation (previous image) */
.year-img img.exit {
    opacity: 0;
    transform: scale(1.05) translateY(-30px);
    z-index: 5;
}
/* ============================================
  TEAM GALLERY
=============================================== */
.team-gallery-slider {
    position: relative;
    width: 100%;
    height: 450px;
    overflow: visible;
    margin-bottom: 60px;
    padding: inherit;
}

.team-gallery-slider-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.team-gallery-slide-item {
    position: absolute;
    width: 900px;
    height: 400px;
    border-radius: 15px;
    overflow: hidden;
    transition: all 0.5s ease;
    cursor: pointer;
    box-shadow: 0px 0px 34.34px 0px #000000e5;
}

.team-gallery-slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Center slide - active */
.team-gallery-slide-item.tgs-active {
    z-index: 3;
    transform: translateX(0) scale(1);
    opacity: 1;
    filter: brightness(1);
}

/* Left slide */
.team-gallery-slide-item.tgs-left {
    z-index: 2;
    transform: translateX(-650px) scale(0.8);
    opacity: 0.3;
    filter: brightness(0.4);
}

/* Right slide */
.team-gallery-slide-item.tgs-right {
    z-index: 2;
    transform: translateX(650px) scale(0.8);
    opacity: 0.3;
    filter: brightness(0.4);
}

/* Hidden slides */
.team-gallery-slide-item.tgs-hidden {
    z-index: 1;
    opacity: 0;
    transform: scale(0.7);
}

/* Dots navigation */
.team-gallery-slider-dots {
    position: absolute;
    bottom: -50px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 10;
    padding: 10px 20px;
    border-radius: 25px;
    backdrop-filter: blur(10px);
}

.team-gallery-dot-indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.team-gallery-dot-indicator:hover {
    background: rgba(255, 255, 255, 0.8);
}

.team-gallery-dot-indicator.tgs-dot-active {
    background: var(--jdg-btn-gradient);
    width: 35px;
    background-size: cover;
    border: 0;
    border-radius: 6px;
}

@media (min-width: 1600px) {
    .about-desc {
        max-width: 725px;
    }
}
@media (max-width: 991px) {
.about-tabs-container{
  padding-left: 20px;
  padding-right: 20px;
}
}
@media (max-width: 577px) {
  .title-cn .section-main-title {
    width: 100%;
  }
  
    .c-name {
        line-height: 35px;
        margin-top: -42px;
        margin-left: 0px;
    }
    
    .about-section .stat-label {
      width: 100%;
    }
}