
/*Colour Variables*/
:root {
    --primary-color: #007bff;
    --secondary-color: #6c757d;
    --background-color: #f8f9fa;
    --text-color: #333;
    --link-color: #007bff;
    --button-color: #007BFF;
    --button-hover-color: #0068d8;
}

*{
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

body {
    font-family: Arial, sans-serif;
    color: var(--text-color);
    background-color: var(--background-color);
}

/* Reset some default styles */
body, h1, h2, h3, p {
    margin: 0;
    padding: 0;
}

/* Header styles */
.logo-banner {
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    height: 70px;
}

.logo img{
    width: 150px;
    height: auto;
}

.contact-info {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 20px; 
}

.phone-number {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.material-symbols-outlined {
    font-size: 24px;
}

button {
    background-color: var(--button-color);
    color: #fff;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-right: 10px;
}

.phone-number {
    font-weight: bold;
}

/* Navigation styles */
.nav {
    background-color: #333;
    color: #fff;
    padding: 20px 20px;
}

.nav ul {
    list-style: none;
    display: flex;
}

.nav li {
    margin-right: 20px;
    padding: 10px;
}

.nav li:hover {
    background-color: #aaa;
    border-radius: 50px;
}

a {
    text-decoration: none;
    color: #fff;
}

/* Hero banner styles */
.hero-banner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: url(../img/template-images/kitchen-banner-1.webp);
    background-size: cover;
    background-position: center;
    text-align: center;
    color: #000;
    padding: 100px 0;
    height: 750px;
}

.banner-items{
    background-color: #fff;
    padding: 50px;
    border-radius: 10px;
    opacity: 90%;
}

h1 {
    font-size: 36px;
    margin-bottom: 20px;
}

p {
    font-size: 18px;
    margin-bottom: 40px;
}

.cta-button {
    background-color: #007BFF;
    color: #fff;
    padding: 15px 30px;
    font-size: 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    width: 400px;
    text-align: center;
}

.cta-buttons .cta-link{
    display: flex;
    justify-content: center;
    background-color: white; /* Makes the buttons stand out against the CTA background */
    color: #007bff; /* Text color matches the CTA background for consistency */
    padding: 10px 20px; /* Sufficient padding for clickability */
    cursor: pointer; /* Indicates the button is clickable */
    font-size: 16px; /* Ensures text is readable */
    border-radius: 5px; /* Modern, rounded corners */
    transition: background-color 0.3s, color 0.3s; /* Smooth transition for hover effect */
    width: 300px; /* Fixed width for uniform button size */
    align-items: center;
}

.cta-buttons .cta-link:hover {
    background-color: #333;
    color: #fff;
}

/* Media query for screens 1200px and below */
@media (max-width: 1200px) {

    .contact-cta .cta-buttons {
        margin-bottom: 100px;
        display: flex;
        flex-direction: column;
        align-items: center; /* Center buttons horizontally */
    }

    .contact-cta .cta-buttons > * {
        width: 100%; /* Full width buttons for better touch targets */
        margin-bottom: 10px; /* Add some space between stacked buttons */
    }

    .contact-cta .cta-buttons > *:last-child {
        margin-bottom: 0; /* Remove margin from the last button to avoid extra space */
    }
}


/* Adjust button styles for screens narrower than 768px */
@media (max-width: 768px) {

    .nav ul {
        justify-content: center;
        align-items: center; /* Centers items when stacked */
    }

    .nav li {
        margin: 10px 0; /* Adjusts margin for vertical spacing */
    }

    .book-consult-btn, .cta-button {
        padding: 10px 20px; /* Reduce padding */
        font-size: 0.9rem; /* Reduce font size */
        border-radius: 4px; /* Optionally adjust border radius */
    }
}

/* Further adjustments for even smaller screens, like mobile phones */
@media (max-width: 480px) {
    .book-consult-btn, .cta-button {
        padding: 8px 15px; /* Further reduce padding for very small screens */
        font-size: 0.8rem; /* Further reduce font size for better fit */
    }
}













/* About Section */
.about-section {
    display: flex;
    align-items: center;
    padding: 20px;
    background-color: var(--background-color);
    flex-direction: row; /* Ensure default flex direction is row */
}

.about-section img {
    width: 50%;
    transition: transform 0.3s ease;
    margin-right: 20px;
    border-radius: 5px;
    flex-shrink: 0; /* Prevent the image from shrinking */
}

.about-section img:hover {
    transform: scale(1.05);
}

.about-description {
    flex: 1;
}

.about-description p, .about-description h2 {
    margin-bottom: 20px;
    margin-left: 0; /* Adjust margin as needed */
}

.about-description a {
    color: var(--link-color);
    text-decoration: none;
    border-bottom: 1px solid var(--link-color);
    padding-bottom: 2px;
    transition: color 0.3s ease;
}

.about-description a:hover {
    color: darken(var(--link-color), 15%);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .about-section {
        flex-direction: column; /* Stack the content vertically */
        align-items: flex-start; /* Align items to the start */
    }

    .about-section img {
        width: 100%; /* Full width for the image */
        margin-right: 0; /* Remove margin-right */
        margin-bottom: 20px; /* Add some space between the image and the text */
    }

    .about-description {
        width: 100%; /* Allow the description to take full width */
    }

    .about-description p, .about-description h2 {
        margin-left: 0; /* Reset margin-left if previously set */
    }
}


body > div.contact-cta > div > button {
    margin: 0px;
}


/* Consultancy CTA */
.consultancy-cta {
    background-image: url('../img/template-images/bedroom.webp');
    position: relative;
    text-align: center;
    margin: 10px 0;
    height: 600px;
    background-size: cover;
    background-position: center;
    overflow: hidden; /* Add this to prevent any child element from causing scrollbars */
}

.consultancy-cta .cta-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; /* Use 100% width for full coverage */
    height: 100%;
    background-color: rgba(255, 255, 255, 0.5);
    transition: transform 0.5s ease;
}

/* Use transform for initial off-screen state */
.consultancy-cta h2,
.consultancy-cta p,
.consultancy-cta button {
    transform: translateX(-100%);
    transition: transform 0.5s ease-out;
}

/* Correct the initial transform for overlay if needed */
.consultancy-cta .cta-overlay.slide-in {
    transform: translateX(0);
}

.consultancy-cta h2 {
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translateX(-50%) translateX(-100%); /* Center horizontally and then move off-screen */
}

.consultancy-cta p {
    top: 30%;
    left: 50%;
    max-width: 60%; /* Adjusted for better readability */
    transform: translateX(-50%) translateX(-100%);
    font-size: 1em;
    position: absolute;
}

.consultancy-cta button {
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translateX(-50%) translateX(-100%);
    width: auto; /* Auto width to fit content */
    padding: 10px 20px;
}

/* Slide-in effect for elements */
.consultancy-cta h2.slide-in,
.consultancy-cta p.slide-in,
.consultancy-cta button.slide-in {
    transform: translateX(-50%) translateX(0); /* Center horizontally and slide in */
}

/* Hover effect for button */
.consultancy-cta button:hover {
    background-color: var(--button-hover-color);
}




.quality-cta {
    display: flex;
    flex-direction: row; /* Default layout is row */
    justify-content: space-between; /* Aligns the heading and buttons on opposite sides */
    align-items: center; /* Centers items vertically */
    padding: 50px 20px; /* Spacing inside the CTA container */
    background-color: #007bff; /* A more popping color than gray */
    color: white; /* Ensures text is easily readable */
    height: 200px;
}

.quality-cta h2 {
    margin: 0 0 0 100px; /* Adjusted margin for alignment */
    font-size: 30px; /* Responsive font size */
}

.quality-cta-buttons {
    display: flex;
    flex-direction: row; /* Default layout is row */
    gap: 10px; /* Ensures space between buttons */
    height: 50px; /* Fixed height for buttons container */
    margin: 0px 150px 0 0; /* Adjusted margin for alignment */
}

.quality-cta-buttons button {
    background-color: white; /* Makes the buttons stand out against the CTA background */
    color: #007bff; /* Text color matches the CTA background for consistency */
    border: 2px solid white; /* Adds a modern border */
    padding: 10px 20px; /* Sufficient padding for clickability */
    cursor: pointer; /* Indicates the button is clickable */
    font-size: 16px; /* Ensures text is readable */
    border-radius: 5px; /* Modern, rounded corners */
    transition: background-color 0.3s, color 0.3s; /* Smooth transition for hover effect */
    width: 300px; /* Fixed width for uniform button size */
}

.quality-cta-buttons button:hover {
    background-color: #333; /* Darker shade for hover state */
    color: white; /* Maintains contrast with the hover background */
    border-color: #0056b3; /* Border color transitions with the background */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .logo-banner .cta-button{
        display: none;
    }

    .quality-cta {
        flex-direction: column; /* Stacks elements vertically on smaller screens */
        align-items: center; /* Centers items horizontally */
        text-align: center; /* Centers text */
        justify-content: center;
        height: 300px;
    }

    .quality-cta h2 {
        margin: 0 0 20px 0; /* Removes left margin and adds space below heading */
    }

    .quality-cta-buttons {
        flex-direction: column; /* Stacks buttons vertically */
        margin: 0; /* Resets right margin */
    }
}


#bookingModal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 50%; 
    top: 50%;
    transform: translate(-50%, -50%);
    width: 700px;
    min-height: 600px;
    background-color: rgba(0,0,0,0.8);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1); 
    border-radius: 8px;
    overflow: hidden; 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    padding: 20px;
}


#bookingModal .modal-content {
    margin: 20px;
    padding: 20px;
    width: 80%; 
    height: 600px;
    max-width: 880px; 
}

#bookingModal .modal-content h2{
    margin-bottom: 30px;
    color: #fff;
}

#bookingModal .close-button {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

#bookingModal .close-button:hover,
#bookingModal .close-button:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

/* Style for form inputs and textarea */
#consultationForm input[type="text"],
#consultationForm input[type="email"],
#consultationForm input[type="tel"],
#consultationForm input[type="date"],
#consultationForm textarea {
    width: 100%; 
    padding: 10px; /* Adequate padding for typing comfort */
    margin: 8px 0; /* Margin for spacing out elements */
    display: inline-block; /* Allows for proper spacing and alignment */
    border: 1px solid #ccc; /* Subtle border color */
    border-radius: 4px; /* Rounded corners for a modern look */
    box-sizing: border-box; /* Border and padding included in width */
}

/* Style adjustments for the textarea to accommodate more text */
#consultationForm textarea {
    height: 150px; /* Height adjustment for message input */
    resize: vertical; /* Allows the user to resize vertically */
}

/* Styling the submit button for a more engaging appearance */
#consultationForm input[type="submit"] {
    background-color: #007bff; /* Green background for visibility */
    color: white; /* Text color for contrast */
    padding: 14px 20px; /* Padding for a larger, more clickable area */
    margin: 8px 0; /* Margin for spacing */
    border: none; /* No border for a button-like appearance */
    border-radius: 4px; /* Rounded corners */
    cursor: pointer; /* Changes cursor to indicate clickability */
    width: 100%; /* Full width to match input fields */
}

/* Hover effect for the submit button to indicate interactivity */
#consultationForm input[type="submit"]:hover {
    background-color: #0056b3; /* Darker shade of green on hover */
}

#bookingModal label{
    color: #fff;
}























.projects {
    display: grid;
    grid-template-columns: repeat(12, 1fr); /* Create a finer grid system */
    gap: 20px;
    padding: 20px;
}

.top-projects-row, .bottom-projects-row {
    display: contents; /* Treat children as if they're direct descendants of the parent */
}

.project-item.small {
    grid-column: span 3; /* Small items take up 3 of 12 columns */
}

.project-item.medium {
    grid-column: span 4; /* Medium items take up 4 of 12 columns */
}

.project-item.large {
    grid-column: span 5; /* Large items take up 5 of 12 columns */
}

.project-item {
    position: relative;
    height: 300px;
    background-size: cover;
    background-position: center;
    border-radius: 8px;
    overflow: hidden;
}

.project-info {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.5s ease;
}

.project-item:hover .project-info {
    opacity: 1;
}

.project-btn {
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
    text-align: center;
}

.project-btn:hover {
    background-color: #0056b3;
}

.project-1 {
    background-image: url(../img/kitchens/kitchen-cupboards-white-and-brown.webp);
}

.project-2 {
    background-image: url(../img/kitchens/kitchen-cupboards-cherry-wood.webp);
}

.project-3 {
    background-image: url(../img/bathrooms/bathroom-cupboard-dark-wood-DB.webp);
}

.project-4 {
    background-image: url(../img/bathrooms/bathroom-cupboard-modern-double-basin.webp);
}

.project-5 {
    background-image: url(../img/furniture-and-features/furniture-and-features-stairwell.webp);
}

.project-6 {
    background-image: url(../img/bathrooms/bathroom-cupboard-modern-grey.webp);
}

/* Responsive adjustments */
@media (max-width: 768px) {

    /* Hide all project items except the first one */
    .projects .bottom-projects-row .project-item{
        display: none;
    }

    /* Hide all project items except the first one */
    .projects .project-item:not(:first-child) {
        display: none;
    }

    .projects {
        grid-template-columns: repeat(1, 1fr);
    }

    .project-item.small, 
    .project-item.medium, 
    .project-item.large {
        grid-column: span 1; /* Make all items span full width */
    }

    .project-item {
        height: auto; /* Adjust height automatically */
        min-height: 200px; /* Ensure there's a minimum height for each item */
    }

    .project-info {
        opacity: 1; /* Optionally make project info always visible on mobile */
    }
}


/*----------------------------------------------------------------- Testimonial Section -------------------------------------------------------*/

.testimonials-section {
    display: flex;
    align-items: center;
    padding: 20px;
    margin: 0 50px 0 0;
}

.testimonials-image-container {
    position: relative;
    display: inline-block; /* This will make the container's size adapt to the image */
    margin-right: 20px;
    border-radius: 5px;
    overflow: hidden; /* Ensures the overlay and image respects border-radius */
}

.testimonials-image-container img {
    height: 500px;
    transition: transform 0.3s ease;
    display: block; /* Removes bottom spacing/margin of the image */
}

.testimonials-image-container:hover img {
    transform: scale(1.05);
}

.testimonials-image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; /* Covers the entire width of the container */
    height: 100%; /* Covers the entire height of the container */
    background-color: rgba(255, 255, 255, 0.1); /* White with 50% opacity */
    pointer-events: none; /* Allows clicking through the overlay */
}

.testimonials-slider {
    width: 70%;
    position: relative;
    height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.testimonial-item {
    width: 100%;
    position: absolute;
    opacity: 0; /* Start fully transparent */
    transition: all 0.5s ease-in-out;
    text-align: center;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center; /* Ensure text content is centered */
    align-items: center; /* Align items in the middle */
}

/* Adjust keyframes to simply fade in and out without moving vertically */
@keyframes testimonialIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes testimonialOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

.testimonial-item.active {
    animation: testimonialIn 0.5s forwards;
}

.testimonial-item.exit {
    animation: testimonialOut 0.5s forwards;
}

/* Adjustments for mobile view */
@media (max-width: 768px) {
    .testimonials-image-container {
        display: none; /* Hide image container on mobile */
    }

    .testimonials-slider {
        margin: 0;
    }

    .testimonials-section {
        display: flex;
        justify-content: center;
        text-align: center;
        margin: 0px;
        height: 300px;
    }
}


/*------------------------------------------------------------------ Contact Call To Action --------------------------------------------------------*/


.contact-cta {
    display: flex;
    flex-direction: row; /* Default layout is row */
    justify-content: space-between; /* Aligns the heading and buttons on opposite sides */
    align-items: center; /* Centers items vertically */
    background-color: #007bff; /* A more popping color than gray */
    color: white; /* Ensures text is easily readable */
    margin-top: 20px; /* Adds space between this CTA and whatever is above it */
    height: 300px;
}

.contact-cta h2 {
    margin: 0 0 0 70px; /* Adjusted margin for alignment */
    font-size: 30px; /* Responsive font size */
}

.cta-buttons {
    display: flex;
    flex-direction: row; /* Default layout is row */
    gap: 10px; /* Ensures space between buttons */
    height: 50px; /* Fixed height for buttons container */
    margin: 0px 70px 0 0; /* Adjusted margin for alignment */
}

.cta-buttons button {
    background-color: white; /* Makes the buttons stand out against the CTA background */
    color: #007bff; /* Text color matches the CTA background for consistency */
    padding: 10px 20px; /* Sufficient padding for clickability */
    cursor: pointer; /* Indicates the button is clickable */
    font-size: 16px; /* Ensures text is readable */
    border-radius: 5px; /* Modern, rounded corners */
    transition: background-color 0.3s, color 0.3s; /* Smooth transition for hover effect */
    width: 300px; /* Fixed width for uniform button size */
}

.cta-buttons button:hover {
    background-color: #333; /* Darker shade for hover state */
    color: white; /* Maintains contrast with the hover background */
    border-color: #0056b3; /* Border color transitions with the background */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .contact-cta {
        flex-direction: column; /* Stacks elements vertically on smaller screens */
        align-items: center; /* Centers items horizontally */
        text-align: center; /* Centers text */
        justify-content: center;
        height: 300px;
    }

    .contact-cta h2 {
        margin: 0 0 20px 0; /* Removes left margin and adds space below heading */
    }

    .cta-buttons {
        flex-direction: column; /* Stacks buttons vertically */
        margin: 0; /* Resets right margin */
    }
}


/*---------------------------------------------------------------------- Footer Section ---------------------------------------------------------*/


.footer {
    display: flex;
    justify-content: space-between;
    padding: 20px;
    background-color: #333;
    color: white;
    height: 300px;
}

.footer-column {
    flex: 1;
    padding: 10px;
    flex-direction: column;
    text-align: center;
}

.footer-column p{
    font-size: 15px;
}

.footer-logo {
    max-width: 150px; 
    margin-bottom: 10px;
    align-items: left;
    border-radius: 20px;
}

.footer-column h3 {
    margin-bottom: 30px;
}

.footer-text {
    text-align: center;
    font-size: 15px;
    margin: 0;
}

.footer-column ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.footer-column ul li {
    margin-bottom: 10px;
}

.footer-column ul li a {
    color: white;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-column ul li a:hover {
    color: #aaa;
}

.footer-column div a {
    margin-right: 10px;
    font-size: 24px; /* Adjust size as needed */
}

.cta-button {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #0056b3;
}

/* Copyright Footer */
.copyright-footer {
    text-align: center;
    background-color: #222;
    color: white;
    margin: 0;
    padding: 20px;
}

.copyright-footer p{
    margin: 0;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .footer {
        display: none;
        flex-direction: column;
        align-items: center;
    }

    .footer-column {
        margin-bottom: 20px;
    }

    .footer-column .cta-button{
        display: none;
    }
}


/* --------------------------------------------------------------------- About Page -----------------------------------------------------------*/


/* Hero banner styles */
.about-hero-banner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: url(../img/template-images/bedroom-hero.webp);
    background-size: cover;
    background-position: center;
    text-align: center;
    color: #000;
    padding: 100px 0;
    height: 750px;
}

.about-banner-items{
    display: flex;
    justify-content: center;
    flex-direction: column;
    background-color: #fff;
    padding: 10px;
    border-radius: 10px;
    opacity: 90%;
}

.about-banner-items h1{
    margin-top: 30px;
}

.about-description{
    margin: 0 20px 0 0;
}

.about-description > h2{
    margin: 0 0 30px 30px;
    font-size: 30px;
}

.about-description > p {
    margin: 0 0 70px 30px;
}








.south-african-manufacturing {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 50px;
    background-color: #f5f5f5; /* Light background to enhance readability */
}

.content-wrapper {
    max-width: 50%;
}

.content-wrapper h2 {
    font-size: 2.5rem;
    color: #007bff; /* A color that stands out yet feels professional */
    margin-bottom: 20px;
}

.content-wrapper p {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-bottom: 20px;
}

.cta-button {
    background-color: #007bff;
    color: white;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.cta-button:hover {
    background-color: #0056b3;
}

.image-wrapper {
    max-width: 45%;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); /* Soft shadow for depth */
    align-items: center;
}

.image-wrapper img {
    width: 100%;
    border-radius: 5px;
    transition: transform 0.3s ease;
}

.image-wrapper img:hover{
    transform: scale(1.05);
}

@media (max-width: 1200px){
    .about-section {
        flex-direction: column;
        text-align: center;
    }

    .about-section img {
        display: none;
    }

    .about-description {
        order: 1; /* Ensure description comes after the image */
    }

    .about-description p,
    .about-description h2 {
        margin: 10px 0; /* Adjust margins for smaller screens */
        padding: 0 20px 10px 20px;
    }

    .south-african-manufacturing {
        flex-direction: column;
        text-align: center;
        padding: 20px; /* Adjust padding for smaller screens */
    }

    .content-wrapper, .image-wrapper {
        max-width: 100%;
        padding: 0; /* Reset padding if needed */
    }

    .image-wrapper {
        order: -1; /* Ensures the image is above the text */
        margin-bottom: 20px; /* Adds some space between the image and the text */
    }

    .content-wrapper h2, .content-wrapper p, .cta-button {
        margin: 10px auto; /* Center content and reduce margin */
    }

    .content-wrapper {
        padding: 0 20px; /* Adds padding to the sides for better readability on small screens */
    }

    .content-wrapper p{
        margin-bottom: 50px;
        font-size: 16px;
    }
}

@media (max-width: 768px) {
    .south-african-manufacturing {
        flex-direction: column;
        text-align: center;
    }

    .content-wrapper, .image-wrapper {
        max-width: 100%;
    }

    .image-wrapper {
        margin-top: 20px;
    }
}






.value-hooks {
    display: flex; 
    justify-content: space-between; 
    width: 100%;
}

.accordion-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 50%;
}

.accordion-item {
    background-color: #f5f5f5;
    border: solid 1px #ddd;
    margin-bottom: 10px;
    border-radius: 5px;
    overflow: hidden;
    width: 90%;
}

.accordion-title {
    background-color: #686868;
    color: white;
    padding: 15px;
    width: 100%;
    text-align: left;
    border: none;
    outline: none;
    transition: background-color 0.3s ease;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.accordion-title:hover {
    background-color: #0056b3;
}

.accordion-content {
    padding: 20px 15px;
    display: none; /* Hide content initially */
    background-color: white;
    transition: max-height 0.3s ease;
}

.accordion-image-container {
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    position: relative;
}

.accordion-image-container img {
    width: 100%;
    height: auto;
    border-radius: 5px;
}

.image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.6);
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
}

.image-overlay h3 {
    margin: 0 0 10px;
    font-size: 24px;
    color: #000;
    font-weight: 700;
}

.image-overlay p {
    text-align: center;
    max-width: 80%;
    color: #000;
    font-weight: 500;
}

/* Additional styles for the Material Icons */
.material-symbols-outlined {
    font-variation-settings:
        'FILL' 0,
        'wght' 400,
        'GRAD' 0,
        'opsz' 24;
    transition: transform 0.3s ease; /* Smooth transition for icon rotation */
}

/* Adjust the accordion container width for responsiveness */
@media (max-width: 768px) {
    .value-hooks {
        flex-direction: column; /* Stack items vertically on small screens */
    }

    .accordion-container, .accordion-image-container {
        width: 100%; /* Ensure both elements are full-width on smaller screens */
    }

    .accordion-container {
        width: 100%; /* Make the accordion full width on smaller screens */
    }
    
    .accordion-image-container {
        width: 100%; /* Adjust image container width for smaller screens */
    }
}

/* --------------------------------------------------------------------- Contact Page -----------------------------------------------------------*/

.input-container {
    position: relative;
    margin-bottom: 20px;
}

.input-container label {
    position: absolute;
    bottom: 5px;
    left: 5px;
    background-color: #fff;
    border-radius: 20px;
    padding: 0 5px;
    transition: all 0.3s ease;
    pointer-events: none;
    transform-origin: left bottom;
    transform: translateY(100%);
    z-index: 1000;
}

.input-container input:focus + label,
.input-container input:not(:placeholder-shown) + label,
.input-container select:focus + label,
.input-container select:not([value='']):not([value='Please select']) + label,
.input-container textarea:focus + label,
.input-container textarea:not(:placeholder-shown) + label {
    transform: translateY(0%) scale(0.85);
    bottom: 30px;
    color: #333;
}

.input-container input,
.input-container select,
.input-container textarea {
    width: 100%;
    padding: 15px;
    margin-top: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    position: relative;
    z-index: 1;
}

.input-container select{
    padding: 0px;
}

.input-container select{
    height: 40px;
}

.input-container textarea{
    font-family: Arial, sans-serif;
    font-size: 1rem;
}

.contact-container {
    position: relative;
    background-image: url(../img/template-images/bedroom.webp);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    opacity: 70%;
}

.contact-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.5);
    z-index: 0;
}

.contact-container > * {
    position: relative;
    z-index: 1;
}

.contact-container:hover::before {
    background: rgba(255, 255, 255, 0.7);
}

.contact-form,
.address-section {
    flex: 1;
    margin: 20px;
    width: 45%; /* Adjusted width for smaller screens */
}

.contact-form-cta {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 50px 20px;
    background-color: #007bff;
    color: white;
    height: 300px;
}

.contact-form-cta h2{
    font-size: 50px;
}

.button {
    width: 100%;
}

.contact-card-container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;
}

.contact-card {
    background-color: rgba(122, 122, 122, 0.9);
    border: 1px solid #ddd;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    border-radius: 8px;
    padding: 30px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    background-color: rgba(0, 61, 114, 0.9);
}

.contact-card .contact-details a{
    color: #000;
}

.contact-card:hover .contact-details{
    color: #fff;
}

.contact-card:hover .contact-details h3{
    color: #fff;
}

.contact-card:hover .contact-details a{
    color: #fff;
}

.contact-details h3{
    color: #003b7a;
    text-shadow: 1px 1px 1px #ddd;
    font-size: 2.3rem;
    margin-bottom: 10px;
}

.contact-details{
    color: #000;
    font-weight: 500;
}

.contact-card .contact-details a i {
    font-size: 32px; /* Even larger icons */
    color: #000000; /* Default icon color */
    transition: color 0.3s ease; /* Smooth transition for color change */
    margin: 20px;
}

.contact-card:hover .contact-details a i {
    color: #fff; /* Icon color changes on hover */
}

/* Responsive adjustments for smaller screens */
@media screen and (max-width: 768px) {
    .input-container label {
        /* Adjust the label's position to be consistently at the top left */
        transform: scale(0.85) translateY(-125%); /* Adjust translateY value as needed */
        background-color: transparent; /* Ensure background doesn't cover the input border */
        padding: 0 5px; /* Maintain padding */
    }

    .input-container input:focus + label,
    .input-container input:not(:placeholder-shown) + label,
    .input-container select:focus + label,
    .input-container select:not([value='']):not([value='Please select']) + label,
    .input-container textarea:focus + label,
    .input-container textarea:not(:placeholder-shown) + label {
        /* Ensure label transforms for focused or filled fields remain consistent */
        transform: scale(0.85) translateY(-125%); /* Adjust transformation to ensure label stays at top */
        color: #333; /* Label color for focused or filled state */
    }

    /* Adjustments for the form and other elements as they stack */
    .contact-container {
        flex-direction: column;
        align-items: stretch;
    }

    .contact-form,
    .address-section {
        width: 100%;
        margin: 10px 0;
    }

    /* Other necessary adjustments for input, select, textarea sizes */
    .input-container input,
    .input-container select,
    .input-container textarea {
        /* Ensure full width and appropriate padding */
        width: 100%;
        margin-top: 15px; /* Space for the label to move above the input/select/textarea */
    }

    /* Further adjustments to the form layout or elements can be added here */
}


/* --------------------------------------------------------------------- Gallery Page -----------------------------------------------------------*/

/* Hero banner styles */
.gallery-hero-banner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: url(../img/template-images/bathroom-hero.webp);
    background-size: cover;
    background-position: center;
    text-align: center;
    color: #000;
    padding: 100px 0;
    height: 750px;
}
.bedroom-cupboard-banner {
    background-image: url(../img/template-images/bedroom-gallery-banner.webp);
    height: 400px;
    width: 100%;
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.bathroom-vanities-banner {
    background-image: url(../img/template-images/bathroom-gallery-banner.webp);
    height: 400px;
    width: 100%;
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.kitchen-cupboard-banner {
    background-image: url(../img/template-images/kitchen-gallery-banner.webp);
    height: 400px;
    width: 100%;
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.furniture-and-fixtures-banner {
    background-image: url(../img/template-images/furniture-and-fixtures-gallery-banner.webp);
    height: 400px;
    width: 100%;
    background-size: cover;
    background-position: center;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.4); /* White overlay with 50% opacity */
    z-index: 1; /* Ensure it's below the text */
}

.banner-heading {
    width: 350px;
    min-width: 350px;
    max-width: 350px;
    position: absolute;
    top: 50%; /* Center vertically */
    left: 50%;
    transform: translate(-50%, -50%); /* Adjust for precise centering */
    color: #fff;
    background-color: rgba(0, 0, 0, 0.5); /* For better readability */
    padding: 20px 20px;
    border-radius: 5px;
    z-index: 2; /* Ensure the text is above the overlay */
    text-align: center;
}

.banner-heading:hover{
    background-color: rgba(255, 255, 255, 0.5);
    color: #000;
}

.gallery-row {
    display: grid;
    grid-template-columns: 3fr 2fr; /* Adjusts the grid column sizes for the default layout */
    gap: 20px;
    align-items: start; /* Align items at the start of the grid area */
    padding: 20px 0 20px 0;
}

/* Adjust for the swapped layout */
.gallery-row.swapped {
    grid-template-columns: 2fr 3fr; /* Swaps the column sizes for the swapped row */
}

.gallery-item {
    height: 300px; /* Example fixed height */
    overflow: hidden; /* Hide parts of the image that overflow the container */
    position: relative;
    width: 100%;
    cursor: pointer; /* Indicates that the item is clickable */
    transition: transform 0.3s ease; /* Smooth transition for the transform effect */
}

.gallery-item:hover{
    cursor: pointer;
}

.gallery-item::before {
    display: block;
    content: "";
    width: 100%;

}

.gallery-item img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease; /* Smooth transition for the transform effect */
}

.gallery-item:hover img {
    transform: scale(1.05); /* Slightly scale up the image on hover */
    cursor: pointer;
}

.gallery-item.large {
    grid-row: span 1; /* Ensures the large image only takes the necessary space */
    display: flex;
    position: relative;
}

.gallery-item.large img {
    width: 100%;
    height: auto;
}

.small-images {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Creates a 2x2 grid for smaller images */
    gap: 10px;
}

.small-images .gallery-item.small {
    display: flex;
    position: relative;
}

.small-images .gallery-item.small img {
    width: 100%;
    height: auto;
}


.gallery-item.large, .small-images {
    height: 100%; /* Ensure the height of large images and small images container is consistent */
}

.gallery-item.large img, .small-images .gallery-item.small img {
    width: 100%;
    height: 100%; /* Adjust the height to 100% of the parent */
    object-fit: cover; /* Cover the area without losing the aspect ratio */
}

@media (max-width: 768px) {
    .gallery-row, .gallery-row.swapped {
        grid-template-columns: 1fr; /* Ensures single column layout for all gallery rows */
    }

    .gallery-row .small-images, .gallery-row.swapped .small-images {
        grid-template-columns: 1fr !important; /* Forces single column layout for small images */
    }

    .gallery-item, .gallery-item.large, .gallery-row .small-images .gallery-item.small, .gallery-row.swapped .small-images .gallery-item.small {
        width: 100%; /* Full width for all gallery items */
        height: auto; /* Auto height for proper aspect ratio */
    }

    .gallery-item img {
        position: relative; /* Resets positioning for responsiveness */
        width: 100%; /* Full width for images */
        height: auto; /* Auto height for proper aspect ratio */
        top: 0; /* Reset top position */
        left: 0; /* Reset left position */
    }

    .small-images .gallery-item.small {
        margin-bottom: 10px; /* Adds spacing between stacked small images */
    }

    .small-images .gallery-item.small:last-child {
        margin-bottom: 0; /* Removes bottom margin from the last small image */
    }
}



/*------------------------------------------------- Styles for the gallery modal -------------------------------------------------- */

/* Style the modal (background) */
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 100; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.9); /* Black w/ opacity */
}

/* Modal Content */
.modal-content {
    margin: auto;
    display: block;
    width: 80%;
    max-width: 700px;
}

/* The Close Button */
.close {
    position: absolute;
    top: 15px;
    right: 35px;
    color: #fff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}

/* Add Animation */
.modal-content {
    -webkit-animation-name: zoom;
    -webkit-animation-duration: 0.6s;
    animation-name: zoom;
    animation-duration: 0.6s;
}

@-webkit-keyframes zoom {
    from {-webkit-transform:scale(0)} 
    to {-webkit-transform:scale(1)}
}

@keyframes zoom {
    from {transform:scale(0)} 
    to {transform:scale(1)}
}


/*------------------------------------------------- Styles for the mega menu -------------------------------------------------- */

.nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

.nav .mega-menu li {
    position: relative;
    width: 230px;
    width: auto; /* Adjust width to fit content */
}

.nav .mega-menu a {
    display: block;
    padding: 10px 20px;
    text-decoration: none;
    color: #333;
}

.nav .mega-menu li:hover {
    background-color: #0056b3;
    cursor: pointer;
    width: 95%;
}

.nav .mega-menu li:hover > a {
    color: #fff;
}

.mega-menu {
    position: absolute;
    background-color: #f9f9f9;
    width: 50%;
    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
    padding: 20px;
    z-index: 1000;
    visibility: hidden;
    margin-top: 10px;
    display: flex;
    justify-content: flex-start; /* Align items to the start */
    flex-wrap: wrap; /* Allow items to wrap as needed */
}

.mega-menu .categories, .menu-image, .menu-description {
    flex: 1;
    display: flex;
    justify-content: center;
}

.mega-menu .categories {
    flex-direction: column; /* Ensure the categories are listed in a column */
}

.menu-description p {
    font-size: 0.9rem;
}

.mega-menu img {
    max-width: 100%;
    height: auto;
}

.projects-dropdown:hover .mega-menu {
    visibility: visible;
}

.menu-description {
    padding: 20px 20px 0 20px;
    color: #000;
}

/* Responsive adjustments for mobile */
@media (max-width: 768px) {
    .nav .projects-dropdown > a {
        /* Prevent default link behavior on mobile */
        pointer-events: none;
    }

    .mega-menu {
        position: fixed;
        top: var(--nav-height); /* Adjust based on your navbar's height */
        left: 0;
        width: 100%;
        display: none; /* Initially hidden */
        flex-direction: column;
        justify-content: flex-start;
        padding: 20px 0;
        background-color: #f9f9f9;
        box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
        z-index: 1000;
        transform: translateY(-100%);
    }

    /* Show mega menu when toggled via JavaScript */
    .mega-menu.active {
        display: flex;
        transform: translateY(0);
    }
}



/*------------------------------------------------------------------ Main content starts here ----------------------------------------------------------*/

/* Main container adjustments for responsiveness */
.main-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Center cards within the container */
    gap: 30px; /* Space between cards */
    padding: 20px; /* Padding around the grid */
}

/* Assign background images to categories with specific grid-area assignments */
.kitchen {
    grid-area: largeA; /* Top left, larger */
    background-image: url('../img/kitchens/kitchen-cupboards-white-and-brown.webp');
}

.bathroom {
    grid-area: smallA; /* Top right, smaller */
    background-image: url('../img/bathrooms/bathroom-cupboard-dark-wood-DB.webp');
}

.bedroom {
    grid-area: largeB; /* Bottom left, smaller */
    background-image: url('../img/bedrooms/bedroom-dressing-area-mohogany.webp');
}

.furniture {
    grid-area: smallB; /* Bottom right, larger */
    background-image: url('../img/furniture-and-features/wall-tv-display.webp');
}

/* Styling for each category card */
.category-card {
    width: calc(50% - 40px); /* Adjust width for responsiveness, accounting for gap */
    height: 300px; /* Fixed height for all cards */
    background-size: cover; /* Cover the card with the background image */
    background-position: center; /* Center the background image */
    color: white; /* Text color */
    text-decoration: none; /* No underline on links */
    display: flex; /* Use Flexbox for content alignment */
    justify-content: center; /* Center content horizontally */
    align-items: center; /* Center content vertically */
    position: relative; /* Needed for positioning the overlay */
    overflow: hidden; /* Hide overflow to maintain card look */
    margin: 10px; /* Margin around cards for white space */
    border-radius: 8px; /* Rounded corners for the cards */
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
    transition: transform 0.3s ease, box-shadow 0.3s ease; /* Smooth transitions for hover effects */
}

.category-card:hover {
    transform: translateY(-5px); /* Lift card on hover */
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); /* Enhanced shadow effect on hover */
}

/* Adjusting overlay for better readability and aesthetics */
.category-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3); /* Lighter semi-transparent black background for better readability */
    border-radius: 8px; /* Rounded corners for the overlay */
    z-index: 1; /* Ensure overlay is below text content */
}

/* Text content styling */
.category-content {
    position: relative; /* Raise above the ::before overlay */
    z-index: 2; /* Higher than the overlay's z-index */
    font-size: 1.5rem; /* Adjust font size for visibility */
    padding: 0 20px; /* Padding for text to not touch the edges */
    text-align: center; /* Center the text within the card */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .category-card {
        width: calc(100% - 20px); /* Full width cards on smaller screens */
        height: 250px; /* Adjust height for better proportion on small screens */
    }
}




/*-------------------------------------------------------- Underline effects for headings style -------------------------------------------------------*/

.main-heading{
    padding: 30px;
}
/* General styling for h2 within main-heading class */
.main-heading h2 {
    text-align: center;
    font-size: 3rem; /* Example size, adjust as needed */
    color: #333;
    position: relative;
    display: inline-block;
}

/* Underline effect using ::after for h2 elements within specific classes */
.about-title h2::after,
.consultancy-title h2::after,
.projects-title h2::after,
.testimonials-title h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%; /* Keep starting from the center */
    width: 0; /* Initial state with no underline visible */
    height: 3px; /* Control the thickness of the underline here */
    background-color: #000;
    transition: width 0.5s ease-in-out, left 0.5s ease-in-out; 
    transform: translateX(-50%); /* Center the underline */
}

/* Trigger for expanding underline when .slide-in is added */
.about-title h2.slide-in::after,
.consultancy-title h2.slide-in::after,
.projects-title h2.slide-in::after,
.testimonials-title h2.slide-in::after {
    width: 100%;
    left: 50%; /* Maintain center alignment */
    transform: translateX(-50%); /* Ensure symmetry */
}

/* Ensure the parent containers center their children */
.about-title, .consultancy-title, .projects-title, .testimonials-title, .main-heading {
    text-align: center;
}



/* --------------------------------------------------------- Footer responsiveness --------------------------------------------------------------------- */

@media (max-width: 1200px) {
    .contact-cta {
        height: 250px;
    }
}
/* Media query for screens 951px and below */
@media (max-width: 951px) {
    .contact-cta {
        display: flex;
        flex-direction: column;
        align-items: center; /* Center align items for better visual appeal */
        height: 350px;
        justify-content: center;
    }

    .contact-cta h2 {
        margin-bottom: 20px; /* Add some space between the heading and buttons */
        margin: 20px;
    }

    .cta-buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin: 0px;
        width: 200px;
    }

    body > div.contact-cta > div > a{
        width: 200px !important;
    }

    /* Adjust button styles for stacking */
    .cta-buttons button,
    .cta-buttons .cta-button {
        margin: 10p 0; /* Add margin to top and bottom for spacing between stacked buttons */
        width: auto; /* Adjust width as necessary, could use 'auto' for content width or '100%' for full width */
        font-size: 18px;
    }
}




















@media (max-width: 1200px) {
    body {
      font-size: 0.95rem; /* Slightly reduce the base font size */
    }
  
    .container {
      padding: 1rem; /* Adjust padding for slightly narrower screens */
    }
  
    h1 {
      font-size: 2rem; /* Adjust heading sizes accordingly */
    }
  
    .navigation, .footer {
      padding: 0.5rem 1rem; /* Adjust navigation and footer padding */
    }
    
    /* Adjust other elements as needed */
  }
  