:root {
    --clr-primary-green: hsl(158deg 36% 37%);
    --clr-primary-green-hover: hsl(158deg 81% 20%);
    --clr-secondary-white: hsl(30deg 38% 92%);
    --clr-neutral-black: hsl(212deg 21% 14%);
    --clr-neutral-grey: hsl(228deg 12% 48%);
    --clr-neutral-white: hsl(0deg 10% 100%);
    --fw-regular: 500;
    --fw-bold: 900;
    --ff-accent: 'Fraunces', serif;
    --ff-base: 'Montserrat', sans-serif;
}

/* 1. Use a more-intuitive box-sizing model. */
*, *::before, *::after {
    box-sizing: border-box;
  }

  /* 2. Remove default margin */
  * {
    margin: 0;
  }

  /* 3. Allow percentage-based heights in the application */
  html, body {
    height: 100%;
  }

  /* Typographic tweaks!
    4. Add accessible line-height
    5. Improve text rendering */
  /* stylelint-disable */
  body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
  }
  /* stylelint-enable */

  /* 6. Improve media defaults */
  img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
  }

  /* 7. Remove built-in form typography styles */
  input, button, textarea, select {
    font: inherit;
  }

  /* 8. Avoid text overflows */
  p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
  }

  /* 9. Create a root stacking context */
  #root, #next {
    isolation: isolate;
  }
/* stylelint-disable */
body {
    font-family: var(--ff-base);
    font-weight: var(--fw-regular);
    font-size: 0.875rem;
    color: var(--clr-neutral-grey);
    background-color: var(--clr-secondary-white);
    display: grid;
    place-content: center;
}
/* stylelint-enable */

button {
    background-color:  var(--clr-primary-green);
    font-weight: var(--fw-bold);
    color: var(--clr-neutral-white);
    width: 100%;
    border-radius: 0.5rem;
    height: 3rem;
    border-style: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
}

button:is(:hover, :focus) {
    background-color: var(--clr-primary-green-hover);
}

button[data-icon="shopping-cart"]::before {
    content: "";
    background-image: url("/images/icon-cart.svg");
    width: 15px;
    height: 16px;
}

.content-container {
    background-color: var(--clr-neutral-white);
    border-radius: 0.5rem;
    margin: 2rem 1rem;
    overflow: hidden;
    display: grid;
}

.text-content h1 {
    font-family: var(--ff-accent);
    color: var(--clr-neutral-black);
    line-height: 1.75rem;
}

.card-body {
    padding: 1.5rem;
}

.text-content p, .text-content h1, .prices-container, button-container {
    margin-bottom: 0.75rem;
}

.perfume {
    letter-spacing: 0.25rem;
    text-transform: uppercase;
    margin-bottom: .5rem;
}

.prices-container {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.prices-container p {
    font-family: var(--ff-accent);
}

.new-price {
    color:  var(--clr-primary-green);
    font-size: 2rem;
    font-weight: var(--fw-bold);
}

/* Hides span text in prices from displaying in html, but is still readable for screen-readers */
.visually-hidden:not(:focus, :active){
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

@media (width >= 600px) {
    .content-container {
        grid-template-columns: 1fr 1fr;
        max-width: 600px;
    }

    .text-content p, .text-content h1, .prices-container, button-container {
        margin-bottom: 1.25rem;
    }
}