@charset "UTF-8";
/* Scss Document */
/******************************************************/
.page_header {
  margin-bottom: 120px;
  position: relative;
  z-index: 1;
  padding: 140px 0 0 0; }

/*max-width:1280px*/
@media (max-width: 1024px) {
  .page_header {
    min-height: auto;
    padding: 50px 0 0 0;
    margin: 0 auto 50px; } }
/*max-width:1024px*/
@media (max-width: 480px) {
  .page_header {
    padding: 40px 0 0 0; } }
/*max-width:480px*/
/******************************************************/
/******************************************************/
.works_mv {
  height: 830px;
  position: relative;
  margin: 0 auto 160px;
  max-width: 1980px;
  width: 100%; }
  .works_mv .pic {
    position: absolute;
    width: calc(100% - 300px);
    max-width: 1280px;
    height: calc(100% - 30px);
    top: 30px;
    right: 0;
    overflow: hidden; }
    .works_mv .pic img {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      /* Safari用 */
      transform: translate(-50%, -50%);
      object-fit: cover;
      width: 100%;
      height: 100%; }

@media (max-width: 1024px) {
  .works_mv {
    height: auto;
    position: relative;
    margin: 0 auto 100px;
    max-width: 1980px;
    width: 100%; }
    .works_mv .pic {
      position: relative;
      width: 100%;
      max-width: 1280px;
      height: auto;
      top: 0;
      right: 0;
      overflow: hidden; }
      .works_mv .pic img {
        aspect-ratio: 128/80;
        position: relative;
        top: auto;
        left: auto;
        -webkit-transform: translate(0%, 0%);
        /* Safari用 */
        transform: translate(0%, 0%);
        object-fit: cover;
        width: 100%;
        height: auto; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .works_mv {
    margin: 0 auto 50px; } }
/*max-width:768px*/
/*max-width:480px*/
/******************************************************/
.works {
  max-width: 1280px;
  width: calc(100% - 200px);
  margin: 0 auto;
  padding: 0 0 200px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: flex-start;
  justify-content: flex-start; }

@media (max-width: 1280px) {
  .works {
    max-width: 1280px;
    width: calc(100% - 120px);
    margin: 0 20px 0 100px;
    padding: 0 0 200px; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .works {
    max-width: 960px;
    width: calc(100% - 40px);
    margin: 0 auto;
    padding: 0 0 200px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .works {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 0 150px;
    -webkit-justify-content: space-between;
    justify-content: space-between; } }
/*max-width:768px*/
/*max-width:480px*/
/******************************************************/
.works_item {
  width: calc((100% - 159px)/4);
  margin: 0 53px 55px 0; }
  .works_item:nth-of-type(4n) {
    margin-right: 0; }
  .works_item .js-modal-odden {
    display: block; }
  .works_item h3 {
    color: #113479;
    font: 1.6rem/1.6em 'Noto Sans JP', sans-serif;
    font-weight: 700;
    margin: 0 0 6px; }
  .works_item .img {
    margin: 0 0 13px;
    position: relative;
    overflow: hidden;
    border-radius: 15px;
    line-height: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 280/210; }
    .works_item .img img {
      transition: .3s;
      position: absolute;
      object-fit: cover;
      width: 100%;
      height: 100%;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      /* Safari用 */
      transform: translate(-50%, -50%); }
    .works_item .img small {
      color: #fff;
      position: absolute;
      right: 10px;
      bottom: 8px;
      display: block;
      font: 1.4rem/1.2em 'Noto Sans JP', sans-serif;
      font-weight: 700; }
  .works_item .cat {
    background-color: #113479;
    color: #fff;
    display: block;
    width: fit-content;
    padding: 5px 10px 6px 10px;
    font: 1.4rem/1.0em 'Noto Sans JP', sans-serif;
    font-weight: 500;
    margin: 0 0 8px; }
  .works_item dd {
    font: 1.1rem/1.6em 'Noto Sans JP', sans-serif;
    font-weight: 500;
    color: #113479; }

@media (hover: hover) {
  .works_item:hover .img img {
    width: 115%;
    height: 115%; } }
@media (max-width: 1280px) {
  .works_item {
    width: calc((100% - 90px)/4);
    margin: 0 30px 55px 0; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .works_item {
    width: calc((100% - 60px)/3);
    margin: 0 30px 55px 0; }
    .works_item:nth-child(3n) {
      margin-right: 0; }
    .works_item:nth-child(4n) {
      margin-right: 30px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .works_item {
    width: 100%;
    margin: 0 0 25px 0 !important; }
    .works_item .js-modal-open {
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      -webkit-justify-content: space-between;
      justify-content: space-between;
      align-items: flex-start; }
    .works_item .img {
      width: 200px;
      border-radius: 10px; }
    .works_item dl {
      width: calc(100% - 220px); } }
/*max-width:768px*/
@media (max-width: 480px) {
  .works_item {
    width: 100%; }
    .works_item .img {
      width: 160px; }
      .works_item .img small {
        color: #fff;
        position: absolute;
        right: 5px;
        bottom: 5px;
        display: block;
        font: 1.05rem/1.2em 'Noto Sans JP', sans-serif;
        font-weight: 700; }
    .works_item dl {
      width: calc(100% - 175px); }
    .works_item h3 {
      color: #113479;
      font: 1.5rem/1.6em 'Noto Sans JP', sans-serif;
      font-weight: 700;
      margin: 0 0 5px; }
      .works_item h3 small {
        display: block;
        font: 1.3rem/1.2em 'Noto Sans JP', sans-serif;
        font-weight: 700; }
    .works_item dd {
      font: 1.2rem/1.6em 'Noto Sans JP', sans-serif;
      font-weight: 500;
      color: #113479; }
    .works_item .cat {
      margin: 1px 0 7px;
      font: 1.3rem/1.0em 'Noto Sans JP', sans-serif;
      font-weight: 500; } }
/*max-width:480px*/
/******************************************************/
* {
  margin: 0;
  padding: 0; }

/* モーダル全体(背景＋本体) */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  z-index: 99999; }

/* モーダル背景 */
.modal-bg {
  position: absolute;
  height: 100vh;
  width: 100%;
  background: rgba(17, 52, 121, 0.9); }

/* モーダル本体 */
.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow-y: scroll;
  height: calc(100% - 100px);
  width: calc(100% - 120px);
  max-width: 1005px;
  color: #fff; }
  .modal-content .pic {
    width: auto;
    max-height: 600px;
    line-height: 0;
    overflow: hidden;
    position: relative;
    margin: 0 auto 20px;
    aspect-ratio: 1000/750; }
    .modal-content .pic.long {
      aspect-ratio: 667/1000; }
  .modal-content img {
    width: auto;
    height: 100%;
    object-fit: cover;
    display: block;
    margin: 0 auto;
    position: relative; }
  .modal-content small {
    color: #fff;
    position: absolute;
    right: 5px;
    bottom: 5px;
    font: 1.5rem/1.6em 'Noto Sans JP', sans-serif;
    font-weight: 700;
    display: block; }
  .modal-content h3 {
    font: 2.2rem/1.6em 'Noto Sans JP', sans-serif;
    font-weight: 700;
    text-align: justify;
    text-justify: inter-ideograph;
    margin: 0 0 8px; }
  .modal-content .cat {
    width: fit-content;
    border: 1px solid #fff;
    padding: 5px 10px 6px 10px;
    font: 1.4rem/1.0em 'Noto Sans JP', sans-serif;
    font-weight: 500;
    margin: 0 0 10px; }
  .modal-content .dat {
    text-align: justify;
    text-justify: inter-ideograph;
    font: 1.3rem/1.7em 'Noto Sans JP', sans-serif;
    font-weight: 500; }

.modal-content::-webkit-scrollbar {
  width: 5px;
  background-color: rgba(17, 52, 121, 0.9); }

.modal-content::-webkit-scrollbar-thumb {
  background: rgba(17, 52, 121, 0.9);
  width: 6px;
  border-radius: 3px; }

/*max-width:1280px*/
@media (max-width: 1024px) {
  .modal-content {
    width: calc(100% - 20px); }
    .modal-content .modal_box {
      max-width: 800px;
      width: 100%;
      margin: 0 auto; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  /* モーダル本体 */
  .modal-content {
    position: absolute;
    top: 80px;
    left: 50%;
    transform: translate(-50%, 0%);
    overflow-y: scroll;
    height: calc(100% - 80px);
    width: calc(100% - 20px);
    max-width: 640px;
    padding: 0 0 50px;
    color: #fff; }
    .modal-content .pic.long img {
      width: auto;
      height: 100%; }
    .modal-content img {
      width: auto;
      height: 100%; }
    .modal-content h3 {
      font: 2.0rem/1.6em 'Noto Sans JP', sans-serif;
      font-weight: 700; }
      .modal-content h3 small {
        right: 10px;
        font: 1.2rem/1.6em 'Noto Sans JP', sans-serif;
        font-weight: 700; }
    .modal-content .cat {
      width: fit-content;
      border: 1px solid #fff;
      padding: 5px 10px 6px 10px;
      font: 1.4rem/1.0em 'Noto Sans JP', sans-serif;
      font-weight: 500; }
    .modal-content .dat {
      text-align: justify;
      text-justify: inter-ideograph;
      font: 1.4rem/1.7em 'Noto Sans JP', sans-serif;
      font-weight: 500; } }
/*max-width:768px*/
/*max-width:480px*/
.modal_box {
  padding: 0 0 20px; }

/*****************************************/
.close_btn {
  position: fixed;
  top: 10px;
  right: 10px;
  color: #fff;
  width: 46px; }
  .close_btn p {
    text-align: center;
    font: 15px/1.0em 'Noto Sans JP',"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
    font-weight: 500; }
  .close_btn div {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #fff;
    position: relative;
    margin: 0 auto 10px;
    transition: .3s; }
    .close_btn div span {
      position: absolute;
      width: 18px;
      height: 1px;
      transition: .3s;
      background-color: #fff; }
      .close_btn div span:nth-of-type(1) {
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%) rotate(45deg);
        /* Safari用 */
        transform: translate(-50%, -50%) rotate(45deg); }
      .close_btn div span:nth-of-type(2) {
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%) rotate(-45deg);
        /* Safari用 */
        transform: translate(-50%, -50%) rotate(-45deg); }

@media (hover: hover) {
  .close_btn:hover {
    cursor: pointer; }
    .close_btn:hover div {
      background-color: #fff; }
      .close_btn:hover div span {
        background-color: #113479; } }
/*max-width:1280px*/
@media (max-width: 1024px) {
  .close_btn {
    top: 10px;
    right: 10px;
    width: 35px; }
    .close_btn p {
      display: none; }
    .close_btn div {
      width: 35px;
      height: 35px;
      margin: 0 auto; }
      .close_btn div span {
        width: 15px; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .close_btn {
    top: 10px;
    right: 10px;
    width: 35px; }
    .close_btn p {
      display: none; }
    .close_btn div {
      width: 35px;
      height: 35px;
      margin: 0 auto; }
      .close_btn div span {
        width: 15px; } }
/*max-width:768px*/
/*max-width:480px*/
