@charset "UTF-8";

/* =========================================================
   Piece / PageUpper Piece
========================================================= */

/* breadCrumbs
----------------------------------------------- */
#breadCrumbs {
  position: relative;
  margin-left: -100px;
  padding: 15px 50px;
  background: #484848;
}
#breadCrumbs::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
  width: 100vw;
  background: #484848;
}
#breadCrumbs ol, #breadCrumbs li {
  list-style: none;
}
#breadCrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}
#breadCrumbs li:not(:first-child):before {
  content: "＞";
  margin: 0 12px;
  color: #fff;
}
#breadCrumbs a {
  color: #fff;
}
@media only screen and (max-width: 1600px) {
  #breadCrumbs {
    margin-left: 0;
  }
}
@media only screen and (max-width: 768px) {
  #breadCrumbs {
    margin-bottom: 0;
    padding: 5px 15px;
    font-size: 0.75rem;
  }
  #breadCrumbs .pieceBody {
    overflow-y: hidden;
    overflow-x: auto;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--clr-ex-deep-gray) transparent;
  }
  #breadCrumbs .pieceBody::-webkit-scrollbar {
    height: 8px;
  }
  #breadCrumbs .pieceBody::-webkit-scrollbar-track {
    background: transparent;
  }
  #breadCrumbs .pieceBody::-webkit-scrollbar-thumb {
    height: 200px;
    border-radius: 10px;
    background: var(--clr-ex-deep-gray);
  }
  #breadCrumbs ol {
    flex-wrap: nowrap;
    white-space: nowrap;
  }
  #breadCrumbs li:last-child {
    padding-right: 10px;
  }
}

/* page-visual
----------------------------------------------- */
.page-visual {
  position: relative;
  max-width: 2000px;
  margin: 0 auto 60px;
}
.page-visual::before, .page-visual::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
  width: 100vw;
  height: 20px;
}
.page-visual::before {
  background: #fff;
}
.page-visual::after {
  background: linear-gradient(90deg, rgba(15,56,158,1) 10%, rgba(15,56,158,0.5) 50%, rgba(15,56,158,0) 100%);
}
.page-visual #mainVisual {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: -100px;
  z-index: -2;
}
@media only screen and (max-width: 1600px) {
  .page-visual #mainVisual {
    left: 0;
  }
}
@media only screen and (min-width: 769px), print {
  .page-visual {
    padding: 0 50px;
  }
  .page-visual.top #mainTitle {
    padding-top: 40%;
  }
  .page-visual.lower #mainTitle {
    padding-top: 15%;
  }
}
@media only screen and (max-width: 768px) {
  .page-visual {
    margin-bottom: 25px;
    padding-top: 85%;
  }
  .page-visual.top {
    padding-top: 30%;
  }
  .page-visual.lower {
    padding-top: 0;
  }
  .page-visual.lower #mainVisual {
    position: static;
  }
  .page-visual::before, .page-visual::after {
    height: 8px;
    background: var(--clr-deep-blue);
  }
}

/* mainVisual
----------------------------------------------- */
#mainVisual div {
  height: 100%;
}
#mainVisual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* mainTitle
----------------------------------------------- */
#mainTitle .pieceContainer {
  position: relative;
  display: flex;
  align-items: flex-end;
}
#mainTitle .pieceBody {
  position: relative;
  flex-basis: 50%;
  padding: 35px 65px 30px 0;
  color: #fff;
}
#mainTitle .pieceBody::before, #mainTitle .pieceBody::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: -1px;
  z-index: -2;
  width: 50vw;
  clip-path: polygon(0 0, calc(100% - 70px) 0%, 100% 100%, 0% 100%);
}
#mainTitle .pieceBody::before {
  background: #fff;
}
#mainTitle .pieceBody::after {
  background: linear-gradient(90deg, rgba(15,56,158,1) 20%, rgba(15,56,158,0.5) 100%);
}
#mainTitle .pieceBody h1 {
  font-size: min(3vw, 2.625rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
#mainTitle .pieceBody h1 span {
  display: block;
  margin-bottom: 10px;
  font-size: min(2vw,1.5rem);
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 768px) {
  #mainTitle:not(.top) {
    background: var(--clr-deep-blue);
  }
  #mainTitle .pieceBody {
    flex-basis: calc(100% - 25px);
    padding: 15px 30px 6px 15px;
  }
  #mainTitle .pieceBody::before, #mainTitle .pieceBody::after {
    width: 100vw;
    background: var(--clr-deep-blue);
    clip-path: polygon(0 0, calc(100% - 35px) 0%, 100% 100%, 0% 100%);
  }
  #mainTitle .pieceBody h1 {
    font-size: 1.25rem;
  }
  #mainTitle .pieceBody h1 span {
    margin-bottom: 5px;
    font-size: 0.8rem;
  }
}

/* globalNavi
----------------------------------------------- */
#globalNavi {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 10px;
}
#globalNavi .pieceBody > ul {
  display: flex;
  align-items: center;
}
#globalNavi .pieceBody > ul > li {
  position: relative;
  flex: 1 1 0;
}
#globalNavi .pieceBody > ul > li::before {
  content: "";
  position: absolute;
  top: calc(50% - 15px);
  left: 0;
  width: 2px;
  height: 30px;
  background: var(--clr-deep-blue);
}
#globalNavi .pieceBody > ul > li:last-child::after {
  content: "";
  position: absolute;
  top: calc(50% - 15px);
  right: 0;
  width: 2px;
  height: 30px;
  background: var(--clr-deep-blue);
}
#globalNavi .pieceBody > ul > li > a {
  display: block;
  padding: 0 10px;
  color: var(--font-color);
  font-size: 1.125rem;
  font-weight: 700;
  text-align: center;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
}
#globalNavi .pieceBody > ul > li > a:hover {
  opacity: 0.5;
  text-decoration: none;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
}
@media only screen and (max-width: 1280px) {
  #globalNavi .pieceBody > ul {
    flex-wrap: wrap;
  }
  #globalNavi .pieceBody > ul > li {
    flex: 0 0 25%;
    margin: 5px 0;
  }
  #globalNavi .pieceBody > ul > li:nth-child(4n)::after {
    content: "";
    position: absolute;
    top: calc(50% - 15px);
    right: 0;
    width: 2px;
    height: 30px;
    background: var(--clr-deep-blue);
  }
}
@media only screen and (max-width: 768px) {
  #globalNavi {
    display: none;
  }
}