@charset "UTF-8";
@import url("//fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap");
/* =================================================
   RESET
================================================= */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0px;
  padding: 0px;
  border: 0px;
  outline: 0;
  font-size: 100%;
  font-style: normal;
  font-variant: normal;
  font-weight: inherit;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, main, hgroup, menu, nav, section, summary {
  display: block;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  text-align: left;
  font-weight: 400;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

q::before, q::after,
blockquote::before, blockquote::after {
  content: "";
  content: none;
}

fieldset, img {
  border: 0;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-size: 100%;
}

input, select {
  vertical-align: middle;
}

/* =================================================
   COMMON
================================================= */
html {
  width: 100%;
  height: auto;
}

body {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  word-break: normal;
  word-wrap: break-word;
  color: #17171A;
  text-align: left;
  width: 100%;
  height: 100%;
  background: hsl(0, 0%, 100%);
}

nav ul {
  list-style: none;
}

img {
  vertical-align: middle;
}

figcaption {
  display: block;
}

summary::-webkit-details-marker {
  display: none; /* delete arrow */
}

a, a:link {
  color: hsl(0, 0%, 0%);
  text-decoration: none;
  font-size: 100%;
  vertical-align: baseline;
  margin: 0;
  padding: 0;
  background: transparent;
}

a:hover {
  color: hsl(0, 0%, 0%);
}

/* -------------------------------------
   font
------------------------------------- */
html,
body {
  line-height: 1.75;
}

/* 320 : iPhone , 360 : Android , 375 : iPhone6 , 414 : iPhone6 Plus */
@media screen and (min-width: 0px) and (max-width: 320px) {
  html,
  body {
    font-size: 62.5%; /* 10px */
    font-size: 2.6666666667vw; /* 10px:375 */
  }
}
@media screen and (min-width: 321px) and (max-width: 767px) {
  html,
  body {
    font-size: 62.5%; /* 10px */
    font-size: 2.6666666667vw; /* 10px:375 */
  }
}
@media screen and (min-width: 768px) {
  html,
  body {
    font-size: 62.5%; /* 10px */
    line-height: 1.75;
  }
}
body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "BIZ UDGothic", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ", Meiryo, sans-serif;
  font-weight: bold;
  font-weight: 300;
}

/* =================================================
   Global layout
================================================= */
/* -----------------------------------------------
    common
----------------------------------------------- */
#container {
  /* -------------------------------------
      Effects
  */
}
#container .sp img {
  display: block;
  width: 100%;
  height: auto;
}
#container .pc {
  display: none !important;
}
#container [data-ruby] {
  display: inline-block;
  margin: 0.9rem 0 0;
  position: relative;
}
#container [data-ruby]:before {
  content: attr(data-ruby);
  display: block;
  white-space: nowrap;
  letter-spacing: 0.075em;
  text-align: center;
  font-size: 0.9rem;
  width: auto;
  margin: 0;
  position: absolute;
  top: -1.1em;
  left: 50%;
  transform: translateX(-50%);
}
#container .cover img,
#container .cover video,
#container img.cover,
#container video.cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#container .fade_block {
  opacity: 0;
  transform: translateY(5.3333333333vw);
  transition: opacity 1.5s, transform 1s;
}
#container .fade_block.active {
  opacity: 1;
  transform: translateY(0);
}
#container .fixfigure_2 {
  display: flex;
  flex-direction: column;
  position: relative;
}
#container .fixfigure_2 figure {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
#container .fixfigure_2 figure img {
  width: auto !important;
  height: 100% !important;
  position: relative;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
}
#container .fixfigure_3 {
  position: relative;
}
#container .fixfigure_3 figure {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
  overflow: hidden;
}
#container .fixfigure_3 figure img {
  height: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* -------------------------------------
   Gloal Layout
------------------------------------- */
#container {
  display: grid;
  align-items: stretch;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header" "main" "footer";
  font-size: 1.4rem;
  text-align: left;
  width: 100%;
  padding: 13.3333333333vw 0 0;
  min-height: 100vh;
  min-height: 100dvh;
  box-sizing: border-box;
  overflow: hidden;
}
#container #py {
  width: 100%;
  height: 100vh;
  height: 100svh;
  box-sizing: border-box;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
}
#container .anchor {
  position: relative;
  z-index: 1;
}
#container .anchor a,
#container .anchor a:link {
  text-decoration: none;
  display: block !important;
  position: absolute !important;
  z-index: -1;
  top: -18.6666666667vw;
}
#container .anchor a#aform,
#container .anchor a:link#aform {
  top: -29.3333333333vw;
}
#container .anchor.nopos {
  position: static;
}
#container #header {
  grid-area: header;
}
#container #main {
  grid-area: main;
}
#container #main #article {
  height: 100%;
}
#container #main #article section {
  height: 100%;
}
#container #footer {
  grid-area: footer;
}
#container.page #py {
  height: 22.6666666667vw;
}

/* -------------------------------------
   header
------------------------------------- */
#container #header {
  width: 13.3333333333vw;
  height: 13.3333333333vw;
  position: fixed;
  z-index: 9999;
  top: 0;
}
#container #header::before, #container #header::after {
  content: "";
  display: block;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
}
#container #header::before {
  width: 0vw;
  background: rgba(23, 28, 97, 0.7);
  z-index: -2;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}
#container #header::after {
  width: 0vw;
  background: rgba(23, 28, 97, 0.1);
  z-index: -1;
  transition: 0.5s ease-in-out;
}
#container #header #b_openmenu {
  display: block;
  width: 13.3333333333vw;
  height: 13.3333333333vw;
  background: #171C61;
  position: absolute;
  z-index: 9;
  top: 0;
  left: 0;
}
#container #header #b_openmenu .icon {
  display: block;
  width: 5.3333333333vw;
  border-top: 1px solid hsl(0, 0%, 100%);
  box-sizing: border-box;
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  transition: opacity 0.2s, transform 0.1s;
}
#container #header #b_openmenu .icon:before, #container #header #b_openmenu .icon:after {
  content: "";
  display: block;
  width: 100%;
  border-top: 1px solid hsl(0, 0%, 100%);
  box-sizing: border-box;
  position: absolute;
  z-index: 1;
  transition: 0.2s;
}
#container #header #b_openmenu .icon:before {
  bottom: -1.6vw;
}
#container #header #b_openmenu .icon:after {
  bottom: 1.6vw;
}
#container #header nav#menu_main {
  display: grid;
  grid-template-rows: 1fr repeat(2, max-content) 13.3333333333vw;
  width: 50vw;
  height: 100vh;
  height: 100dvh;
  padding: 22.6666666667vw 0 0;
  background: #171C61;
  box-sizing: border-box;
  position: absolute;
  z-index: 1;
  top: 0;
  left: -53.3333333333vw;
  transition: 0.3s ease-in-out;
  overflow: auto;
}
#container #header nav#menu_main ul {
  list-style: none;
  width: 100%;
  padding: 0;
}
#container #header nav#menu_main ul li {
  display: block;
  position: relative;
}
#container #header nav#menu_main ul li a,
#container #header nav#menu_main ul li a:link {
  display: block;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "BIZ UDGothic", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ", Meiryo, sans-serif;
  font-weight: bold;
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.1em;
  text-decoration: none;
  box-sizing: border-box;
}
#container #header nav#menu_main ul.menu {
  grid-row: 2;
  display: block;
  width: max-content;
  margin-left: 10.6666666667vw;
}
#container #header nav#menu_main ul.menu li {
  line-height: 1.25;
}
#container #header nav#menu_main ul.menu li a,
#container #header nav#menu_main ul.menu li a:link {
  color: hsl(0, 0%, 100%);
  font-size: 1.8rem;
  padding: 2vw 0;
}
#container #header nav#menu_main ul.menu li.contact {
  margin-top: 5.3333333333vw;
}
#container #header nav#menu_main ul.sns {
  grid-row: 3;
  display: flex;
  align-items: center;
  width: max-content;
  margin: 4vw 0 0 10.6666666667vw;
}
#container #header nav#menu_main ul.sns li {
  line-height: 1;
  width: 6.4vw;
  margin-right: 4vw;
}
#container #header nav#menu_main ul.sns li a,
#container #header nav#menu_main ul.sns li a:link {
  width: 100%;
}
#container.open #header {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
}
#container.open #header::before {
  width: 100vw;
  opacity: 1;
}
#container.open #header::after {
  width: 52.6666666667vw;
}
#container.open #header #b_openmenu .icon {
  border-top: 1px solid rgba(23, 28, 97, 0);
}
#container.open #header #b_openmenu .icon:before, #container.open #header #b_openmenu .icon:after {
  bottom: 50%;
}
#container.open #header #b_openmenu .icon:before {
  transform: translateY(50%) rotate(140deg);
}
#container.open #header #b_openmenu .icon:after {
  transform: translateY(50%) rotate(-140deg);
}
#container.open #header nav#menu_main {
  left: 0vw;
}

/* -------------------------------------
   Contents Common
------------------------------------- */
#container {
  /* -------------------------------------
     section
  ------------------------------------- */
}
#container a,
#container a:link {
  display: block;
}
#container a.txtlink,
#container a:link.txtlink {
  display: inline-block;
  color: hsl(0, 0%, 40%);
  text-decoration: underline;
}
#container a.txtlink:hover,
#container a:link.txtlink:hover {
  color: #b3c4de;
  text-decoration: none;
}
#container h2,
#container h3,
#container h4,
#container h5,
#container h6 {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "BIZ UDGothic", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ", Meiryo, sans-serif;
  font-weight: bold;
  font-weight: 300;
  font-feature-settings: "palt";
  line-height: 1.5;
}
#container h2 span,
#container h3 span,
#container h4 span,
#container h5 span,
#container h6 span {
  display: block;
  letter-spacing: 0.075em;
}
#container p {
  font-size: 1.4rem;
  line-height: 1.75;
  margin-top: 0.5em;
}
#container p:first-of-type {
  margin-top: 0;
}
#container ul li,
#container ol li {
  font-size: 1.4rem;
  line-height: 1.75;
}
#container table tr th,
#container table tr td {
  font-size: 1.4rem;
}
#container img {
  display: block;
  width: 100%;
  height: auto;
}
#container img.border {
  border: 1px solid hsl(0, 0%, 80%);
  box-sizing: border-box;
}
#container figure.border {
  border: 1px solid hsl(0, 0%, 80%);
  box-sizing: border-box;
}
#container .map iframe,
#container .matterport iframe {
  width: 100% !important;
  height: 100% !important;
}
#container .youtube {
  width: 100%;
  position: relative;
  z-index: 1;
}
#container .youtube .pc {
  width: 100%;
  height: 200px;
}
#container .youtube iframe,
#container .youtube video {
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box;
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
}
#container section.underline {
  border-bottom: 1px solid hsl(0, 0%, 80%);
}
#container section .item.underline {
  padding: 0 0 2.5rem;
  border-bottom: 1px solid hsl(0, 0%, 80%);
}
#container section .item.framed {
  padding: 1em;
  border: 1px solid hsl(0, 0%, 80%);
}

/* -------------------------------------
   Contents.Page
------------------------------------- */
#container.page {
  /* -------------------------------------
     aside
  ------------------------------------- */
  /* -------------------------------------
     section
  ------------------------------------- */
}
#container.page aside {
  width: 100%;
  overflow: hidden;
}
#container.page section {
  width: 100%;
  padding: 10.6666666667vw 0;
  margin: 0 auto;
  overflow: hidden;
}
#container.page section ul {
  padding: 0 0 0 1.65em;
  margin: 0 0 0.5em 0;
}
#container.page section ul li {
  padding: 0 0 0.5em;
}
#container.page section ul.block {
  list-style: none;
  padding: 0;
}
#container.page section ul.border {
  padding: 0.75em 0.5em 0.25em 2.2em;
  border: 1px solid #171C61;
}
#container.page section ul.nolist {
  list-style: none;
  padding: 0.75em 0.5em 0.25em 0.5em;
}
#container.page section ul.nolist li {
  text-indent: -1.25em;
  padding: 0 0 0.5em 1.5em;
}
#container.page section table {
  width: 85.3333333333vw;
  margin: 0 auto 10.6666666667vw;
}
#container.page section table th,
#container.page section table td {
  font-feature-settings: "palt";
  vertical-align: baseline;
  letter-spacing: 0.025em;
  padding: 0.25em 0;
  box-sizing: border-box;
}
#container.page section table th {
  text-align: right;
  width: 26.6666666667vw;
  padding-right: 1.5em;
}
#container.page section table td {
  width: 58.6666666667vw;
}
#container.page section table.base th,
#container.page section table.base td {
  display: block;
  width: 100%;
  padding: 0.5em 0;
}
#container.page section table.base th {
  text-align: left;
}

/* -------------------------------------
   footer
------------------------------------- */
#footer .site_title {
  width: 34.6666666667vw;
  height: 13.3333333333vw;
  position: absolute;
  top: 0;
  right: 0;
}
#footer .site_title a,
#footer .site_title a:link {
  text-decoration: none;
  display: block;
  width: 100%;
  height: 100%;
}
#footer .site_title span {
  display: block;
  width: 24vw;
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s;
}
#footer small {
  display: block;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "BIZ UDGothic", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ", Meiryo, sans-serif;
  font-weight: bold;
  font-weight: 400;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  color: #7D81B3;
  text-align: center;
  font-size: 1rem;
  line-height: 1.5;
  width: 100%;
  padding: 1em 0;
}

@media screen and (min-width: 768px) {
  /* =================================================
     Global layout
  ================================================= */
  /* -----------------------------------------------
      common
  ----------------------------------------------- */
  #container {
    /* -------------------------------------
    // Effects
    */
  }
  #container .sp {
    display: none !important;
  }
  #container .pc {
    display: block !important;
  }
  #container .fade_block {
    transform: translateY(48px);
  }
  #container .ahover {
    transition: 0.3s;
  }
  #container .ahover:hover {
    opacity: 0.6;
  }
  #container .pahover a,
  #container .pahover a:link {
    display: block;
    transition: 0.3s;
  }
  #container .pahover a:hover,
  #container .pahover a:link:hover {
    opacity: 0.6;
  }
  #container .transhover,
  #container .transhover:link,
  #container .transhover2,
  #container .transhover2:link {
    transition: 0.3s;
  }
  #container .transhover figure img,
  #container .transhover:link figure img,
  #container .transhover2 figure img,
  #container .transhover2:link figure img {
    transition: 0.5s;
  }
  #container .transhover:hover figure img,
  #container .transhover2:hover figure img {
    transform: scale(1.1) !important;
  }
  #container .transhover:hover {
    opacity: 0.6;
  }
  #container .transhover:hover figure img {
    opacity: 0.6;
  }
  #container .transhover2:hover figure img {
    opacity: 1 !important;
  }
  #container .fixfigure {
    position: relative;
  }
  #container .fixfigure figure {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
    overflow: hidden;
  }
  #container .fixfigure figure img {
    height: 100% !important;
    height: 100% !important;
    object-fit: cover;
  }
  /* -------------------------------------
     Gloal Layout
  ------------------------------------- */
  #container {
    grid-template-columns: repeat(16, 1fr);
    column-gap: 32px;
    grid-template-areas: none;
    width: 100%;
    padding: 0;
  }
  #container .anchor a,
  #container .anchor a:link {
    top: -120px;
  }
  #container .anchor a#aform,
  #container .anchor a:link#aform {
    top: -120px;
  }
  #container #header {
    grid-row: 1/-1;
    grid-column: 1/5;
  }
  #container #main {
    grid-row: 1/-1;
    grid-column: 1/-1;
  }
  #container #footer {
    grid-row: 1/-1;
    grid-column: -6/-2;
    align-self: end;
    justify-self: end;
  }
  #container.page #py {
    height: 160px;
  }
  /* -------------------------------------
     header
  ------------------------------------- */
  #container #header {
    width: 100%;
    height: auto;
    transition: background 0.3s, height 0.3s;
  }
  #container #header::after {
    width: 0px;
  }
  #container #header #b_openmenu {
    width: 80px;
    height: 80px;
    cursor: pointer;
  }
  #container #header #b_openmenu .icon {
    width: 32px;
    border-top: 2px solid hsl(0, 0%, 100%);
  }
  #container #header #b_openmenu .icon:before, #container #header #b_openmenu .icon:after {
    border-top: 2px solid hsl(0, 0%, 100%);
  }
  #container #header #b_openmenu .icon:before {
    bottom: -12px;
  }
  #container #header #b_openmenu .icon:after {
    bottom: 12px;
  }
  #container #header nav#menu_main {
    grid-template-rows: 1fr repeat(2, max-content) 80px;
    width: 212px;
    padding: 96px 0 0;
    overflow: hidden;
    left: -132px;
  }
  #container #header nav#menu_main ul {
    opacity: 0;
    transition: 0.3s;
  }
  #container #header nav#menu_main ul.menu {
    margin-left: 36.8px;
  }
  #container #header nav#menu_main ul.menu li {
    line-height: 1;
    width: max-content;
    margin-top: 16px;
  }
  #container #header nav#menu_main ul.menu li a,
  #container #header nav#menu_main ul.menu li a:link {
    white-space: nowrap;
    font-size: 1.8rem;
    padding: 0.25em 0.5em;
  }
  #container #header nav#menu_main ul.menu li a::before,
  #container #header nav#menu_main ul.menu li a:link::before {
    content: "";
    display: block;
    width: 0%;
    height: 100%;
    background: hsl(0, 0%, 100%);
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    transition: 0.3s ease-in-out;
  }
  #container #header nav#menu_main ul.menu li a:hover {
    color: #171C61;
  }
  #container #header nav#menu_main ul.menu li a:hover::before {
    width: 100%;
  }
  #container #header nav#menu_main ul.menu li.contact {
    margin-top: 32px;
  }
  #container #header nav#menu_main ul.sns {
    margin: 32px 0 0 48px;
  }
  #container #header nav#menu_main ul.sns li {
    width: 20px;
    margin-right: 32px;
  }
  #container.open #header::after {
    width: 222px;
  }
  #container.open #header nav#menu_main {
    overflow: auto;
    left: 0vw;
  }
  #container.open #header nav#menu_main ul {
    opacity: 1;
  }
  /* -------------------------------------
     Contents Common
  ------------------------------------- */
  #main {
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
  }
  #container {
    /* -------------------------------------
       section
    ------------------------------------- */
  }
  #container p {
    font-size: 1.6rem;
  }
  #container p:first-of-type {
    margin-top: 0.5em;
  }
  #container ul li,
  #container ol li {
    font-size: 1.6rem;
  }
  #container table tr th,
  #container table tr td {
    font-size: 1.6rem;
  }
  #container section .item {
    width: 100%;
    margin: 0 0 40px;
  }
  #container section .item.float {
    display: flex;
  }
  #container section .item.float.justify {
    justify-content: space-between;
  }
  #container section .item.float.wrap {
    flex-wrap: wrap;
  }
  #container section .item.float.reverse {
    flex-direction: row-reverse;
  }
  #container section .item.float .float_l {
    width: 340px;
  }
  #container section .item.float .float_r {
    width: 540px;
  }
  #container section .item.underline {
    padding: 0 0 40px;
  }
  #container section .item.framed {
    padding: 40px;
  }
  #container section .item.framed.float .float_l {
    width: 340px;
  }
  #container section .item.framed.float .float_r {
    width: 460px;
  }
  /* -------------------------------------
     Contents.Page
  ------------------------------------- */
  #container.page {
    /* -------------------------------------
       aside
    ------------------------------------- */
    /* -------------------------------------
       section
    ------------------------------------- */
  }
  #container.page aside {
    width: 100%;
  }
  #container.page section {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: 32px;
    align-items: center;
    width: 100%;
    padding: 0;
  }
  #container.page section ul {
    margin: 0 0 1em;
  }
  #container.page section table {
    width: 100%;
    margin: 0 auto 80px;
  }
  #container.page section table tr {
    display: grid;
    grid-template-columns: minmax(100px, 244px) 1fr;
    column-gap: 3em;
  }
  #container.page section table th,
  #container.page section table td {
    display: block;
    width: 100%;
  }
  #container.page section table th {
    padding-right: 0;
  }
  #container.page section table.base th {
    text-align: right;
  }
  /* -------------------------------------
      footer
  ------------------------------------- */
  #footer {
    padding-bottom: 48px;
    position: relative;
    z-index: 1;
  }
  #footer .site_title {
    width: 100%;
    max-width: 330px;
    height: auto;
    margin: 0;
    position: static;
  }
  #footer .site_title span {
    width: 100%;
    position: static;
    transform: none;
  }
  #footer small {
    white-space: nowrap;
    text-align: right;
    font-size: 1rem;
  }
}/*# sourceMappingURL=global.css.map */