@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");

:root {
  --green-500: hsl(158, 36%, 37%);
  --green-700: hsl(158, 42%, 18%);

  --black: hsl(212, 21%, 14%);
  --grey: hsl(228, 12%, 48%);
  --cream: hsl(30, 38%, 92%);
  --white: hsl(0, 0%, 100%);

  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-md: 1rem;
  --fs-lg: 1.8rem;
  --fs-xl: 2.2rem;
  --fs-2xl: 2.6rem;

  --lh-base: 1.5;
  --lh-title: 1.2;

  --ff-montserrat: "Montserrat";
  --fw-montserrat-medium: 500;
  --fw-montserrat-bold: 700;

  --ff-fraunces: "Fraunces";
  --fw-fraunces-bold: 700;

  --max-w-card-mobile: 30rem;
  --max-w-card-desktop: 44rem;

  --border-r-sm: 0.625rem;

  --spacing-sm: 0.75rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.6rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  color: var(--grey);
  font-size: clamp(var(--fs-sm), 0.831rem + 0.188vw, var(--fs-md));
  font-family: var(--ff-montserrat), sans-serif;
  font-weight: var(--fw-montserrat-medium);
  line-height: var(--lh-base);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

body {
  background-color: var(--cream);
}

main {
  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 100dvh;
}

img {
  width: 100%;
  object-fit: cover;
}

/* Utilities */
.flex-col {
  display: flex;
  flex-direction: column;
}

/* Components */
.product-category {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 5px;
}

.title {
  color: var(--black);
  font-size: clamp(var(--fs-xl), 1.743rem + 0.952vw, var(--fs-2xl));
  font-family: var(--ff-fraunces);
  font-weight: var(--fw-fraunces-bold);
  line-height: var(--lh-title);
}

.price {
  color: var(--green-500);
  font-size: clamp(var(--fs-lg), 1.659rem + 0.601vw, var(--fs-xl));
  font-family: var(--ff-fraunces);
  font-weight: var(--fw-fraunces-bold);
}

.discount-price {
  font-size: clamp(var(--fs-xs), 0.706rem + 0.188vw, var(--fs-sm));
  text-decoration: line-through;
}

.button-with-svg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);

  color: var(--white);
  font-weight: var(--fw-montserrat-bold);
  background-color: var(--green-500);
  border: none;
  border-radius: var(--border-r-sm);
  padding: var(--spacing-md) var(--spacing-sm);
  cursor: pointer;
  transition: background 0.25s ease-out;
}

.button-with-svg:hover,
.button-with-svg:focus {
  background-color: var(--green-700);
}

/* Product card */
.product-card {
  background-color: var(--white);
  border-radius: var(--border-r-sm);
  width: min(var(--max-w-card-mobile), 90%);
  overflow: hidden;
}

.product-card__content {
  padding: var(--spacing-lg);
}

.product-card__content.flex-col {
  gap: var(--spacing-md);
}

.product-card__header.flex-col {
  gap: var(--spacing-sm);
}

.product-card__price-content {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

@media (width >= 768px) {
  .product-card {
    display: flex;

    width: var(--max-w-card-desktop);
  }

  .product-card picture,
  .product-card img {
    min-height: 100%;
  }

  .product-card__content {
    flex-basis: 85%;

    justify-content: space-evenly;
  }
}
