/* ///////////////////    Preliminary   //////////////// */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


:root {
    --basecolor: rgba(60, 60, 60);
    --element-borders: 3px solid crimson;
    --accentcolor: rgba(4, 95, 99);
    font-size: 16px;

}

button {
    background: none;
    border: none;
    outline: none;
    box-shadow: none;
}

input[type="submit"] {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
}

.center_line {
    float: right;
    border-left: 2px solid rgb(251, 255, 0);
    margin-left: -1px;
    height: 600px;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: 0%;
    z-index: 999;
}

.anchor_style {
    text-decoration: none; /* Removes the underline */
    color: inherit; /* Inherits the text color from the parent element */
    font-weight: inherit; /* Ensures no bold styling is applied */
    cursor: text;

}


/*///////////////////////     Header Stuff    ///////////////////////*/


.header {
    /* border: var(--element-borders); */
    color: black;
    text-align: center;
    position: fixed;
    top: 0%;
    z-index: 999;
    width: 100dvw;
}

.header_background {
    /* border: var(--element-borders); */
    background-color: white;
    height: 3.5vw;
    width: 100dvw;
    max-height: 300px;

}

@media (max-width: 600px) {
    .header_background {
        height: 15vw;
    }
}


.header_triangle {
    /* border: var(--element-borders); */
    border-left: 49vw solid transparent;
    border-right: 49vw solid transparent;
    border-top: 50px solid rgb(255, 255, 255);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition: 0.6s ease-in-out;

}

.title_link {
    font-weight: inherit;
    color: inherit;
    text-decoration: none;

}

.header_text {
    /* border: var(--element-borders); */
    font-size: clamp(1.5rem, 4vw, 3rem);
    transition: font-size 0.7s ease-in-out;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
    top: 1vw;
    text-decoration: none;
}

@media (max-width: 600px) {
    .header_text {
        white-space: nowrap;
    }
}



.logo {
    /* border: var(--element-borders); */
    position: fixed;
    height: 4vw;
    transition: all 0.7s ease-in-out;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
    top: 5vw;
    min-height: 50px;
    opacity: 1;
}

@media (max-width: 600px) {
    .logo {
        top: 10vw;
    }
}


/*//////////////////////     Buttons     //////////////////////////*/


.mobile_call {
    /* border: var(--element-borders); */
    position: fixed;
    left: 30%;
    transform: translateX(-50%);
    top: 9vw;
}

.email_icon {
    /* border: var(--element-borders); */
    width: 50px;
    height: auto;
}

.phone_icon {
    /* border: var(--element-borders); */
    width: 50px;
    height: auto;
}

.mobile_email {
    /* border: var(--element-borders); */
    position: fixed;
    left: 70%;
    transform: translateX(-50%);
    top: 9vw;

}

.desktop_call {
    opacity: 0;
    color: black;
    background-color: white;
    border: 2px solid var(--accentcolor);
    padding: .3em .7em;
    text-align: center;
    font-size: clamp(0.8rem, 1.2vw, 1.5rem);
    position: fixed;
    left: 20%;
    transform: translateX(-50%);
    top: .8vw;
    transition: opacity 0.9s 0.3s;
    text-decoration-line: none;
    z-index: 999;
}


.desktop_email {
    opacity: 0;
    color: black;
    background-color: white;
    border: 2px solid var(--accentcolor);
    padding: .3em .7em;
    text-align: center;
    font-size: clamp(0.8rem, 1.2vw, 1.5rem);
    position: fixed;
    left: 80%;
    transform: translateX(-50%);
    top: .8vw;
    transition: opacity 0.9s 0.3s;
    text-decoration-line: none;
    z-index: 999;
    white-space: nowrap;
}


            @media (max-width: 600px) {
                .desktop_call {
                    display: none;
                }
            }
            @media (min-width: 768px) {
                .mobile_call {
                    display: none;
                }
            }

                @media (max-width: 600px) {
                    .desktope_mail {
                        display: none;
                    }
                }
                @media (min-width: 768px) {
                    .mobile_email {
                        display: none;
                    }
                }

            .desktop_email:hover {
                background-color: var(--accentcolor);
                color: white;
            }

            .desktop_call:hover {
                background-color: var(--accentcolor);
                color: white;
            }



/* ///////////////////      Body Stuff     /////////////////// */


.body_container {
    background-color: var(--basecolor);
}

.info_cards {
    /* border: var(--element-borders); */
    display: flex;
    text-align: center;
    margin: 3%;
    margin-top: 10vw;
    justify-content: space-between;
    font-size: clamp(1rem, 1.7vw, 2rem);
}

@media (max-width: 600px) {
    .info_cards {
        flex-direction: column;
        margin-top: 30vw;
    }
}

.location {
    flex: 1;
    margin: 10px;
    /* border: var(--element-borders); */
    box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.788);
    background-color: white;
    border-radius: 20px;
    padding: 20px;
}

.owner {
    flex: 1;
    margin: 10px;
    /* border: var(--element-borders); */
    box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.788);
    background-color: white;
    border-radius: 20px;
    padding: 20px;
}

.focus {
    flex: 1;
    margin: 10px;
    /* border: var(--element-borders); */
    box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.788);
    background-color: white;
    border-radius: 20px;
    padding: 20px;
}

/*///////////////////     Gallery Stuff      ///////////////////*/


.before_triangle {
        /* border: var(--element-borders); */
    border-left: 49vw solid transparent;
    border-right: 49vw solid transparent;
    border-top: 50px solid var(--basecolor);
    top: -1px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.after_triangle {
        /* border: var(--element-borders); */
    border-left: 49vw solid transparent;
    border-right: 49vw solid transparent;
    border-bottom: 50px solid var(--basecolor);
    bottom: -1px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.sections {
        /* border: var(--element-borders); */
    margin-bottom: 30vh;
    padding-top: 100px;
    padding-bottom: 100px;
}
@media (max-width: 600px) {
    .sections {
        padding-top: 200px;
        padding-bottom: 200px;
    }
}


.stone_title {
        text-align: center;
        font-size: clamp(1.5rem, 4vw, 3rem);
        margin-top: 10rem;
        color: white;
}

.stone_background {
            /* border: var(--element-borders); */
        background-image: url(pictures/webpage-design-images/stone-background-image.png);
        position: relative;
        opacity: .9;
}


.tile_title {
        /* border: var(--element-borders); */
        text-align: center;
        font-size: clamp(1.5rem, 4vw, 3rem);
        margin-top: 20vw;
        color: white;
    }

.tile_background {
        background: url(pictures/webpage-design-images/tile-background-image.webp) repeat;
        position: relative;
    }


.wood_title {
        /* border: var(--element-borders); */
        text-align: center;
        font-size: clamp(1.5rem, 4vw, 3rem);
        margin-top: 10rem;
        color: white;
    }

.wood_background {
        background: url(pictures/webpage-design-images/wood-background-image.png) repeat;
        position: relative;
        background-size: cover;
    }


    .slideshow_container {
        /* border: var(--element-borders); */
        min-width: 60%; /* Use 60% of the viewport width */
        max-width: 800px; /* Limit the maximum width for large desktops */
        margin: auto; /* Center the container */
        position: relative; /* Required for absolute positioning of buttons */
    }
    
    @media (max-width: 600px) {
        .slideshow_container {
            width: 90%; /* Increase width for smaller screens */
            height: auto; /* Let the height adjust based on the image */
        }
    }
    
    .slide {
        display: none; /* Hide all slides by default */
    }
    
    .slide img {
        width: 100%; /* Ensure the image fills the slide */
        height: auto; /* Maintain aspect ratio */
        object-fit: cover; /* Ensure the image covers the slide area gracefully */
    }
    

  .flooring_caption {
    color: #fff;
    font-size: clamp(1rem, 4vw, 2rem);
    padding: 8px 12px;
    position: absolute;
    bottom: 8px;
    width: 100%;
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
  }
    
  .prev, .next {
    cursor: pointer;
    position: absolute;
    top: 50%;
    width: 6vw;
    height: 6vw;
    transform: translateY(-50%);
    z-index: 999;
  }


  .prev {
     /* border: var(--element-borders); */
    background-image: url(pictures/webpage-design-images/left-arrow-icon.svg);
    background-size: contain;
    left: -20%;
  }

  @media (max-width: 600px) {
    .prev {
        left: 5px;
    }}


  .next {
     /* border: var(--element-borders); */
    background-image: url(pictures/webpage-design-images/right-arrow-icon.svg);
    background-size: contain;
    right: -20%;
  }
  @media (max-width: 600px) {
    .next {
        right: 5px;
    }}
 
/*//////////////////    Reviews    //////////////////*/

.reviews {
    /* border: solid salmon; */
    max-width: 90vw;
    margin: auto;
    text-align: center;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
}

.review-header {
    color: white;
    font-size: 1.8rem;
    margin-bottom: 15px;
}

.review-container {
    /* border: solid blueviolet; */
    display: flex;
    flex-direction: row;
    gap: 15px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding-bottom: 10px;
    scrollbar-width: thin;
    scrollbar-color: #057491 #e0e0e0;
}

.review-card {
    /* border: solid teal; */
    background: #f4f4f4;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
    flex: 0 0 auto;
    min-width: 300px;
    max-width: 320px;
    min-height: 300px;
    max-height: 400px;
    text-align: left;
    display: flex;
    flex-direction: column;
}

@media (max-width: 600px) {
    .review-card {
        max-width: 80%;
        min-width: unset;
    }
    
}

/* Date styling */
.review-date {
    font-size: 0.9em;
    color: gray;
    margin-bottom: 5px;
}

.review-text {
    padding-right: 10px;
    flex-grow: 1;
    overflow-y: auto;
}

/* Author styling */
.review-author {
    font-weight: bold;
    margin-top: 10px;
}


/* ////////////////////    Footer    /////////////////// */


footer {
    /* border: var(--element-borders); */
    display: flex;
    justify-content: center; 
    align-items: center; 
    background-color: var(--basecolor);
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
    height: auto; 
}

.phone_footer_img {
    /* border: var(--element-borders);     */
    max-width: 100%; 
    height: auto; 
}

.email_footer_img {
    /* border: var(--element-borders); */
    max-width: 100%;
    height: auto;
}

