/* ===== Variables ===== */
:root {
  --planserv-color-green: #004c1c;
  --planserv-color-gray: #808080;
  --planserv-color-blue: #080f39;
  --background-color: #ffffff;
  --background-overlay-green: #004c1c44;
  --background-overlay-gray: #808080be;
  --text-block-color: #ffffff77;
  --nav-height-open: 70px;
  --nav-height-collapsed: 40px;
}

/* ===== Scroll bar style ===== */
/* width */
::-webkit-scrollbar {
  width: 10px;
}
/* Track */
::-webkit-scrollbar-track {
  background: var(--planserv-color-gray);
  border-radius: 20px;
}
/* Handle */
::-webkit-scrollbar-thumb {
  background: var(--planserv-color-green);
  border-radius: 20px;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: var(--planserv-color-blue);
}

/* ===== Main Doc ===== */
body {
  height: 100%;
  margin: 0px;
}
html {
  margin: 0px;
  height: 100%;
  background-color: var(--background-color);
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  color: var(--planserv-color-blue);
}

h1,
h2,
h3 {
  margin: 0px;
  text-shadow: 2px 2px 3px var(--planserv-color-gray);
  text-align: center;
  white-space: nowrap;
}

h1 {
  font-size: clamp(25px, 40px, 3vw);
}

h2 {
  font-size: clamp(20px, 30px, 2.5vw);
}

h3 {
  font-size: clamp(15px, 20px, 2vw);
}

p {
  font-size: clamp(15px, 25px, 1.5vw);
  margin: 0px;
}

.planserv-separator {
  height: 5px;
  background-color: var(--planserv-color-green);
  width: min(10vw, 100px);
  margin-top: min(4vw, 20px);
  margin-bottom: min(5vw, 30px);
}

.planserv-text-box {
  background-color: var(--text-block-color);
  border-radius: 20px;
  padding: min(5vw, 40px);
}

/* ===== Top Navigation bar ===== */
nav {
  background-color: var(--background-color);
  position: fixed;
  top: 0;
  width: 100%;
  height: var(--nav-height-open);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Collapsed state */
nav.collapse {
  animation: collapse 1s ease forwards;
}
@keyframes collapse {
  from {
    height: var(--nav-height-open);
  }
  to {
    height: var(--nav-height-collapsed);
  }
}

/* Opened state */
nav.open {
  animation: open 1s ease-out forwards;
}
@keyframes open {
  from {
    height: var(--nav-height-collapsed);
  }
  to {
    height: var(--nav-height-open);
  }
}

/*--- Logo ---*/
#nav-logo {
  height: 100%;
  margin-left: 30px;
  display: flex;
  align-items: center;
}
#nav-logo > img {
  height: 70%;
  transition: opacity 0.7s, transform 1s;
  transform: translate(0px, 0px);
}
nav.open #nav-logo img {
  opacity: 0;
  transform: translate(30vw, 30vh);
}

/*--- Menu ---*/
#menu {
  display: flex;
  align-items: center;
  height: 100%;
  background: var(--background-color);
}

/* Hamburger */
#hamburger {
  opacity: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  cursor: pointer;
  background-color: transparent;
  padding: 0px 20px;
}
#hamburger > div {
  height: 3px;
  width: 25px;
  border-radius: 20%;
  background-color: var(--planserv-color-gray);
  margin: 3px;
}

/* Menu List */
@media screen and (max-width: 1000px) {
  #hamburger {
    opacity: 1;
  }
  #menu-list {
    display: flex;
    opacity: 0;
    transition: opacity 0.5s;
    flex-direction: column;
    position: absolute;
    right: 0;
    top: 100%;
    background: var(--background-color);
  }
  #menu-list.mobile-open {
    opacity: 1;
  }
}

#menu-list .menu-button {
  color: var(--planserv-color-gray);
  font-family: ARIAL;
  font-size: 15px;
  padding: 10px 15px;
  border: 0px;
  background: transparent;
  cursor: pointer;
  text-align: center;
}
#menu-list .menu-button:hover {
  color: var(--planserv-color-blue);
  text-shadow: 0 0 12px var(--planserv-color-blue);
}

/*===== div used for full page =====*/
.page {
  min-height: calc(100% - 10vw);
  padding: 5vw;
  margin-top: 3px;
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: center;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

/*--- Pages - background ---*/
.page#home {
  background-image: linear-gradient(var(--background-overlay-gray), var(--background-overlay-green)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/home.jpg');
}
.page#about {
  background-image: linear-gradient(var(--background-overlay-green), var(--background-overlay-gray)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/about.jpg');
}
.page#company-details {
  background-image: linear-gradient(var(--background-overlay-gray), var(--background-overlay-green)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/companyDetails.jpg');
}
.page#services {
  background-image: linear-gradient(var(--background-overlay-green), var(--background-overlay-gray)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/services.jpg');
}
.page#the-director {
  background-image: linear-gradient(var(--background-overlay-gray), var(--background-overlay-green)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/theDirector.jpg');
}
.page#contact-us {
  background-image: linear-gradient(var(--background-overlay-green), var(--background-overlay-gray)),
    linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url('./images/contactUs.jpg');
}

/*--- Pages - contents ---*/

/* home */
.page#home > img {
  width: max(150px, 20vw);
  padding-top: 30px;
}
.page#home > div {
  height: 5px;
  background-color: var(--planserv-color-blue);
  width: max(300px, 40vw);
  margin: 20px;
}
.page#home > h1,
.page#home > h2,
.page#home > h3 {
  font-weight: normal;
}

/* about */
.page#about > div.planserv-text-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 80vw;
}
.page#about > div.planserv-text-box > p {
  text-align: justify;
  text-justify: inter-word;
}

/* company-details */
.page#company-details #main {
  display: flex;
  flex-flow: row;
  justify-content: space-evenly;
}

.page#company-details #main > div.planserv-text-box {
  display: flex;
  flex-flow: column;
  justify-content: flex-start;
  width: 50%;
  margin: 10px;
}
.page#company-details #main > div.planserv-text-box > h2 {
  padding-bottom: 15px;
}

@media screen and (max-width: 1000px) {
  .page#company-details #main {
    flex-flow: column;
  }
  .page#company-details #main > div.planserv-text-box {
    width: 80vw;
  }
}

/* services */
.page#services > div:not(:first-of-type) {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
}
.page#services > div > div.planserv-text-box {
  width: 25vw;
  padding: 20px;
  text-align: center;
  margin: 5px;
}
.page#services > div > div.planserv-text-box > img {
  width: 20%;
  aspect-ratio: 1;
  margin-bottom: min(3vw, 25px);
}
.page#services > div > div.planserv-text-box > h3 {
  margin-bottom: 15px;
}
@media screen and (max-width: 1000px) {
  .page#services > h1 {
    padding-top: 30px;
  }
  .page#services > div:not(:first-of-type) {
    flex-direction: column;
    align-items: center;
  }
  .page#services > div > div.planserv-text-box {
    width: 80vw;
  }
}

/* the-director */
.page#the-director > div:not(:first-of-type) {
  display: flex;
  width: 100%;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.page#the-director > div > div:first-child > img {
  box-shadow: 0px 0px 10px 2px var(--planserv-color-gray);
  max-height: 300px;
  aspect-ratio: 1;
  border-radius: 50%;
  margin: 3vw;
}
.page#the-director > div > div.planserv-text-box > p {
  text-align: justify;
  text-justify: inter-word;
}
@media screen and (max-width: 1000px) {
  .page#the-director {
    padding-top: 50px;
  }
  .page#the-director > div:not(:first-of-type) {
    flex-direction: column;
  }
}

/* contact-us */
.page#contact-us > div.planserv-text-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.page#contact-us > div.planserv-text-box > div:not(.planserv-separator) {
  padding-bottom: 20px;
  text-align: center;
}
.page#contact-us > div.planserv-text-box > div:last-of-type {
  padding-bottom: 0px;
  text-align: center;
}
.page#contact-us > div.planserv-text-box > div > p:not(:first-child),
.page#contact-us > div.planserv-text-box > div > p > span {
  color: var(--planserv-color-green);
}
@media screen and (max-width: 1000px) {
  .page#contact-us > div.planserv-text-box {
    width: 80vw;
  }
}
