@charset "UTF-8";
*,
::before,
::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  background: #ffffff;
  color: #222222;
  font-size: 16px;
  letter-spacing: 0;
  -webkit-text-size-adjust: 100%;
  /*スマホ横画面で文字の拡大・収縮防止用*/
  -webkit-font-smoothing: antialiased;
  /* 文字の太さを整える。Safari環境用 */
}

img {
  width: 100%;
  vertical-align: top;
}

a {
  color: inherit;
  text-decoration: none;
  word-break: break-all;
  text-underline-offset: 0.2em;
}
@media (min-width: 768px) {
  a[href^=tel] {
    pointer-events: none;
    /* pcでリンクさせない */
  }
}

ul,
ol {
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
[class*=heading] {
  font-weight: 700;
  color: #014865;
  line-height: 1.25;
  letter-spacing: 0.03em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  word-break: break-all;
}

h1 {
  font-size: 36px;
}

h2 {
  font-size: 25px;
}

h3 {
  font-size: 18px;
}

h4 {
  font-size: 17px;
}

nav {
  line-height: 1.5;
  letter-spacing: 0.05em;
}

header,
footer {
  line-height: 1.25;
}

main {
  font-size: 16px;
  line-height: 1.625;
  line-height: 1.8;
}
@media (min-width: 768px) {
  main {
    font-size: 15px;
  }
}

/*--------------------------------------
表示・非表示
（他のclassと一緒に設置しない）
----------------------------------------*/
.pc_only {
  display: none;
}
@media (min-width: 768px) {
  .pc_only {
    display: block;
  }
}

.sp_only {
  display: block;
}
@media (min-width: 768px) {
  .sp_only {
    display: none;
  }
}

/*--------------------------------------
改行
----------------------------------------*/
.br {
  display: inline-block;
}

/*--------------------------------------
body直下
----------------------------------------*/
/* body直下 */
.body-inner {
  width: 100%;
  min-width: 320px;
  overflow: hidden;
  /* 余白対策 */
}

/*--------------------------------------
コンテンツ幅（共通）
----------------------------------------*/
.width_contents[class] {
  width: min(calc(100% - clamp(20px, 5.2083333333vw, 40px)), 1240px);
  margin: 0 auto;
}

/*-----------------------------------------------------------------------------------
ボタン
-----------------------------------------------------------------------------------*/
.button {
  display: block;
  position: relative;
  z-index: 1;
  width: min(100%, 450px);
  /* 横幅 */
  height: 60px;
  /* 縦幅 */
  color: #014865;
  /* 文字色 */
  font-size: 18px;
  /* 文字サイズ */
  cursor: pointer;
}
@media (min-width: 480px) {
  .button {
    width: min(100%, 273px);
    height: 50px;
  }
}
.button::before {
  -webkit-box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.2);
          box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.2);
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background: #a3daf0;
  /* 背景色 */
  content: "";
}
.button__inner {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 1em 2px;
  /* 余白 */
  color: unset;
  letter-spacing: 0.05em;
  white-space: nowrap;
  /* 想定外の改行防止 */
}

/*--------------------------------------
ボタン > フォーム用
----------------------------------------*/
.button[class*=type_submit],
.button[class*=type_reverse] {
  text-align: center;
  padding: 0 1em 2px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  color: unset;
  letter-spacing: 0.05em;
  white-space: nowrap;
  border: 0;
}
.button[class*=type_submit] .button__inner,
.button[class*=type_reverse] .button__inner {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.button[class*=type_reverse]::before {
  border: 1px solid #005274;
  background: transparent;
}

/*--------------------------------------
ボタン > アイコン
----------------------------------------*/
.button .icon {
  display: block;
  position: absolute;
  top: 50%;
  right: 0.5em;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  width: 40px;
  /* アイコンサイズ */
  height: 40px;
}
.button .icon::before, .button .icon::after {
  display: block;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  width: 100%;
  /* アイコン装飾（横棒） */
  height: 1px;
  background: #014865;
  content: "";
}
.button .icon::after {
  width: 5px;
  /* アイコン装飾（丸） */
  height: 5px;
  border-radius: 50%;
}

/*--------------------------------------
ボタン > デザイン差分
----------------------------------------*/
/* ----------------
// 角丸
---------------- */
.button[class*=type_maru] {
  height: 60px;
}
@media (min-width: 480px) {
  .button[class*=type_maru] {
    height: 45px;
    font-size: 14px;
  }
}
.button[class*=type_maru]::before {
  border-radius: 18px;
}

/* ----------------
// アイコンを画像（logo）に変更
---------------- */
.button[class*=type_img] {
  height: 80px;
  font-size: 19px;
}
@media (min-width: 480px) {
  .button[class*=type_img] {
    height: 50px;
    font-size: 12px;
  }
}
.button[class*=type_img]::before {
  background: #ffffff;
}
.button[class*=type_img] .icon {
  width: 40%;
  height: 40px;
  background: url(../img/iocn_logo_eg.svg) center no-repeat;
  background-size: contain;
}
.button[class*=type_img] .icon::before, .button[class*=type_img] .icon::after {
  display: none;
}

/* 差分 */
.button[class*=type_img_2] .icon {
  background-image: url(../img/iocn_logo_keeper.png);
}

/*--------------------------------------
ボタン > ホバー時
----------------------------------------*/
@media (min-width: 1280px) {
  .button {
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
  }
  .button:hover {
    color: #005274;
  }
  .button:hover::before {
    background: #bde4f4;
  }
  .button:hover .icon::before, .button:hover .icon::after {
    background: #005274;
  }
  .button[class*=type_img]:hover .icon {
    opacity: 0.8;
  }
  .button[class*=type_reverse]:hover {
    color: #68c2e7;
  }
  .button[class*=type_reverse]:hover::before {
    border-color: #68c2e7;
    background: transparent;
  }
}
/*-----------------------------------------------------------------------------------
リスト
-----------------------------------------------------------------------------------*/
/* ----------------
// 順番なしリスト
---------------- */
.list_ul {
  display: block;
}
.list_ul li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  display: block;
  position: relative;
  padding: 0 0 0 1.5em;
  font-size: 17px;
  line-height: 1.75;
}
.list_ul li::before {
  display: block;
  position: absolute;
  top: min(50%, 1em);
  left: 0.5em;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.8em;
  height: 0.8em;
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  content: "";
}
.list_ul li:last-of-type {
  margin: 0;
}

/* ----------------
// 上下線のリスト
---------------- */
.list_border {
  display: grid;
  grid-template: 1fr/1fr;
  width: 100%;
}
.list_border dt,
.list_border dd {
  width: 100%;
  font-size: 15px;
}
.list_border dt {
  padding: 0.5em 0;
}
.list_border dt:first-of-type {
  border-top: 1px solid #bbd5e0;
}
.list_border dd {
  padding: 0 0 calc(0.5em + 2px);
  border-bottom: 1px solid #bbd5e0;
}
@media (min-width: 768px) {
  .list_border {
    grid-template: 1fr/repeat(1, 90px 1fr);
  }
  .list_border dt,
  .list_border dd {
    padding: 0.5em 0 calc(0.5em + 2px);
    border-bottom: 1px solid #bbd5e0;
  }
  .list_border dt:first-of-type,
  .list_border dd:first-of-type {
    border-top: 1px solid #bbd5e0;
  }
}

/* ----------------
// 一段ごとに背景が変わるリスト
---------------- */
.list_line {
  -webkit-box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.1);
  display: grid;
  grid-template: 1fr/1fr;
}
.list_line dt,
.list_line dd {
  padding: 0.5em 1em;
  font-weight: 500;
}
.list_line dt:nth-of-type(even),
.list_line dd:nth-of-type(even) {
  background: #dfeff5;
}
.list_line dt:nth-of-type(odd),
.list_line dd:nth-of-type(odd) {
  background: #d0e4ed;
}
.list_line dd {
  padding: 0 1em calc(0.5em + 2px);
}
@media (min-width: 768px) {
  .list_line {
    grid-template: 1fr/repeat(2, 1fr);
  }
  .list_line dt,
  .list_line dd {
    padding: 0.5em 1em calc(0.5em + 2px);
  }
}

.list_line[class*=type_table] {
  grid-template: 1fr/1fr;
}
.list_line[class*=type_table] > li {
  display: grid;
  font-weight: 500;
  grid-template: 1fr/1fr;
}
.list_line[class*=type_table] > li:nth-of-type(even) {
  background: #dfeff5;
}
.list_line[class*=type_table] > li:nth-of-type(odd) {
  background: #d0e4ed;
}
.list_line[class*=type_table] > li > p {
  text-align: left;
}
.list_line[class*=type_table] > li:not([class]) {
  padding: 0.5em 1em calc(0.5em + 2px);
}
.list_line[class*=type_table] .ttl {
  padding: 0.5em 1em;
  color: #014865;
}
@media (min-width: 768px) {
  .list_line[class*=type_table] > li {
    grid-template: 1fr/repeat(3, 1fr);
  }
}

/* 差分（5列・尚且つ先頭が『人数』の場合） */
@media (min-width: 768px) {
  .list_line[class*=type_table_5] > li {
    grid-template: 1fr/120px repeat(4, 1fr);
  }
}

/* 差分（5列・尚且つ先頭が『人数』の場合） */
@media (min-width: 768px) {
  .list_line[class*=type_table_prof] {
    grid-template: 1fr/160px 1fr;
  }
}

/* ----------------
// 自動で番号を付与するリスト（シンプル）
---------------- */
.list_ol {
  display: block;
  counter-reset: number 0;
}
.list_ol > li {
  line-height: 1.75;
  counter-increment: number 1;
}
.list_ol > li::before {
  margin: 0 0.5em 0 0;
  content: "(" counter(number) ")";
}

/* ----------------
// 自動で番号を付与するリスト（シンプル__丸の中に数字）
---------------- */
.list_ol[class*=type_circle] > li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  position: relative;
  padding: 0 0 0 1.5em;
  font-size: 17px;
  line-height: 1.75;
}
.list_ol[class*=type_circle] > li::before {
  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: absolute;
  top: 1em;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  width: 1.25em;
  height: 1.25em;
  border: 0.5px solid;
  border-radius: 50%;
  font-size: 0.8em;
  line-height: 1;
  content: counter(number) "";
}

/* ----------------
// 自動で番号を付与するリスト（丸の中に数字）
---------------- */
.list_ol-circle {
  counter-reset: number 0;
}
@media (min-width: 768px) {
  .list_ol-circle {
    font-size: 14px;
  }
}
.list_ol-circle li {
  counter-increment: number 1;
}
.list_ol-circle li h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  display: block;
  position: relative;
  margin: 0.5em 0 1.1111111111em;
  padding: 0 0 0 2.2222222222em;
}
.list_ol-circle li h3::before {
  font-weight: 700;
  text-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  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: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  width: 1.5em;
  height: 1.5em;
  padding: 0 0 0.1em;
  /* 文字の高さを調節 */
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  color: #ffffff;
  font-size: 20px;
  content: counter(number) "";
}

/* ----------------
// 強調リスト
---------------- */
.list_prominent {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 16px;
  width: 100%;
  padding: 16px 24px 20px 24px;
  /* 上16, 右24, 下20, 左24 */
  border-radius: 8px;
  background: #ffffff;
}
.list_prominent li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  display: block;
  position: relative;
  padding: 0 0 0 2em;
  font-size: 16px;
  line-height: 1.25;
}
.list_prominent li::before {
  display: block;
  position: absolute;
  top: min(50%, 1em);
  left: 0.5em;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 1.5em;
  height: 1.5em;
  background: url(../img/iocn_check.png) center no-repeat;
  background-size: cover;
  content: "";
}
.list_prominent li:last-of-type {
  margin: 0;
}

/*--------------------------------------
共通 > テーブル
----------------------------------------*/
.common-table > table {
  display: block;
  border-top: 1px solid #bbd5e0;
  line-height: 1.5;
}

.common-table > table > tbody {
  display: block;
  width: 100%;
}

.common-table > table > div,
.common-table > table > tbody > tr {
  display: grid;
  align-items: stretch;
  border-bottom: 1px solid #bbd5e0;
  background: #ffffff;
  color: #2b3033;
  font-weight: 400;
  font-size: 17px;
  text-align: left;
  grid-template: 3em minmax(3em, 1fr)/1fr;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
}

@media (min-width: 768px) {
  .common-table > table > div,
  .common-table > table > tbody > tr {
    grid-template: minmax(3em, 1fr)/min(100%, 280px) 1fr;
  }
}
.common-table > table > div > dt,
.common-table > table > tbody > tr > th {
  padding: 0.9em 20px 1.05em;
  background: #dfeff5;
  font-weight: 500;
}

.common-table > table > div > dd,
.common-table > table > tbody > tr > td {
  padding: 0.9em 35px 1.05em;
}

.common-table > table--white > div > dt,
.common-table > table--white > tbody > tr > th {
  background: transparent;
}

/*-----------------------------------------------------------------------------------
header
-----------------------------------------------------------------------------------*/
:target {
  scroll-margin-top: 64px; /* ヘッダーの高さを指定 */
}
@media (min-width: 768px) {
  :target {
    scroll-margin-top: 96px;
  }
}

header {
  display: block;
  position: fixed;
  top: 0;
  left: 50%;
  z-index: 99;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 100%;
  height: 64px;
  background: #ffffff;
  color: #222222;
  -webkit-box-shadow: 0px 24px 30px -20px rgba(0, 0, 0, 0.15);
          box-shadow: 0px 24px 30px -20px rgba(0, 0, 0, 0.15);
}
@media (min-width: 768px) {
  header {
    height: 96px;
  }
}

/*--------------------------------------
コンテンツ幅
----------------------------------------*/
.width_header {
  width: calc(100% - clamp(20px, 5.2083333333vw, 40px));
  margin: 0 auto;
}
@media (min-width: 768px) {
  .width_header {
    width: calc(100% - clamp(10px, 2.6041666667vw, 20px));
    margin: 0 0 0 auto;
  }
}
@media (min-width: 1280px) {
  .width_header {
    width: calc(100% - clamp(20px, 5.2083333333vw, 40px));
    max-width: 1240px;
    margin: 0 auto;
  }
}
@media (min-width: 768px) {
  .width_header {
    width: 100%;
    max-width: none;
    padding: 0 0 0 20px;
    margin: 0;
  }
}

header > .width_header {
  height: 100%;
}

/*--------------------------------------
サイトタイトル/ ハンバーガーメニュー/ グローバルナビ（pc）wrapper
----------------------------------------*/
.header-nav-wrap {
  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;
  width: 100%;
  height: 100%;
}

/*--------------------------------------
サイトタイトル
----------------------------------------*/
.site-title {
  display: block;
  width: min(100%, 260px);
  font-size: 0;
}
@media (min-width: 768px) {
  .site-title {
    width: min(100%, 280px);
  }
}
.site-title a {
  display: block;
}

/*--------------------------------------
ハンバーガーメニュー
----------------------------------------*/
#hamburger {
  display: block;
}
@media (min-width: 768px) {
  #hamburger {
    display: none;
  }
}

/* アイコン */
#hamburger-icon,
#hamburger-closeicon {
  display: inline-block;
  width: 35px;
  height: 35px;
  padding: 6px;
  background: transparent;
  position: relative;
  z-index: 20;
  cursor: pointer;
}
#hamburger-icon span,
#hamburger-closeicon span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 100%;
  height: 3px;
  background: transparent;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
#hamburger-icon span::before, #hamburger-icon span::after,
#hamburger-closeicon span::before,
#hamburger-closeicon span::after {
  display: block;
  position: absolute;
  top: 4px;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  width: 100%;
  height: 3px;
  background: #68c2e7;
  content: "";
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
#hamburger-icon span::after,
#hamburger-closeicon span::after {
  top: auto;
  bottom: 4px;
}

#hamburger-closeicon {
  display: none;
  position: absolute;
  top: 36px;
  left: 10px;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
#hamburger-closeicon span {
  background: transparent;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
#hamburger-closeicon span::before, #hamburger-closeicon span::after {
  top: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
  background: #ffffff;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
#hamburger-closeicon span::after {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}

body.menu-open #hamburger-icon {
  display: none;
}
body.menu-open #hamburger-closeicon {
  display: inline-block;
}

/* 背景 */
#hamburger-content {
  display: block;
  position: fixed;
  top: 0;
  left: 200vw;
  z-index: 10;
  width: max(100vw, 320px);
  height: calc(100vh - 80px);
  height: 100vh;
  padding: 72px 0 80px;
  background: #005274;
  color: #ffffff;
  -webkit-transition: left 0.5s;
  transition: left 0.5s;
  overflow-y: auto;
}
#hamburger-content.is_active {
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  -webkit-transition: left 0.5s;
  transition: left 0.5s;
}

/* 背景スクロール防止 */
/*--------------------------------------
グローバルナビ（sp）
----------------------------------------*/
.global-nav {
  font-size: clamp(18px, 2.6041666667vw, 20px);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  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 0;
}
@media (min-width: 768px) {
  .global-nav {
    font-size: 14px;
  }
}
.global-nav li {
  color: #c4c4c4;
}

/* ハンバーガーメニュー内 */
#hamburger-content .global-nav {
  font-size: clamp(18px, 2.8645833333vw, 22px);
  gap: calc(0.5em + 2px) 0;
}
#hamburger-content .global-nav li {
  padding: 0 0 0.5em;
  border-bottom: solid 1px #68c2e7;
  color: inherit;
}
#hamburger-content .global-nav li:first-of-type {
  padding: 0.5em 0 calc(0.5em + 2px);
  border-top: solid 1px #68c2e7;
}
#hamburger-content .global-nav li a:nth-child(n+2) {
  display: inline-block;
  margin: 0.5em 0 0 1em;
}
#hamburger-content .global-nav li a:nth-child(n+2)::before {
  margin: 0 0.5em 0 0;
  content: "-";
}

/*--------------------------------------
グローバルナビ（pc）
----------------------------------------*/
.pc-global-nav {
  display: none;
}
@media (min-width: 768px) {
  .pc-global-nav {
    display: grid;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0 32px;
    width: 100%;
    height: 100%;
    grid-template: "h-top h-btn" auto "h-bottom h-btn" auto/1fr 104px;
  }
}
.pc-global-nav-menu {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 24px;
  padding: 24px 0 24px;
  line-height: 1;
  grid-area: h-bottom;
}
.pc-global-nav-menu > li a {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  -webkit-transition: background-image 0.3s ease-in-out;
  transition: background-image 0.3s ease-in-out;
}
.pc-global-nav-menu > li a:hover {
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pc-global-nav-menu > li > a {
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
}
.pc-global-nav-menu > li .active {
  position: relative;
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pc-global-nav-menu > li .active::before {
  display: block;
  position: absolute;
  bottom: -1em;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  content: "";
}
.pc-global-nav-menu--top {
  padding: 18px 0 0;
  grid-area: h-top;
}
.pc-global-nav-menu--top > li a {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 13px;
}
.pc-global-nav-btn {
  width: 104px;
  height: 100%;
  grid-area: h-btn;
}
.pc-global-nav-btn > a {
  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-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(#68c2e7), to(#67be95));
  background: linear-gradient(#68c2e7 0%, #67be95 100%);
  color: white;
  font-size: 13px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  text-align: center;
  -webkit-transition: background-image 0.3s ease-in-out;
  transition: background-image 0.3s ease-in-out;
}
.pc-global-nav-btn > a::before {
  display: block;
  width: 32px;
  height: 32px;
  background: url(../img/icon_header.png) center no-repeat;
  background-size: cover;
  content: "";
}
.pc-global-nav-btn > a:hover {
  background: #bde4f4;
}

/*-----------------------------------------------------------------------------------
footer
-----------------------------------------------------------------------------------*/
footer {
  display: block;
  position: relative;
  z-index: 30;
  width: 100%;
  background: #005274;
  -webkit-box-shadow: 0px -4px 100px rgba(67, 67, 67, 0.1);
          box-shadow: 0px -4px 100px rgba(67, 67, 67, 0.1);
  color: #ffffff;
}

.footer-map {
  display: block;
  width: 100%;
  height: 200px;
  background: #a3daf0;
}
.footer-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  -webkit-filter: grayscale(100%) opacity(80%);
          filter: grayscale(100%) opacity(80%);
}

/*--------------------------------------
フッター > お問い合わせセクション
----------------------------------------*/
.footer-contact-section {
  /* > width_contents */
  display: block;
  padding: 32px 0 32px;
  background-image: repeating-linear-gradient(0deg, rgb(236, 248, 255) 0px, rgb(236, 248, 255) 1px, transparent 1px, transparent 21px), repeating-linear-gradient(90deg, rgb(236, 248, 255) 0px, rgb(236, 248, 255) 1px, transparent 1px, transparent 21px), -webkit-gradient(linear, left top, right top, from(rgb(255, 255, 255)), to(rgb(255, 255, 255)));
  background-image: repeating-linear-gradient(0deg, rgb(236, 248, 255) 0px, rgb(236, 248, 255) 1px, transparent 1px, transparent 21px), repeating-linear-gradient(90deg, rgb(236, 248, 255) 0px, rgb(236, 248, 255) 1px, transparent 1px, transparent 21px), linear-gradient(90deg, rgb(255, 255, 255), rgb(255, 255, 255));
}
@media (min-width: 768px) {
  .footer-contact-section {
    padding: 48px 0 48px;
  }
}

.footer-contact {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 24px;
  color: #014865;
}
@media (min-width: 768px) {
  .footer-contact {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}
.footer-contact__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  max-width: min(100%, 640px);
}
.footer-contact__heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 12px;
}
.footer-contact__title {
  font-size: clamp(56px, 4.5vw, 64px);
  font-family: "Crimson Pro", serif;
  font-weight: 400;
}
@media (min-width: 768px) {
  .footer-contact__title {
    font-size: 64px;
  }
}
.footer-contact__subtitle {
  font-size: clamp(15px, 1.3vw, 16px);
  font-family: "Shippori Mincho", "Yu Mincho Light", "YuMincho", "Yu Mincho", "游明朝体", serif;
  font-weight: 600;
}
.footer-contact__description {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
@media (min-width: 768px) {
  .footer-contact__description {
    font-size: 17px;
  }
}
.footer-contact__actions {
  width: 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: flex-end;
  gap: 16px;
}
@media (min-width: 768px) {
  .footer-contact__actions {
    width: min(100%, 420px);
  }
}
.footer-contact__button {
  /* .button */
  font-size: 16px;
}
@media (min-width: 768px) {
  .footer-contact__button {
    font-size: 14px;
  }
}
.footer-contact__phone {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}
.footer-contact__phone a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 24px;
  font-weight: 700;
  color: unset;
  position: relative;
  gap: 8px;
}
.footer-contact__phone a::before {
  content: "";
  display: block;
  width: clamp(20px, 3vw, 32px);
  height: clamp(20px, 3vw, 32px);
  background: url(../img/icon_contact_tel.png) center no-repeat;
  background-size: cover;
}
.footer-contact__phone-hours {
  display: block;
  font-size: clamp(12px, 1.5vw, 15px);
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  font-weight: 400;
  text-align: right;
}

/*--------------------------------------
フッター > TOP
----------------------------------------*/
.footer-top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 48px 0;
  padding: 60px 0 120px;
}
@media (min-width: 768px) {
  .footer-top {
    padding: 60px 0 56px;
  }
}
.footer-top__left {
  display: grid;
  gap: 40px 0;
  width: min(100%, 620px);
  grid-template: auto/repeat(auto-fit, min(100%, 310px));
}
.footer-top__right {
  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-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 24px 0;
  width: min(100%, 450px);
}
@media (min-width: 768px) {
  .footer-top__right {
    width: min(100%, 273px);
  }
}

.footer-bottom {
  display: block;
  width: 100%;
  padding: 0 0 64px;
  border-top: solid 1px;
}

/*--------------------------------------
footer-top__left > global-nav（sp）wrapper
----------------------------------------*/
.footer-nav-wrap {
  text-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
  margin: 0 0 40px;
}

/*--------------------------------------
footer-top__left > 会社情報
----------------------------------------*/
.address {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(18px, 2.6041666667vw, 20px);
  text-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  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 0;
}
@media (min-width: 768px) {
  .address {
    font-size: 15px;
  }
}
.address dt {
  font-weight: 700;
  font-size: 1.2em;
  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.25em 0;
  position: relative;
  margin: 0 0 0.5em;
}
.address dt::before {
  display: block;
  width: 3.3333333333em;
  height: 5.4166666667em;
  background: url(../img/logo_footer.svg) no-repeat;
  background-size: cover;
  content: "";
}
.address__tel, .address__map {
  width: 100%;
}
.address__tel a, .address__map a {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  width: 80%;
  grid-template: minmax(32px, 1fr)/32px 1fr;
}
.address__tel a::before, .address__map a::before {
  display: block;
  -ms-flex-item-align: start;
      align-self: flex-start;
  width: 32px;
  height: 32px;
  background: url(../img/icon_map.svg) no-repeat;
  background-size: cover;
  content: "";
}
.address__tel {
  font-weight: 700;
  font-size: 1.3em;
}
.address__tel a::before {
  background-image: url(../img/icon_tel.svg);
}
.address__tel > p {
  margin: 0 0 0 calc(32px + 0.5em);
  font-size: 0.8em;
}
.address__sns {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 14px;
  grid-template: 1fr/repeat(auto-fit, 32px);
}
.address__banner {
  margin: 0.5em 0 0;
}
.address__banner > p {
  width: 100%;
  margin: 0 0 0.75em;
  font-weight: 500;
  font-size: 15px;
}

/*--------------------------------------
footer-top__right > ボタンwrapper
----------------------------------------*/
.footer-btn-wrap {
  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;
}
.footer-btn-wrap p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  margin: 0;
}

/*--------------------------------------
footer-top__right > 認定バナー類
----------------------------------------*/
.banner-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 8px;
}
.banner-wrap > p {
  width: 100%;
}

.banner {
  width: 260px;
}

.banner-icon {
  width: 80px;
  height: 80px;
}
@media (min-width: 768px) {
  .banner-icon {
    width: calc((100% - 16px) / 3);
    height: calc((100% - 16px) / 3);
  }
}
.banner-icon > a {
  display: block;
}
.banner-icon > a > img {
  width: 100%;
  height: 100%;
}

/*--------------------------------------
footer-bottom > コピーライト
----------------------------------------*/
.copy-right {
  font-family: "Helvetica", "Arial", sans-serif;
  font-weight: 300;
  text-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  display: block;
  padding: 1em 0 0;
  font-size: 11px;
  text-align: center;
}

/*-----------------------------------------------------------------------------------
main
-----------------------------------------------------------------------------------*/
main {
  min-height: 60vh;
  /* footer下の余白防止 */
  padding: 64px 0 0 0;
  /* 余白＝headerの高さ */
  background: #f0f4f8;
}
@media (min-width: 768px) {
  main {
    padding: 96px 0 0 0;
  }
}

/*--------------------------------------
ページタイトル
----------------------------------------*/
.head {
  display: block;
  width: 100%;
  height: 110px;
  background: url(../img/img_head.jpg) left center no-repeat;
  background-size: cover;
}
.head__inner {
  /* width_contents */
  height: 100%;
  position: relative;
}
.head h1,
.head p {
  display: block;
  color: #ffffff;
  font-family: "Shippori Mincho", "Yu Mincho Light", "YuMincho", "Yu Mincho", "游明朝体", serif;
  font-weight: 600;
  font-size: 36px;
  letter-spacing: 0.03em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  text-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
@media (min-width: 768px) {
  .head h1,
  .head p {
    font-size: 32px;
  }
}

/*--------------------------------------
ページコンテンツ
----------------------------------------*/
.foot {
  /* width_contents */
  padding: 40px 0 104px;
}
.foot section {
  margin: 0 0 80px;
}
.foot h2:not([class]),
.foot h3:not([class]),
.foot h4:not([class]),
.foot h5:not([class]),
.foot h6:not([class]) {
  margin: 0 0 0.5em;
}
.foot[class*=type_policy] section {
  margin: 0 0 64px;
}

/*--------------------------------------
コンテンツ下・カード
----------------------------------------*/
.sub-service {
  /* width_contents */
  padding: 0 0 64px;
}
.sub-service .title {
  margin: 0 0 24px;
}

/*--------------------------------------
リード文
----------------------------------------*/
.foot-lead {
  display: block;
  margin: 0 0 56px;
  font-size: 17px;
}

/*--------------------------------------
次のページのボタン
----------------------------------------*/
.next-buttons {
  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: flex-end;
  gap: 12px 0;
  width: 100%;
}

/*--------------------------------------
見出し
----------------------------------------*/
/* ----------------
// 大見出し
---------------- */
.heading-1 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 4px 2px 2px clamp(16px, 4.1666666667vw, 32px);
  margin: 0 0 1.2em;
  background: #ffffff;
  -webkit-box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.05);
          box-shadow: 0px 5px 5px -6px rgba(0, 0, 0, 0.05);
  font-family: "Shippori Mincho", "Yu Mincho Light", "YuMincho", "Yu Mincho", "游明朝体", serif;
  font-weight: 600;
  position: relative;
}
.heading-1::before, .heading-1::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #68c2e7;
  position: absolute;
  top: 0;
  left: 0;
}
.heading-1::after {
  width: 60px;
  height: 4px;
}
.heading-1__inner {
  width: 100%;
  /* 改行する場合、使用 */
  margin: 0 0 0.25em;
}

/* ----------------
// 見出し
---------------- */
.heading-2 {
  display: block;
  padding: 10px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-weight: 700;
  position: relative;
}
.heading-2::before {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  background: #68c2e7;
  position: absolute;
  top: 0;
  left: 0;
}

/* ----------------
//小見出し
---------------- */
.heading-3 {
  padding: 0 8px;
  border-left: 4px solid #68C2E7;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-weight: 700;
}

/* 共通設定 */
/*--------------------------------------
見出し下・コンテンツ
----------------------------------------*/
.contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
  width: 100%;
  margin: 0 0 40px;
}
@media (min-width: 768px) {
  .contents {
    padding: 0 0 0 32px;
    margin: 0 0 48px;
    gap: 48px;
  }
}
.contents[class*=type_fl] {
  -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;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 32px;
}
.contents__item01[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 24px 0;
}
@media (min-width: 768px) {
  .contents__item01[class] {
    gap: 32px 0;
  }
}
.contents__item02[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px 0;
}
@media (min-width: 768px) {
  .contents__item02[class] {
    gap: 24px 0;
  }
}
.contents__item03[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px 0;
}
@media (min-width: 768px) {
  .contents__item03[class] {
    gap: 16px 0;
  }
}
.contents p:not([class]) {
  text-align: justify;
}

/*--------------------------------------
見出し下・コンテンツ > 余白
----------------------------------------*/
.space-1[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 24px 0;
}
@media (min-width: 768px) {
  .space-1[class] {
    gap: 32px 0;
  }
}

.space-2[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px 0;
}
@media (min-width: 768px) {
  .space-2[class] {
    gap: 24px 0;
  }
}

.space-3[class] {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px 0;
}
@media (min-width: 768px) {
  .space-3[class] {
    gap: 16px 0;
  }
}

/*--------------------------------------
見出し下・コンテンツ > 横幅
----------------------------------------*/
.box-85 {
  display: block;
  width: min(100%, 885px);
}

.box-75 {
  display: block;
  width: min(100%, 750px);
}

.box-64 {
  display: block;
  width: min(100%, 640px);
}

.box-48 {
  display: block;
  width: min(100%, 480px);
}

.box-29 {
  display: block;
  width: min(100%, 290px);
}

.box-24 {
  display: block;
  width: min(100%, 240px);
}

.box-85.type_img img,
.box-75.type_img img,
.box-64.type_img img,
.box-48.type_img img,
.box-29.type_img img,
.box-24.type_img img {
  border-radius: 8px;
}

.box-85.type_kakomi,
.box-75.type_kakomi,
.box-64.type_kakomi,
.box-48.type_kakomi {
  padding: 16px 24px 20px 24px;
  /* 上16, 右24, 下20, 左24 */
  background: #fff;
  border-radius: 8px;
}

/*--------------------------------------
テキスト
----------------------------------------*/
/*--------------------------------------
リンク
----------------------------------------*/
.link_line,
.link_window {
  color: #005274;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* 新しい窓で開く */
.link_window::after {
  display: inline-block;
  opacity: 0.9;
  width: 0.9em;
  height: 0.9em;
  margin: 0 0.5em 0;
  background: url(../img/icon_newWindow.svg) center no-repeat;
  background-size: contain;
  vertical-align: middle;
  content: "";
}