/* =============================================================
   DJI FLIP CLONE STYLES - Practice Areas Page
   Matching DJI design system with identical animations
   ============================================================= */

/* CSS Custom Properties - DJI Design Tokens */
:root {
  --dji-black: #000000;
  --dji-white: #FFFFFF;
  --dji-gray-dark: #1d1d1f;
  --dji-gray-medium: #424245;
  --dji-gray-light: #86868b;
  --dji-blue-accent: #0070D5;
  --dji-text-on-dark: #FFFFFF;
  --dji-text-on-light: #000000;
  --dji-header-height: 64px;
  --dji-full-screen-height: calc(100vh - 64px);
  --dji-max-width: 1200px;
  --dji-font-family: "Open Sans", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", "Hiragino Sans GB", "WenQuanYi Micro Hei", Arial, sans-serif;
  --pano-clip: 50%;
  --header-h: 64px; /* Used by DJIExpandingCard component */
}

/* =============================================================
   BASE LAYOUT & TYPOGRAPHY
   ============================================================= */

.dji-page {
  font-family: var(--dji-font-family);
  background-color: var(--dji-black);
  color: var(--dji-white);
  overflow-x: hidden;
  padding-top: var(--dji-header-height);
}

.dji-section {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* GSAP ScrollTrigger pin-spacer styling for expanding card sections */
.pin-spacer {
  background-color: #ffffff !important;
}

.dji-section--full-screen {
  /* Use fixed height instead of min-height to prevent CLS from content expansion */
  height: var(--dji-full-screen-height);
  min-height: 600px; /* Fallback minimum to ensure content fits */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden; /* Prevent content from causing layout shifts */
}

.dji-container {
  width: 100%;
  max-width: var(--dji-max-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* Typography */
.dji-headline {
  font-size: clamp(2rem, 6vw, 4rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0;
}

.dji-headline--xl {
  font-size: clamp(2.5rem, 8vw, 5rem);
}

.dji-headline--hero {
  font-size: clamp(3rem, 10vw, 6rem);
}

.dji-subheadline {
  font-size: clamp(1rem, 2vw, 1.5rem);
  font-weight: 400;
  line-height: 1.4;
  opacity: 0.9;
  margin: 0;
}

.dji-eyebrow {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.8;
  margin-bottom: 1rem;
}

.dji-body {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
}

.dji-body--large {
  font-size: 1.25rem;
}

/* Text alignment */
.dji-text-center {
  text-align: center;
}

.dji-text-left {
  text-align: left;
}

/* =============================================================
   HERO MODULE (productPage / hg703SetStyle)
   ============================================================= */

.dji-hero {
  position: relative;
  width: 100%;
  min-height: var(--dji-full-screen-height);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.dji-hero__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.dji-hero__video,
.dji-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dji-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.3) 0%,
    rgba(0, 0, 0, 0.1) 40%,
    rgba(0, 0, 0, 0.4) 100%
  );
  z-index: 1;
}

.dji-hero__mask {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, var(--mask-opacity, 0.1));
  z-index: 2;
}

.dji-hero__content {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem;
  max-width: 900px;
}

.dji-hero__title {
  font-size: clamp(2.5rem, 8vw, 5rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.dji-hero__subtitle {
  font-size: clamp(1rem, 2.5vw, 1.5rem);
  font-weight: 400;
  line-height: 1.4;
  opacity: 0.9;
  max-width: 600px;
}

.dji-hero__cta {
  margin-top: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 2rem;
  background-color: var(--dji-blue-accent);
  color: var(--dji-white);
  font-size: 1rem;
  font-weight: 600;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s ease;
}

.dji-hero__cta:hover {
  background-color: #005bb5;
  transform: scale(1.02);
}

/* =============================================================
   INFO CARD VERTICAL MODULE (infoCardVertical)
   Full-width story beats with background media
   ============================================================= */

.dji-info-card-vertical {
  position: relative;
  width: 100%;
  /* Use fixed height to prevent CLS from content expansion */
  height: 100vh;
  min-height: 600px; /* Fallback minimum */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.dji-info-card-vertical--dark {
  background-color: var(--dji-black);
  color: var(--dji-white);
}

.dji-info-card-vertical--light {
  background-color: var(--dji-white);
  color: var(--dji-black);
}

.dji-info-card-vertical__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.dji-info-card-vertical__video,
.dji-info-card-vertical__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease-out;
}

.dji-info-card-vertical__mask {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, var(--mask-opacity, 0.1));
  z-index: 1;
}

.dji-info-card-vertical__content {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 2rem;
  max-width: 900px;
}

.dji-info-card-vertical__headline {
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 600;
  line-height: 1.15;
  margin-bottom: 1.5rem;
}

.dji-info-card-vertical__description {
  font-size: clamp(1rem, 2vw, 1.25rem);
  line-height: 1.6;
  opacity: 0.9;
  max-width: 700px;
}

/* =============================================================
   INFO CARD HORIZONTAL MODULE (infoCardHorizontal)
   Split layout: media left/right, text opposite
   ============================================================= */

.dji-info-card-horizontal {
  position: relative;
  width: 100%;
  /* Auto height for better fit on various screens */
  height: auto;
  min-height: 500px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--dji-white);
  color: var(--dji-black);
}

.dji-info-card-horizontal--reverse {
  /* Parent marker class */
}

.dji-info-card-horizontal--reverse .dji-info-card-horizontal__inner {
  flex-direction: row-reverse;
}

.dji-info-card-horizontal__inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: var(--dji-max-width);
  margin: 0 auto;
  padding: 4rem 2rem;
  gap: 4rem;
}

.dji-info-card-horizontal__media {
  flex: 0 0 auto;
  width: 42%;
  max-width: 500px;
  max-height: 65vh;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 4/3;
}

.dji-info-card-horizontal__image,
.dji-info-card-horizontal__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.dji-info-card-horizontal__image:hover,
.dji-info-card-horizontal__video:hover {
  transform: scale(1.02);
}

.dji-info-card-horizontal__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.dji-info-card-horizontal__headline {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.2;
  color: #1e3a5f;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
}

.dji-info-card-horizontal__description {
  font-size: 1.125rem;
  line-height: 1.6;
  color: #4b5563;
}

.dji-info-card-horizontal__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #1e3a5f;
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
  transition: gap 0.3s ease;
  margin-top: 0.5rem;
}

.dji-info-card-horizontal__link:hover {
  gap: 0.75rem;
}

.dji-info-card-horizontal__link svg {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.dji-info-card-horizontal__link:hover svg {
  transform: translateX(4px);
}

/* Small desktop screens (14" laptops, ~1366x768 to 1440px) */
@media (min-width: 769px) and (max-width: 1200px) {
  .dji-info-card-horizontal {
    height: auto;
    min-height: auto;
  }

  .dji-info-card-horizontal__inner {
    padding: 2rem 1.5rem;
    gap: 2rem;
  }

  .dji-info-card-horizontal__media {
    width: 38%;
    max-width: 350px;
    aspect-ratio: 4/3;
    max-height: 55vh;
  }

  .dji-info-card-horizontal__headline {
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  }

  .dji-info-card-horizontal__description {
    font-size: 0.95rem;
  }
}

/* Medium desktop screens (15-16" laptops) */
@media (min-width: 1201px) and (max-width: 1440px) {
  .dji-info-card-horizontal {
    height: auto;
    min-height: auto;
  }

  .dji-info-card-horizontal__inner {
    padding: 3rem 2rem;
    gap: 3rem;
  }

  .dji-info-card-horizontal__media {
    width: 40%;
    max-width: 420px;
    aspect-ratio: 4/3;
    max-height: 60vh;
  }
}

@media (max-width: 768px) {
  .dji-info-card-horizontal {
    height: auto;
    min-height: auto;
    padding: 2rem 0;
  }

  .dji-info-card-horizontal__inner {
    flex-direction: column;
    gap: 2rem;
    padding: 2rem 1rem;
  }

  .dji-info-card-horizontal--reverse .dji-info-card-horizontal__inner {
    flex-direction: column;
  }

  /* Make cards 2x bigger on mobile */
  .dji-info-card-horizontal__media {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 3/4;
    min-height: 400px;
  }

  .dji-info-card-horizontal__headline {
    font-size: 2rem;
    text-align: center;
  }

  .dji-info-card-horizontal__description {
    font-size: 1rem;
    text-align: center;
  }

  .dji-info-card-horizontal__link {
    justify-content: center;
  }
}

/* =============================================================
   BG ZOOM OUT MODULE (common-BgZoomOut)
   Cinematic background zoom-out while text stays centered
   ============================================================= */

.dji-bg-zoom-out {
  position: relative;
  width: 100%;
  /* Use fixed height to prevent CLS */
  height: 100vh;
  min-height: 600px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.dji-bg-zoom-out__background {
  position: absolute;
  inset: -10%;
  z-index: 0;
  transform: scale(1.2);
  /* NOTE: REMOVED transition - GSAP scrub handles zoom animation
     0.1s CSS transition conflicts with scroll-driven GSAP scrub */
  will-change: transform;
}

.dji-bg-zoom-out__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dji-bg-zoom-out__gradient {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--gradient-height, 40%);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(0, 0, 0, 0.8) 100%
  );
  z-index: 1;
}

.dji-bg-zoom-out__content {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 2rem;
  max-width: 900px;
}

.dji-bg-zoom-out__eyebrow {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 1rem;
  opacity: 0.8;
}

.dji-bg-zoom-out__headline {
  font-size: clamp(2.5rem, 8vw, 4.5rem);
  font-weight: 600;
  line-height: 1.1;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

/* =============================================================
   SALE POINT MODULE (salePoint)
   Icon grid with selling points
   ============================================================= */

.dji-sale-point {
  position: relative;
  width: 100%;
  padding: 6rem 2rem;
  background-color: var(--dji-black);
}

.dji-sale-point__inner {
  max-width: var(--dji-max-width);
  margin: 0 auto;
}

.dji-sale-point__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 3rem;
}

.dji-sale-point__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
}

.dji-sale-point__icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--dji-blue-accent);
}

.dji-sale-point__icon svg {
  width: 48px;
  height: 48px;
}

.dji-sale-point__title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0;
}

.dji-sale-point__description {
  font-size: 0.95rem;
  line-height: 1.5;
  opacity: 0.8;
  max-width: 300px;
}

/* =============================================================
   TAB HORIZONTAL MODULE (infoTabHorizontal)
   Tabbed content with animated panel switching
   ============================================================= */

.dji-tab-horizontal {
  position: relative;
  width: 100%;
  padding: 6rem 2rem;
  background-color: var(--dji-gray-dark);
}

.dji-tab-horizontal__inner {
  max-width: var(--dji-max-width);
  margin: 0 auto;
}

.dji-tab-horizontal__header {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: 1rem;
  position: relative;
}

.dji-tab-horizontal__tab {
  position: relative;
  background: none;
  border: none;
  color: var(--dji-gray-light);
  font-size: 1rem;
  font-weight: 500;
  padding: 0.75rem 1.5rem;
  cursor: pointer;
  transition: color 0.3s ease;
}

.dji-tab-horizontal__tab:hover {
  color: var(--dji-white);
}

.dji-tab-horizontal__tab--active {
  color: var(--dji-white);
}

.dji-tab-horizontal__tab--active::after {
  content: '';
  position: absolute;
  bottom: -1rem;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--dji-blue-accent);
}

.dji-tab-horizontal__indicator {
  position: absolute;
  bottom: -1px;
  height: 2px;
  background-color: var(--dji-blue-accent);
  transition: all 0.3s ease;
}

.dji-tab-horizontal__panels {
  position: relative;
  overflow: hidden;
}

.dji-tab-horizontal__panel {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  width: 100%;
  /* NOTE: REMOVED transition - GSAP handles opacity/transform animation
     CSS transitions conflict with GSAP's direct property manipulation */
  transform: translateY(20px);
}

.dji-tab-horizontal__panel--active {
  opacity: 1;
  visibility: visible;
  position: relative;
  transform: translateY(0);
}

.dji-tab-horizontal__panel-content {
  display: flex;
  align-items: center;
  gap: 4rem;
}

.dji-tab-horizontal__panel-media {
  flex: 1;
  border-radius: 12px;
  overflow: hidden;
}

.dji-tab-horizontal__panel-image {
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.dji-tab-horizontal__panel-text {
  flex: 1;
}

.dji-tab-horizontal__panel-title {
  font-size: 1.75rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.dji-tab-horizontal__panel-description {
  font-size: 1rem;
  line-height: 1.6;
  opacity: 0.85;
}

@media (max-width: 768px) {
  .dji-tab-horizontal__panel-content {
    flex-direction: column;
    gap: 2rem;
  }

  .dji-tab-horizontal__header {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .dji-tab-horizontal__tab {
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
  }
}

/* =============================================================
   IMAGE CAROUSEL MODULE (wm330ImageCarousel)
   Swiper carousel with pagination and loading spinner
   ============================================================= */

.dji-carousel {
  position: relative;
  width: 100%;
  padding: 4rem 0;
  background-color: var(--dji-white);
  overflow: hidden;
}

.dji-carousel__header {
  text-align: center;
  margin-bottom: 3rem;
  padding: 0 2rem;
}

.dji-carousel__title {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #1e3a5f;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
}

.dji-carousel__swiper {
  padding-bottom: 3rem;
}

.dji-carousel__slide {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 16/9;
}

.dji-carousel__slide-image,
.dji-carousel__slide-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dji-carousel__slide-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
}

.dji-carousel__pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}

/* Swiper custom styles */
.dji-carousel .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 1;
  transition: all 0.3s ease;
}

.dji-carousel .swiper-pagination-bullet-active {
  background-color: #2563eb;
  width: 24px;
  border-radius: 4px;
}

.dji-carousel .swiper-button-prev,
.dji-carousel .swiper-button-next {
  color: #1e3a5f;
  background-color: rgba(0, 0, 0, 0.05);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.dji-carousel .swiper-button-prev:hover,
.dji-carousel .swiper-button-next:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

.dji-carousel .swiper-button-prev::after,
.dji-carousel .swiper-button-next::after {
  font-size: 1rem;
}

/* Preloader spinner */
.dji-carousel__preloader {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--dji-gray-dark);
  z-index: 10;
}

.dji-carousel__spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(255, 255, 255, 0.1);
  border-top-color: var(--dji-white);
  border-radius: 50%;
  animation: swiper-preloader-spin 1s linear infinite;
}

/* =============================================================
   ACCESSORIES MODULE (accessories)
   Product cards grid
   ============================================================= */

.dji-accessories {
  position: relative;
  width: 100%;
  padding: 6rem 2rem;
  background-color: var(--dji-white);
  color: var(--dji-black);
}

.dji-accessories__inner {
  max-width: var(--dji-max-width);
  margin: 0 auto;
}

.dji-accessories__header {
  text-align: center;
  margin-bottom: 4rem;
}

.dji-accessories__title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  margin-bottom: 1rem;
}

.dji-accessories__subtitle {
  font-size: 1.125rem;
  opacity: 0.7;
}

.dji-accessories__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.dji-accessories__card {
  background-color: #f5f5f7;
  border-radius: 16px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dji-accessories__card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.dji-accessories__card-image {
  aspect-ratio: 4/3;
  overflow: hidden;
}

.dji-accessories__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.dji-accessories__card:hover .dji-accessories__card-image img {
  transform: scale(1.05);
}

.dji-accessories__card-content {
  padding: 1.5rem;
}

.dji-accessories__card-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.dji-accessories__card-description {
  font-size: 0.95rem;
  opacity: 0.7;
  line-height: 1.5;
}

.dji-accessories__card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 1rem;
  color: var(--dji-blue-accent);
  font-weight: 500;
  text-decoration: none;
  transition: gap 0.3s ease;
}

.dji-accessories__card-link:hover {
  gap: 0.5rem;
}

/* =============================================================
   SHOPPING GUIDE MODULE (shoppingGuide)
   Bundle comparison layout
   ============================================================= */

.dji-shopping-guide {
  position: relative;
  width: 100%;
  padding: 6rem 2rem;
  background-color: var(--dji-black);
}

.dji-shopping-guide__inner {
  max-width: var(--dji-max-width);
  margin: 0 auto;
}

.dji-shopping-guide__header {
  text-align: center;
  margin-bottom: 4rem;
}

.dji-shopping-guide__title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  margin-bottom: 1rem;
}

.dji-shopping-guide__comparison {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.dji-shopping-guide__item {
  background-color: var(--dji-gray-dark);
  border-radius: 16px;
  padding: 2rem;
  text-align: center;
  transition: transform 0.3s ease;
}

.dji-shopping-guide__item:hover {
  transform: translateY(-4px);
}

.dji-shopping-guide__item-image {
  margin-bottom: 1.5rem;
}

.dji-shopping-guide__item-image img {
  max-height: 200px;
  width: auto;
}

.dji-shopping-guide__item-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.dji-shopping-guide__item-price {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--dji-blue-accent);
  margin-bottom: 1rem;
}

.dji-shopping-guide__item-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}

.dji-shopping-guide__item-features li {
  padding: 0.5rem 0;
  font-size: 0.95rem;
  opacity: 0.8;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.dji-shopping-guide__item-features li:last-child {
  border-bottom: none;
}

.dji-shopping-guide__item-cta {
  display: inline-block;
  padding: 0.875rem 2rem;
  background-color: var(--dji-blue-accent);
  color: var(--dji-white);
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.dji-shopping-guide__item-cta:hover {
  background-color: #005bb5;
}

/* =============================================================
   SECTION COMMENTS MODULE (sectionComments)
   Marketing footer / CTA section
   ============================================================= */

.dji-section-comments {
  position: relative;
  width: 100%;
  padding: 8rem 2rem;
  background: linear-gradient(135deg, var(--dji-gray-dark) 0%, var(--dji-black) 100%);
  text-align: center;
}

.dji-section-comments__inner {
  max-width: 800px;
  margin: 0 auto;
}

.dji-section-comments__headline {
  font-size: clamp(2rem, 6vw, 3.5rem);
  font-weight: 600;
  margin-bottom: 1.5rem;
  line-height: 1.15;
}

.dji-section-comments__description {
  font-size: 1.125rem;
  line-height: 1.6;
  opacity: 0.85;
  margin-bottom: 2.5rem;
}

.dji-section-comments__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2.5rem;
  background-color: var(--dji-blue-accent);
  color: var(--dji-white);
  font-size: 1.125rem;
  font-weight: 600;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s ease;
}

.dji-section-comments__cta:hover {
  background-color: #005bb5;
  transform: scale(1.02);
}

/* =============================================================
   GSAP ANIMATION KEYFRAMES
   ============================================================= */

/* Opacity fade animation */
@keyframes dji-opacity-animation {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* Generic fade-in */
@keyframes dji-fade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* Progress bar animation */
@keyframes dji-progress {
  0% { width: 0; }
  100% { width: 100%; }
}

/* Clip-path pano reveal */
@keyframes dji-clip-active {
  0% { clip-path: inset(0 var(--pano-clip)); }
  100% { clip-path: inset(0); }
}

/* Clip-path pano hide */
@keyframes dji-clip-hidden {
  0% { clip-path: inset(0); }
  100% { clip-path: inset(0 var(--pano-clip)); }
}

/* Swiper preloader spin */
@keyframes swiper-preloader-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* 3D rotate animation */
@keyframes dji-rotate-3d {
  0% { transform: rotateX(0deg) rotateY(0deg); }
  50% { transform: rotateX(180deg) rotateY(180deg); }
  100% { transform: rotateX(360deg) rotateY(360deg); }
}

/* Scroll reveal animation classes */
.dji-scroll-reveal {
  opacity: 0;
  transform: translateY(60px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.dji-scroll-reveal--visible {
  opacity: 1;
  transform: translateY(0);
}

.dji-scroll-reveal--delay-1 {
  transition-delay: 0.1s;
}

.dji-scroll-reveal--delay-2 {
  transition-delay: 0.2s;
}

.dji-scroll-reveal--delay-3 {
  transition-delay: 0.3s;
}

/* Parallax layer */
.dji-parallax-layer {
  will-change: transform;
}

/* Pin section indicator */
.dji-pin-spacer {
  position: relative;
}

/* =============================================================
   VIDEO BEHAVIORS
   ============================================================= */

.dji-video-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.dji-video-container video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dji-video-container--hover-play video {
  opacity: 0;
  transition: opacity 0.5s ease;
}

.dji-video-container--hover-play:hover video {
  opacity: 1;
}

.dji-video-poster {
  position: absolute;
  inset: 0;
  object-fit: cover;
  transition: opacity 0.5s ease;
}

.dji-video-container--playing .dji-video-poster {
  opacity: 0;
}

/* =============================================================
   RESPONSIVE BEHAVIORS
   ============================================================= */

@media (max-width: 768px) {
  :root {
    --dji-header-height: 56px;
    --dji-full-screen-height: calc(100vh - 56px);
  }

  .dji-page {
    padding-top: var(--dji-header-height);
  }

  .dji-hero__title {
    font-size: clamp(2rem, 8vw, 3rem);
  }

  .dji-hero__subtitle {
    font-size: 1rem;
  }

  .dji-container {
    padding: 0 16px;
  }

  .dji-sale-point__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }

  .dji-accessories__grid {
    grid-template-columns: 1fr;
  }

  .dji-shopping-guide__comparison {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .dji-sale-point__grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================
   PERFORMANCE OPTIMIZATIONS
   ============================================================= */

/* Offscreen video pause optimization handled via JS */
.dji-video--offscreen {
  visibility: hidden;
}

/* Will-change for animated elements */
.dji-will-change-transform {
  will-change: transform;
}

.dji-will-change-opacity {
  will-change: opacity;
}

/* GPU acceleration hints */
.dji-gpu-accelerate {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Lazy load placeholder */
.dji-lazy-placeholder {
  background-color: var(--dji-gray-dark);
  animation: dji-opacity-animation 1s ease infinite alternate;
}

/* Content visibility for performance */
.dji-content-visibility-auto {
  content-visibility: auto;
  contain-intrinsic-size: auto 100vh;
}

/* =============================================================
   CTA BUTTONS
   ============================================================= */

.dji-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  border: none;
}

.dji-btn--primary {
  background-color: var(--dji-blue-accent);
  color: var(--dji-white);
}

.dji-btn--primary:hover {
  background-color: #005bb5;
  transform: scale(1.02);
}

.dji-btn--secondary {
  background-color: transparent;
  color: var(--dji-white);
  border: 2px solid var(--dji-white);
}

.dji-btn--secondary:hover {
  background-color: var(--dji-white);
  color: var(--dji-black);
}

.dji-btn--ghost {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--dji-white);
}

.dji-btn--ghost:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

/* Link with arrow */
.dji-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--dji-blue-accent);
  font-weight: 500;
  text-decoration: none;
  transition: gap 0.3s ease;
}

.dji-link-arrow:hover {
  gap: 0.5rem;
}

.dji-link-arrow svg {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.dji-link-arrow:hover svg {
  transform: translateX(4px);
}

/* =============================================================
   SCROLL ZOOM HERO MODULE (DJI Flip Propeller Guard Style)
   Full-viewport hero with scroll-driven image zoom and fog transition
   ============================================================= */

.dji-scroll-zoom-hero {
  position: relative;
  width: 100%;
  /* Use fixed height to prevent CLS */
  height: 100vh;
  min-height: 600px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.dji-scroll-zoom-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  will-change: transform;
  transform-origin: center center;
}

.dji-scroll-zoom-hero__image,
.dji-scroll-zoom-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dji-scroll-zoom-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(
    ellipse at center,
    rgba(0, 0, 0, 0.00) 0%,
    rgba(0, 0, 0, 0.12) 75%,
    rgba(0, 0, 0, 0.18) 100%
  );
  pointer-events: none;
}

.dji-scroll-zoom-hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  /* Use fixed height to prevent CLS */
  height: 100vh;
  min-height: 600px;
  padding-top: 96px;
  padding-left: 48px;
  padding-right: 48px;
}

.dji-scroll-zoom-hero__headline {
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 6vw, 56px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-align: center;
  color: #FFFFFF;
  max-width: 920px;
  margin: 0;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.25);
  will-change: opacity, transform;
}

.dji-scroll-zoom-hero__fog {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 45vh;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 255, 255, 0.65) 25%,
    rgba(255, 255, 255, 0.0) 70%
  );
  opacity: 0;
  will-change: opacity, transform;
}

/* Responsive rules */
@media (min-width: 1024px) {
  .dji-scroll-zoom-hero__headline {
    font-size: 56px;
    max-width: 920px;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .dji-scroll-zoom-hero__headline {
    font-size: 44px;
    max-width: 780px;
  }

  .dji-scroll-zoom-hero__content {
    padding-left: 32px;
    padding-right: 32px;
  }
}

@media (max-width: 639px) {
  .dji-scroll-zoom-hero__headline {
    font-size: 32px;
    max-width: 520px;
  }

  .dji-scroll-zoom-hero__content {
    padding-top: 72px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* =============================================================
   14-INCH LAPTOP RESPONSIVE FIXES
   Target: 1024-1440px width or height <= 900px
   ============================================================= */

/* 14-inch width-based adjustments */
@media (min-width: 1024px) and (max-width: 1440px) {
  :root {
    --dji-full-screen-height: calc(100vh - 56px);
  }

  .dji-section--full-screen {
    min-height: 500px;
  }

  .dji-info-card-vertical {
    min-height: 500px;
  }

  .dji-info-card-horizontal {
    min-height: 500px;
  }

  .dji-bg-zoom-out {
    min-height: 500px;
  }

  .dji-scroll-zoom-hero {
    min-height: 500px;
  }

  .dji-scroll-zoom-hero__content {
    min-height: 500px;
    padding-top: 72px;
  }

  .dji-hero__title {
    font-size: clamp(2rem, 6vw, 3.5rem);
  }

  .dji-hero__subtitle {
    font-size: 1.125rem;
  }

  .dji-info-card-vertical__content {
    padding: 3rem 1.5rem;
  }

  .dji-info-card-horizontal__inner {
    padding: 3rem 1.5rem;
    gap: 3rem;
  }

  .dji-sale-point {
    padding: 4rem 1.5rem;
  }

  .dji-tab-horizontal {
    padding: 4rem 1.5rem;
  }

  .dji-accessories {
    padding: 4rem 1.5rem;
  }

  .dji-shopping-guide {
    padding: 4rem 1.5rem;
  }

  .dji-section-comments {
    padding: 5rem 1.5rem;
  }

  .dji-bg-zoom-out__content {
    padding: 3rem 1.5rem;
  }
}

/* Height-constrained desktops (14" laptops with limited vertical space) */
@media (min-width: 768px) and (max-height: 900px) {
  :root {
    --dji-full-screen-height: calc(100vh - 48px);
  }

  /* NOTE: Do NOT use height: auto on scroll-animated sections
     It breaks GSAP ScrollTrigger calculations. Only set min-height. */

  .dji-section--full-screen {
    /* height: auto - REMOVED to preserve scroll animation */
    min-height: 450px;
  }

  .dji-info-card-vertical {
    /* height: auto - REMOVED to preserve scroll animation */
    min-height: 450px;
  }

  .dji-info-card-horizontal {
    /* Static content, safe to adjust */
    min-height: 350px;
  }

  /* ANIMATED SECTIONS - preserve original height, only set min constraints */
  .dji-bg-zoom-out {
    /* height: auto - REMOVED - breaks zoom animation */
    min-height: 450px;
  }

  .dji-scroll-zoom-hero {
    /* height: auto - REMOVED - breaks scroll zoom animation */
    min-height: 450px;
  }

  .dji-scroll-zoom-hero__content {
    /* height: auto - REMOVED - breaks scroll animation */
    min-height: 450px;
    padding-top: 56px;
  }

  .dji-hero {
    min-height: 450px;
  }

  .dji-hero__content {
    padding: 1.5rem;
  }

  .dji-hero__title {
    font-size: clamp(1.75rem, 5vw, 3rem);
    margin-bottom: 0.75rem;
  }

  .dji-hero__subtitle {
    font-size: 1rem;
  }

  .dji-hero__cta {
    margin-top: 1.5rem;
    padding: 0.75rem 1.5rem;
  }

  .dji-info-card-vertical__content {
    padding: 2.5rem 1.5rem;
  }

  .dji-info-card-vertical__headline {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    margin-bottom: 1rem;
  }

  .dji-info-card-horizontal__inner {
    padding: 2.5rem 1.5rem;
    gap: 2.5rem;
  }

  .dji-sale-point {
    padding: 3.5rem 1.5rem;
  }

  .dji-sale-point__grid {
    gap: 2rem;
  }

  .dji-tab-horizontal {
    padding: 3.5rem 1.5rem;
  }

  .dji-tab-horizontal__header {
    margin-bottom: 2rem;
  }

  .dji-accessories {
    padding: 3.5rem 1.5rem;
  }

  .dji-accessories__header {
    margin-bottom: 2.5rem;
  }

  .dji-shopping-guide {
    padding: 3.5rem 1.5rem;
  }

  .dji-shopping-guide__header {
    margin-bottom: 2.5rem;
  }

  .dji-section-comments {
    padding: 4rem 1.5rem;
  }

  .dji-section-comments__headline {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    margin-bottom: 1rem;
  }

  .dji-section-comments__description {
    margin-bottom: 1.5rem;
  }

  .dji-bg-zoom-out__content {
    padding: 2.5rem 1.5rem;
  }

  .dji-bg-zoom-out__headline {
    font-size: clamp(2rem, 6vw, 3.5rem);
  }

  .dji-scroll-zoom-hero__fog {
    height: 35vh;
  }
}

/* Very constrained height (768px and below) */
@media (min-width: 768px) and (max-height: 768px) {
  .dji-section--full-screen {
    min-height: 400px;
  }

  .dji-info-card-vertical {
    min-height: 400px;
  }

  .dji-bg-zoom-out {
    min-height: 400px;
  }

  .dji-scroll-zoom-hero {
    min-height: 400px;
  }

  .dji-scroll-zoom-hero__content {
    min-height: 400px;
    padding-top: 48px;
  }

  .dji-hero__content {
    padding: 1rem;
  }

  .dji-hero__title {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
  }

  .dji-info-card-vertical__content {
    padding: 2rem 1rem;
  }

  .dji-info-card-horizontal__inner {
    padding: 2rem 1rem;
    gap: 2rem;
  }

  .dji-sale-point {
    padding: 2.5rem 1rem;
  }

  .dji-tab-horizontal {
    padding: 2.5rem 1rem;
  }

  .dji-accessories {
    padding: 2.5rem 1rem;
  }

  .dji-shopping-guide {
    padding: 2.5rem 1rem;
  }

  .dji-section-comments {
    padding: 3rem 1rem;
  }

  .dji-bg-zoom-out__content {
    padding: 2rem 1rem;
  }

  .dji-scroll-zoom-hero__fog {
    height: 30vh;
  }
}

/* =============================================================
   ADDITIONAL DJI 14-INCH FIXES
   Further refinements for width + height constraints
   ============================================================= */

/* Combined width + height constraints for 14-inch laptops */
@media (min-width: 1024px) and (max-width: 1440px) and (max-height: 900px) {
  /* NOTE: height: auto REMOVED from animated sections to preserve GSAP ScrollTrigger */

  .dji-section--full-screen {
    min-height: 400px;
  }

  .dji-info-card-vertical {
    min-height: 380px;
  }

  .dji-info-card-horizontal {
    min-height: 350px;
  }

  .dji-info-card-horizontal__inner {
    padding: 2rem 1.25rem;
    gap: 2rem;
  }

  .dji-info-card-horizontal__media {
    width: 40%;
    max-width: 450px;
  }

  /* ANIMATED SECTIONS - only min-height, preserve original height */
  .dji-bg-zoom-out {
    min-height: 380px;
  }

  .dji-scroll-zoom-hero {
    min-height: 380px;
  }

  .dji-scroll-zoom-hero__content {
    min-height: 380px;
    padding-top: 48px;
  }

  .dji-hero__title {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
  }

  .dji-sale-point {
    padding: 3rem 1.25rem;
  }

  .dji-tab-horizontal {
    padding: 3rem 1.25rem;
  }

  .dji-accessories {
    padding: 3rem 1.25rem;
  }

  .dji-shopping-guide {
    padding: 3rem 1.25rem;
  }

  .dji-section-comments {
    padding: 3.5rem 1.25rem;
  }
}

/* NOTE: DJI Expanding Card uses GSAP for animation
   Height should NOT be overridden with !important as it breaks the expand animation
   The component handles its own responsive sizing via DJIExpandingCard.module.css */

/* =============================================================
   MOBILE IMAGE ANTI-BLINK: DJI COMPONENTS
   Prevents GPU re-composition storms on mobile by:
   1. Removing ALL CSS transitions from images/videos (prevents
      conflict with scroll-driven GSAP/Framer Motion animations)
   2. Stabilizing GPU compositing layers with translateZ(0)
   3. Removing hover effects (not applicable on touch devices)
   4. Removing persistent will-change to reduce GPU layer count
   ============================================================= */
@media (max-width: 768px) {
  /* CRITICAL: Remove ALL transitions from images/videos on mobile.
     CSS transitions conflict with scroll-driven animations (GSAP scrub,
     Framer Motion useTransform) causing GPU to re-composite layers on
     every scroll frame, which manifests as visible blinking. */
  .dji-hero__image,
  .dji-hero__video,
  .dji-info-card-vertical__image,
  .dji-info-card-vertical__video,
  .dji-info-card-horizontal__image,
  .dji-info-card-horizontal__video,
  .dji-bg-zoom-out__image,
  .dji-scroll-zoom-hero__image,
  .dji-scroll-zoom-hero__video,
  .dji-carousel__slide-image,
  .dji-carousel__slide-video,
  .dji-tab-horizontal__panel-image,
  .dji-accessories__card-image img,
  .dji-video-poster {
    -webkit-transition: none !important;
    transition: none !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  /* Remove will-change from media layers to reduce GPU layer count.
     On mobile, too many promoted layers cause layer thrashing. */
  .dji-bg-zoom-out__background,
  .dji-scroll-zoom-hero__media,
  .dji-scroll-zoom-hero__headline,
  .dji-scroll-zoom-hero__fog,
  .dji-parallax-layer {
    will-change: auto !important;
  }

  /* Remove ALL hover transforms on mobile touch devices.
     Hover states can trigger unexpectedly via touch and conflict
     with scroll-driven transforms. */
  .dji-info-card-horizontal__image:hover,
  .dji-info-card-horizontal__video:hover,
  .dji-accessories__card:hover .dji-accessories__card-image img,
  .dji-accessories__card:hover,
  .dji-shopping-guide__item:hover {
    -webkit-transform: translateZ(0) !important;
    transform: translateZ(0) !important;
  }

  /* Stabilize container elements that wrap images */
  .dji-carousel__slide,
  .dji-info-card-vertical__background,
  .dji-info-card-horizontal__media,
  .dji-hero__background,
  .dji-video-container {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  /* Remove lazy-placeholder animation to prevent repaint during scroll */
  .dji-lazy-placeholder {
    animation: none !important;
    background-color: var(--dji-gray-dark);
  }

  /* Disable scroll-reveal transitions on images during scroll */
  .dji-scroll-reveal img,
  .dji-scroll-reveal video {
    -webkit-transition: none !important;
    transition: none !important;
  }
}
