/* Local Inter font faces */
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter/static/Inter_18pt-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter/static/Inter_18pt-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter/static/Inter_18pt-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter/static/Inter_18pt-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
  
  /* General Styles */

 
  html {
      scroll-behavior: smooth;
      overscroll-behavior-y: none;
      -ms-overflow-style: none;
      scrollbar-width: none;
      /* overflow-x: hidden; */
    }
  
  body {
      font-family: 'Inter', sans-serif;
      color: var(--text-light);
      background-color: var(--bg-dark);
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      height: 100vh;
      overflow: visible;
  }
  
  /* Color Variables */
  :root {
      --text-light: #ffffff;
      --text-dark: #2e3338;
      --text-gray: #6c757d;
      --text-light-gray: #b1c8ec;
      --text-blue: #003c97;
      --text-blue-hover: #419afa;
      --bg-light: #ffffff;/*radial-gradient(circle, #F5F5F8 80%, #e2e2e2 100%);  Ensure proper gradient syntax */
      --bg-dark: #003c97;
      --bg-dark-transparent:rgba(0, 60, 151, 0.8);
      --bg-gray: #f5f5f8;
      --gap:20px;
      --carousel-item-width:430px;
      --carousel-item-height:650px;
      --carousel-logo-img-width:120px;
      --carousel-logo-img-max-width:200px;
  }

  .container {
    width: 100%;
    /* margin-right: auto;
    margin-left: auto; */
  }
  
  /* Text Colors */
.text-light {
    color: var(--text-light) !important;
}

.text-dark {
    color: var(--text-dark) !important;
}

.text-gray {
    color: var(--text-gray) !important;
}

.text-light-gray {
    color: var(--text-light-gray) !important;
}

.text-blue {
    color: var(--text-blue) !important;
}

.text-blue-hover:hover {
    color: var(--text-blue-hover) !important;
}

/* Background Colors */
.bg-light {
    background: var(--bg-light) !important; /* Use background instead of background-color */
}
  
.bg-dark {
    background-color: var(--bg-dark) !important;
}

.bg-gray {
    background-color: var(--bg-gray) !important;
}

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #003c97;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.5s ease-out;
}

.loading-content {
    text-align: center;
    color: white;
}

.loading-logo {
    margin-bottom: calc(var(--side-padding)*.3);
}

.loading-logo img {
    height: auto;
    width: calc(var(--side-padding)*5);
}

.loading-progress {
    width: calc(var(--side-padding)*5);
}

.progress-bar {
    width: 100%;
    height: 4px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: calc(var(--side-padding)*.3);
}

.progress-fill {
    height: 100%;
    background: #fff;
    width: 0%;
    transition: width 0.3s ease;
}

.progress-text {
    font-size: .7rem;
    opacity: 0.8;
}

.loading-overlay.fade-out {
    opacity: 0;
    pointer-events: none;
}

#mainNav{
    width: 100%;
    z-index: 50;
    position: fixed;
}
  
  /* Video Container */
  .video-container {
      position: relative;
      width: 100%;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
  }
  
  .video-container::before {
      left: 0;
  }

  #heroVideo{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%); 
        -o-transform: translate(-50%, -50%);
        object-fit: cover;
        z-index: -1;
        width: 100vw;
        height: auto;
        min-height: 100vh;
  }
  
  #rnd .video-container video {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -webkit-transform: translate(-50%, -50%); 
      -o-transform: translate(-50%, -50%);
      object-fit: cover;
      z-index: -1;
  }
  
  /* Optimize will-change usage to prevent memory issues */
  .video-container {
      /* Use transform3d for hardware acceleration without will-change overhead */
      transform: translateZ(0);
  }
  
  .parallax-text {
      /* Only apply will-change when actually animating */
      will-change: auto;
  }
  
  @media (orientation: portrait) or (min-width: 0px){

        #leadership .container{
            z-index: 99;
        }

        /* .scroll-container{
            margin-top: -60vw;
        } */

        #cycling-words-vert{
            display:flex;
        }

        #cycling-words-hor{
            display:none;
        }

        /* Canvas */
        .section-design .image-sequence {
            position: absolute;
            bottom: 0;
            width: 90vw;
            max-width: 100%;
            display: block;
            transform-origin: center;
        }

        #rnd .video-container video, #rnd .video-container {
            width: auto;
            height: 50vh;
            min-width: 100vw;
        }

        @media (min-width: 768px) {

            .copy-container{
                top:150px;
            }

            .copy-container div:nth-child(2) div
            {
                margin-left: 20px;
            }
            
            .copy-container div:nth-child(4) div 
            {
                margin-left: 40px;
            }

            .copy-container div:nth-child(1) div,.copy-container div:nth-child(2) div
            {
                margin-bottom: -200px;
            }
        }
  }

  @media (orientation: landscape) {

        /* Canvas */
        .section-design .image-sequence {
            position: absolute;
            bottom: 0;
            width: auto;
            max-width: calc(var(--viewport-content)*0.7);
            display: block;
            transform-origin: center;
        }

        #rnd .video-container video, #rnd .video-container {
            width: 100vw;
            height: auto;
            min-height: 100vh;
        }

        @media (max-width: 767px) {

            #cycling-words-vert{
                display:flex;
            }

            #cycling-words-hor{
                display:none;
            }
        }

        @media (min-width: 768px) {

            .copy-container div:nth-child(1) div,.copy-container div:nth-child(2) div
            {
                margin-bottom: -200px;
            }


            #cycling-words-vert{
                display:none;
            }

            #cycling-words-hor{
                display:flex;
            }

        }

        .contact-item{
            margin-bottom:30px;
        }

    }
  
  .video-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 60, 151, 0.5);
  }
  
  .video-container p{
      font-size:26px; 
      line-height:30px;
      font-weight:600;
  }
  
  @keyframes gradientAnimation {
      0% {
          background-position: 0% 50%;
      }
      50% {
          background-position: 100% 50%;
      }
      100% {
          background-position: 0% 50%;
      }
  }
  
  /* Section Styles */
  .section {
      /* min-height: 100vh; */
      height: auto;
      position: relative;
  }
  
  /* Исключение для секций с design-section */
  .section:has(.design-section) {
      overflow: visible; /* Разрешаем overflow для sticky элементов */
      position: relative;
      z-index: 1;
  }
  
  /* Дополнительные стили для секций с design-section */
  .section:has(.design-section) .design-section {
      position: relative;
      z-index: 2;
  }
  
  /* Button Styles */
  .btn-outline {
      border: 2px solid var(--text-blue);
      color: var(--text-blue);
      padding: 0.75rem 2rem;
      font-weight: 600;
      border-radius: 0.5rem;
      transition: all 0.3s ease;
      font-size: 1rem;
  }
  
  .btn-outline:hover {
      background-color: var(--text-blue);
      color: var(--text-light);
  }
  
  .btn-outline-blue {
      border-color: #3b82f6;
      color: #3b82f6;
  }
  
  .btn-outline-blue:hover {
      background-color: #3b82f6;
      color: var(--text-light);
  }
  
  /* Navigation */
  nav {
      transition: background-color 0.3s ease;
  }
  
  nav a {
      color: var(--text-dark);
      transition: color 0.3s ease;
  }
  
  nav a.active {
      font-weight: 700; /* Make active item bold */
      color: var(--text-blue-hover); /* Use defined variable */
  }
  
  nav a:hover {
      color: var(--text-blue-hover);
  }
  
  /* Remove nav-transparent and nav-solid classes as they are no longer needed */
  .nav-transparent,
  .nav-solid {
      background-color: transparent !important;
  }
  
  .nav-on-light a.active {
      color: var(--text-blue-hover); /* Use consistent variable */
  }
  
  /* Floating Button Animation */
  .floating-btn {
      animation: float 3s ease-in-out infinite;
  }
  
  @keyframes float {
      0% { transform: translateY(0px); }
      50% { transform: translateY(-15px); }
      100% { transform: translateY(0px); }
  }
  
  /* Scroll Indicator */
  .scroll-indicator {
      position: absolute;
      bottom: 30px;
      transform: translateX(-50%);
      animation: bounce 2s infinite;
  }
  
  @keyframes bounce {
      0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
      40% { transform: translateY(-20px); }
      60% { transform: translateY(-10px); }
  }
  
  /* About Section */
  #about {
      transform: translateZ(0);
      position: relative; /* Allow "about" section to scroll over "home" */
      /* margin-top: 100vh; Push "about" section below the fixed "home" section */
  }

  #stats .signature{
    color: var(--text-gray);
  }
  
  #about .row .column.flex {
      display: flex;
      flex-direction: column;
      justify-content: center;
  }
  
 
  /* Hide scrollbar for aesthetic purposes */
  .services-scroll::-webkit-scrollbar {
      display: none;
  }
  
  .services-scroll {
      -ms-overflow-style: none;
      scrollbar-width: none;
  }


    /* Chrome, Edge, Safari */
    ::-webkit-scrollbar {
        display: none;
    }
  
  /* Footer */
  footer {
      background-color: var(--bg-dark);
      color: var(--text-light);
      text-align: center;
      position: relative; /* Default position */
      bottom: 0; /* Ensure footer stays at the bottom */
      width: 100%;
  }
  
  /* Fade-in Animation for White Text */
  .fade-in-white {
      opacity: 0;
      animation: fadeIn 2s forwards;
  }
  
  @keyframes fadeIn {
      to {
          opacity: 1;
      }
  }
  
  /* Portfolio Section */
  
  #portfolio {
      overflow: hidden; /* Prevent vertical scrolling within the section */
  }
  
  /* Testimonials Section */
  .section.bg-slate-900 {
      background-color: var(--bg-gray);
      color: var(--text-dark);
  }
  
  .section.bg-slate-900 h2 {
      font-size: 2.5rem;
      color: var(--text-dark);
  }
  
  .section.bg-slate-900 p {
      font-size: 1rem;
      color: var(--text-gray);
  }
  
  /* Text Appearance Animation */
  .text-appear {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.6s ease, transform 0.6s ease;
  }
  
  .text-appear.visible {
      opacity: 1;
      transform: translateY(0);
  }
  
  /* .nav-on-light */
  .nav-on-light {
      background-color: var(--bg-light) !important;
      box-shadow: 0 4px 16px 0 rgba(0,0,0,0.08) !important;
  }
  
  .nav-on-light a {
      color: var(--text-dark) !important;
  }
  
  .nav-on-light a.active {
      color: var(--text-light)!important;
      background-color: var(--bg-dark);
  }
  
  .nav-on-light a:hover {
      color: var(--text-blue-hover) !important;
  }
  
  #backToTop {
      transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  /* Side Fade-in Animation */
  .fade-in-side {
      opacity: 0;
      transform: translateX(-20px);
      transition: opacity 0.6s ease, transform 0.6s ease;
  }
  
  .fade-in-side.visible {
      opacity: 1;
      transform: translateX(0);
  }
  
  .cycling-words {
      position: relative;
      height: 1.2em; /* Adjust height to fit the text */
      overflow: hidden;
      display: flex;
      justify-content: center; /* Center horizontally */
      align-items: center; /* Center vertically */
      text-align: center; /* Ensure text alignment */
  }
  
  .cycling-words span {
      position: absolute;
      width: 100%;
      opacity: 0;
      transform: translateY(100%);
      transition: opacity 0.5s ease, transform 0.5s ease;
      text-align: center; /* Ensure text alignment */
  }
  
  .cycling-words span.active {
      opacity: 1;
      transform: translateY(0);
  }
  
  .word {
      opacity: 0;
      transition: opacity 0.5s ease-in-out;
  }
  
  .cycling-slide {
      display: inline-block;
      overflow: hidden;
      position: relative;
      height: 1.6rem;
      line-height: 1.6rem;
  }
  
  .cycling-slide span {
      display: block;
      position: absolute;
      width: 100%;
      top: 0;
      animation: slide 6s infinite;
  }
  
  @keyframes slide {
      0% { transform: translateY(0); }
      33% { transform: translateY(-100%); }
      66% { transform: translateY(-200%); }
      100% { transform: translateY(0); }
  }
  
  .text-light {
      color: var(--text-light);
  }
  
  .text-dark {
      color: var(--text-dark);
  }
  
  .bg-light {
      background: var(--bg-light);
  }
  
  .bg-dark {
      background-color: var(--bg-dark);
  }
  
  .container {
      margin: 0;
      padding: 0;
  }
  
  .parallax-text {
      font-size: 6vw; /* Responsive font size */
      font-weight: 900; /* Bold text */
      text-transform: uppercase; /* Uppercase text */
      background: linear-gradient(0deg, #3b82f6, #ffffff); /* Gradient text */
      -webkit-background-clip: text; /* Clip background to text */
      background-clip: text; /* Clip background to text */
      color: transparent; /* Make text transparent */
      white-space: nowrap; /* Prevent text wrapping */
      z-index: 10; /* Ensure it is above other elements */
      pointer-events: none; /* Disable pointer events */
      transition: transform 0.1s ease-out; /* Smooth transition for movement */
  }
  
  @keyframes slideIn {
      from {
          transform: translateY(20px);
          opacity: 0;
      }
      to {
          transform: translateY(0);
          opacity: 1;
      }
  }
  
  #home {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh; /* Full viewport height */
      z-index: 0; /* Lower than overlapping content */
      background-color: var(--bg-dark); /* Ensure background is visible */
  }
  
  /* Add spacing to main to account for fixed home section */
  main {
      flex: 1; /* Ensure main content takes up remaining space */
      margin-top: 100vh; /* Add margin equal to home section height */
      position: relative;
      z-index: 2; /* Ensure content appears above home section */
  }
  
  /* Update logo-transition to overlap home section */
  .logo-transition {
      position: relative;
      top: 0;
      left: 0;
      width: 100vw;
      height: 50vh;
      z-index: 2; /* Higher than home section */
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 100%);
      margin-top: -50vh; /* Pull it up to overlap home section */
      pointer-events: none; /* Allow clicks to pass through to home section */

  }
  
  /* Ensure all sections after home have proper z-index */
  .section:not(#home) {
      position: relative;
      z-index: 2; /* Higher than home section */
  }
  
  /* Remove the negative margin from about section - let it start normally */
  #about {
      position: relative;
      z-index: 2;
      margin-top: 0; /* Ensure no negative margin */
  }
  
  .signature-section {
      flex: 3; /* 75% width */
      background: #ffffff;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 30px;
      position: relative;
      height: 100%;
  }
  
  .gradient-section {
      flex: 1; /* 25% width */
      background: linear-gradient(135deg, #667eea, var(--text-blue));
      display: flex;
      justify-content: center;
      align-items: center;
      color: white;
      font-size: 2.5rem;
      font-weight: bold;
      text-shadow: 0 2px 4px rgba(0,0,0,0.3);
  }
  
  .card {
    border-radius: 16px !important;
    overflow: hidden !important;
    /* box-shadow: 0 10px 30px rgba(0,0,0,0.15); */
    margin: 0 !important; /* Remove auto margin for consistent alignment */
}
  
  /* GRID */
  
  .layout-grid-container {
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate(-50%, 0);
      width: 100%;
      height: 100vh;
      z-index: 100;
      padding: 0 30px;
  }
  
  .layout-grid-column{
      height:100%;
      background-color: rgba(255, 96, 173, 0.7); /* more visible */
  }
  
  /* Accordion Styles */
  .accordion {
      overflow: hidden;
      background-color: var(--bg-dark-transparent);
  }
  
  button.accordion-header {
      cursor: pointer;
  }
  
  .accordion-header span{
      transition: font-size .5s;
  }
  
  .accordion-header .accordion-icon {
      transition: transform 0.3s ease;
  }
  
  .accordion-header.active .accordion-icon {
      transform: rotate(45deg);
  }
  
  .accordion-content {
      max-height: 0; /* Ensure content is hidden initially */
      overflow: hidden; /* Prevent content overflow */
      transition: max-height 0.3s ease, padding 0.3s ease; /* Smooth transition */
  }
  
  .accordion-content.active {
      max-height: 700px; /* Adjust based on your content */
  }
  
  #services .container{
      background-image: url('../images/services_sign.svg'); /* Correct relative path */
      background-repeat: no-repeat;
      background-color: var(--bg-dark); /* Fallback background color for contrast */
  }
  
  
  .carousel-item {
      position: relative;
      overflow: hidden; /* Essential for containing zoomed background */
      /* box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); */
      transition: transform 0.3s ease, box-shadow 0.3s ease;
  }

  
  /* Horizontal Scroll Containers */
  .services-scroll, 
  .portfolio-carousel,
  .timeline-scroll {
      scroll-behavior: smooth;
      scrollbar-width: none; /* Hide scrollbar for Firefox */
      -webkit-overflow-scrolling: touch;
      overscroll-behavior-x: contain;
      transform: translateZ(0);
      backface-visibility: hidden;
      display: flex;
      overflow-x: scroll;
      padding-bottom: 1rem;
      overflow-y: hidden; /* Disable vertical scrolling */
      gap: 20px;
  }
  
  .timeline-scroll{
      scroll-snap-type: x mandatory;
      scroll-snap-stop: always;
  }
  
  .portfolio-carousel, .clients-carousel{
      --gallery-side-padding:round(down,calc((100vw - var(--viewport-content) + var(--side-padding)*2) / 2),1px);
      max-width: 100%; /* Prevent clipping */
      position: relative; /* Ensure proper positioning */
      padding:1px var(--gallery-side-padding);
  }
  
  .carousel-item,
  .timeline-item {
      flex-shrink: 0;
      /* Remove will-change to prevent memory issues - use transform3d for hardware acceleration instead */
      -webkit-transform: translateZ(0);
      transform: translateZ(0);
      scroll-snap-align: start;
      position:relative;
  }

  .timeline-item h2{
    text-wrap-style: balance;
  }

  
  .timeline-item:last-child{
      width:round(down,calc((var(--viewport-content) - var(--side-padding)*2)),1px);
      scroll-snap-align: start;
      transition: opacity 0.3s ease; /* Smooth opacity transition */
  }
  
  .timeline-item:not(.active){
      position: relative;
  }
  
  .timeline-item:not(.active)::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.9)); /* White overlay with 30% opacity */
      pointer-events: none; /* Ensure it doesn't block interactions */
  }
  
  /* Custom Scrollbars */
  .services-scroll::-webkit-scrollbar, 
  .portfolio-carousel::-webkit-scrollbar {
      height: 6px;
  }
  
  .services-scroll::-webkit-scrollbar-track,
  .portfolio-carousel::-webkit-scrollbar-track {
      background: rgba(0,0,0,0.1);
  }
  
  .services-scroll::-webkit-scrollbar-thumb,
  .portfolio-carousel::-webkit-scrollbar-thumb {
      background: var(--text-blue);
      border-radius: 3px;
  }
  
  /* Hide scrollbar when not needed */
  .services-scroll::-webkit-scrollbar,
  .portfolio-carousel::-webkit-scrollbar,
  .timeline-scroll::-webkit-scrollbar {
      display: none;
  }
  
  .services-scroll,
  .portfolio-carousel,
  .timeline-scroll {
      -ms-overflow-style: none;
      scrollbar-width: none;
  }
  
  #rnd.h-screen {
      position: relative;
      overflow: hidden;
  }
  
  /* Gradient overlay with animation */
  #rnd.h-screen::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: radial-gradient(
          circle at center,
          rgba(0, 100, 255, 0.5) 0%,
          rgba(0, 50, 150, 0.7) 100%
      );
      z-index: 1;
      transition: transform 0.3s ease-out;
  }
  
  /* Content styling */
  /* #rnd .h-screen > * {
      position: relative;
      z-index: 2;
  } */
  
  /* Mouse movement effect */
  /* #rnd .h-screen:hover::before {
      transform: translate(
          calc((var(--mouse-x) - 0.5) * -10px),
          calc((var(--mouse-y) - 0.5) * -10px)
      );
  } */
  
  
  .fade-in {
      opacity: 50;
      transition: opacity 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  }
  .active .fade-in {
      opacity: 1;
  }
  .timeline-circle {
      transition: all 0.1s ease;
      width: 20px;
      height: 20px;
      position: absolute;
      bottom: 0;
      z-index: 2; /* put circle above the line */
      -webkit-transform: translateZ(0); /* force its own compositing layer on iOS */
      transform: translateZ(0);
      background-color: #1e293b; /* ensure visible background behind border on iOS */
      /* box-shadow: 0 0 0 4px #fff inset; emulate white border reliably */
      border-radius: 50%;
  }

  .timeline-line{
    height: 1px;
    right: 0px;
    left: 0px;
    position: absolute;
    z-index: 1; /* ensure line is behind circles */
    background-color: rgba(30,41,59,0.9); /* explicit colour; better than relying on utility classes on some iOS builds */
    transform: translateZ(0); /* avoid unexpected painting order on iOS */
    -webkit-transform: translateZ(0);
}

/* active circle */
.active .timeline-circle {
    width: 30px;
    height: 30px;
    margin-bottom: -5px;
    z-index: 3;
}

/* iOS / WebKit specific fixes: make the line a bit thicker and adjust placement to avoid half-pixel clipping */
@supports (-webkit-touch-callout: none) {
    .timeline-line{
        height: 2px; /* thicker fallback on iOS to avoid hairline clipping */
        /* bottom: 24px; if you already set bottom elsewhere per breakpoint, keep that logic; this is a safe fallback */
    }
    .timeline-circle {
        /* nudge circles up so border always fully visible over the thicker line */
        margin-bottom: -2px;
    }
}
  
  .clients-carousel {
      display: flex;
      align-items: center;
      overflow-x: hidden;
      white-space: nowrap;
      position: relative;
  }
  
  .clients-carousel .carousel-item {
      width: auto;
      height: auto;
      min-width: 0;
      min-height: 0;
      background: none;
      box-shadow: none;
  }
  
  .carousel-logo {
      flex-shrink: 0;
      display: inline-block;
      transition: transform 0.3s ease;
  }
  
  .carousel-logo img {
      object-fit: contain; /* Maintain aspect ratio */
      display: block; /* Prevent inline spacing issues */
      margin: auto; /* Center logos within their container */
      padding: 10px; /* Add padding to balance visual weight */
      box-sizing: border-box; /* Include padding in dimensions */
      border-radius: 8px; /* Optional: Add rounded corners */
      width:auto;
  }
  
  /* Contact section overlap effect */
  #contact {
      position: relative;
      z-index: 2;
      transition: transform 0.3s ease-out;
      transform: translateY(-100vh);
      margin-bottom: -100vh;
  }
  
  #contact.overlapping {
      transform: translateY(0);
  }
  
  .sticky-frame {
      position: relative;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      z-index: 1;
      pointer-events: none;
      display: block;
  }
  .sticky-frame.active {
      position: fixed;
      top: 0;
      left: 0;
      pointer-events: auto;
  }
  
  .scroll-video {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
      display: block;
  }
  
  /* .content-block {
      position: absolute;
      top: 25vh;
      width: 40vw;
      max-width: 500px;
      z-index: 2;
  }
  
  .content-block.left {
      left: 0;
      margin-left: 0;
  }
  
  .content-block.right {
      right: 0;
      margin-right: 0;
  } */
  
  /* .section-placeholder {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: white;
      z-index: 1;
  } */
  
  /* Удален placeholder-canvas - больше не используется */
  
  .logo-transition {
      position: relative;
      top: 0;
      left: 0;
      width: 100vw;
      height: 50vh;
      z-index: 2; /* Higher than home section */
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 95%);
      margin-top: 0; /* Pull it up to overlap home section */
      padding-bottom: 30px;
  }
  
  /* .sticky-frame > .container {
      position: relative;
      z-index: 2;
  } */
  
  /* .content-block.active {
      opacity: 1;
      pointer-events: auto;
  }
  
  .content-block.inactive {
      opacity: 0;
      pointer-events: none;
  } */
  
  /* Slide in (from below, Y axis only) */
  .slide-in {
      opacity: 1;
      /* transition: opacity 0.5s, transform 0.5s; */
      /* transform will be set inline by JS */
  }
  
  /* Slide out (to below, Y axis only) */
  .slide-out {
      opacity: 0;
      /* transition: opacity 0.5s, transform 0.5s; */
      /* transform will be set inline by JS */
  }
  
  .skeleton {
    position: relative;
    overflow: hidden;
    background: #e0e0e0;
  }
  .skeleton-img {
    width: 100%;
    height: 100%;
    display: block;
    background: #e0e0e0;
    border-radius: 8px;
  }
  .skeleton::after {
    content: '';
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(90deg, rgba(224,224,224,0) 0%, rgba(255,255,255,0.6) 50%, rgba(224,224,224,0) 100%);
    animation: skeleton-shimmer 1.2s infinite;
  }
  @keyframes skeleton-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
  }

/* Accessibility */
.skip-link {
    position: absolute !important;
    top: -40px !important;
    left: 6px !important;
    background: #000 !important;
    color: #fff !important;
    padding: 8px !important;
    text-decoration: none !important;
    z-index: 1000 !important;
}

.skip-link:focus {
    top: 6px !important;
}

/* Apple-style section design */


/* .section-design .hero-headline {
    display: block;
    position: relative;
    color: #1d1d1f;
    padding: 120px 0 60px;
    text-align: center;
}

.section-design .hero-headline .section-eyebrow {
    font-size: 21px;
    line-height: 1.381002381;
    font-weight: 600;
    letter-spacing: .011em;
    margin-bottom: 10px;
}

.section-design .hero-headline .section-headline {
    font-size: 56px;
    line-height: 1.0714285714;
    font-weight: 600;
    letter-spacing: -.005em;
}

.section-design .hero-headline .section-copy {
    margin-top: 60px;
    font-size: 21px;
    line-height: 1.381002381;
    font-weight: 400;
    letter-spacing: .011em;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
} */

/* Scroll container */
.section-design .scroll-container {
    position: relative;
    width: 100%;
    height: 240vh; /* Apple использует 240vh */
    overflow: visible; /* Должно быть visible для sticky позиционирования */
}

/* Sticky element - Apple style */
.section-design .sticky-element {
    position: sticky;
    position: -webkit-sticky;
    top: 0; /* Apple использует top: 0, а не 50vh */
    overflow: hidden;
    z-index: 1;
    opacity: 1;
    height: 100vh;
    width: 100%;
}

.section-design .sticky-element.hide {
    opacity: 0;
}

/* Sticky content */
.section-design .sticky-content {
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100vh;
    width: 100%;
}

/* Image sequence container */
.section-design .image-sequence-container {
    top: 0;
    position: absolute;
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    /* align-items: center; */
    z-index: 1;
}

/* Highlights */
.section-design .highlights {
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 3;
    pointer-events: none;
}

.section-design .highlights .section-content {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* .section-design .highlights .flex-container {
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
} */

.section-design .highlights .copy-container {
    position: relative;
}

/* Highlight copy */
.section-design .highlight-copy {
    /* position: absolute; */
    bottom: 20%; /* НОВОЕ: Позиционирование снизу */
    transform: translateY(0); /* Убираем центрирование */
    transition: opacity 0.5s ease, transform 0.3s ease-out;
    pointer-events: auto;
}

.section-design .highlight-copy.visible {
    opacity: 1;
}

/* .section-design .highlight-copy.right {
    right: 0;
} */

/* .section-design .highlight-copy .highlight {
    font-size: 21px;
    line-height: 1.381002381;
    font-weight: 600;
    letter-spacing: .011em;
    margin-bottom: 10px;
    display: inline-block;
} */

/* .section-design .highlight-copy span {
    font-size: 17px;
    line-height: 1.2353641176;
    font-weight: 400;
    letter-spacing: -.022em;
} */

/* 360 gradient for mobile */
.section-design .overview-design-360-gradient {
    position: absolute;
    height: 25%;
    width: 100%;
    bottom: -2px;
    display: none;
    z-index: 2;
}

@media only screen and (max-width: 767px){
    .section-design .overview-design-360-gradient {
        display: block;
    }
}

.section-design .overview-design-360-gradient img {
    display: block;
    width: 100%;
    margin-top:-100px;
}

/* Responsive adjustments
@media only screen and (max-width: 1068px) {
    .section-design .hero-headline .section-headline {
        font-size: 48px;
        line-height: 1.0834933333;
        font-weight: 600;
        letter-spacing: -.003em;
    }

    .section-design .hero-headline .section-copy {
        font-size: 17px;
        line-height: 1.2353641176;
        font-weight: 400;
        letter-spacing: -.022em;
    }

    .section-design .highlight-copy .highlight {
        font-size: 17px;
        line-height: 1.2353641176;
        font-weight: 600;
        letter-spacing: -.022em;
    }

    .section-design .highlight-copy span {
        font-size: 15px;
        line-height: 1.3333666667;
        font-weight: 400;
        letter-spacing: -.016em;
    }
}

@media only screen and (max-width: 734px) {
    .section-design .hero-headline {
        padding: 80px 0 40px;
    }

    .section-design .hero-headline .section-headline {
        font-size: 40px;
        line-height: 1.1;
        font-weight: 600;
        letter-spacing: 0;
    }

    .section-design .hero-headline .section-copy {
        font-size: 15px;
        line-height: 1.3333666667;
        font-weight: 400;
        letter-spacing: -.016em;
    }

    .section-design .highlight-copy {
        width: 300px;
        padding: 20px;
    }

    .section-design .highlight-copy .highlight {
        font-size: 15px;
        line-height: 1.3333666667;
        font-weight: 600;
        letter-spacing: -.016em;
    }

    .section-design .highlight-copy span {
        font-size: 13px;
        line-height: 1.3846153846;
        font-weight: 400;
        letter-spacing: -.009em;
    }
} */

@media (min-width: 0px) { /* Tailwind sm breakpoint */
    :root{
        --viewport-content:100vw;
        --side-padding:24px;
        --ratio:0.50;
    }

    .container {
        max-width: 100vw;
        padding-right: 24px;
        padding-left: 24px;
    }

    .layout-grid-container{
        padding: 0 var(--side-padding);
        width: var(--viewport-content);
    }

    .grid{
        gap:12px;
    }

    #mobile-menu a{
        font-size:13px;
        font-weight: 500;
        color:var(--text-light-gray)
    }

    #mainNav .container{
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }

    #mainNav{
        background-color: var(--bg-dark);
    }

    #mainLogo{
        height: 1.3rem;
    }

    .logo-transition{
        display: none;
    }

    .scroll-indicator{
        display: none;
    }

    .accordion-header > span:nth-child(1)
    {
        display:none;
    }

    #home h1 {
        font-size:34px;
        line-height:46px;
        font-weight:600;
    }

    #home h1 {
        margin-bottom:0;
    }

    section h1 {
        font-size:44px;
        line-height:56px;
        font-weight:600;
        margin-bottom:20px;
    }

    .section-header.grid{
        gap:0
    }

    #about h2{
        text-wrap-style: balance;
    }

    #about .intro{
        height:400px;
    }

    #portfolio h1, #services h1{
        padding-bottom: 30px;
    }

    #home p{
        font-size:14px;
        line-height:26px;
        font-weight:600;
    }
  
    section h2 {
        font-size:18px;
        line-height:28px;
        font-weight:600;
    }

    section p{
        font-size:12px;
        line-height:20px;
        font-weight:500;
        text-wrap-style: balance;
    }

    #badge1 span{
        display:inline;
    }

    #rating .signature-section h3{
        font-size:18px;
        line-height:30px;
        font-weight:600;
    }

    .text-overlay, .accordion-header{
        font-size:14px;
        line-height:24px;
        font-weight:600;
    }

    .text-overlay{
        padding:29px;
    }

    #rating, .section-header, #portfolio, .description, #approach, #clients{
        padding-bottom:60px;
    }

    .video-container p {
        font-size: 12px;
        line-height: 20px;
        font-weight: 600;
    }

    .video-container h2{
        font-size:20px;
        line-height:26px;
        font-weight: 600;
    }

    #about .row, #rnd .section-header{
        padding-top:60px;
    }

    #about .row h2{
        padding-bottom:20px;
    }

    #stats .number{
        font-size:56px;
        line-height:68px;
        font-weight:500;
        margin-bottom: 0px;
      }

    #stats .number {
        margin-left: -.2rem;
    }
  
    #stats .signature {
        font-size:12px;
        line-height:20px;   
        font-weight:500;
      } 

    .signature-section h3{
        font-size:28px;
        line-height:40px;
        font-weight:500;
      }

    #rating .signature-section p,  #rating .signature-section .year{
        font-size:10px;
        line-height:22px;
        font-weight:400;
    }

    /* Цифры рейтинга */
    #rating .signature-section .flex span:nth-child(1){ 
        font-size:56px;
        line-height:68px;
        font-weight:500; 
    }

    /*Показатель роста пунктов рейтинга*/
    #rating .signature-section .flex span:nth-child(2){
        font-size:16px;
        line-height:18px;
        font-weight:400; 
    }

    #services .container{
        background-size:calc(var(--viewport-content)*0.46); /* Ensure the image scales properly 900px*/
        background-position: top 160px right calc(var(--viewport-content)*0.09); /* Slightly to the right and moved down from the top */
    }

    #services .slogan{
        margin-top: 80px;
        margin-bottom:120px;
    }

    ul li {
        list-style-position: outside;
        list-style-type:disc;
        margin-left: 14px;
    }

    .carousel-item {
        width:calc(var(--carousel-item-width)*var(--ratio));
        height:calc(var(--carousel-item-height)*var(--ratio));
    }

    button.carousel-btn-left, button.carousel-btn-right{
        display:none;
    }

    .rnd-areas{
        margin-top:60px;
    }

    /* , #rnd .rnd-areas */
    .description{
        padding-top:80px;
    }

    #timelineScroll{
        height:200px;
    }

    .timeline-item{
        width:round(down,calc((var(--viewport-content) - var(--gap) - var(--side-padding)*2) / 1.25),1px);
        scroll-snap-align: start;
        transition: opacity 0.3s ease; /* Smooth opacity transition */
        overflow: visible;
    }

    /* .timeline-line{
        bottom:41px;
    } */

    .carousel-logo img{
        height: calc(var(--carousel-logo-img-width)*var(--ratio)*1.5);
        max-width:calc(var(--carousel-logo-img-max-width)*var(--ratio)*1.5);
    }

    #clients div .container{
        margin-bottom: 50px;
    }

    .clients-carousel{
        gap: calc(170px*var(--ratio)); /* Equal gap between logos */
        height: 100px;
        /* overflow-x: scroll; Allow horizontal scrolling */
        /* -webkit-overflow-scrolling: touch; Enable smooth scrolling on iOS */
    }

    #rnd .video-container p{
        margin-bottom: 0.75rem;
    }

    /*Список услуг второго уровня*/
    .accordion-content{
        font-size:12px;
        line-height:20px;
        font-weight:400;
    }

    .accordion-header.active span, .contact-item{
        font-size:22px;
        line-height:30px;
        font-weight:500;
    }

    .cycling-words{
        font-size:22px;
        line-height:30px;
        font-weight:600;
    }

    #cycling-words-vert{
        height: 35vh;
    }

    #cycling-words-vert h2{
        line-height: 5px;
    }

    /* #cycling-words-vert{
        height: 50vh;
    } */

    .image-sequence{
        display: none !important;;
    }

    /* .copy-container{
        top:50px;
    } */

    /* .section-design .highlight-copy {
        width: 25vw;
    } */

    section .hightlight-copy p{
        line-height:unset!important;
    }

    .highlights .container{
        margin-top: -50px;
    }

    #contact .grid div{
        margin-top:18px;
        text-align: left;
    }

    #contact h1{
        font-size:34px;
        line-height: 46px;
        margin-top:100px;
    }

    #contact .container{
        text-align: left;
    }

    #contact .section-header p{
        line-height: 24px;
    }

    #contact .section-content{
        /* margin-bottom: 75px; */
        margin-bottom:calc(100vh/25);
    }

    footer p{
        padding: 10px 0;
        font-size: 8px;
        line-height:20px;
        font-weight:500;
    }

    footer{
        margin-top: -40px;
         /* margin-top:calc(100vh/-10); */
    }
}

@media (min-width: 768px) { /* Tailwind md breakpoint */
    :root{        
        --viewport-content:768px;
        --side-padding:32px;
        --ratio:0.515;
    }

    .container {
        max-width: 768px;
        padding-right: 32px;
        padding-left: 32px;
        --ratio:calc(0.97*0.72);
    }

    .layout-grid-container{
        padding: 0 var(--side-padding);
        width: var(--viewport-content);
    }

    .grid{
        gap:16px;
    }

    .carousel-container button, #backToTop, #toggleGrid{
        transform: scale(0.5) translateY(-50px);
        transition: all 0.3s ease;
    }

    ul li {
        list-style-position: inside;
        margin-left: unset;
    }

    #mobile-menu a{
        font-size:13px;
        font-weight: 500;
    }

    #mainNav{
        background-color:unset;
    }

    #mainNav .container{
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
        margin-left: auto;
        margin-right: auto;
    }

    #mainLogo{
        height: 1.5rem;
    }

    .logo-transition{
        display: flex;
    }

    button.carousel-btn-left, button.carousel-btn-right{
        display:initial;
    }

    .accordion-header > span:nth-child(1)
    {
        display:initial;
    }

    .scroll-indicator{
        display: initial;
    }

    section h1, #home h1, #contact h1 {
        font-size:48px;
        line-height:60px;
        font-weight:600;
        margin-bottom:10px;
    }

    #about h1{
        margin-bottom: 20px;
    }

    #about .intro{
        height:700px;
    }

    /* #rnd .rnd-areas, */
    .description, #rnd .section-header{ 
        padding-top:160px;
    }

    #portfolio h1, #services h1{
        padding-bottom: 30px;
    }

    #home p{
        font-size:14px;
        line-height:26px;
        font-weight:600;
    }

    #services .slogan{
        margin-top: 160px;
        margin-bottom:16rem;
    }
  
    section h2 {
        font-size:24px;
        line-height:36px;
        font-weight:600;
    }

    #about .row h2{
        padding-bottom:40px;
    }

    section p{
        font-size:14px;
        line-height:26px;
        font-weight:500;
    }

    #badge1 span{
        display:inline;
    }

    #rating, #services .section-header, #portfolio, #rnd .section-header, #clients div .container, section:not(#clients) .description, #approach, #clients{
        padding-bottom: 124px;
    }

    #rating .signature-section h3, .text-overlay {
        font-size:16px;
        line-height:26px;
        font-weight:500;
    }
    
    .accordion-header{
        font-size:14px;
        line-height:26px;
        font-weight:500;
    }

    .video-container p {
        font-size: 14px;
        line-height: 26px;
        font-weight: 600;
    }

    .video-container h2{
        font-size:30px;
        line-height:42px;
        font-weight: 600;
    }

    #stats .number{
        font-size:66px;
        line-height:78px;
        font-weight:500;
        margin-bottom: 0px;
      }
  
    #stats .signature {
        font-size:14px;
        line-height:26px;   
        font-weight:500;
      } 

    #rating .signature-section p,  #rating .signature-section .year{
        font-size:10px;
        line-height:22px;
        font-weight:400;
    }

    /* Цифры рейтинга */
    #rating .signature-section .flex span:nth-child(1){ 
        font-size:60px;
        line-height:72px;
        font-weight:500; 
    }

    .rnd-areas{
        margin-top:0;
    }

    /*Показатель роста пунктов рейтинга*/
    #rating .signature-section .flex span:nth-child(2){
        font-size:16px;
        line-height:28px;
        font-weight:400; 
    }

    #services .container{
        background-size:calc(var(--viewport-content)*0.46); /* Ensure the image scales properly 900px*/
        background-position: top 250px right calc(var(--viewport-content)*0.09); /* Slightly to the right and moved down from the top */
    }

    /* .timeline-line{
        bottom: 90px;
    } */

    @supports (-webkit-touch-callout: none) {
        /* iOS-specific styles */
        /* .timeline-line {
            bottom: 90px;
          } */
    }

    .timeline-item{
        width:round(down,calc((var(--viewport-content) - var(--gap) - var(--side-padding)*2) / 2),1px);
        scroll-snap-align: start;
        transition: opacity 0.3s ease; /* Smooth opacity transition */
    }

    .carousel-item {
        width:calc(var(--carousel-item-width)*var(--ratio));
        height:calc(var(--carousel-item-height)*var(--ratio));
    }

    .carousel-logo img{
        height: calc(var(--carousel-logo-img-width)*var(--ratio)*1.2);
        max-width:calc(var(--carousel-logo-img-max-width)*var(--ratio)*1.2);
    }

    .clients-carousel{
        gap: calc(170px*var(--ratio)); /* Equal gap between logos */
        height: 170px;
    }

    .image-sequence{
        display: unset !important;;
    }

    #rnd .video-container p{
        margin-bottom: 0.5rem;
    }

    /*Список услуг второго уровня*/
    .accordion-content{
        font-size:14px;
        line-height:26px;
        font-weight:500;
    }

    .accordion-header.active span, .contact-item{
        font-size:20px;
        line-height:28px;
        font-weight:500;
    }

    .cycling-words{
        font-size:48px;
        line-height:68px;
        font-weight:600;
    }

    #cycling-words-vert{
        height:500px;
    }

    .image-sequence-container{
        display:unset;
    }

    .copy-container .highlight-copy{
        position:unset;
        opacity: 0;
    }

    .highlights .container{
        margin-top: unset;
    }

    #contact .grid div{
        margin:10px auto;
        text-align: center;
    }

    #contact h1{
        margin-top:160px;
    }

    #contact .container{
        text-align: center;
    }

    #contact .section-content{
        margin-bottom: unset;
    }

    #contact .grid{
        padding-top: 124px;
    }

    footer p{
        padding: 10px 0;
        font-size: 10px;
        line-height:22px;
        font-weight:400;
    }

    footer{
        margin-top:-20px;
    }

}

@media (min-width: 1024px) { /* Tailwind lg breakpoint */

    :root{
        --viewport-content:1024px;
        --side-padding:40px;
        --ratio:calc(0.97*0.72);
    }

    .container {
        max-width: 1024px;
    }

    .layout-grid-container{
        padding: 0 var(--side-padding);
        width: var(--viewport-content);
    }

    .grid{
        gap:20px;
    }

    .carousel-container  button, #backToTop, #toggleGrid, .scroll-indicator{
        transform: scale(0.5) translateY(-45px);
        transition: all 0.3s ease;
    }

    #mobile-menu a{
        font-size:13px;
        font-weight: 500;
    }

    section h1, #home h1, #contact h1 {
        font-size:58px;
        line-height:70px;
        font-weight:600;
        margin-bottom:10px;
    }

    #about h1{
        margin-bottom: 20px;
    }

    #about .intro h2{
        width:1000px;
        margin-left:auto;
        margin-right:auto;
    }

    #portfolio h1, #services h1{
        padding-bottom: 30px;
    }

    #home p{
        font-size:16px;
        line-height:28px;
        font-weight:600;
    }
  
    section h2 {
        font-size:26px;
        line-height:38px;
        font-weight:600;
    }

    section p{
        font-size:16px;
        line-height:28px;
        font-weight:500;
    }

    #badge1 span{
        display:inline;
    }

    #rating, #services .section-header, #portfolio, #rnd .section-header, #clients div .container, section:not(#clients) .description, #approach, #clients{
        padding-bottom: 124px;
    }

    #rating .signature-section h3, .accordion-header, .text-overlay {
        font-size:18px;
        line-height:30px;
        font-weight:500;
    }
    
    .accordion-header{
        font-size:14px;
        line-height:26px;
        font-weight:500;
    }

    .video-container p {
        font-size: 20px;
        line-height: 32px;
        font-weight: 600;
    }

    .video-container h2{
        font-size:40px;
        line-height:52px;
        font-weight: 600;
    }

    #stats .number{
        font-size:76px;
        line-height:88px;
        font-weight:500;
        margin-bottom: 0px;
      }
  
    #stats .signature {
        font-size:16px;
        line-height:28px;   
        font-weight:500;
      } 

    #rating .signature-section p,  #rating .signature-section .year{
        font-size:10px;
        line-height:22px;
        font-weight:400;
    }

    /* Цифры рейтинга */
    #rating .signature-section .flex span:nth-child(1){ 
        font-size:60px;
        line-height:72px;
        font-weight:500; 
    }

    .rnd-areas{
        margin-top:0;
    }

    /*Показатель роста пунктов рейтинга*/
    #rating .signature-section .flex span:nth-child(2){
        font-size:16px;
        line-height:28px;
        font-weight:400; 
    }

    #services .container{
        background-size:calc(var(--viewport-content)*0.46); /* Ensure the image scales properly 900px*/
        background-position: top 250px right calc(var(--viewport-content)*0.09); /* Slightly to the right and moved down from the top */
    }

    /* .timeline-line{
        bottom: 90px;
    } */

    @supports (-webkit-touch-callout: none) {
        /* iOS-specific styles */
        /* .timeline-line {
            bottom: 90px;
          } */
    }

    .timeline-item{
        width:round(down,calc((var(--viewport-content) - var(--gap) - var(--side-padding)*2) / 2),1px);
        scroll-snap-align: start;
        transition: opacity 0.3s ease; /* Smooth opacity transition */
    }

    .carousel-item {
        width:calc(var(--carousel-item-width)*var(--ratio));
        height:calc(var(--carousel-item-height)*var(--ratio));
    }

    .carousel-logo img{
        height: calc(var(--carousel-logo-img-width)*var(--ratio));
        max-width:calc(var(--carousel-logo-img-max-width)*var,--ratio);
    }

    .clients-carousel{
        gap: calc(170px*0.72); /* Equal gap between logos */
    }

    #rnd .video-container p{
        margin-bottom: 0.5rem;
    }

    /*Список услуг второго уровня*/
    .accordion-content{
        font-size:16px;
        line-height:28px;
        font-weight:400;
    }

    .accordion-header.active span, .contact-item{
        font-size:22px;
        line-height:30px;
        font-weight:500;
    }

    .cycling-words{
        font-size:64px;
        line-height:68px;
        font-weight:600;
    }

    @media (min-height: 300px) {

        #contact .grid{ 
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        #contact .grid div{
            margin:0 0;
            text-align: left;
        }

    }

    @media (min-height: 1024px) {

        #contact .grid{ 
            grid-template-columns: repeat(1, minmax(0, 1fr));
        }

        #contact .grid div{
            margin:28px auto;
            text-align: center;
        }

    }

    footer p{
        font-size: 12px;
        line-height:31px;
        font-weight:500;
    }
}

@media (min-width: 1440px) { /* Tailwind xl breakpoint */
    :root{
        --viewport-content:1440px;
        --side-padding:70px;
    }

    .container {
        max-width: 1440px;
        padding-right: 70px;
        padding-left: 70px;
    }

    .layout-grid-container{
        padding: 0 var(--side-padding);
        width: var(--viewport-content);
    }

    .grid{
        gap:20px;
    }

    .carousel-container  button, #backToTop, #toggleGrid, .scroll-indicator{
        transform: scale(0.8) translateY(-30px);
        transition: all 0.3s ease;
    }

    #mainNav a{
        font-size:13px;
        font-weight: 500;
    }

    section h1, #home h1, #contact h1 {
        font-size:64px;
        line-height:68px;
        font-weight:600;
    }
  
    section h2 {
        font-size:30px;
        line-height:42px;
        font-weight:600;
    }

    section p{
        font-size:19px;
        line-height:31px;
        font-weight:500;
    }

    #home h1{
        padding-bottom: 0.75rem;
        margin-bottom: 1.5rem;
    }

    #home p{
        font-size:20px;
        line-height:32px;
        font-weight:600;
    }

    #about h2{
        width:1024px;
    }

      #about .intro h2 {
        width: 1100px;
        margin-left: auto;
        margin-right: auto;
    }


    .video-container p {
        font-size: 20px;
        line-height: 32px;
        font-weight: 600;
    }

    .video-container h2{
        font-size:40px;
        line-height:52px;
        font-weight: 600;
    }

    #stats .number{
        font-size:86px;
        line-height:98px;
        font-weight:500;
    }

    #stats .number {
        margin-left: -.4rem;
    }

    #stats .signature{
        font-size:19px;
        line-height:31px;   
        font-weight:500;
    }

    #rating .signature-section h3, .accordion-header, .text-overlay{
        font-size:20px;
        line-height:32px;
        font-weight:500;
    }

    #rating .signature-section div:nth-child(2) span:nth-child(1){
        font-size:70px;
        line-height:82px;
        font-weight:500; 
    }

    #rating .signature-section div:nth-child(2) span:nth-child(2){
        font-size:22px;
        line-height:22px;
        font-weight:400; 
    }

    #rating .signature-section p, #rating .signature-section .year{
        font-size:13px;
        line-height:25px;
        font-weight:400; 
    }

    #services .container{
        background-size:calc(var(--viewport-content)*0.46); /* Ensure the image scales properly 900px*/
    }

    #services .slogan{
        height:500px;
    }

    .carousel-item {
        width:calc(var(--carousel-item-width)*0.72);
        height:calc(var(--carousel-item-height)*0.72);
    }

    .carousel-logo img{
        height: calc(var(--carousel-logo-img-width)*0.72);
        max-width:calc(var(--carousel-logo-img-max-width)*0.72);
    }

    .clients-carousel{
        gap: calc(170px*0.72); /* Equal gap between logos */
    }

    #timelineScroll{
        height:250px;
    }

    .accordion-content{
        font-size:17px;
        line-height:29px;
        font-weight:400;
    }

    .accordion-header.active span, .contact-item{
        font-size:28px;
        line-height:40px;
        font-weight:500;
    }

    .cycling-words{
        font-size:64px;
        line-height:68px;
        font-weight:600;
    }

    .section-design .highlight-copy {
        width: 270px;
    }

    #contact .grid{ 
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #contact .grid div{
        text-align: left;
        margin:0 0;
    }

    footer p{
        font-size: 12px;
        line-height:31px;
        font-weight:500;
    }
}

@media (min-width: 1920px) { /* Tailwind 2xl breakpoint */

    :root{
        --viewport-content:1920px;
        --side-padding:70px;
    }

    .container {
        max-width: 1920px;
        padding-right: 70px;
        padding-left: 70px;
    }

    .layout-grid-container{
        padding: 0 var(--side-padding);
        width: var(--viewport-content);
    }

    .grid{
        gap:20px;
    }

    .carousel-container  button, #backToTop, #toggleGrid, .scroll-indicator{
        transform: scale(1) translateY(-23px);
        transition: all 0.3s ease;
    }

    #mainNav a{
        font-size:14.4px;
        font-weight: 500;
    }

    section h1, #home h1, #contact h1 {
        font-size:86px;
        line-height:90px;
        font-weight:600;
    }
  
    section h2 {
        font-size:42px;
        line-height:50px;
        font-weight:600;
    }

    section p{
        font-size: 26px;
        line-height: 38px;
        font-weight: 500;
    }

    #home h1{
        padding-bottom: 0.75rem;
        margin-bottom: 1.5rem;
    }

    #home p{
        font-size:26px;
        line-height:38px;
        font-weight:600;
    }

    #about h2{
        width:1024px;
    }

      #about .intro h2 {
        width: 1100px;
        margin-left: auto;
        margin-right: auto;
    }


    .video-container p {
        font-size: 26px;
        line-height: 30px;
        font-weight: 600;
    }

    .video-container h2{
        font-size:56px;
        line-height:70px;
        font-weight: 600;
    }

    #stats .number{
        font-size:118px;
        line-height:122px;
        font-weight:500;
    }

    #stats .number {
        margin-left: -.5rem;
    }

    #stats .signature{
        font-size:26px;
        line-height:34px;
        font-weight:500;
    }

    #rating .signature-section h3, .accordion-header, .text-overlay{
        font-size:28px;
        line-height:40px;
        font-weight:500;
    }

    #rating .signature-section .flex span:nth-child(1){
        font-size:96px;
        line-height:108px;
        font-weight:500; 
    }

    #rating .signature-section .flex span:nth-child(2){
        font-size:32px;
        line-height:32px;
        font-weight:400; 
    }
    #rating .signature-section p, #rating .signature-section .year{
        font-size:18px;
        line-height:28px;
        font-weight:400;
    }

    #services .container{
        background-size:calc(var(--viewport-content)*0.46); /* Ensure the image scales properly 900px*/
    }

    #services div.slogan{
        height:500px;
    }

    .carousel-item{
        width: var(--carousel-item-width);
        height: var(--carousel-item-height); /* Portrait orientation */
    }

    .carousel-logo img{
        height: var(--carousel-logo-img-width);
        max-width:var(--carousel-logo-img-max-width);
    }

    .clients-carousel{
        gap: 170px; /* Equal gap between logos */
    }

    #timelineScroll{
        height:250px;
    }

    .accordion-content{
        font-size:24px;
        line-height:36px;
        font-weight:400;
    }

    .accordion-header.active span, .contact-item{
        font-size:38px;
        line-height:50px;
        font-weight:500;
    }

    .cycling-words{
        font-size:64px;
        line-height:68px;
        font-weight:600;
    }

    .section-design .highlight-copy {
        width: 400px;
    }

    footer p{
        font-size: 16px;
        line-height:38px;
        font-weight:500;
    }
}