:root {
  --canvasColor: #f9f9f9;
}

body {
  background: var(--canvasColor);
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  line-height: 1.5;
  font-size: 16px;
  text-align: center;
}

* {
  box-sizing: border-box;
}

main {
  --neutralShade1: #f2f2f2;
  --neutralShade2: #e8e9e9;
  --neutralShade3: #d1d3d4;
  --neutralShade4: #babdbf;
  --neutralShade5: #808488;
  --neutralShade6: #666a6d;
  --neutralShade7: #4d5052;
  --neutralShade8: #212122;
  --grayColor: #999;
  --lightGrayColor: #ddd;
  --borderRadius: 6px;
  --boxShadow: 0 2px 5px rgba(#333, 0.2);
}

/*overall layout*/
main {
  width: 90%;
  max-width: 1050px;
  margin: 3em auto 0;
  border: 1px solid var(--accentColor);
  display: grid;
  grid: repeat(5, fit-content(300px))/repeat(4, 1fr);
  grid-template-areas: "colors typography typography typography" "colors buttons buttons links" "inputs inputs inputs inputs" "badges tooltips alerts alerts" "loading tooltips alerts alerts";
  color: var(--foregroundColor);
  text-align: left;
}

main > section {
  position: relative;
}
main > section > h6 {
  color: var(--accentColor);
  background: var(--canvasColor);
  position: absolute;
  top: -10px;
  left: 20px;
  padding: 0 10px;
}
main > section h6.subheader {
  color: var(--grayColor);
  margin-top: 20px;
  margin-bottom: 20px;
  width: 100%;
}

.colors {
  grid-area: colors;
  padding: 30px;
  border: 1px solid var(--accentColor);
  border-width: 0 1px 1px 0;
}

.typography {
  grid-area: typography;
  border-bottom: 1px solid var(--accentColor);
}

.buttons-wrapper {
  grid-area: buttons;
  padding: 30px;
  border-bottom: 1px solid var(--accentColor);
}

.links {
  grid-area: links;
  padding: 30px;
  border: 1px solid var(--accentColor);
  border-width: 0 0 1px 1px;
}

.inputs-selects {
  padding: 40px 30px;
  grid-area: inputs;
  display: grid;
  grid-auto-flow: dense;
  grid: repeat(2, max-content)/repeat(6, 1fr);
  grid-gap: 30px;
  border-bottom: 1px solid var(--accentColor);
}
.inputs-selects .inputs {
  grid-column: span 3;
}
.inputs-selects .textarea-select {
  grid-column: span 3;
}
.inputs-selects .inputs .input__wrapper:last-child,
.inputs-selects .textarea-select .input__wrapper:last-child {
  margin: 0;
}
.inputs-selects .toggle-buttons,
.inputs-selects .checkboxes,
.inputs-selects .radio-buttons {
  grid-column: span 2;
}

.badges {
  grid-area: badges;
  padding: 30px 30px 40px;
}

.alerts {
  grid-area: alerts;
  padding: 40px 30px;
}

.tooltips {
  grid-area: tooltips;
  padding: 20px 30px 30px;
  border: 1px solid var(--accentColor);
  border-width: 0 1px;
}
.tooltips .tooltip:nth-child(-n + 2) {
  margin: 90px 0 20px;
}

.loading {
  grid-area: loading;
  padding: 40px 30px 30px 30px;
  text-align: center;
  border-top: 1px solid var(--accentColor);
}
.loading .spinner-2 {
  margin-top: 30px;
}

/*colors*/
.palette {
  display: grid;
  grid: 80px 45px min-content/repeat(5, minmax(50px, 1fr));
  margin-bottom: 1em;
}
.palette__main {
  grid-column: span 5;
}
.palette h5 {
  grid-column: span 5;
  text-align: left;
  padding: 10px 0;
}
.palette.main div:nth-child(1) {
  background: var(--primaryColor);
}
.palette.main div:nth-child(2) {
  background: var(--primaryShade1);
}
.palette.main div:nth-child(3) {
  background: var(--primaryShade2);
}
.palette.main div:nth-child(4) {
  background: var(--primaryShade3);
}
.palette.main div:nth-child(5) {
  background: var(--primaryShade4);
}
.palette.main div:nth-child(6) {
  background: var(--primaryShade5);
}
.palette.secondary div:nth-child(1) {
  background: var(--secondaryColor);
}
.palette.secondary div:nth-child(2) {
  background: var(--secondaryShade1);
}
.palette.secondary div:nth-child(3) {
  background: var(--secondaryShade2);
}
.palette.secondary div:nth-child(4) {
  background: var(--secondaryShade3);
}
.palette.secondary div:nth-child(5) {
  background: var(--secondaryShade4);
}
.palette.secondary div:nth-child(6) {
  background: var(--secondaryShade5);
}
.palette.accent1 div:nth-child(1) {
  background: var(--accentColor);
}
.palette.accent1 div:nth-child(2) {
  background: var(--accentShade1);
}
.palette.accent1 div:nth-child(3) {
  background: var(--accentShade2);
}
.palette.accent1 div:nth-child(4) {
  background: var(--accentShade3);
}
.palette.accent1 div:nth-child(5) {
  background: var(--accentShade4);
}
.palette.accent1 div:nth-child(6) {
  background: var(--accentShade5);
}
.palette.accent2 div:nth-child(1) {
  background: var(--accent2Color);
}
.palette.accent2 div:nth-child(2) {
  background: var(--accent2Shade1);
}
.palette.accent2 div:nth-child(3) {
  background: var(--accent2Shade2);
}
.palette.accent2 div:nth-child(4) {
  background: var(--accent2Shade3);
}
.palette.accent2 div:nth-child(5) {
  background: var(--accent2Shade4);
}
.palette.accent2 div:nth-child(6) {
  background: var(--accent2Shade5);
}
.palette.accent3 div:nth-child(1) {
  background: var(--accent3Color);
}
.palette.accent3 div:nth-child(2) {
  background: var(--accent3Shade1);
}
.palette.accent3 div:nth-child(3) {
  background: var(--accent3Shade2);
}
.palette.accent3 div:nth-child(4) {
  background: var(--accent3Shade3);
}
.palette.accent3 div:nth-child(5) {
  background: var(--accent3Shade4);
}
.palette.accent3 div:nth-child(6) {
  background: var(--accent3Shade5);
}
.palette.neutrals {
  grid-template-rows: repeat(2, 50px) min-content;
  grid-template-columns: repeat(4, 1fr);
}
.palette.neutrals div:nth-child(1) {
  background: var(--neutralShade1);
}
.palette.neutrals div:nth-child(2) {
  background: var(--neutralShade2);
}
.palette.neutrals div:nth-child(3) {
  background: var(--neutralShade3);
}
.palette.neutrals div:nth-child(4) {
  background: var(--neutralShade4);
}
.palette.neutrals div:nth-child(5) {
  background: var(--neutralShade5);
  grid-row: 2;
}
.palette.neutrals div:nth-child(6) {
  background: var(--neutralShade6);
  grid-row: 2;
}
.palette.neutrals div:nth-child(7) {
  background: var(--neutralShade7);
  grid-row: 2;
}
.palette.neutrals div:nth-child(8) {
  background: var(--neutralShade8);
  grid-row: 2;
}

/*typography*/
strong {
  font-weight: 500;
}

em {
  font-style: italic;
}

h1 {
  font: 700 48px/1.2 "Poppins", sans-serif;
  margin-bottom: 10px;
}

h2 {
  font: 700 32px/1.2 "Poppins", sans-serif;
  margin-bottom: 10px;
}

h3 {
  font: 700 24px/1.2 "Poppins", sans-serif;
  margin-bottom: 10px;
}

h4 {
  font: 700 20px/1.2 "Poppins", sans-serif;
  margin-bottom: 10px;
}

h5 {
  font: 500 18px/1.2 "Poppins", sans-serif;
  margin-bottom: 10px;
}

h6 {
  font: 500 16px/1.2 "Poppins", sans-serif;
  text-transform: uppercase;
}

.font-family {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.font-family > div {
  flex: 1 1 30%;
  padding: 30px 30px 0;
  min-width: 10em;
}

.font-family-medium > * {
  font-weight: 500;
}

.font-family-light > * {
  font-weight: 300;
}

.font-example {
  display: flex;
  flex-wrap: wrap;
}
.font-example > div {
  flex: 1 1 45%;
  padding: 30px;
  min-width: 16em;
}
.font-example p {
  margin-bottom: 15px;
}

/*checkboxes*/
input:disabled ~ * {
  opacity: 0.3;
  user-select: none;
  pointer-events: none;
}

.checkbox-toggle input {
  display: none;
}
.checkbox-toggle label {
  outline: 0;
  display: block;
  width: 45px;
  height: 16px;
  background: var(--grayColor);
  position: relative;
  cursor: pointer;
  border-radius: 2em;
  padding: 2px;
  transition: all 0.4s ease;
  margin: 0.8em;
}
.checkbox-toggle label:after {
  position: relative;
  display: block;
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  transition: all 0.2s ease;
  border: 1px solid var(--grayColor);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  left: -4px;
  top: -5px;
}
.checkbox-toggle input:checked + label {
  background: var(--accent2Color);
}
.checkbox-toggle input:checked + label:after {
  left: 52%;
}

.checkbox {
  position: relative;
  user-select: none;
  margin-bottom: 10px;
}
.checkbox input {
  display: none;
}
.checkbox label {
  position: relative;
  vertical-align: middle;
  cursor: pointer;
  font-weight: 500;
}
.checkbox label:before, .checkbox label:after {
  content: "";
  position: absolute;
  width: 4px;
  height: 16px;
  border-radius: 40px;
  background: var(--backgroundColor);
  transition: all 0.3s ease;
  left: 1.5px;
  top: -1px;
}
.checkbox label:before {
  transform: rotate(45deg) translateY(18px) translateX(-11px) scale(0);
}
.checkbox label:after {
  height: 8px;
  transform: rotate(-45deg) translateY(-12px) translateX(-27px) scale(0);
}
.checkbox span.box {
  display: inline-block;
  width: 20px;
  border-radius: var(--borderRadius);
  border: 1px solid var(--grayColor);
  width: 24px;
  height: 24px;
  vertical-align: middle;
  margin-right: 3px;
  transition: 0.3s ease;
}
.checkbox input:checked + span.box {
  background: var(--accent2Color);
  border-color: var(--accent2Color);
}
.checkbox input:checked ~ label:before {
  transform: rotate(45deg) translateY(18px) translateX(-11px) scale(1);
}
.checkbox input:checked ~ label:after {
  height: 8px;
  transform: rotate(-45deg) translateY(-12px) translateX(-27px) scale(1);
}
.checkbox input:disabled:checked + span.box {
  background: var(--grayColor);
  border: var(--grayColor);
}
.checkbox input:disabled:checked ~ label:before, .checkbox input:disabled:checked ~ label:after {
  background: black;
}

/*radio buttons*/
.radio {
  margin: 10px 0;
}
.radio input {
  display: none;
}
.radio input:checked + label:after {
  transform: scale(1);
}
.radio label {
  position: relative;
  padding-left: 32px;
  cursor: pointer;
  font-weight: 500;
}
.radio label:before {
  content: "";
  position: absolute;
  width: 22px;
  height: 22px;
  border: 1px solid var(--grayColor);
  border-radius: 50%;
  left: 0;
  top: 0;
}
.radio label:after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  top: 4px;
  left: 4px;
  background: var(--accent2Color);
  border-radius: 50%;
  transform: scale(0);
  transition: 0.3s ease;
}

/*buttons & links*/
.links__sec {
  margin: 10px 0 30px;
}
.links a.link {
  display: inline;
  margin: 10px 30px 5px 0;
  border-bottom: 2px dashed;
  font-weight: 500;
  line-height: 2.5;
  cursor: pointer;
  color: var(--neutralShade5);
}
.links a.link:hover, .links a.link.hover {
  color: var(--neutralShade6);
  border-bottom: 2px solid;
}
.links a.link.primary {
  color: var(--primaryColor);
}
.links a.link.primary:hover, .links a.link.primary.hover {
  color: var(--primaryShade5);
}
.links a.link.secondary {
  color: var(--secondaryColor);
}
.links a.link.secondary:hover, .links a.link.secondary.hover {
  color: var(--secondaryShade5);
}

.buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.buttons > * {
  flex: 1 1 calc(50% - 20px);
  margin-top: 20px;
}
.buttons > *:nth-child(odd) {
  margin-right: 20px;
}

a.button,
input.button,
button {
  outline: none;
  width: 100%;
  text-align: center;
  display: inline-block;
  border: none;
  font: 500 16px/1 "Poppins", sans-serif;
  padding: 20px;
  cursor: pointer;
  border-radius: var(--borderRadius);
  background: var(--primaryColor);
  color: var(--backgroundColor);
  position: relative;
  top: 0;
  transition: 0.2s ease;
}
a.button:hover, a.button.hover,
input.button:hover,
input.button.hover,
button:hover,
button.hover {
  top: -3px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}
a.button:active, a.button.active,
input.button:active,
input.button.active,
button:active,
button.active {
  background: var(--primaryShade4);
  outline: none;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  top: 0;
}
a.button.disabled,
input.button.disabled,
button.disabled {
  opacity: 0.4;
  user-select: none;
  pointer-events: none;
}
a.button.medium,
input.button.medium,
button.medium {
  padding: 15px 18px;
  width: auto;
  margin-right: 20px;
  margin-bottom: 20px;
}
a.button.small,
input.button.small,
button.small {
  padding: 10px 12px;
  width: auto;
  font-size: 14px;
  font-weight: 500;
}
a.button.secondary,
input.button.secondary,
button.secondary {
  background: var(--secondaryColor);
}
a.button.secondary:active, a.button.secondary:focus, a.button.secondary.active,
input.button.secondary:active,
input.button.secondary:focus,
input.button.secondary.active,
button.secondary:active,
button.secondary:focus,
button.secondary.active {
  background: var(--secondaryShade4);
  outline: none;
}
a.button.accent,
input.button.accent,
button.accent {
  background: var(--accentColor);
}
a.button.accent:active, a.button.accent:focus, a.button.accent.active,
input.button.accent:active,
input.button.accent:focus,
input.button.accent.active,
button.accent:active,
button.accent:focus,
button.accent.active {
  background: var(--accentShade4);
}
a.button.accent2,
input.button.accent2,
button.accent2 {
  background: var(--accent2Color);
}
a.button.accent2:active, a.button.accent2:focus, a.button.accent2.active,
input.button.accent2:active,
input.button.accent2:focus,
input.button.accent2.active,
button.accent2:active,
button.accent2:focus,
button.accent2.active {
  background: var(--accent2Shade4);
}
a.button.accent3,
input.button.accent3,
button.accent3 {
  background: var(--accent3Color);
}
a.button.accent3:active, a.button.accent3:focus, a.button.accent3.active,
input.button.accent3:active,
input.button.accent3:focus,
input.button.accent3.active,
button.accent3:active,
button.accent3:focus,
button.accent3.active {
  background: var(--accent3Shade4);
}

/*inputs*/
.input__wrapper {
  margin-bottom: 30px;
}

.label-form {
  font-weight: 500;
  display: block;
  margin-bottom: 5px;
}

input.input-form,
select,
textarea {
  height: 42px;
  border: 2px solid var(--neutralShade3);
  width: 100%;
  padding: 10px 15px;
  font-family: "Poppins";
  border-radius: var(--borderRadius);
  color: var(--foregroundColor);
  background: var(--backgroundColor);
}
input.input-form:focus, input.input-form.active,
select:focus,
select.active,
textarea:focus,
textarea.active {
  outline: none;
  border-color: var(--primaryColor);
}
input.input-form:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  background: var(--neutralShade1);
  opacity: 0.6;
}

textarea {
  resize: vertical;
  min-height: 117px;
}

select {
  height: 45px;
  padding: 8px 12px;
  cursor: pointer;
}
select option {
  font-weight: 300;
}

.input__validator {
  position: relative;
}
.input__validator__status {
  position: absolute;
  border-radius: 50%;
  background: purple;
  width: 30px;
  height: 30px;
  right: 6px;
  top: 6px;
}
.input__validator__status:before, .input__validator__status:after {
  content: "";
  position: absolute;
  width: 4px;
  height: 18px;
  border-radius: 40px;
  background: var(--backgroundColor);
}

.input-error input,
.input-error select,
.input-error textarea {
  border-color: var(--accent3Color);
}
.input-error .feedback-form {
  color: var(--accent3Shade3);
}
.input-error .input__validator__status {
  background: var(--accent3Color);
}
.input-error .input__validator__status:before {
  transform: rotate(45deg) translateY(-5.5px) translateX(13.5px);
}
.input-error .input__validator__status:after {
  transform: rotate(-45deg) translateY(13.5px) translateX(5.5px);
}

.input-success input,
.input-success select,
.input-success textarea {
  border-color: var(--accent2Color);
}
.input-success .feedback-form {
  color: var(--accent2Shade4);
}
.input-success .input__validator__status {
  background: var(--accent2Color);
}
.input-success .input__validator__status:before {
  transform: rotate(45deg) translateY(-6px) translateX(16px);
}
.input-success .input__validator__status:after {
  height: 7px;
  transform: rotate(-45deg) translateY(16px) translateX(-5px);
}

.feedback-form {
  margin-top: 5px;
  color: var(--neutralShade6);
}

/*badges*/
.badge {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 50px;
  font-weight: 500;
  text-transform: uppercase;
  margin: 5px 10px 5px 0;
  line-height: 1;
}

.alert {
  margin-bottom: 15px;
  display: block;
  padding: 10px 15px;
  border-radius: var(--borderRadius);
  font-weight: 500;
  position: relative;
  cursor: pointer;
}
.alert:before, .alert:after {
  content: "";
  position: absolute;
  width: 4px;
  height: 16px;
  border-radius: 40px;
  right: 30px;
  top: 8px;
}
.alert:before {
  transform: rotate(45deg) translateY(-5.5px) translateX(13.5px);
}
.alert:after {
  transform: rotate(-45deg) translateY(13.5px) translateX(5.5px);
}

.status-primary {
  background: var(--primaryShade1);
  color: var(--primaryShade4);
}
.status-primary:before, .status-primary:after {
  background: var(--primaryShade4);
}

.status-secondary {
  background: var(--secondaryShade1);
  color: var(--secondaryShade5);
}
.status-secondary:before, .status-secondary:after {
  background: var(--secondaryShade4);
}

.status-info {
  background: var(--accentShade1);
  color: var(--accentShade4);
}
.status-info:before, .status-info:after {
  background: var(--accentShade4);
}

.status-success {
  background: var(--accent2Shade1);
  color: var(--accent2Shade4);
}
.status-success:before, .status-success:after {
  background: var(--accent2Shade4);
}

.status-error {
  background: var(--accent3Shade1);
  color: var(--accent3Shade4);
}
.status-error:before, .status-error:after {
  background: var(--accent3Shade4);
}

/*tooltips*/
.tooltip {
  cursor: pointer;
  position: relative;
  display: block;
  width: 100%;
  text-align: center;
  z-index: 10;
}
.tooltip span {
  border-bottom: 1px dotted;
}
.tooltip:after {
  content: attr(data-tooltip);
  background: var(--neutralShade2);
  max-width: 90%;
  width: auto;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  opacity: 0;
  height: auto;
  font-size: 14px;
  padding: 10px;
  border-radius: var(--borderRadius);
  color: var(--foregroundColor);
  text-align: center;
}
.tooltip.dark:after {
  background: var(--neutralShade7);
  color: var(--backgroundColor);
}
.tooltip.top:after {
  bottom: 80%;
  transition: opacity 0.3s ease 0.3s, bottom 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;
}
.tooltip.top:hover:after, .tooltip.top.hovered:after {
  bottom: 130%;
  opacity: 1;
}
.tooltip.bottom:after {
  top: 80%;
  transition: opacity 0.3s ease 0.3s, top 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;
}
.tooltip.bottom:hover:after, .tooltip.bottom.hovered:after {
  top: 130%;
  opacity: 1;
}

/*spinner*/
.spinner + label {
  font-size: 14px;
  font-weight: 500;
  margin-top: 8px;
  display: inline-block;
  text-transform: uppercase;
  color: var(--primaryShade4);
}

.spinner-1 .spinner {
  max-width: 50px;
  margin: auto;
  height: 20px;
  position: relative;
}
.spinner-1 .spinner:after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  left: -10%;
  background: var(--primaryColor);
  animation: spinnerLeftRight 0.6s infinite;
}
.spinner-1 .spinner:before {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  left: -10%;
  background: var(--primaryShade2);
  opacity: 1;
  animation: spinnerLeftRight 0.6s infinite 0.06s;
}

.spinner-2 .spinner {
  width: 90%;
  margin: auto;
  height: 10px;
  background: var(--neutralShade2);
  border-radius: 40px;
  position: relative;
}
.spinner-2 .spinner:before {
  content: "";
  border-radius: inherit;
  position: absolute;
  width: 10%;
  height: 100%;
  left: 0;
  background: var(--primaryColor);
  opacity: 1;
  animation: spinnerFill 5s infinite;
}

@keyframes spinnerLeftRight {
  0% {
    left: 85%;
  }
  50% {
    left: -10%;
  }
  100% {
    left: 85%;
  }
}
@keyframes spinnerFill {
  0% {
    width: 2%;
  }
  50%,
	100% {
    width: 100%;
  }
}
@media (max-width: 992px) {
  main {
    grid: repeat(9, fit-content(300px))/100%;
    grid-template-areas: "colors" "typography" "buttons" "links" "inputs" "badges" "tooltips" "alerts" "loading";
  }
  main > section:not(:last-child) {
    border: 1px solid var(--accentColor);
    border-width: 0 0 1px;
  }
  main > section:last-child {
    border-width: 0;
  }

  .typography,
  .buttons-wrapper {
    padding-bottom: 40px;
  }

  .tooltips {
    padding-bottom: 60px;
  }

  .inputs-selects .inputs,
  .inputs-selects .textarea-select {
    grid-column: span 6;
  }

  .inputs-selects .toggle-buttons,
  .inputs-selects .checkboxes,
  .inputs-selects .radio-buttons {
    grid-column: span 3;
  }
}
/*variations*/
input.variation {
  display: none;
}
input.variation + label {
  display: inline-block;
  width: 50px;
  height: 50px;
  margin: 40px 20px 20px;
  border-radius: 50%;
  cursor: pointer;
  border: 6px solid #fff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2);
}

#bluepurple + label {
  background: linear-gradient(to left, #673ab7 50%, #03a9f4 50%);
}
#bluepurple:checked ~ main {
  --backgroundColor: #fff;
  --foregroundColor: #111;
  --primaryColor: #03a9f4;
  --primaryShade1: #e1f5fe;
  --primaryShade2: #b3e5fc;
  --primaryShade3: #4fc3f7;
  --primaryShade4: #0288d1;
  --primaryShade5: #0277bd;
  --secondaryColor: #673ab7;
  --secondaryShade1: #ede7f6;
  --secondaryShade2: #d1c4e9;
  --secondaryShade3: #9575cd;
  --secondaryShade4: #512da8;
  --secondaryShade5: #311b92;
  --accentColor: #009688;
  --accentShade1: #e0f2f1;
  --accentShade2: #b2dfdb;
  --accentShade3: #4db6ac;
  --accentShade4: #00796b;
  --accentShade5: #004d40;
  --accent2Color: #8bc34a;
  --accent2Shade1: #e7f6d5;
  --accent2Shade2: #c5e1a5;
  --accent2Shade3: #aed581;
  --accent2Shade4: #689f38;
  --accent2Shade5: #558b2f;
  --accent3Color: #f44336;
  --accent3Shade1: #ffdde0;
  --accent3Shade2: #ffcdd2;
  --accent3Shade3: #ef9a9a;
  --accent3Shade4: #d32f2f;
  --accent3Shade5: #b71c1c;
}

#sunset + label {
  background: linear-gradient(to right, #ff9557 50%, #ffcc67 50%);
}
#sunset:checked ~ main {
  --canvasColor: #f9f9f9;
  --backgroundColor: #fff;
  --foregroundColor: #111;
  --primaryColor: #ff9557;
  --primaryShade1: #ffe2d1;
  --primaryShade2: #ffceb2;
  --primaryShade3: #ffb184;
  --primaryShade4: #e88850;
  --primaryShade5: #d17a48;
  --secondaryColor: #ffcc67;
  --secondaryShade1: #fff1d5;
  --secondaryShade2: #ffde9e;
  --secondaryShade3: #ffd074;
  --secondaryShade4: #e8ba5e;
  --secondaryShade5: #ba954b;
  --accentColor: #4e5166;
  --accentShade1: #cecfd5;
  --accentShade2: #aeafb9;
  --accentShade3: #8e909d;
  --accentShade4: #6e7081;
  --accentShade5: #404354;
  --accent2Color: #588b8b;
  --accent2Shade1: #c2d4d4;
  --accent2Shade2: #a3bfbf;
  --accent2Shade3: #85aaaa;
  --accent2Shade4: #507f7f;
  --accent2Shade5: #497272;
  --accent3Color: #fe5f55;
  --accent3Shade1: #fec4c1;
  --accent3Shade2: #fea7a2;
  --accent3Shade3: #fe7c73;
  --accent3Shade4: #e7574e;
  --accent3Shade5: #b9463e;
}

#godiva + label {
  background: linear-gradient(to right, #a05793 50%, #a3d858 50%);
}
#godiva:checked ~ main {
  --canvasColor: #f9f9f9;
  --backgroundColor: #fff;
  --foregroundColor: #111;
  --primaryColor: #a05793;
  --primaryShade1: #e5d1e1;
  --primaryShade2: #d3b2cd;
  --primaryShade3: #b984b0;
  --primaryShade4: #925086;
  --primaryShade5: #834879;
  --secondaryColor: #a3d858;
  --secondaryShade1: #e5f4d1;
  --secondaryShade2: #cce9a3;
  --secondaryShade3: #bce285;
  --secondaryShade4: #95c550;
  --secondaryShade5: #779e41;
  --accentColor: #245e71;
  --accentShade1: #d7e1e5;
  --accentShade2: #afc4cb;
  --accentShade3: #7398a4;
  --accentShade4: #4b7b8a;
  --accentShade5: #1e4d5d;
  --accent2Color: #2aa5a1;
  --accent2Shade1: #d8eeed;
  --accent2Shade2: #9ed6d4;
  --accent2Shade3: #64bdba;
  --accent2Shade4: #279693;
  --accent2Shade5: #1f7976;
  --accent3Color: #92374d;
  --accent3Shade1: #ebdad3;
  --accent3Shade2: #cda4ae;
  --accent3Shade3: #af6d7d;
  --accent3Shade4: #853246;
  --accent3Shade5: #6b2939;
}

#dark + label {
  background: linear-gradient(to right, #367bc3 50%, #38bfa7 50%);
}
#dark:checked ~ main {
  --canvasColor: #2a313b;
  --backgroundColor: #2a313b;
  --foregroundColor: #ebe8d8;
  --primaryColor: #367bc3;
  --primaryShade5: #b5cfe9;
  --primaryShade4: #91b7de;
  --primaryShade3: #5a93cd;
  --primaryShade2: #3270b2;
  --primaryShade1: #285a8e;
  --secondaryColor: #38bfa7;
  --secondaryShade5: #c8ede7;
  --secondaryShade4: #92dccf;
  --secondaryShade3: #6ed0be;
  --secondaryShade2: #33ae98;
  --secondaryShade1: #2e9d89;
  --accentColor: #586994;
  --accentShade5: #d1d6e1;
  --accentShade4: #a3adc4;
  --accentShade3: #7684a7;
  --accentShade2: #49567a;
  --accentShade1: #39435f;
  --accent2Color: #8fe1a2;
  --accent2Shade5: #d6f4dd;
  --accent2Shade4: #c1eecc;
  --accent2Shade3: #a3e6b2;
  --accent2Shade2: #82cd94;
  --accent2Shade1: #76b985;
  --accent3Color: #fe938c;
  --accent3Shade5: #fee1df;
  --accent3Shade4: #fec4c0;
  --accent3Shade3: #fea6a0;
  --accent3Shade2: #e78680;
  --accent3Shade1: #b96b66;
  color: #f1f2eb;
  border-color: #f1f2eb;
}
#dark:checked ~ main > section {
  border-color: #f1f2eb;
}
#dark:checked ~ main > section > h6 {
  color: #f1f2eb;
}

#pinkaru + label {
  background: linear-gradient(to right, #f95794 50%, #323da5 50%);
}
#pinkaru:checked ~ main {
  border-color: #fff;
  --canvasColor: #2a313b;
  --backgroundColor: #2a313b;
  --foregroundColor: #e3f2fd;
  --primaryColor: #f95794;
  --primaryShade5: #fdd1e1;
  --primaryShade4: #fba3c4;
  --primaryShade3: #fa75a7;
  --primaryShade2: #e35087;
  --primaryShade1: #b6406c;
  --secondaryColor: #323da5;
  --secondaryShade5: #c7cae6;
  --secondaryShade4: #8f95cd;
  --secondaryShade3: #6971bd;
  --secondaryShade2: #2e3896;
  --secondaryShade1: #293288;
  --accentColor: #FFC729;
  --accentShade5: #ffefc4;
  --accentShade4: #ffe08a;
  --accentShade3: #ffd14f;
  --accentShade2: #e8b526;
  --accentShade1: #d1a322;
  --accent2Color: #53dd6c;
  --accent2Shade5: #d0f5d6;
  --accent2Shade4: #a1ecae;
  --accent2Shade3: #72e386;
  --accent2Shade2: #4cc963;
  --accent2Shade1: #3da14f;
  --accent3Color: #f52f57;
  --accent3Shade5: #fcc6d1;
  --accent3Shade4: #f98da3;
  --accent3Shade3: #f65475;
  --accent3Shade2: #df2b50;
  --accent3Shade1: #b32340;
}
#pinkaru:checked ~ main > section {
  border-color: #fff;
}
#pinkaru:checked ~ main > section > h6 {
  color: #fff;
}

#dark:checked ~ main h6.subheader,
#dark:checked ~ main .feedback-form,
#pinkaru:checked ~ main h6.subheader,
#pinkaru:checked ~ main .feedback-form {
  color: var(--neutralShade1);
}
#dark:checked ~ main ::placeholder,
#pinkaru:checked ~ main ::placeholder {
  color: var(--neutralShade4);
  opacity: 1;
}
#dark:checked ~ main :-ms-input-placeholder,
#pinkaru:checked ~ main :-ms-input-placeholder {
  color: var(--neutralShade4);
}
#dark:checked ~ main ::-ms-input-placeholder,
#pinkaru:checked ~ main ::-ms-input-placeholder {
  color: var(--neutralShade4);
}
#dark:checked ~ main .tooltip:after,
#pinkaru:checked ~ main .tooltip:after {
  color: var(--backgroundColor);
}
#dark:checked ~ main a.button,
#dark:checked ~ main input.button,
#dark:checked ~ main button,
#dark:checked ~ main .tooltip.dark:after,
#pinkaru:checked ~ main a.button,
#pinkaru:checked ~ main input.button,
#pinkaru:checked ~ main button,
#pinkaru:checked ~ main .tooltip.dark:after {
  color: var(--foregroundColor);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
#dark:checked ~ main .button:active, #dark:checked ~ main .button.active,
#pinkaru:checked ~ main .button:active,
#pinkaru:checked ~ main .button.active {
  background: var(--primaryShade1);
}
#dark:checked ~ main .button.secondary:active, #dark:checked ~ main .button.secondary.active,
#pinkaru:checked ~ main .button.secondary:active,
#pinkaru:checked ~ main .button.secondary.active {
  background: var(--secondaryShade1);
}
#dark:checked ~ main .button.accent,
#pinkaru:checked ~ main .button.accent {
  background: var(--accentShade2);
}
#dark:checked ~ main .button.accent:active,
#pinkaru:checked ~ main .button.accent:active {
  background: var(--accentShade1);
}
#dark:checked ~ main .button.accent2,
#pinkaru:checked ~ main .button.accent2 {
  background: var(--accent2Shade2);
}
#dark:checked ~ main .button.accent2:active,
#pinkaru:checked ~ main .button.accent2:active {
  background: var(--accent2Shade1);
}
#dark:checked ~ main .button.accent3,
#pinkaru:checked ~ main .button.accent3 {
  background: var(--accent3Shade2);
}
#dark:checked ~ main .button.accent3:active,
#pinkaru:checked ~ main .button.accent3:active {
  background: var(--accent3Shade1);
}
#dark:checked ~ main a.link,
#pinkaru:checked ~ main a.link {
  color: var(--neutralShade2);
}
#dark:checked ~ main a.link:hover, #dark:checked ~ main a.link.hover,
#pinkaru:checked ~ main a.link:hover,
#pinkaru:checked ~ main a.link.hover {
  color: var(--neutralShade1);
  border-bottom: 2px solid;
}
#dark:checked ~ main a.link.primary,
#pinkaru:checked ~ main a.link.primary {
  color: var(--primaryShade4);
}
#dark:checked ~ main a.link.primary:hover, #dark:checked ~ main a.link.primary.hover,
#pinkaru:checked ~ main a.link.primary:hover,
#pinkaru:checked ~ main a.link.primary.hover {
  color: var(--primaryShade5);
}
#dark:checked ~ main a.link.secondary,
#pinkaru:checked ~ main a.link.secondary {
  color: var(--secondaryShade4);
}
#dark:checked ~ main a.link.secondary:hover, #dark:checked ~ main a.link.secondary.hover,
#pinkaru:checked ~ main a.link.secondary:hover,
#pinkaru:checked ~ main a.link.secondary.hover {
  color: var(--secondaryShade5);
}

footer {
  display: grid;
  grid: min-content / 1fr max-content;
  text-align: left;
  width: 90%;
  margin: 1em auto 4em;
  max-width: 1050px;
  align-items: center;
}
footer a {
  text-decoration: none;
  color: #333;
  padding: 3px 0;
  border-bottom: 1px dashed;
}
footer a:hover {
  border-bottom: 1px solid;
}
footer .social a {
  text-decoration: none;
  margin-left: 10px;
}
footer .social a .icons {
  display: inline-block;
  font-size: 20px;
}
footer.dark, footer.dark a {
  color: #f9f9f9;
}
