:root {
  --color-main: #800020;
  --color-white: #FFFFFF;
  --color-black: #000000;
  --font-garamond: "Garamond", sans-serif;
  --font-optima: "Optima", sans-serif;
}

.font120 {
  --fontsize: 12.0rem;
  font-size: var(--fontsize);
}

main .point-text {
  position: absolute;
}
main .point-text span {
  font-family: var(--font-garamond);
}
main .visual .box {
  position: relative;
}
main .visual .bg {
  width: 100%;
  padding: 24.4025% 0;
  position: relative;
  z-index: -1;
  overflow: hidden;
}
main .visual .bg img {
	min-width: 100%;
  transform: scale(1.05);
  transition: all 1.6s linear;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
main .visual .bg.on img {
  transform: scale(1);
}
main .visual .title-box,
main .visual .title {
  width: 100%;
  height: 100%;
}
main .visual .title-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
main .visual .title {
  padding-bottom: 80px;
  display: flex;
  flex-direction: column;
  row-gap: 0;
  column-gap: 0;
  align-items: flex-start;
  justify-content: flex-end;
}
main .visual .title h2, main .visual .title span {
  line-height: 1.1;
}
main .visual .title h2 > span {
  display: inline-block;
  opacity: 0;
  transition: all 0.8s cubic-bezier(0.905, 0.035, 0.47, 0.9);
}
main .visual .title p {
  font-size: 2.6rem;
  margin-top: 20px;
  opacity: 0;
  transform: translateY(60px);
  transition: all 0.8s linear;
}
main .visual .title.on h2 > span {
  opacity: 1;
}
main .visual .title.on h2 > span:nth-child(1) {
  transition-delay: 0.4714285714s;
}
main .visual .title.on h2 > span:nth-child(2) {
  transition-delay: 0.5428571429s;
}
main .visual .title.on h2 > span:nth-child(3) {
  transition-delay: 0.6142857143s;
}
main .visual .title.on h2 > span:nth-child(4) {
  transition-delay: 0.6857142857s;
}
main .visual .title.on h2 > span:nth-child(5) {
  transition-delay: 0.7571428571s;
}
main .visual .title.on h2 > span:nth-child(6) {
  transition-delay: 0.8285714286s;
}
main .visual .title.on h2 > span:nth-child(7) {
  transition-delay: 0.9s;
}
main .visual .title.on h2 > span:nth-child(8) {
  transition-delay: 0.9714285714s;
}
main .visual .title.on h2 > span:nth-child(9) {
  transition-delay: 1.0428571429s;
}
main .visual .title.on h2 > span:nth-child(10) {
  transition-delay: 1.1142857143s;
}
main .visual .title.on h2 > span:nth-child(11) {
  transition-delay: 1.1857142857s;
}
main .visual .title.on h2 > span:nth-child(12) {
  transition-delay: 1.2571428571s;
}
main .visual .title.on h2 > span:nth-child(13) {
  transition-delay: 1.3285714286s;
}
main .visual .title.on h2 > span:nth-child(14) {
  transition-delay: 1.4s;
}
main .visual .title.on h2 > span:nth-child(15) {
  transition-delay: 1.4714285714s;
}
main .visual .title.on h2 > span:nth-child(16) {
  transition-delay: 1.5428571429s;
}
main .visual .title.on h2 > span:nth-child(17) {
  transition-delay: 1.6142857143s;
}
main .visual .title.on h2 > span:nth-child(18) {
  transition-delay: 1.6857142857s;
}
main .visual .title.on h2 > span:nth-child(19) {
  transition-delay: 1.7571428571s;
}
main .visual .title.on h2 > span:nth-child(20) {
  transition-delay: 1.8285714286s;
}
main .visual .title.on p {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1s;
}
main .organ .contents {
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: 80px;
  column-gap: 0;
  align-items: center;
  justify-content: center;
}
main .organ .point-text {
  top: 4.5%;
  left: 0;
}
main .organ .point-text span {
  display: block;
  font-size: 14rem;
  margin: -0.3em 0;
  opacity: 0.05;
}
main .organ .point-text span:last-child {
  transform: translateX(1em);
}
main .organ .title {
  text-align: center;
}
main .organ .title p {
  font-size: 3rem;
  line-height: 1.5;
}
main .organ .item-box,
main .organ .list-box {
  width: 100%;
}
main .organ .item {
  margin-right:30px;
}
main .organ .item .gradient {
  background: linear-gradient(92deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}
main .organ .item .inner {
  transition: all 0.4s;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 10px;
  column-gap: 0;
  align-items: center;
  justify-content: center;
}
main .organ .item.circle .gradient {
  border-radius: 50%;
}
main .organ .item.circle .inner {
  row-gap: 20px;
}
main .organ .item:hover .inner {
  transform: scale(1.05);
}
main .organ .item {
  opacity: 0;
  transition: all 0.6s;
}
main .organ .circle {
  width: 23.4375%;
  padding: 11.71875% 0;
  margin: 0 auto;
  position: relative;
  transform: translateY(-60px);
}
main .organ .circle .gradient {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
main .organ .line-box .flex-box,
main .organ .list-box {
  display: flex;
  flex-direction: row;
  row-gap: 0;
  column-gap: 0;
  align-items: center;
  justify-content: space-between;
}
main .organ .line-box {
  width: 72%;
  height: 200px;
  margin: 0 auto;
  position: relative;
}
main .organ .line-box > span {
  margin: 0 auto;
}
main .organ .line-box span {
  display: block;
  width: 2px;
  height: 0;
  background: #252525;
  transition: all 0.4s linear;
}
main .organ .line-box span.horizontal {
  width: 0;
  height: 2px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
main .organ .list-box .item {
  width: 28.125%;
  transform: translateY(60px);
}
main .organ .list-box .item p {
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
  font-size: 2.3rem;
  margin-top: 30px;
}
main .organ .list-box .gradient {
  height: 125px;
}
main .organ .item-box.on .item {
  opacity: 1;
  transform: translateY(0);
}
main .organ .item-box.on .line-box span {
  height: 100px;
}
main .organ .item-box.on .line-box span.horizontal {
  width: 100%;
  height: 2px;
  transition-delay: 0.4s;
}
main .organ .item-box.on .line-box .flex-box span {
  transition-delay: 0.8s;
}
main .organ .item-box.on .list-box .item {
  transition-delay: 0.8s;
}
main .history .item-box {
  display: flex;
  flex-direction: row;
  row-gap: 0;
  column-gap: 80px;
  align-items: flex-end;
  justify-content: flex-start;
}
main .history .img:hover img {
  transform: scale(1.1);
}
main .history .text {
	width: calc(53.125% - 80px);
  padding-bottom: 70px;
  position: relative;
}
main .history .text * {
  transition: all 0.6s;
}
main .history .text .opacity {
  opacity: 0;
}
main .history .text h4 {
  color: #111;
  font-size: 4.8rem;
  font-weight: 500;
  margin: 0 0 40px;
  transform: translateX(80px);
}
main .history .text ul {
  display: flex;
  flex-direction: column;
  row-gap: 10px;
  column-gap: 0;
  align-items: flex-start;
  justify-content: flex-start;
}
main .history .text ul li {
  transform: translateY(80px);
  display: flex;
  flex-direction: row;
  row-gap: 0;
  column-gap: 40px;
  align-items: flex-start;
  justify-content: flex-start;
}
main .history .text ul li * {
  color: #222;
  font-size: 2.3rem;
}
main .history .text ul b {
  width: 50px;
  flex-shrink: 0;
}
main .history .text.on .opacity {
  opacity: 1;
}
main .history .text.on h4 {
  transform: translateX(0);
}
main .history .text.on ul li {
  transform: translateY(0);
}
main .history .text.on ul li:nth-child(1) {
  transition-delay: 0.1s;
}
main .history .text.on ul li:nth-child(2) {
  transition-delay: 0.2s;
}
main .history .text.on ul li:nth-child(3) {
  transition-delay: 0.3s;
}
main .history .text.on ul li:nth-child(4) {
  transition-delay: 0.4s;
}
main .history .point-text {
  top: -48%;
  right: -4%;
}
main .history .point-text span {
  color: #f0f0f0;
  font-size: 19rem;
}