:root {
  --clr-accent-100: 0, 11%, 76%;
  --clr-primary-100: 183, 28%, 87%;
  --clr-primary-200: 180, 59%, 85%;
  --clr-primary-400: 180, 39%, 40%;
  --clr-primary-700: 180, 16%, 8%;
  --clr-primary-900: 180, 5%, 4%;
  --clr-neutral-100: 0, 0%, 97%;
  --clr-neutral-200: 0, 0%, 60%;
  
  --bs-aqua: hsl;
  --fs-body: 1rem;
  --fs-p: 1.125rem;
  --pad-hor: 14vw;
  --ff-primary: "Inter", sans-serif;
  --ff-secondary: "Work Sans", sans-serif;
}

/* @media (min-width: 1150px) {
  :root {
    --pad: 0 5em;
  }
} */

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

html,
body,
h1,
h2,
p {
  margin: 0;
}

p {
  line-height: 1.6;
}

ul,
li {
  list-style: none;
  margin: 0;
  padding: 0;
}
 
img {
  width: 100%;
}

a {
  text-decoration: none;
  color: hsl(var(--clr-primary-200));
}

a:hover,
a:focus {
  text-decoration: underline;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: hsl(var(--clr-primary-700));
  font-family: var(--ff-primary);
  color: hsl(var(--clr-primary-100));
}

/* body * {
  outline: 1px pink solid;
} */

.container {
  width: min(calc(100% - clamp(3rem, 15vw, 8rem)), 65rem);
  margin-inline: auto;
}

.fm_logo {
  width: min(50vw, 250px);
}

header {
  padding-block: 6rem 3rem;
}

main {
  display: flex;
  flex-direction: column;
  font-size: clamp(1rem, 7vw, 1.3175rem);
}

.title {
  font-size: clamp(3rem, 12vw, 5rem);
  font-family: var(--ff-secondary);
  margin-bottom: 0.8em;
  line-height: 1.05;
  font-weight: 800;
  overflow-wrap: normal;
  color: hsl(var(--clr-primary-200));
  /* text-transform: uppercase; */
  letter-spacing: 0.1rem;
  text-shadow: -0.25rem 0.2rem 0 hsl(var(--clr-primary-900)), -0.45rem 0.25rem 0 hsl(var(--clr-neutral-200));
  animation: titleAnimation 2s ease-in-out infinite alternate;
}

.title .highlight {
  color: hsl(var(--clr-accent-100));
}

@keyframes titleAnimation {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

.intro {
  margin-block: 0 5rem;
}

.grid {
  /* border: 1px solid magenta; */
  display: grid;
  width: 100%;
  grid-template-columns: repeat(auto-fill, minmax(min(80%, 16rem), 1fr));
  column-gap: 2rem;
  row-gap: 1.8rem;
  margin-bottom: 5rem;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: hsl(var(--clr-neutral-100));
  padding: 0;
  border-radius: 0.5rem;
  color: hsl(var(--clr-primary-700));
  /* box-shadow: 0.2rem 0.2rem 0.5rem hsla(var(--primary-200), 0.9); */
}

.card a {
  color: inherit;
}

.card a::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  border-radius: 0.5rem;
}

.card:hover h2 a::after {
  box-shadow: 0 0 0 0.25rem hsl(var(--clr-primary-400));
}

.card:hover h2 {
  color: hsl(var(--clr-primary-400));
}

.card a:focus {
  text-decoration: underline;
}

.card:focus-within {
  box-shadow: 0 0 0 0.25rem hsl(var(--clr-primary-400));
}

.card:focus-within h2 a:focus {
  color: hsl(var(--clr-primary-400));
  text-decoration: underline;
  outline: none;
}

.card .image {
  width: 100%;
  height: 14rem;
  position: relative;
  overflow: hidden;
  border-radius: 0.5rem 0.5rem 0 0; 
}

.card .image img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0.5rem 0.5rem 0 0; 
  transform: scale(1);
  filter: brightness(1);
  transition: all 0.25s ease-in-out;
}

.card:focus-within .image img,
.card:hover .image img {
  transform: scale(1.15);
  filter: brightness(1.02) opacity(0.9);
}

.card .text {
  flex-grow: 1;
  height: 10rem;
  max-width: 60ch;
  padding: 1.2rem 1.6rem 1.4rem;
  display: flex;
  flex-direction: column;
}

.card h2 {
  font-size: 1.125rem;
  margin-bottom: 0.5rem;
}

.card small {
  margin-top: auto;
}

.card small p {
  position: relative;
}

.card small a {
  position: relative;
  font-size: 0.8rem;
}

.card small a:hover {
  color: hsl(var(--clr-primary-900));
  text-decoration: underline;
}

.card small a:focus-within {
  text-decoration: underline;
  outline: none;
  color: hsl(var(--clr-primary-900));
}
