:root {
  --txtBase: #212029;
  --txtGray: #6c6971;
  --gray: #ccc;
  --lightGray: #f2f2f2;
  --purple: #b06bbe;
  --lightPurple: #f8eafa;
  --red: #e28477;
  --lightRed: #fdefed;
  --blue: #4c86c5;
  --lightBlue: #e7f4fa;
  --gold: #9d7900;
  --lightGold: #fcfcdd;
  --green: #5db15b;
  --lightGreen: #edfded;
  --orange: #e5821c;
  --lightOrange: #fcf5e7;
  --productBorderLightPurple: #eccef0;
  --productBgLightPurple: #fefaff;
  --productBlue: #4580C2;
  --productGray: #484848;
  --productLightGray: #fcfcfc;
  --productBorderGray: #d7d7d7;
}

.pageHeader {
  padding-bottom: 66px;
  border-bottom: 1px solid #6c6971;
  margin-bottom: 100px;
}

.lifeTitleArea {
  text-align: center;
  margin-bottom: 140px;
}

.lifeTitle {
  color: #3797d3;
  font-size: 32px;
  letter-spacing: 1.66px;
  line-height: 47px;
  margin-bottom: 38px;
}

.lifeSubTitle {
  font-size: 15px;
  line-height: 30px;
  letter-spacing: 0.45px;
  font-weight: 300;
}

.mapArea {
  margin-bottom: 57px;
}

.commonTitleBlue {
  color: #3797d3;
}

.commonTitleBlue::before {
  border: 4px solid #3797d3;
}

.mapTitle {
  margin-bottom: 35px;
}

.mapSubText {
  font-size: 15px;
  letter-spacing: 0.45px;
  line-height: 21px;
}

.p-life__town {
  margin-bottom: 140px;
}

/* product */
.product {
  padding: 0 0 170px;
}

.productTitle {
  margin-bottom: 30px;
}

.productWrap {
  display: flex;
  flex-wrap: wrap;
  gap: 35px 45px;
  justify-content: space-between;
}

.productWrap > a,
.productWrap > div {
  display: block;
  width: calc(33% - 26.5px);
}

.productLinkIconArea {
  background: #f2f2f2;
  clip-path: inset(0 0 round 12px 12px 12px 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  position: relative;
  overflow: hidden;
}

.productIllust {
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: 0.3s;
  background: #f2f2f2;
  opacity: 1;
}

.productWrap > a:hover .productIllust {
  opacity: 0;
}

.productLinkText {
  font-size: 20px;
  line-height: 26px;
  letter-spacing: 1.2px;
}

.productLinkText span {
  margin-left: 14px;
  color: #3797d3;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 0.96px;
}

.productArchiveLink {
  text-align: center;
}

@media screen and (max-width: 1200px) {
  .productWrap > a,
  .productWrap > div {
    width: 30%;
  }
}
@media screen and (max-width: 1024px) {
  .productWrap {
    gap: 20px 35px;
  }
  .productWrap > a,
  .productWrap > div {
    width: calc(33% - 25px);
  }
}
@media screen and (max-width: 768px) {
  .pageHeader {
    padding-bottom: 47px;
    margin-bottom: 73px;
  }
  .lifeTitleArea {
    text-align: start;
    margin-bottom: 67px;
  }
  .lifeTitle {
    font-size: 24px;
    letter-spacing: 1.25px;
    line-height: 34px;
    margin-bottom: 25px;
  }
  .lifeSubTitle {
    font-size: 12px;
    letter-spacing: 0.29px;
    line-height: 26px;
  }
  .mapArea {
    margin-bottom: 40px;
  }
  .mapTitle {
    letter-spacing: 1.25px;
    line-height: 34px;
    margin-bottom: 35px;
  }
  .mapSubText {
    font-size: 12px;
    letter-spacing: 0.29px;
    line-height: 26px;
    margin-bottom: 40px;
  }
  .product {
    padding: 0 0 120px;
  }
  .productTitle {
    letter-spacing: 1.25px;
    line-height: 34px;
    margin-bottom: 35px;
  }
  .productWrap {
    flex-direction: column;
    gap: 40px;
    margin-bottom: 50px;
  }
  .productWrap > a,
  .productWrap > div {
    display: block;
    width: 100%;
  }
  .p-life__town {
    margin-bottom: 70px;
  }
}
/* case */
.caseTitle {
  margin-bottom: 33px;
}

.case {
  padding-bottom: 118px;
}