:root {
  --button: hsl(7, 75%, 56%);
  --button-hover: hsl(7, 87%, 67%);

  --link-color: #47D1E6;
  --link-hover: hsl(199, 96%, 83%);

  --header-button-hover-bg: hsl(193, 10%, 15%);

  --header-bg: hsl(193, 10%, 25%);
  /* --services-section: hsl(193, 15%, 87%); */
  --services-section: hsl(193, 11%, 95%);
  /* --gallery-section: hsl(193, 15%, 77%); */
  /* --gallery-section: hsl(193, 11%, 95%); */
  /* --about-section: hsl(193, 5%, 97%); */
  --about-section: hsl(193, 16%, 91%);
  --gallery-section: hsl(193, 16%, 91%);
  --contact-section: hsl(193, 10%, 25%);
  --footer-bg: hsl(193, 10%, 15%);
}

@font-face {
  font-family: "Noto Serif";
  src: url("/assets/font/NotoSerif-Medium.woff");
}
@font-face {
  font-family: "Roboto";
  src: url("/assets/font/Roboto-Variable.woff");
}

.block-scroll {
  height: 100% !important;
  overflow: hidden !important;
}

* {
  /* reset */
  margin: 0;
  box-sizing: border-box;

  font-size: 1.35rem;
  font-family: "Noto Serif", serif;
  line-height: 1.65;
}
a[href^="mailto"] {
  word-wrap: break-word;
}

img {
  max-width: 100%;
}

header {
  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.5)
}

header {
  background-color: var(--header-bg);
  display: block;
  z-index: 2 !important;
}

footer {
  background-color: var(--footer-bg);
  color: white;
}

header, header * {
  height: 50px;
}

header a, footer a {
  text-decoration: none;
}
header a, header button {
  background-color: var(--header-bg);
  text-decoration: none;
  color: var(--link-color);
  font-family: "Roboto";
}
/* TODO TEMP COLORS */
header a:hover, header a:active, header button:hover, header header:active {
  background-color: var(--header-button-hover-bg);
  text-decoration: none;
  color: var(--link-hover);
  font-family: "Roboto";
}

a[href] {
  text-decoration: none;
  color: var(--link-color);
  font-family: "Roboto";
}
a[href]:hover {
  color: var(--link-hover);
}
a[href].w3-button {
  color: white;
}
.w3-button {
  color: white;
  box-shadow: 2px 2px 1px black;
}
/* Animation */
.w3-button:enabled:hover, a[href].w3-button:hover {
  scale: 1.05;
  box-shadow: 3px 3px 2px black;
  transition: all 0.15s ease-in-out;
}

body {
  /* keep footer at bottom */
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

footer {
  padding: 16px 16px;
}
footer ul {
  list-style: none;
  padding-left: 0px;
}
footer .right-side {
  text-align: right;
}

.icon, svg {
  /* override img max-width: 100% to fix the scaling issue */
  max-width: 24px !important;
  height: 24px;
  width: 24px;
  image-rendering: crisp-edges;
  vertical-align: text-bottom;
}

#main {
  /* keep footer at bottom */
  flex: 1;
}

.section {
  padding: 32px 5%;
}
.section h2 {
  text-align: center !important;
}
#about {
  background-color: var(--about-section);
}
#mini-gallery {
  background-color: var(--gallery-section);
  padding: 32px 16px !important;
}
#contact {
  background-color: var(--contact-section);
  color: white;
}

.main-margin {
  margin: 64px 16px 32px 16px;
}

.w3-button {
  background-color: var(--button);
  border-radius: 8px;
}
.w3-button:hover {
  background-color: var(--button-hover);
}
.w3-button.disabled {
  background-color: gray !important;
  cursor: default;
}

.gallery-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 16px;
}
/* NOTE this was changed from `.gallery-container img` to `.gallery-container > *`
since children are divs inside delete page */
.gallery-container > * {
  max-width: 24%;
  min-width: 300px;
  height: auto;
  border-radius: 8px;
}
@media only screen and (max-width: 600px) {
  .gallery-container > * {
    max-width: 100%;
  }
  footer ul {
    margin: auto;
    width: 100%;
    text-align: center !important;
  }
  footer .right-side {
    margin-top: 16px;
  }
}

.pagination {
  padding: 16px;
  margin-top: 32px;
}
.pagination > * {
  margin: 0px 8px;
}

hr {
  border-color: black;
  margin-left: auto;
  margin-right: auto;
  margin-top: 8px;
  margin-bottom: 24px;
  width: 25%;
}
#contact hr {
  border-color: white;
}

.banner-image {
  position: absolute;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 100lvh;

  visibility: visible;
}
.banner-image.hidden {
  visibility: hidden;
}
#banner-content {
  position: inherit;
  height: 100lvh;
}
#banner-content .text-container {
  background-color: rgba(0, 0, 0, 0.35);
  padding: 16px;
  border-radius: 8px;
  backdrop-filter: blur(3px);
}
#banner-content h1, #banner-content h2 {
  text-shadow: black 2px 2px;
  font-weight: 500;
}
#banner-content * {
  color: white;
}
#banner-content h1 {
  font-size: 2.75rem;
}
#banner-content h2 {
  font-size: 2.0rem;
}
#banner-content .content-container {
  padding: 16px 32px;
}

.carousel-controls {
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  padding: 4px 8px;
  border-radius: 24px;
  margin: 16px;
}
.carousel-controls button {
  padding: 4px;
  border: none;
  background-color: white;
  border-radius: 20px;
  vertical-align: middle;
  margin: 0px 4px;
}
.carousel-controls button.inactive {
  opacity: 0.25;
}


/* MODAL */
#modal {
  position: fixed;
  width: 100vw;
  height: 100dvh;
  background-color: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  z-index: 98;

  display: none;
  color: white;
}

#modal button {
  z-index: 99;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.5) !important;
}
#modal .map-container {
  margin-top: 16px;
  padding: 8px;
  border-radius: 8px;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 99;
}
#modal .close-button {
  margin-top: 16px;
  margin-right: 16px;
}
#modal .map-container span {
  font-size: 1.5rem;
}
#modal .arrow-button {
  height: 64px;
}
#modal .arrow-button svg {
  max-width: 32px !important;
  height: 32px;
  width: 32px;
}
#modal-image {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
}


#sidebar {
  position: fixed;
  width: 200px;
  right: 0;
  top: 44px;
  background-color: var(--header-bg);
  height: 100dvh;
  padding: 16px 0px;
  box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.3);


  margin-right: 0px;
  transition: margin-right 0.2s ease-in-out;

  z-index: 1;
  display: block !important;
}

#sidebar.hidden {
  margin-right: -100vw;
}

#sidebar button, #sidebar a {
  background-color: var(--header-bg);
  color: var(--link-color);
}

/* spinner */
.loader {
  width: 48px;
  height: 48px;
  border: 5px solid var(--button-hover);
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
}

@keyframes rotation {
  0% {
      transform: rotate(0deg);
  }
  100% {
      transform: rotate(360deg);
  }
}

.delete-card {
  background-color: #202020;
  border-radius: 8px;
  padding: 4px;
}
.delete-card img {
  border-radius: 8px 8px 0px 0px;
}

/* Services section */
#services {
  background-color: var(--services-section);
}
#services li {
  list-style: none;
}
#services details  {
  border-bottom: 1px solid black;
}

#services details[open] {
  padding-bottom: 32px;
}
#services details:last-child {
  border-bottom: none;
}
#services details:hover {
  background-color: var(--about-section);
}
/* arrow icon */
#services details[open] > summary::before {
  transform: rotate(90deg);
}

#services details summary::before {
  content: '';
  width: 24px;
  height: 24px;
  background: url('/assets/img/arrow.svg');
  background-size: cover;
  /* margin-left: .75em; */
  margin-top: 6px;
  margin-right: 8px;
  transition: 0.2s;
  vertical-align: text-bottom;
}
#services details summary {
  cursor: pointer;
  display: flex;
  padding: 32px 16px 32px 16px;
  font-size: 1.5rem;
}

#services details .detail-text {
  padding: 0px 16px;
}

#services ul {
  padding: 0;
}