/*===========================================================================
module
共通利用する最小パーツ用CSS
接頭辞【.m-】

【予測変換用 _base.css記述】
:root {
  --font-color-base: #000;
  --font-family-base: "Noto Sans JP", sans-serif;
  --back-color-base: #fff;
  --design-size-pc: 1400;
  --design-size-sp: 750;
}
===========================================================================*/
.m-ttl01 {
  display: flex;
  flex-direction: column;
  gap: 8rem;
}
.m-ttl01__en {
  color: var(--font-color-sub);
  font-family: var(--font-family-red-hat-text);
  font-size: 20rem;
  line-height: 1.45;
  letter-spacing: 0.08em;
}
.m-ttl01__jp {
  font-family: var(--font-family-serif);
  font-size: 32rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.m-ttl01__jp.--text-lg {
  font-size: 48rem;
  font-weight: 400;
}
.m-ttl01__jp.--text-sm {
  font-size: 24rem;
  letter-spacing: normal;
}
.m-ttl01.--color-wt > * {
  color: #fff;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-ttl01 {
    gap: 2rem;
  }
  .m-ttl01__en {
    font-size: 16rem;
    line-height: 1.44;
  }
  .m-ttl01__jp {
    font-size: 24rem;
  }
  .m-ttl01__jp.--text-lg {
    font-size: 28rem;
  }
  .m-ttl01__jp.--text-sm {
    font-size: 18rem;
  }
}


/* 第2階層 ビジュアル
====================================*/
.m-mv__inr {
  display: block;
  height: auto;
  min-height: 215rem;
  padding: 32rem 0 50rem;
}
.m-mv__ttlWrap > *:not(:first-child) {
  margin-top: 2rem;
}
.m-mv__info {
  margin-top: 16rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-mv__inr {
    min-height: 240rem;
    padding: 64rem 0 48rem;
  }
  .m-mv__ttlWrap > *:not(:first-child) {
    margin-top: 4rem;
  }
  .m-mv__info {
    margin-top: 32rem;
  }
}


/* 第2階層 ビジュアル 通常レイアウト
====================================*/
.m-mv02 {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.m-mv02::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
  width: calc(1348 / 1920 * 100vw);
  aspect-ratio: 1348 / 619;
  background: url(/common/images/mv02_bg.png) no-repeat top right / contain;
}
.m-mv02__inr {
  min-height: 201rem;
  padding: 32rem 0;
}
.m-mv02__ttlWrap > *:not(:first-child) {
  margin-top: 4rem;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-mv02::before {
    top: 129rem;
    width: calc(330 / 375 * 100vw);
    aspect-ratio: 330 / 357;
    background-image: url(/common/images/sp_mv02_bg.png);
  }
  .m-mv02__inr {
    min-height: 217rem;
    padding: 64rem 0 32rem;
  }
}


/* キービジュアル
====================================*/
.m-pageKv {
  margin-bottom: 24rem;
}


/* キービジュアル
====================================*/
.m-tagList {
  display: flex;
  flex-wrap: wrap;
  gap: 8rem;
}
.m-tagList__item {
  padding: 2rem 16rem;
  border-radius: 16rem;
  background-color: #f4f7fb;
  color: var(--font-color-main);
  font-size: 12rem;
  font-weight: 500;
  line-height: 1.5;
}



/* ページャー
====================================*/
.m-bgBlock {
  box-sizing: border-box;
  margin-top: 40rem;
  padding: 30rem 32rem;
  border-radius: 8rem;
  line-height: 1.8;
}
.m-bgBlock:first-child {
  margin-top: 0;
}
.m-bgBlock strong {
  font-weight: bold;
}
.m-bgBlock strong:has( + br) {
  display: inline-block;
  margin-bottom: 4rem;
}
.m-bgBlock .m-txt {
  line-height: inherit;
}
.m-bgBlock > p:not(:first-child) {
  margin-top: 20rem;
}
/* PC
----------------------------------*/
@media screen and (min-width: 769px) {
  .m-bgBlock.--bgc-rd {
    padding-right: 40rem;
    padding-left: 40rem;
  }
  .m-bgBlock.--bgc-gy {
    margin-top: 36rem;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-bgBlock {
    padding: 32rem 20rem;
  }
}


* + p:not([class]):has(.m-txtLink) {
  margin-top: 24rem;
}
.m-txtLink {
  position: relative;
  color: var(--font-color-main);
  font-size: 16rem;
  line-height: 1.375;
}
.m-txtLink::after {
  content: "";
  display: inline-block;
}
.m-txtLink[target="_blank"]::after,
.m-txtLink[href$=".pdf"]::after {
  width: 20rem;
  height: 20rem;
  margin-left: 5rem;
  background: no-repeat center / contain;
  vertical-align: bottom;
  transform: translateY(-1rem);
}
.m-txtLink[target="_blank"]::after {
  background-image: url(/common/images/icn_blank.svg);
}
.m-txtLink[href$=".pdf"]::after {
  background-image: url(/common/images/icn_pdf.svg);
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  * + p:not([class]):has(.m-txtLink) {
    margin-top: 24rem;
  }
  p:not([class]):has(.m-txtLink) + p:not([class]):has(.m-txtLink),
  .m-txt + p:not([class]):has(.m-txtLink) {
    margin-top: 20rem;
  }
}


/* SP
----------------------------------*/
.m-borderBox {
  box-sizing: border-box;
  margin-top: 40rem;
  padding: 24rem 28rem;
  border: 1px solid #c4cedc;
  border-radius: 8rem;
}



/* 下層パーツ
====================================*/
/* 見出し */
.m-ttlLv2 {
  font-size: 32rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
* + .m-ttlLv2 {
  margin-top: 120rem;
}
.m-ttlLv3 {
  position: relative;
  padding-bottom: 24rem;
  font-size: 28rem;
  line-height: 1.8;
}
.m-ttlLv3::after {
  content: " ";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40rem;
  height: 1px;
  background-color: var(--back-color-main);
}
* + .m-ttlLv3 {
  margin-top: 80rem;
}
.m-ttlLv4 {
  font-size: 24rem;
  line-height: 1.7;
}
* + .m-ttlLv4 {
  margin-top: 64rem;
}
.m-ttlLv5 {
  font-size: 20rem;
  font-weight: bold;
  line-height: 1.5;
}
* + .m-ttlLv5 {
  margin-top: 48rem;
}
.m-ttlEn {
  color: var(--font-color-sub);
  font-family: var(--font-family-red-hat-text);
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.44;
  letter-spacing: 0.08em;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-ttlLv2 {
    font-size: 26rem;
    line-height: 1.6;
  }
  * + .m-ttlLv2 {
    margin-top: 100rem;
  }
  .m-ttlLv3 {
    font-size: 24rem;
  }
  .m-ttlLv4 {
    font-size: 22rem;
    line-height: 1.5;
  }
  * + .m-ttlLv5 {
    margin-top: 40rem;
  }
}


/* 本文テキスト */
.m-numTxt {
  display: flex;
  align-items: center;
  gap: 9rem;
  margin-top: 80rem;
  color: var(--font-color-main);
  font-size: 28rem;
  line-height: 1.6;
}
.m-numTxt__num {
  line-height: 2;
}
.m-squareTxt {
  position: relative;
  margin-top: 24rem;
  padding-left: 18rem;
  color: var(--font-color-main);
  font-weight: bold;
  line-height: 2;
}
.m-squareTxt::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 10rem;
  height: 10rem;
  background-color: var(--back-color-main);
  transform: translateY(calc(-50% + 1rem));
}
.m-txt {
  font-size: 16rem;
  line-height: 2;
}
* + .m-txt {
  margin-top: 24rem;
}
.m-txt > * + * {
  margin-top: 16rem;
}
.m-txt strong {
  font-weight: bold;
}
.m-noteTtl {
  color: #ea0000;
  font-size: 16rem;
  font-weight: bold;
  line-height: 1.5;
}
.m-noteTtl + * {
  margin-top: 10rem;
}

.m-note {
  margin-top: 16rem;
  counter-reset: num;
}
.m-note > li {
  position: relative;
  padding-left: 16rem;
  font-size: 12rem;
  line-height: 2;
}
.m-note > li::before {
  position: absolute;
  top: 0;
  left: 0;
}
ul.m-note > li::before {
  content: "※";
}
ol.m-note > li::before {
  content: "*" counter(num) ".";
  counter-increment: num;
}
.m-cap {
  margin-top: 12rem;
  line-height: 1.5;
  text-align: right;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-numTxt {
    gap: 12rem;
    font-size: 24rem;
  }
  .m-txt + .m-txt {
    margin-top: 20rem;
  }
  .m-noteTtl {
    font-size: 18rem;
  }
  .m-noteTtl + * {
    margin-top: 8rem;
  }
}

/* リスト */
.m-list,
.m-numList {
  margin-top: 24rem;
}
.m-list > li,
.m-numList > li {
  position: relative;
  line-height: 1.8;
}
.m-list > li:not(:first-child),
.m-numList > li:not(:first-child) {
  margin-top: 8rem;
}
.m-list > li,
.m-numList > li {
  padding-left: 22rem;
}
.m-list > li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--font-color-main);
}
.m-numList {
  counter-reset: number;
}
.m-numList > li::before {
  content: counter(number) ".";
  position: absolute;
  top: 0;
  left: 0;
  counter-increment: number 1;
}
.m-numList .m-numList {
  margin-top: 8rem;
  counter-reset: num;
}
.m-numList .m-numList > li {
  padding-left: 26rem;
}
.m-numList .m-numList > li:before {
  content: "(" counter(num) ") ";
  counter-increment: num;
}
.m-numList .m-list {
  margin-top: 4rem;
}

.m-linkList__item:not(:first-child) {
  margin-top: 4rem;
}
.m-linkList__inr {
  display: inline-block;
  width: 100%;
  padding: 20rem;
  border-radius: 4rem;
  background-color: var(--back-color-base);
  line-height: 2;
  text-decoration: none;
  text-underline-offset: 2px;
}
.m-linkList__inr::after {
  content: "";
  display: inline-block;
  margin-left: 8rem;
  background: no-repeat center / contain;
  vertical-align: text-bottom;
}
.m-linkList__inr[target="_blank"]::after {
  width: 20rem;
  height: 20rem;
  background-image: url(/common/images/icn_blank.svg);
}
.m-linkList__inr[href$=".pdf"]::after {
  width: 24rem;
  height: 24rem;
  background-image: url(/common/images/icn_pdf.svg);
}
@media (any-hover: hover) {
  .m-linkList__inr:hover {
    text-decoration: underline;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-list,
  .m-numList {
    margin-top: 20rem;
  }

  .m-linkList__inr {
    display: block;
    padding: 16rem 20rem;
  }
  .m-linkList__inr::after {
    margin-left: 4rem;
  }
}

/* 画像 */
.m-img {
  margin-top: 24rem;
}
.m-img.--img-over {
  margin-top: 80rem;
  margin-inline: var(--negative-margin);
}
.m-img.--img-over img {
  width: 100%;
}
.m-img.--img-auto img {
  width: auto;
  max-width: 100%;
}
.m-spSlideTxt {
  display: none;
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-img.--img-over {
    margin-top: 64rem;
  }
  .m-spSlideTxt {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 8rem;
    margin-top: 24rem;
    padding: 6rem 10rem 7rem;
    border: 1px solid var(--back-color-main);
    border-radius: 100rem;
    background-color: #fff;
    color: var(--font-color-main);
    font-size: 15rem;
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
  }
  .m-spSlideTxt::before {
    content: "";
    display: block;
    width: 36rem;
    height: 25rem;
    background: url(/common/images/icn_sp_slide.svg) no-repeat center / contain;
  }
}


/* ボタン */
.m-btn {
  margin-top: 56rem;
}
.m-btn > * {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 180rem;
  padding: 7rem 35rem;
  border: 1px solid var(--back-color-main);
  border-radius: 4rem;
  background-color: var(--back-color-main);
  color: #fff;
  font-size: 14rem;
  font-weight: bold;
  line-height: 2;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s linear;
  transition-property: background-color, color;
}
.m-btn > *::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 13rem;
  width: 18rem;
  height: 18rem;
  background-color: #fff;
  mask: url(/common/images/icn_arw_right_wt.svg) no-repeat center / contain;
  transform: translateY(-50%);
  transition: background-color 0.3s linear;
  -webkit-mask: url(/common/images/icn_arw_right_wt.svg) no-repeat center / contain;
}
.m-btn a[target="_blank"]::after {
  mask-image: url(/common/images/icn_blank.svg);
  -webkit-mask-image: url(/common/images/icn_blank.svg);
}
.m-btn a[href$=".pdf"]::after {
  width: 24rem;
  height: 24rem;
  mask-image: url(/common/images/icn_pdf.svg);
  -webkit-mask-image: url(/common/images/icn_pdf.svg);
}

/* サイズ違い */
.m-btn.--size-l > * {
  justify-content: start;
  min-width: 440rem;
  min-height: 61rem;
  padding: 16rem 50rem 16rem 31rem;
  font-weight: 500;
  line-height: 1.8;
  text-align: left;
}
.m-btn.--size-l > *::after {
  right: 32rem;
}
.m-btn.--size-l > a[href$=".pdf"]::after {
  right: 26rem;
}

.m-btn.--size-s {
  margin-top: 24rem;
}
.m-btn.--size-s > * {
  min-width: 152rem;
  min-height: 40rem;
  padding: 5rem 32rem;
}
.m-btn.--size-s > *::after {
  right: 16rem;
}

/* ボタン 背景色 */
.m-btn.--bgc-wt > * {
  border-color: #fff;
  background-color: #fff;
  color: var(--font-color-main);
  font-weight: normal;
}
.m-btn.--bgc-wt > *::after {
  background-color: var(--back-color-main);
}

/* ボタン アイコン */
.m-btn.--icn-bottom > *::after {
  mask-image: url(/common/images/icn_arw_right_bl.svg);
  transform: translateY(-50%) rotate(90deg);
  -webkit-mask-image: url(/common/images/icn_arw_right_bl.svg);
}

/* 配置 */
.m-btnLine {
  display: flex;
  flex-wrap: wrap;
  gap: 24rem;
  margin-top: 56rem;
}
.m-btnLine > * {
  margin-top: 0;
}
@media (any-hover: hover) {
  .m-btn > *:hover,
  a:hover .m-btn > * {
    background-color: #fff;
    color: var(--font-color-main);
  }
  .m-btn > *:hover::after,
  a:hover .m-btn > *::after {
    background-color: var(--back-color-main);
  }

  .m-btn.--bgc-wt > *:hover,
  a:hover .m-btn.--bgc-wt > * {
    background-color: var(--back-color-main);
    color: #fff;
  }
  .m-btn.--bgc-wt > *:hover::after,
  a:hover .m-btn.--bgc-wt > *::after {
    background-color: #fff;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-btn > *::after {
    right: 16rem;
  }
  .m-btn.--size-l > * {
    min-width: 100%;
    padding: 16rem 45rem 16rem 23rem;
  }
  .m-btn.--size-l > *::after {
    right: 19rem;
  }
  .m-btn.--size-l > a[href$=".pdf"]::after {
    right: 13rem;
  }

  .m-btnLine {
    flex-direction: column;
    gap: 16rem;
  }
}


.m-label {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
}
.m-label__item {
  box-sizing: border-box;
  padding: 4rem 15rem;
  border: 1px solid #309bde;
  border-radius: 45rem;
  color: #309bde;
  font-size: 12rem;
}


/* ページ内リンク */
.m-anchorList {
  display: flex;
  flex-wrap: wrap;
  gap: 8rem 0;
  margin: 40rem -24rem 0;
}
.m-anchorList > li {
  position: relative;
}
.m-anchorList > li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 1px;
  height: 16rem;
  background-color: #c4cedc;
  transform: translateY(-50%);
}
.m-anchorList a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0 8rem;
  padding: 0 24rem;
  line-height: 1.5;
  text-decoration: none;
  text-underline-offset: 2px;
}
.m-anchorList a::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 24rem;
  height: 24rem;
  background: url(/common/images/icn_min_arw.svg) no-repeat center / contain;
  transform: rotate(90deg);
}
@media (any-hover: hover) {
  .m-anchorList a:hover {
    text-decoration: underline;
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-anchorList {
    gap: 16rem 0;
    margin: 64rem -20rem 0;
  }
  .m-anchorList > li {
    width: 50%;
  }
  .m-anchorList > li:nth-child(even)::after {
    content: none;
    display: none;
  }
  .m-anchorList a {
    justify-content: space-between;
    padding: 0 20rem;
  }
}

/* カテゴリ絞り込み */
.m-filter {
  margin-top: 64rem;
}
.m-filter__list {
  display: flex;
  align-items: center;
  gap: 24rem;
}
.m-filter__btn {
  position: relative;
  display: block;
  cursor: pointer;
}
.m-filter__txt {
  position: relative;
  display: inline-block;
  padding-bottom: 8rem;
  font-size: 15rem;
  line-height: 1.5;
  letter-spacing: 0.02em;
  transition: color 0.3s linear;
}
.m-filter__txt::before {
  content: " ";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: transparent;
  transition: background-color 0.3s linear;
}
.m-filter__item input {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  margin: 0;
}
.m-filter__item input:checked + .m-filter__txt {
  color: var(--font-color-main);
  font-weight: 500;
}
.m-filter__item input:checked + .m-filter__txt::before {
  background-color: var(--back-color-main);
}
@media (any-hover: hover) {
  .m-filter__txt:hover {
    color: var(--font-color-main);
  }
}
/* SP
----------------------------------*/
@media screen and (max-width: 768px) {
  .m-filter {
    overflow-x: auto;
    min-width: 0;
    max-width: 100%;
  }
  .m-filter__list {
    gap: 0 16rem;
  }
  .m-filter__btn {
    position: relative;
    display: block;
    cursor: pointer;
  }
  .m-filter__txt {
    font-size: 14rem;
    white-space: nowrap;
  }
}
