@charset "UTF-8";
/* CSS Document */
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
.en {
  font-family: "Roboto Flex", sans-serif;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: local("Noto Sans CJK JP"), url("//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2") format("woff2"), url("//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff") format("woff"), url("//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf") format("opentype");
}
.en {
  font-family: "Roboto Flex", sans-serif;
}

/**
 * デザインの文字サイズ（数値）を分母として、$base-fontsize（28）を割ることでem値を計算する関数。
 * 小数点第2位まで表示し、第3位を四捨五入します。
 * @param {Number} $design-fontsize - デザインで指定されたピクセル値の数値（例: 16, 単位なし）。
 * @return {Number} em値（小数点第2位まで）
 */
.en {
  font-family: "Roboto Flex", sans-serif;
}

.en {
  font-family: "Roboto Flex", sans-serif;
}

/**
 * デザインの文字サイズ（数値）を分母として、$base-fontsize（28）を割ることでem値を計算する関数。
 * 小数点第2位まで表示し、第3位を四捨五入します。
 * @param {Number} $design-fontsize - デザインで指定されたピクセル値の数値（例: 16, 単位なし）。
 * @return {Number} em値（小数点第2位まで）
 */
html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size: 100% !important;
}
@media (min-width: 750px) and (max-width: 1200px) {
  html {
    font-size: 1.25vw !important;
  }
}
@media (max-width: 749px) {
  html {
    font-size: 3.6vw !important;
    margin-top: 0 !important;
  }
}

/* WordPress管理バー制御 - 750px以下では完全に無効化 */
@media screen and (max-width: 750px) {
  /* 管理バー自体を非表示 */
  #wpadminbar {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    z-index: -1 !important;
  }
  /* htmlタグのmargin-topを強制的にリセット */
  html {
    margin-top: 0 !important;
    /* 管理バー非表示による余白をなくす */
  }
  /* bodyタグのmargin-topもリセット */
  body {
    margin-top: 0 !important;
  }
  /* 管理バーが表示されている場合の対応 */
  body.admin-bar {
    margin-top: 0 !important;
    /* 管理バー非表示による余白をなくす */
  }
  body.admin-bar {
    margin-top: 0 !important;
  }
  /* ヘッダーの位置調整 */
  body.admin-bar .header {
    top: 0 !important;
  }
  /* より強力なセレクタで制御 */
  html[style*=margin-top] {
    margin-top: 0 !important;
  }
  body[style*=margin-top] {
    margin-top: 0 !important;
  }
  /* インラインスタイルを上書き */
  html[style] {
    margin-top: 0 !important;
  }
  body[style] {
    margin-top: 0 !important;
  }
  /* 最も強力なセレクタ */
  html[style*="margin-top:"] {
    margin-top: 0 !important;
  }
  body[style*="margin-top:"] {
    margin-top: 0 !important;
  }
}
@media screen and (min-width: 751px) {
  #wpadminbar {
    position: fixed;
    top: 0;
    z-index: 99999;
  }
  html {
    margin-top: 0 !important;
  }
  body.admin-bar {
    margin-top: 32px;
  }
  body.admin-bar .header {
    top: 32px;
  }
}
body {
  position: relative;
  letter-spacing: 0.06em;
  -webkit-font-smoothing: antialiased;
  /* IOS・Macに対応 */
  -moz-osx-font-smoothing: grayscale;
  /* IOS・Macに対応 */
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  /* あえてmixin未使用です。 */
  font-size: 100% !important;
  font-weight: 400;
  right: 0 !important;
  color: black;
  background-color: white;
  line-height: 1.6;
  overflow-x: hidden;
}
@media (max-width: 749px) {
  body {
    width: 100%;
    min-width: auto;
    margin-top: 0 !important;
  }
}
body.fixed {
  position: fixed;
}

.color-red {
  color: #e11c24;
}

.color-orange {
  color: #ffcc00;
}

.color-black {
  color: #313131;
}

.color-blue-gradient {
  color: #3b89af;
}

.color-blue {
  color: #253D8E;
}

.color-light-blue {
  color: #ebf2f5;
}

.color-medium-blue {
  color: #cceaf3;
}

.color-gray {
  color: #e8e2d3;
}

.color-yellow {
  color: #ffff00;
}

.color-green {
  color: #00aa9e;
}

.color-brown {
  color: #603813;
}

.color-theme {
  color: #253D8E;
}

.white {
  color: #fff;
}

a {
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  text-decoration: underline;
  color: #253D8E;
  display: inline-block;
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
  word-break: break-all;
}
a:hover {
  text-decoration: none;
}
a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  background: url(../images/common/icon_blank.svg) no-repeat center center/100%;
  margin-right: 0.25em;
  margin-left: 0.2em;
}
a[target=_blank]:before {
  content: "> ";
  color: inherit;
}
a[target=_blank] span.linktext {
  text-decoration: underline;
}
a[target=_blank] span.linktext:hover, a[target=_blank] span.linktext:focus {
  text-decoration: none;
}
a[href*=".pdf"]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  background: url(../images/common/icon_pdf.svg) no-repeat center center/100%;
  margin-right: 0.25em;
  margin-left: 0.2em;
}
a[href*=".pdf"].white::after {
  background: url(../images/common/icon_pdf-white.svg) no-repeat center center/100%;
}
@media (min-width: 750px) {
  a[href*="tel:"]:not(.PCheader-tel) {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: inherit;
  }
}
a.remove-icon:after {
  display: none;
}
a img {
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
}

a:hover img {
  opacity: 0.8;
}

p {
  line-height: 1.8;
}

li {
  line-height: 1.8;
}

@media (max-width: 749px) {
  .spNone {
    display: none !important;
  }
}

@media (min-width: 750px) {
  .pcNone {
    display: none !important;
  }
}

.switch {
  visibility: hidden;
}

.bold {
  font-weight: bold;
}

@media (max-width: 749px) {
  .spleft {
    text-align: left !important;
  }
}

.right {
  text-align: right;
}

.center {
  text-align: center;
}
.center img {
  margin-right: auto;
  margin-left: auto;
}

.pb90 {
  padding-bottom: 6.25em;
}
@media (max-width: 749px) {
  .pb90 {
    padding-bottom: 14.67vw;
  }
}

.mt60 {
  margin-top: 3.75em;
}
@media (max-width: 749px) {
  .mt60 {
    margin-top: 13.3vw;
  }
}

.mb60 {
  margin-bottom: 3.75em;
}
@media (max-width: 750px) {
  .mb60 {
    margin-bottom: 13.3vw;
  }
}

.mt70 {
  margin-top: 4.375em;
}
@media (max-width: 749px) {
  .mt70 {
    margin-top: 2.5em;
  }
}

.mb70 {
  margin-bottom: 4.375em;
}
@media (max-width: 750px) {
  .mb70 {
    margin-bottom: 2.5em;
  }
}

.mt80 {
  margin-top: 5em;
}
@media (max-width: 749px) {
  .mt80 {
    margin-top: calc(90 / 750 * 100vw);
  }
}

.mb80 {
  margin-bottom: 5em;
}
@media (max-width: 749px) {
  .mb80 {
    margin-bottom: calc(90 / 750 * 100vw);
  }
}

.mt90 {
  margin-top: 6.25em;
}
@media (max-width: 749px) {
  .mt90 {
    margin-top: 14.67vw;
  }
}

.mb90 {
  margin-bottom: 6.25em;
}
@media (max-width: 749px) {
  .mb90 {
    margin-bottom: 14.67vw;
  }
}

.mt100 {
  margin-top: 6.25em;
}
@media (max-width: 749px) {
  .mt100 {
    margin-top: 14.67vw;
  }
}

.mb100 {
  margin-bottom: 6.25em;
}
@media (max-width: 749px) {
  .mb100 {
    margin-top: 14.67vw;
  }
}

.mt120 {
  margin-top: 7.5em;
}
@media (max-width: 749px) {
  .mt120 {
    margin-top: 16vw;
  }
}

.mb120 {
  margin-bottom: 7.5em;
}
@media (max-width: 749px) {
  .mb120 {
    margin-bottom: 16vw;
  }
}

.mb150 {
  margin-bottom: 9.375em;
  padding-bottom: 0;
}
@media (max-width: 749px) {
  .mb150 {
    margin-bottom: 7.14em;
    padding-bottom: 0;
  }
}

.mt3em {
  margin-top: 3em;
}
@media (max-width: 749px) {
  .mt3em {
    margin-top: 2em;
  }
}

.mb3em {
  margin-bottom: 3em;
}
@media (max-width: 749px) {
  .mb3em {
    margin-bottom: 2em;
  }
}

.mt2em {
  margin-top: 2em;
}
@media (max-width: 749px) {
  .mt2em {
    margin-top: 1em;
  }
}

.mb2em {
  margin-bottom: 2em;
}
@media (max-width: 749px) {
  .mb2em {
    margin-bottom: 1em;
  }
}

.mt1em {
  margin-top: 1em;
}

.mb1em {
  margin-bottom: 1em;
}

.mt05em {
  margin-top: 0.5em;
}

.mb05em {
  margin-bottom: 0.5em;
}

.pt3em {
  padding-top: 3em;
}
@media (max-width: 749px) {
  .pt3em {
    padding-top: 2em;
  }
}

.pt2em {
  padding-top: 2em;
}
@media (max-width: 749px) {
  .pt2em {
    padding-top: 1em;
  }
}

.pt1em {
  padding-top: 1em;
}

.pt05em {
  padding-top: 0.5em;
}

.pl2em {
  padding-left: 2.5em;
}
@media (max-width: 749px) {
  .pl2em {
    padding-left: 1em;
  }
}

.red {
  color: #e11c24;
}

.theme {
  color: #253D8E;
}

.fz18 {
  font-size: 1.125em;
}

.fz20 {
  font-size: 1.25em;
}

.fz24 {
  font-size: 1.5em;
}

.fz26 {
  font-size: 1.5em;
}
@media (max-width: 750px) {
  .fz26 {
    font-size: 0.93em;
  }
}

.fz28 {
  font-size: 1.75em;
}

b,
strong {
  font-weight: 700;
}

img {
  height: auto;
  width: 100%;
}
@media (max-width: 749px) {
  img.width80 {
    width: 80%;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (max-width: 749px) {
  img.width50 {
    width: 50%;
    margin-right: auto;
    margin-left: auto;
  }
}

/* レイアウト関連 */
.inner,
.inner840,
.inner1100 {
  width: 92%;
  margin-right: auto;
  margin-left: auto;
}

.inner {
  max-width: 1040px;
}
.inner .inner840 {
  width: 100%;
}

.inner840 {
  max-width: 840px;
  /* リンク・フォーム */
}

.inner1100 {
  max-width: 1100px;
}

.linkbox,
input[type=submit],
input[type=button] {
  display: -ms-flexbox;
  /* prefix -> -webkit- */
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  /* no prefix */
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: -webkit-gradient(linear, left top, right top, from(#253D8E), to(#3b89af));
  background: linear-gradient(to right, #253D8E, #3b89af);
  color: #fff;
  border-radius: 2em;
  min-width: 16.875em;
  height: 3.75em;
  text-decoration: none;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-inline: 1em;
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 750px) {
  .linkbox,
  input[type=submit],
  input[type=button] {
    font-size: 1.1em;
  }
}
@media (max-width: 750px) {
  .linkbox,
  input[type=submit],
  input[type=button] {
    max-width: calc(560 / 750 * 100vw);
  }
}
.linkbox:hover, .linkbox:focus,
input[type=submit]:hover,
input[type=submit]:focus,
input[type=button]:hover,
input[type=button]:focus {
  opacity: 0.8;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

/* 作業実績：詳細ページのみに適用 */
@media (max-width: 750px) {
  .works-btn {
    text-align: center;
  }
}

/* 外部リンク付きボタン */
a.linkbox[target=_blank] {
  display: inline-block;
  text-align: center;
  line-height: 3.75em;
  padding: 0;
  margin-block: auto;
}
a.linkbox[target=_blank]::before {
  display: none;
}
a.linkbox[target=_blank]::after {
  background: url(../images/common/icon_blank-white.svg);
}
a.linkbox[target=_blank]:hover::after, a.linkbox[target=_blank]:focus::after {
  background: url(../images/common/icon_blank.svg);
}

.linebtn::before {
  display: none;
}

.linkbox-white {
  background-color: #fff;
  color: #253D8E;
  border: 1px solid #253D8E;
  text-decoration: none;
  border-radius: 2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 16.875em;
  height: 3.75em;
  margin-inline: auto;
  font-size: 1.1em;
}
@media (max-width: 750px) {
  .linkbox-white {
    width: calc(510 / 750 * 100vw);
    margin-inline: auto;
  }
}
.linkbox-white:hover {
  cursor: pointer;
  opacity: 0.8;
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  background: -webkit-gradient(linear, left top, right top, from(#253D8E), to(#3b89af));
  background: linear-gradient(to right, #253D8E, #3b89af);
  color: #fff;
}
.linkbox-white a {
  text-decoration: none;
  font-weight: bold;
  display: inline-block;
  padding-block: 1em;
  width: 100%;
  height: 100%;
  text-align: center;
}
.linkbox-white a:hover {
  color: #fff;
}

.linkbox-second {
  display: -ms-flexbox;
  /* prefix -> -webkit- */
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  /* no prefix */
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #fff;
  color: #33a5b6;
  font-weight: 600;
  border-radius: 2em;
  width: 16.875em;
  height: 3.75em;
  text-decoration: none;
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 750px) {
  .linkbox-second {
    font-size: 1.1em;
  }
}
.linkbox-second:hover {
  color: #253D8E;
  background-color: white;
}

.linkbox_wrap {
  display: -ms-flexbox;
  /* prefix -> -webkit- */
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  /* no prefix */
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.linkbox_wrap > * {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.linkbox_wrap > *:last-of-type {
  margin-left: 1em !important;
}
@media (min-width: 750px) {
  .linkbox_wrap > *:last-of-type {
    margin-left: 2em !important;
  }
}

input[type=text],
input[type=tel],
textarea,
input[type=email],
input[type=url] {
  width: 100%;
  border: 1px solid #313131;
  font-size: 1.1em;
  background-color: white;
  padding: 0.75em;
  margin-top: 0.5em;
}

.wpcf7-list-item label {
  display: -ms-flexbox;
  /* prefix -> -webkit- */
  display: -webkit-flex;
  -webkit-align-items: center;
  /* no prefix */
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.wpcf7-list-item input {
  margin-right: 0.25em;
}

.selectbox {
  position: relative;
  display: inline-block;
  border: 1px solid #313131;
  font-size: 1.1em;
  background-color: white;
  margin-top: 0.5em;
}
.selectbox .wpcf7-form-control-wrap {
  z-index: 2;
}
.selectbox select {
  z-index: 2;
  padding: 0.75em 1.5em 0.75em 1em;
}
@media (max-width: 749px) {
  .selectbox select {
    padding: 0.25em 1em 0.25em 0.5em;
  }
}
.selectbox::after {
  position: absolute;
  top: 0;
  right: 0.5em;
  bottom: 0;
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.5em 0.37em 0 0.37em;
  border-color: #313131 transparent transparent transparent;
  margin: auto;
  z-index: 1;
}

div.wpcf7 .ajax-loader {
  display: none !important;
}

.header {
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
@media (max-width: 750px) {
  .header {
    height: 5.14em;
  }
}
@media (min-width: 750px) {
  .header {
    padding-bottom: 1em;
  }
}
@media (min-width: 751px) {
  .header {
    height: 8.75em;
    padding-bottom: 0;
    padding-inline: 2%;
  }
}
.header .header-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
}
@media (min-width: 751px) {
  .header .header-inner {
    padding-inline: 0%;
  }
}
@media (max-width: 750px) {
  .header .header-inner {
    width: 100%;
    margin: initial;
    padding-inline: 2%;
  }
}
.header .logo {
  width: calc(320 / 750 * 100vw);
  z-index: 10;
}
@media (min-width: 751px) {
  .header .logo {
    width: 250px;
    margin-right: 7.5em;
  }
}
.header .logo a {
  display: block;
}
.header .nav {
  margin-right: 1.5em;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 750px) {
  .header .nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(255, 255, 255, 0.95);
    z-index: 9;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    -webkit-transition: -webkit-transform 0.3s ease-in-out;
    transition: -webkit-transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
    overflow-y: auto;
    padding-top: calc(135 / 750 * 100vw);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media (max-width: 750px) {
  .header .nav.active {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
    background: #ebf2f5;
  }
}
.header .nav .g_menu {
  height: 100%;
}
@media (max-width: 750px) {
  .header .nav .g_menu {
    height: initial;
    width: 100%;
  }
}
.header .nav .g_menu .menu-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  height: 100%;
}
@media (max-width: 750px) {
  .header .nav .g_menu .menu-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    gap: 0;
    height: initial;
    width: 100%;
  }
}
@media (max-width: 750px) {
  .header .nav .g_menu .menu-list li {
    width: 100%;
    border-top: 0.5px solid #6677b0;
  }
  .header .nav .g_menu .menu-list li:last-child {
    border-bottom: 0.5px solid #6677b0;
  }
}
.header .nav .g_menu .menu-list a {
  font-size: 0.9375em;
  color: #313131;
  padding-inline: 0;
  position: relative;
}
@media (max-width: 750px) {
  .header .nav .g_menu .menu-list a {
    width: 100%;
    padding-left: 3.57em;
    padding-block: 1.43em;
    text-align: left;
    margin-bottom: 0;
    font-size: calc(30 / 750 * 100vw);
  }
}
.header .nav .g_menu .menu-list a:hover, .header .nav .g_menu .menu-list a:focus {
  color: #253D8E;
  opacity: 0.8;
}
.header .nav .g_menu .menu-list a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0;
  height: 3px;
  background: -webkit-gradient(linear, left top, right top, from(#253D8E), to(#3b89af));
  background: linear-gradient(to right, #253D8E, #3b89af);
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
.header .nav .g_menu .menu-list a:hover::before {
  width: 100%;
}
.header .nav .g_menu .menu-list .subtitle {
  display: block;
  text-align: left;
  font-weight: bold;
  color: #253D8E;
  font-size: 0.625em;
}
@media (min-width: 751px) {
  .header .nav .g_menu .menu-list .subtitle.en {
    margin-top: 0.5rem;
  }
}
@media (max-width: 750px) {
  .header .nav .g_menu .menu-list .subtitle {
    font-size: calc(20 / 750 * 100vw);
    margin-top: 0.5em;
  }
}
.header .nav .g_menu a {
  display: block;
  font-weight: bold;
  line-height: 1.38;
  text-align: center;
  text-decoration: none;
}
.header .nav .g_menu a:hover {
  opacity: 0.8;
}
.header .nav .g_menu a[target=_blank]::after {
  display: none;
}
@media (min-width: 750px) {
  .header .nav .g_menu a.appli {
    background-image: url(../images/common/btn_br.png);
  }
}
@media (max-width: 749px) {
  .header .nav .g_menu a {
    font-size: 1.5em;
    color: inherit;
  }
}
.header .header-btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5em;
  height: 100%;
  margin-right: 1rem;
}
@media (max-width: 750px) {
  .header .header-btns {
    margin-top: 2.86em;
    margin-right: 0;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-column-gap: 1rem;
       -moz-column-gap: 1rem;
            column-gap: 1rem;
    row-gap: 2rem;
  }
}
.header .header-btns .btn {
  display: inline-block;
  width: 8.125em;
  text-align: center;
  padding-block: 0.5em;
  border-radius: 2em;
  font-weight: 500;
  font-size: 0.9375em;
  text-decoration: none;
}
@media (max-width: 750px) {
  .header .header-btns .btn {
    margin-bottom: 0;
    width: calc(300 / 750 * 100vw);
    padding-block: 0.8em;
  }
}
.header .header-btns .btn.btn-outline {
  border: 1px solid #1a3580;
  color: #1a3580;
  background: #fff;
}
@media (max-width: 750px) {
  .header .header-btns .btn.btn-outline {
    font-size: calc(28 / 750 * 100vw);
  }
}
.header .header-btns .btn.btn-main {
  background: #1a3580;
  color: #fff;
}
@media (max-width: 750px) {
  .header .header-btns .btn.btn-main {
    font-size: calc(28 / 750 * 100vw);
  }
}
.header .header-btns .btn.btn-black {
  background: #111;
  color: #fff;
  border-radius: 0 0 0.8em 0.8em;
  padding-top: 3.7em;
}
@media (max-width: 750px) {
  .header .header-btns .btn.btn-black {
    font-size: calc(28 / 750 * 100vw);
    padding-block: 0.8em;
    border-radius: 2em;
  }
}
.header .header-btns .btn:hover, .header .header-btns .btn:focus {
  opacity: 0.8;
}
.header .header-btns .btn-black-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-item-align: start;
      align-self: flex-start;
  min-height: 5.625em;
}
.header .dropdown {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
}
.header .dropdown .btn-main {
  position: relative;
  z-index: 2;
}
.header .dropdown-menu {
  display: none;
  position: absolute;
  top: 70%;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 13.625em;
  background: #f4f8fb;
  -webkit-box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
          box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  padding: 2.5em 1.5em 1em;
  z-index: 1;
  border-radius: 1em;
  clip-path: polygon(0% 10%, 50% 0%, 100% 10%, 100% 100%, 0% 100%);
}
.header .dropdown-menu_second {
  clip-path: polygon(0% 22%, 50% 0%, 100% 22%, 100% 100%, 0% 100%);
}
.header .dropdown-menu a.dropdown-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #313131;
  font-weight: 500;
  font-size: 0.875em;
  text-decoration: none;
  padding: 0.7em 0;
  border-bottom: 2px solid #fff;
}
.header .dropdown-menu a.dropdown-item::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  background: url("../images/common/icon_arrow-right.png") no-repeat center center/contain;
  vertical-align: middle;
}
.header .dropdown-menu a.dropdown-item:last-child {
  border-bottom: none;
}
.header .dropdown-menu a.dropdown-item:hover {
  color: #2346a0;
}
@media (min-width: 751px) {
  .header .dropdown:hover .dropdown-menu,
  .header .dropdown .btn-main:focus + .dropdown-menu,
  .header .dropdown .dropdown-menu:hover {
    display: block;
  }
}
.header .PCheader-tel {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
}
.header .PCheader-tel:hover, .header .PCheader-tel:focus {
  opacity: 0.8;
  cursor: pointer;
}
.header .PCheader-tel img {
  width: 100%;
  height: 100%;
}
.header .PCheader-tel-container .PCheader-tel-popup {
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 100;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: end;
  height: 9em;
  background-color: #fff;
  padding-top: 2.75em;
  padding-bottom: 1.5em;
  padding-right: 2em;
  width: 100%;
  font-size: 0.75em;
}
.header .PCheader-tel-container .PCheader-tel-popup .popup-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
}
.header .PCheader-tel-container .PCheader-tel-popup .popup-box .popup-tel {
  padding-right: 3.5em;
}
.header .PCheader-tel-container .PCheader-tel-popup .popup-box .popup-tel img {
  width: 22.5em;
}
.header .PCheader-tel-container:hover .PCheader-tel-popup, .header .PCheader-tel-container:focus-within .PCheader-tel-popup {
  opacity: 1;
  visibility: visible;
}
.header .wrap {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
  z-index: 9;
}
@media (min-width: 750px) {
  .header .wrap {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-justify-content: space-between;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.header-SPbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
}
.header-tel {
  width: calc(56 / 750 * 100vw);
  height: calc(56 / 750 * 100vw);
  z-index: 10;
}
.header-tel img {
  width: calc(56 / 750 * 100vw);
  height: calc(56 / 750 * 100vw);
}

/* フッター部分 */
.cta {
  color: #253D8E;
  background-color: whitesmoke;
  padding: 3em 0;
}

.footer {
  background-color: #fff;
}
@media (max-width: 750px) {
  .footer {
    margin-bottom: 4.43em;
  }
}
.footer .inner {
  padding-top: 12vw;
}
@media (min-width: 750px) {
  .footer .inner {
    padding-top: 3.7em;
  }
}
.footer-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 751px) {
  .footer-inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-bottom: 6.25em;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
}
.footer .logo {
  width: 17.8125em;
}
@media (max-width: 750px) {
  .footer .logo {
    width: 200px;
    margin-inline: auto;
  }
}
.footer .sitemap {
  width: 100%;
  margin-bottom: 2.86em;
}
@media (min-width: 751px) {
  .footer .sitemap {
    margin-bottom: 0;
  }
}
.footer .sitemap a {
  text-decoration: none;
  letter-spacing: 0;
  padding: 0.25em 0;
  color: #313131;
  font-size: calc(26 / 750 * 100vw);
  font-size: 0.93em;
}
@media (min-width: 751px) {
  .footer .sitemap a {
    font-size: 1em;
  }
}
.footer .sitemap a:hover, .footer .sitemap a:focus {
  opacity: 0.8;
  color: #253D8E;
}
.footer .sitemap-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2em;
}
@media (min-width: 751px) {
  .footer .sitemap-list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 3em;
  }
}
@media (max-width: 750px) {
  .footer .sitemap-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    grid-template-areas: "col1 col2" "col1 col3";
    gap: 1em;
  }
}
.footer .sitemap-column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.5em;
}
@media (min-width: 751px) {
  .footer .sitemap-column {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    max-width: calc(33.333% - 2em);
  }
}
@media (max-width: 750px) {
  .footer .sitemap-column:nth-child(1) {
    grid-area: col1;
  }
  .footer .sitemap-column:nth-child(2) {
    grid-area: col2;
  }
  .footer .sitemap-column:nth-child(3) {
    grid-area: col3;
  }
}
@media (max-width: 750px) {
  .footer .sitemap-sublist a {
    font-size: 0.89em;
    padding-block: 0.4em;
  }
}
.footer .sitemap-sublist a a::before {
  content: "ー";
  margin-right: 0.25em;
}
.footer .sitemap-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  margin-bottom: 4.29em;
}
@media (min-width: 751px), print {
  .footer .sitemap-logo {
    margin-bottom: 0;
  }
}
@media (min-width: 751px), print {
  .footer .sitemap-logo .logo {
    width: 17.5em;
  }
}
.footer .sitemap-logo .logo img {
  display: block;
  width: 15.71em;
}
.footer .sitemap-logo .center {
  font-size: 0.75em;
}
@media (max-width: 750px) {
  .footer .sitemap-logo .center {
    font-size: 0.93em;
  }
}
.footer .sitemap-sns {
  margin-bottom: 0.5em;
}
@media (min-width: 751px), print {
  .footer .sitemap-sns {
    display: none;
  }
}
.footer .sitemap-sns .snsbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2em;
  width: initial;
}
.footer .sitemap .copy {
  font-size: 0.75em;
  padding: 2em 0;
}
@media (max-width: 749px) {
  .footer .sitemap .copy {
    font-size: calc(20 / 750 * 100vw);
  }
}

.box ul {
  display: -ms-flexbox;
  /* prefix -> -webkit- */
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  /* no prefix */
  display: -webkit-box;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-left: -1em;
}
@media (max-width: 749px) {
  .box ul {
    margin-left: -4vw;
  }
}
@media (min-width: 750px) {
  .box li {
    width: calc(20% - 1em);
    margin-left: 1em;
  }
  .box li:nth-child(n+6) {
    margin-top: 1em;
  }
}
@media (max-width: 749px) {
  .box li {
    width: calc(50% - 4vw);
    margin-left: 4vw;
  }
  .box li:nth-child(n+3) {
    margin-top: 4vw;
  }
}

.wrap {
  padding-top: 12vw;
}
@media (min-width: 750px) {
  .wrap {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-justify-content: space-between;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 3.7em;
  }
}

@media (max-width: 749px) {
  .links {
    margin-top: 2em;
  }
}
@media (min-width: 750px) {
  .links {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-justify-content: flex-end;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .links ul {
    margin-right: 3em;
  }
}
.links li {
  margin-bottom: 0.5em;
}
.links a {
  color: inherit;
  text-decoration: none;
}
.links a:hover {
  opacity: 0.8;
}
.links a::before {
  content: "";
  display: inline-block;
  width: 0.6em;
  height: 0.6em;
  background: url(../images/common/icon_arrow.png) no-repeat center center/contain;
  margin-right: 0.25em;
}

@media (max-width: 749px) {
  .sns {
    text-align: center;
  }
}
.sns a {
  width: 2em;
  height: 2em;
  display: block;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
@media (max-width: 749px) {
  .sns a {
    margin: 2em auto 1em;
  }
}
@media (min-width: 750px) {
  .sns a {
    margin-top: 2em;
  }
}
.sns a:hover {
  opacity: 0.8;
}
.sns a[href*=twitter] {
  background-image: url(../images/common/sns_tw.png);
}
.sns a[href*=facebook] {
  background-image: url(../images/common/sns_fb.png);
}

/* タイトル */
@media (min-width: 750px) {
  .f_18 {
    font-size: 1.1em;
  }
}

.f_20 {
  font-size: 1.2em;
}
@media (max-width: 749px) {
  .f_20 {
    font-size: 1.1em;
  }
}

.f_24 {
  font-size: 1.5em;
}
@media (max-width: 749px) {
  .f_24 {
    font-size: 1.1em;
  }
}

.f_26 {
  font-size: 1.6em;
}
@media (max-width: 749px) {
  .f_26 {
    font-size: 1.2em;
  }
}

.f_28 {
  font-size: 1.75em;
}
@media (max-width: 749px) {
  .f_28 {
    font-size: 1.25em;
  }
}

.f_30 {
  font-size: 1.87em;
}
@media (max-width: 749px) {
  .f_30 {
    font-size: 1.4em;
  }
}

.f_40 {
  font-size: 2.5em;
}
@media (max-width: 749px) {
  .f_40 {
    font-size: 1.5em;
  }
}

/* コンテンツ */
section {
  padding-bottom: 4.5em;
}
@media (max-width: 749px) {
  section {
    padding-bottom: 15.33vw;
  }
}
section.mt {
  padding-top: 4.5em !important;
}
@media (max-width: 749px) {
  section.mt {
    padding-top: 15.33vw !important;
  }
}
section.mb {
  padding-bottom: 4.5em;
}
@media (max-width: 749px) {
  section.mb {
    padding-bottom: 15.33vw;
  }
}
section.mt0 {
  padding-top: 0;
}
@media (max-width: 749px) {
  section.mt0 {
    padding-top: 0;
  }
}

.contentwrap {
  margin-top: 4.5em;
}
@media (max-width: 749px) {
  .contentwrap {
    margin-top: 13.33vw;
  }
}
.contentwrap p,
.contentwrap li {
  line-height: 1.8;
}

.bg-gray {
  background-color: whitesmoke;
}

@media (min-width: 750px) {
  .column_2 > ul {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-left: -1.5em;
  }
  .column_2 > ul > li {
    width: calc(50% - 1.5em);
    margin-left: 1.5em;
  }
  .column_2 > ul > li:nth-child(n+3) {
    margin-top: 1.5em;
  }
}
@media (max-width: 749px) {
  .column_2 > ul > li:not(:first-of-type) {
    margin-top: 4vw;
  }
}

@media (min-width: 750px) {
  .column_3 > ul {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-left: -5em;
  }
  .column_3 > ul > li {
    width: calc(33.333% - 5em);
    margin-left: 5em;
  }
  .column_3 > ul > li:nth-child(n+4) {
    margin-top: 5em;
  }
}
@media (max-width: 749px) {
  .column_3 > ul > li:not(:first-child) {
    margin-top: 8vw;
  }
}

@media (min-width: 750px) {
  .column_4 > ul {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-left: -3.25em;
  }
  .column_4 > ul > li {
    width: calc(25% - 3.25em);
    margin-left: 3.25em;
  }
  .column_4 > ul > li:nth-child(n+5) {
    margin-top: 3.25em;
  }
}
@media (max-width: 749px) {
  .column_4 > ul > li:not(:first-child) {
    margin-top: 4vw;
  }
}

@media (max-width: 749px) {
  .column_2_sp > ul {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-left: -4vw;
  }
  .column_2_sp > ul > li {
    width: calc(50% - 4vw);
    margin-left: 4vw;
  }
  .column_2_sp > ul > li:not(:first-child) {
    margin-top: 0;
  }
  .column_2_sp > ul > li:nth-child(n+3) {
    margin-top: 4vw;
  }
}

@media (min-width: 750px) {
  .flex {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    /* no prefix */
    display: -webkit-box;
    display: flex;
  }
}

.disc a,
.decimal a,
.circle a {
  display: inline;
}

.disc > ul {
  padding-left: 1.5em;
}
.disc > ul > li {
  list-style-type: disc;
}
.disc > ul > li > ul {
  padding-left: 1.5em;
}

.decimal > ol {
  padding-left: 1.5em;
}
.decimal > ol > li {
  list-style-type: decimal;
}

.dlcolor dl {
  width: 100%;
  max-width: 710px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 750px) {
  .dlcolor dl {
    display: -ms-flexbox;
    /* prefix -> -webkit- */
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    -webkit-align-items: center;
    /* no prefix */
    display: -webkit-box;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.dlcolor dt,
.dlcolor dd {
  font-weight: bold;
  margin-bottom: 0.5em;
}
.dlcolor dt {
  background-color: #253D8E;
  color: white;
  width: 7em;
  text-align: center;
  padding: 0.25em;
}
@media (min-width: 750px) {
  .dlcolor dt {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 7em;
            flex: 1 0 7em;
    width: 7em;
    max-width: 7em;
    padding: 0.25em;
  }
}
@media (min-width: 750px) {
  .dlcolor dd {
    width: calc(100% - 7em);
    max-width: calc(100% - 7em);
    padding-left: 1em;
  }
}

.categorybox {
  color: white;
  background-color: #253D8E;
  display: inline-block;
  padding: 0.25em 0.5em;
}

.datebox span::before {
  content: "";
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-right: 0.25em;
}
.datebox span.post::before {
  background: url(../images/common/icon_pen.svg) no-repeat center center/contain;
}
.datebox span.redo {
  margin-left: 1em;
}
.datebox span.redo::before {
  background: url(../images/common/icon_redo.svg) no-repeat center center/contain;
}

/*
 * ハンバーガーメニューのボタンとアイコンのスタイル
 * アクセシビリティを考慮
 */
/* 1. ハンバーガーメニューボタンの基本スタイル */
.menu-button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 44px;
  height: 44px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  z-index: 10;
}
.menu-button:focus-visible {
  /* キーボードフォーカス時のスタイル */
  outline: 2px solid blue;
  outline-offset: 2px;
}
.menu-button:hover {
  opacity: 0.8;
}
.menu-button[aria-expanded=false] .icon-hamburger {
  display: block;
}
.menu-button[aria-expanded=false] .icon-batsu {
  display: none;
}
.menu-button[aria-expanded=true] .icon-hamburger {
  display: none;
}
.menu-button[aria-expanded=true] .icon-batsu {
  display: block;
}
.menu-button {
  /* . ハンバーガーラインのコンテナ (アイコンとsr-onlyテキストを囲む) */
}
.menu-button .hamburger-line {
  display: block;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.menu-button .hamburger-line img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: calc(56 / 750 * 100vw);
  height: calc(56 / 750 * 100vw);
  -o-object-fit: contain;
     object-fit: contain;
}
.menu-button {
  /* スクリーンリーダー専用テキストのスタイル */
}
.menu-button .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

@media (max-width: 750px) {
  .dropdown .dropdown-menu {
    display: none;
  }
}
.dropdown .dropdown-item:hover {
  text-decoration: none;
}
.dropdown .dropdown-item::before {
  display: none;
}

@media (max-width: 750px) {
  .dropdown:hover .dropdown-menu,
  .dropdown .btn-main:focus + .dropdown-menu,
  .dropdown .dropdown-menu:hover {
    display: none;
  }
  .menu-list::before,
  .menu-list::after {
    display: none;
  }
  .menu-list li a::before {
    display: none;
    content: none;
  }
}
.m-menu {
  position: fixed;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
  gap: 1em;
  width: 0;
  z-index: 100;
  font-weight: 500;
}
@media (max-width: 750px) {
  .m-menu {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: 100%;
    -webkit-transform: none;
            transform: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5em;
    z-index: 1000;
  }
}
.m-menu .side-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media (max-width: 750px) {
  .m-menu .side-info {
    width: 45%;
  }
}
.m-menu {
  /* 共通 */
}
.m-menu .side-cta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  color: #fff;
  background: -webkit-gradient(linear, left top, left bottom, from(#253D8E), to(#3b89af));
  background: linear-gradient(to bottom, #253D8E, #3b89af);
  font-size: 0.85em;
  line-height: 1.5;
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
  margin-top: 0;
}
.m-menu .side-cta:hover, .m-menu .side-cta:focus {
  opacity: 0.8;
}
.m-menu .side-cta {
  /* 英字を縦に */
}
.m-menu .side-cta .line {
  text-orientation: upright;
}
@media (min-width: 751px) {
  .m-menu .side-cta {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    -webkit-box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);
            box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);
    border-radius: 1em 0 0 1em;
    padding-inline: 1.8em;
    padding-block: 1em;
  }
}
@media (max-width: 750px) {
  .m-menu .side-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-writing-mode: initial;
        -ms-writing-mode: initial;
            writing-mode: initial;
    -webkit-box-shadow: none;
            box-shadow: none;
    border-radius: 1em 1em 0 0;
    padding-block: 1em;
    font-size: 0.79em;
    min-width: 0;
    gap: 1em;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 45%;
  }
}
.m-menu {
  /* どのような情報をお探しですか？ */
}
.m-menu button.side-cta {
  border: none;
  height: 14vw;
  -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease-in-out;
  transition: opacity 0.3s ease, -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, opacity 0.3s ease;
  transition: transform 0.3s ease-in-out, opacity 0.3s ease, -webkit-transform 0.3s ease-in-out;
}
@media (max-width: 750px) {
  .m-menu button.side-cta {
    text-align: center;
    width: 100%;
  }
}
.m-menu {
  /* LINE */
}
.m-menu a.side-cta::before {
  content: "";
  display: block;
  width: 2.75em;
  height: 2.75em;
  background: no-repeat center center;
  background-image: url(../images/common/icon_ctaline.svg);
}
@media (max-width: 750px) {
  .m-menu a.side-cta::before {
    width: 2.29em;
    height: 2.29em;
  }
}

/* サイドメニュー：隠れている部分 */
.side-menu {
  position: fixed;
  top: -11%;
  right: 0;
  width: 40em;
  max-width: 90vw;
  height: 100vh;
  background-color: #fff;
  -webkit-box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
          box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
  padding: 3em 2em;
  z-index: 2000;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  overflow-y: auto;
}
@media (max-width: 750px) {
  .side-menu {
    top: 8%;
  }
}
.side-menu .info-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 0.5em;
  font-weight: bold;
  margin-bottom: 1em;
}
.side-menu .info-list li {
  width: 100%;
}
.side-menu .info-list li a {
  width: 100%;
  text-decoration: none;
  color: #313131;
}
.side-menu .info-list li a:hover, .side-menu .info-list li a:focus {
  text-decoration: underline;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.side-menu .linebox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  margin-bottom: 2em;
}
.side-menu .linebox .line {
  width: 3.5em;
  height: 3.5em;
}
.side-menu .telfaxbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1em;
  margin-bottom: 1em;
}
.side-menu .telfaxbox li {
  width: 15.625em;
}
.side-menu .text {
  font-size: 0.875em;
}

.side-info.is-active .side-menu {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
@media (min-width: 751px) {
  .side-info.is-active #side-info {
    -webkit-transform: translateX(-47em);
            transform: translateX(-47em);
  }
}

/* step汎用モジュール */
.step {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 3.75em;
}
.step-box {
  min-height: 18em;
  padding-inline: 6.25em;
  background-color: #ebf2f5;
  -webkit-box-shadow: 1px 0px 5px rgba(0, 0, 0, 0.1);
          box-shadow: 1px 0px 5px rgba(0, 0, 0, 0.1);
  /* 位置 */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3.75em;
  position: relative;
}
@media (max-width: 750px) {
  .step-box {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 2.5em;
    height: auto;
    padding-block: 3.57em;
    padding-inline: 4%;
  }
}
.step-box .imgbox {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-preferred-size: 12.5em;
      flex-basis: 12.5em;
}
@media (max-width: 750px) {
  .step-box .imgbox {
    -ms-flex-preferred-size: auto;
        flex-basis: auto;
    text-align: center;
  }
}
@media (max-width: 750px) {
  .step-box .imgbox img {
    width: 60%;
  }
}
.step .step-num {
  position: absolute;
  top: 0;
  left: 0;
  height: 6.25em;
  width: 6.25em;
}
@media (max-width: 750px) {
  .step .step-num {
    width: 4.82em;
    height: 4.82em;
  }
}
.step .textbox .h3second {
  margin-bottom: 1rem;
}
.step .textbox .contact {
  margin-top: 2em;
}
.step .contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
}
.step .contact a.line {
  cursor: pointer;
  width: 3.5em;
  height: 3.5em;
}
.step .contact a.line:hover, .step .contact a.line:focus {
  opacity: 0.8;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
.step .contact a.line:hover img, .step .contact a.line:focus img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
.step .contact .linkbox-white {
  margin-inline: initial;
}

/* お問い合わせページ */
main.contact .line-contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1em;
}
main.contact .line-contact a.line {
  cursor: pointer;
  width: 3.5em;
  height: 3.5em;
}
main.contact .line-contact a.line:hover, main.contact .line-contact a.line:focus {
  opacity: 0.8;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
main.contact .line-contact a.line:hover img, main.contact .line-contact a.line:focus img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
main.contact .line-contact .linkbox-white {
  margin-inline: initial;
}
main.contact .telbox img {
  width: 20em;
}

/* ページ内リンクが隠れないようにするコード */
.anchor {
  position: relative;
  padding-top: 8.125em;
  margin-top: -8.125em;
}

@media screen and (max-width: 750px) {
  .anchor {
    padding-top: calc(135 / 750 * 100vw);
    margin-top: calc(-135 / 750 * 100vw);
  }
}
#js-fadein,
.js-fadein {
  opacity: 0;
  -webkit-transform: translateY(60px);
          transform: translateY(60px);
  -webkit-transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 1s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 1s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1), transform 1s cubic-bezier(0.4, 0, 0.2, 1);
  transition: opacity 1s cubic-bezier(0.4, 0, 0.2, 1), transform 1s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 1s cubic-bezier(0.4, 0, 0.2, 1);
}

#js-fadein.is-show,
.js-fadein.is-show {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}