@font-face {
    font-family: 'Offside';
    src: url('fonts/Offside-Regular.ttf') format('truetype');
    font-weight: 400; /* Regular weight */
    font-style: normal; /* Normal style */
    font-display: swap;
}

@font-face {
    font-family: 'DM Sans Variable'; /* A clear family name */
    src: url('fonts/DMSans.ttf') format('truetype-variations');
    /* Define the range of weights this file supports */
    font-weight: 100 900; 
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DM Sans Variable'; /* Use the SAME family name */
    src: url('fonts/DMSans-Italic.ttf') format('truetype-variations');
    /* Define the range of weights this file supports */
    font-weight: 100 900; 
    font-style: italic; /* Important: set the style to 'italic' */
    font-display: swap;
}

p {
    font-family: 'DM Sans Variable', sans-serif;
    font-weight: 300; /* A custom, intermediate weight */
}

html {
    font-family: 'Offside';
    min-height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    color: #2168ad;
    scroll-behavior: smooth;
}

.main_bg {
    top: 0;
    left: 0;
    width:100%;
    height:100%;
    margin: 0;
    padding: 0;
    position: fixed;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: -1;
}


/* POTRAIT ORIENTATION --------------------------------------------------------------------------------------*/

body {
    --is-landscape: 0;
}

p {
    font-size: 12px;
}

@media (orientation: portrait) {
    .incompatible-screen-size-message {
        display: none;
    }

    .content-wrapper {
        display: block;
    }

    .company-name {
        text-align: center;
        font-size: 20px;
        font-weight: bold;
        padding: 3vh;
        padding-bottom: 1vh;
        color: #1A5289;
    }
    .main_box {
        margin: 2vh auto auto auto; /* Top 1.5%, center horizontally */
        width: 100%; /* Use width for simpler centering (max-width is better but width is simpler here) */
        
        /* Add padding-bottom to ensure the 'paper' look extends below content */
        border-radius: 10px;
        background-color: white;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
    }

    .flex-header {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .flex-header a {
        color: #576b80;
    }

    .flex-menu {
        flex: 1;
        margin: 5px;
        padding: 5px;
        font-size: 12px;
        text-align: center;
    }

    .hero-section {
        height: 60vh;
        width: 100%;
        margin-top: 1vh;
        
        position: relative; 
        overflow: hidden;

        display: flex;
        justify-content: center;
        align-items: center;
    }

    .scrolling-image-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 310%;
        height: 100%;
        
        /* Layout */
        display: flex;
        flex-wrap: nowrap;
        
        /* --- ANIMATION --- */
        animation: scroll-left 40s linear infinite alternate; 
        z-index: 0;
    }

    .scrolling-image-wrapper img {
        width: 100%; 
        height: 100%;
        object-fit: cover;
        flex-shrink: 0;
    }

    @keyframes scroll-left {
        0% {
            transform: translateX(-1%);
        }
        100% {
            transform: translateX(-67%); 
        }
    }

    .fade-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(50deg, rgba(225, 225, 255, 1), rgba(225, 225, 255, 0.9), rgba(255, 255, 255, 0));
        z-index: 1;
    }

    .hero-text {
        position: absolute;
        bottom: 0;
        left: 0;
        padding: 2%;
        z-index: 2;
    }

    .hero-text p {
        font-size: 16px;
    }

    .services-section {
        padding: 5px;
        text-align: center;
    }

    .services-main-box-flex {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;

        gap: 10px;
        margin: 20px auto;

        overflow-x: scroll;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 10px;
    }

    .services-main-box-services {
        justify-content: flex-start;
    }

    .services-sub-box-flex {
        background-color: #f1f1f1;
        min-width: 100px;
        width: 150px; /* Set a fixed width to ensure consistency */
        flex-shrink: 0;
        margin: 2px;
        padding: 10px;
        border-radius: 5px;
    }

    .services-sub-box-flex-js {
        height: 95%;
    }

    /* Optional: Style the text */
    .services-sub-box-flex h4 {
        color: #1A5289; /* Example color */
        margin-top: 10px;
    }

    .invert-div {
        background-color: #2168ad;
        color: white;
    }

    .invert-flex-sub {
        background-color: #17497a;
        color: #ddddff;
    }

    .invert-flex-sub h4 {
        color: white;
    }

    .project-images {
        top: 0;
        left: 0;
        width:100%;
        height: auto;
        margin: 0;
        padding: 0;
        object-fit: cover;
        background-size: cover;
        background-repeat: no-repeat;
        z-index: -1;
        aspect-ratio: 1 / 1;
        border-radius: 5px;
    }

    .contact-section {
        padding: 5px;
        text-align: center;
    }

    .footer {
        margin: 0 auto; /* Center horizontally */
        text-align: center;
        padding: 20px;
    }

    /* Targets the scrollbar track itself */
    .services-main-box-flex::-webkit-scrollbar {
        height: 8px; /* Make the scrollbar track taller to be more noticeable */
        background-color: #00000010; /* Light background for the track */
        display: block; /* Attempt to force display */
        border-radius: 5px;
    }

    /* Targets the movable thumb/bar */
    .services-main-box-flex::-webkit-scrollbar-thumb {
        background-color: #00000020; /* Gray color for the thumb */
        border-radius: 5px;
        border: 2px solid #ffffff05; /* Border adds a visual gap from the track */
        visibility: visible !important; /* Attempt to force visibility */
    }

    /* Targets the corners (optional) */
    .services-main-box-flex::-webkit-scrollbar-corner {
        background: transparent;
    }

    .whatsapp-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 40px;
        height: 40px;
        width: 150px;
        font-size:15px;
        color: #25D366; /* WhatsApp green */
        border-radius: 20px;
        border: 2px solid #25D366;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #25D36620 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 3s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .whatsapp-button:hover {
        background-color: #25D366;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

    .call-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 40px;
        height: 40px;
        width: 150px;
        font-size: 15px;
        color: #2168ad;
        border-radius: 20px;
        border: 2px solid #2168ad;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #2168ad15 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 6s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .call-button:hover {
        background-color: #2168ad;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

    .email-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 40px;
        height: 40px;
        width: 150px;
        font-size:15px;
        color: #17497a; /* WhatsApp green */
        border-radius: 20px;
        border: 2px solid #17497a;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #17497a10 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 9s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .email-button:hover {
        background-color: #17497a;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

   @keyframes glass-movement {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
    }
}
/* LANDSCAPE ORIENTATION ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/

@media only screen and (min-height: 700px) and (min-width: 1024px) {

    body {
        --is-landscape: 1;
    }

    .incompatible-screen-size-message {
        display: none;
    }

    .content-wrapper {
        display: block;
    }

    p {
        font-weight: 200;
    }

    .main_box {
        margin: 2vh auto auto auto; /* Top 1.5%, center horizontally */
        width: 100%; /* Use width for simpler centering (max-width is better but width is simpler here) */
        border-radius: 10px;
        background-color: white;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
        max-width: 1200px;
    }

    .company-name {
        text-align: center;
        font-size: 40px;
        font-weight: bold;
        color: #1A5289;
        padding-top: 40px;
    }

    .flex-header {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        padding: 20px;
        padding-bottom: 30px;;
    }

    .flex-header a {
        text-decoration: none;
        color: #576b80;
    }

    .flex-menu {
        flex: 1;
        font-size: 20px;
        text-align: center;
    }

    .hero-section {
        height: 60vh;
        width: 100%;
        margin-top: 0px;
        
        position: relative; 
        overflow: hidden;

        display: flex;
        justify-content: center;
        align-items: center;
    }

    .hero-section h1 {
        font-size: 40px;
    }

    .scrolling-image-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 310%;
        height: 100%;
        
        /* Layout */
        display: flex;
        flex-wrap: nowrap;
        
        /* --- ANIMATION --- */
        animation: scroll-left 40s linear infinite alternate; 
        z-index: 0;
    }

    .scrolling-image-wrapper img {
        width: 100%; 
        height: 100%;
        object-fit: cover;
        flex-shrink: 0;
    }

    @keyframes scroll-left {
        0% {
            transform: translateX(-1%);
        }
        100% {
            transform: translateX(-67%); 
        }
    }

    .fade-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(20deg, rgba(225, 225, 255, 1), rgba(225, 225, 255, 0.8), rgba(255, 255, 255, 0));
        z-index: 1;
    }

    .hero-text {
        position: absolute;
        bottom: 0;
        left: 0;
        padding: 2%;
        z-index: 2;
        width: 40%;
    }

    .hero-text p {
        font-size: 20px;
    }

    .services-section {
        padding: 5px;
        text-align: center;
    }

    .services-section h2 {
        font-size: 35px;
        margin: 50px;
    }

    .services-section h4 {
        font-size: 20px;
        padding-top: 20px;
        padding-bottom: 10px;
    }

    .services-section p {
        font-size: 18px;
    }

    .services-main-box-flex {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;

        gap: 10px;
        margin: 20px auto;

        overflow-x: scroll;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 10px;
    }

    .services-main-box-services {
        justify-content: center;
        overflow: hidden;
    }

    .services-sub-box-flex {
        background-color: #f1f1f1;
        min-width: 100px;
        width: 300px; /* Set a fixed width to ensure consistency */
        flex-shrink: 0;
        margin: 2px;
        padding: 10px;
        border-radius: 5px;
    }

    .services-sub-box-flex-js {
        height: 95%;
    }

    /* Optional: Style the text */
    .services-sub-box-flex h4 {
        color: #1A5289; /* Example color */
        margin-top: 10px;
    }

    .invert-div {
        background-color: #2168ad;
        color: white;
    }

    .invert-flex-sub {
        background-color: #17497a;
        color: #ddddff;
    }

    .invert-flex-sub h4 {
        color: white;
    }

    .project-images {
        top: 0;
        left: 0;
        width:100%;
        height: auto;
        margin: 0;
        padding: 0;
        object-fit: cover;
        background-size: cover;
        background-repeat: no-repeat;
        z-index: -1;
        aspect-ratio: 1 / 1;
        border-radius: 5px;
    }

    .contact-section {
        padding: 5px;
        text-align: center;
        padding-bottom: 50px;
    }

    .contact-section h2 {
        font-size: 35px;
        margin: 50px;
    }

    .contact-section h5 {
        font-size: 20px;
        margin: 50px;
    }

    .footer {
        margin: 0 auto; /* Center horizontally */
        text-align: center;
        padding: 20px;
    }

    .footer p {
        font-size: 20px;
    }

    /* Targets the scrollbar track itself */
    .services-main-box-flex::-webkit-scrollbar {
        height: 8px; /* Make the scrollbar track taller to be more noticeable */
        background-color: #00000010; /* Light background for the track */
        display: block; /* Attempt to force display */
        border-radius: 5px;
    }

    /* Targets the movable thumb/bar */
    .services-main-box-flex::-webkit-scrollbar-thumb {
        background-color: #00000020; /* Gray color for the thumb */
        border-radius: 5px;
        border: 2px solid #ffffff05; /* Border adds a visual gap from the track */
        visibility: visible !important; /* Attempt to force visibility */
    }

    /* Targets the corners (optional) */
    .services-main-box-flex::-webkit-scrollbar-corner {
        background: transparent;
    }

    .whatsapp-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 70px;
        height: 70px;
        width: 300px;
        font-size:22px;
        color: #25D366; /* WhatsApp green */
        border-radius: 35px;
        border: 2px solid #25D366;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #25D36620 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 3s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .whatsapp-button:hover {
        background-color: #25D366;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

    .call-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 70px;
        height: 70px;
        width: 300px;
        font-size:22px;
        color: #2168ad;
        border-radius: 35px;
        border: 2px solid #2168ad;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #2168ad15 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 6s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .call-button:hover {
        background-color: #2168ad;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

    .email-button {
        font-family: 'DM Sans Variable', sans-serif;
        text-decoration: none;
        display: inline-block;
        line-height: 70px;
        height: 70px;
        width: 300px;
        font-size:22px;
        color: #17497a; /* WhatsApp green */
        border-radius: 35px;
        border: 2px solid #17497a;
        background-image: linear-gradient(
            45deg,
            white 0%,
            white 40%,
            #17497a10 50%,
            white 60%,
            white 100%
        );
        background-size: 200% 100%;
        animation: glass-movement 9s linear infinite;
        text-align: center;
        transition-duration: 0.4s;
    }

    .email-button:hover {
        background-color: #17497a;
        animation-play-state: paused;
        background-image: none;
        color: white;
        box-shadow: 0 0 10px rgba(33, 104, 173, 0.5);
    }

    @keyframes glass-movement {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }
}


@media only screen and (max-width: 1023px) and (orientation: landscape){
    .incompatible-screen-size-message {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 96%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        color: white;
        font-size: 24px;
        text-align: left;
        padding: 2%;
        padding-top: 40vh;
        z-index: 9999;
        background-image: linear-gradient(rgba(150, 0, 0, 1), rgba(0, 255, 255, 1)), url(pictures/error.jpg);
        background-position: top right;
        background-repeat: no-repeat;
        background-size: cover;
        background-blend-mode: multiply;
    }

    .incompatible-screen-size-message a {
        font-size: 12px;
    }

    .content-wrapper {
        display: none;
    }
}

@media only screen and (max-height: 699px) and (orientation: landscape){
    .incompatible-screen-size-message {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 96%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        color: white;
        font-size: 24px;
        text-align: left;
        padding: 2%;
        padding-top: 40vh;
        z-index: 9999;
        background-image: linear-gradient(rgba(150, 0, 0, 1), rgba(0, 255, 255, 1)), url(pictures/error.jpg);
        background-position: top right;
        background-repeat: no-repeat;
        background-size: cover;
        background-blend-mode: multiply;
    }

    .incompatible-screen-size-message a {
        font-size: 12px;
    }

    .content-wrapper {
        display: none;
    }
}