/*
 Theme Name:   yith-wonder_child
 Theme URI:    https://brannercamps.com
 Description:  Child theme for Branner Camps
 Author:       Carlotta Ceruti
 Author URI:   https://brannercamps.com
 Template:     yith-wonder
 Version:      1.0.0
*/

/* 
   Parent styles will be enqueued via functions.php (NOT @import) 
   so no @import here.
*/

/* ===== Typography ===== */

/* Paragraphs: Montserrat 400 */
body p {
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 400 !important;
}

/* Headings */
body h1,
.wpb_wrapper h1 {
    font-family: 'Playfair Display', serif !important;
    font-weight: 400 !important;
    font-size: 2.8rem !important;
    color: rgb(51, 51, 51); /* dark grey */
    margin-bottom: 1.2rem; /* control spacing after heading */
}

body h2,
.wpb_wrapper h2 {
    font-family: 'Playfair Display', serif !important;
    font-weight: 400 !important;
    font-size: 2.8rem !important;
    color: #4D6A6D; /* brand teal */
    margin-bottom: 0.8rem; /* optional: slightly less than H1 */
}

body h3,
.wpb_wrapper h3 {
    font-family: 'Playfair Display', serif !important;
    font-weight: 400 !important;
    font-size: 1.8rem !important;
    color: #4D6A6D; /* brand teal */
    margin-bottom: 0.8rem; /* optional: slightly less than H1 */
}

body h4,
.wpb_wrapper h4 {
    font-family: 'Montserrat', serif !important;
    font-weight: 400 !important;
    font-size: 1.3rem !important;
    color: #4D6A6D; /* brand teal */
    margin-bottom: 0.8rem; /* optional: slightly less than H1 */
}

.brn-mark{
  background:linear-gradient(120deg,
     rgba(188,90,54,0) 0%,
     rgba(188,90,54,.26) 12%,
     rgba(188,90,54,.26) 92%,
     rgba(188,90,54,0) 100%);
  padding:.02em .12em;
  border-radius:2px;
}

/* Remove column gap on mobile and reduce spacing between columns */
@media (max-width: 768px) {
  .no-gap-mobile {
    gap: 0 !important;
    column-gap: 0 !important;
    row-gap: 0px !important; /* Small space between stacked columns */
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

/* Remove all padding from child columns */
  .no-gap-mobile > .wpb_column,
  .no-gap-mobile > .wp-block-column {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0px !important; /* No space between image and text */
  }
  
  /* Remove last column margin */
  .no-gap-mobile > .wpb_column:last-child,
  .no-gap-mobile > .wp-block-column:last-child {
    margin-bottom: 0 !important;
  }
  
  /* Remove padding from column inner containers */
  .no-gap-mobile > .wpb_column > .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ===== H1 for mobile less space ===== */
@media (max-width: 600px) {
  h1 {
    max-width: 260px; /* adjust this value until "and" goes to the next line */
  }
}



/* ===== Swap columns on mobile ===== */
@media (max-width: 768px) {  
    .my-special-row {
        display: flex;
        flex-direction: column;
    }

    .my-special-row .text-column {
        order: 2;
    }

    .my-special-row .image-column {
        order: 1;
    }
}


@media only screen and (max-width: 768px) {
  .button-left .vc_btn3-container {
    align:left;
  }
}

/* ===== Hide empty space on mobile ===== */
@media (max-width: 768px) {
    .hide-on-mobile {
        display: none !important;
    }
}

/* Hide on desktop and tablet (769px and above) - Show only on mobile */
@media (min-width: 769px) {
    .hide-on-desktop {
        display: none !important;
    }
    
    
}

/* ============================================
   BADgE ON CARD
   ============================================ */
.prog-badge{
  display:inline-block;
  background:#7A0000;          /* the orange */
  color:#fff;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:15px 24px;
  border-radius:999px;
  transform:rotate(-4deg);
  box-shadow:0 8px 20px -6px rgba(0,0,0,.4);
  position:absolute;
  top:16px;
  left:16px;
  z-index:5;
}
.branner-card{ position:relative; }   /* makes the tag sit on the image */

.wpb_raw_code.wpb_raw_html{
  margin:0 !important;
  padding:0 !important;
  line-height:0 !important;
}

/* ============================================
   MY-CAROUSEL2 - 2 card carousel
   ============================================ */

.my-carousel2 {
    margin: 0 auto;
    max-width: 100%;
    box-sizing: border-box;
    position: relative;
    padding: 20px 0;
}

.my-carousel2 .slick-list {
    overflow-x: hidden !important;
    overflow-y: visible !important;
    padding: 20px 0 !important;
    margin: -20px 0 !important;
}

.my-carousel2 .slick-track {
    display: flex !important;
    align-items: stretch !important;
}

.my-carousel2 .slick-slide {
    height: auto !important;
    display: flex !important;
    position: relative !important;
    z-index: 1 !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    padding: 0 15px; /* gap between cards */
}

.my-carousel2 .slick-slide > div {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.my-carousel2 .slick-slide .vc_column-inner {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
    border-radius: 15px !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    flex: 1 !important;         /* makes both cards same height */
    display: flex !important;
    flex-direction: column !important;
}

/* Dots */
.my-carousel2 .slick-dots {
    position: relative !important;
    bottom: auto !important;
    margin-top: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex !important;
    justify-content: center;
    gap: 8px;
}

.my-carousel2 .slick-dots li button:before {
    font-size: 12px;
    color: #ccc;
    opacity: 1;
}

.my-carousel2 .slick-dots li.slick-active button:before {
    color: #7A0000;
}

/* Arrows */
.my-carousel2 .slick-prev,
.my-carousel2 .slick-next {
    width: 60px;
    height: 60px;
    top: 50%;
    transform: translateY(-50%);
    background-color: #7A0000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: background-color 0.3s;
}

.my-carousel2 .slick-prev:before,
.my-carousel2 .slick-next:before {
    content: none !important;
}

.my-carousel2 .slick-prev::after {
    content: '‹';
    font-size: 24px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.my-carousel2 .slick-next::after {
    content: '›';
    font-size: 24px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.my-carousel2 .slick-prev {
    left: 50px;
}
.my-carousel2 .slick-next {
    right: 50px;
}

.my-carousel2 .slick-prev:hover,
.my-carousel2 .slick-next:hover,
.my-carousel2 .slick-prev:active,
.my-carousel2 .slick-next:active,
.my-carousel2 .slick-prev:focus,
.my-carousel2 .slick-next:focus {
    background-color: #4d6a6d;
    color: #fff;
    outline: none;
}

/* Mobile */
@media (max-width: 768px) {
    .my-carousel2 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .my-carousel2 .slick-slide {
        padding: 0 5px;
    }

    .my-carousel2 .slick-prev,
    .my-carousel2 .slick-next {
        width: 40px;
        height: 40px;
    }

    .my-carousel2 .slick-prev {
        left: 10px;
    }

    .my-carousel2 .slick-next {
        right: 10px;
    }

    .my-carousel2 .slick-prev::after,
    .my-carousel2 .slick-next::after {
        font-size: 18px;
    }
}



/* ==== Carousel Styles (for both .my-carousel & .my-carousel-single) ==== */

/* Container */
.my-carousel,
.my-carousel-single {
    margin: 0 auto;
    max-width: 100%;
    box-sizing: border-box;
    position: relative; /* ensures arrows are positioned relative */
    padding: 20px 0; /* Add vertical padding for hover lift space */
}

.slick-slide .vc_column-inner {
    margin: 0 10px; /* Adds 10px gap on each side */
}

/* Adjust the track width to compensate */
.slick-track {
    margin: 0 -10px;
}

/* WPBakery column reset for multi-slide carousel only */
.my-carousel > .wpb_column,
.my-carousel > .vc_column_container,
.my-carousel > .vc_col-sm-3 {
    float: none !important;
    display: block !important;
    width: auto !important;
    box-sizing: border-box;
}


/* Allow vertical overflow only for hover effect */
.my-carousel .slick-list,
.my-carousel-single .slick-list {
    overflow-x: hidden !important; /* keep horizontal clipping */
    overflow-y: visible !important; /* allow vertical expansion for hover */
    padding: 20px 0 !important; /* space for hover lift */
    margin: -20px 0 !important; /* compensate padding */
}

/* text on 2 lines */
.my-carousel .slick-slide {
  word-wrap: break-word;   /* break long words if needed */
  overflow-wrap: break-word;
  white-space: normal;     /* allow text to wrap */
}

/* Make the slick row behave like flex */
.my-carousel .slick-track {
  display: flex !important;
  align-items: stretch !important; /* make all slides stretch to the tallest */
}

/* Force each slide to stretch */
.my-carousel .slick-slide {
  height: auto !important;  /* prevent fixed height */
  display: flex !important; /* let them flex */
  position: relative !important; /* for z-index */
  z-index: 1 !important; /* base z-index */
}

/* Ensure inner card fills the slide */
.my-carousel .slick-slide > div {
  flex: 1 1 auto;           /* fill available height */
  display: flex;
  flex-direction: column;
}

/* Add shadow to carousel cards - matching modern-card-carousel */
.my-carousel .slick-slide .vc_column-inner,
.my-carousel-single .slick-slide .vc_column-inner {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
    border-radius: 15px !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}


/* Container */
.my-carousel .slick-dots {
  position: relative !important; 
  bottom: auto !important;
  margin-top: 20px;              /* spacing below carousel */
  left: 50%;
  transform: translateX(-50%);
  display: flex !important;
  justify-content: center;
  gap: 8px;
}

/* Default dot */
.my-carousel .slick-dots li button:before {
  font-size: 12px;
  color: #ccc;   /* inactive color */
  opacity: 1;    /* make sure custom color shows */
}

/* Active dot */
.my-carousel .slick-dots li.slick-active button:before {
  color: #7A0000; /* brand red for active */
}


/* Mobile spacing */
@media (max-width: 768px) {
    .my-carousel .slick-slide,
    .my-carousel-single .slick-slide {
        padding: 0 5px;
    }
}

/* ==== Arrows ==== */
.my-carousel .slick-prev,
.my-carousel .slick-next,
.my-carousel-single .slick-prev,
.my-carousel-single .slick-next {
    width: 60px;
    height: 60px;
    top: 50%;
    transform: translateY(-50%);
    background-color: #7A0000; /* brand red */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: background-color 0.3s;
}

/* Remove default slick arrow text */
.my-carousel .slick-prev:before,
.my-carousel .slick-next:before,
.my-carousel-single .slick-prev:before,
.my-carousel-single .slick-next:before {
    content: none !important;
}

/* Custom arrow symbols */
.my-carousel .slick-prev::after,
.my-carousel-single .slick-prev::after {
    content: '‹'; /* left arrow */
    font-size: 24px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.my-carousel .slick-next::after,
.my-carousel-single .slick-next::after {
    content: '›'; /* right arrow */
    font-size: 24px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Arrow positioning */
.my-carousel .slick-prev,
.my-carousel-single .slick-prev {
    left: 50px;
}
.my-carousel .slick-next,
.my-carousel-single .slick-next {
    right: 50px;
}

/* Hover/active/focus states */
.my-carousel .slick-prev:hover,
.my-carousel .slick-next:hover,
.my-carousel .slick-prev:active,
.my-carousel .slick-next:active,
.my-carousel .slick-prev:focus,
.my-carousel .slick-next:focus,
.my-carousel-single .slick-prev:hover,
.my-carousel-single .slick-next:hover,
.my-carousel-single .slick-prev:active,
.my-carousel-single .slick-next:active,
.my-carousel-single .slick-prev:focus,
.my-carousel-single .slick-next:focus {
    background-color: #4d6a6d; /* hover/click color */
    color: #fff;
    outline: none;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    /* Add padding to carousel container */
    .my-carousel,
    .my-carousel-single {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    
    .my-carousel .slick-prev,
    .my-carousel .slick-next,
    .my-carousel-single .slick-prev,
    .my-carousel-single .slick-next {
        width: 40px;
        height: 40px;
    }
    .my-carousel .slick-prev,
    .my-carousel-single .slick-prev {
        left: 10px;
    }
    .my-carousel .slick-next,
    .my-carousel-single .slick-next {
        right: 10px;
    }
    .my-carousel .slick-prev::after,
    .my-carousel .slick-next::after,
    .my-carousel-single .slick-prev::after,
    .my-carousel-single .slick-next::after {
        font-size: 18px;
    }
}



/* ===== Pictos Heading ===== */
.picto-2 {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Playfair Display', serif !important;
    font-size: 2.2rem !important; /* smaller default */
    font-weight: 400 !important;
    color: #7A0000 !important;
    margin: 0 !important;
    text-align: center !important;
    padding: 40px 0 !important; /* smaller padding */
    flex-wrap: wrap;
    gap: 15px; /* space between image and text */
}

.picto-2-img {
    width: 100px; /* smaller image */
    height: auto;
    flex-shrink: 0;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .picto-2 {
        font-size: 1.6rem !important; /* smaller text on mobile */
        padding: 20px 0 !important;
    }

    .picto-2-img {
        width: 130px; /* smaller image on mobile */
    }
}



html, body {
    overflow-x: hidden !important;
}

@media (max-width: 768px) {
    img {
        max-width: 100% !important;
        height: auto !important;
        display: block;
    }


}


/* ===== MENU ===== */

/* FORCE remove all underlines and borders */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a,
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a span,
.wp-block-navigation__link,
.wp-block-navigation-item a {
    color: #333333 !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    text-decoration-style: none !important;
    text-underline-offset: 0 !important;
    border: none !important;
    border-bottom: none !important;
    border-top: none !important;
    box-shadow: none !important;
    outline: none !important;
    background-image: none !important;
    position: relative;
    padding-bottom: 8px;
    transition: color 0.3s ease;
}

/* Dot below menu items - ONLY for header navigation, NOT footer */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a::after,
.wp-block-template-part[aria-label="Header - Left Logo and navigation below"] .wp-block-navigation a::after,
header .wp-block-navigation a::after,
.wp-block-navigation__container:not(footer *) a::after,
.wp-block-navigation-item:not(footer *) a::after {
    content: '' !important;
    position: absolute !important;
    bottom: 2px !important;
    left: 50% !important;
    transform: translateX(-50%) scale(0) !important;
    width: 9px !important;
    height: 9px !important;
    background: #FC0015 !important;
    border-radius: 50% !important;
    transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
    display: block !important;
}

/* Mobile: lower the dot position */
@media (max-width: 782px) {
    .wp-block-template-part[aria-label="No title"] .wp-block-navigation a::after,
    .wp-block-template-part[aria-label="Header - Left Logo and navigation below"] .wp-block-navigation a::after,
    header .wp-block-navigation a::after,
    .wp-block-navigation__container:not(footer *) a::after,
    .wp-block-navigation-item:not(footer *) a::after {
        bottom: -4px !important;
    }
}

/* Hover: change color and show dot - FORCE remove underlines */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a:hover,
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a:hover span,
.wp-block-navigation__link:hover,
.wp-block-navigation-item a:hover {
    color: #7a0000 !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    border: none !important;
    border-bottom: none !important;
    border-top: none !important;
    box-shadow: none !important;
    background-image: none !important;
}

/* Show dot on hover - ONLY for header navigation */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a:hover::after,
.wp-block-template-part[aria-label="Header - Left Logo and navigation below"] .wp-block-navigation a:hover::after,
header .wp-block-navigation a:hover::after,
.wp-block-navigation__container:not(footer *) a:hover::after,
.wp-block-navigation-item:not(footer *) a:hover::after {
    transform: translateX(-50%) scale(1) !important;
}

/* Active / current menu item - FORCE remove underlines */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a.wp-block-navigation__link.is-active,
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a.current-menu-item,
.wp-block-navigation__link.is-active,
.current-menu-item a {
    color: #7a0000 !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    border: none !important;
    border-bottom: none !important;
    border-top: none !important;
    box-shadow: none !important;
    background-image: none !important;
}

/* Show dot on active - ONLY for header navigation */
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a.wp-block-navigation__link.is-active::after,
.wp-block-template-part[aria-label="No title"] .wp-block-navigation a.current-menu-item::after,
.wp-block-template-part[aria-label="Header - Left Logo and navigation below"] .wp-block-navigation a.is-active::after,
header .wp-block-navigation a.is-active::after,
header .wp-block-navigation a.current-menu-item::after,
.current-menu-item:not(footer *) a::after {
    transform: translateX(-50%) scale(1) !important;
}

/* Explicitly remove dots from footer navigation */
footer .wp-block-navigation a::after,
.wp-block-template-part[aria-label*="Footer"] .wp-block-navigation a::after {
    display: none !important;
    content: none !important;
}

/* Fixed/sticky header wrapper */
.wp-block-template-part[aria-label="Header - Left Logo and navigation below"] > .wp-block-group.is-position-sticky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
    transition: top 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    padding: 15px 20px;
    margin: 0 !important;
    border: none !important;
}

/* Fallback selectors for sticky header */
.wp-block-template-part .wp-block-group.is-position-sticky,
.is-position-sticky {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
    transition: top 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    padding: 15px 20px;
    margin: 0 !important;
    border: none !important;
}

/* Remove any borders/margins from template parts and inner containers */
.wp-block-template-part,
.wp-block-template-part > *,
.wp-block-group,
.wp-block-group > * {
    border: none !important;
    margin: 0 !important;
    border-bottom: none !important;
    border-top: none !important;
}

/* Prevent content from hiding under header */
body {
    padding-top: 0px;
    margin-top: 0 !important;
}

/* Mobile: réduire le padding à 15px maximum */
@media (max-width: 768px) {
    .wp-block-template-part[aria-label="Header - Left Logo and navigation below"] > .wp-block-group.is-position-sticky,
    .wp-block-template-part .wp-block-group.is-position-sticky,
    .is-position-sticky {
        padding: 15px !important;
    }
}

/* Dans Apparence → Personnaliser → CSS additionnel */
#wpforms-submit-828,
.wpforms-submit {
    background-color: #9e1313 !important;
    border-color: #8f0d0d !important;
    color: #ffffff !important;
}

/* Au survol */
#wpforms-submit-828:hover,
.wpforms-submit:hover {
    background-color: #8f0d0d !important;
    border-color: #7a0b0b !important;
}

/* ===== Hide menu contact button ===== */
@media (max-width: 768px) {
    .contact-button {
        display: none !important;
    }
}

/* ===== FOOTER ===== */
/* Footer navigation - white text for menu items */
.wp-block-template-part[aria-label*="Footer"] .wp-block-navigation a {
    color: #ffffff !important; /* white text */
    text-decoration: none !important;
    transition: color 0.3s ease;
}

/* Footer navigation hover */
.wp-block-template-part[aria-label*="Footer"] .wp-block-navigation a:hover {
    color: #cccccc !important; /* light gray on hover */
}

/* Footer menu item names (non-linked text) */
.wp-block-template-part[aria-label*="Footer"] .wp-block-navigation-item__label,
.wp-block-template-part[aria-label*="Footer"] .wp-block-navigation-item__content {
    color: #ffffff !important; /* white text */
}

/* Alternative selectors for footer menu text */
footer .wp-block-navigation a,
footer .wp-block-navigation-item {
    color: #ffffff !important;
}

footer .wp-block-navigation a:hover {
    color: #cccccc !important;
}


/* ===== TIMELINE ===== */

/* Timeline Wrapper */
.timeline-wrapper {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.timeline-container {
  background: #fff;
  border-radius: 25px;
  overflow: hidden;
}


/* Timeline Content Layout */
.timeline-content-wrapper {
  display: flex;
  min-height: 100vh;
}

.timeline-column {
  position: relative;
  padding: 30px 20px 30px 35px;
  width: 50%;
  overflow-y: auto;
  height: 100vh;
  scrollbar-width: none; /* Firefox */
}

.timeline-column::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Edge */
}

.description-column {
  position: sticky;
  top: 0;
  width: 50%;
  height: 100vh;
  overflow-y: auto;
  padding: 30px;
  background: white;
}

/* Scroll Progress Bar (acts as timeline line) */
.timeline-scroll-progress {
  position: fixed;
  top: 0;
  left: 44px;
  width: 4px;
  height: 100vh;
  background: rgba(77, 106, 109, 0.15);
  z-index: 1;
  pointer-events: none;
}

.timeline-scroll-progress::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--scroll-progress, 0%);
  background: linear-gradient(180deg, #667eea, #4D6A6D);
  border-radius: 2px;
}

/* Timeline Items */
.timeline-items {
  position: relative;
  z-index: 2;
}

.timeline-item {
  display: flex;
  align-items: center;
  margin-bottom: 25px;
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 15px;
  border-radius: 3px;
  position: relative;
  border-left: 4px solid transparent;
}

.timeline-item:hover {
  background: #F4F6F5;
  transform: translateX(5px);
}

.timeline-item.active {
  background: #F4F6F5;
  transform: translateX(5px);
}

/* Timeline Circle */
.timeline-circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #4D6A6D;
  margin-right: 15px;
  flex-shrink: 0;
  transition: all 0.3s ease;
  position: relative;
  z-index: 3;
}

.timeline-item:hover .timeline-circle,
.timeline-item.active .timeline-circle {
  background: #7A0000;
  transform: scale(1.2);
}

/* Timeline Content */
.timeline-time {
  font-weight: 700;
  color: #4D6A6D;
  margin-right: 15px;
  font-size: 0.95rem;
  min-width: 50px;
}

.timeline-title {
  color: #4D6A6D;
  flex: 1;
}

/* Activity image in description panel */
.activity-image {
    margin-bottom: 20px;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-height: 220px;
}

.activity-image img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 15px;
    transition: transform 0.4s ease;
}

.activity-image:hover img {
    transform: scale(1.04);
}

/* Tablet */
@media (max-width: 1024px) {
    .activity-image,
    .activity-image img {
        height: 180px;
        max-height: 180px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .activity-image,
    .activity-image img {
        height: 160px;
        max-height: 160px;
    }
}

/* Small mobile */
@media (max-width: 480px) {
    .activity-image,
    .activity-image img {
        height: 130px;
        max-height: 130px;
    }
}

/* Description Panel */
.description-panel {
  background: #F4F6F5;
  border-radius: 25px;
  padding: 25px;
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

.description-content {
  width: 100%;
}

/* Default Message */
.default-message {
  text-align: center;
  color: #718096;
}

.default-icon {
  font-size: 3rem;
  margin-bottom: 15px;
  opacity: 0.5;
}

.default-message p {
  margin: 0;
}

/* Activity Content */
.activity-content {
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.activity-header {
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 2px solid #e2e8f0;
}

.activity-time {
  display: inline-block;
  color: #4D6A6D;
  margin-bottom: 10px;
}

.activity-title {
  margin: 0;
  color: #4D6A6D;
  font-size: 1.5rem;
}

/* ===== MOBILE RESPONSIVE - HORIZONTAL TIMELINE ===== */
@media (max-width: 768px) {
  /* Timeline Header - Smaller on mobile */
  .timeline-header {
    padding: 20px 15px;
  }
  
  .timeline-header h1 {
    font-size: 2rem;
  }
  
  .timeline-subtitle {
    font-size: 1rem;
  }
  /* Main Layout - Stack vertically */
  .timeline-content-wrapper {
    flex-direction: column;
    min-height: auto;
  }
  /* Timeline Column - Horizontal scrolling */
  .timeline-column {
    width: 100%;
    height: 220px; /* Fixed height for horizontal scroll area */
    padding: 0;
    border-right: none;
    border-bottom: 1px solid #e2e8f0;
    overflow-x: auto;
    overflow-y: hidden;
  }
  /* Hide desktop progress bar on mobile */
  .timeline-scroll-progress {
    display: none;
  }
  /* Timeline Items Container - Horizontal layout */
  .timeline-items {
    display: flex;
    flex-direction: row;
    gap: 0;
    padding: 40px 20px 10px 20px;
    width: max-content; /* Allow horizontal expansion */
    position: relative;
    height: 100%;
    align-items: flex-start;
  }
  /* Horizontal timeline line */
  .timeline-items::before {
    content: '';
    position: absolute;
    top: 60px;
    left: 20px;
    right: 20px;
    height: 3px;
    background: rgba(77, 106, 109, 0.15);
    z-index: 1;
    border-radius: 2px;
  }
  /* Progress line that follows scroll */
  .timeline-items::after {
    content: '';
    position: absolute;
    top: 60px;
    left: 20px;
    height: 3px;
    width: var(--mobile-progress, 0%);
    background: linear-gradient(90deg, #667eea, #4D6A6D);
    z-index: 2;
    border-radius: 2px;
    transition: width 0.3s ease;
  }
  /* Timeline Item - Vertical card layout */
  .timeline-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 140px;
    width: 140px;
    margin: 0 15px;
    padding: 0;
    background: transparent;
    border-left: none;
    border-radius: 0;
    position: relative;
    transform: none;
    transition: transform 0.3s ease;
  }
  /* Timeline Circle - Above the line, no shadow */
  .timeline-circle {
    width: 20px;
    height: 20px;
    margin: -20px 0 20px 0;
    box-shadow: none;
    position: relative;
    z-index: 3;
    transition: transform 0.3s ease, background 0.3s ease;
  }
  /* Timeline Content - Below the line with margin */
  .timeline-time {
    font-size: 0.8rem;
    margin: 30px 0 8px 0;
    min-width: auto;
    font-weight: 600;
  }
  .timeline-title {
    font-size: 0.9rem;
    line-height: 1.3;
    color: #2d3748;
    font-weight: 600;
    min-height: 0;
    display: block;
    margin-bottom: 0;
  }
  /* Hover and Active States - only transform circle */
  .timeline-item:hover .timeline-circle,
  .timeline-item.active .timeline-circle {
    transform: scale(1.3) translateY(-5px);
    background: #7A0000;
  }
  
  /* Remove transform from the entire item */
  .timeline-item:hover,
  .timeline-item.active {
    background: transparent;
    transform: none;
    border-left: none;
  }
  /* Description Column - Full width below timeline */
  .description-column {
    width: 100%;
    height: auto;
    min-height: 300px;
    padding: 20px;
    position: relative;
    top: auto;
    background: #f8f9fa;
  }
  .description-panel {
    min-height: 250px;
    padding: 20px;
  }
  /* Activity content adjustments */
  .activity-title {
    font-size: 1.3rem;
  }
  .activity-time {
    font-size: 0.8rem;
    padding: 5px 10px;
  }
  /* Custom scrollbar for timeline on mobile */
  .timeline-column::-webkit-scrollbar {
    display: block;
    height: 6px;
  }
  .timeline-column::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
  }
  .timeline-column::-webkit-scrollbar-thumb {
    background: #667eea;
    border-radius: 3px;
  }
  .timeline-column::-webkit-scrollbar-thumb:hover {
    background: #4D6A6D;
  }
  /* Smooth scrolling */
  .timeline-column {
    scroll-behavior: smooth;
  }
  /* Add scroll snap for better UX */
  .timeline-items {
    scroll-snap-type: x mandatory;
  }
  .timeline-item {
    scroll-snap-align: center;
  }
}

/* Extra small devices */
@media (max-width: 480px) {
  .timeline-header h1 {
    font-size: 1.7rem;
  }
  
  .timeline-item {
    min-width: 120px;
    width: 120px;
    margin: 0 10px;
  }
  
  .timeline-title {
    font-size: 0.85rem;
  }
  
  .timeline-time {
    font-size: 0.75rem;
  }
  
  .description-column {
    padding: 15px;
  }
  
  .description-panel {
    padding: 15px;
  }
}

/* ============================================
   mountain-carousel cards
   ============================================ */

/* Main carousel wrapper */
.mountain-carousel {
    position: relative;
    width: 100%;
    min-height: 700px;
    padding: 60px 0;
    overflow: hidden;
}

/* Row container */
.mountain-carousel .vc_row {
    display: flex !important;
    justify-content: center;
    align-items: center;
    min-height: 600px;
    position: relative;
    perspective: 1000px;
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Reset WPBakery column positioning */
.mountain-carousel .wpb_column {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Column container styling */
.mountain-carousel .vc_column_container {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    width: 350px !important;
    max-width: 350px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Card positioning states */
.mountain-carousel .vc_column_container.carousel-center {
    z-index: 3;
    transform: translate(-50%, -50%) scale(1.1) !important;
    opacity: 1;
}

.mountain-carousel .vc_column_container.carousel-left {
    z-index: 2;
    transform: translate(calc(-50% - 300px), -50%) scale(0.9) !important;
    opacity: 1;
}

.mountain-carousel .vc_column_container.carousel-right {
    z-index: 2;
    transform: translate(calc(-50% + 300px), -50%) scale(0.9) !important;
    opacity: 1;
}

.mountain-carousel .vc_column_container.carousel-hidden {
    opacity: 0;
    pointer-events: none;
    z-index: 1;
    transform: translate(-50%, -50%) scale(0.8) !important;
}

/* Hover effects */
.mountain-carousel .vc_column_container.carousel-center:hover {
    transform: translate(-50%, -50%) scale(1.15) !important;
}

.mountain-carousel .vc_column_container.carousel-left:hover {
    transform: translate(calc(-50% - 300px), -50%) scale(0.95) !important;
    cursor: pointer;
}

.mountain-carousel .vc_column_container.carousel-right:hover {
    transform: translate(calc(-50% + 300px), -50%) scale(0.95) !important;
    cursor: pointer;
}

/* Ensure inner content displays properly */
.mountain-carousel .vc_column-inner {
    padding: 0 !important;
}

.mountain-carousel .wpb_wrapper {
    width: 100%;
}

/* Navigation arrows */
.carousel-arrows {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(122, 0, 0, 0.8);
    color: white;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    z-index: 10;
}

.carousel-arrows:hover {
    background: #7a0000;
    transform: translateY(-50%) scale(1.1);
}

.carousel-arrow-left {
    left: 50px;
}

.carousel-arrow-right {
    right: 50px;
}

/* Navigation dots */
.carousel-dots {
    display: flex;
    justify-content: center;
    gap: 12px;
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}

.carousel-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(77, 106, 109, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}

.carousel-dot.active {
    background: #7a0000;
    transform: scale(1.2);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .mountain-carousel {
        min-height: 550px;
        padding: 40px 0;
    }
    
    .mountain-carousel .vc_row {
        min-height: 450px;
    }
    
    .mountain-carousel .vc_column_container {
        width: 280px !important;
        max-width: 280px !important;
    }
    
    .mountain-carousel .vc_column_container.carousel-left {
        transform: translate(calc(-50% - 200px), -50%) scale(0.85) !important;
    }
    
    .mountain-carousel .vc_column_container.carousel-right {
        transform: translate(calc(-50% + 200px), -50%) scale(0.85) !important;
    }
    
    .carousel-arrow-left {
        left: 10px;
    }
    
    .carousel-arrow-right {
        right: 10px;
    }
}

@media (max-width: 480px) {
    .mountain-carousel {
        min-height: 500px;
    }
    
    .mountain-carousel .vc_column_container {
        width: 250px !important;
        max-width: 250px !important;
    }
    
    .mountain-carousel .vc_column_container.carousel-left {
        transform: translate(calc(-50% - 150px), -50%) scale(0.8) !important;
    }
    
    .mountain-carousel .vc_column_container.carousel-right {
        transform: translate(calc(-50% + 150px), -50%) scale(0.8) !important;
    }
}

/* ============================================
   Zoom Hover image
   ============================================ */
.zoom-hover {
  overflow: hidden;
  border-radius: 15px 15px 0px 0px;
  position: relative;
}
.zoom-hover img {
  transition: transform 0.4s ease;
  transform-origin: center center;
  display: block;
  width: 100%;
  height: auto;
}
.zoom-hover:hover img {
  transform: scale(1.08);
}
.zoom-hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}
.zoom-hover:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}


/* ============================================
   Picto on Image Overlay - RESPONSIVE
   ============================================ */
.picto-on-image {
  position: absolute;
  top: 100px !important;
  left: 50px !important;
  z-index: 10;
  transform: none !important;
  transition: none !important;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.95);
  padding: clamp(8px, 1.5vw, 12px);
  border-radius: clamp(8px, 1.5vw, 12px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  margin: 0 !important;
}

.picto-on-image img,
.picto-on-image svg,
.picto-on-image * {
  transform: none !important;
  transition: none !important;
  margin: 0 !important;
}

.picto-on-image img {
  width: clamp(35px, 6vw, 50px);
  height: auto;
  display: block;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .picto-on-image {
    top: 40px !important;
    left: 50px !important;
  }
}

/* ============================================
   Picto on Image Overlay less padding - RESPONSIVE
   ============================================ */
.picto-on-image2 {
  position: absolute;
  top: 40px !important;
  left: 50px !important;
  z-index: 10;
  transform: none !important;
  transition: none !important;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.95);
  padding: clamp(8px, 1.5vw, 12px);
  border-radius: clamp(8px, 1.5vw, 12px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  margin: 0 !important;
}

.picto-on-image2 img,
.picto-on-image2 svg,
.picto-on-image2 * {
  transform: none !important;
  transition: none !important;
  margin: 0 !important;
}

.picto-on-image2 img {
  width: clamp(35px, 6vw, 50px);
  height: auto;
  display: block;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .picto-on-image2 {
    top: 40px !important;
    left: 50px !important;
  }
}

/* ============================================
   Picto on Image Overlay even less padding - RESPONSIVE
   ============================================ */
.picto-on-image3 {
  position: absolute;
  top: 20px !important;
  left: 50px !important;
  z-index: 10;
  transform: none !important;
  transition: none !important;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.95);
  padding: clamp(8px, 1.5vw, 12px);
  border-radius: clamp(8px, 1.5vw, 12px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  margin: 0 !important;
}

.picto-on-image3 img,
.picto-on-image3 svg,
.picto-on-image3 * {
  transform: none !important;
  transition: none !important;
  margin: 0 !important;
}

.picto-on-image3 img {
  width: clamp(35px, 6vw, 50px);
  height: auto;
  display: block;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .picto-on-image3 {
    top: 40px !important;
    left: 40px !important;
  }
}

/* ============================================
   Rounded borders
   ============================================ */
/* ============================================
   SUPER STRONG Rounded borders - Add to your CSS
   ============================================ */

/* Target the container AND the image inside */
.rounded-image {
  border-radius: 25px !important;
  overflow: hidden !important;
  display: block !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;
}

/* ============================================
   IMAGE/TEXT CAROUSEL (WIDTH ALIGNED)
   Scoped version – isolated to .image-text-carousel
   ============================================ */

/* ===== MAIN WRAPPER ===== */
.image-text-carousel {
    border-radius: 25px !important;
    overflow: hidden !important;
    position: relative !important;
}

.image-text-carousel > .vc_row {
    display: flex !important;
    margin: 0 !important;
}

/* ===== RIGHT COLUMN (IMAGES) ===== */
.image-text-carousel .carousel-images-wrapper {
    flex: 1 !important;
    position: relative !important;
    background: #e8eef0 !important;
    padding: 0 !important;
}

.image-text-carousel .image-slides-slick {
    width: 100% !important;
    height: 600px !important;
}

.image-text-carousel .image-slides-slick .vc_column_container {
    height: 600px !important;
}

.image-text-carousel .image-slides-slick img {
    width: 100% !important;
    height: 600px !important;
    object-fit: cover !important;
    border-radius: 25px !important;
}

/* Hide arrows inside image section */
.image-text-carousel .carousel-images-wrapper .slick-prev,
.image-text-carousel .carousel-images-wrapper .slick-next,
.image-text-carousel .image-slides-slick .slick-prev,
.image-text-carousel .image-slides-slick .slick-next {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ===== LEFT COLUMN (CONTENT) ===== */
.image-text-carousel .carousel-content-wrapper {
    flex: 1 !important;
    padding: 60px !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
}

/* Force content columns full width */
.image-text-carousel .carousel-content-wrapper .vc_column_container,
.image-text-carousel .carousel-content-wrapper .wpb_column {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

.image-text-carousel .carousel-content-wrapper .vc_column-inner {
    padding: 0 !important;
}

/* ===== SLICK ARROWS ===== */

/* Hide ALL arrows in image-text-carousel first */
.image-text-carousel .slick-prev,
.image-text-carousel .slick-next {
    display: none !important;
}

/* Re-enable only content wrapper arrows */
.image-text-carousel .carousel-content-wrapper .slick-prev,
.image-text-carousel .carousel-content-wrapper .slick-next {
    display: flex !important;
    width: 60px !important;
    height: 60px !important;
    z-index: 10 !important;
    position: absolute !important;
    bottom: 40px !important;
    background-color: #7A0000 !important;
    border-radius: 50% !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

/* Remove all default arrow content */
.image-text-carousel .carousel-content-wrapper .slick-prev:before,
.image-text-carousel .carousel-content-wrapper .slick-next:before,
.image-text-carousel .carousel-content-wrapper .slick-prev::after,
.image-text-carousel .carousel-content-wrapper .slick-next::after {
    content: none !important;
    display: none !important;
}

/* Add custom arrow symbols */
.image-text-carousel .carousel-content-wrapper .slick-prev::after {
    content: '‹' !important;
    font-size: 20px !important;
    color: white !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    display: block !important;
    z-index: 100 !important;
}

.image-text-carousel .carousel-content-wrapper .slick-next::after {
    content: '›' !important;
    font-size: 20px !important;
    color: white !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    display: block !important;
    z-index: 100 !important;
}

/* Arrow positioning - EQUAL DISTANCE */
.image-text-carousel .carousel-content-wrapper .slick-prev {
    left: 30px !important;
}

.image-text-carousel .carousel-content-wrapper .slick-next {
    right: -20px !important;
    left: auto !important;
}

/* Hover effects */
.image-text-carousel .carousel-content-wrapper .slick-prev:hover,
.image-text-carousel .carousel-content-wrapper .slick-next:hover {
    background-color: #4D6A6D !important;
}

/* ===== SLICK DOTS FOR image-text-carousel ===== */

/* Show ONLY dots that are direct children of content wrapper */
.image-text-carousel .carousel-content-wrapper > .slick-dots {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* Default dot styling */
.image-text-carousel .carousel-content-wrapper > .slick-dots li button:before {
    font-size: 12px !important;
    color: #ccc !important;
    opacity: 1 !important;
}

/* Active dot */
.image-text-carousel .carousel-content-wrapper > .slick-dots li.slick-active button:before {
    color: #7A0000 !important;
}

/* Force hide any nested dots inside content columns */
.image-text-carousel .carousel-content-wrapper .vc_column_container .slick-dots,
.image-text-carousel .carousel-content-wrapper .wpb_column .slick-dots {
    display: none !important;
}


/* Hide image-text-carousel on mobile devices */
@media screen and (max-width: 768px) {
    .image-text-carousel {
        display: none !important;
    }
}

/* ============================================
   MODERN CARD CAROUSEL - CSS v1.0.3
   ============================================ */

/* General wrapper */
.modern-card-carousel {
    position: relative;
    width: 100%;
    padding: 60px 0 100px 0; /* Added bottom padding for dots */
    box-sizing: border-box;
    overflow: visible !important;
}

/* Main row - contains intro column and carousel section */
.modern-card-carousel > .vc_row.wpb_row {
    margin: 0 auto !important;
    max-width: 1200px !important;
    position: relative !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 30px !important;
    flex-wrap: nowrap !important;
}

/* Intro column (static left side - 1/3) */
.modern-card-carousel .carousel-intro,
.modern-card-carousel > .vc_row > .vc_column_container:first-child {
    flex: 0 0 30% !important;
    width: 30% !important;
    padding: 30px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2 !important;
}

/* Carousel section (right side - 2/3) */
.modern-card-carousel .carousel-section,
.modern-card-carousel > .vc_row > .vc_column_container:last-child {
    flex: 0 0 70% !important;
    width: 70% !important;
    position: relative !important;
    overflow: visible !important;
    padding: 20px 0 0 0 !important;
}

/* Container for the sliding track */
.modern-card-carousel .carousel-track-container {
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

/* The carousel track (the row that moves) */
.modern-card-carousel .carousel-track {
    display: flex !important;
    transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
    gap: 30px !important;
    will-change: transform !important;
    flex-wrap: nowrap !important;
    width: auto !important;
}

/* Individual cards - show 2 full cards + peek of 3rd */
.modern-card-carousel .carousel-track > .vc_column_container,
.modern-card-carousel .carousel-track > .wpb_column {
    flex: 0 0 calc(42% - 15px) !important;
    width: calc(42% - 15px) !important;
    min-width: calc(42% - 15px) !important;
    transition: transform 0.3s ease !important;
    cursor: pointer !important;
}

/* Hover effect on cards */
.modern-card-carousel .carousel-track > .vc_column_container:hover,
.modern-card-carousel .carousel-track > .wpb_column:hover {
    transform: translateY(-8px) !important;
}

/* Card inner styling */
.modern-card-carousel .carousel-track .vc_column-inner {
    padding: 20px !important;
    background: #fff !important;
    border-radius: 15px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
    height: 100% !important;
    box-sizing: border-box !important;
}

/* Images inside cards */
.modern-card-carousel .carousel-track img {
    width: 100% !important;
    height: auto !important;
    border-radius: 8px !important;
    display: block !important;
}

/* Navigation arrows - matching image-text-carousel style */
.modern-card-carousel .carousel-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 60px !important;
    height: 60px !important;
    background-color: #7A0000 !important;
    border: none !important;
    border-radius: 50% !important;
    color: white !important;
    font-size: 20px !important;
    font-weight: 300 !important;
    cursor: pointer !important;
    z-index: 100 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease !important;
    line-height: 1 !important;
}

.modern-card-carousel .carousel-arrow:hover:not(:disabled) {
    background-color: #4D6A6D !important;
}

.modern-card-carousel .carousel-arrow:disabled {
    opacity: 0.3 !important;
    cursor: not-allowed !important;
}

.modern-card-carousel .carousel-arrow-prev {
    left: -30px !important;
}

.modern-card-carousel .carousel-arrow-next {
    right: -30px !important;
}

/* Dots navigation - matching image-text-carousel style */
.modern-card-carousel .carousel-dots {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    margin-top: 40px !important;
    padding: 0 !important;
    list-style: none !important;
    position: relative !important;
    bottom: auto !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    z-index: 10 !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
}

.modern-card-carousel .carousel-dot {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background: #ccc !important;
    cursor: pointer !important;
    border: none !important;
    transition: all 0.3s ease !important;
    padding: 0 !important;
    opacity: 1 !important;
}

.modern-card-carousel .carousel-dot:hover {
    background: rgba(122, 0, 0, 0.6) !important;
}

.modern-card-carousel .carousel-dot.active {
    background: #7A0000 !important;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .modern-card-carousel .carousel-track > .vc_column_container,
    .modern-card-carousel .carousel-track > .wpb_column {
        flex: 0 0 calc(55% - 15px) !important;
        width: calc(55% - 15px) !important;
        min-width: calc(55% - 15px) !important;
    }
}

@media (max-width: 768px) {
    .modern-card-carousel > .vc_row.wpb_row {
        flex-direction: column !important;
        gap: 20px !important;
    }
    
    .modern-card-carousel .carousel-intro,
    .modern-card-carousel > .vc_row > .vc_column_container:first-child,
    .modern-card-carousel .carousel-section,
    .modern-card-carousel > .vc_row > .vc_column_container:last-child {
        width: 100% !important;
        flex: 0 0 100% !important;
    }
    
    /* Mobile: 1 card + small peek of next */
    .modern-card-carousel .carousel-track > .vc_column_container,
    .modern-card-carousel .carousel-track > .wpb_column {
        flex: 0 0 calc(75% - 15px) !important;
        width: calc(75% - 15px) !important;
        min-width: calc(75% - 15px) !important;
    }
    
    /* Hide arrows on mobile */
    .modern-card-carousel .carousel-arrow {
        display: none !important;
    }
    
    /* Make dots more prominent on mobile - matching style */
    .modern-card-carousel .carousel-dots {
        margin-top: 30px !important;
        gap: 10px !important;
    }
    
    .modern-card-carousel .carousel-dot {
        width: 12px !important;
        height: 12px !important;
    }
}