: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);
}

@media (max-width: 1760px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.8);
  }
  .w1600 {
		max-width: 1600px;
    padding: 0 20px;
  }
}
@media (max-width: 1600px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.7);
  }
  main .organ .point-text span {
    font-size: 12rem;
  }
  main .history .item-box {
    column-gap: 40px;
  }
	main .history .text {
		width: calc(53.125% - 40px);
	}
  main .history .point-text {
    top: -30%;
    right: -3%;
  }
  main .history .point-text span {
    font-size: 14rem;
  }
}
@media (max-width: 1400px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.64);
  }
  header .language {
    margin-left: 20px;
  }
  main .organ .point-text span {
    font-size: 11rem;
  }
  main .organ .circle {
    width: 30%;
    padding: 15% 0;
  }
  main .organ .list-box .item {
    width: 30%;
  }
  main .history .point-text {
    top: -24%;
  }
  main .history .text {
    padding-bottom: 30px;
  }
}
@media (max-width: 1200px) {
  html,
  body {
    font-size: 56.25%;
  }
  .font120 {
    font-size: calc(var(--fontsize) * 0.6);
  }
  header {
    height: 100px;
    z-index: 3;
  }
  .padding180 {
    padding: 120px 0;
  }
  main .visual .title {
    padding-bottom: 60px;
  }
  main .organ .point-text span {
    font-size: 8rem;
  }
  main .organ .title p {
    font-size: 2.6rem;
  }
  main .organ .line-box {
    height: 100px;
  }
  main .organ .item-box.on .line-box span {
    height: 50px;
  }
  main .history .img {
    width: 50%;
  }
  main .history .text {
    padding-bottom: 0;
  }
  main .history .text h4 {
    font-size: 3.8rem;
    margin: 0 0 30px;
  }
  main .history .text ul li {
    column-gap: 15px;
  }
  main .history .text ul li * {
    font-size: 2rem;
  }
  main .history .point-text span {
    font-size: 10rem;
  }
  footer .buttons button {
    height: 60px;
  }
  footer .family ul {
    padding: 10px 20px;
  }
  footer .family-button {
    width: 220px;
    padding: 0 20px;
  }
  footer .top-button {
    width: 60px;
  }
}
@media (max-width: 960px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.52);
  }
  main .visual .title {
    padding-bottom: 40px;
  }
  main .visual .title p {
    font-size: 2.2rem;
    margin-top: 10px;
    transform: translateY(40px);
  }
  main .organ .contents {
    row-gap: 40px;
  }
  main .organ .point-text span {
    font-size: 6.8rem;
  }
  main .organ .title p {
    font-size: 2.1rem;
  }
  main .organ .circle {
    width: 40%;
    padding: 20% 0;
  }
  main .organ .list-box .item {
    width: calc((100% - 40px) / 3);
  }
  main .organ .list-box .item p {
    font-size: 1.9rem;
    margin-top: 20px;
  }
  main .history .point-text span {
    font-size: 8rem;
  }
  main .history .text h4 {
    font-size: 3.2rem;
    margin: 0 0 20px;
  }
	main .history .text ul li {
		flex-direction: column;
		row-gap: 5px;
		column-gap: 0;
	}
  main .history .text ul b {
    width: 45px;
  }
  footer .footer-box {
    align-items: flex-end;
  }
  footer .info dl {
    flex-direction: column;
    gap: 5px 0;
    align-items: flex-start;
  }
}
@media (max-width: 768px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.4);
  }
  .padding180 {
    padding: 80px 0;
  }
  header {
    height: 80px;
  }
  header .logo {
    width: 140px;
  }
  header .language hr {
    height: 10px;
  }
  main .visual .title p {
    font-size: 1.8rem;
  }
  main .organ .title p {
    font-size: 1.9rem;
  }
  main .organ .title p br {
    display: none;
  }
  main .organ .item .inner {
    transform: scale(0.8);
  }
  main .history .item-box {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 40px;
    column-gap: 0;
  }
  main .history .img {
    width: 100%;
  }
  main .history .text {
    width: 100%;
  }
	main .history .text ul li {
		flex-direction: row;
		row-gap: 0;
		column-gap: 15px;
	}
  main .history .point-text {
    right: -20px;
  }
  footer {
    padding: 40px 0;
  }
  footer .footer-box,
  footer .link {
    display: flex;
    flex-direction: column;
    row-gap: 0;
    column-gap: 0;
    align-items: flex-start;
    justify-content: flex-start;
  }
  footer .footer-box {
    gap: 40px 0;
  }
  footer .info dl {
    flex-direction: row;
    align-items: center;
    gap: 0 20px;
  }
  footer .link {
    gap: 20px 0;
  }
}
@media (max-width: 640px) {
  .font120 {
    font-size: calc(var(--fontsize) * 0.3);
  }
  main .visual {
    margin: 80px 0 0;
  }
  main .organ .point-text {
    top: 1.5%;
  }
  main .organ .point-text span {
    font-size: 5.6rem;
  }
  main .organ .line-box {
    height: 50px;
  }
  main .organ .line-box .horizontal,
  main .organ .line-box .flex-box {
    display: none;
  }
  main .organ .circle {
    width: 50%;
    padding: 25% 0;
  }
  main .organ .list-box {
    flex-direction: column;
    row-gap: 30px;
  }
  main .organ .list-box .item {
    width: calc(100% - 40px);
  }
  footer .info dl {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px 0;
  }
  footer .info dl dt {
    width: 100%;
  }
  footer .buttons button {
    height: 50px;
  }
  footer .family ul li a {
    padding: 5px 0;
  }
  footer .top-button {
    width: 50px;
  }
}
@media (max-width: 570px) {
  footer .contact.typeLink .box {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 20px;
  }
  footer .contact.typeLink .map {
    width: 100%;
  }
  footer .contact.typeLink .map a {
    height: 280px;
  }
  footer .contact.typeLink .item {
    width: calc(50% - 10px);
  }
}
@media (max-width: 440px) {
  html,
  body {
    font-size: 50%;
  }
}