/* 1. ±âº» ÃÊ±âÈ­ */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family:
    "Pretendard",
    -apple-system,
    sans-serif;
}

body,
html {
  width: 100%;
  height: 100%;
  background-color: #f8fafc;
}

/* 2. ·¹ÀÌ¾Æ¿ô ±¸Á¶ */
.app-container {
  display: flex;
  width: 100%;
  min-height: 100vh;
}

.main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0; /* ³»ºÎ ¿ä¼Ò°¡ ºÎ¸ð¸¦ ¶Õ°í ³ª°¡´Â Çö»ó ¹æÁö */
}

/* 3. È÷¾î·Î ¼½¼Ç (¹è°æ ¿µ¿ª) */
.hero {
  width: 100%;
  background: linear-gradient(135deg, #1e293b 0%, #334155 50%, #1e3a8a 100%);
  /* ÆÐµùÀ» ´Ã·Á ¹è°æ ¿µ¿ªÀ» ÃæºÐÈ÷ È®º¸ÇÕ´Ï´Ù */
  padding: 70px 15px 150px 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.hero-logo {
  width: 100%;
  max-width: 500px; /* ÃÖ´ë Å©±â Á¦ÇÑ: PC¿¡¼­µµ ³Ê¹« Ä¿ÁöÁö ¾Ê°Ô ¹æÁö */
  height: auto; /* ºñÀ² À¯Áö */
  display: block; /* ÇÏ´Ü ¿©¹é Á¦°Å */
  margin: 0 auto; /* °¡¿îµ¥ Á¤·Ä (ÇÊ¿ä ½Ã) */
}

.hero-inner {
  max-width: 1100px;
  width: 100%;
}

.hero-title {
  font-size: 3.5rem;
  font-weight: 900;
  color: white;
  margin-bottom: 20px;
  letter-spacing: -0.02em;
}

.hero-desc {
  font-size: 1.25rem; /* ³Ê¹« Å©Áö ¾Ê°Ô ÀûÀýÇÑ Å©±â */
  color: rgba(
    255,
    255,
    255,
    0.85
  ); /* ¼ø¹é»öº¸´Ù ¾à°£ Åõ¸íÇÏ°Ô ÇÏ¿© °í±Þ½º·¯¿î ´À³¦ */
  font-weight: 300; /* ¾ãÀº µÎ²²(Light)¸¦ ¼±ÅÃÇØ ¼¼·Ã¹Ì °­Á¶ */
  letter-spacing: -0.03em; /* ÀÚ°£À» »ìÂ¦ Á¼Çô ÀÀÁý·Â ÀÖ°Ô */
  line-height: 1.6; /* °¡µ¶¼ºÀ» À§ÇØ ÁÙ °£°ÝÀ» ÃæºÐÈ÷ È®º¸ */
  word-break: keep-all; /* ´Ü¾î Áß°£¿¡¼­ ÁÙ¹Ù²ÞµÇÁö ¾Êµµ·Ï ¼³Á¤ */
  opacity: 0.9; /* ÀºÀºÇÑ ´À³¦ Ãß°¡ */
}

/* 4. ÄÜÅÙÃ÷ ¿µ¿ª (Ä«µåµéÀÌ ¹èÄ¡µÇ´Â °÷) */
.content-area {
  width: 100%;
  max-width: 1240px; /* ÀüÃ¼ÀûÀÎ Ä«µå ³Êºñ Á¦ÇÑ */
  margin: -80px auto 60px auto; /* ¸¶ÀÌ³Ê½º ¸¶ÁøÀ¸·Î È÷¾î·Î ¿µ¿ª À§·Î ¿Ã¸² */
  padding: 0 40px; /* ÁÂ¿ì ¿©¹é È®º¸ */
  z-index: 10;
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3¿­ ¹èÄ¡ */
  gap: 30px; /* Ä«µå »çÀÌ °£°Ý */
  justify-items: center; /* ÀÚ½Ä ¿ä¼ÒµéÀ» °¡·Î Áß¾ÓÀ¸·Î */
}

/* 5. Ä«µå ½ºÅ¸ÀÏ */
.card {
  background: white;
  width: 100%; /* ±×¸®µå ³Êºñ¿¡ ¸ÂÃã */
  padding: 40px 30px;
  border-radius: 24px;
  box-shadow:
    0 20px 25px -5px rgba(0, 0, 0, 0.1),
    0 10px 10px -5px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease;
}

.card:hover {
  transform: translateY(-10px);
}

.card-title {
  font-size: 1.6rem !important; /* HTMLÀÇ ÀÎ¶óÀÎ ½ºÅ¸ÀÏº¸´Ù ¿ì¼± Àû¿ë */
  font-weight: 800;
  margin-bottom: 15px;
  color: #1e293b;
}

.card-desc {
  font-size: 1rem;
  line-height: 1.6;
  color: #64748b;
  margin-bottom: 30px;
  flex-grow: 1;
}

/* 6. ¹öÆ° ¹× ÅÂ±× */
.btn-group-double {
  display: flex;
  gap: 12px;
}

.link-btn {
  flex: 1;
  text-align: center;
  padding: 14px;
  border-radius: 12px;
  text-decoration: none;
  color: white;
  font-weight: 700;
  font-size: 0.95rem;
}

.icon-tag {
  font-size: 0.75rem;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 8px;
  margin-bottom: 20px;
  text-transform: uppercase;
  display: inline-block;
}

/* »ö»ó Á¤ÀÇ */
.data-btn {
  background: #f59e0b;
}
.at-btn {
  background: #52b788;
}
.vis-btn {
  background: #40916c;
}
.sp-btn {
  background: #4361ee;
}
.overlay-btn {
  background: #3f37c9;
}

.data-tag {
  background: #fff7ed;
  color: #c2410c;
}
.at-tag {
  background: #ecfdf5;
  color: #065f46;
}
.sp-tag {
  background: #eff6ff;
  color: #1e40af;
}

/* 7. ¹ÝÀÀÇü */
@media (max-width: 1100px) {
  .grid-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .hero {
    padding: 30px 15px 100px 15px !important;
  }
  .hero-title {
    font-size: 0 !important; /* ÅØ½ºÆ® °ø°£À¸·Î ÀÎÇÑ ºÒÇÊ¿äÇÑ ¿©¹é Á¦°Å */
    line-height: 0 !important; /* ÀÌ¹ÌÁö ÁÖº¯ À§¾Æ·¡ ºó °ø°£ Á¦°Å */
    margin-bottom: 10px !important;
  }
  .hero-logo {
    max-width: 70% !important; /* ¸ð¹ÙÀÏ¿¡¼­ È­¸é¿¡ ²Ë Â÷Áö ¾Ê°Ô Á¶Àý */
    height: auto;
  }
  .grid-container {
    grid-template-columns: 1fr;
  }
  .content-area {
    margin-top: -60px;
    padding: 0 20px;
  }

  .hero-desc {
    font-size: 1.05rem !important;
    font-weight: 400 !important; /* ¸ð¹ÙÀÏ¿¡¼­´Â °¡µ¶¼ºÀ» À§ÇØ Á¶±Ý ´õ ¼±¸íÇÏ°Ô */
    letter-spacing: -0.04em !important;
    margin-top: 8px !important;
    padding: 0 20px; /* ¾ç ¿· ¿©¹éÀ» ÁÖ¾î ±ÛÀÚ°¡ ³Ê¹« ºÙÁö ¾Ê°Ô */
  }
}
