@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Oswald:200,300,400,700");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;700&display=swap");
/* ---------- setting ---------- ---------- */
body {
  font-family: "Zen Kaku Gothic New", sans-serif;
  color: #4C4C4C;
  -webkit-font-smoothing: antialiased;
}

/* リセットCSS */
html, body {
  width: 100%;
  height: 100%;
}

body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, blockquote, pre, a, div {
  margin: 0;
  padding: 0;
  font-size: 100%;
  line-height: inherit;
  box-sizing: border-box;
}

body {
  -webkit-text-size-adjust: 100%;
  line-height: 1;
}

ol, ul {
  list-style: none;
}

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

th, td {
  vertical-align: top;
  text-align: left;
  font-weight: normal;
}

img {
  border: 0;
  vertical-align: bottom;
}

a {
  text-decoration: none;
}

.mod-doc :where(ul, ol, li,
blockquote,
table, th, td,
pre, code, a) {
  all: revert;
}

.mod-doc li {
  line-height: 1.6;
}
.mod-doc figcaption {
  padding-top: 10px;
}

@media print, screen and (min-width: 768px) {
  /* ----------------------------------------------------------
  .area-wrapper
  ---------------------------------------------------------- */
  .area-wrapper {
    overflow: clip;
    position: relative;
  }
  /* ----------------------------------------------------------
  .block-inner
  ---------------------------------------------------------- */
  .block-inner {
    position: relative;
    margin: 0 auto;
    width: min(1000px, 1000 / var(--w) * 100vw);
  }
  .block-inner-wide {
    position: relative;
    margin: 0 auto;
    width: min(1280px, 1280 / var(--w) * 100vw);
  }
  .area-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: min(90px, 90 / var(--w) * 100vw);
    z-index: 100;
    background: #fff;
    background-color: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(min(5px, 5 / var(--w) * 100vw));
  }
  .area-header img {
    width: 100%;
  }
  .area-header ._logo {
    position: absolute;
    top: min(32px, 32 / var(--w) * 100vw);
    left: min(47px, 47 / var(--w) * 100vw);
    width: min(263px, 263 / var(--w) * 100vw);
  }
  .area-header ._area-right {
    position: absolute;
    top: min(26px, 26 / var(--w) * 100vw);
    right: min(65px, 65 / var(--w) * 100vw);
    display: flex;
    gap: min(50px, 50 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
  }
  .area-header ._menu-btn {
    display: none;
  }
  .mod-head-logo {
    display: block;
  }
  .mod-head-gmenu ul {
    display: flex;
    gap: min(30px, 30 / var(--w) * 100vw);
  }
  .mod-head-gmenu-item {
    font-size: min(18px, 18 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #3b4043;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-head-gmenu-item:hover {
    opacity: 0.8;
  }
  .mod-head-btns {
    display: flex;
  }
  .mod-head-btn-contact {
    padding: min(10px, 10 / var(--w) * 100vw) min(15px, 15 / var(--w) * 100vw);
    background: linear-gradient(5deg, #0062ff 0%, #00e4ff 100%);
    border-radius: min(9px, 9 / var(--w) * 100vw);
    font-size: min(18px, 18 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.08em;
    font-weight: bold;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-head-btn-contact:hover {
    opacity: 0.8;
  }
  .mod-modal-menu-btn {
    display: none;
  }
  .area-modal-menu {
    display: none;
  }
  /* -------------------------------------------------- */
  footer {
    display: flex;
    flex-direction: column;
    gap: min(10px, 10 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
    padding: min(40px, 40 / var(--w) * 100vw) 0;
  }
  .area-footer {
    position: relative;
    height: min(100px, 100 / var(--w) * 100vw);
    display: flex;
    gap: min(70px, 70 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
  }
  .area-footer img {
    width: 100%;
  }
  .area-footer ._logo {
    width: min(263px, 263 / var(--w) * 100vw);
  }
  .area-footer ._area-right {
    display: flex;
    gap: min(70px, 70 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
  }
  .area-copy {
    display: flex;
    gap: min(20px, 20 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
    font-size: min(11px, 11 / var(--w) * 100vw);
    line-height: 1.09;
    letter-spacing: 0.05em;
  }
  .area-copy a {
    color: #3b4043;
  }
  .mod-footer-gmenu ul {
    display: flex;
    gap: min(30px, 30 / var(--w) * 100vw);
  }
  .mod-footer-gmenu-item {
    font-size: min(16px, 16 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #3b4043;
  }
  .mod-footer-btn-contact {
    width: min(150px, 150 / var(--w) * 100vw);
    height: min(50px, 50 / var(--w) * 100vw);
    border: min(1px, 1 / var(--w) * 100vw) solid #000000;
    border-radius: min(50px, 50 / var(--w) * 100vw);
    font-size: min(16px, 16 / var(--w) * 100vw);
    line-height: 1.88;
    font-weight: bold;
    color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
@media screen and (max-width: 767px) {
  /* ----------------------------------------------------------
  .area-wrapper
  ---------------------------------------------------------- */
  .area-wrapper {
    overflow: clip;
    position: relative;
  }
  .area-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: min(67px, 67 / var(--w) * 100vw);
    z-index: 100;
    background: #fff;
    background-color: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(min(5px, 5 / var(--w) * 100vw));
  }
  .area-header img {
    width: 100%;
  }
  .area-header ._logo {
    position: absolute;
    top: min(24px, 24 / var(--w) * 100vw);
    left: min(16px, 16 / var(--w) * 100vw);
    width: min(211px, 211 / var(--w) * 100vw);
  }
  .area-header ._gmenu {
    display: none;
  }
  .area-header ._btns {
    display: none;
  }
  .area-header ._menu-btn {
    position: absolute;
    top: min(4px, 4 / var(--w) * 100vw);
    right: min(4px, 4 / var(--w) * 100vw);
  }
  .mod-head-logo {
    display: block;
  }
  .mod-head-btn-contact {
    width: min(134px, 134 / var(--w) * 100vw);
    height: min(33px, 33 / var(--w) * 100vw);
    background: linear-gradient(5deg, #0062ff 0%, #00e4ff 100%);
    border-radius: min(9px, 9 / var(--w) * 100vw);
    font-size: min(17px, 17 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.08em;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .mod-modal-menu-btn {
    position: relative;
    width: min(60px, 60 / var(--w) * 100vw);
    height: min(60px, 60 / var(--w) * 100vw);
  }
  .mod-modal-menu-btn span {
    transition-duration: 0.2s;
    position: absolute;
    background: #064191;
    left: min(18px, 18 / var(--w) * 100vw);
    right: min(18px, 18 / var(--w) * 100vw);
    height: min(1px, 1 / var(--w) * 100vw);
  }
  .mod-modal-menu-btn span:nth-child(1) {
    top: min(22px, 22 / var(--w) * 100vw);
  }
  .mod-modal-menu-btn span:nth-child(2) {
    top: min(30px, 30 / var(--w) * 100vw);
  }
  .mod-modal-menu-btn span:nth-child(3) {
    top: min(38px, 38 / var(--w) * 100vw);
  }
  body.js-gmenu-active .mod-modal-menu-btn span:nth-child(1) {
    position: absolute;
    top: min(30px, 30 / var(--w) * 100vw);
    transform: rotate(45deg);
  }
  body.js-gmenu-active .mod-modal-menu-btn span:nth-child(2) {
    display: none;
  }
  body.js-gmenu-active .mod-modal-menu-btn span:nth-child(3) {
    position: absolute;
    top: min(30px, 30 / var(--w) * 100vw);
    transform: rotate(-45deg);
  }
  .area-modal-menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    visibility: hidden;
    opacity: 0;
    transition-duration: 0.4s;
    background: #fff;
    padding: min(60px, 60 / var(--w) * 100vw) 0 min(40px, 40 / var(--w) * 100vw) 0;
    z-index: 20;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .area-modal-menu ._btns {
    margin-top: min(40px, 40 / var(--w) * 100vw);
  }
  body.js-gmenu-active .area-modal-menu {
    transform: translate(0, max(-200px, -200 / var(--w) * 100vw));
    visibility: visible;
    z-index: 50;
    opacity: 1;
    transform: translate(0, 0);
  }
  .mod-sitelinks-items ul {
    display: flex;
    flex-direction: column;
    gap: min(40px, 40 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
  }
  .mod-sitelinks-item {
    font-size: min(20px, 20 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.08em;
    font-weight: bold;
    color: #064191;
  }
  .mod-sitelinks-contact {
    width: min(160px, 160 / var(--w) * 100vw);
    height: min(40px, 40 / var(--w) * 100vw);
    background: linear-gradient(5deg, #0062ff 0%, #00e4ff 100%);
    border-radius: min(9px, 9 / var(--w) * 100vw);
    font-size: min(20px, 20 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.08em;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
  }
  /* -------------------------------------------------- */
  footer {
    display: flex;
    flex-direction: column;
    gap: min(10px, 10 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
    padding: min(20px, 20 / var(--w) * 100vw) 0;
    display: flex;
    flex-direction: column;
    gap: min(30px, 30 / var(--w) * 100vw);
  }
  .area-footer {
    display: flex;
    flex-direction: column;
    gap: min(20px, 20 / var(--w) * 100vw);
  }
  .area-footer img {
    width: 100%;
  }
  .area-footer ._logo {
    width: min(210px, 210 / var(--w) * 100vw);
    margin: 0 auto;
  }
  .area-footer ._btns {
    margin-top: min(30px, 30 / var(--w) * 100vw);
  }
  .area-copy {
    display: flex;
    gap: min(10px, 10 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
    font-size: min(8px, 8 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.05em;
  }
  .area-copy a {
    color: #3b4043;
  }
  .mod-footer-gmenu ul {
    display: flex;
    flex-direction: column;
    gap: min(15px, 15 / var(--w) * 100vw);
    align-items: center;
    justify-content: center;
  }
  .mod-footer-gmenu-item {
    font-size: min(11px, 11 / var(--w) * 100vw);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #3b4043;
  }
  .mod-footer-btn-contact {
    width: min(110px, 110 / var(--w) * 100vw);
    height: min(34px, 34 / var(--w) * 100vw);
    margin: 0 auto;
    border: min(1px, 1 / var(--w) * 100vw) solid #000000;
    border-radius: min(50px, 50 / var(--w) * 100vw);
    font-size: min(12px, 12 / var(--w) * 100vw);
    line-height: 1;
    font-weight: bold;
    color: #000;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}