:root {
  --main-title-color: #f8ba95;
  --main-header-color: #168bd2;
  --main-text-color: #555;
  --link-color: #4270b1;
  --header-font-family: "Outfit", sans-serif;
  --font-family: "Gabarito", sans-serif;
  --light-bg: #f7fcff;
}

html {
  font-size:16px; /* impact rem */
}

body {
  padding: 0;
  color: var(--main-text-color);
  font-family: var(--font-family);
  background:#eee;
}

header {
  text-align: center;
  background: linear-gradient(227deg, rgb(8,133,171) 0%, rgb(104,203,241) 50%, rgb(21,138,210) 100%);
  color: #fff;
  border: 1px solid #568bb2;
  box-shadow: 0px 1px 4px #0e0e10;
  padding: 30px 30px 50px;
  transition: all 1s ease;
  z-index: 1000;
}

header a {
  color: #fff;
  text-decoration:none;
}

main {
  font-size: 1.5rem;
  margin:0% 20% 10% 20%;
}

#logo {
  margin: 20px auto 0px auto;
  max-width:105px;
  transition: filter 0.3s ease;
  filter: hue-rotate(0deg);
  display:inline;
  border-radius:50%;
}

@keyframes pulse {
  0% {
    filter: none;
  }
  50% {
    filter: sepia(1) saturate(5) hue-rotate(0deg);
  }
  100% {
    filter: none;
  }
}

h1 {
  font-family: var(--header-font-family);
  font-style: normal;
  margin: 0px auto 0px auto;
  padding:0px;
  font-weight: normal;
  font-size: 5rem;
  text-align: center;
  line-height:1;
}

.booking h1 {
  color: var(--main-header-color);
  font-size:2.5rem;
  line-height:1.3;
  background: transparent;
}

h2, h3 {
  font-family: var(--header-font-family);
  margin: 20px auto 30px auto;
  padding: 0px;
  font-weight: normal;
  font-size: 2.5rem;
  text-align: center;
  line-height:1.3;
}
h3 {
  font-size: 2rem;
  margin: 30px auto 20px auto !important;
  max-width:800px;
}
h3 b {
  font-weight:bold;
}

h4 {
  margin: 40px auto 10px auto;
  font-family: var(--header-font-family);
  font-weight: 400;
  font-style: normal;
  font-size: 2.5rem;
  color: var(--main-header-color);
}
#timezone {
  font-size:1rem;
}

.headshot {
  max-width:130px;
  margin:auto 10px;
  border-radius:25px;
  display:inline-block;
  box-shadow: 0px 1px 2px #e6e0e0;
  border:3px solid #fff;
}

.booktime {
  background: var(--main-header-color);
  padding:14px 20px;
  color:#fff;
  margin:30px auto;
  border-radius:10px;
  box-shadow:0px 1px 5px var(--main-header-color);
  display:inline-block;
  text-decoration:none;
  border: 3px solid #fff;
}

.booktime:hover {
  cursor: pointer;
  background: #27a5f1;
}

.stars {
  text-align:center;
  margin:40px auto 0px auto;
  max-width:600px;
}

.stars img {
  width:30px;
  display:inline-block;
}
.stars i {
  font-size:1.2rem;
  opacity: 0;
  transition: opacity 1s ease;
}
.stars i.fade-in {
  opacity: 1;
}

a {
  color: var(--link-color);
}

.flex {
  display:flex;
  flex-wrap: wrap;
  gap:15px;
  align-items:stretch;
  padding-left: 0px;
  list-style-type: none;
}

.flex.areas li {
  flex: 1 1 350px;
}
.flex li {
  flex: 1 1 250px;
  display:flex;
  flex-direction: column;
  font-size: 1rem;
  border:1px solid #c8ccd1;
  border-radius: 6px;
  overflow: hidden;
  /* margin:auto; THIS BREAKS FLEX */
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.content {
  border-radius: 10px;
  max-width: 600px;
  width: 80%;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
  background:#fff;
  overflow: hidden;
}

.flex.services li:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  cursor:pointer;
}

/* headers */
.flex li span {
  font-family: var(--header-font-family);
  display:block;
  background: var(--light-bg);
  padding: 8px 8px 8px 20px;
  font-size: 1.8rem;
  font-weight:500;
  color: var(--main-header-color);
  border-bottom:1px solid var(--main-header-color);
}
.content span {
  font-family: var(--header-font-family);
  display:block;
  background: var(--light-bg);
  padding: 10px 20px;
  font-size: 1.7rem;
  color: var(--main-header-color);
  border-bottom:1px solid var(--main-header-color);
}
.flex.services li span {
  font-size: 1.3rem;
}

/* bodies */
.flex.services li div {
  font-size: 0.6rem;
  color: #999;
  padding: 20px;
  max-height:70px;
  background:#fff;
}
.flex.areas li div {
  font-size: 1.2rem;
  color: #777;
  padding: 20px;
  background:#fff;
}
.flex.areas li div b {
  color: var(--main-text-color);
}
.content div {
  font-size: 1.3rem;
  color: var(--main-text-color);
  padding: 20px;
}

.flex img {
  max-width:100px;
  float:right;
  display:inline;
  margin-left:10px;
}
.content img {
  max-width:200px;
  float:right;
  display:inline;
}

.booking {
  background: var(--light-bg);
  padding:40px;
  border-radius:20px;
  width:75%;
  max-width:700px;
  margin:auto;
  box-shadow:0px 0px 7px #70a7f1;
}

.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 999;
}

/* when active */
.lightbox.active {
  opacity: 1;
  pointer-events: auto;
}

.lightbox.active .content {
  transform: scale(1);
  opacity: 1;
}

.expander {
  list-style-type: none;
  padding-left: 0;
}

.expander div {
  color: var(--main-header-color);
}

.expander li {
  background: var(--light-bg);
  margin-bottom:15px;
  padding: 3px;
  border-radius:8px;
  border:1px solid var(--light-bg);
}

.expander li:hover {
  border:1px solid #418cf0;
}

.expander li span {
  cursor: pointer;
  display: block;
  color: var(--main-header-color);
  padding:10px;
}
.expander li div {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.4s ease;
  padding:0px 10px;
}

.expander li.expanded div {
  padding:0px 10px;
  max-height: 1500px; /* big enough to fit content */
  opacity: 1;
  color: var(--main-text-color);
}


footer {
  width:100%;
  color:#f4f4f4;
  background-image: url(/beach.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-bottom:5px solid var(--main-header-color);
  padding:40px 30px 40px 30px;
  box-shadow: 0px -1px 5px #444;
  font-size:1.5rem;
}
footer h2 {
  font-size:2.5rem;
  font-weight:normal;
  color:#999;
  text-align:left;
  margin-top:20px;
  margin-bottom:5px !important;
  padding-bottom:5px !important;
}
footer .item {
  text-align:left;
  margin:0px auto 40px auto;
}

footer a {
  color:#ccc;
  font-weight:normal;
}
footer img {
  display:inline-block; /* cause of reset.css */
}

#footerlogo {
  float:right;
  border-radius:300px;
  margin-left: 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  max-width:55px;
}

.svg {
  width:23px;
  top:5px;
  position:relative;
}

#shade {
  border:1px solid #444;
  max-width:500px;
  background-color: rgba(34, 34, 34, 0.5);
  padding:40px;
  border-radius:20px;
}


@media (max-width: 1024px) {
  header {
    position: relative;
    padding:10px 4px 30px 4px;
    margin:0px 0px 0px 0px;
    border-radius:0px;
    border: 1px solid #568bb2;
    box-shadow: 0px 1px 4px #0e0e10;
  }
  main {
    margin:0% 20px 10% 20px;
  }
  .headshot {
    max-width:130px;
  }
  header h2, header h3 {
    padding:0px 15px;
  }
  h4 {
    background: linear-gradient(227deg, rgb(8,133,171) 0%, rgb(104,203,241) 50%, rgb(21,138,210) 100%);
    color: #fff;
    border-radius: 4px;
    padding:2px 14px;
  }
  #shade {
    max-width:94%;
    margin:auto;
  }
  footer {
    padding:40px 3px 40px 3px;
  }
  .booking {
    padding:30px 10px 30px 10px;
    max-width:none;
    width:75%;
  }
  .flex li {
    flex-basis: 100%;
    margin: auto;
    min-height: auto;
  }
  .flex.services li div {
    color: var(--main-text-color);
    max-height: none;
    font-size: 1.2rem;
  }
  .expander li.expanded div {
    padding:10px;
  }
  .flex.services li:hover {
    transform: none;
    box-shadow: none;
    cursor: auto;
  }
}


@media (max-width: 420px) {
  html {
    font-size:12px; /* impacts rem */
  }
  header .stars img {
    max-width:25px;
  }
  .flex li span {
    font-size: 2rem !important;
  }
  .flex li div {
    font-size:1.5rem !important;
  }
  .headshot, #logo {
    max-width:20% !important;
  }
  .booking {
    width:90%;
  }
  footer {
    padding:0px 0px;
    box-shadow: 0px 0px 0px #444;
  }
  #shade {
    width:100%;
    border-radius:0px;
    margin:0px 0px 0px 0px;
    max-width:none;
    border:0px solid #444;
  }
}
