/*
Theme Name: 4ptree
Theme URI: http://4ptree.com
Author: Edmond Bibaj
Author URI: https://www.linkedin.com/in/eddibibaj/
Description: #
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: 4ptree
Tags: one-page, bootstrap, acf, responsive, portfolio
*/

/* Header Styles */
.site-header {
    background: transparent;
    padding: 1rem 0;
}

.site-header {
    position: -webkit-sticky; /* For Safari */
    position: sticky;
    top: 0;
    z-index: 1000; /* Ensure the header is above other content */
    background-color: #fff; /* Optional: Change to match your site's header background */
    border-bottom: 1px solid #11eb9a;
}

.navbar-collapse {
    margin-top: 30px;
}


.solution-details {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

.solution-item.active .solution-details {
    max-height: 1000px; /* Adjust as needed to fit content */
    opacity: 1;
}



.navbar-light .navbar-brand,
.navbar-light .navbar-nav .nav-link {
    color: #3d2255;
    text-transform: uppercase;
}

.navbar-light .navbar-toggler {
    color: rgba(0, 0, 0, .5);
    border: none !important;
}

.row {
    padding: 0 !important;
    margin: 0 !important;
}

a:hover {
    text-decoration: none !important;
}

#banner {
    background-size: cover;
    background-position: center;
    height: 680px; 
    display: flex;
    align-items: center; 
    justify-content: center; 
    text-align: center; 
    color: #ffffff; 
}

#banner .banner-heading {
    font-size: 65px;
    margin-bottom: 0em; 
}

#banner .banner-subheading {
    font-size: 65px; 
}

#banner .btn {
    background-color: #eee;
    border: none; 
  
}

#banner .btn:hover,
#banner .btn:focus {
    background-color: #fff
}

.who-we-are .small-text {
    font-size: 1rem; /* Adjust to match your design */
    color: #7D41F5 !important;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.who-we-are h2 {
    font-size: 2.5rem; /* Adjust to match your design */
    color: #002244; /* Primary text color */
    margin-bottom: 1rem;
}

.who-we-are .about-us-text {
    font-size: 1rem;
    color: #270A4B; /* Standard text color */
}

.who-we-are .image-column img {
    max-width: 100%; 
    height: auto; 
    width: auto; 
    max-height: 600px; 
}

.who-we-are .text-column .text-content {
    display: flex;
    flex-direction: column;
    justify-content: center; 
    height: 100%; 
}

.who-we-are .small-text,
.who-we-are h2,
.who-we-are .about-us-text {
    text-align: left; 
    margin: 0 0 10px; 
    color: #333; 
}

@media (max-width: 991px) {
    .who-we-are .image-column,
    .who-we-are .text-column .text-content {
        text-align: left; 
    }

    .who-we-are .image-column img {
        display: none; 
    }
}

.gradient-text {
    background: -webkit-linear-gradient(left, #7D41F5, #0DEA9B); /* For Safari 5.1 to 6.0 */
    background: linear-gradient(to right, #7D41F5, #0DEA9B); /* Standard syntax */
    -webkit-background-clip: text; /* For Safari */
    background-clip: text;
    color: transparent; 
    display: inline-block;
    font-size: 40px;
    line-height: 1.1;
}

/* Solutions Section Styles */
.solutions-section {
    background: linear-gradient(246.35deg, #41295A 0%, #2F0743 100%); 
    color: #FFFFFF;
    min-height: 100vh; 
}

.solutions-section .container {
    height: 100%;
}

/* Solutions Section */
.solutions-section {
    /* your existing styles */
}

/* Solutions List Styles */
.solutions-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.solution-item {
    display: flex;
    align-items: center;
    margin-bottom: 1.5em;
    border-bottom: 1px solid #58456f;
    padding-bottom: 25px;
}


.solution-item h3 {
    font-size: 40px; 
    color: #FFFFFF; 
    margin: 0; 
}

.solution-details {
    display: none; 
    color: #FFFFFF; 
    width: 80%;

}

.solution-toggle {
    text-decoration: none;
    color: #FFFFFF; 
}

.solution-toggle:hover,
.solution-toggle:focus {
}

.solution-icon {
    margin-left: 1em; 
    display: none; 
}

.solution-item.active .solution-icon {
    display: block; 
}

/* Responsive Styles */
@media (max-width: 768px) {
    .solution-item {
        text-align: left;
    }

    .solution-icon {
        margin-left: 0; 
        margin-top: 1em; 
    }
    
    .solution-item.active h3 {
        padding-left: 15px;
    }
    .clients-count {
        float: left !important;
    }
    .section-title {
    width: 100% !important;
    font-size: 40px !important;
}
}

@media (max-width: 768px) {
    .client-logo img {
        max-width: 80%;  /* Reduces the maximum width to better fit smaller screens */
        display: block;  /* Ensures the image is a block to enable margin auto */
        margin: 0 auto;  /* Centers the image horizontally within its container */
    }
}

.s-section-title {
    color: #13FFD5;
}

.solution-icon img {
    height: 200px; 
    width: auto; 
    display: block; 
}

.section-description {
    font-size: 25px;
    width: 60%;
}

.solution-item.active h3 {
    background: linear-gradient(to right, #7D41F5, #0DEA9B);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent; 
}

/* Clients Logos Styles */
.client-logo img {
    filter: grayscale(100%); /* Make the logo black and white */
    transition: filter 0.3s ease; /* Smooth transition for the filter property */
}

.client-logo img:hover {
    filter: none; /* Remove the filter on hover to show the logo in full color */
}


.clients-section {
    padding: 50px 0;
    background-color: #f8f9fa; 
}

.clients-count {
    font-size: 85px;
    margin-bottom: 1rem;
    float: right;
}

.client-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 70px; 
}

.client-logo img {
    max-width: 100%; 
    max-height: 100%; 
    object-fit: contain;
}

.section-title {
    width: 40%;
    font-size: 56px;
}

.client-logo {
    position: relative; 
    padding-right: 30px; 
}


.client-logo::after {
    content: '';
    position: absolute;
    top: 50%; 
    right: 0;
    width: 2px;
    height: 60px;
    background-color: #ccc;
    transform: translateY(-50%);
}

.clients-logos.no-gutters .client-logo {
    padding-right: 0; 
}

@media (min-width: 1200px) { 
    .clients-logos .client-logo:nth-child(4n)::after {
        display: none;
    }
}

@media (min-width: 992px) and (max-width: 1199px) { 
    .clients-logos .client-logo:nth-child(3n)::after {
        display: none;
    }
}

@media (min-width: 768px) and (max-width: 991px) { 
    .clients-logos .client-logo:nth-child(2n)::after {
        display: none;
    }
}

@media (max-width: 767px) { 
    .clients-logos .client-logo::after {
        display: none;
    }
}

/* Contact Section Styles */
.contact-section {
    display: flex;
    flex-wrap: wrap;
    box-shadow: 0 -83px 100px -61px rgb(83 248 214);
    border-top-left-radius: 58px;
    border-top-right-radius: 58px;
}

.contact-text {
    color: #fff;
    font-size: 30px;
}

.contact-banner {
    position: relative;
    flex: 0 0 50%; 
    max-width: 50%; 
    background-size: cover;
    background-position: center;
    color: #fff; 
    border-top-left-radius: 58px;

}

.banner-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 4rem;
    text-align: left; 
}

.banner-content h2 {
    font-size: 80px; 
}

.contact-form {
    flex: 0 0 50%; 
    max-width: 50%; 
    padding: 4rem; 
    background-color: #270B4B; 
    display: flex;
    align-items: center;
    justify-content: center; 
        border-top-right-radius: 58px;

    
}

.contact-form .wpcf7 {
    width: 100%; 
}

.contact-form .wpcf7-form {
    width: 100%; 
    padding: 0;
    box-sizing: border-box;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
    width: 100%; 
    padding: 1em;
    margin-bottom: 1em;
    background-color: transparent; 
    border: 1px solid #4A326A;
    color: #fff;
    font-size: 16px;
    text-transform: uppercase;
}

.contact-form input[type="submit"] {
    padding: 1em 2em;
    background-color: #270c4b;
    color: #fff;
    border: 2px solid transparent;
    position: relative;
    background-clip: padding-box;
    box-shadow: inset 0 0 0 1px rgba(13,234,155,0.7);
    transition: background-color 0.3s ease;
    cursor: pointer;
    text-transform: uppercase;
    display: inline-block;
    margin-bottom: 1em;
}




/* Responsive adjustments */
@media (max-width: 992px) {
    .contact-banner,
    .contact-form {
        flex: 0 0 100%; 
        max-width: 100%;
    }
    
    .contact-form {
        border-top-right-radius: 0px !important;
        
    }
    
    .padding-5 {
    padding: 1rem !important;
    }
    
    .footer-menu ul {
    list-style: none; /* No bullets */
    float: left !important;
    padding-left: 3rem !important;
    }
    .list-inline {
     padding-left: 2rem !important;
    }
}

/* General Footer Styles */
.footer-section {
  background-color: #FFFFFF; 
  color: #270B4B; 
  padding: 2rem 0; 
  font-size: 12px;
}

/* Logo Column */
.footer-logo {
  text-align: left; 
  padding-left: 2rem; 
  width: 200px;
}

/* Menu and Social Icons Columns */
.footer-menu,
.footer-social-icons {
  text-align: right; /* Align menu and icons to the right */
  padding-right: 2rem; /* Padding to the right of the menu and icons */
}

/* Footer Menu */
.footer-menu ul {
  list-style: none; /* No bullets */
  padding: 0; /* No padding */
}

.footer-menu li {
  display: inline-block; /* Place menu items in a line */
  margin-left: 1rem; /* Space between menu items */
}

.footer-menu a {
  color: #270B4B; /* Dark purple text color */
  text-decoration: none; /* No underline */
  transition: color 0.2s; /* Smooth color transition for hover effect */
  margin-right: 20px;
  text-transform: uppercase;
}

.footer-menu a:hover {
  color: #7367F0; /* Color change on hover */
}

/* Social Media Icons */
.footer-social-icons ul {
  list-style: none; /* No bullets */
  padding: 0; /* No padding */
  display: inline-block; /* Align icons in a line */
}

.footer-social-icons li {
  display: inline-block; /* Place icons in a line */
  margin-left: 1rem; /* Space between icons */
}

.footer-social-icons a {
  display: inline-block; /* Wrap anchor around image for proper alignment */
}

.footer-social-icons img {
  width: 24px; /* Fixed width for all icons */
  height: auto; /* Maintain aspect ratio */
  vertical-align: middle; /* Align icons vertically */
}

/* Subscribe and Address Section */
.footer-subscribe,
.footer-address {
  padding: 2rem 2rem; /* Padding around these sections */
}

.footer-subscribe .subscribe-form input[type="email"] {
  border: 1px solid #270B4B; /* Border color */
  border-radius: 20px; /* Rounded corners */
  padding: 0.5rem 1rem; /* Padding inside the input */
  color: #270B4B; /* Text color */
}

.footer-subscribe .subscribe-form button {
  border-radius: 20px; /* Rounded corners for the button */
  color: #FFFFFF; /* White text color */
  background-color: #270B4B; /* Background color */
}

.footer-address address {
  margin-top: 1rem; /* Space above address */
}

/* Bottom Row Styles */
.footer-bottom {
  display: flex; /* Use flexbox for alignment */
  justify-content: space-between; /* Space between items */
  align-items: center; /* Center items vertically */
  border-top: 1px solid #EEE; /* Light top border */
  padding-top: 1rem; /* Padding on top */
}

.footer-bottom-left,
.footer-bottom-right {
  padding: 0 2rem; /* Padding on both sides */
}

/* Footer Links */
.footer-bottom a {
  color: #270B4B; /* Dark purple text color */
  text-decoration: none; /* No underline */
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .footer-menu,
  .footer-social-icons {
    text-align: center; /* Center alignment for mobile */
    padding: 1rem 0; /* Padding for mobile */
  }
  
  .footer-bottom {
    flex-direction: column; /* Stack items on mobile */
  }
  
  .footer-bottom-left,
  .footer-bottom-right {
    padding: 1rem; /* Adjust padding for mobile */
  }
}

/* Social Media Icons Styles */
.social-media-icons img {
    width: auto; /* Set the width of the icons */
    height: 20px; /* Keep the height proportional */
}

.footer-menu {
    color: #270B4B;
    tex-transform: uppercase;
}

.footer-separator {
  height: 1px; /* Height of the separator line */
  background-color: #D8D8D8; /* Color of the line */
  margin: 20px 0; /* Spacing above and below the line */
}

.address {
    margin-bottom: 1rem;
    font-style: normal;
    line-height: inherit;
    float: right;
    width: 20%;
    text-align: right;
}

.fontcolor a {
    color: #270B4B;
}

/* Responsive banner adjustments */
@media (max-width: 768px) {
    #banner {
        height: 500px;  /* Adjust height to be auto on smaller screens */
        padding: 50px 20px;  /* Add padding to avoid text clipping */
    }

    #banner .banner-heading {
        font-size: 30px;  /* Reduce font size for smaller screens */
    }

    #banner .banner-subheading {
        font-size: 30px;  /* Adjust subheading size */
    }
}

/* Adjustments for 'who-we-are' section */
@media (max-width: 768px) {
    .who-we-are .text-column .text-content {
        padding: 20px;  /* Add padding for text content on mobile */
    }
}

/* Responsive solutions list and item details */
@media (max-width: 768px) {
    .solution-item h3 {
        font-size: 24px;  /* Reduce font size for solution titles */
    }

    .solution-details {
        padding: 15px;  /* Add padding to solution details for readability */
    }
}

/* Clients section responsiveness */
@media (max-width: 768px) {
    .client-logo img {
        max-width: 80%;  /* Reduce logo size on smaller screens */
    }
}

/* Contact section responsive adjustments */
@media (max-width: 768px) {
    .contact-banner, .contact-form {
        flex-basis: 100%;  /* Stack banner and form vertically on small screens */
        max-width: 100%;
    }

    .banner-content, .contact-text {
        padding: 0px;  /* Increase padding for better readability */
    }
    .banner-content h2 {
    font-size: 60px !important; 
}
}

/* Responsive Styles for Better Content Alignment and Padding on Mobile */
@media (max-width: 768px) {
    .solutions-section .row {
        display: flex;
        flex-direction: column;
    }

    .solutions-section .col-md-6 {
        width: 100%; /* Make sure each column takes full width */
        text-align: left; /* Ensures content is aligned to the left */
    }

    .solutions-section .col-md-6:first-child {
        order: 2; /* Keeps the image below the solutions list on mobile */
        padding: 0px;
    }

    .solutions-section .col-md-6:last-child {
        order: 1; /* Keeps the solutions list above the image on mobile */
    }

    /* Additional padding and text alignment for specific content within sections */
    .solution-content, .solution-details, .section-description, .s-section-title {
        padding: 0 15px; /* Adds padding to left and right */
        text-align: left; /* Aligns text to the left */
    }

    /* Ensure images are not too wide on mobile */
    img {
        max-width: 100%;
        height: auto;
    }
    
    .solution-icon img {
    height: auto; 
    width: auto; 
    display: block; 
    }
    .section-description {
        width: 100% !important;
    }
}


/* Aligning the title with the logos */
.clients-section .row.align-items-center {
    align-items: flex-start; /* Aligns items to the top */
}

/* Style for the title and count */
.clients-section .clients-count,
.clients-section .section-title {
    margin-bottom: 0; /* Removes margin below the title and count for tight alignment */
    padding-top: 0; /* Adjust padding to align title with logos */
}

/* Style adjustments for logo containers */
.clients-logos .client-logo {
    display: flex; /* Use flexbox for easy centering */
    justify-content: center; /* Center logo horizontally */
    align-items: center; /* Center logo vertically */
}

/* Media queries for responsive adjustments */
@media (max-width: 768px) {
    /* Adjusts padding and alignment on mobile */
    .clients-section .container,
    .clients-section .container-fluid {
        padding-left: 15px; /* Ensures padding is consistent on mobile */
        padding-right: 15px;
    }
}

.contact-banner {
    background-size: cover; /* Ensure the background covers the full area of the div */
    background-position: center; /* Center the background image */
}

@media (max-width: 992px) {
    .contact-banner {
        height: 722px;
        border-top-left-radius: 0px !important;
        border-top-right-radius: 0px !important;
    }
}


/* Responsive adjustments */
@media (max-width: 992px) {
    .contact-banner,
    .contact-form {
        flex: 0 0 100%; 
        max-width: 100%;
    }

    .banner-content {
        padding: 20px;  /* Increase padding for better readability on mobile */
    }
}

@media (min-width: 993px) {
    .contact-banner,
    .contact-form {
        flex: 0 0 50%;  /* Each takes half the width on larger screens */
        max-width: 50%;
    }
}

.padding-5 {
    padding: 3rem;
}
