@import url('https://fonts.googleapis.com/css2?family=Urbanist:wght@100;500&display=swap');

/*
  1. Use a more-intuitive box-sizing model.
*/
*,
*::before,
*::after {
    box-sizing: border-box;
}

/*
    2. Remove default margin
  */
* {
    margin: 0;
}

/*
    Typographic tweaks!
    3. Add accessible line-height
    4. Improve text rendering
  */
body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

/*
    5. Improve media defaults
  */
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

/*
    6. Remove built-in form typography styles
  */
input,
button,
textarea,
select {
    font: inherit;
}

/*
    7. Avoid text overflows
  */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

/*
    8. Create a root stacking context
  */
#root,
#__next {
    isolation: isolate;
}

body {
    background-color: #FFF;
    min-height: 100vh;
}

h2, h3 {
    margin-bottom: 1.7rem;
    font-family: 'Urbanist', sans-serif;
    font-weight: 800;
}

h3, h4, h5, h6 {
    margin-bottom: 1.6rem;
}

p {
    margin-bottom:1.5rem;
    font-size: 1.2rem;
}

ul, ol {
    margin-bottom: 10px;
}

hr {
    margin: 1rem auto;
    width: 90%;
    display: block;
    height: 0;
    border-top: 1px solid #CCC;
}

.text-center {
    text-align: center;
}

header {
    border-top: 15px solid #64847d;
}

.video-header {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 0;
    padding-top: 25%; /* 4:1 Aspect Ratio */
}

.video-header video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: auto;
    transform: translate(-50%, -30%);
    min-width: 100%;
    min-height: 100%;
    z-index: -1;
}

.header-content {
    position: absolute;
    top: 0%;
    right: 0;
    text-align: center;
    color: white;
    height: 100%;
    width: 100%;
}

.header-content h1 {
    font-size: 3em;
}

.header-content p {
    font-size: 1.2em;
}
#header-tel a, #header-email a {
    font-size: 1.2rem;
}
#header-tel a, #header-email a, #header-tel a:active, #header-email a:active, #header-tel a:visited, #header-email a:visited, #footer-tel a, #footer-email a, #footer-tel a:active, #footer-email a:active, #footer-tel a:visited, #footer-email a:visited {
    text-decoration: none;
}
#header-tel a, #header-email a, #header-tel a:active, #header-email a:active, #header-tel a:hover, #header-email a:hover, #header-tel a:visited, #header-email a:visited {
    color: #FFF;
}
#footer-tel a, #footer-email a, #footer-tel a:active, #footer-email a:active, #footer-tel a:hover, #footer-email a:hover, #footer-tel a:visited, #footer-email a:visited {
    color: #000;
}
#header-tel a:hover, #header-email a:hover, #footer-tel a:hover, #footer-email a:hover {
    text-decoration: underline;
}
#header-logo {
    float: right;
    width: 300px;
    height: auto;
}
.header-content .jumbotron {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50%;
    max-width: 700px;
}
.clearfix::after {
    content: "";
    clear: both;
    display: table;
  }
.container {
    display: flex;
    flex-wrap: wrap;
}
/* .service {
    padding: 20px 50px;
} */
.left-col {
    flex: 0 0 30%;
    padding: 20px;
    box-sizing: border-box;
}

.right-col {
    flex: 0 0 70%;
    padding: 20px;
    box-sizing: border-box;
}

.jumbotron, hr.seperator {
    padding: 2rem 1rem;
    margin-bottom: 1.5rem;
    background-color: #64847d;    
}
.jumbotron {
    font-size: 1.8rem;
    color: #FFF;
    text-align: center;
    font-family: 'Urbanist', sans-serif;
    font-weight: 100;
    letter-spacing: 0.3rem;
}
.jumbotron.small, hr.seperator {
    padding: 1rem 1rem;
}
hr.seperator {
    width: 100%;
    margin: 0;
}
.no-margin {
    margin: 0!important;
}

.quick-links-col-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Default: 3 blocks per row */
    background-color: #64847d;
}
.quick-links-col-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* Default: 4 blocks per row */
    background-color: #64847d;
}


.block {
    perspective: 1000px;    
    position: relative;    
    overflow: hidden; /* Ensure the background doesn't spill outside when scaled */
    cursor: pointer;
} 
.block-front,
.block-back {
    backface-visibility: hidden;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    transition: transform 0.6s;
}

.block-front {
    z-index: 2;
    transform: rotateY(0deg);
}

.block.flipped .block-front {
    transform: rotateY(180deg);
}

.block-back {
    transform: rotateY(180deg);
    background-color: #FFF;
    color: #000;
    font-family: 'Urbanist', sans-serif;
    font-weight: 500;
    padding: 5px 5px 20px 5px;
    font-size: 1rem;
}

.block-back li, .block-back p {
    font-size: 1rem;
}

.block-back h4 {
    margin-bottom: 10px;
    font-size: 1.4rem;
}

.block.flipped .block-back {
    transform: rotateY(360deg);
}
.block img {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    transition: all 0.3s ease;
}

.block:hover img {
    transform: scale(1.05);
    transition: all 0.3s ease;
}

.block.flipped img {
    transform: scale(1);
    transition: none;
}

.block h3 {
    position: absolute;
    bottom: 10px;
    left: 0px;
    color: white;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    background-color: #64847d;
    padding: 5px;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.25);

}
footer {
    border-bottom: 15px solid #64847d;
}

/* Responsive Breakpoint */
@media (max-width: 820px) {
    .header-content .jumbotron, #header-tel a, #header-email a {
        font-size: 0.8rem;
    }
    .header-content .jumbotron {
        text-align: left;
    }
}
@media (max-width: 768px) {
    .left-col, .right-col {
        flex: 0 0 100%;
    }
    .hide-mobile {
        display: none;
    }
    .quick-links-col-3, .quick-links-col-4 {
        grid-template-columns: repeat(1, 1fr); /* Default: 3 blocks per row */
    }
    video {
        display: none;
    }
    .header-content {        
        width: 100%;
        height: 200px;
        min-width: 100%;
        background-color: #64847d;
    }
    .header-content .jumbotron {
        width:100%;
        text-align: center;
        padding-top: 0;
        padding-bottom: 5px;
        top: 110px;
    }
    #header-logo {
        float: none;
    }
    .jumbotron.small {
        display: none;
    }
}