@charset "UTF-8";
/* TOPページ用CSS */
/* parts */
/* _mixin */
/* media query */
/* layout */
/* padding, margin */
/* headline */
/* color */
/* 青 */
/* グレイみのある青 */
/* 明るい青 */
/* オレンジ */
/* 東京都緑 */
/* flex */
/* font */
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 900;
  src: url("../font/NotoSansJP-Black.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 700;
  src: url("../font/NotoSansJP-Bold.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 500;
  src: url("../font/NotoSansJP-Medium.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 400;
  src: url("../font/NotoSansJP-Light.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 100;
  src: url("../font/NotoSansJP-Thin.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Jost";
  font-style: normal;
  font-weight: 500;
  src: url("../font/Jost-Medium.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Jost";
  font-style: normal;
  font-weight: 600;
  src: url("../font/Jost-SemiBold.woff2") format("woff2");
  font-display: swap;
}
/* other */
/* indiviual */
main {
  padding-top: 4em;
}

#top-contents {
  overflow: hidden;
}

#mainimg-area {
  width: 100%;
  max-width: 1920px;
  height: 100%;
  padding-top: 3em;
  padding-bottom: 5em;
  margin: auto;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  flex-direction: column;
  align-items: center;
  position: relative;
  background: url(../img/contents/top/bg_square_top.svg) no-repeat left top/7% auto, url(../img/contents/top/bg_square_bottom.svg) no-repeat right bottom/7% auto;
}
@media screen and (max-width: 1500px) {
  #mainimg-area {
    padding-top: 0;
  }
}
#mainimg-area::before {
  content: "";
  width: 100vw;
  max-width: 2560px;
  height: 50vh;
  background: url(../img/contents/top/bg_mainimg-area.png) repeat-x left top/100% auto;
  position: absolute;
  top: -1em;
  left: auto;
  z-index: -1;
}
#mainimg-area h1 {
  text-align: center;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  flex-direction: column;
}
#mainimg-area h1 picture {
  padding-top: 5em;
}
#mainimg-area h1 picture img {
  width: 100%;
  max-width: 770px;
  -o-object-fit: contain;
     object-fit: contain;
}
#mainimg-area h1 span {
  font-size: 1.4em;
  font-weight: 500;
  padding-top: 1em;
}
#mainimg-area h1 span br {
  display: none;
}
@media screen and (min-width: 1281px) and (max-width: 1500px) {
  #mainimg-area h1 picture {
    padding-top: 2em;
  }
  #mainimg-area h1 picture img {
    width: 90%;
  }
  #mainimg-area h1 span {
    font-size: 1.3em;
    padding-top: 0.75em;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  #mainimg-area h1 picture {
    padding-top: 1em;
  }
  #mainimg-area h1 picture img {
    width: 80%;
  }
  #mainimg-area h1 span {
    font-size: 1.2em;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  #mainimg-area h1 picture {
    padding-top: 1.5em;
  }
  #mainimg-area h1 picture img {
    width: 70%;
  }
  #mainimg-area h1 span {
    font-size: 1.2em;
  }
}
#mainimg-area p.catch {
  font-size: 2em;
  font-weight: 500;
  width: 37.5%;
  padding-top: 2.5em;
}
@media screen and (min-width: 1281px) and (max-width: 1500px) {
  #mainimg-area p.catch {
    width: 50%;
    padding-top: 1.5em;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  #mainimg-area p.catch {
    font-size: 1.45em;
    width: 50%;
    padding: 2em 0;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  #mainimg-area p.catch {
    font-size: 1.4em;
    width: 50%;
    padding: 2em 0;
  }
}
#mainimg-area p.catch span {
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  align-items: center;
}
#mainimg-area p.catch span:last-child {
  justify-content: flex-end;
  padding-top: 0.5em;
}
#mainimg-area p.catch img {
  width: 4.5em;
  padding-right: 0.5em;
  -o-object-fit: contain;
     object-fit: contain;
}
#mainimg-area .mainimg img {
  width: 100%;
  max-width: 1625px;
  -o-object-fit: contain;
     object-fit: contain;
  position: relative;
  top: -5em;
}
#mainimg-area .top-offer-area {
  padding: 1em;
  background: #00338D;
  position: absolute;
  right: 15%;
  bottom: 2.5em;
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  #mainimg-area .top-offer-area {
    width: 25%;
    right: 5%;
  }
}
#mainimg-area .top-offer-area h2 {
  font-size: 1.2em;
  font-weight: 500;
  color: #fff;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  justify-content: space-between;
}
#mainimg-area .top-offer-area h2::before, #mainimg-area .top-offer-area h2::after {
  content: "";
  width: 1em;
  height: 1.25em;
}
#mainimg-area .top-offer-area h2::before {
  background: url(../img/contents/top/bg_h2_square_l.svg) left bottom no-repeat;
}
#mainimg-area .top-offer-area h2::after {
  background: url(../img/contents/top/bg_h2_square_r.svg) right top no-repeat;
}
#mainimg-area ul.top-offer-ul {
  background: #fff;
  padding: 1em 0.5em;
  margin-top: 1em;
}
#mainimg-area ul.top-offer-ul li {
  padding: 0.5em 0;
}
#mainimg-area ul.top-offer-ul li a {
  font-size: 1em;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  flex-direction: column;
  align-items: flex-end;
}
#mainimg-area ul.top-offer-ul li a::after {
  content: "";
  width: 2em;
  height: 1.25em;
  background: url(../img/contents/top/arrow_b.svg) center bottom no-repeat;
}

.wrapper {
  padding-bottom: 7em;
  max-width: 2560px;
  margin-left: auto;
  margin-right: auto;
}
.wrapper::before, .wrapper::after {
  content: "";
  width: 100vw;
  height: 20em;
  position: absolute;
}
.wrapper::before {
  background: url(../img/contents/top/bg_contents.svg) left -40% top 45% no-repeat;
  top: 20%;
}
@media screen and (min-width: 1940px) {
  .wrapper::before {
    background-position: left top 45%;
  }
}
.wrapper::after {
  background: url(../img/contents/top/bg_contents.svg) right -15% bottom no-repeat;
  bottom: 3em;
  right: 0;
}
@media screen and (min-width: 1940px) {
  .wrapper::after {
    background-position: right bottom;
  }
}

.top-contents-section {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  position: relative;
  z-index: 1;
  margin: 3em auto 0 auto;
  padding: 1.5em 0;
  position: relative;
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  .top-contents-section {
    width: 90%;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  .top-contents-section {
    width: 95%;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  .top-contents-section {
    width: 90%;
  }
}
@media screen and (max-width: 767px) {
  .top-contents-section {
    width: 90%;
  }
}
.top-contents-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  background: repeating-linear-gradient(to right, #00338D 0px, #00338D 3px, transparent 3px, transparent 6px), repeating-linear-gradient(to left, #00338D 0px, #00338D 3px, transparent 3px, transparent 6px), repeating-linear-gradient(to bottom, #00338D 0px, #00338D 3px, transparent 3px, transparent 6px), repeating-linear-gradient(to top, #00338D 0px, #00338D 3px, transparent 3px, transparent 6px);
  background-repeat: no-repeat;
  background-size: 100% 3px, 100% 3px, 3px 100%, 3px 100%;
  background-position: top, bottom, left, right;
  z-index: 0;
}
.top-contents-section .section-inner {
  width: 100%;
  padding: 4em 2.5% 6em 2.5%;
}
@media screen and (min-width: 1940px) {
  .top-contents-section .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 1501px) and (max-width: 1940px) {
  .top-contents-section .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 1281px) and (max-width: 1500px) {
  .top-contents-section .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  .top-contents-section .section-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}
@media screen and (max-width: 767px) {
  .top-contents-section .section-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}
.top-contents-section h2 {
  font-size: 2em;
  font-weight: 900;
  padding: 0 0 0 1.6em;
  position: relative;
  width: -moz-max-content;
  width: max-content;
  margin: 0 auto;
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  .top-contents-section h2 {
    font-size: 1.8em;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  .top-contents-section h2 {
    font-size: 1.85em;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  .top-contents-section h2 {
    font-size: 1.8em;
  }
}
@media screen and (max-width: 767px) {
  .top-contents-section h2 {
    font-size: 1.4em;
  }
}
.top-contents-section h2::before {
  content: "";
  width: 1.1em;
  height: 1.1em;
  background: url(../img/common/h2.svg) no-repeat left center/contain;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  .top-contents-section h2 {
    width: 100%;
    padding-top: 0;
  }
}
.top-contents-section h2 + p {
  font-size: 1.15em;
  font-weight: 500;
  width: 80%;
  margin: 2em auto;
}

.top-about-fig-ul {
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  justify-content: space-between;
  margin: 2.5em 0;
}
.top-about-fig-ul li {
  width: 45%;
}
.top-about-fig-ul li:first-child {
  position: relative;
  width: 55%;
}
.top-about-fig-ul li:first-child::after {
  position: absolute;
  top: 35%;
  right: -1em;
  content: "";
  display: block;
  width: 8em;
  height: 4em;
  background: url(../img/common/arrow_y.svg) no-repeat left center/contain;
}
.top-about-fig-ul li:last-child {
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  flex-direction: column;
  align-items: center;
}
.top-about-fig-ul li:last-child::after {
  content: "";
  display: block;
  width: 5.5em;
  height: 4em;
  margin-top: 1em;
  background: url(../img/common/arrow_o.svg) no-repeat center center/contain;
}
.top-about-fig-ul li dl {
  text-align: center;
}
.top-about-fig-ul li dl dt {
  font-size: 1.5em;
  font-weight: 800;
  color: #00338D;
  line-height: 1.4;
  padding: 0 2em;
  margin-bottom: 1.5em;
}
.top-about-fig-ul li dl dt span {
  font-size: 0.7em;
  font-weight: 500;
  line-height: 1.2;
  padding-top: 0.25em;
  display: inline-block;
}
.top-about-fig-ul li dl dd img {
  width: 100%;
  max-width: 550px;
  -o-object-fit: contain;
     object-fit: contain;
}

.top-about-fig-area {
  position: relative;
}

p.conclution {
  font-size: 1.35em;
  width: 45%;
  position: absolute;
  bottom: 0;
  right: 0;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  justify-content: center;
}
p.conclution strong {
  font-weight: normal;
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  p.conclution {
    font-size: 1.25em;
    line-height: 1.3;
  }
  p.conclution br {
    display: none;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  p.conclution br {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  p.conclution {
    line-height: 1.3;
  }
  p.conclution br {
    display: none;
  }
}

.eyecatch {
  width: 40%;
  max-width: 450px;
  position: absolute;
  bottom: -4em;
  right: -6em;
  z-index: 1;
}
.eyecatch img {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

#top-news-area {
  padding: 5em 0 6.5em 0;
  margin: 3em 0;
  background: #F1F3F6 url(../img/contents/top/bg_mainimg-area.png) no-repeat left center/100% auto;
}
#top-news-area .section-inner {
  width: 100%;
  padding: 4em 2.5% 6em 2.5%;
  padding: 0 !important;
  position: relative;
}
@media screen and (min-width: 1940px) {
  #top-news-area .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 1501px) and (max-width: 1940px) {
  #top-news-area .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 1281px) and (max-width: 1500px) {
  #top-news-area .section-inner {
    width: 100%;
    max-width: 1100px;
    padding-right: 0;
    padding-left: 0;
    margin: 0 auto;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  #top-news-area .section-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}
@media screen and (max-width: 767px) {
  #top-news-area .section-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}
#top-news-area .section-inner h2 {
  width: -moz-max-content;
  width: max-content;
  margin: auto;
  font-size: 2em;
  font-weight: 900;
  padding: 0 0 0 1.6em;
  position: relative;
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  #top-news-area .section-inner h2 {
    font-size: 1.8em;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  #top-news-area .section-inner h2 {
    font-size: 1.85em;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  #top-news-area .section-inner h2 {
    font-size: 1.8em;
  }
}
@media screen and (max-width: 767px) {
  #top-news-area .section-inner h2 {
    font-size: 1.4em;
  }
}
#top-news-area .section-inner h2::before {
  content: "";
  width: 1.1em;
  height: 1.1em;
  background: url(../img/common/h2.svg) no-repeat left center/contain;
  position: absolute;
  top: 0;
  left: 0;
}
#top-news-area .section-inner .top-new-headline {
  position: relative;
}
#top-news-area .section-inner .top-new-headline a {
  font-size: 1em;
  font-weight: bold;
  color: #00338D;
  display: -moz-flex;
  display: flex;
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  justify-content: flex-end;
  position: absolute;
  top: 50%;
  right: 0;
}
#top-news-area .section-inner .top-new-headline a::after {
  content: "";
  width: 2em;
  height: 1.25em;
  margin-left: 0.5em;
  background: url(../img/contents/top/arrow_b.svg) no-repeat center center/contain;
}
#top-news-area .section-inner ul.news-list-ul {
  margin-top: 5em;
}
#top-news-area .section-inner picture {
  width: 12.5%;
  position: absolute;
  bottom: -6em;
  left: -7em;
}
#top-news-area .section-inner picture img {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/* global */
.en #mainimg-area p.catch {
  font-size: 1.75em;
  width: auto;
  margin-bottom: 1.5em;
}
.en #mainimg-area p.catch span img {
  width: auto;
  height: 2em;
  margin: 0 0.5em;
  padding: 0;
}
.en #mainimg-area p.catch span img:nth-of-type(1) {
  height: 1.75em;
  transform: translateY(-0.25em);
}
.en #mainimg-area p.catch span:last-child {
  margin-left: 2em;
}
.en .top-about-fig-area {
  padding-bottom: 1.75em;
}
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  #top-news-area {
    padding-bottom: 4em;
  }
  #top-news-area .section-inner {
    width: 90%;
    margin: 0 auto;
  }
  #top-news-area .section-inner ul.news-list-ul {
    margin-top: 3.5em;
  }
}
@media screen and (min-width: 951px) and (max-width: 1024px) {
  #top-news-area {
    padding-bottom: 4em;
  }
  #top-news-area .section-inner {
    width: 90%;
    margin: 0 auto;
  }
  #top-news-area .section-inner ul.news-list-ul {
    margin-top: 3.5em;
  }
}
@media screen and (min-width: 768px) and (max-width: 950px) {
  main #mainimg-area p.catch {
    width: 45%;
  }
  .top-contents-section .section-inner {
    padding-bottom: 4em;
  }
  #top-news-area {
    padding-bottom: 4em;
  }
  #top-news-area .section-inner {
    width: 90%;
    margin: 0 auto;
  }
  #top-news-area .section-inner ul.news-list-ul {
    margin-top: 3.5em;
    margin-bottom: 0;
  }
  #top-news-area .section-inner ul.news-list-ul dl dt {
    width: 15%;
  }
  #top-news-area .section-inner ul.news-list-ul dl dd {
    width: 85%;
  }
}
@media screen and (max-width: 767px) {
  #mainimg-area {
    height: auto;
    background-size: 10% auto, 17% auto;
    background-position: left top 1em, right bottom;
  }
  #mainimg-area h1 {
    width: 90%;
  }
  #mainimg-area h1 span {
    font-size: 1.2em;
  }
  #mainimg-area h1 span br {
    display: block;
  }
  #mainimg-area p.catch {
    font-size: 4vw;
    letter-spacing: 0;
    width: 90%;
  }
  #mainimg-area p.catch img {
    width: 3.5em;
  }
  #mainimg-area picture.mainimg {
    margin-top: 2em;
    padding: 0 0.5em;
  }
  #mainimg-area picture.mainimg img {
    top: 0;
  }
  #mainimg-area .top-offer-area {
    font-size: 0.85em;
    width: 75%;
    position: static;
    transform: translateY(2em);
  }
  #mainimg-area .top-offer-area ul.top-offer-ul {
    padding: 1em;
  }
  #mainimg-area .top-offer-area ul.top-offer-ul li a {
    display: inline;
  }
  #mainimg-area .top-offer-area ul.top-offer-ul li a::after {
    display: inline-block;
  }
  .top-contents-section {
    padding: 2em 0;
  }
  .top-contents-section h2 {
    width: 100%;
  }
  .top-contents-section h2 + p {
    font-size: 1em;
    width: 100%;
  }
  .top-contents-section .section-inner {
    padding-top: 0;
    padding-bottom: 4em;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul {
    margin-bottom: 1em;
    flex-direction: column;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li {
    width: 100% !important;
    display: -moz-flex;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    flex-direction: column;
    align-items: center;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li + li {
    margin-top: 1.5em;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li dl {
    margin-bottom: 1.5em;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li dl dt {
    font-size: 1.1em;
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li:first-child::after {
    width: 4em;
    position: static;
    background-position: top right;
    background-size: auto 100%;
    transform: rotate(90deg);
  }
  .top-contents-section .top-about-fig-area ul.top-about-fig-ul li:last-child::after {
    margin-top: 0;
  }
  .top-contents-section .conclution {
    font-size: 1.15em;
    width: 100%;
    position: static;
  }
  .top-contents-section p.detail-link {
    padding-bottom: 0;
  }
  .top-contents-section p.detail-link a {
    font-size: 1em;
  }
  #top-news-area {
    padding-bottom: 3em;
  }
  #top-news-area .section-inner {
    padding-right: 5% !important;
    padding-left: 5% !important;
  }
  #top-news-area .section-inner .top-new-headline a {
    margin-top: 2em;
    position: static;
  }
  #top-news-area .section-inner ul.news-list-ul {
    margin-top: 2em !important;
  }
  .en #mainimg-area p.catch {
    font-size: 1.05em;
    line-height: 1.3;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
  }
}/*# sourceMappingURL=top.css.map */