@font-face {
    font-family: 'BasisGrotesque-Regular';
    src: url('../fonts/BasisGrotesque-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'BasisGrotesque-Bold';
    src: url('../fonts/BasisGrotesque-Bold.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Figtree-light';
    src: url('../fonts/Figtree-VariableFont_wght.ttf') format('opentype');
    font-weight: normal;
    font-style: normal;
}
html {
    scrollbar-gutter: stable;
}
body, html {
    margin: 0;
    padding: 0;
    height: 100%;
    font-family: 'BasisGrotesque-Regular';
}
/* Prevent layout shift when Bootstrap opens the offcanvas — it adds a
   padding-right to body equal to the scrollbar width; with scrollbar-gutter
   stable above, the gutter is already reserved, so we cancel the extra. */
body.modal-open,
body[style*="overflow: hidden"] {
    padding-right: 0 !important;
}
h2 {
    padding-bottom: 0.5rem;
}
.hero-video {
    position: relative;
    height: 100vh;
    overflow: hidden;
}
.hero-video video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -1;
    transform: translate(-50%, -50%);
    object-fit: cover;
}
/* Show dropdown on hover */
.nav-item.dropdown:hover .dropdown-menu {
  display: block;
  margin-top: 0; /* remove gap between menu and parent */
}

.nav-item.dropdown:hover > .nav-link {
  color: #000; /* optional hover color for link */
}
li a.dropdown-item {
    font-size: 14px;
    color: #000;
}
ul.dropdown-menu.show {
    border: 1px solid #cccccc45;
}
.dropdown-menu {
   --bs-dropdown-link-active-bg: #fff;
    border: 1px solid #ededed !important
}
.nav-link:focus, .nav-link:hover {
    color: #ffffff !important;
}
.mobile-overlay {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}
.play-button {
    background: transparent;
    border: none;
    color: white;
    font-size: 50px;
    padding: 20px;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.3s ease;
}
.play-button:hover {
    /*background: rgba(0, 0, 0, 0.8);*/
}
.video-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    justify-content: center;
    align-items: center;
    z-index: 1050;
}
.video-modal video {
    width: 100%;
    max-width: 800px;
}
.close-button {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 40px;
    color: white;
    cursor: pointer;
}
/*.hero-video video,
.hero-video .video-fallback {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translate(-50%, -50%);
  object-fit: cover;
  z-index: -1;
}*/
a {
    text-decoration: none;
}
a:hover {
    color: #000;
}
.navbar-custom {
    transition: background-color 0.4s ease;
    background-color: transparent;
}
.navbar-scrolled {
    background-color: white !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.navbar .nav-link {
    color: white;
    transition: color 0.3s ease;
    font-size: 15px;
}
.navbar-scrolled .nav-link {
    color: black !important;
    font-size: 15px;
}
.navbar-brand img {
    transition: opacity 0.3s ease;
}
.logo-white {
    display: block;
}
.logo-black {
    display: none;
}
.navbar-scrolled .logo-white {
    display: none;
}
.navbar-scrolled .logo-black {
    display: block;
}
.language-switcher {
    color: white;
    transition: color 0.3s ease;
    padding-right: 2rem;
}
.navbar-scrolled .language-switcher {
    color: black;
}
.navbar-brand .brand-logo {
    position: absolute;
    left: 2.08333333rem;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}
.navbar-scrolled {
    border-bottom: 1px solid #f4f4f4;
    box-shadow: none;
}
li.nav-item {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.bold {
    font-weight: 700;
}
.offcanvas-body .nav-link {
    font-size: 1.5rem;
    color: #000;
    text-decoration: none;
    padding: 0.8rem;
}
.offcanvas-body .nav-link:hover {
    color: #007bff;
}
.offcanvas-header {
    justify-content: space-between;
    align-items: center;
}
.offcanvas-header {
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #f4f4f4;
    height: 14vw;
}
.offcanvas-header.nav-link:focus, .offcanvas-header.nav-link:hover {
    color: #000000 !important;
}
button.navbar-toggler {
    border: 0;
}
.navbar-custom .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%28255, 255, 255, 1%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.navbar-scrolled .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 1%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.navbar-toggler:focus {
    box-shadow: none;
}
h1.section-title {
    text-align: center;
    font-size: 32px;
    font-weight: 400;
    padding-bottom: 2rem;
}
section.about-xpeng {
    background: linear-gradient(152.02deg, rgba(150, 180, 20, 0.05) 3.6%, rgba(150, 180, 20, 5e-06) 100.18%);
    padding: 4rem 2rem;
}
p.sub-title {
    font-size: 16px;
    line-height: 28px;
    color: #00000099;
    text-align: center;
    width: 664px;
    margin: auto;
}
.custom-image-layout {
    padding: 2rem 1rem;
}
.img-1-int {
    margin-bottom: 2rem;
}
.navbar-toggler-icon {
    width: 2.0em;
    height: 2.0em;
}
.offcanvas-body li.nav-item.dropdown {
    list-style: none;
}
.offcanvas-body .dropdown-menu {
    --bs-dropdown-link-active-bg: #fff;
    border: none !important;
}

/* Make header logo and menu items non-selectable */
#mainNavbar,
#mainNavbar .navbar-brand,
#mainNavbar .navbar-brand img,
#mainNavbar .nav-link,
#mainNavbar .dropdown-item,
#mainNavbar .language-switcher-btn,
#mainNavbar .navbar-toggler {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
#mainNavbar .navbar-brand img,
#mainNavbar .language-switcher-icon {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
    pointer-events: auto;
}

/* Language Switcher Button in Navbar */
.language-switcher-btn {
    background: transparent;
    border: 0;
    padding: 0.25rem 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: none;
}
.language-switcher-btn:focus {
    box-shadow: none;
    outline: none;
}
.language-switcher-icon {
    width: 24px;
    height: 24px;
    filter: brightness(0) invert(1);
    transition: filter 0.3s ease;
}
.navbar-scrolled .language-switcher-icon {
    filter: none;
}
@media (min-width: 992px) {
    .language-switcher-btn {
        margin-left: 0.5rem !important;
    }
}
@media (max-width: 991.98px) {
    .language-switcher-btn {
        margin-left: auto !important;
        margin-right: 0.25rem;
    }
}

/* Country / Language Offcanvas */
.language-offcanvas {
    width: 420px;
    max-width: 90vw;
    height: 100vh;
}
.language-offcanvas .language-offcanvas-header {
    border-bottom: 1px solid #eee;
    padding: 1rem 1.5rem;
    height: auto;
}
.language-offcanvas .offcanvas-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
}
.language-offcanvas-body {
    padding: 0.5rem 0;
    overflow-y: auto;
}
.SideLanguagesBar {
    list-style: none;
    margin: 0;
    padding: 0;
}
.SideLanguagesBar_site__Dw209 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid #f1f1f1;
}
.SideLanguagesBar_siteItem__tlRmg {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex: 1 1 auto;
}
.SideLanguagesBar_flag__X4j0c {
    width: 24px;
    height: 24px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
}
.SideLanguagesBar_countryName__mISZG {
    font-size: 0.65rem;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.SideLanguagesBar_languages__PMMM_ {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}
.SideLanguagesBar_languageItem__xQPvX {
    color: #555;
    font-size: 0.65rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: color 0.2s ease;
}
.SideLanguagesBar_languageItem__xQPvX:hover {
    color: #a4ce4c;
}
.SideLanguagesBar_line__hZegb {
    display: inline-block;
    width: 1px;
    height: 12px;
    background: #ccc;
    margin-right: 0.25rem;
}

/* Mobile Menu Hierarchy */
.offcanvas-body .mobile-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    text-align: center;
}
.offcanvas-body .mobile-nav-item {
    width: 100%;
}
.offcanvas-body .mobile-nav-item > .nav-link {
    display: block;
    width: 100%;
}
.offcanvas-body .mobile-submenu-toggle {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.offcanvas-body .submenu-caret {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid currentColor;
    transition: transform 0.25s ease;
}
.offcanvas-body .mobile-submenu-toggle[aria-expanded="true"] .submenu-caret {
    transform: rotate(180deg);
}
.offcanvas-body .mobile-submenu {
    list-style: none;
    padding: 0.25rem 0 0.5rem;
    margin: 0;
    background: rgba(0, 0, 0, 0.03);
}
.offcanvas-body .mobile-submenu .nav-link {
    font-size: 1.15rem;
    font-weight: 400;
    padding: 0.5rem 0.8rem;
}
.cta-button-white {
    display: inline-block;
    background-color: #FFFFFF;
    color: #000000;
    padding: 12px 48px;
    border-radius: 4px;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease;
    border: 1px solid #000000;
}
.cta-button-white:hover {
    background-color: #000000;
    color: #FFFFFF;
    border: 1px solid #000000;
}
span.index-module__title--EuGwRwP5, span.index-module__subTitle--YYcmgxTA {
    font-family: 'BasisGrotesque-Regular';
}
.mobile-slider .slick-slide {
    padding: 0 10px;
}
p {
    font-size: 16px;
    color: #00000099;
}
h1 {
    padding-bottom: 1rem;
}
section.footer {
    border: 1px solid rgba(0, 0, 0, .05);
    padding-top: 2.5rem;
}
.footer ul {
    padding-left: 0;
    padding-top: 0.5rem;
}
.footer ul li {
    padding: 4px 0;
    font-size: 16px;
}
.footer-title {
    font-size: 13px;
    color: #00000099;
}
.footer-socialmenu {
    padding: 2rem 0 0.5rem 0;
    border-bottom: 1px solid #3333;
    margin-bottom: 1rem;
}
.seperator {
    display: inline-flex;
    padding: 0 0.5rem;
}
.copy-right {
    padding-left: 0;
    color: #0000004d;
    font-size: 12px;
    padding-bottom: 1rem;
}
.footer-language-switcher.language-switcher-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.25rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #000;
    font-size: 0.85rem;
    line-height: 1;
}
.footer-language-switcher.language-switcher-btn:hover {
    color: #000;
}
.footer-language-icon {
    width: 16px;
    height: 16px;
    filter: none;
}
.footer-language-label {
    color: #000;
}
.footer-language-caret {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #000;
    margin-left: 0.25rem;
}
img.social-icon {
    width: 24px;
}
.model-hero-banner {
    height: 100vh;
    overflow: hidden;
    color: #FFFFFF;
    position: relative;
}
.model-hero-banner .hero-img {
    max-height: 100vh;
    object-fit: cover;
}
/* Black gradient at the bottom of the hero banner so the white spec text
   stays readable when the image behind it is light or busy. Applies on
   desktop + mobile (height scales down a bit on small screens). */
.model-hero-banner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 45%;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.75) 0%,
        rgba(0, 0, 0, 0.5)  35%,
        rgba(0, 0, 0, 0)    100%
    );
    pointer-events: none;
    z-index: 1;
}
/* Keep the text overlays above the gradient */
.model-hero-banner .hero-content,
.model-hero-banner .g6-herospec,
.model-hero-banner > .position-absolute {
    z-index: 2;
}
@media (max-width: 767.98px) {
    .model-hero-banner::after {
        height: 50%;
        background: linear-gradient(
            to top,
            rgba(0, 0, 0, 0.82) 0%,
            rgba(0, 0, 0, 0.55) 40%,
            rgba(0, 0, 0, 0)    100%
        );
    }
}
.model-hero-banner h1, .model-hero-banner h5, .model-hero-banner p {
    /*text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);*/
    color: #FFFFFF;
}
.model-hero-banner .hero-content {
    top: 8rem;
    text-align: center;
}
.model-hero-banner h1 {
    font-size: 2rem !important;
    font-weight: 700;
    font-family: BasisGrotesque-Bold;
}
.model-hero-banner p.lead {
    font-size: 1rem;
    font-family: Figtree-light;
}
.btn i {
    margin-left: 6px;
}
a.btn {
    font-size: 16px;
    font-family: Figtree-light;
}
.green-arrow i {
    color: #A4CE4C;
}
.object-fit-cover {
    object-fit: cover;
    height: 100vh;
}
h2.display-5 {
    color: #fff;
    font-size: 32px;
    padding-top: 4rem;
    padding-bottom: 1rem;
}
.gradient-overlay {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), transparent 50%);
    z-index: 1;
}
.full-image > video,
.full-image > img {
    width: 100%;
    height: 100vh;
    max-height: 100vh;
    object-fit: cover;
    object-position: center;
    display: block;
}
.full-image p.lead {
    font-size: 16px;
    font-family: Figtree-light;
    color: #FFFFFF;
    text-align: center;
}
.ext-color-gallery, .int-color-gallery {
    background-color: #f9f9f9;
}
.ext-color-gallery .container, .int-color-gallery .container{
    padding: 5rem 0 1rem 0;
}
.swatch-img {
    width: 30px;
    height: 30px;
    object-fit: cover;
    border-radius: 0;
    cursor: pointer;
    transition: transform 0.2s ease;
    border: 0;
    padding: 0;
}
.color-swatch {
    display: flex;
    padding: 0.4rem 0.8rem 0.4rem 0.6rem;
}
.swatch-img:hover {
    transform: scale(1.1);
}
.swatch-title {
    margin-top: 3px;
    font-size: 16px;
    color: #333;
    padding-left: 5px;
    cursor: pointer;
}
/* Active swatch styling */
.color-swatch.active {
    background: rgba(0, 0, 0, .03);
    border-radius: 3rem;
}
/* Fade transition */
.car-image {
    opacity: 1;
    transition: opacity 0.5s ease;
    position: relative;
    z-index: 2;
    display: block;
}
.car-image.fade-out {
    opacity: 0;
}
.corner-bg-g6 {
    position: absolute;
    top: 0;
    left: 0;
    width: 45%;
    height: 0;
    background-image: url('../images/g6/g6-logo.svg'); /* Replace with your image */
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
     padding-bottom: 25%;
}
.corner-bg-g9 {
    position: absolute;
    top: 5%;
    left: 5%;
    width: 45%;
    height: 0;
    background-image: url('../images/g9/g9-logo.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
    padding-bottom: 25%;
}
.corner-bg-x9 {
    position: absolute;
    top: 0;
    left: 0;
    width: 22.4rem; /* Adjust size as needed */
    height: 14.5rem;
    background-image: url('../images/x9/X9-logo.29a8df57.png'); /* Replace with your image */
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
}
.corner-bg-p7 {
    position: absolute;
    top: 0;
    left: 0;
    width: 22.4rem; /* Adjust size as needed */
    height: 14.5rem;
    background-image: url('../images/p7/p7-logo.ce0920aa.png'); /* Replace with your image */
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
}
.car-features p {
    padding-top: 1rem;
}
.tab-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: right center;
    border-radius: 10px;
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}
.tab-image.fade-out {
    opacity: 0;
}
.nav-tabs .nav-link {
    border: none;
    font-weight: 500;
    color: #999 !important;
    position: relative;
    font-size: 0.9rem;
}
.nav-tabs .nav-link.active::after {
    content: '';
    height: 3px;
    width: 100%;
    background-color: #a4ce4c;
    position: absolute;
    bottom: 0;
    left: 0;
    color: #000000;
}
.arrow-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.7);
    border: none;
    padding: 0 13px;
    border-radius: 50%;
    font-size: 1.5rem;
    z-index: 10;
}
.arrow-left {
    left: 20px !important;
}
.arrow-right {
    right: 20px !important;
}
.tab-image-wrapper {
    position: relative;
}
.tab-content p {
    text-align: center;
}
.tab-content > .tab-pane {
    transition: opacity 0.4s ease-in-out;
}
#tabHeading {
    font-weight: 600;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.pre-footer img.mobile-app {
    width: 90%;
}
.pre-footer .app-buttons {
    padding: 1.5rem 0;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 10px;
    overflow: auto;
}
.pre-footer h3 {
    font-weight: bold;
    padding-bottom: 0.5rem;
}
.pre-footer p {
    color: #000;
}
.container-newsletter {
    background-color: rgba(150, 180, 20, .05);
    padding: 3.5rem;
}
.container-newsletter h2 {
    text-transform: uppercase;
    font-size: 1.7rem;
}
.container-newsletter input#email {
    padding-bottom: .5rem;
}
.container-newsletter input#email:focus, .container-newsletter input#email:active {
    background-color: #FFFFFF;
}
.index-module__orderInputTip--vUtWUAy0 {
    color: #84848c;
    padding-top: 0.3rem;
}
.pre-footer .card {
    border: none;
}
.pre-footer div#contentBox p {
    font-size: 0.6rem;
    padding-bottom: 0.8rem;
    color: #999;
}
.pre-footer a#toggleContent {
    color: #000;
    text-decoration: none;
}
.ext-color-gallery h3, .int-color-gallery h3 {
    color: #000000;
    font-size: 32px;
    padding-bottom: 1rem;
}
.ext-color-gallery p.lead, .int-color-gallery p.lead{
    font-size: 1.0rem;
    font-weight: 100;
}
img#interiorImage {
    margin-top: 3rem;
}
.g9-slider .swiper-slide {
    margin: 0 4rem;
    transition: opacity 0.3s ease;
}
/* Dim non-active slides (scoped to g9-slider only; was previously global) */
.g9-slider .swiper.swiper-initialized .swiper-slide {
  opacity: 0.4;
}
.g9-slider .swiper.swiper-initialized .swiper-slide-active,
.g9-slider .swiper.swiper-initialized .swiper-slide-visible {
  opacity: 1;
}

/* Make sure slider fills height */
.swiper-container {
  position: relative;
}

/* Align arrows to middle */
.container.h-100 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  pointer-events: none; /* avoid blocking swiper */
}

.custom-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: all;
  color: #000;
}
/* Position arrows close to active slide, not edge */
.swiper-button-prev.custom-nav {
  left: 20%;
}

.swiper-button-next.custom-nav {
  right: 20%;
}
.swiper-button-next:after, .swiper-button-prev:after {
    font-size: 1.3rem;
}
.slide-caption {
  position: absolute;
  bottom: 15px;
  left: 0;
  right: 0;
  text-align: center;
    padding: 1rem 2rem;
}

.slide-title {
    margin: 0;
    font-size: 1.25rem;
    /* font-weight: 600; */
    color: #FFFFFF;
}

.slide-text {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    color: #ffffffcc;
}
.swiper-nav-bottom {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 15px;
}
.slide-image-wrapper {
  display: flex;
  justify-content: center;
  margin: 0 15px; /* Left and right margin */
}

.slide-image-wrapper img {
  max-width: 100%;
  max-height: 420px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  object-fit: contain;
}
/* Show pagination only on mobile, arrows only on desktop (matches original intent) */
@media (min-width: 768px) {
  .g9-slider .swiper-pagination {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .g9-slider .custom-nav {
    display: none;
  }
}
.swiper-pagination {
  text-align: center;
  margin-top: 10px;
}

.swiper-pagination-bullet {
    opacity: 1 !important;
    background-color: #CCCCCC !important;
    border-radius: 0;
}
.swiper-pagination-bullet-active {
    opacity: 1 !important;
    background-color: #a4ce4c !important;
}
h3 {
    padding-bottom: 1.5rem;
}
#carTab .nav-link.active{
    background: transparent;
}
.carspec-container #carTab{
    justify-content: center;
    border:none;
    background: transparent;
}
#carTabContent span {
    color: #00000099;
    font-size: 14px;
}
.carspec-list {
    font-size: 16px;
}
.carspec-container {
    background-color: #f9f9f9;
}
.x9-slider-full {
    padding-top: 3.25rem;
    padding-bottom: 3.25rem;
}
.x9-image-container {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}
.x9-image-container img {
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}

.x9-image-container img:hover {
  transform: scale(1.2);
}
.x9-image-text {
    position: absolute;
    bottom: 1rem;
    left: 0;
    width: 100%;
    padding: 10px;
    /* background-color: rgba(0, 0, 0, 0.5); */
    color: white;
    text-align: center;
    font-size: 0.8rem;
}
.interior-seats h4, .interior-seats h4 p {
    text-align: left;
}
.index-module-title {
    font-size: 1.25rem;
        line-height: 1;
        border-left: .20833333rem solid #a4ce4c;
        padding-left: .78125rem;
        color: #000;
}
.interior-seats p {
    padding-top: 1.2rem;
    font-size: 0.72rem;
}
#x9-chargingTabs .nav-item {
    width: 25%;
    padding: 0;
}
section.home-feature p {
    text-align: center;
}
#playButton:hover {
  background-color: #fff;
  color: #000;
}
.index-module__bottom-part--49fWmJ\+Q {
    text-align: left;
    background: #f9f9f9;
    display: flex;
    width: 68.75rem;
    align-items: center;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 6.25rem;
    padding: 3.33333333rem 10.41666667rem;
}
.block-960 {
    width: 960px;
}
.x9-safety h2 {
    color: #fff;
    font-size: 1.6rem;
    font-family: BasisGrotesque-Regular,BasisGrotesque;
}
.x9-safety h4 {
    padding: 3rem 0 1rem 0;
    color: #fff;
    font-size: 1.25rem;
}
.x9-safety p {
    font-size: 0.9rem;
    color: #fff;
}
.x9-safety p.lead {
    font-size: 0.8rem !important;
    color: #fff;
}
.w-30 {
    width: 36%;
}
.hover-text {
    display: none;
    transition: all 0.3s ease-in-out;
  }
  .hover-container:hover .hover-text {
    display: block;
  }
.slide-nav {
    background: transparent;
    border: none;
    outline: none;
  }

  .border-indicator {
    border-bottom: 3px solid transparent;
    padding-bottom: 5px;
    transition: border-color 0.3s ease;
  }

  .slide-nav.active .border-indicator {
    border-color: limegreen;
  }

  .slide-full-content .slide-text {
    display: none;
    transition: opacity 0.3s ease;
  }

  .slide-full-content .slide-text.active {
    display: block;
  }
.carousel-inner img,
  .carousel-inner video {
    object-fit: cover;
  }

  .slide-nav {
    background: transparent;
    border: none;
    outline: none;
  }

  .border-indicator {
    border-bottom: 3px solid transparent;
    padding-bottom: 5px;
    transition: border-color 0.3s ease;
  }

  .slide-nav.active .border-indicator {
    border-color: #a4ce4c;
  }

  .slide-full-content .slide-text {
    display: none;
    transition: opacity 0.3s ease;
  }

  .slide-full-content .slide-text.active {
    display: block;
  }
.x9-power .slide-content {
    position: absolute !important;
    bottom: 3rem !important;
    top: unset !important;
}
.x9-power .slide-content button{
    border:none;
}
.x9-power .slide-content button:hover {
    background: transparent;
}
.x9-power .border-indicator {
    font-size: 0.9rem;
}

/* x9-power: desktop — tab links stay white in every state (overlay on dark media) */
@media (min-width: 768px) {
    .x9-power .slide-nav,
    .x9-power .slide-nav:link,
    .x9-power .slide-nav:visited,
    .x9-power .slide-nav:hover,
    .x9-power .slide-nav:focus,
    .x9-power .slide-nav:active,
    .x9-power .slide-nav.active,
    .x9-power .slide-nav .border-indicator,
    .x9-power .slide-nav:hover .border-indicator,
    .x9-power .slide-nav.active .border-indicator {
        color: #fff !important;
    }
}

/* x9-power: mobile — heading above, navigator/content below, bigger media */
@media (max-width: 767px) {
    .x9-power {
        padding-top: 4rem !important;
        padding-bottom: 1.5rem !important;
    }
    .x9-power #mediaSlider {
        overflow: visible;
    }
    .x9-power #mediaSlider .carousel-inner {
        overflow: visible !important;
        --bs-aspect-ratio: 75%;
    }
    /* Heading: pull above the carousel media (works whether HTML has position-absolute or not) */
    .x9-power #mediaSlider .carousel-inner > .top-0 {
        position: absolute !important;
        top: auto !important;
        bottom: 100% !important;
        left: 0 !important;
        right: 0;
        width: 100% !important;
        height: auto !important;
        transform: none !important;
        padding-top: 0 !important;
        padding-bottom: 0.5rem !important;
    }
    .x9-power #mediaSlider .carousel-inner > .top-0 h2,
    .x9-power #mediaSlider .carousel-inner > .top-0 h3 {
        color: #000 !important;
        padding-top: 0 !important;
        margin: 0;
        font-size: 1.4rem;
        line-height: 1.3;
    }
    /* Navigator + slide text: render below the slide in normal flow */
    .x9-power .slide-content {
        position: static !important;
        transform: none !important;
        left: auto !important;
        right: auto;
        bottom: auto !important;
        top: auto !important;
        margin-top: 1rem;
        padding-bottom: 0 !important;
    }
    .x9-power .slide-content .gap-4 {
        gap: 0.75rem !important;
    }
    .x9-power .slide-nav {
        color: #000 !important;
    }
    .x9-power .border-indicator {
        font-size: 0.85rem;
    }
}
.spec-count p, .spec-count h5 {
    color: #FFFFFF;
}
.heading-top h2 {
    color: #000000;
}
.x9-safety-subcontent {
    position: absolute;
    top: 50%;
    left: 0%
}
.g6-herospec .spec-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.g6-herospec .spec-item p {
    color: #ffffffcf;
    font-size: 18px;
}
/* p7plus spec items sit over a hero image that can be quite light at the
   bottom — give the white text a soft dark halo so it stays readable. */
.g6-herospec.spec-grid-2col .spec-item h5,
.g6-herospec.spec-grid-2col .spec-item p,
.g6-herospec.spec-grid-2col .spec-item .counter {
    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.55),
        0 2px 8px rgba(0, 0, 0, 0.4);
}
.g6-herospec.spec-grid-2col .spec-item h5 {
    font-weight: 200;
}
.x9-tab {
    width: 50rem;
    margin: auto;
}
.x9-tab li.nav-item {
    padding: 0;
}
.mobile-play-btn {
    background: rgba(0,0,0,0.6);
    color: #fff;
    border: none;
    padding: 2px 13px;
    font-size: 30px;
    border-radius: 50px;
    cursor: pointer;
    z-index: 10;
}
 .about-content p {
    font-size: 17px;
    color: #000;
    line-height: 29px;
}
.bg-grey {
    background: linear-gradient(0deg, #F9F9F9, #F9F9F9);
}
.text-overlay {
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
  }
.text-white p {
    color: #FFFFFF;
   /* text-align: left;*/
}
.spacer-3 {
    padding-top: 3rem;
}
.team-member {
    height: 100%;
  }

  .team-info {
    bottom: 0;
    left: 0;
  }

  .team-overlay {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
      background: rgba(0,0,0,0.7);
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    display: flex;
    align-items: left;
    justify-content: center;
  }

  .team-member:hover .team-overlay {
    opacity: 1;
  }
.team-info h5 {
    color: #fff;
    text-align: left;
    margin-left: 1rem;
    border-left: 5px solid #a4ce4c;
    padding-left: 5px;
    font-size: 26px;
    font-weight: 600;
}
.team-info p {
    color: #FFFFFF;
    text-align: left;
    padding-left: 1rem;
    font-size: 14px;
    padding-bottom: 0.5rem;
}

.static-header .logo-white{
    display: none !important;
}
.static-header .logo-black{
    display: block !important;
}
.static-header .navbar .nav-link {
    color: #000000;
}
.static-header .navbar-custom {
    border-bottom: 1px solid #f4f4f4;
    margin-bottom: 3rem;
    position: fixed;
    background-color: #FFFFFF;
}
.contact-box-2 {
    border: 1px solid rgba(0, 0, 0, .05);
    padding: 1rem;
}
.contact-box-2 h4 {
    font-size: 24px;
    padding-bottom: 0.5rem;
}
.contact-box-2 p {
    font-size: 13px;
    color: #000;
    line-height: 2rem;
}
.contact-box-2 p strong {
    color: #0000004d;
}
.card.h-100 {
    border-radius: 0;
    border: 1px solid rgba(0, 0, 0, .05);
    padding: 1rem;
}
.map-wrapper {
      position: relative;
      width: 100%;
      height: 600px;
      border-radius: 10px;
      overflow: hidden;
    }
    #map {
      width: 100%;
      height: 100%;
  border-radius: 10px;
    }
    .location-container {
      position: absolute;
      top: 20px;
      left: 20px;
      z-index: 10;
      display: flex;
      flex-direction: column;
      gap: 15px;
        width: 300px;
    }
    .location-box {
    background: rgb(255 255 255);
    border-radius: 3px;
    padding: 15px;
    cursor: pointer;
    transition: background 0.3s;
    width: auto;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
    .location-box:hover {
      background: rgba(240, 240, 240, 0.95);
    }
.location-box h5 {
    color: #000;
    font-size: 18px;
}
.location-box p {
    font-size: 14px;
}
.privacy p {
    padding-bottom: 1rem;
}
table.table tr td, table.table tr th {
    border: 1px solid #dee2e6;
}
table.table tr th {
    background-color: #F7FAF0!important;
}
table.table tr th p, table.table tr td p{
    padding-bottom: 0;
}
table.table tr th p {
    color: #000000;
}
.spacer-1 {
    margin: 6rem auto;
}
.spacer-2 {
    margin: 6rem auto 0 auto;
}
.map-info-box h6 {
    font-size: 18px;
    padding-bottom: 0.5rem;
}
.map-info-box p {
    padding: 2px;
    font-size: 13px;
    color: #000000;
}
.brochure-card {
      position: relative;
      overflow: hidden;
      border-radius: 10px;
      cursor: pointer;
    }
    .brochure-card img {
      width: 100%;
      height: 400px;
      object-fit: cover;
      transition: transform 0.3s ease;
    }
    .brochure-card:hover img {
      transform: scale(1.05);
    }
    .model-title {
      position: absolute;
      top: 10px;
      left: 10px;
      background: rgba(0,0,0,0.6);
      color: white;
      padding: 5px 10px;
      font-size: 14px;
      border-radius: 5px;
    }
    .download-btn {
      position: absolute;
      bottom: 0.5rem;
      left: 10px;
      background: rgba(0,0,0,0.6);
      color: white;
      padding: 5px 10px;
      font-size: 14px;
      border-radius: 5px;
      display: flex;
      align-items: center;
      gap: 5px;
      text-decoration: none;
    }
    .download-btn:hover, .view-online:hover {
      background: rgba(0,0,0,0.8);
      color: #fff;
    }
.brochure-hero{
    height: auto !important;
}
.brochure-hero .hero-content {
    top: 40%;
    text-align: center;
    z-index: 10;
}
.brochure-hero .hero-content h1{
    font-size: 2rem !important;
    font-weight: 100;
    font-family: unset;
}
.view-online {
    position: absolute;
    bottom: 0.5rem;
    right: 10px;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    padding: 5px 10px;
    font-size: 14px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
}
.brochure-hero .gradient-overlay {
    background: linear-gradient(to bottom, rgb(0 0 0), #000000a3 50%);
    z-index: 1;
}
.footer-menu a {
    color: #000;
    text-decoration: none;
    font-size: 14px;
}
.footer-menu a:hover{
    color: #00000099;
}
#chargingTabs .nav-link:focus, .nav-link:hover {
    color: #000000 !important;
}
.carspec-container .nav-link:focus, .nav-link:hover {
    color: #000000 !important;
}
.index-module__carousel-banner_header--vUcqTKXa {
    position: absolute;
    top: 4.16666667rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
}
.index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_title--5z58VAyV {
    font-size: 1.66666667rem;
    line-height: 2.29166667rem;
    text-align: center;
    letter-spacing: .05em;
    color: #fff;
}
.index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_subtitle--Rt0t1Rt- {
    margin-top: .83333333rem;
    font-size: 1.04166667rem;
    line-height: 1.45833333rem;
    text-align: center;
    letter-spacing: .05em;
    color: hsla(0,0%,100%,.8);
}
.static-header {
    height: 3rem;
}

.about-xpeng .image-grid {
    display: flex;
    width: 100%;
    max-width: 1200px;
    height: 500px;
    gap: 8px;
    overflow: hidden;
    border-radius: .20833333rem;
}

.about-xpeng .image-item {
    flex: 2;                   /* ← default shrunk size */
    overflow: hidden;
    border-radius: .20833333rem;
    cursor: default;
    transition: flex 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
}

.about-xpeng .image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease, filter 0.6s ease;
    filter: brightness(0.4);   /* ← dimmed by default */
}

/* ── Active State (expanded by default) ── */
.about-xpeng .image-item.active {
    flex: 5;                   /* ← expanded */
}

.about-xpeng .image-item.active img {
    filter: brightness(1);     /* ← full brightness */
    transform: scale(1.04);
}

.about-xpeng .image-item.active .image-caption p {
    opacity: 0.9;
    max-height: 60px;
    transform: translateY(0);
}

.about-xpeng .image-item.active .image-caption h5 {
    font-size: 1.25rem;
}

.about-xpeng .image-item.active .image-badge {
    opacity: 0;
}

/* ── Caption wrapper ── */
.about-xpeng .image-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 16px 18px;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.75));
    color: #fff;
    border-radius: 0 0 12px 12px;
}

/* h5 — always visible */
.about-xpeng .image-caption h5 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 200;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: font-size 0.4s ease;
    color: #FFFFFF;
}

/* p — hidden by default */
.about-xpeng .image-caption p {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transform: translateY(6px);
    transition: opacity 0.4s ease 0.25s,
                max-height 0.4s ease 0.25s,
                transform 0.4s ease 0.25s;
    color: #FFFFFF;
}

/* Number badge */
.about-xpeng .image-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease;
}


        /* ── Hover state on the CONTAINER ── */

        /* Shrink all items when grid is hovered */
        .about-xpeng .image-grid:hover .image-item {
            flex: 2;
        }

        /* Re-expand only the hovered item */
        .about-xpeng .image-grid:hover .image-item:hover {
            flex: 5;
        }

        /* Dim siblings */
        .about-xpeng .image-grid:hover .image-item img {
            filter: brightness(0.4);
        }

        /* Restore brightness + scale on active */
        .about-xpeng .image-grid:hover .image-item:hover img {
            filter: brightness(1);
            transform: scale(1.04);
        }

        /* ── Show p tag ONLY on the hovered item ── */
        .about-xpeng .image-item:hover .image-caption p {
            opacity: 0.9;
            max-height: 60px;
            transform: translateY(0);
        }

        /* Slightly larger h5 when expanded */
        .about-xpeng .image-item:hover .image-caption h5 {
            font-size: 1.25rem;
        }

        /* Hide badge when expanded */
        .about-xpeng .image-item:hover .image-badge {
            opacity: 0;
        }

        /* Responsive */
@media (max-width: 576px) {
    .about-xpeng .image-grid {
        height: 320px;
    }

    .about-xpeng .image-caption h5 {
        font-size: 0.85rem;
    }
}
.g9-feature-slider .index-module__carousel-banner_header--vUcqTKXa {
    position: relative;
    top: 0;
    padding-bottom: 2rem;
}
.g9-feature-slider .index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_title--5z58VAyV {   
    color: #000;
    font-size: 2.08333333rem;
}
.g9-feature-slider .index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_subtitle--Rt0t1Rt- {
    color: #000;
    letter-spacing: 0;
    font-size: .9375rem;
}



@media (min-width: 992px) {
    .offcanvas:not(.language-offcanvas) {
        display: none !important;
    }
}
@media (max-width: 768px) {
    .mobile-overlay {
        display: none;
    }
    p.sub-title {
        width: 100%;
    }
    nav#mainNavbar {
        min-height: 6rem;
    }
    .footer-menu {
        display: none;
    }
    .footer-socialmenu {
        flex-direction: column !important;
        align-items: center !important;
        padding-bottom: 1rem;
        border: none;
    }
    .footer-socialmenu > div:first-child {
        display: flex;
        gap: 10px;
        margin-bottom: 3rem !important;
    }
    .footer-socialmenu > div:last-child {
        display: flex;
        gap: 10px;
        margin-bottom: 3rem !important;
    }
    .seperator {
        display: inline;
    }
    .copy-right {
        padding-bottom: 6rem;
        text-align: center;
        flex-direction: column !important;
        justify-content: center !important;
        gap: 0.75rem;
    }
    .car-tab {
        font-size: 1.5rem;
        font-weight: 700;
    }
    .model-hero-banner .hero-content {
        top: 12rem;
        text-align: center;
        width: 100%;
    }
    .model-hero-banner h1 {
        font-size: 3.5rem !important;
    }
    .model-hero-banner h1, .model-hero-banner h5, .model-hero-banner p {
        text-shadow: none;
    }
    .model-hero-banner p.lead {
        font-size: 1.6rem;
    }
    .model-hero-banner h5 {
        font-size: 2rem;
    }
    .bg-content {
        width: 100%;
    }
    h2.display-5 {
        font-size: 28px;
        padding-bottom: 3rem;
    }
   .ext-color-gallery h3, .int-color-gallery h3, .home-feature h3 {
        font-size: 2rem;
        padding-bottom: 4rem;
    }
    .car-image {
        padding-top: 6rem;
    }
    .ext-color-gallery, .int-color-gallery {
        padding-bottom: 8rem !important;
    }
    section.car-features h3, .charging h3, .chasis h3, .car-range h3, .contact-container h2, .container-newsletter h2 {
        font-size: 2.3rem;
    }
    section.car-features {
        padding: 1rem;
    }
    .full-image p.lead {
        padding: 0 1rem;
    }
    section.charging img {
        width: 100% !important;
    }
    section.charging {
        padding: 2rem;
    }
    section.chasis {
        padding: 2rem;
    }
    section.chasis img {
        width: 100% !important;
    }
    section.chasis .d-flex {
        flex-direction: column;
    }
    section.chasis .d-flex > img {
        width: 100% !important;
    }
    .text-overlay {
        position: static !important;
        transform: none !important;
        max-width: 100%;
        width: 100%;
        padding: 1rem 0 0 !important;
        color: #333 !important;
    }
    .text-overlay p {
        color: #333 !important;
        text-align: left;
    }
    .nav-tabs .nav-link {
        font-size: 1.0rem;
    }
    section#book-testdrive {
        padding: 1rem;
    }
    .pre-footer h3 {
        font-size: 3rem;
    }
    .pre-footer .app-content {
        padding: 0 2rem;
    }
    .pre-footer img.mobile-app {
        width: 100%;
        padding: 0;
        margin: 0;
    }
    .container-newsletter {
        padding: 5rem 2rem;
    }
    .swiper-container {
        padding-bottom: 50px; /* Space for nav buttons */
      }

      .swiper-nav-bottom {
        position: absolute;
        bottom: 10px;
        width: 100%;
        justify-content: center;
      }

      .swiper-button-prev,
      .swiper-button-next {
        position: static; /* Prevent default vertical positioning */
        transform: none;
      }
    .slide-caption {
      position: relative;
      bottom: 15px;
      left: 0;
      right: 0;
      padding: 1rem;
      text-align: center;
        top:15px;
    }
    .slide-title {
        color: #000000;
        font-size: 1.5rem;
        padding-bottom: 1rem;
    }
    .slide-text {
        color: #000000;
        font-size: 1.2rem;
    }
    .swiper-slide {
        opacity: 1;
    }
    .carspec-list {
        font-size: 14px;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    #carTabContent span {
        font-size: 12px;
    }
    .x9-image-text {
        font-size: 1.4rem;
    }
    section.interior-seats p {
        font-size: 1.2rem;
        text-align: left;
    }
    .interior-seats h4 {
        font-size: 1.5rem;
    }
    section.interior-seats .col-md-4 {
        padding: 1rem;
    }
    #x9-chargingTabs .nav-item {
        width: 100%;
        padding: 0.5rem;
    }
    ul#x9-chargingTabs li button {
        font-size: 1.4rem;
        text-align: center;
    }
    .arrow-nav{
        padding: 0 8px;
    }
    #x9-chargingTabs .nav-item {
        width: auto;
    }
    section.x90-tech h5 {
        font-size: 1.7rem;
        padding: 1rem 0;
        line-height: 30px;
    }
    section.x90-tech p {
        padding: 0.5rem 0 2rem 0;
    }
    section.home-feature .index-module__title--EuGwRwP5 {
        font-size: 1.5rem;
    }
    section.home-feature .index-module__subTitle--YYcmgxTA {
        font-size: 1.2rem !important;
        padding: 1rem;
    }
    .w-30 {
        width: 100%;
    }
    section.x9-safety h2 {
        font-size: 1.9rem;
        line-height: 2.5rem;
    }
    .x9-safety h4 {
        font-size: 1.65rem;
    }
    .x9-safety p {
        font-size: 1.3rem;
        color: #fff;
        padding-top: 2rem;
    }   
    .x9-safety-subcontent {
        bottom: 0 !important;
        top: unset;
    }
    .fs-6 {
        font-size: 1.5rem!important;
    }
    p.lead.fs-6 {
        font-size: 1.0rem !important;
        padding-top: 0.5rem;
    }
    .model-hero-banner .hero-img {
        width: 100%;
        height: 100vh;
        max-height: 100vh;
        object-fit: cover;
        object-position: center;
    }
    .g6-herospec .row {
        text-align: left !important;
    }
    .g6-herospec .spec-item {
        flex: 0 0 100%;
        max-width: 100%;
        display: flex;
        flex-direction: column-reverse;
        align-items: flex-start;
        text-align: left;
        padding: 0 1rem;
        margin-bottom: 1.3rem;
    }
    /* p7plus override — keep 2 spec items per row on mobile, with
       alternating left/right alignment: items 1 & 3 align left,
       item 2 aligns right. */
    .g6-herospec.spec-grid-2col .spec-item {
        flex: 0 0 50%;
        max-width: 50%;
        padding: 0 0.75rem;
    }
    .g6-herospec.spec-grid-2col .spec-item h5 {
        font-size: 1.5rem;
    }
    .g6-herospec.spec-grid-2col .spec-item p {
        font-size: 1rem;
    }
    /* items 1 & 3 → left aligned */
    .g6-herospec.spec-grid-2col .spec-item:nth-child(odd) {
        align-items: flex-start;
        text-align: left;
    }
    .g6-herospec.spec-grid-2col .spec-item:nth-child(odd) p,
    .g6-herospec.spec-grid-2col .spec-item:nth-child(odd) h5 {
        text-align: left;
    }
    /* item 2 → right aligned */
    .g6-herospec.spec-grid-2col .spec-item:nth-child(even) {
        align-items: flex-end;
        text-align: right;
    }
    .g6-herospec.spec-grid-2col .spec-item:nth-child(even) p,
    .g6-herospec.spec-grid-2col .spec-item:nth-child(even) h5 {
        text-align: right;
    }
    .g6-herospec .spec-item h5 {
        font-size: 2.0rem;
        line-height: 1.3;
        margin-bottom: 1rem;
    }
    .g6-herospec .spec-item p {
        color: #FFFFFF99;
        font-size: 1.3rem;
        line-height: 1.3;
        margin-bottom: 0;
        text-align: left;
    }
    .hero-cta-buttons {
        width: 90%;
        margin: auto;
    }
     .hero-cta-buttons a.btn {
        padding: 1.5rem;
    }
    .pre-footer .app-buttons {
        justify-content: center;
    }
    .x9-tab {
        width: 100%;
    }
    .index-module__carousel-banner_header--vUcqTKXa {
        position: relative;
    }
    .index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_title--5z58VAyV {        
        color: #212529;
    }
    .index-module__carousel-banner_header--vUcqTKXa .index-module__carousel-banner_subtitle--Rt0t1Rt- {
       color: #212529;
    }
    .static-header {
        height:0 !important;
    }
    .privacy .table tr td p {
        font-size: 12px;
    }
    .container.privacy-policy {
        margin-top: 7rem;
    }
    h2, h4.card-title {
        padding-bottom: 0.5rem;
        font-size: 2.5rem;
        font-weight: bold;
    }
    .location-container {
        position: static !important;      /* Remove overlay */
        width: 100%;
        margin-bottom: 15px;
      }

      #map {
        height: 350px;                    /* Smaller height on mobile */
      }
    .gm-style .gm-style-iw-c {
        max-width: 380px !important;
    }
    .brochure-card img {
        height: 250px;
    }
}

.tab-video {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  border-radius: 12px;
  background: #000;
  transition: opacity 0.35s ease;
}

.tab-video.fade-out {
  opacity: 0;
}

/* Hide arrows when video is active (optional) */
.tab-image-wrapper.video-active .arrow-nav {
  display: none;
}
/* Hero Container */
.hero-video {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

/* Background Video - Full Width Fix */
.hero-video > video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);  /* centers the video */
  min-width: 100%;
  min-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;                 /* fills the entire area */
  object-position: center;
  z-index: 0;
}

/* Mobile Overlay */
.mobile-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* Overlay Content Container */
.hero-overlay-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ── Heading Block ── */
.hero-heading-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-top: 15%;
  padding: 0 16px;
}

.heading-icon {
  position: absolute;
  top: 0;
  left: -36px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  color: #ffffff;
  flex-shrink: 0;
}

.hero-heading {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 2rem);
  font-weight: 700;
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
  white-space: nowrap;
}

/* ── Overlay Video ── */
.overlay-video-wrapper {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  max-width: 800px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}

.overlay-video-wrapper video {
  width: 100%;
  height: auto;
  display: block;
}
.image-19 {
    width: 22px;
    position: absolute;
    top: -10px;
    left: -8px;
}
/* ── Custom Cursor ── */
.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  pointer-events: none !important;
  z-index: 99999;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.custom-cursor img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none !important;
}

.custom-cursor.visible {
  opacity: 1;
}

.custom-cursor.spinning img {
  animation: spinCursor 1s linear infinite;
}

@keyframes spinCursor {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ── Hide default cursor ONLY on car image ── */
.index-module__car-pic--AiRHYT0m {
  cursor: none !important;
}

/* ── Revert cursor back to default on everything else ── */
.index-module__rotate-car--UxMt-vLX,
.index-module__rotate-page--KJEsBtTb,
.swiper-slide,
.swiper-wrapper,
.swiper-container {
  cursor: default !important;
}

/* ── Keep modal overlay non-blocking ── */
.index-module__modal--Zn7aGWwt {
  pointer-events: none !important;
}
/* ── Responsive ── */
@media (max-width: 768px) {
  .overlay-video-wrapper {
    width: 90%;
  }

  .hero-heading {
    font-size: 2.4rem;
  }

  .heading-icon {
    left: -28px;
    width: 18px;
    height: 18px;
  }
    .hero-overlay-content {
    top: 20%;
}
}
.static-header .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba%280, 0, 0, 1%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.gm-style .gm-style-iw-d {
    padding: 1rem !important;
}
.gm-style-iw-chr {
    position: absolute;
    right: 0;
    top: 0;
}
.gm-style .gm-style-iw-c {
    padding: 0 !important;
}
.whatsapp-icon img {
    position: absolute;
    right: 1rem;
    width: 30px;
    bottom: 1rem;
}

/* Page Loader */
#page-loader {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}
#page-loader.loaded {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
#page-loader .loader-logo {
    width: 220px;
    max-width: 60vw;
    height: auto;
    animation: loader-pulse 1.6s ease-in-out infinite;
}
#page-loader .loader-spinner {
    margin-top: 1.5rem;
    width: 42px;
    height: 42px;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-top-color: #fff;
    border-radius: 50%;
    animation: loader-spin 0.9s linear infinite;
}
@keyframes loader-spin {
    to { transform: rotate(360deg); }
}
@keyframes loader-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.94); }
}
body.loading {
    overflow: hidden;
}

/* Scroll-reveal animations (scale-up-from-bottom) */
.reveal,
.reveal-img {
    opacity: 0;
    transform: scale(0.85);
    transform-origin: center bottom;
    transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: opacity, transform;
}
.reveal.is-visible,
.reveal-img.is-visible {
    opacity: 1;
    transform: scale(1);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
@media (prefers-reduced-motion: reduce) {
    .reveal,
    .reveal-img {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* Charging page */
.charging-feature-card {
    background: #fff;
    border-radius: 12px;
    padding: 2rem 1.5rem;
    height: 100%;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
}
.charging-feature-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
.charging-feature-card .feature-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    background: #000;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}
.charging-feature-card h5 {
    font-weight: 600;
    margin-bottom: 0.75rem;
}
.charging-stat {
    padding: 1.5rem 0.5rem;
}
.charging-stat h2 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}
.charging-stat p {
    color: #555;
    margin: 0;
}
.charging-services-card {
    padding: 2rem 1.25rem;
    text-align: center;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    height: 100%;
    background: #fff;
}
.charging-services-card i {
    font-size: 2rem;
    color: #000;
    margin-bottom: 1rem;
}
.charging-tech-grid img,
.charging-tech-slider img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
}
.charging-tech-slider .slick-slide {
    padding: 0 8px;
}
.charging-network-image img {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    display: block;
}
#future-planning img {
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
}
#future-planning img.d-md-block {
    aspect-ratio: 5 / 2;
}
#future-planning img.d-md-none {
    aspect-ratio: 750 / 1299;
}
.charging-services-section .col-md-6 img {
    width: 100%;
    aspect-ratio: 10 / 7;
    object-fit: cover;
    object-position: center;
}
.charging-services-section p.sub-title {
    text-align: left;
    width: auto;
    margin-left: 0;
    font-size: 20px;
}
.charging-services-section ol {
    list-style: decimal outside;
    padding-left: 1.25rem;
    margin: 0;
}
.charging-services-section ol li {
    font-size: 16px;
    line-height: 1.6;
    color: #00000099;
    margin-bottom: 0.35rem;
}
.charging-services-section ol li::marker {
    font-weight: 600;
}

/* Unified CTA hover: all primary CTAs turn XPENG green (#a4ce4c) on hover */
.cta-button,
.cta-button-white,
.hero-cta-buttons .btn,
.btn-outline-light,
.btn-light.green-arrow,
a.btn.green-arrow {
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.cta-button:hover,
.cta-button-white:hover,
.slide-content .cta-button:hover,
.hero-cta-buttons .btn:hover,
.btn-outline-light:hover,
.btn-light.green-arrow:hover,
a.btn.green-arrow:hover {
    background-color: #a4ce4c !important;
    color: #ffffff !important;
    border-color: #a4ce4c !important;
}
.hero-cta-buttons .btn:hover i,
a.btn.green-arrow:hover i {
    color: #ffffff !important;
}
p.size-9{
    font-size: 0.9rem;
}
.corner-bg-p7plus {
    position: absolute;
    top: 0;
    left: 0;
    width: 22.4rem;
    height: 14.5rem;
    background-image: url('../images/p7plus/990315b2d4d3475d9f1fec41ce4286ae.png');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 1;
}

/* Position .swiper-container-2 prev/next arrows on the IMAGE's vertical
   center across ALL pages that use this slider type
   (.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ).
   Adjust --x9-arrow-shift if the arrows need a small offset
   (positive = down, negative = up). */
.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ {
    --x9-arrow-shift: 2.5rem;
    /* Geometry for centering prev/next arrows on the gap between slides:
       slide is 65vw, inactive slides are transform: scale(.8), so each
       peeking neighbour visually sits (65vw * 0.2)/2 = 6.5vw inward from
       its untransformed position. Visible gap is between the active
       slide's edge and that visual edge — its center is half of that
       distance (3.25vw) further toward the container's middle. */
    --x9-slide-width: 65vw;
    --x9-arrow-size: 1.66666667rem;
    --x9-gap-offset: 3.25vw;
}
.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ .swiper-button-prev,
.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ .swiper-button-next {
    top: calc(50% + var(--x9-arrow-shift)) !important;
}
.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ .swiper-button-prev {
    left: calc((100% - var(--x9-slide-width)) / 2 - var(--x9-gap-offset) - var(--x9-arrow-size) / 2) !important;
}
.index-module__slider-zoom--vtmyiFad .index-module__my-swiper--VeCaSesQ .swiper-button-next {
    right: calc((100% - var(--x9-slide-width)) / 2 - var(--x9-gap-offset) - var(--x9-arrow-size) / 2) !important;
}


/* x9 mobile video — poster + play/close controls on mobile only.
   Buttons hidden on desktop by default; mobile media query reveals them
   with explicit display:inline-flex + size so visibility is reliable
   regardless of Bootstrap helper-class ordering. */
.mobile-video-section .mobile-video-play-btn,
.mobile-video-section .mobile-video-close-btn {
    display: none;
}
.mobile-video-section .mobile-video-play-btn[hidden],
.mobile-video-section .mobile-video-close-btn[hidden] {
    display: none !important;
}
@media (max-width: 767.98px) {
    /* Default (paused, poster visible): video element fills vh-100 with cover crop.
       Once playback starts (is-playing), switch to letterboxed 16:9. */
    .mobile-video-section {
        background: #000;
    }
    .mobile-video-section video {
        object-fit: cover;
    }
    .mobile-video-section.is-playing video {
        object-fit: contain !important;
        aspect-ratio: 16 / 9;
        background: #000;
    }
    .mobile-video-section .mobile-video-play-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 20;
        width: 80px;
        height: 80px;
        background: transparent;
        border: 0;
        padding: 0;
        margin: 0;
        cursor: pointer;
        line-height: 0;
        -webkit-appearance: none;
        appearance: none;
    }
    .mobile-video-section .mobile-video-play-btn svg {
        width: 80px;
        height: 80px;
        pointer-events: none;
    }
    .mobile-video-section .mobile-video-close-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 2rem;
        right: 1.5rem;
        z-index: 21;
        width: 48px;
        height: 48px;
        background: transparent;
        border: 0;
        padding: 8px;
        margin: 0;
        cursor: pointer;
        line-height: 0;
        -webkit-appearance: none;
        appearance: none;
    }
    .mobile-video-section .mobile-video-close-btn svg {
        width: 32px;
        height: 32px;
        pointer-events: none;
    }
    .mobile-video-section .mobile-video-play-btn:focus,
    .mobile-video-section .mobile-video-close-btn:focus,
    .mobile-video-section .mobile-video-play-btn:active,
    .mobile-video-section .mobile-video-close-btn:active {
        outline: none;
        background: transparent;
    }
    .mobile-video-section.is-playing video {
        background: #000;
    }
}
@media (min-width: 320px) and (max-width: 960px) {
    .index-module__rotate-car--UxMt-vLX {
        background-color: #fff;
        -webkit-user-select: none;
        -moz-user-select: none;
        user-select: none;
        text-align: center;
        padding-bottom: 0rem;
        padding-top: 10rem;
        position: relative;
    }
}

