/* --- Hero Scroll & Entrance Animations --- */

/* Base initial hidden state for Hero elements */
.hero-content .sub-heading,
.hero-content .main-heading,
.hero-content .hero-actions,
.hero-controls {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Staggered entrance transition delays */
.hero-section-visible .sub-heading {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.hero-section-visible .main-heading {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.4s;
}

.hero-section-visible .hero-actions {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.6s;
}

.hero-section-visible .hero-controls {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.8s;
}

/* Smooth Parallax Scroll Drift on Content */
.hero-content {
  will-change: transform, opacity;
  transition: transform 0.1s linear;
}

/* --- Slide Dynamic Text Change Transitions --- */
.text-transition-out {
  opacity: 0 !important;
  transform: translateY(-15px) !important;
}

.text-transition-in {
  opacity: 0;
  transform: translateY(15px);
}





/* --- Tour Pack Section Scroll Animations --- */

/* Base Hidden State for Section Header Elements */
.tour-pack-section .sub-heading,
.tour-pack-section .section-title,
.tour-pack-section .section-description,
.tour-pack-section .tour-controls-bottom {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Staggered Reveals for Header Text */
.tour-section-visible .sub-heading {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.tour-section-visible .section-title {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s;
}

.tour-section-visible .section-description {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.4s;
}

.tour-section-visible .tour-controls-bottom {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.8s;
}

/* Base Hidden State for Individual Tour Cards */
.tour-pack-section .tour-card {
  opacity: 0;
  transform: translateY(45px) scale(0.96);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible State for Dynamic Cards (Stagger applied via JS) */
.tour-card.card-animated {
  opacity: 1;
  transform: translateY(0) scale(1);
}



/* --- About Us Section Scroll Animations --- */

/* Base Hidden States - Left Column (Images & Badge) */
.about-section .img-main {
  opacity: 0;
  transform: translateX(-40px) scale(0.95);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.about-section .img-overlay {
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.about-section .award-badge {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.6);
  transition: opacity 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275),
              transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  will-change: opacity, transform;
}

/* Base Hidden States - Right Column Content */
.about-section .section-header-left,
.about-section .about-description,
.about-section .stat-item,
.about-section .about-actions {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible Animations Triggered on Scroll */
.about-section-visible .img-main {
  opacity: 1;
  transform: translateX(0) scale(1);
  transition-delay: 0.1s;
}

.about-section-visible .img-overlay {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: 0.3s;
}

.about-section-visible .award-badge {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition-delay: 0.6s;
}

.about-section-visible .section-header-left {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.about-section-visible .about-description {
  opacity: 1;
  transform: translateY(0);
}

.about-section-visible .about-description:nth-of-type(1) { transition-delay: 0.35s; }
.about-section-visible .about-description:nth-of-type(2) { transition-delay: 0.45s; }

.about-section-visible .stat-item:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.6s;
}

.about-section-visible .stat-item:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.72s;
}

.about-section-visible .about-actions {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.85s;
}



/* --- Destinations Section Scroll Animations --- */

/* Base Hidden State for Section Header & Controls */
.destinations-section .sub-heading,
.destinations-section .section-title,
.destinations-section .destinations-controls-bottom {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Staggered Reveals for Header Text */
.destinations-section-visible .sub-heading {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.destinations-section-visible .section-title {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s;
}

.destinations-section-visible .destinations-controls-bottom {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.8s;
}

/* Base Hidden State for Destination Cards */
.destinations-section .destination-card {
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible State for Cards (Stagger applied via JS) */
.destination-card.dest-card-animated {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* --- Features Section Scroll Animations --- */

/* Base Hidden State for Main Container Card */
.features-section .features-container {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Base Hidden State for Feature Items */
.features-section .feature-item {
  opacity: 0;
  transform: translateY(25px) scale(0.96);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Base Hidden State for Vertical Dividers (Grows vertically) */
.features-section .feature-divider {
  opacity: 0;
  transform: scaleY(0);
  transition: opacity 0.6s ease,
              transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
  transform-origin: center;
}

/* --- Active Visible States Triggered on Scroll --- */
.features-section-visible .features-container {
  opacity: 1;
  transform: translateY(0);
}

.feature-item.feature-animated {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.feature-divider.divider-animated {
  opacity: 1;
  transform: scaleY(1);
}



/* --- Contact Us Section Scroll Animations --- */

/* Base Hidden States - Left Column Info Elements */
.contact-section .section-header-left,
.contact-section .contact-description,
.contact-section .contact-detail-item,
.contact-section .contact-socials {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Base Hidden State - Right Column Form Card */
.contact-section .contact-form-wrapper {
  opacity: 0;
  transform: translateY(40px) scale(0.96);
  transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* --- Active Visible States Triggered on Scroll --- */
.contact-section-visible .section-header-left {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.1s;
}

.contact-section-visible .contact-description {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.25s;
}

/* Staggered Contact Items */
.contact-section-visible .contact-detail-item {
  opacity: 1;
  transform: translateX(0);
}

.contact-section-visible .contact-detail-item:nth-child(1) { transition-delay: 0.38s; }
.contact-section-visible .contact-detail-item:nth-child(2) { transition-delay: 0.50s; }
.contact-section-visible .contact-detail-item:nth-child(3) { transition-delay: 0.62s; }

.contact-section-visible .contact-socials {
  opacity: 1;
  transform: translateX(0);
  transition-delay: 0.75s;
}

/* Right Form Wrapper Entrance */
.contact-section-visible .contact-form-wrapper {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: 0.3s;
}



/* --- Testimonials Section Scroll Animations --- */

/* Base Hidden State for Section Header & Footer Controls */
.testimonials-section .sub-heading,
.testimonials-section .section-title,
.testimonials-section .testimonials-footer-nav {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Staggered Reveals for Header Text & Footer Controls */
.testimonials-section-visible .sub-heading {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.testimonials-section-visible .section-title {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s;
}

.testimonials-section-visible .testimonials-footer-nav {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.85s;
}

/* Base Hidden State for Dynamic Testimonial Cards */
.testimonials-section .testimonial-card {
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible State for Cards (Stagger applied via JS) */
.testimonial-card.testimonial-card-animated {
  opacity: 1;
  transform: translateY(0) scale(1);
}



/* --- Blog Section Scroll Animations --- */

/* Base Hidden State for Header Title and Controls */
.blog-section .blog-header-left,
.blog-section .blog-nav-controls {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Staggered Reveals for Header Elements */
.blog-section-visible .blog-header-left {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.blog-section-visible .blog-nav-controls {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s;
}

/* Base Hidden State for Dynamic Blog Cards */
.blog-section .blog-card {
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible State for Cards (Stagger applied via JS) */
.blog-card.blog-card-animated {
  opacity: 1;
  transform: translateY(0) scale(1);
}


/* --- FAQ Section Scroll Animations --- */

/* Base Hidden State - Left Image Column */
.faq-section .faq-image-wrapper {
  opacity: 0;
  transform: translateX(-40px) scale(0.95);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Base Hidden State - Right Header & Accordion Items */
.faq-section .section-header-left,
.faq-section .faq-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* --- Active Visible States Triggered on Scroll --- */
.faq-section-visible .faq-image-wrapper {
  opacity: 1;
  transform: translateX(0) scale(1);
  transition-delay: 0.1s;
}

.faq-section-visible .section-header-left {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.25s;
}

/* Staggered Accordion Rows */
.faq-item.faq-item-animated {
  opacity: 1;
  transform: translateY(0);
}


/* --- Community & Video Banner Section Scroll Animations --- */

/* Base Hidden State - Community Content */
.community-section .community-title,
.community-section .community-subtitle,
.community-section .newsletter-form {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Base Hidden State - Background Scale Effect */
.community-section .community-bg {
  transform: scale(1.1);
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* Active Visible State Triggered on Scroll */
.community-section-visible .community-bg {
  transform: scale(1);
}

.community-section-visible .community-title {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.15s;
}

.community-section-visible .community-subtitle {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.30s;
}

.community-section-visible .newsletter-form {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.45s;
}

/* --- Footer Section Scroll Animations --- */

/* Base Hidden State - Footer Columns & Bottom Bar */
.footer-section .footer-col,
.footer-section .footer-bottom {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Active Visible State Triggered on Scroll */
.footer-section-visible .footer-col:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.footer-section-visible .footer-col:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.22s;
}

.footer-section-visible .footer-col:nth-child(3) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.34s;
}

.footer-section-visible .footer-col:nth-child(4) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.46s;
}

.footer-section-visible .footer-bottom {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.6s;
}