
/* *************
     RESET
***************/
* {
  box-sizing: border-box
}
button, input {
  font-family: var(--sans);
}

/* *************
     GLOBAL VARS
***************/

:root {
  --menu-color: rgb(80, 80, 80);
  --topbar-font-weight: 600;
  --light-grey-color: #e7e7e7;
  --medium-grey-color: #c3c3c3;
  --tag-padding: 1px;
  --body-background: white;
  --bar-font-size: 0.96rem;
  --dark-red-color: rgb(195, 0, 0);
  --tag-border-radius: 4px;
  --admin-border-angle: 0deg;
  --back-to-search-box-height: 5rem;

  --dark-gold: #9a8614;
  --medium-gold: #B9A01A;
  --flashy-gold: #D5B927;
  --flashy-dark-gold: #9C8719;
  --light-gold: #FCF8E1;
  --very-light-grey: #F1F1F1;
  --light-grey: #A39F8B;
  --medium-grey: #807B63;
  --dark-grey: #514814;
  --purple: #764EE7;
  --light-yellow: #FFFDF6;

  /* NEW DESIGN */
  --sand-light: #FAF0DC;
  --sand-dark: #C08113;
  --cream-background: #FFFAEA;
  --big-blue: #244EDF;
  --dark-big-blue: #1936a1;
  --almost-black: #040202;
  --form-grey: #D7D2BB;
  --form-dark-grey: #807B63;
  --dark-brown: #4B391F;
  --thumbnail-background: rgb(243 239 227);

  --serif: Maitree, serif;
  --sans: "Plus Jakarta Sans", sans-serif;

  --upload-left-gutter: 0.7rem;
}

.main-title {
  font-family: "Playwrite SK", serif;
  font-optical-sizing: auto;
  font-weight: 250;
  font-style: normal;
  color: var(--sand-dark);
}

@property --admin-border-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
/*
.highlighted-menu-item {
  position: relative;
}
.highlighted-menu-item::after {
  content: '';
  width: 110%;
  height: 130%;
  background: rgb(240, 240, 65);
  position: absolute;
  left: -5%;
  top: -15%;
  z-index: -99999;
  border-radius: var(--tag-border-radius);
} */

@keyframes admin_border {
  to {
		--admin-border-angle: 360deg;
	}
}
.admin-border {
  &:hover {
    border: 1px solid red !important;
    &.delete-button {
      color: white;
      background: var(--dark-red-color);
    }
  }
  &:not(:hover) {
    border: 1px solid red !important;
    border-image: conic-gradient(from var(--admin-border-angle), red, white, red, white, red) 1 !important;
    background: white;
    animation: 3s admin_border linear infinite;
    &:is(button) {
      color: var(--dark-red-color);
    }
  }
}

body {
  color: var(--almost-black);
}

/* *************
     GRID
***************/
body {
  margin-top: 0px;
  margin-left: 0px;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(3,auto);
  width: calc(100vw-0.7rem);
  background: var(--body-backgroud);
  margin-right: 0.7rem;
  padding-bottom: 0.7rem;
}

#todays-photo {
  grid-column: 1 / -1;
}

.topbar {
  grid-column: 1 / -1;
}

.page {
  display: grid;
  grid-template-columns: subgrid;
  grid-template-rows: repeat(2,auto);
  grid-column: 1 / -1;
  .add-photo-page, .my-account {
    grid-column: 1 / -1;
  }
}

.search, .one-photo-layout, .users {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: subgrid;
}

.bar, .about, my-account, .activities, .users h1, .users .section {
  grid-column: 1 / -1;
}

.users {
  margin-left: 0.7rem;
  .add-user {
    input:not([type="checkbox"]), button {
      display: block;
    }
  }

}

.results {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  & #current-photo {
    grid-column: 1 / -1;
    &.off {
      display: none;
    }
  }
  .pages {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;
    height: 2em;
  }
}

.thumbnails {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(12,1fr);
  column-gap: 0.7rem;
  row-gap: 0.5rem;

  .thumbnail-wrap {
    display: flex;
    align-items: flex-end;
    color: inherit;
    position: relative;
  }
  .thumbnail {
    /* overflow: hidden; */
    background: var(--thumbnail-background);
    grid-column: span 4;
    &:not(:hover) {
      .controls {
        visibility: hidden;
        pointer-events: none
      }
    }
    .message-svg {
      width: 0.8lh;
      height: 0.8lh;
      fill: rgba(0,0,0,0.7);
      transform: translateY(0.13lh);
    }
    .controls {
      display: flex;
      align-items: center;
      padding-left: 0.7rem;
      padding-right: 0.7rem;
      font-size: 0.76rem;
      width: 100%;
      height: 1.6lh;
      position: absolute;
      background: rgba(255,255,255,0.8);
      .add-taken: {
        font-weight: 500;
        color: var(--big-blue);
      }
      .taken {
        flex-grow: 1;
      }
      a {
        color: inherit;
      }
      .messages {
        display: flex;
        gap: 0.3rem;
      }

    }
  }
}

/* *************
     NEW LAYOUT
***************/
.page {
  padding-bottom: 0.7rem;
  &.full-viewport {
    display: block;
    padding: 0;
    height: 100%;
    width: 100%;
  }
}
.results {
  margin-left: 0.7rem;
  margin-right: 0.7rem;
  margin-top: 0.7rem;
  margin-bottom: 0.7rem;
  .thumbnail {
    /* margin-right: 0.7rem; */
    margin-bottom: 0;
    img {
      width: 100%;
      aspect-ratio: 16/9;
      object-fit: contain;
    }
  }
}

a {
  text-decoration: none;
  color: inherit;
}

.about {
  width: 100%;
  font-family: var(--serif);
  display: flex;
  flex-direction: column;
  align-items: center;
  .about-inside {
    width: 40rem;
  }
}


.topbar {
  padding-top: 1rem;
  min-width: 40rem;
  flex-wrap: wrap;
  height: auto;
  padding-bottom: 0.8rem;
  padding-left: 1.4rem;
  display: flex;
  justify-content: space-between;
  align-items: last baseline;
  align-items: end;
  font-weight:var(--topbar-font-weight);
  font-size: 0.86rem;
  background-color: var(--cream-background);
  .topbar-element {
    /* line-height: 0.5em; */
    > * {
      flex-shrink: 0;
    }
  }

    /*
    margin-left: 0.7rem;
    margin-right: 0.7rem;
    &:hover {
      text-decoration: underline;
    }
  } */
  .topbar-title {
    font-size: 2.4rem;
    display: block;
    flex-grow: 0.5;
    line-height: 1;
    padding-bottom: 0.4rem;
  }

  .topbar-menu {
    text-transform: uppercase;
    font-size: 0.86rem;
    font-weight: 400;
    letter-spacing: 0.08rem;
    display: flex;
    flex-grow: 0.5rem;
    a {
      display: block;
      padding-left: 0.6rem;
      padding-right: 0.6rem;
      padding-bottom: 0.6rem;
      border-bottom: 1px solid var(--very-light-grey);
      &:hover, &.active {
        border-bottom: 1px solid var(--sand-dark);
      }
    }
  }

  .topbar-right {
    justify-content: flex-end;
    display: flex;
    align-items: baseline;
    flex-grow: 1;
    margin-right: 0.7rem;
  }

  .topbar-tools {
    align-items: stretch;
    font-weight: 400;
    display: flex;
    margin-right: 2rem;
    .add-photos-button {
      margin-right: 1em;
      text-align: center;
      padding-left: 1em;
      padding-right: 1em;
    }
    .brown-and-gold-button {
      padding: 0.6rem;
      font-size: 0.86rem;
    }
  }

  .topbar-account {
    display: flex;
    align-items: baseline;
    letter-spacing: 0.08rem;
    font-size: 1rem;
    font-weight: 400;
    a {
      display: flex;
      align-items: baseline;
    }
    .account-text {
      padding: 0.6rem;
    }
    svg[svg-name="user"] {
      position: relative;
      top: 0.2lh;
      width: 1.4rem;
    }
    svg[svg-name="lock"] {
      position: relative;
      top: 0.2lh;
      fill: var(--dark-red-color);
      width: 1.4rem;
    }

  }

  .admin-view-form {
    input {
      background: none;
      border: none;
      font-size: inherit;
      text-transform: inherit;
      letter-spacing: 0.08rem;
      font-weight: inherit;
      font-family: inherit;
      color: inherit;
      padding: 0;
      &:hover {
        text-decoration: underline;
      }
    }
  }
}



.bar {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--light-grey-color);
  min-height: 3rem;
  position: sticky;
  z-index: 999;
  background: white;
  top: 0;
  .facets, .pagination {
    color: var(--menu-color);
    display: flex;
    align-items: center;
    /* text-transform: uppercase; */
    font-size: var(--bar-font-size);
  }
  .facets {
    margin-left: 0.7rem;
    &.grow {
      flex-grow: 1;
    }
    /* .down-arrow {
      svg {
        position: absolute;
        top: 0.8rem;
        width: 1.4rem;
        rotate: -90deg;
      }
    } */
    &.flush-right {
      padding-right: 0.7rem;
      .facet:hover {
        border-left: 1px solid var(--light-grey-color);
      }
    }
    .facet {
      padding-left: 1.05rem;
      padding-right: 1.35rem;

      height: 100%;
      display: flex;
      align-items: center;
      position: relative;
      border-left: 1px solid rgba(0,0,0,0);
      border-right: 1px solid rgba(0,0,0,0);
      border-top: 1px solid rgba(0,0,0,0);
      color: inherit;
      &.erase-filters {
        color: var(--sand-dark);
        &:hover {
          text-decoration: underline;
          text-decoration-color: rgba(from var(--menu-color) r g b / .3);
          text-underline-position: under;
          text-decoration-color: var(--sand-dark);
        }
      }
      .current-value {
        display: flex;
        cursor: default;
        svg {
          width: 1.4rem;
          rotate: -90deg;
          position: relative;
          top: 0.2rem;
        }
        a {
          color: inherit;
          &:hover {
            text-decoration: underline;
          }
          &:not(:hover) {
            text-decoration: none;
          }
        }
      }
      .search-list {
        margin: 0px;
        position: absolute;
        width: 15rem;
        top: 100%;
        left: -1px;
        z-index: 9999;
        background: rgba(255,255,255,0.8);
        padding-left: 0.7rem;
        padding-top: 0.7rem;
        /*margin-left: -2px;*/
        padding-bottom: 0.7rem;
        border-left: 1px solid var(--light-grey-color);
        border-bottom: 1px solid var(--light-grey-color);
        border-right: 1px solid var(--light-grey-color);
        > li {
          height: auto;
          min-height: 1lh;
          margin-bottom: 0.4lh;
          display: flex;
          flex-direction: column;
          a {
            color:  inherit;
            display: block;
            height: 100%;
          }
        }
      }
      &:hover {
        border-left: 1px solid var(--light-grey-color);
        border-top: 1px solid var(--light-grey-color);
        &:nth-child(1) {
          border-left: 1px solid var(--light-grey-color);
        }
      }
      &:hover + .facet {
        border-left: 1px solid var(--light-grey-color);
      }
      &:hover:last-child {
        border-left: 1px solid rgba(0,0,0,0);
        border-top: 1px solid rgba(0,0,0,0);
        text-decoration: underline;
        cursor: pointer;
        /* border-right: 1px solid var(--light-grey-color); */
      }
      /* Avoid 1px vertical border glitch on hover by using the next item's border */
      /* &:has(+ .facet:hover) {
        border-right: 1px solid var(--light-grey-color);
      } */
      &:not(:hover) {
        .search-list {
          visibility: hidden;
          pointer-events: none;
        }
      }
      &.tags {
        .current-value, .search-list {
          flex-wrap: wrap;
        }
        .search-list {
          row-gap: 0.3rem;
          width: 25rem;
        }
        .current-value, .search-list {
          display: flex;
          align-items: center;
        }
        .current-value {
          .title {
            padding: var(--tag-padding);
            padding-right: 1em;
          }
        }
        .tag {
          text-transform: none;
        }
      }
      &.sort, &.years {
        padding-right: 1.8rem;
      }
      &.years {
        .search-list {
          display: flex;
          flex-direction: column;
          max-height: 20lh;
          flex-wrap: wrap;
        }
        .month-selector {
          margin-left: 1rem;
        }
      }
    }
  }
  .pagination {
    z-index: 999999;
    display: flex;
    justify-content: flex-end;
    margin-left: 0.7rem;
    padding-right: 1rem;
    gap: 0.3rem;
    & > a, & > div {
      color: inherit;
      text-decoration: inherit;
      &:hover {
        color: var(--almost-black);
      }
    }
    .left-arrow, .right-arrow {
      color: var(--sand-dark);
      &:hover {
        text-decoration-color: var(--sand-dark);
        text-decoration: underline;
        text-decoration-color: rgba(from var(--menu-color) r g b / .3);
        text-underline-position: under;
      }
      svg {
        width: 1rem;
        transform: translateX(0.2rem);
        rotate: 90deg;
      }
    }
    .left-arrow {
      margin-right: 0.4rem;
    }
    .right-arrow {
      margin-left: 0.4rem;
    }
    .right-chevron {
      svg {
        rotate: 270deg;
        transform: translateX(-0.2rem);

      }
    }
    .current-page-number {
      border: 1px solid #D7D2BB;
      border-radius: 3px;
      padding-left: 0.2em;
      padding-right: 0.2em;
      display: block;
      text-align: center;
      width: auto;
    }

  }
}

.one-photo .bar {
  height: 3rem;
}

.top.bar {
  z-index: 999999999;
  background: var(--cream-background);
}

.bottom.bar {
  justify-content: flex-end;
  border-top: 1px solid var(--light-grey-color);
  border-bottom: 0;
}
body {
  font-family: var(--sans);
  font-optical-sizing: auto;
  font-style: normal;
}

.zoomed {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  .back-to-photo-box {
    /* padding-left: 2rem; */
    /* height: var(--back-to-search-box-height); */
    display: flex;
    align-items: center;
    position: absolute;
    padding-top: 1rem;
    padding-left: 1rem;
  }
  img {
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
}


.one-photo-layout {
  display: flex;
  height: 100vh;
  background: var(--form-grey);

  .back-to-search-box {
    position: absolute;
    top: 2rem;
    left: 2rem;
    display: flex;
    align-items: center;
  }


  .new-comment-container {
    padding-right: 1em;
    padding-bottom: 1em;
    padding-top: 1em;
    padding-left: 1em;
  }

  .one-photo {
    --comment-space-width: 25rem;
    --pagination-width: 8rem;
    display: flex;
    width: 100%;
    flex-direction: row;
    justify-items: center;
    justify-content: center;
    min-width: 0;
    .one-photo-with-pagination {
      position: relative;
      display: flex;
      justify-items: center;
      justify-content: center;
      align-items: center;
      flex-grow: 1;
      &:not(:hover) .pagination {
        display: none;
      }

      .pagination {
        position: absolute;
        top: 0;
        bottom: 0;
        width: var(--pagination-width);
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: stretch;
        &:hover {
          opacity: 1;
        }
        a {
          display: flex;
          align-items: center;
          width: 100%;
          justify-content: center;
          &:hover {
            /* background: rgba(0,0,0,0.02); */
            div {
              background: rgba(255,255,255,0.8);
            }
          }
          div {
            background: #F2F2F2;
            border: 2px solid #F2F2F2;
            padding: 0.3rem;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            border-radius: 50%;
            svg {
              height: 3rem;
              width: 3rem;
            }
          }
        }
        &.pagination-back {
          left: 0;
          svg {
            transform: translateY(2px);
            rotate: 90deg;
          }
        }
        &.pagination-forward {
          right: 0;
          svg {
            transform: translateY(2px);
            rotate: 90deg;
          }
        }
      }
      &:hover {
        .pagination {
          display: flex;
        }
        .pagination:not(:hover) {
          opacity: 0.4;
      }
    }

    .return {
      padding-left: 0.7rem;
      font-size: var(--bar-font-size);
      color: inherit;
      &:not(:hover) {
        text-decoration: none;
      }
    }
    .photo-and-controls {
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: center;
      flex-grow: 1;
      height: 100%;

      .photo-itself {
        flex-grow: 1;
        cursor: zoom-in;
        display: flex;
        justify-content: center;
        align-self: stretch;
        height: auto;
        /* See
          https://raphaelgoetter.wordpress.com/2016/11/09/flexbox-min-width-0-is-the-new-zoom-1/
        */
        min-height: 0;
        img {
          filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.2));
        }

        .main-photo {
          object-fit: contain;
          max-width: 100%;
        }
      }
    }
  }
  .above-new-comment {
    flex: 1;
    overflow: hidden;
    overflow-y: scroll;
    padding-right: 2em;
    padding-left: 2em;
    border-bottom: 1px solid var(--sand-light);
  }


  .right-of-photo {
    background: var(--cream-background);
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
    width: 30em;
    box-shadow: 0px 0px 14px rgba(0,0,0,0.2);
    max-height: 100vh;
    .extra-info {
      width: auto;
      display: flex;
    }
  }
}
}


.photo-deleter {
  display: inline-flex;
  align-items: center;
  [type="submit"] {
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--big-blue);
    &:hover {
      text-decoration: underline;
      color: var(--dark-red-color);
    }
  }
}

.brown-and-gold-button {
  min-width: max-content;
  letter-spacing: 0.08rem;
  background: white;
  display: block;
  border: 1.5px solid var(--flashy-gold);
  text-transform: uppercase;
  font-size: 0.70rem;
  color: var(--dark-grey);
  padding: 0.4rem;
  text-decoration: inherit;
  cursor: pointer;
  &:hover {
    background: var(--light-gold);
  }
}
.default-gold-background-button {
  background-color: var(--flashy-gold);
  color: white;
  &:hover {
    border-color: var(--flashy-dark-gold);
    background-color: var(--flashy-dark-gold);
  }
}
.big-button {
  font-size: 1.44rem;
  padding: 0.9rem;
}

.centered-button {
  text-align: center;
}

.grey-text-button {
  color: var(--light-grey);
}

.comment-space-closer {
  flex-shrink: 0;
  background: blue;
  width: 35px;
  cursor: pointer;
}

.tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: 1.5px solid var(--sand-dark);
  border-radius: 1lh;
  min-width: 3em;
  text-align: center;
  padding: 0.2rem 0.5rem 0.2rem 0.5rem;
  padding-left: 0.6rem;
  position: relative;
  color: var(--almost-dark);
  background: var(--sand-light);
  font-size: 0.8rem;
  letter-spacing: 0.07rem;
  text-decoration: none;
  a {
    color: inherit;
    text-decoration: none;
  }


  .remove {
    margin-left: 0.3em;
  }

  .deleter {
    display: inline-block;
    margin-bottom: 0;
    background: white;
    color: blue;
    padding: 0;
    .delete-button {
      padding: 0px;
      padding-left: 0.2rem;
      svg[svg-name="trash"] {
        width: 1em;
        transform: translateY(0.15em);
        height: 1em;
      }
    }
  }
}

.tag.person {
  border-color: var(--almost-black);
  color: var(--almost-black);
}

.svg-button {
  background: none;
  cursor: pointer;
  border: none;
  display: block;
  svg {
    width: 1em;
    &:hover {
      stroke: var(--dark-gold);
    }
  }
}



.search-list .inquery {
  font-weight: 900;
}

.search-list {
  list-style: none; /* No bullets */
  /* No indent */
  padding-left: 0;

}

.search {
  /* display: flex; */
  height: auto; /* Make the container take up the full height of the viewport */
  background: var(--cream-background);
}



.one-photo-pagination {
  display:flex;
  a {
    color: inherit;
    text-decoration: inherit;
  }
}


/* *************
     GENERAL
***************/
body {
  margin: 0;
}

[x-cloak] { display: none !important; }


/* *************
     PAGINATION / PAGE
***************/

.pages {
  margin-bottom: 1em;
}


.change-password input, .edit-user input {
  display: block;
}

/* *************
     THUMBNAIL
***************/

.thumbnail-wrap form {
  position:absolute;
  bottom:1em;
  right:1em;
  visibility:hidden;
}

.thumbnail-wrap form button {
  border: none;
}

.thumbnail-wrap:hover form {
  visibility: visible;
}

/* *************
     TAGS PAGE
***************/

.search-list a {
  text-decoration: none;
}

.search-list a:hover {
  text-decoration: underline;
}

.my-account {
  .disconnect-link {
    color: var(--dark-red-color);
    font-weight: 500;
    &:hover {
      text-decoration: underline;
    }
  }
  div a {
    text-decoration: underline;
  }
}


/* *************
     UPLOAD
***************/

.add-photo-page {
  display: flex;
  justify-content: center;
  flex: 1;
  background: url('/Vincent_Willem_van_Gogh_128.jpg');
  background-position: -300px 0;
  width: 100%;
  position: relative;
  padding-bottom: 2lh;
  .background-cover {
    z-index: 1;
    background-color: rgba(from var(--cream-background) r g b / .75);
    width: 100%;
    height: 100%;
    position: absolute;
  }
  h1 {
    color: var(--sand-dark);
    font-size: 1.4rem;
    padding-left: 0;
    margin-left: 0;
    margin-bottom: 1rem;
    padding-left: var(--upload-left-gutter);
  }
  .interline {
    position: relative;
    background-color: var(--sand-dark);
    height: 1px;
    width: calc(100% + var(--upload-left-gutter));
    left: calc(var(--upload-left-gutter) * -1);
  }
}


.my-account {
  margin-left: var(--upload-left-gutter);
}

.add-photo-container {
  z-index: 9999;
  width: 60rem;
  max-width: 95%;
  background-color: var(--cream-background);
  margin-top: 1rem;
  padding-left: var(--upload-left-gutter);
  box-shadow: 0px 0px 14px rgba(0,0,0,0.2);
  padding-bottom: 2lh;
}


.photo-form .upload-button {
  display: block;
  margin-top: 1em;
  margin-bottom: 1em;
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  font-size: 0.8rem;
}

.photo-form {
  margin-top: 1rem;
  margin-left: 0.7rem;
}

.upload-step {
  font-weight: 400;
  font-size: 1.1rem;
  padding-left: 0.7rem;
}

.upload-label {
  color: var(--big-blue);
  font-weight: 600;
  input {
    display: none;
  }
  &:hover {
    text-decoration: underline;
  }
}

.upload-label-icon {
  position: relative;
  top: 0.2rem;
}


.photo-form progress {
  display: block;
}

.photo-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.photo-preview .photo-preview-img-container {
  height: 200px;
  display: flex;
  align-items: center;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  margin-right: 1.5em;
  background: rgba(0,0,0,0.4)
}

.photo-preview-img-container a img {
  display: block; /* otherwise I get a 4px vertical gap */
  margin: auto;
}

.photo-preview-img-container .warning {
  font-size: 0.75rem;
  background: hsl(50deg 96.65% 82.26%);
  display: block;
}

.photo-preview img {
  max-width: 200px;
  max-height: 200px;
}

.taken-legend {
  /* letter-spacing: 0.04rem;
  font-size: 0.84rem; */
  color: var(--form-dark-grey);
  font-size: 0.8rem;
}



/* *************
     TAGS
***************/


.tag-ui {
  margin-top: 1.5lh;
  display: flex;
  flex-direction: column;
  align-items: start;
  .add-tag {
    margin-right: 1.4rem;
    button {
      font-family: inherit;
    }
  }
  .tag-selector .tag-list {
    bottom: 0;
    top: auto;
  }

  .column-A {
    gap: 0.3rem;
    display: flex;
    flex-direction: column;
    margin-bottom: 0.7rem;
  }
  .column-B {
    margin-top: 1rem;
    gap: 0.7rem;
    display: flex;
    flex-direction: column;
  }

  .tag {
    &:has(form:hover) {
      text-decoration: line-through;
      color: rgb(from var(--sand-dark) r g b / .5);
    }
  }


  .people {
    margin-bottom: 0.5rem;
    a {
      text-transform: capitalize;
      position: relative;
      text-decoration: underline;
      .deleter {
        display: none;
        background: white;
        border: 1px solid var(--sand-dark);
        border-radius: 15px;
      }
      &:hover .deleter {
        display: block;
      }

      &:has(form:hover) {
        /* Read https://blog.jim-nielsen.com/2021/css-relative-colors/ */
        color: rgb(from var(--dark-grey) r g b / .5);
        text-decoration: line-through;
      }
    }
    .tag-overlay {
      position: absolute;
      top: 0;
      left: 0;
      background: none;
      width: 100%;
      height: 100%;
      /* pointer-events: none; */
      display: flex;
      flex-direction: row;
      align-items: stretch;
      justify-content: flex-end;
      form {
        /* pointer-events: auto; */
        background: white;
        flex-basis: auto;
      }
      .svg-button {
          padding: 0;
          padding-right: 0.08rem;
          padding-left: 0.08rem;
          margin-top: 0.01rem;
          margin-bottom: 0.08rem;
          height: 100%;
          display: flex;
          flex-direction: row;
          align-items: center;
        }
    }
  }
}

.tag-list {
  display: flex;
  flex-direction: row;
  align-items: end;
  flex-wrap: wrap;
  gap: 0.4rem 0.4rem;
  .person {
    display: inline;
  }
  .deleter {
    background: none;
  }
}



.tag-type {
  font-weight: bold;
  width: 100%;
}

.tag-list + .tag-type {
  margin-top: 1em;
}


/* *************
     ADD TAG
***************/

.add-tag {
  display: inline-flex;
}

.add-tag input[type="text"] {
  width: 20em;
  font-family: inherit;
  border: 1.5px solid var(--dark-grey);
  color: var(--almost-black);

  font-size: 0.92rem;
  padding: 0.5em;
}

.add-tag input[type="text"]::placeholder {
  color: var(--light-grey);
}

/* .tags > div:hover button {
  display: block;
} */


.tag-selector {
  position: relative;
  display: inline-block;
}

.tag-selector .tag-list {
  position:absolute;
  z-index: 2;
  left: 100%;
  top:0;
  background: white;
  border: 1px solid var(--almost-black);
  width: 15em;
  margin-left: 0.1rem;
}

.tag-selector .tag-list .tag {
  padding: 0.3rem 0.5rem;
  display: block;
  background: white;
  border: none;
  width: 100%;
  text-align: left;
  border-radius: 0px;
}
.tag-selector .tag-list .tag:hover,
.tag-selector .tag-list .tag:focus {
  background: #92b9f7;
}


/* *************
     COMMENT LINK
***************/
.comment-link a {
  color: var(--almost-black);
  margin-top: 1em;
}

/* *************
     COMMENT
***************/


/* *************
     TAKEN (when the photo was taken)
***************/
.taken {
  position: relative;
  width: 15rem;
  display: flex;
  align-items: start;
  .taken-without-error {
    display: flex;
    align-items: baseline;
  }
  .taken-field {
    border-radius: var(--tag-border-radius);
    width: 7em;
  }
}

.taken-without-date {
  .edit-taken {
    color: var(--big-blue);
    font-weight: 600;
    margin-top: 0.1rem;
  }
  form {
    display: flex;
  }
}

.photo-to-fix-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.photo-to-fix-container {
  width: 210px;
  display: flex;
  flex-direction: column;
  justify-content: start;
}

.photo-to-fix-link {
  height: 210px;
  display:flex;
  align-items: stretch;
  justify-content: space-around;
  background: rgba(0,0,0,0.1);
  img {
    flex: 1;
    object-fit: contain;
    width: 100%;
    height: 100%;
  }
}



/* *************
     ADD MESSAGE
***************/
form.new-comment {
  margin-right: 0.7rem;
  h2 {
    margin-top: 0;
    margin-bottom: 1rem;
    font-size: 1.2rem;
  }
  textarea {
    padding: 0.7rem;
    font-size: 1rem;
    font: var(--sans);
    width: 100%;
    height: 2.5lh;
    border-radius: 0px;
    border-width: 1.5px;
    border-color: var(--dark-grey);
    transition-property: height;
    transition-duration: 0.1s;
    transition-timing-function: ease-in;
    margin-bottom: 0.7rem;
  }
  &.expanded {
    textarea {
      height: 10lh;
      transition-timing-function: ease-out;
      transition-duration: 0.2s;
    }
  }
  .submit-comment {
    float: right;
    margin: 0;
    /* padding: 0.5rem;
    font-family: inherit;
    display: block;
    margin-top: 0.7rem;
    background: none;
    border: 1px solid var(--medium-gold);
    color: var(--dark-grey);
    text-transform: uppercase; */
  }
}

.comment-space {
  width: 25rem;
  flex-shrink: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: visible;

  .comment-space-inner {
    width: 25rem;
    height: 100%;
  }
  .comments-container {
    margin-top: 1lh;
    position: relative;
    height: 100%;
    border-top: 1px solid var(--sand-light);



  }
  .comments {
    overscroll-behavior: contain;
    width: 100%;
    .comment {
      position: relative;
      .comment-bottom {
        display: flex;
        flex-direction: row;
      }
      .comment-controls {
        display: flex;
        flex-direction: row;
        gap: 0;
        align-items: end;;
        svg {
          width: 1.2rem;
        }
        button,form {
          display: block;
        }
        form {
          display: flex;
          align-items: end;
        }
        .edit-comment {
        }
      }

      textarea {
        border-radius: var(--tag-border-radius);
        height: 15lh;
        width: calc(100% - 2rem);
      }
    }
  }
  .comment {
    font-size: 1rem;
    hyphens: auto;
    line-height: 1.5;
    margin-bottom: 1lh;
    border-radius: 10px 10px 0 10px;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
    .comment-content {
      color: var(--dark-brown);
    }
    .comment-sig {
      font-size: 0.84rem;
      font-weight: 700;
      .user-sig {
        font-size: 0.92rem;
        text-transform: capitalize;
      }
      .date-sig {
        font-weight: 300;
        font-size: 0.84rem;
        color: var(--form-dark-grey);
      }
    }
  }

}

/* *************
     COMMENT SIG
***************/
.comment-sig {
  text-align: right;
  width: 100%;
  font-size: 0.84rem;
}
/* *************
     RANDOM
***************/

.random-controls {
  font-size: 2em;
}
.random-controls a {
  text-decoration: none;
  color: var(--almost-black);
}

.random-controls a:hover {
  position: relative;
  left: 1px;
  top: 1px;
}



.results {
  /* flex-grow: 1; */
  /* background-color: #fff; White background for the content */
  /* padding: 1em; */
  box-sizing: border-box;
}

.lang {
  color: var(--medium-grey);
  text-decoration: underline;
  position: relative;
  top: 1lh;
  &:hover {
    color: var(--flashy-gold);
  }
}

.activities {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--serif);
  .activities-inside {
    width: 35rem;
  }
  .activity-thumbnail {
    display: block;
    width: 100%;
    text-align: center;
    img {
      width: 35rem;
    }
  }
  .navigation {
    font-size: 1.2rem;
    margin-top: 2rem;
    display: flex;
    justify-content: space-between;
    a:hover {
      text-decoration: underline;
    }
  }

}

.my-account {
  margin-left: 1.4rem;
  width: 40rem;
  display: flex;
  flex-direction: column;
  form {
  }
}

.connect-form {
  margin-top: 1rem;
  .text-input {
    padding: 0.2rem;
    margin-bottom: 1.1rem;
    &.password-input {
      margin-bottom: 1.6rem;
    }
  }
  .submit-input {
    margin-top: 0;
    font-size: 0.86rem;
  }
  input[type="submit"] {
    width: 10rem;
  }
}

/* *************
     SVG
***************/

svg[svg-name="chevron"] {
  transform: rotate(90deg);
  height: 1em;
}

svg[svg-name="chevron"],
svg[svg-name="chevron2"],
svg[svg-name="edit"],
svg[svg-name="trash"],
svg[svg-name="user"],
svg[svg-name="check"],
svg[svg-name="cross"],
svg[svg-name="separator"],
svg[svg-name="upload-icon"],
svg[svg-name="lock"] {
  stroke: var(--big-blue);
  stroke-width: 1.5px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

svg[svg-name="chevron2"] {
  stroke: var(--form-dark-grey);
}

svg[svg-name="separator"] {
  stroke: var(--sand-dark);
  display: block;
  width: 100%;
}
/* *************
    UTILITIES
***************/

.full-screen-body {
  padding-bottom: 0;
  max-height: 100vh;
  margin-bottom: 0;
}

/* .background-flower-body {
  background: url('/Vincent_Willem_van_Gogh_128.jpg');
  background-size: cover;
  background-position: -30px 0;
} */

.main-flexbox {
  max-width: 100vw;
  width: 100vw;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  .page {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }
}


/* *************
   NEW DESIGN
***************/
.white-and-blue-button {
  font-weight: 550;
  background-color: var(--big-blue);
  font-size: 0.86rem;
  color: white;
  text-transform: uppercase;
  padding: 0.4rem;
  font-weight: 600;
  letter-spacing: 0.1rem;;
  line-height: 2;
  border: none;
  &:hover {
    background-color: var(--dark-big-blue);
  }
  &:disabled {
    background-color: var(--form-grey);
    color: var(--form-dark-grey);
  }
}



.big-blue-a {
  color: var(--big-blue);
  text-decoration: underline;
}

/* ************
     LOGIN
***************/

.login-two-boxes {
  width: 100vw;
  display: flex;
  position: absolute;
  top: 0;
  left: 0
  right: 0;
  bottom: 0;
  .login-side-painting {
    flex: 1;
    width: 50%;
    background: url('/Vincent_Willem_van_Gogh_128.jpg');
    background-size: 150%;
    min-width: 0;
    background-position: -300px 0;
  }
  .login-side-form {
    flex: 1;
    width: 50%;
    min-width: 30rem;
    display: flex;
    align-items: start;
    justify-content: center;
    background: var(--cream-background);
    .main-title {
      font-size: 4rem;
      text-align: center;
      margin-top: 6rem;
      margin-bottom: 1rem;
      width: 28rem;
    }

    .login-form-box {
      width: 28rem;
      background: white;
      filter: drop-shadow(0px 4px 14px rgba(164,134,57,0.4));
      padding: 2rem;
      font-size: 0.8rem;
      h1 {
        text-transform: uppercase;
        letter-spacing: 0.2em;
        color: var(--big-blue);
        font-size: 1.2rem;
        margin-top: 1rem;
        margin-bottom: 1.5rem;
      }
      label {
        font-size: 0.8rem;
        margin-bottom: 0.3rem;
        display: block;
      }
      input.text-input {
        width: 15rem;
        border: 1px solid var(--form-grey);
        font-size: 0.8rem;
        padding-left: 0.4rem;
        display: block;
        height: 1.8rem;
        &::placeholder {
          color: var(--form-dark-grey);
        }
      }
      .login-separator {
        background: var(--form-grey);
        border: none;
        height: 1px;
        width: 100%;
        margin-top: 1.5rem;
        margin-bottom: 1.5rem;
      }
      .no-account-message {
      }

    }
  }
}

/* *************
     TODAYS PHOTO
***************/

.today {
  width: 100vw;
  display: flex;
  position: absolute;
  top: 0;
  left: 0
  right: 0;
  bottom: 0;
  .today-left {
    position: relative;
    height: 100vh;
    display: flex;
    flex: 0.62;
    /* background: url('/Vincent_Willem_van_Gogh_128.jpg'); */
    background-color: var(--cream-background);
    background-size: cover;
    min-width: 0;
    .today-background {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      overflow: hidden;
      img {
        width: 200%;
        height: 200%;
        object-position: -758px 0px;
        aspect-ratio: auto;
        object-fit: cover;
      }
    }
    .today-filter {
      position: absolute;
      width: 100%;
      height: 100%;
      background-color: rgba(from var(--cream-background) r g b / .75);
      display: flex;
      align-items: center;
      justify-content: center;
      .img-contain {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 80%;
        width: 80%;
        img {
          filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.2));
          aspect-ratio: auto;
          object-fit: contain;
          width: 100%;
          height: 100%;
        }
      }
    }
  }
  .today-right {
    flex: 0.38;
    min-width: 20rem;
    display: flex;
    align-items: start;
    justify-content: center;
    background: var(--cream-background);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    .enter-site-box {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      .main-title {
        margin-top: 0px;
        font-size: 4rem;
        text-align: center;
        margin-bottom: 1rem;
        width: 28rem;
      }
      .enter-site {
        font-size: 1rem;
        display: block;
        width: 14em;
        text-align: center;
      }
    }
    .details-box {
      position: absolute;
      bottom: 0px;
      right: 0;
      left: 2em;
      font-size: 0.75rem;
      line-height: 2;
      margin-bottom: 1em;
      .today-label {
        position: relative;
        .today-chevron-svg {
          width: 0.3rem;
          height: 0.3rem;
          position: absolute;
          left: -1em;
        }
        font-weight: bold;
      }
      a {
        color: var(--big-blue);
        text-decoration: underline;
        text-underline-offset: 2px;
      }
    }
  }
}

@media (max-width: 80rem) {
  .results {
    .thumbnail {
      img {
        aspect-ratio: 4/3;
      }
    }
  }
}

@media (max-device-width: 736px) {
  html {
    font-size: 32px;
  }
}

@media (max-width: 50rem) or (max-device-width: 736px) {

  :root {
    --bar-font-size: 1.8rem;
  }
  .topbar {
    .topbar-title {
      font-size: 4rem;
    }
    .topbar-menu {
      font-size: 1.6rem;
      padding-top: 0.4em;
      padding-bottom: 0.4em;
      font-weight: 500;
      width: 100%;
      line-height: 2.5;
      a {
        margin-right: 1em;
        &.active {
          border-bottom: 1px solid transparent;
          text-decoration: underline;
          text-underline-offset: 2px;
          text-underline-position: under;
          color: var(--dark-grey);
        }

      }
    }
    .topbar-right {
      justify-content: flex-start;
      .topbar-element {
        font-size: 2rem;
      }
      svg[svg-name="user"] {
        width: 3rem;
      }
      svg[svg-name="lock"] {
        width: 3rem;
      }
      .white-and-blue-button {
        font-size: 1.2rem;
      }
    }

  }
  .search {
    .bar {
      position: static;
      padding-top: 2rem;
      flex-direction: column;
      .facets {
        flex-direction: column;
        align-items: start;
        &.grow {
          flex-wrap: wrap;
          row-gap: 0;
        }
        .facet {
          height: auto;
          &.erase-filters {
            margin-top: 1.4rem;
          }
          &:not(:hover) {
            .search-list {
              visibility: visible;
              pointer-events: auto;
            }
          }
          &:not(.active) {
            .search-list {
              visibility: hidden;
              pointer-events: auto;
            }
          }
          &.active {
            .search-list {

            }
          }
          .current-value {
            height: 4.5rem;
          }
          &.tags {
            width: 90vw;
            flex: 1 1 auto;
            .title {
              width: 100%;
              margin-bottom: 0.3em;
            }
            .tag {
              font-size: 1.2rem;
            }
            .current-value {
            }

          }
          .current-value {
            svg {
              width: 3.3rem;
              height: 3.3rem;
            }
          }
          .search-list {
            background-color: white;
            padding-left: 0px;
            width: 100vw;
            z-index: 9999999;
          }
        }
      }
    }
    .grow {
      width: 100%;
    }
  }
  .today {
    flex-direction: column;
    .today-left {
      flex: 0.8;
    }
    .today-right {
      .enter-site-box {
        .main-title {
        }
        .enter-site {
          font-size: 1.2rem;
        }
      }
      .details-box {
        top: 1rem;
        bottom: auto;
        font-size: 1rem;
        line-height: 1.3;
      }
    }
  }
  .results {
    .thumbnail {
      img {
        aspect-ratio: 1/1;
      }
    }
  }
  .thumbnails {
    .controls {
      visibility: visible !important;
      pointer-events: auto !important;
      position: static !important;
      font-size: 1.2rem !important;
    }
    .thumbnail-wrap {
      display: flex;
      flex-direction: column;
    }

  }
  .one-photo-layout {
    .one-photo {
      flex-direction: column;
      justify-content: start;
      align-items: stretch;
      .right-of-photo {
        width: auto;
        .comment-space {
          width: auto;
        }
        .new-comment-container {
          position: fixed;
          width: 100%;
          bottom: 0;
          background: var(--cream-background);
        }
      }
    }
  }
  .tag {
    .deleter {
      .delete-button {
        svg[svg-name="trash"] {
          width: 2em;
          height: 2em;
        }
      }
    }
  }
  .tag-ui {
    .people {
      a {
        display: inline-flex;
        align-items: center;

        .deleter {
          display: block;
          svg[svg-name="trash"] {
            width: 2.2em;
            height: 2.2em;
          }
        }

        .tag-overlay {
          position: static;
          display: block;
        }
      }
    }
    .tag-selector {
      .tag-list {
        position: static;
        width: 100%;
      }
    }
  }
  .about {
    background: var(--cream-background);
    .about-inside {
      padding-left: 1rem;
      padding-right: 1rem;
    }
  }
}
