/* ============================================
   CSS VARIABLES
   ============================================ */
:root {
    --burgundy: #8B1E3F;
    --cream: #FEF3E2;
    --warm-white: #FFFBF5;
    --primary-red: #b51217;
}


/* ============================================
   RESET
   ============================================ */
html, body {
    height: 100%;
    overflow: hidden;
    margin: 0 !important;
    padding: 0 !important;
    overscroll-behavior: none !important;
    top: 0;
   
}

/* ===============================
   LOCK PAGE SCROLL WHEN MODAL OPEN
================================ */

body.modal-open {
  overflow: hidden;
 position: fixed;
  width: 100%;
}


 @font-face {
  font-family: 'Aventa';
  src: url('../fonts/Aventa.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}



 
/*.site-header{*/
/*    padding-block-end: 0 !important;*/
/*} */

/* 
* {
    margin: 0;
    padding: 0;
} */


.horizontal-slider {
  width: 100vw;
  /* height: 100vh; */
  /* overflow: hidden; */
  position: relative;
   overflow-x: hidden; 
   overflow-y: hidden;
  touch-action: pan-y;
   /*transform: translateX(100vw);*/
}

.horizontal-slider .slider-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 0.7s ease;
}
.slider-track {
  display: flex;
  height: 100%;
  transform: translate3d(0,0,0);
}

.slide {
  flex: 0 0 100vw;
  width: 100vw;
  height: 100vh;
}


/* Initial hidden state for first load */
.horizontal-slider.is-loading {
  transform: translateX(100vw);
}

/* Animate into place */
.horizontal-slider.is-ready {
  transform: translateX(0);
  transition: transform 0.9s cubic-bezier(0.77, 0, 0.18, 1);
}



.hamburger,
.nav-arrow {
    pointer-events: auto;
}


/* ============================================
   NAV ARROWS
   ============================================ */
.nav-arrow {
    position: fixed;
    z-index: 100000;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    color: white;
    font-size: 50px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s ease;
}

.nav-arrow.hidden {
    display: none !important;
}

.nav-prev {
    display: none;
    top: 35px;
    left: 20px;
}

.nav-next {
    display: flex;
    bottom: 15px;
    right: 20px;
}

.nav-arrow:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}


/* ============================================
   SIDE NAV + HAMBURGER
   ============================================ */
.side-nav {
    position: fixed;
    top: 60px;
    right: 90px;
    z-index: 9999;
}


.hamburger {
    position: absolute;
    width: 48px;
    height: 48px;
    background: #ff0000;
    color: #fff;
    font-size: 22px;
    border-radius: 6px;
    margin-right: 5px;
    margin-top: -8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
}

.side-nav::before {
    content: "";
    position: absolute;
    right: -11rem;
    width: 600px;
    height: 600px;
    margin-top: -11rem;
    background: #9e0f0f8d;
    border-radius: 50%;
    transform: scale(0);
    transform-origin: top right;
    transition: transform 0.45s ease;
}

.side-nav:hover::before {
    transform: scale(1);
}

.nav-content {
    position: relative;
    z-index: 2;
    /* background-color: purple; */
    /* width: 500px; */
    /* height: 500px; */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.side-nav:hover .nav-content {
    opacity: 1;
    pointer-events: auto;
}

.top-links {
    position: absolute;
    margin-top: -8px;
    right: 15px;
    display: flex;
    flex-wrap: nowrap;
    /* background-color: black; */
    /* max-width: 500px; */
    width: 250px;
    /* height: 200px; */
    /* background-color: chocolate; */
    /* align-items: center; */
    /* width: 100%; */
    gap: 25px;
    /* background-color: #2a0a7a; */
    padding: 10px 10px;
}


.top-links a,
.top-links span {
    color: #fff;
    font-size: 14px;
    /* width: 100%; */
    text-decoration: none;
}
 
.top-links .contact-btn{
    display: flex;
    flex-wrap: nowrap;
    /* background-color: blue; */
    /* padding-left: 20rem; */
    /* padding-right: 20rem; */
    /* width: 100%; */
} 

.top-links .btn {
    background: #fff;
    color: #9e0f0f;
    padding: 6px 10px;
    border-radius: 20px;
    align-items: flex-end;
    font-weight: 500;
}

.social-links {
    position: absolute;
    top: 80px;
    margin-left: 1rem !important;
    display: flex;
    flex-direction: column;
    margin-left: 10px;
    gap: 14px;
}

.social-links a {
    color: #fff;
    text-decoration: none;
    font-size: 16px;
}



@keyframes fadeInRight {
    from { opacity: 0; transform: translateX(-30px); }
    to   { opacity: 1; transform: translateX(0); }
}


@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}



/* ============================================
   ALL MEDIA QUERIES — CONSOLIDATED AT BOTTOM
   (Order matters: tablet first, then mobile)
   ============================================ */

/* ---------- TABLET (769px – 1024px) ---------- */
@media (max-width: 1024px) and (min-width: 769px) {

    /* Slider stays horizontal, arrows hidden */
    .horizontal-slider {
        overflow-x: scroll;
        overflow-y: hidden;
        scroll-behavior: smooth;
        transform: none;
    }

    .slide {
        flex: 0 0 100vw;
        width: 100vw;
        height: 100vh;
    }

    .nav-arrow {
        display: none !important;
    }

    /* Services */
    .services-section {
        grid-template-columns: 1fr;
    }

    .image-side {
        min-height: 400px;
    }

    .content-side {
        padding: 60px 40px;
    }

    .services-header h2 {
        font-size: 3rem;
    }

    .sessions-grid {
        grid-template-columns: 1fr;
    }

    /* Portfolio cards */
    .portfolio-card {
        flex: 0 0 50%;
    }
}

@media (max-width: 768px) {

  html,
  body {
    overflow-y: auto;
    overflow-x: hidden;
    height: auto !important;
    overscroll-behavior: auto !important;
  }

  .horizontal-slider {
    display: block;
    height: auto;
    overflow: visible;
    transform: none !important;
  }

  .horizontal-slider .slider-track {
    display: block;
    transform: none !important;
  }

  .horizontal-slider .slide {
    width: 100%;
    height: auto;
    min-height: 100vh;
    position: relative;
  }
  .slide {
    width: 100% !important;
    height: auto !important;
    min-height: 100vh;
    position: relative;
    
  }
    
  
  .side-nav::before {
    display: none;
  }

  .side-nav:hover::before {
    transform: none;
  }

  .nav-content {
    display: none;
  }

  .side-nav:hover .nav-content {
    opacity: 0;
  }

 

  /* Stack nav links vertically on mobile */
  .top-links {
    display: none;
  }
    
  /* Hide navigation arrows */
  .nav-arrow {
    display: none !important;
  }
}

