:root {
  --header-height: 75px;
  --padding-thin: 0.5rem;
  --padding-medium: 1rem;
  --padding-thick: 2rem;

  --color-primary: #32a6ff;
  --color-primary-dark: #0074cc;

  --color-red-delete: #cc1400;

  --border-radius-small: 5px;

  --upload-preview-height: 6rem;
}

html * {
  box-sizing: border-box;
}

strong {
  font-weight: bold !important;
}

.header {
  height: var(--header-height);
  padding: 0;
  margin: 0;
  width: 100%;
}

.nav-wrapper {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--padding-thin);
}

.form {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  padding: var(--padding-thick) var(--padding-medium);
  margin: var(--padding-thick) 0;
  border: 2px solid #ebebeb;
  border-radius: var(--border-radius-small);
}

.form > label {
  font-size: 2rem;
  position: absolute;
  left: 1rem;
  top: -1.5rem;
  padding: 0;
  margin: 0;
  background-color: white;
  padding: 0 var(--padding-thin);
}

.input-wrapper {
  display: grid;
  grid-template: 1fr / 1fr 4fr;
}

.input-wrapper > label {
  font-size: 1rem;
  width: 100%;
  text-align: right;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: var(--padding-thin);
}

.input-wrapper > input {
  margin: 0 !important;
}

.input-wrapper > textarea {
  resize: vertical;
  margin-top: 0px;
  margin-bottom: 0px;
  min-height: 4rem;
  height: 44px;
  outline: none;
  border-radius: var(--border-radius-small);
}

.photo-upload-wrapper {
  display: grid;
  grid-template: 1fr / var(--upload-preview-height) 4fr calc(var(--upload-preview-height) / 2);
  align-items: center;
  margin: var(--padding-thin) 0;
  border: 2px solid #ebebeb;
  border-radius: var(--border-radius-small);
  padding: var(--padding-thin);
}

.photo-upload-details-wrapper {
  grid-area: 1 / 2 / span 1 / span 1;
  display: flex;
  flex-direction: column;
  padding: var(--padding-thin) var(--padding-medium);
  align-items: flex-start;
  justify-content: flex-start;
  height: 100%;
}

.photo-upload-details-wrapper > .filename {
  font-size: 1rem;
}

.photo-upload-thumbnail {
  grid-area: 1 / 1 / span 1 / span 1;
  width: var(--upload-preview-height);
  height: var(--upload-preview-height);
  object-fit: cover;
  border-radius: var(--border-radius-small);
  box-shadow: 0 0 0.5rem 0 #bbbbbb;
}

.remove-photo-button {
  grid-area: 1 / 3 / span 1 / span 1;
  font-size: calc(var(--upload-preview-height) / 3);
  color: #cbcbcb;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.remove-photo-button:hover {
  color: var(--color-red-delete);
}

.custom-file-input::-webkit-file-upload-button {
 visibility: hidden;
}
.custom-file-input::before {
 content: 'Add Photo';
 display: inline-block;
 background-color: var(--color-primary);
 border-radius: var(--border-radius-small);
 padding: var(--padding-medium);
 outline: none;
 white-space: nowrap;
 -webkit-user-select: none;
 cursor: pointer;
 color: white;
 font-weight: bold;
 font-size: 1rem;
}
.custom-file-input:hover::before {
 background-color: var(--color-primary-dark);
}
.custom-file-input:active::before {
 background: var(--color-primary);
}

.button {
  border-radius: var(--border-radius-small);
  background-color: var(--color-primary);
  color: white;
  padding: var(--padding-medium);
  font-weight: bold;
  width: 100%;
  margin: 0 var(--padding-thin);
  display: flex;
  align-items: center;
  justify-content: center;
}

.button:hover {
  background-color: var(--color-primary-dark);
}

.button-wrapper {
  width: 100%;
  padding: var(--padding-thin);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
