* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}


html {
  scroll-behavior: smooth;
}

html, body {
    overflow-x: hidden;
  }
  
  body {
    position: relative
  }
  
  img { max-width: 100%; }

  /* utility classes */
.tall-10 { min-height: 10vh; }
.tall-20 { min-height: 20vh; }
.tall-30 { min-height: 30vh; }
.tall-40 { min-height: 40vh; }
.tall-50 { min-height: 50vh; }
.tall-60 { min-height: 60vh; }
.tall-70 { min-height: 70vh; }
.tall-80 { min-height: 80vh; }
.tall-90 { min-height: 90vh; }
.tall-100 { min-height: 100vh; }
.tall-120 { min-height:120vh; }
.tall-150 { min-height: 150vh; }

/* Padding Utility Classes */ 
.padded    { padding: 5%;   }
.padded-md { padding:7%      }
.padded-lg { padding: 10%;  }

.padded-05 { padding: 0.5rem; }
.padded-1 { padding: 1rem; }
.padded-2 { padding: 2rem; }

.padded-t { padding-top: 10%; }
.padded-b { padding-bottom: 10%; }
.padded-l { padding-left: 10%; }
.padded-r { padding-right: 10%; }

.padded-tb { padding-top: 5%; padding-bottom: 5%; }
.padded-lr { padding-left: 5%; padding-right: 5%; }

.padded-t-1 { padding-top: 1rem; }
.padded-b-1 { padding-bottom: 1rem; }
.padded-l-1 { padding-left: 1rem; }
.padded-r-1 { padding-right: 1rem; }

.padded-t-2 { padding-top: 2rem; }
.padded-b-2 { padding-bottom: 2rem; }
.padded-l-2 { padding-left: 2rem; }
.padded-r-2 { padding-right: 2rem; }

.padded-t-0 { padding-top: 0; }
.padded-b-0 { padding-bottom: 0; }
.padded-l-0 { padding-left: 0; }
.padded-r-0 { padding-right: 0; }

/* Margin Utility Classes */ 
.margin-t { margin-top: 5%; }
.margin-b { margin-bottom: 5%; }
.margin-l { margin-left: 5%; }
.margin-r { margin-right: 5%; }

.margin-t-1 { margin-top: 1rem; }
.margin-b-1 { margin-bottom: 1rem; }
.margin-l-1 { margin-left: 1rem; }
.margin-r-1 { margin-right: 1rem; }

.margin-t-2 { margin-top: 2rem; }
.margin-b-2 { margin-bottom: 2rem; }
.margin-l-2 { margin-left: 2rem; }
.margin-r-2 { margin-right: 2rem; }

.margin-t-0 { margin-top: 0; }
.margin-b-0 { margin-bottom: 0; }
.margin-l-0 { margin-left: 0; }
.margin-r-0 { margin-right: 0; }

.margin-tb { margin-top: 5%; margin-bottom: 5%; }
.margin-lr { margin-left: 5%; margin-right: 5%; }

/*website colors*/
.bg-light  {background-color:#F7F4EF;}
.bg-featured {background-color:#C74138;}
.bg-dark { background-color:#506369; }

.light-text { color: #F7F4EF; }
.text-featured { color: #C74138; }
.dark-text {color:#515668;}
.white-text { color:white;}
.cream-text {color:#D6CBB7;}

/* Typography */
.left   { text-align: left;   }
.center { text-align: center; }
.right  { text-align: right;  }

.text-bottom { vertical-align: text-bottom; }

.text-middle { vertical-align: text-middle; }

.bold { font-weight: 600; }

.lao-font {
  font-family: 'Noto Serif Lao', serif;
}

.overlap {
  padding:3%;
  margin-left:auto; 
  margin-right:auto; 
  position:absolute;
  left:38rem;
  top:260rem;
}

.overlap-lao {
  padding:3%;
  margin-left:auto; 
  margin-right:auto; 
  position:absolute;
  left:38rem;
  top:255rem;
}

body {
    font-family: 'Montserrat', sans-serif;
    color: #454E5C;
}

h1,h2,h3,h4,h5,h6 {
    font-family: 'Lato', sans-serif;
    color:#C74138;
    line-height: 1;
    margin-bottom: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}

h1 { font-size: 12vw; }
h2 { font-size: 4rem;   }
h3 { font-size: 3rem;   }
h4 { font-size: 2rem;   }
h5 { font-size: 1.5rem; }
h6 { font-size: 1rem;   } 

p {
    line-height: 1.5;
    font-size: 1rem;
}

ul { 
    margin-left: 1rem; 
}

li { 
    padding-left: 0.5rem;
    line-height: 2;
    font-size: 1rem;
    text-decoration: none;
}

h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child,
h6:last-child,
p:last-child {
    margin-bottom: 0;
}

.shadow {
    text-shadow: 2px 2px 8px black;
}

/* links */
a {
    color: inherit;
    text-decoration: none;
    font-size: 1rem;
    font-family: 'Lato', sans-serif;
    letter-spacing: 0.05em;
    font-weight: 400;
}

a:hover { 
    color:#557864;
    border-color:#557864; 
    cursor: pointer;}

.button {
    color: white;
    border: 2.5px solid#C74138;
    border-radius: 5% 5%;
    background-color: #C74138;
    text-decoration: none;
    padding: 0.8rem 1rem;
    display: inline-block;
    z-index:1;
}
    
.button:hover {
    color:  #C74138;
    border-color: #C74138;
    cursor: pointer;
    background-color: #EFE3CD;
    
}

/* icons */
    .fa-brands {
    font-size: 1.5rem; 
    padding-left: 1rem;
    padding-right: 1rem;
    color:#C74138;
    }

    .fa-regular {
    font-size: 1.5rem; 
    padding-left: 1rem;
    padding-right: 1rem;
    color:#C74138;
    }

    .fa-brands:hover {
        color:#557864;
    }

    .fa-regular:hover {
        color:#557864;
    }

    .fa-solid {
        font-size: 2.5rem; 
        color:#EFE3CD;
    }

    .fa-solid:hover {
        color:#557864;
    }

/*header styles*/
header {
    padding: 1% 1.5%;
}

header a {
    text-decoration: none;
    color: white;
    padding-left: 3%;
    padding-right:3%;
    display: inline-block;
    font-size: 1.2rem;
    font-weight:300;
}

.lang {
    padding: 1.5%;
    font-size:0.7rem;
}

#lang {
    padding: 1.5%;
    font-size:0.7rem;
    display:inline-block;
}

.logo {
    max-width: 150px;
}

.hamburger-button {
   color:black;
    cursor: pointer;
    padding: 0 0.5rem;
    display: inline-block;
    font-weight: 200;
    font-size: 3rem;
    line-height: 0.8;
    margin-top: -0.7rem;
    position: fixed;
    right: 2.5rem;
    top: 3rem;
    z-index: 100;
}

.line{
  width: 70px;
  height: 2px;
  background-color:black;
  display: block;
  margin: 8px auto;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.show-sm { display: none; }

/* styles when the hamburger button is active */
#hamburger-button.active .line:nth-child(2){
  opacity: 0;
}

#hamburger-button.active .line:nth-child(1){
  -webkit-transform: translateY(10px) rotate(40deg);
  -ms-transform: translateY(10px) rotate(40deg);
  -o-transform: translateY(10px) rotate(40deg);
  transform: translateY(10px) rotate(40deg);
}

#hamburger-button.active .line:nth-child(3){
  -webkit-transform: translateY(-10px) rotate(-40deg);
  -ms-transform: translateY(-10px) rotate(-40deg);
  -o-transform: translateY(-10px) rotate(-40deg);
  transform: translateY(-10px) rotate(-40deg);
}

.header-menu {
  display: none;
  background-color:#FFFBEB;
  padding-top: 8%;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 70%;
  right: 0;
  text-align: center;
  z-index: 90;
}

.header-menu a {
  font-family: 'Noto Serif Lao', serif;
  text-decoration: none;
  color: #C74138;
  padding: 5vh 5%;
  display: block;
  font-weight: normal;
  font-size: 1.7rem;
  padding-top: 0;
  line-height: 2;
  z-index: 90;
}

/* footer styles */
footer li {
    list-style: none;
}

.subtle {
    opacity: 90%;
    font-size:0.8rem;
}

/* review slide */
.mySlides {
    display:none;
    padding:3rem;
  }

  /*review slides*/
.author {
    font-size: 0.9rem;
    color: #FFFBEB;
    margin-top: 0.5rem;
    font-style: italic;
    text-align: center;
  }
  
  .quote-icon {
    font-size: 1.5rem;
    color: rgb(200,200,200);
  }
  
  /* Slider */
  .testimonial-slider-container {
    padding: 5%;
    max-width: 900px;
    margin: 0;
  }
  
  .slider-item {
    padding: 1rem;
    display: none;
    z-index:1;
  }
  
  .slider-item:first-child {
    display: block;
  }
  
  .slick-next {
    right: 10px;
  }
  
  .slick-prev {
    left: 10px;
  }
  
  .slick-next::before, .slick-prev::before {
      font-family: inherit;
      font-size: 20px;
      line-height: 1;
      opacity: .75;
      color: black;
  }
  
  .slick-dots {
    left: 0;
    bottom: 10px;
    /*  Without this the padding on the parent affects the centering of the dots. Do not delete.    */
  }
  
  .slick-dots li,
  .slick-dots li button {
    width: 10px;
  }
  
  .slick-dots li button::before {
    color: black;
  }
  
  .slick-dots li.slick-active button::before {
    color:#FFFBEB;
  }
  
  /* Slider Text Styles  */
  .slider-item p {
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
  }

   /* contact form */
form {
    font-family: 'Montserrat', sans-serif;
    padding: 5%;
    width: 70%;
    margin: 0 auto;
    margin-bottom: 20px;
    border: 4px solid #C74138;
    background-color:#F7F4EF;
  }
  
  input[type=text], input[type=submit] {
    width: 100%;
    padding: 12px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #C74138;
    box-sizing: border-box;
  }
  
  .message {
     width: 100%;
    padding: 12px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #C74138;
    box-sizing: border-box; 
  }
  
  input[type=submit] {
    background-color:#C74138;
    color: white;
    border: none;
  }
  
  input[type=submit]:hover {
    opacity: 0.8;
  }

  /* --------- Gallery styles -------- */
.bg-gallery {
    background-color: rgb(235,235,235);
    background-size: cover;
    background-position: center;
  }
  
  .bg-gallery:hover {
    opacity:80%;
    transform: scale(1.02);
  }
  
  .square {
    padding-bottom: 100%;
  }
  
  .popup-gallery .bg-image {
    border: 2px solid white;
  }

/* images and videos */
#background-video {
  width: 100vw;
  height: 80vh;
  object-fit: cover;
}

.bg-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-image: url('/images/senglao-banner-2.jpg');
}

.shape-teardrop {
    border-radius: 20rem;
    border-bottom-right-radius: 0;
}

.shape-teardrop-left {
    border-radius: 20rem;
    border-bottom-left-radius: 0;
    max-width:400px;
}

.shape-window {
    border-top-left-radius: 20rem;
    border-top-right-radius: 20rem;
    max-width: 350px;
}

.shape-circle {
  border-radius: 50%;
  max-width: 250px;
}

.float {
    max-width:800px;
}

.capped-photo {
    max-width: 350px;
}

.bg-banner-1 {
    background-image: url('/images/senglao-banner-1.jpg');
    background-attachment: fixed; 
    opacity:90%;
}

.bg-banner-2 {
    background-image: url('/images/senglao-banner-2.png');
    background-position:50% 70%;
}

.bg-banner-3 {
    background-image: url('/images/senglao-banner-3.jpg');
}

.bg-banner-4 {
    background-image: url('/images/senglao-img-15.jpg');
    background-attachment: fixed;   
}

.bg-img-1 {
    background-image: url('/images/senglao-img-6.jpg');
    background-position: 50% 50%;
}

.bg-img-2 {
    background-image: url('/images/senglao-img-1.jpg');
    background-position: 50% 70%;
}

.bg-img-3 {
  background-image: url('/images/senglao-img-16.jpg');
}

/* sm media query */
@media (max-width: 48em) {
.hide-sm { display: none;  }
.show-sm { display: block; }

.menu-button-sm {
  padding-top:50%;
}

.center-sm { text-align: center; }

.flex-flip-sm { flex-direction: column-reverse;}

.padded-t-sm { padding-top:15%; }

.tall-sm { min-height: 30vh; }

h1 { font-size: 20vw;     }
h2 { font-size: 2.5rem;   }
h3 { font-size: 1.5rem;   }
h4 { font-size: 1rem;     }
h5 { font-size: 1rem;     }

#lang {
    font-size:0.7rem;
    display:inline-block;
}

.logo {
  max-width:200px;
  padding:1rem;
}

.hamburger-button {
    padding: 0 0.5rem;
    right: 1rem;
    top: 2rem;
}

.line{
  width: 70px;
  height: 2px;
  background-color:black;
  display: block;
  margin: 8px auto;
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.shape-teardrop-left {
    max-width:300px;
}

.shape-window {
    max-width: 300px;
}

.mobile-menu {
  padding-top:16%;
}

.float {
    max-width:600px;
    text-align: center;
}

.shrink-sm {
  max-width:200px;
}

.button-2 {
    font-weight:600;
    color: black;
    border: 2.5px solid#FFFBEB;
    border-radius: 50% 50% 0% 0%;
    background-color: #FFFBEB;
    text-decoration: none;
    padding: 1rem 1.5rem;
    display: inline-block;
    position:absolute;
    top:34%;
    left:25%;
}

.button-2-lao {
  font-weight:600;
  color: black;
  border: 2.5px solid#FFFBEB;
  border-radius: 50% 50% 0% 0%;
  background-color: #FFFBEB;
  text-decoration: none;
  padding: 1rem 1.5rem;
  display: inline-block;
  position:absolute;
  top:33%;
  left:32%;
}

.shape-circle {
    border-radius: 50%;
    max-width: 150px;
    padding:3%
  }
  
  .padded-lg-sm {
    padding:8%;
  }

.bg-banner-1 {
    background-attachment: scroll; 
}

.bg-banner-4 {
    background-attachment: scroll;   
}

   /* contact form */
form {
    width: 100%;
  }

}