/* css variables */

:root {
  --pink-light: #fdf0f8;
  --pink-mid: #f5b8d8;
  --pink-border: #e891c2;
  --pink-card: #fff5fa;
  --pink-card-border: #f0aacc;
  --purple-dark: #7b2d5e;
  --purple-mid: #5c3652;
  --purple-soft: #4a3040;
}

#header::selection {
  background-color: #f81e1e;
  color: #000;
}
#footer::selection {
  background-color: #f81e1e;
  color: #000;
}
main::selection {
  background-color: #f45dce;
  color: #fff;
}

header,
.intro,
.menu-title,
.card h3,
.card ul,
footer {
  transition: color 0.3s ease;
}

/* fade-in effect */

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body {
  background: linear-gradient(160deg, #fdf0f8 0%, #fce4f3 50%, #f9d6ee 100%);
  background-attachment: fixed;
  font-family: "Lato", Georgia, serif;
  margin: 0;
  padding: 0;
  color: #3a3a3a;
  animation: fadeUp 0.6s ease both;
}

/* header */

header {
  background-color: var(--pink-mid);
  text-align: center;
  padding: 50px 20px 35px 20px;
  border-bottom: 3px solid var(--pink-border);
}

header h1 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 3em;
  margin: 0 0 10px 0;
  color: var(--purple-dark);
  letter-spacing: 2px;
}

header p {
  font-size: 1.1em;
  color: var(--purple-mid);
  margin: 0;
}

/* intro */

.intro {
  text-align: center;
  max-width: 600px;
  margin: 35px auto;
  padding: 0 20px;
  font-size: 1em;
  line-height: 1.8;
  color: var(--purple-soft);
}

/* section title */

.menu-title {
  font-family: "Playfair Display", Georgia, serif;
  text-align: center;
  font-size: 1.9em;
  color: var(--purple-dark);
  margin-top: 10px;
  margin-bottom: 30px;
}

/* cards grid */
.cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; 
  gap: 30px;
  padding: 0 20px 50px 20px;
  max-width: 840px; 
  margin: 0 auto;
}

/* single card */

.card {
  background-color: var(--pink-card);
  border: 2px solid var(--pink-card-border);
  border-radius: 18px;
  width: 260px; 
  padding: 20px;
  text-align: center;
  position: relative;
  box-shadow: 0 4px 12px rgba(200, 100, 160, 0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  box-sizing: border-box; 
}

/* hover lift effect */

.card:hover {
  transform: translateY(-10px);
  box-shadow: 0 16px 32px rgba(200, 100, 160, 0.22);
}

/* image wrapper */

.card-img-wrap {
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid #e8b8d0;
}

.card-img-wrap img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.card:hover .card-img-wrap img {
  transform: scale(1.06);
}

/* drink name */

.card h3 {
  margin: 14px 0 8px 0;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.15em;
  color: var(--purple-dark);
}

/* ingredient list */

.card ul {
  text-align: left;
  padding-left: 18px;
  margin: 0;
  font-size: 0.88em;
  color: var(--purple-mid);
  line-height: 1.9;
}

/* small label badges */

.badge {
  display: inline-block;
  margin-top: 12px;
  padding: 3px 10px;
  background-color: var(--pink-border);
  color: var(--purple-dark);
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 999px;
  text-transform: uppercase;
}

/* footer */

footer {
  text-align: center;
  padding: 35px 20px;
  background-color: var(--pink-mid);
  border-top: 3px solid var(--pink-border);
  font-size: 1em;
  color: var(--purple-mid);
}

footer a {
  color: var(--purple-dark);
  font-weight: bold;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color 0.2s ease;
}

footer a:hover {
  border-bottom-color: var(--purple-dark);
}

/* github */

.github-btn {
  display: inline-block;
  margin-top: 15px;
  padding: 10px 25px;
  background-color: var(--purple-dark); 
  color: #ffffff !important;           
  text-decoration: none;
  border-radius: 50px;                 
  font-weight: bold;
  font-size: 0.9em;
  transition: all 0.3s ease;
  border: 2px solid transparent;
}

.github-btn:hover {
  background-color: transparent;
  color: var(--purple-dark) !important;
  border-color: var(--purple-dark);
  transform: translateY(-3px);        
  border-bottom: 2px solid var(--purple-dark); 
}