@charset "UTF-8";

/* ress.css v5.0.2 custom */

/* ===============================
Global selectors
=============================== */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  word-break: normal;
  tab-size: 4;
}
:where(*, *::before, *::after) {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
}
:where(::before, ::after) {
  text-decoration: inherit;
  vertical-align: inherit;
}

/* ===============================
Global elements
=============================== */
:where(hr) {
  overflow: visible;
  height: 0;
  color: inherit;
}
:where(details, main) {
  display: block;
}
:where(summary) {
  display: list-item;
}
:where(small) {
  font-size: 80%;
}
:where(abbr[title]) {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
:where(a) {
  background-color: transparent;
}
:where(a:active, a:hover) {
  outline-width: 0;
}
:where(code, kbd, pre, samp) {
  font-family: monospace, monospace;
}
:where(pre) {
  font-size: 1em;
}
:where(b, strong) {
  font-weight: bolder;
}
:where(sub, sup) {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
:where(sub) {
  bottom: -0.25em;
}
:where(sup) {
  top: -0.5em;
}
:where(table) {
  border-color: inherit;
  text-indent: 0;
}
:where(iframe) {
  border-style: none;
}

/* ===============================
Forms
=============================== */
:where(input) {
  border-radius: 0;
}
:where(
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button
) {
  height: auto;
}
:where([type="search"]) {
  appearance: textfield;
  outline-offset: -2px;
}
:where([type="search"]::-webkit-search-decoration) {
  appearance: none;
}
:where(textarea) {
  overflow: auto;
  resize: vertical;
}
:where(button, input, optgroup, select, textarea) {
  font: inherit;
}
:where(optgroup) {
  font-weight: bold;
}
:where(button) {
  overflow: visible;
}
:where(button, select) {
  text-transform: none;
}
:where(
button,
[type="button"],
[type="reset"],
[type="submit"],
[role="button"]
) {
  cursor: pointer;
}
:where(
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner
) {
  border-style: none;
  padding: 0;
}
:where(
button:-moz-focusring,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner
) {
  outline: 1px dotted ButtonText;
}
:where(button, html [type="button"], [type="reset"], [type="submit"]) {
  appearance: auto;
}
:where(button, input, select, textarea) {
  background-color: transparent;
  border-style: none;
}
:where(a:focus, button:focus, input:focus, select:focus, textarea:focus) {
  outline-width: 0;
}
:where(select) {
  appearance: none;
}
:where(select::-ms-expand) {
  display: none;
}
:where(select::-ms-value) {
  color: currentColor;
}
:where(legend) {
  border: 0;
  color: inherit;
  display: table;
  white-space: normal;
  max-width: 100%;
}
:where(::-webkit-file-upload-button) {
  appearance: auto;
  color: inherit;
  font: inherit;
}
:where([disabled]) {
  cursor: default;
}

/* ===============================
Specify media element style
=============================== */
:where(img) {
  border-style: none;
}
:where(progress) {
  vertical-align: baseline;
}

/* ===============================
Accessibility
=============================== */
:where([aria-busy="true"]) {
  cursor: progress;
}
:where([aria-controls]) {
  cursor: pointer;
}
:where([aria-disabled="true"]) {
  cursor: default;
}

/* ===============================
Additional Reset （追加のリセット）
=============================== */
:where(:root) {
  text-spacing-trim: trim-start;
}
:where(address:lang(ja)) {
  font-style: unset;
}
:where(em:lang(ja)) {
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn, var):lang(ja)) {
  font-style: unset;
}
:where(
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
summary:focus
) {
  outline: revert;
}
:where(a) {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 0.2ex;
}
:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}
:where(img, picture, svg, video) {
  max-inline-size: 100%;
  block-size: auto;
}
:where(h1, h2, h3, h4, h5, h6) {
  font-weight: var(--font_weight_base);
}
:where(ul, ol, menu) {
  list-style-type: "";
}
:where(button) {
  box-sizing: border-box;
}
:where(dialog) {
  width: unset;
  max-width: unset;
  height: unset;
  max-height: unset;
  padding: unset;
  color: unset;
  background-color: unset;
  border: unset;
  overflow: unset;
}
:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
}
:where(th) {
  font-weight: inherit;
}
:where(address) {
  font-style: normal;
}
:where(iframe) {
  border-width: 0;
}
:where(summary) {
  display: block;
  cursor: pointer;
  list-style: none;
}
:where(fieldset) {
  border: none;
}
:where(select) {
  color: var(--base_color);
  border-radius: 0;
}
summary::-webkit-details-marker {
  display: none;
}
:where([hidden]:not([hidden="until-found"])) {
  display: none;
}
:where([hidden="until-found"]) {
  overflow: hidden;
}
:where(
button,
input:is([type="button" i], [type="submit" i], [type="reset" i]),
[role="tab" i],
[role="button" i],
[role="option" i]
),
::file-selector-button {
  touch-action: manipulation;
}

/* ===============================
Root
=============================== */
:root {
  --color_base: #303030;
  --color_khaki_400: #eadeb8;
  --color_khaki_300: #f7f3e5;
  --color_blue_400: #103c69;
  --font_feature_settings: 'palt';
  --font_base: 'Local Noto Sans JP', 'Noto Sans JP', sans-serif;
  --letter_spacing: 0.05em;
  --font_weight_base: 400;
  --focus_border: #37ac31;
  --scrollbar-width: 0px;
  --scrollbar-menu-width: 0px;
  --leading_trim: calc((1em - 1lh) / 2);
}
@supports not (top: 1lh) {
  :root {
    --leading-trim: 0px;
  }
}

/* ===============================
Font Settings
=============================== */
@font-face {
  font-family: 'Local Noto Sans JP';
  src: local('Noto Sans JP');
}
.noto_sans {
  font-family: 'Local Noto Sans JP', 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
.m_plus {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 700;
  font-style: normal;
}

/* ===============================
base
=============================== */
:focus-visible {
  outline: 2px solid var(--focus_border);
  outline-offset: -1px;
}
body {
  font-feature-settings: var(--font_feature_settings);
  letter-spacing: var(--letter_spacing);
  font-family: var(--font_base);
  font-weight: var(--font_weight_base);
  font-size: calc(16 / 16 * 1rem);
  line-height: 1.5;
  color: var(--color_base);
  background-color: #fff;
  font-optical-sizing: auto;
  font-style: normal;
  text-autospace: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}

/* SP調整 ------------------ */
@media screen and (max-width: 768px) {
  :where(img) {
    width: 100%;
    height: auto;
  }
}

/* ===============================
Safari Dialog focus対策
=============================== */
dialog :focus {
  outline: none;
}
.is_tabbing dialog :focus-visible {
  outline: 2px solid var(--focus_border);
}

/* ===============================
mousedevice / touchdevice
=============================== */

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  a {
    transition: opacity .15s;
  }
  a:hover {
    opacity: .7;
  }
  a[href^="tel:"] {
    cursor: default;
    pointer-events: none;
  }
}

/* ================================
layout
接頭辞： ly_
共通ヘッダー、メイン、フッターの定義です。
================================ */
.ly_wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--color_khaki_400);
}

/* ================================
header
================================ */
.ly_header {
  position: relative;
  z-index: 10;
  background-color: rgb(255 255 255 / 80%);
}
.ly_header.__absolute {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 12;
}
.header_inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 17px 20px 0;
}
.header_inner img {
  display: block;
}
.header_affiliation {
  margin-bottom: 9px;
}
.header_title {
  width: fit-content;
  font-size: calc(16 / 16 * 1rem);
}
.header_title a {
  display: inline-block;
}
.header_img_title_en {
  margin: 6px 0 0 2px;
}
.header_language {
  position: absolute;
  top: 0;
  right: 20px;
  display: flex;
}
.header_language li + li {
  margin-left: 10px;
}
.header_language a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 94px;
  min-height: 32px;
  padding: 2px 5px 2px calc(5px + 0.07em);
  font-size: calc(12 / 16 * 1rem);
  letter-spacing: 0.07em;
  color: #fff;
  background: url(../../img/common/language_bg.svg) no-repeat center / cover;
  border-radius: 0 0 10px 10px;
  overflow: hidden;
}

/* 英語ページ調整 ------------ */
.english .header_inner {
  padding-top: 28px;
}
.english .header_affiliation {
  margin-right: 90px;
}
.english .header_img_affiliation {
  margin-bottom: 5px;
}
.english .header_img_title {
  margin: 0 0 7px 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .header_inner {
    padding: 17px 55px 8px 10px;
  }
  .header_affiliation {
    margin-bottom: 9px;
  }
  .header_img_affiliation {
    width: 230px;
  }
  .header_img_title {
    width: 260px;
  }
  .header_img_title_en {
    width: 270px;
  }
  .header_language {
    display: none;
  }
}

/* SP 英語ページ調整 ------------ */
@media screen and (max-width:768px) {
  .english .header_inner {
    padding-top: 24px;
    padding-bottom: 9px;
  }
  .english .header_affiliation {
    margin: 0 0 8px;
  }
  .english .header_img_affiliation {
    width: 278px;
  }
  .english .header_img_title {
    width: 266px;
  }
}

/* ===============================
header_menu / 枠組み
=============================== */
.header_menu {
  border-bottom: 1px solid #a9a9a9;
}
.header_menu_sitename {
  display: none;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .header_menu {
    position: fixed;
    inset: 0;
    z-index: 1002;
    min-height: 100%;
    background-color: rgb(255 255 255 / 80%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.6s ease, transform 0.6s ease;
    will-change: opacity;
    visibility: hidden;
  }
  .header_menu_sitename {
    display: block;
    width: fit-content;
    letter-spacing: 0.06em;
  }
  .header_menu_sitename_sub {
    display: block;
    font-size: calc(11.45 / 16 * 1rem);
  }
  .header_menu_sitename_main {
    display: block;
    font-size: calc(23 / 16 * 1rem);
  }
  .header_menu .header_hamburger.is_active {
    z-index: 99;
  }
  .header_menu.is_active,
  .header_menu.is_hiding {
    pointer-events: auto;
    overflow: auto;
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  .header_menu.is_active {
    opacity: 1;
    visibility: visible;
  }
  .header_menu.is_hiding {
    opacity: 0;
    visibility: visible;
  }
  body.is_menu_animation {
    padding-right: var(--scrollbar-width);
  }
}

/* アニメーション ---------------- */
.menu_inner {
  transform: translateX(100%);
}
.header_menu[open] .menu_inner {
  animation: menuSlideIn 0.3s forwards;
  transform: translateX(0);
}
.header_menu.is_hide .menu_inner {
  animation: menuSlideOut 0.3s forwards;
}
@keyframes menuSlideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes menuSlideOut {
  from {
    display: block;
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

/* ================================
header_hamburger
================================ */
.header_hamburger {
  display: none;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .header_hamburger {
    display: block;
    position: fixed;
    top: 12px;
    right: calc(5px + var(--scrollbar-menu-width));
    width: 46px;
    height: 46px;
    border: none;
    cursor: pointer;
    z-index: 999;
    outline-offset: -2px;
    -webkit-tap-highlight-color: transparent;
    transition: transform .3s;
  }
  .header_hamburger_line {
    position: absolute;
    top: calc(50% - 2px);
    left: 0;
    right: 0;
    width: 32px;
    height: 4px;
    margin: auto;
    background-color: var(--color_blue_400);
    transition: all .3s;
  }
  .header_hamburger_line:nth-of-type(1) {
    transform: translateY(-10px);
  }
  .header_hamburger_line:nth-of-type(3) {
    transform: translateY(10px);
  }
  .header_hamburger[aria-expanded="true"] .header_hamburger_line:nth-of-type(1) {
    transform: rotate(90deg) translateY(-10px);
  }
  .header_hamburger[aria-expanded="true"] .header_hamburger_line:nth-of-type(2) {
    transform: rotate(90deg);
  }
  .header_hamburger[aria-expanded="true"] .header_hamburger_line:nth-of-type(3) {
    transform: rotate(90deg) translateY(10px);
  }
}

/* ===============================
header_menu / メニューの中身
=============================== */

/* PC調整 ------------------ */
@media (min-width:769px), print {
  .header_nav_language {
    display: none;
  }
  .header_nav_lists {
    display: flex;
    justify-content: center;
    align-items: stretch;
    max-width: 1020px;
    margin: 0 auto;
  }
  .header_nav_lists li {
    flex: 1;
  }
  .header_nav_lists a {
    display: grid;
    place-content: center;
    width: 100%;
    height: 100%;
    position: relative;
    padding: 7px 10px 7px calc(10px + 0.05em);
    text-align: center;
  }
  .header_nav_lists a[aria-current="page"] {
    opacity: 1;
  }
  .header_nav_lists a[aria-current="page"]::after {
    content: "";
    display: block;
    position: absolute;
    inset: auto 0 0 0;
    width: 40%;
    height: 4px;
    margin: 0 auto;
    background-color: var(--color_blue_400);
  }
  .header_nav_lists .menu_list.__sitemap,
  .header_menu_footer {
    display: none;
  }

  /* 英語ページ調整 ------------ */
  .english .header_nav_lists {
    max-width: 1100px;
  }
  .english .header_nav_lists li {
    flex: initial;
  }
  .english .header_nav_lists a {
    padding-block: 7px;
    padding-inline: clamp(7px, calc(7px + 26 * ((100vw - 769px) / 331)), 33px);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .header_menu_inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
  }
  .header_menu_sitename {
    padding: 17px 55px 10px 10px;
  }
  .header_nav {
    flex: 1;
  }
  .header_nav_lists {
    width: max(calc(61.33 * var(--vw1)), 230px);
    margin: 0 auto;
  }
  .header_nav_lists li {
    border-bottom: 1px solid var(--color_blue_400);
  }
  .header_nav_lists a {
    display: block;
    padding: 8px 15px;
    font-size: calc(15 / 16 * 1rem);
    line-height: 1.4;
    font-weight: 500;
  }
  .header_menu_footer {
    height: auto;
    margin-top: 40px;
  }
  .header_nav_language {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .header_nav_language li + li {
    margin-left: 10px;
  }
  .header_nav_language a {
    display: grid;
    place-content: center;
    min-width: 94px;
    padding: 7px 5px 5px;
    border-radius: 10px 10px 0 0;
    overflow: hidden;
    background: url(../../img/common/language_bg.svg) no-repeat center / cover;
    color: #fff;
    font-size: calc(12 / 16 * 1rem);
    letter-spacing: 0.07em;
  }
  .header_menu_copy {
    padding: 2px 10px;
    background-color: var(--color_blue_400);
  }
  .header_menu_copy small {
    display: block;
    margin-left: -0.07em;
    text-align: center;
    color: #fff;
    font-size: calc(10 / 16 * 1rem);
    letter-spacing: 0.07em;
  }
}

/* 英語ページ調整 ------------ */
@media screen and (max-width:768px) {
  .english .header_menu_sitename {
    padding-top: 24px;
    padding-bottom: 9px;
  }
}

/* ===============================
ly_main
=============================== */
.ly_main {
  flex: 1;
  overflow: hidden;
}
.ly_main:not(.__initial) {
  position: relative;
  z-index: 2;
  padding: 31px 0 95px;
}
.ly_main:not(.__initial)::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 100%;
  min-width: 1600px;
  height: 344px;
  background: url(../../img/common/main_bg_pc.svg) no-repeat 0 0 / 100% 100%;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .ly_main:not(.__initial) {
    padding: 22px 0 50px;
  }
  .ly_main:not(.__initial)::before {
    width: 768px;
    height: 270px;
    min-width: initial;
    background-image: url(../../img/common/main_bg_sp.svg);
  }
}

/* ===============================
ly_footer
=============================== */
.ly_footer {
  border-top: 9px solid #989898;
  background-color: var(--color_base);
  color: #fff;
}
.footer_inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 13px 150px 28px 20px;
}
.footer_text {
  display: flex;
  align-items: center;
  margin-bottom: 7px;
}
.footer_logo {
  display: block;
  margin-right: 11px;
}
.footer_text_small {
  display: block;
  padding-top: 6px;
  font-size: calc(13 / 16 * 1rem);
  line-height: 1.46;
  letter-spacing: 0.1em;
}
.footer_title {
  font-size: calc(25 / 16 * 1rem);
  letter-spacing: 0.1em;
  line-height: 1.38;
}
.footer_address {
  line-height: 1.38;
}
.footer_contact {
  line-height: 1.38;
}
.footer_contact a::before {
  content: "";
  display: inline-block;
  position: relative;
  top: -.08em;
  width: calc(18 / 16 * 1rem);
  height: calc(8 / 16 * 1rem);
  margin-right: 0.35em;
  background: url(../../img/common/icon_contact_arrow.svg) no-repeat 0 0 / contain;
}
.footer_sitemap {
  position: absolute;
  top: 38px;
  right: 60px;
}
.footer_copy small {
  position: absolute;
  bottom: 26px;
  right: 20px;
  font-size: calc(15 / 16 * 1rem);
  letter-spacing: 0.05em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .footer_inner {
    position: relative;
    margin: 0 auto;
    padding: 21px 10px 28px;
    text-align: center;
  }
  .footer_text {
    display: block;
    margin-bottom: 6px;
  }
  .footer_logo {
    display: block;
    width: 102px;
    margin: 0 auto 16px;
  }
  .footer_text_small {
    display: block;
    padding: 0 0 0 0.1em;
    font-size: calc(13 / 16 * 1rem);
    line-height: 1.46;
    letter-spacing: 0.1em;
  }
  .footer_title {
    margin-bottom: 21px;
    font-size: calc(26 / 16 * 1rem);
  }
  .footer_address {
    font-size: calc(16 / 16 * 1rem);
  }
  .footer_address_zip,
  .footer_address_body {
    display: block;
  }
  .footer_contact {
    line-height: 1.38;
  }
  .footer_sitemap {
    position: static;
    margin-top: 1.54em;
  }
  .footer_copy small {
    position: static;
    display: block;
    margin-top: 1.54rem;
    font-size: calc(14 / 16 * 1rem);
  }
}

/* 英語ページ調整 ------------ */
@media screen and (max-width:768px) {
  .english .footer_inner {
    text-align: left;
  }
  .english .footer_sitemap,
  .english .footer_copy {
    text-align: center;
  }
}

/* ===============================
Module / Block
接頭辞： md_
全ページで利用できる汎用モジュールです。
=============================== */

/* ===============================
md_skiplink
=============================== */
.md_skiplink {
  display: block;
  position: absolute;
  z-index: 9999;
  width: 100%;
  transform: translateY(-100%);
  background-color: #eaedea;
  padding: 15px 20px;
  text-align: center;
}
.md_skiplink:focus {
  transform: translateY(0);
  outline-offset: -2px;
}

/* ===============================
md_hier_nav_wrap
=============================== */
.md_hier_nav_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.md_hier_nav_lists {
  display: flex;
}
.md_hier_nav_lists li {
  position: relative;
  padding: 8px 0;
  font-size: calc(13 / 16 * 1rem);
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.md_hier_nav_lists li:not([aria-current="page"]) {
  margin-right: 1.3em;
}
.md_hier_nav_lists li:not([aria-current="page"])::before {
  content: "";
  display: block;
  position: absolute;
  right: -.86em;
  top: calc(7px + .3em);
  width: calc(6 / 16 * 1rem);
  height: calc(13 / 16 * 1rem);
  background: url(../../img/common/breadcrumbs_arrow.svg) no-repeat 0 0 / contain;
}
.md_hier_nav_lists a {
  display: block;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_hier_nav_wrap {
    display: none;
  }
}

/* ===============================
md_title_page / md_title
=============================== */
.md_title_page {
  position: relative;
  margin-bottom: 50px;
  padding: 37px 0 14px 0.13em;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: calc(25 / 16 * 1rem);
  line-height: 1.55;
  letter-spacing: 0.13em;
  text-align: center;
  color: var(--color_blue_400);
}
.md_title_page::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 80px;
  height: 3px;
  margin: 0 auto;
  background: linear-gradient(to right,
  #0d3556 0%,
  #0d3556 50%,
  #fd7a00 50%,
  #fd7a00 100%
  );
}
.md_title {
  padding-left: 0.13em;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: calc(25 / 16 * 1rem);
  line-height: 1.55;
  letter-spacing: 0.13em;
  text-align: center;
  color: var(--color_blue_400);
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_title_page {
    padding-top: 23px;
    margin-bottom: 30px;
  }
}

/* ===============================
parts
=============================== */
.md_link_back {
  margin-top: 72px;
}
.md_link_back a {
  display: block;
  max-width: calc(150 / 16 * 1rem);
  margin: 0 auto;
  padding: 9px 15px;
  text-align: center;
  letter-spacing: -0.01em;
  border-bottom: 4px solid var(--color_blue_400);
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_link_back {
    margin-top: 40px;
  }
}

/* ===============================
md_contents
=============================== */
.md_contents {
  padding: 0 20px;
}
.md_contents_inner {
  max-width: 800px;
  margin: 0 auto;
  min-height: 300px;
}
.md_contents ul,
.md_contents ol {
  margin: 10px 20px 10px 25px;
}
.md_contents ul li {
  list-style-type: disc;
  margin: 10px 0;
}
.md_contents ol li {
  list-style-type: decimal;
  margin: 10px 0;
}
.md_contents a {
  color: #114b85;
}
.md_contents figure, 
.md_contents picture {
  display: block;
  text-align: center;
  margin: 0 auto;
}
.md_contents figure img, 
.md_contents picture img {
  margin: 15px;
  display: inline;
  border: 5px solid #fff;
}
@media screen and (max-width: 768px) {
.md_contents figure img, 
.md_contents picture img {
      display: block;
      width: 300px;
}
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_contents {
    padding: 0 10px;
  }
}

/* ===============================
md_under_preparation
=============================== */
.md_under_preparation {
  margin-bottom: 120px;
  padding: 0 20px;
}
.md_under_preparation_inner {
  display: grid;
  place-content: center;
  margin: 0 auto;
  max-width: 1000px;
  min-height: 300px;
  text-align: center;
  border-radius: 20px;
  background-color: rgb(255 255 255 / 30%);
  font-size: calc(20 / 16 * 1rem);
  font-weight: 200;
  letter-spacing: 0.1em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_under_preparation {
    margin-bottom: 50px;
    padding: 0 10px 100px;
  }
  .md_under_preparation_inner {
    min-height: 200px;
  }
}

/* ===============================
md_block_wrap
=============================== */
.md_block_wrap {
  max-width: 880px;
  padding: 0 20px;
  margin: 0 auto 100px;
}
.md_block + .md_block {
  margin-top: 3em;
}
.md_block * {
  line-height: 1.75;
}
.md_block a {
  text-decoration: underline;
}
.md_block_title {
  margin-bottom: 1.4em;
  padding: 10px 0 16px;
  border-bottom: 2px solid var(--color_blue_400);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.13em;
  font-size: calc(21 / 16 * 1rem);
  color: var(--color_blue_400);
}
.md_block_title_sub {
  position: relative;
  margin-bottom: 1.4em;
  padding: calc(10 / 16 * 1rem) 0 calc(16 / 16 * 1rem) calc(30 / 16 * 1rem);
  border-bottom: 2px solid var(--color_blue_400);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.13em;
  font-size: calc(21 / 16 * 1rem);
  color: var(--color_blue_400);
}
.md_block_title_sub::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(21 / 16 * 1rem);
  left: 0;
  width: 1rem;
  height: 1rem;
  border-radius: 2px;
  background-color: var(--color_blue_400);
}
.md_block_item + .md_block_item {
  margin-top: 2.4em;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .md_block a:hover {
    text-decoration: none;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_block_wrap {
    margin-bottom: 70px;
  }
  .md_block + .md_block {
    margin-top: 2.4em;
  }
  .md_block_title,
  .md_block_title_sub {
    margin-bottom: 1em;
  }
  .md_block_item + .md_block_item {
    margin-top: 2em;
  }
}

/* ===============================
md_block utility
=============================== */
.md_block .cl {
  display: flow-root;
}
.md_block .fr {
  float: right;
  margin-top: 0.35em;
  margin-left: 1em;
}
.md_block .fl {
  float: left;
  margin-top: 0.35em;
  margin-right: 1em;
}
.md_block .my0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.md_block .my1 {
  margin-top: 1em;
  margin-bottom: 1em;
}
.md_block .my2 {
  margin-top: 2em;
  margin-bottom: 2em;
}
.md_block .mt0 {
  margin-top: 0 !important;
}
.md_block .mt1 {
  margin-top: 1em;
}
.md_block .mt2 {
  margin-top: 2em;
}
.md_block .mb0 {
  margin-bottom: 0 !important;
}
.md_block .mb1 {
  margin-bottom: 1em;
}
.md_block .mb2 {
  margin-bottom: 2em;
}
.md_block .ind {
  text-indent: 1em;
}
.md_block .tac {
  text-align: center !important;
}
.md_block .tar {
  text-align: right !important;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_block .fr,
  .md_block .fl  {
    float: none;
    margin: 0 0 0.7em 0;
  }
  .md_block .tac {
    text-align: left !important;
  }
  .md_block .tar {
    text-align: left !important;
  }
}

/* ===============================
helper
全ページで利用できる補助的なスタイルの定義です。
=============================== */
.visually_hidden {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* PC調整 ------------------ */
@media (min-width:769px), print {
  .sp_br,
  .sp_only {
    display: none !important;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .pc_br,
  .pc_only {
    display: none !important;
  }
  .sp_noSpace {
    display: none;
  }
  .sp_brNoSpace {
    display: block;
    text-indent: -1em;
  }
  .sp_nowrap {
    white-space: nowrap;
  }
  .sp_ib {
    display: inline-block;
  }
}

/* ===============================
print
印刷用CSSです。
=============================== */
@page {
  size: A4 portrait;
  margin: 10mm;
}
@media print {
  body {
    position: relative;
    width: 1280px !important;
    page-break-after: always;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    zoom: 0.617;
  }
  .ly_wrapper {
    display: block;
    min-width: initial;
    min-height: initial;
  }
  .header_inner {
    position: static;
  }
  .md_modal_contents {
    top: 0;
    min-height: 100%;
    z-index: 10;
  }
}