:root {
  /* Colors */
  --clr-very-dark-grayish-blue: hsl(217, 19%, 35%);
  --clr-desaturated-dark-blue: hsl(214, 17%, 51%);
  --clr-grayish-blue: hsl(212, 23%, 69%);
  --clr-light-grayish-blue: hsl(210, 46%, 95%);

  /* Typograghy */
  --ff-primary: "Manrope", sans-serif;

  --fs-16-20: clamp(1rem, 0.913rem + 0.4348vw, 1.25rem);

  --fw-normal: 500;
  --fw-bold: 700;
}

/* CSS reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  font: inherit;
}

body {
  min-block-size: 100vh;
  line-height: 1.5;
}

img,
picture,
svg {
  display: block;
  max-inline-size: 100%;
}

/* General styling */
body {
  font-family: var(--ff-primary);
  font-size: 0.8125rem;
  font-weight: var(--fw-normal);
  color: var(--clr-grayish-blue);
  background-color: var(--clr-light-grayish-blue);
  place-content: center;
}

/* Main content */
.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

main {
  margin-block: 1rem;
}

.wrapper {
  max-inline-size: 30rem;
  inline-size: 90%;
  margin-inline: auto;
  display: grid;
}

@media(min-width: 40em) {
  .wrapper {
    max-inline-size: 45.75rem;
    grid-template-columns: repeat(12, 1fr);
  }

  .thumbnail-wrapper {
    grid-column: 1 / 7;
    grid-row-start: 1;
  }

  .description-wrapper {
    grid-column: 6 / -1;
    grid-row-start: 1;
    z-index: 9999;
  }
}

@media(width < 40em) {
  .thumbnail-wrapper {
    transform: translateY(17%);
    z-index: -9999;
  }
}

.thumbnail-wrapper img {
  border-top-left-radius: .5rem;
  border-top-right-radius: .5rem;
}

@media(min-width: 40em) {
  .thumbnail-wrapper img {
    border-bottom-left-radius: .5rem;
    border-top-right-radius: 0;
    height: 100%;
  }
}

.description-wrapper {
  background-color: white;
  border-bottom-left-radius: .5rem;
  border-bottom-right-radius: .5rem;
}

@media(min-width: 40em) {
  .description-wrapper {
    border-top-right-radius: .5rem;
    border-bottom-right-radius: .5rem;
    border-bottom-left-radius: 0;
  }
}

.description-wrapper > div {
  padding-inline: min(2rem, 8%);
  padding-block-start: 2rem;
}

@media(min-width: 40em) {
  .description-wrapper > div {
    padding-inline: 2.375rem;
    padding-block-start: 2.375rem;
  }
}

h2 {
  font-size: var(--fs-16-20);
  font-weight: var(--fw-bold);
  color: var(--clr-very-dark-grayish-blue);
  line-height: 1.35;
  max-inline-size: 28ch;
  margin-block-end: 1.125rem;
}

h2 + p {
  max-inline-size: 54ch;
  margin-block-end: 1.125rem;
}

footer {
  padding-inline: min(2rem, 8%);
  padding-block: 1.125rem;
}

@media(min-width: 40em) {
  footer {
    padding-inline: 2.375rem;
    padding-block: 0rem 2.375rem;
  }
}

.footer-wrapper {
  display: flex;
  align-items: center;
  gap: .625rem;
  justify-content: space-between;
  flex-wrap: wrap;
}

.share-links-wrapper {
  display: none;
}

.show {
  display: block;
}

.share-links {
  display: flex;
  align-items: center;
  gap: .875rem;
  flex-wrap: wrap;
  background-color: var(--clr-very-dark-grayish-blue);
}

.share-links h3 {
  text-transform: uppercase;
  letter-spacing: 3px;
}

.meta-data {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.avatar {
  width: 2.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
}

.name {
  font-weight: var(--fw-bold);
  color: var(--clr-very-dark-grayish-blue);
}

.share-button {
  cursor: pointer;
  border: 0;
  border-radius: 50%;
  width: 2rem;
  aspect-ratio: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--clr-light-grayish-blue);
}

.share-button:hover {
  background-color: var(--clr-desaturated-dark-blue);
}

.share-button:focus-visible {
  outline: 2px solid var(--clr-grayish-blue);
}

.share-button:hover svg path {
  fill: var(--clr-light-grayish-blue);
}

.link:hover svg path {
  fill: var(--clr-grayish-blue);
}

@media (width < 40em) {
  .hide {
    display: none;
  }
  
  .bg-color {
    background-color: var(--clr-very-dark-grayish-blue);
    border-bottom-right-radius: .625rem; 
    border-bottom-left-radius: .625rem; 
  }
}

@media(min-width: 40em) {
  footer{
    position: relative;
  }

  .share-links-wrapper {
    position: absolute;
    bottom: 6.5rem;
    right: -3.75rem;
  }

  .share-links {
    padding: 1.125rem 2.25rem;
    border-radius: .625rem;
    position: relative;
  }

  .share-links::before {
    width: 0;
    height: 0;
    content: '';
    position: absolute;
    top: 99%;
    left: 50%;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 12px solid var(--clr-very-dark-grayish-blue);
    transform: translateX(-50%);
  }
}

@media(40em <= width < 56.25em) {
  .share-links {
    padding: .625rem 1.125rem;
  }

  .share-links-wrapper {
    right: -1rem;
  }

  .share-links::before {
    left: 7.625rem;
  }
}

