@charset "utf-8";
/* ==================================================
汎用
================================================== */
/* ----- リンクアイコン ----- */
.linkIcon {
  --linkIcon: url(/common/images/icon/icon_link.svg);
  --linkIconColor: var(--mainColor);
  --linkIconWidth: .9em;
  --linkIconHeight: .9em;
  width: var(--linkIconWidth);
  height: var(--linkIconHeight);
  flex-shrink: 0;
  display: inline-block;
  position: relative;
  top: .1em;
  margin: 0 8px;
}
.linkIcon::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  background: var(--linkIconColor);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-image: var(--linkIcon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: var(--linkIcon);
}
/* - オプション - */
/* 色 */
.linkIcon-orange { --linkIconColor: var(--subColor); }
.linkIcon-red { --linkIconColor: var(--colorRed); }
/* アイコン種類 */
.linkIcon-blank { --linkIcon: url(/common/images/icon/icon_blank.svg); }
.linkIcon-down { --linkIcon: url(/common/images/icon/icon_down.svg); }
.linkIcon-download { --linkIcon: url(/common/images/icon/icon_download.svg); }
/* PDFはサイズ、仕様調整 */
.linkIcon-pdf {
  --linkIcon: url(/common/images/icon/icon_pdf.svg);
  width: 37px;
  height: 18px;
}

/* ==================================================
heading
================================================== */

/* --------------------------------------------------
h1
-------------------------------------------------- */
.heading1 {
  position: relative;
}
.heading1_inner {
}
.heading1_text {
  display: flex;
  flex-direction: column;
  padding: 16px;
  color: #CE2D26;
  border-bottom: 1px solid #CE2D26;
}
.heading1_text_main {
  font-size: 24px;
  line-height: 1.2;
}
.heading1_text_sub {
  font-size: 14px;
}
.heading1_lead_inner {
  width: 100%;
  margin: auto;
  padding: 16px var(--contentPaddingX);
}

/* type-img */

/* type-btn */

.heading1.type-img, .heading1.type-btn {
  margin-top: 2.67vw;
}

.heading1.type-img .heading1_inner, .heading1.type-btn .heading1_inner {
  padding: 32vw 0 16px;
  background: url(/common/images/h1_mv_bg.jpg) repeat 0 0 / 8px 8px;
}

.heading1.type-img .heading1_text, .heading1.type-btn .heading1_text {
  width: 85.334%;
  min-width: 320px;
  position: relative;
  background: #fff;
  z-index: 1;
}

.heading1.type-img .heading1_img, .heading1.type-btn .heading1_img {
  width: 100%;
  height: 42.67vw;
  padding: 0 2.67vw 0 5.34vw;
  position: absolute;
  top: -2.67vw;
  right: 0;
  z-index: 0;
  object-fit: cover;
  font-family: 'object-fit: cover;';
}

.heading1.type-btn {
  background-color: #f2f2f2;
}

.heading1.type-btn .heading1_inner {
  padding-bottom: 32px;
}

.heading1_btns {
  margin: -16px 10px 16px;
  padding: 16px;
  background-color: #fff;
  position: relative;
}
.heading1_btns_title {
  font-size: 14px;
  text-align: center;
}
.heading1_btns .nmlBtn {
  margin-top: 8px;
}


/* type-text */

.heading1.type-text .heading1_inner {
  background: #FAFAFA url(/common/images/h1_bg.png) no-repeat right bottom /95% auto;
}

.heading1.type-text .heading1_text {
  padding: 24px 16px;
}

/* --------------------------------------------------
h2
-------------------------------------------------- */

.heading2 {
  width: calc(100% - 20px);
  margin: 40px auto 32px;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: .05em;
}

.heading2:last-child {
  margin: 0;
}

.heading2::after {
  content: "";
  display: block;
  border-top: 1px solid #ccc;
  width: 100%;
}

.heading2_text {
  display: inline-block;
  border-bottom: 1px solid #CE2D26;
  margin-bottom: -1px;
  padding-bottom: 16px;
}

.heading2_text .text-sub {
  font-size: 14px;
}

.heading2+.innerWrap {
  padding-top: 0;
}

/* type-bdrT */

.heading2.type-bdrT {
  position: relative;
  width: 100%;
  margin-top: 0;
}

.heading2.type-bdrT::after {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}

.heading2.type-bdrT .heading2_text {
  border-bottom: none;
  border-top: 1px solid #CE2D26;
  padding-bottom: 0;
  padding-top: 20px;
  position: relative;
  z-index: 1;
}

/* heading2_wrap（各トップページ用） */

.heading2_wrap {
  margin: 33px 0;
  text-align: center;
}

.heading2_wrap:first-child {
  margin-top: 0;
}

.heading2_wrap:last-child {
  margin-bottom: 0;
}

.heading2_sub {
  position: relative;
  color: #ce2d26;
  font-family: Nunito, sans-serif;
  font-size: 14px;
}

.heading2_wrap .heading2 {
  width: auto;
  margin: 0;
}

.heading2_wrap .heading2::after {
  display: none;
}

/* --------------------------------------------------
h3
-------------------------------------------------- */

.heading3 {
  position: relative;
  border-bottom: 1px solid #ccc;
  margin: 40px 0 32px;
  padding-bottom: 16px;
  font-size: 16px;
  line-height: 1.4;
}

.heading3:first-child {
  margin-top: 0;
}

.heading3:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  display: block;
  width: 40px;
  height: 1px;
  background: #01693E;
}

/* --------------------------------------------------
h4
-------------------------------------------------- */

.heading4 {
  position: relative;
  margin: 32px auto 28px;
  padding-bottom: 8px;
  font-size: 15px;
  line-height: 1.4;
}

.heading4:first-child {
  margin-top: 0;
}

.heading4:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 24px;
  height: 1px;
  background: #01693E;
}

/* --------------------------------------------------
h5
-------------------------------------------------- */

.heading5 {
  position: relative;
  margin: 28px auto 24px;
  padding-bottom: 8px;
  font-size: 14px;
  line-height: 1.4;
}

.heading5:first-child {
  margin-top: 0;
}

.heading5:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 16px;
  height: 1px;
  background: #ccc;
}

/* --------------------------------------------------
numIcon
-------------------------------------------------- */

.numIcon {
  width: 48px;
  line-height: 1;
  text-align: center;
}

.numIcon_text {
  display: inline-block;
  vertical-align: bottom;
  border: 2px solid #CE2D26;
  border-radius: 4px;
  padding: 2px 2px 0;
  font-family: Nunito, sans-serif;
  font-weight: 700;
  font-size: 10px;
  transform: scale(.8);
  color: #CE2D26;
  position: relative;
}

.numIcon_text:before {
  content: "";
  position: absolute;
  bottom: -7px;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top: 4px solid #FCE900;
  z-index: 2;
}

.numIcon_text:after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top: 4px solid #CE2D26;
  z-index: 1;
}

.numIcon_text+.numIcon_no {
  margin-top: -10px;
  padding-top: 2px;
}

.numIcon_no {
  display: block;
  width: 48px;
  height: 48px;
  font-family: Roboto, sans-serif;
  font-weight: 400;
  font-size: 26px;
  line-height: 48px;
  color: #CE2D26;
  background: #FCE900;
  border-radius: 50%;
}

/* --------------------------------------------------
triLabel
-------------------------------------------------- */

.triLabel {
  padding: 8px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  color: #fff;
  text-align: center;
}

.triLabel:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 74px 74px 0 0;
  border-color: #CE2D26 transparent transparent transparent;
}

.triLabel_text {
  display: block;
  position: relative;
  z-index: 1;
  font-family: Nunito, sans-serif;
  font-weight: 700;
  font-size: 8px;
  line-height: 1;
}

.triLabel_no {
  display: block;
  position: relative;
  z-index: 1;
  margin-left: -4px;
  font-family: Roboto, sans-serif;
  font-size: 26px;
  line-height: 1;
}

/* --------------------------------------------------
headingSp
-------------------------------------------------- */

.headingSp {
  display: flex;
  margin: 28px auto 24px;
}

.headingSp:first-child {
  margin-top: 0;
}

.headingSp_text .text-main {
  display: block;
  font-size: 16px;
  font-weight: 600;
}

.headingSp_text .text-sub {
  display: block;
  font-size: 14px;
  margin-top: 8px;
}

/* type-vertical */

.headingSp.type-vertical {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.headingSp.type-vertical .numIcon {
  margin-bottom: 12px;
}

/* type-horizontal */

.headingSp.type-horizontal {
  align-items: center;
}

.headingSp.type-horizontal .numIcon {
  margin-right: 12px;
}
/* ==================================================
List
================================================== */

/* --------------------------------------------------
cirList
-------------------------------------------------- */

.cirList {
  margin-top: 20px;
}

.cirList:first-child {
  margin-top: 0;
}

li>.cirList {
  margin-top: 8px;
}

.cirList>li {
  position: relative;
  margin-top: 8px;
  padding-left: .8em;
  line-height: 1.5;
}

.cirList>li:first-child {
  margin-top: 0;
}

.cirList>li:before {
  position: absolute;
  left: 0;
  top: .5em;
  content: "";
  display: inline-block;
  width: .5em;
  height: .5em;
  vertical-align: bottom;
  border-radius: 50%;
  background: #000;
}

.cirList.color-green>li:before {
  background: #079B5E;
}

.cirList.color-black>li:before {
  background: #000;
}

.cirList.color-red>li:before {
  background: #CE2D26;
}

.cirList>li.fcRed:before {
  background: #CE2D26;
}

/* --------------------------------------------------
checkList
-------------------------------------------------- */

.checkList {
  margin-top: 20px;
}

.checkList:first-child {
  margin-top: 0;
}

li>.checkList {
  margin-top: 8px;
}

.checkList>li {
  position: relative;
  margin-top: 8px;
  padding-left: 1.3em;
  line-height: 1.5;
}

.checkList>li:first-child {
  margin-top: 0;
}

.checkList>li:before {
  position: absolute;
  left: 0;
  top: 4px;
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: middle;
  background: url(/common/images/icon_check.svg) no-repeat center center;
  background-size: 1em 1em;
}

/* --------------------------------------------------
numList
-------------------------------------------------- */

.numList {
  margin-top: 20px;
  padding-left: 2em;
}

.numList:first-child {
  margin-top: 0;
}

li>.numList {
  margin-top: 8px;
}

.numList>li {
  position: relative;
  margin-top: 8px;
  line-height: 1.5;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: num1;
}

.numList>li:first-child {
  margin-top: 0;
}

.numList>li:before {
  position: absolute;
  left: -2em;
  top: 0;
  font-weight: 600;
  color: #079B5E;
  display: marker;
  content: counter(num1) ".";
}

/* --------------------------------------------------
numList2
-------------------------------------------------- */

.numList2 {
  margin-top: 20px;
  padding-left: 2.5em;
}

.numList2:first-child {
  margin-top: 0;
}

li>.numList2 {
  margin-top: 8px;
}

.numList2>li {
  position: relative;
  margin-top: 8px;
  line-height: 1.5;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: num2;
}

.numList2>li:first-child {
  margin-top: 0;
}

.numList2>li:before {
  position: absolute;
  left: -2.5em;
  top: 0;
  font-weight: 600;
  color: #079B5E;
  display: marker;
  content: "("counter(num2)")";
  letter-spacing: -.01em;
}

/* --------------------------------------------------
docNumList
-------------------------------------------------- */

.docNumList {
  margin-top: 20px;
  padding-left: 2.3em;
}

.docNumList:first-child {
  margin-top: 0;
}

li>.docNumList {
  margin-top: 8px;
}

.docNumList>li {
  position: relative;
  margin-top: 8px;
  line-height: 1.5;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: docNum;
}

.docNumList>li:first-child {
  margin-top: 0;
}

.docNumList>li:before {
  position: absolute;
  left: -2.3em;
  top: 0;
  display: marker;
  content: "("counter(docNum)")";
  letter-spacing: -.01em;
}

/* --------------------------------------------------
docNumList2
-------------------------------------------------- */

.docNumList2 {
  margin-top: 20px;
  padding-left: 2.3em;
}

.docNumList2:first-child {
  margin-top: 0;
}

li>.docNumList2 {
  margin-top: 8px;
}

.docNumList2>li {
  position: relative;
  margin-top: 8px;
  line-height: 1.5;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: docNum2;
}

.docNumList2>li:first-child {
  margin-top: 0;
}

.docNumList2>li:before {
  position: absolute;
  left: -2.3em;
  top: 0;
  display: marker;
  content: "["counter(docNum2)"]";
  letter-spacing: -.01em;
}

/* --------------------------------------------------
docNumList3
-------------------------------------------------- */

.docNumList3 {
  margin-top: 20px;
  padding-left: 2.3em;
}

.docNumList3:first-child {
  margin-top: 0;
}

li>.docNumList3 {
  margin-top: 8px;
}

.docNumList3>li {
  position: relative;
  margin-top: 8px;
  line-height: 1.5;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: docNum3;
}

.docNumList3>li:first-child {
  margin-top: 0;
}

.docNumList3>li:before {
  position: absolute;
  left: -2.3em;
  top: 0;
  display: marker;
  content: "["counter(docNum3, upper-alpha)"]";
  letter-spacing: -.01em;
}

/* --------------------------------------------------
noteList
-------------------------------------------------- */

.noteList {
  margin-top: 20px;
}

.noteList:first-child {
  margin-top: 0;
}

li>.noteList {
  margin-top: 8px;
}

.noteList>li {
  position: relative;
  margin-top: 4px;
  padding-left: 1.5em;
  font-size: 12px;
}

.noteList>li:first-child {
  margin-top: 0;
}

.noteList>li:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "\203B";
  display: block;
}

/* --------------------------------------------------
noteNumList
-------------------------------------------------- */

.noteNumList {
  margin-top: 20px;
}

.noteNumList:first-child {
  margin-top: 0;
}

li>.noteNumList {
  margin-top: 8px;
}

.noteNumList>li {
  position: relative;
  margin-top: 10px;
  padding-left: 2.5em;
  font-size: 14px;
  list-style-type: none;
  list-style-position: inside;
  counter-increment: cnt2;
}

.noteNumList>li:before {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  content: "\203B" counter(cnt2);
}

/* ==================================================
Accordion
================================================== */

/* --------------------------------------------------
通常
-------------------------------------------------- */
/* ----- アコーディオン（デフォルト） ----- */
.acd {
  --acdIconColor: #0AA365;
  --acdIconSize: 18px;
  --acdIconRotate: rotate(-90deg);
  border: 1px solid #0AA365;
  border-radius: 16px;
  margin-top: 40px;
  overflow: hidden;
}
.acd:first-child { margin-top: 0; }
.acd + .acd { margin-top: 32px; }
/* - ボタン - */
.acd_btn {
  width: 100%;
  display: flex;
  position: relative;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.25;
  background-color: #fff;
  padding: 16px 20px;
  transition:
    color .4s ease,
    background-color .4s ease,
    opacity .4s ease;
}
.acd_btn_inner {
  width: 100%;
  display: flex;
  gap: 8px;
  align-items: center;
  position: relative;
  padding-right: var(--acdIconSize);
}
div.acd_btn > .acd_btn_inner { padding-right: 0; }
.acd_btn_sub {
  font-size: 20px;
}
.acd_btn_icon {
  width: var(--acdIconSize);
  height: var(--acdIconSize);
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
}
.acd_btn_icon::before,
.acd_btn_icon::after {
  content: '';
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background: var(--acdIconColor);
  margin: auto;
  transition:
    background-color .4s ease,
    transform .4s ease;
}
.acd_btn_icon::before { transform: var(--acdIconRotate); }
/* - コンテンツ - */
.acd_box {
  display: none;
  position: relative;
  background: #fff;
  border-top: 1px solid #0AA365;
  padding: 12px;
}
.acd_box_inner {
  width: 100%;
}
.acd_box_inner > .faqIcon-a {
  position: absolute;
}
.acd_box_inner2 {
  margin-top: 24px;
}
.acd_box_main {
  width: 100%;
}
.faqIcon + .acd_box_main:has(> .nmlText:only-child) {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.faqIcon-a + .acd_box_main {
  min-height: 34px;
  padding-left: 42px;
}
.acd_box.wideBox .faqIcon-a + .acd_box_main,
.acd_box.pc_wideBox .faqIcon-a + .acd_box_main {
  padding-left: 0;
  padding-top: 38px;
}
/* --- 開閉 --- */
.acd[open] { --acdIconRotate: rotate(0); }
/* - パターン2 - */
.acd-type2 {
  --acdIconColor: #fff;
  border: none;
  border-radius: 0;
}
.acd-type2 .acd_btn {
  width: 100%;
  min-height: 68px;
  color: #fff;
  font-size: 18px;
  text-align: center;
  background-color: #ccc;
  border-radius: 12px;
  margin: auto;
}
.acd-type2 .acd_btn_inner {
  justify-content: center;
  padding: 0 24px;
}
.acd-type2 .acd_box {
  background: none;
  border-top: none;
  padding: 48px 0 0;
}

/* ==================================================
テーブル
================================================== */
.nmlTable {
  --tableDiplay: initial;
  --tableBorderTop: initial;
  --paddingY: 12px;
  --paddingX: 8px;
  --defFontSize: 14px;
  --largeFontSize: 16px;
  --smallFontSize: 12px;
  width: 100%;
  table-layout: fixed;
  display: var(--tableDiplay, table);
  font-size: var(--defFontSize);
  margin-top: 20px;
}
.nmlTable:first-child { margin-top: 0; }
.nmlTable caption {
  font-size: var(--largeFontSize);
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 12px;
}
.nmlTable caption img {
  vertical-align: middle;
}
/* - th & td - */
.nmlTable th,
.nmlTable td {
  vertical-align: middle;
  border: 1px solid #ccc;
  padding: var(--paddingY) var(--paddingX);
}
/* - th - */
.nmlTable th {
  color: #fff;
  font-size: var(--largeFontSize);
  font-weight: bold;
  text-align: left;
  background-color: var(--mainColor);
}
.nmlTable th.bgLGray {
  color: var(--defaultColor);
}
/* thead内のth */
.nmlTable thead th {
  height: auto;
  text-align: center;
}
/* thead有り tbody内のth */
.nmlTable thead + tbody > tr > th {
  color: inherit;
  text-align: center;
  background-color: #F2F2F2;
}
/* thead無し tbody内のth */
.nmlTable colgroup + tbody > tr > th {
  color: #fff;
}
/* - td - */
.nmlTable td {
  background: #fff;
}
/* - sp時1カラム - */
.nmlTable.sp_col1 {
  --tableDiplay: block;
  width: 100%;
}
.nmlTable.sp_col1 th + td { border-top: none; }
/* thのテキストを左右中央 */
.nmlTable.taC th { text-align: center; }
/* - 小さいパターン（テーブル内にテーブルがある場合に使用） - */
.nmlTable-small,
.sp_nmlTable-small {
  --defFontSize: 12px;
  --largeFontSize: 14px;
  --smallFontSize: 10px;
  --paddingY: 4px;
  --paddingX: 4px;
}
/* 別色グレーテーブル */
.nmlTable-type2 th {
  background-color: #6E6E6E;
}

/* ==================================================
SP 画像別窓リンク
================================================== */

.imgOpen_wrap {
  display: block;
}

.imgOpen_btnWrap {
  padding: 10px 0;
  text-align: center;
}

.imgOpen_btn {
  display: inline-block;
  width: 260px;
  height: 48px;
  font-size: 14px;
  font-weight: 600;
  color: #000;
  line-height: 48px;
  text-align: center;
  border: 1px solid #707070;
  border-radius: 32px;
  padding-left: 25px;
  background: #fff url(/common/images/icon_loupe.svg) no-repeat 16px center / 24px 24px;
}

/* ==================================================
SP オーバーフロースクロール
================================================== */

.scrollX_wrap {
  position: relative;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 20px;
}

.scrollX_wrap:first-child {
  margin-top: 0;
}

.scrollX_wrap .scrollX {
  width: 600px;
  min-width: 100%;
}

.scrollX_wrap .scrollX_overlay {
  position: absolute;
  left: 0;
  top: 0;
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .7;
}

.scrollX_wrap .scrollX_btn {
  position: absolute;
  left: 50%;
  top: 35%;
  transform: translate(-50%, -50%);
  padding-left: 72px;
}

.scrollX_wrap .scrollX_btn span {
  font-weight: 600;
  font-size: 16px;
  color: #fff;
}

.scrollX_wrap .scrollX_btn:after {
  position: absolute;
  left: 0;
  top: -30px;
  content: '';
  width: 75px;
  height: 82px;
  background: url(/common/images/icon_swipe.svg) no-repeat center center / contain;
  animation-name: swipe;
  animation-duration: 1.2s;
  animation-delay: 0s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
  animation-direction: alternate;
}

@keyframes swipe {
  0% {
    transform: translateX(-5px);
  }
  50% {
    transform: translateX(5px);
  }
  100% {
    transform: translateX(-5px);
  }
}

/* ==================================================
Box
================================================== */

/* --------------------------------------------------
boxGroup
-------------------------------------------------- */

.boxGroup:not(:first-child) {
  margin-top: 20px;
}

.boxGroup .boxGroup_inner {
  display: flex;
  flex-wrap: wrap;
  min-width: 100%;
  margin: 0 -4px -8px;
  /* デフォルト gap8 */
}

.boxGroup .boxGroup_item {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  /* デフォルト col1 */
  padding: 0 4px 8px;
  /* デフォルト gap8 */
}

.boxGroup .boxGroup_item>* {
  width: 100%;
}

/* カラム */

.boxGroup.sp_col1 .boxGroup_item {
  width: calc( 100% / 1);
}

.boxGroup.sp_col2 .boxGroup_item {
  width: calc( 100% / 2);
}

.boxGroup.sp_col3 .boxGroup_item {
  width: calc( 100% / 3);
}

.boxGroup.sp_col4 .boxGroup_item {
  width: calc( 100% / 4);
}

.boxGroup.sp_col5 .boxGroup_item {
  width: calc( 100% / 5);
}

.boxGroup.sp_col6 .boxGroup_item {
  width: calc( 100% / 6);
}

/* 余白 */

.boxGroup.sp_gap0 .boxGroup_inner {
  margin: 0;
}

.boxGroup.sp_gap0 .boxGroup_item {
  padding: 0;
}

.boxGroup.sp_gap8 .boxGroup_inner {
  margin: 0 -4px -8px;
}

.boxGroup.sp_gap8 .boxGroup_item {
  padding: 0 4px 8px;
}

.boxGroup.sp_gap16 .boxGroup_inner {
  margin: 0 -8px -16px;
}

.boxGroup.sp_gap16 .boxGroup_item {
  padding: 0 8px 16px;
}

.boxGroup.sp_gap24 .boxGroup_inner {
  margin: 0 -12px -24px;
}

.boxGroup.sp_gap24 .boxGroup_item {
  padding: 0 12px 24px;
}

.boxGroup.sp_gap32 .boxGroup_inner {
  margin: 0 -16px -32px;
}

.boxGroup.sp_gap32 .boxGroup_item {
  padding: 0 16px 32px;
}

.boxGroup.sp_gap40 .boxGroup_inner {
  margin: 0 -20px -40px;
}

.boxGroup.sp_gap40 .boxGroup_item {
  padding: 0 20px 40px;
}

.boxGroup.icon-plus .boxGroup_item {
  position: relative;
}
.boxGroup.icon-plus .boxGroup_item:not(:first-child) {
  margin-top: 24px;
}
.boxGroup.icon-plus .boxGroup_item:not(:first-child)::before {
  content: '';
  width: 20px;
  height: 20px;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: -26px;
  background: url(/lifeplan/bringup/images/index/icon_plus.png) no-repeat center center;
  background-size: contain;
  margin: auto;
}

/* --------------------------------------------------
box1
-------------------------------------------------- */

.box1 {
  margin-top: 20px;
  padding: 16px;
  background: #FFEFDD;
}

.box1:first-child {
  margin-top: 0;
}

.box1_head {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #ccc;
  margin-bottom: 12px;
  padding-bottom: 12px;
  font-size: 16px;
  line-height: 1.5;
}

/* --------------------------------------------------
box2
-------------------------------------------------- */

.box2:not(:first-child) {
  margin-top: 20px;
}
.box2 {
  border: 1px solid #ccc;
  background-color: #fff;
}

.box2_head {
  display: flex;
  align-items: center;
  margin: -1px -1px 0;
  padding: 16px;
  color: #fff;
  background-color: #0071E3;
  font-size: 16px;
  line-height: 1.5;
}

.box2_head-icon {
  width: 40px;
  height: 40px;
  margin: 0 8px 0 0;
}

.box2_body {
  padding: 16px;
}

/* color-blue */
.box2.color-blue {
  background-color: #E6F3FF;
  border-color: #E6F3FF;
}
.box2.color-blue .box2_head {
  background-color: #0071E3;
}

/* color-red */
.box2.color-red .box2_head {
  background-color: #CE2D26;
}

/* --------------------------------------------------
box3
-------------------------------------------------- */

.box3 {
  margin-top: 20px;
  padding: 16px;
  background-color: #fff;
  border: 1px solid #6A6A6A;
}

.box3:first-child {
  margin-top: 0;
}

/* --------------------------------------------------
box4
-------------------------------------------------- */

.box4 {
  margin-top: 20px;
  padding: 16px;
  background-color: #fff;
}

.box4:first-child {
  margin-top: 0;
}

.box4_head {
  margin-bottom: 24px;
  text-align: center;
  font-size: 16px;
  color: #01693E;
}

.box4_head:after {
  content: "";
  display: block;
  width: 40px;
  margin: 16px auto 0;
  border-bottom: 1px solid #717171;
}

/* --------------------------------------------------
box5
-------------------------------------------------- */

.box5 {
  margin-top: 20px;
  padding: 16px;
  background-color: #fff;
  border: 1px solid #ccc;
}

.box5:first-child {
  margin-top: 0;
}

.box5_head {
  margin-bottom: 16px;
  text-align: center;
  font-size: 16px;
}

/* --------------------------------------------------
noteBox
-------------------------------------------------- */

.noteBox {
  margin-top: 20px;
  background-color: #F9EBEB;
}

.noteBox:first-child {
  margin-top: 0;
}

.noteBox_head {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  font-size: 16px;
  color: #D80000;
}

.noteBox_head::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-right: 8px;
  background: url(/common/images/icon_attention_red.svg) no-repeat left center / contain;
}

.noteBox_body {
  padding: 12px 16px;
}

.noteBox_head+.noteBox_body::before {
  content: "";
  display: block;
  border-top: 1px solid #ccc;
  position: relative;
  top: -12px;
}

/* アコーディオン付き */

.noteBox.acd {
  border-radius: 8px;
  border: 1px solid #B10600;
  overflow: hidden;
}

.noteBox_head.js-acd_btn {
  cursor: pointer;
  transition: .2s;
  position: relative;
  padding-right: 44px;
}

.noteBox_head.js-acd_btn::after {
  content: '';
  display: block;
  position: absolute;
  right: 16px;
  top: calc(50% - 12px);
  width: 24px;
  height: 24px;
  background: url(/common/images/icon_plus_red.svg) no-repeat 0 0 / contain;
  transition: .2s;
}

.noteBox_head.js-acd_btn.is-active::after {
  background-image: url(/common/images/icon_minus_red.svg);
}

.noteBox_body.js-acd_box {
  display: none;
}

/* --------------------------------------------------
imgTxt
-------------------------------------------------- */

.imgTxt {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  margin-top: 20px;
}

.imgTxt:first-child {
  margin-top: 0;
}

.imgTxt .imgTxt_ .imgTxt .imgTxt_item {
  flex: 0 0 100%;
  width: 100%;
}

.imgTxt .imgTxt_item img {
  width: 100%;
}

.imgTxt .imgTxt_item.imgTxt_item-orderFirst {
  order: 1;
  margin-bottom: 12px;
}

.imgTxt .imgTxt_item.imgTxt_item-orderSecond {
  order: 2;
}

/* ==================================================
リンクボタン
================================================== */
/* ----- 通常ボタン ----- */
/* - 変数用 - */
.nmlBtn {
  /* カラム・幅など */
  --col: 1;
  --gapY: 20px;
  --gapX: 8px;
  --btnMaxW: 100%;
  --btnMinH: 54px;
  --btnRadius: 27px;
  --btnPaddingL: 28px;
  --btnPaddingR: 28px;
  --btnItemGap: 8px;
  --btnPos: center;
  --defLineHeight: 1.5;
  /* 色 */
  --btnColor: var(--mainColor);
  --btnBoderColor: var(--mainColor);
  --btnColor_hover: #fff;
  /* アイコン */
  --svgIconColor: var(--mainColor);
  --svgIconSize: 28px;
  --btnIconPos: 20px;
  --btnLinkIcon: url(/common/images/icon/icon_link.svg);
  --btnLinkIconWidth: 14px;
  --btnLinkIconHeight: 14px;
  --btnLinkIconPosR: 12px;
}
/* - メイン - */
.nmlBtn {
  max-width: 100%;
  display: flex;
  gap: var(--gapY) var(--gapX);
  flex-wrap: wrap;
  justify-content: var(--btnPos);
  font-size: var(--defFontSize);
  line-height: var(--defLineHeight);
  text-align: center;
  margin-top: 32px;
}
.nmlBtn:first-child { margin-top: 0; }
.nmlBtn_item {
  /* ボタン色 */
  --btnIcoColor: var(--btnColor);
  --btnTxtColor: var(--defColor);
  --btnBgColor: var(--btnColor_hover);
  /* 幅 */
  --tNmlBtnGapX: calc(calc(var(--col) - 1) * var(--gapX));
  --tNmlBtnWrap: calc(100% - var(--tNmlBtnGapX));
  --tNmlBtnW: calc(var(--tNmlBtnWrap) / var(--col));
  flex: 0 0 auto;
  width: var(--tNmlBtnW);
  max-width: var(--btnMaxW);
  display: flex;
  gap: var(--btnItemGap);
  flex-direction: column;
}
.nmlBtn_item_inner {
  width: 100%;
  height: 100%;
  min-height: var(--btnMinH);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  color: var(--btnTxtColor);
  background: var(--btnBgColor);
  border: 1px solid var(--btnBoderColor);
  border-radius: var(--btnRadius);
  padding: 8px var(--btnPaddingR) 8px var(--btnPaddingL);
  text-decoration: none;
  cursor: pointer;
  transition:
    var(--transColor),
    var(--transBg);
}
.nmlBtn_item_inner:not(:has(.nmlBtn_linkIcon)) {
  padding-left: calc(var(--btnPaddingL) * .5);
  padding-right: calc(var(--btnPaddingR) * .5);
}
.nmlBtn_text {
  display: flex;
  gap: 0;
  flex-direction: column;
}
.nmlBtn_text_main {
  font-weight: bold;
  line-height: 1.45;
}
.nmlBtn_text_sub {
  font-size: calc(var(--defFontSize) - 2px);
  line-height: 1.2;
}
.nmlBtn_caption {
  display: flex;
  justify-content: center;
  position: relative;
  font-size: var(--defFontSize);
  color: var(--btnColor);
  font-weight: 500;
  margin: auto auto 0;
  padding: 0 32px;
}
.nmlBtn_caption::before,
.nmlBtn_caption::after {
  content: "";
  position: absolute;
  width: 30px;
  height:2px;
  bottom: 12px;
  background-color: var(--btnColor);
}
.nmlBtn_caption::before {
  left: 0;
  transform: rotate(45deg);
}
.nmlBtn_caption::after {
  right: 0;
  transform: rotate(-45deg);
}
.nmlBtn_caption-simple {
  align-items: center;
  color: var(--defColor);
  font-weight: bold;
  line-height: 1.3;
  padding: 0;
}
.nmlBtn_caption-simple::before,
.nmlBtn_caption-simple::after { content: none; }
.nmlBtn_caption + .nmlBtn_item_inner {
  height: auto;
}
.nmlBtn_caption + .nmlBtn {
  margin-top: var(--btnItemGap);
}
/* - 色 - */
.nmlBtn_item-orange {
  --btnColor: var(--subColor);
  --btnBoderColor: var(--subColor);
  --svgIconColor: var(--subColor);
}
.nmlBtn_icon {
  width: var(--svgIconSize);
  height: var(--svgIconSize);
  position: absolute;
  top: 0;
  left: var(--btnIconPos);
  bottom: 0;
  margin: auto;
}
.nmlBtn_icon::after {
  background-color: var(--btnIcoColor);
  transition: var(--transBg);
}
.nmlBtn_item_inner:has(.nmlBtn_icon) {
  padding-left: 48px;
}
/* - リンクアイコン - */
.nmlBtn_linkIcon {
  width: var(--btnLinkIconWidth);
  height: var(--btnLinkIconHeight);
  position: absolute;
  top: 0;
  right: var(--btnLinkIconPosR);
  bottom: 0;
  margin: auto;
}
.nmlBtn_linkIcon::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  background-color: var(--btnIcoColor);
  transition: var(--transBg);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-image: var(--btnLinkIcon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: var(--btnLinkIcon);
}
.nmlBtn_item_inner:has(.nmlBtn_linkIcon-pdf) {
  --btnPaddingR: 48px;
}
/* アイコンの種類 */
.nmlBtn_linkIcon-down { --btnLinkIcon: url(/common/images/icon/icon_anchor.svg); }
.nmlBtn_linkIcon-download { --btnLinkIcon: url(/common/images/icon/icon_download.svg); }
.nmlBtn_linkIcon-blank { --btnLinkIcon: url(/common/images/icon/icon_blank.svg); }
.nmlBtn_linkIcon-pdf {
  --btnLinkIcon: url(/common/images/icon/icon_pdf.svg);
  --btnLinkIconWidth: 37px;
  --btnLinkIconHeight: 18px;
}
/* - 色の反転（サブカラー） - */
.nmlBtn_item-bgFill {
  --btnIcoColor: var(--btnColor_hover);
  --btnTxtColor: var(--btnColor_hover);
  --btnBgColor: var(--btnColor);
  --svgIconColor: var(--btnColor_hover);
}
/* - 角丸調整 - */
.nmlBtn_item-roundSmall {
  --btnRadius: 8px;
}
.nmlBtn_item-roundSmall:has(.nmlBtn_icon) {
  --btnMinH: 64px;
}
/* - 非活性ボタン - */
.nmlBtn_item.is-disabled {
  --btnTxtColor: var(--defColor);
  --btnColor: var(--colorGray);
  --btnBgColor: var(--colorGray);
  --btnBoderColor: var(--colorGray);

  pointer-events: none;
  user-select: none;
}
.nmlBtn_item.is-disabled .nmlBtn-linkIcon {
  display: none;
}
/* - 選択済み - */
.nmlBtn_item.is-selected {
  --btnTxtColor: var(--btnColor_hover);
  --btnBgColor: var(--btnColor);
  pointer-events: none;
  user-select: none;
}
.nmlBtn_item.is-selected .nmlBtn-linkIcon {
  display: none;
}
/* - 見た目だけボタン - */
div.nmlBtn_item_inner:not([data-modalclass]) {
  user-select: none;
  pointer-events: none;
}

/* ----- コンバージョンボタン ----- */
/* - 変数用 - */
.cnvBtn {
  /* 色 */
  --cnvBtnColor: linear-gradient(#1eb581 0%, #107c6a 100%);
  /* アイコン */
  --cnvBtnLinkIcon: url(/common/images/icon/icon_link.svg);
}
/* - メイン - */
.cnvBtn {
  max-width: 100%;
  display: flex;
  gap: 20px;
  flex-direction: column;
  font-size: calc(var(--largeFontSize) + 2px);
  line-height: 1.3;
  text-align: center;
  margin-top: 32px;
}
.cnvBtn:first-child { margin-top: 0; }
.cnvBtn_item {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.cnvBtn_item_inner {
  width: 100%;
  height: 100%;
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  color: #fff;
  background: var(--cnvBtnColor);
  border-radius: 37px;
  padding: 8px 36px;
  text-decoration: none;
}
.cnvBtn_text {
  display: flex;
  gap: 4px;
  flex-direction: column;
}
.cnvBtn_text_main {
  font-weight: bold;
}
.cnvBtn_text_sub {
  font-size: var(--smallFontSize);
}
.cnvBtn_caption {
  font-size: var(--smallFontSize);
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 8px;
}
.cnvBtn_caption strong,
.cnvBtn_caption2 strong {
  color: var(--defColor);
  font-size: var(--largeFontSize);
}
.cnvBtn_caption2 {
  display: flex;
  justify-content: center;
  position: relative;
  font-weight: bold;
  color: var(--cnvBtnColor);
  margin: auto auto 8px;
  padding: 0 24px;
}
.cnvBtn_caption2::before,
.cnvBtn_caption2::after {
  content: "";
  position: absolute;
  width: 30px;
  height:2px;
  bottom: 12px;
  background-color: var(--cnvBtnColor);
}
.cnvBtn_caption2::before {
  left: -4px;
  transform: rotate(45deg);
}
.cnvBtn_caption2::after {
  right: -4px;
  transform: rotate(-45deg);
}
.cnvBtn_caption.fcWhite,
.cnvBtn_caption2.fcWhite,
.cnvBtn_caption.sp_fcWhite,
.cnvBtn_caption2.sp_fcWhite { --cnvBtnColor: #fff; }
.cnvBtn_caption2-simple::before,
.cnvBtn_caption2-simple::after { content: none; }
/* - 色 - */
.cnvBtn_item-orange {
  --cnvBtnColor: var(--subColor);
}
/* - 左側に置く（かもしれない）アイコン - */
.cnvBtn_icon {
  width: 28px;
  height: 28px;
  position: absolute;
  top: 0;
  left: 12px;
  bottom: 0;
  margin: auto;
}
.cnvBtn_icon::after {
  background-color: var(--cnvBtnTxtColor);
  transition: var(--transBg);
}
/* - リンクアイコン - */
.cnvBtn_linkIcon {
  width: 14px;
  height: 14px;
  position: absolute;
  top: 0;
  right: 12px;
  bottom: 0;
  margin: auto;
}
.cnvBtn_linkIcon::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  background-color: #fff;
  transition: var(--transBg);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-image: var(--cnvBtnLinkIcon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: var(--cnvBtnLinkIcon);
}
/* アイコンの種類 */
.cnvBtn_linkIcon-down {
  transform: rotate(90deg);
}
.cnvBtn_linkIcon-blank {
  --cnvBtnLinkIcon: url(/common/images/icon/icon_blank.svg);
}

/* ----- 注意喚起ボタン ----- */
/* - 変数用 - */
.cautionBtn {
  /* カラム・幅など */
  --cautionBtnCol: 1;
  --cautionBtnMaxW: 100%;
  --cautionBtnPadding: 36px;
  /* 色 */
  --cautionBtnColor: var(--colorRed);
  --cautionBtnBoderColor: var(--colorRed);
  --cautionBtnColor_hover: #fff;
  /* アイコン */
  --cautionBtnLinkIcon: url(/common/images/icon/icon_link.svg);
  --cautionBtnLinkIconWidth: 16px;
  --cautionBtnLinkIconHeight: 14px;
}
/* - メイン - */
.cautionBtn {
  max-width: 100%;
  display: flex;
  gap: 20px;
  flex-direction: column;
  line-height: 1.5;
  text-align: center;
  margin-top: 32px;
}
.cautionBtn:first-child { margin-top: 0; }
.cautionBtn_item {
  --cautionBtnTxtColor: var(--cautionBtnColor_hover);
  --cautionBtnBgColor: var(--cautionBtnColor);

  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
}
.cautionBtn_item_inner {
  width: 100%;
  height: 100%;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  color: var(--cautionBtnTxtColor);
  background: var(--cautionBtnBgColor);
  border: 1px solid var(--cautionBtnBoderColor);
  border-radius: 8px;
  padding: 8px var(--cautionBtnPadding);
  text-decoration: none;
  cursor: pointer;
  transition:
    var(--transColor),
    var(--transBg);
}
.cautionBtn_text {
  display: flex;
  gap: 4px;
  flex-direction: column;
}
.cautionBtn_text_main {
  font-weight: bold;
}
.cautionBtn_text_sub {
  font-size: var(--smallFontSize);
}
/* - リンクアイコン - */
.cautionBtn_linkIcon {
  width: var(--cautionBtnLinkIconWidth);
  height: var(--cautionBtnLinkIconHeight);
  position: absolute;
  top: 0;
  right: 12px;
  bottom: 0;
  margin: auto;
}
.cautionBtn_linkIcon::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  background-color: var(--cautionBtnTxtColor);
  transition: var(--transBg);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-image: var(--cautionBtnLinkIcon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: var(--cautionBtnLinkIcon);
}
/* アイコンの種類 */
.cautionBtn_linkIcon-down {
  transform: rotate(90deg);
}
.cautionBtn_linkIcon-blank {
  --cautionBtnLinkIcon: url(/common/images/icon/icon_blank.svg);
}
.cautionBtn_linkIcon-pdf {
  --cautionBtnLinkIcon: url(/common/images/icon/icon_pdf.svg);
  --cautionBtnLinkIconWidth: 37px;
  --cautionBtnLinkIconHeight: 18px;
}
/* 反転 */
.cautionBtn_item-reverseColor {
  --cautionBtnTxtColor: var(--cautionBtnColor);
  --cautionBtnBgColor: var(--cautionBtnColor_hover);
}


/* ----- 小ボタン ----- */
/* - 変数用 - */
.smlBtn {
  /* カラム・幅など */
  --col: 1;
  --gapY: 20px;
  --gapX: 8px;
  --smlBtnMaxW: 420px;
  --smlBtnW: 200px;
  --smlBtnGapX: 8px;
  --smlBtnRadius: 24px;
  --smlBtnPaddingL: 24px;
  --smlBtnPaddingR: 24px;
  /* 色 */
  --smlBtnColor: var(--defColor);
  --smlBtnBoderColor: var(--colorGray);
  /* アイコン */
  --smlBtnLinkIcon: url(/common/images/icon/icon_link.svg);
  --smlBtnLinkIconWidth: 12px;
  --smlBtnLinkIconHeight: 12px;
  --smlBtnLinkIconPosR: 12px;
}
/* - メイン - */
.smlBtn {
  max-width: 100%;
  display: flex;
  gap: var(--gapY) var(--gapX);
  flex-wrap: wrap;
  justify-content: center;
  font-size: var(--smallFontSize);
  line-height: 1.5;
  text-align: center;
  margin-top: 24px;
}
.smlBtn:first-child { margin-top: 0; }
.smlBtn_item {
  /* 幅 */
  --tmp1: calc(calc(var(--col) - 1) * var(--gapX));
  --tmp2: calc(100% - var(--tmp1));
  --tSmlbtnW: calc(var(--tmp2) / var(--col));

  flex: 0 0 auto;
  width: var(--tSmlbtnW);
  max-width: 200px;
  display: flex;
  flex-direction: column;
}
.smlBtn_item_inner {
  width: 100%;
  height: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  color: var(--smlBtnColor);
  background: #fff;
  border: 1px solid var(--colorGray);
  border-radius: var(--smlBtnRadius);
  padding: 8px var(--smlBtnPaddingR) 8px var(--smlBtnPaddingL);
  text-decoration: none;
  cursor: pointer;
  transition: var(--transOpac);
}
.smlBtn_text {
  display: flex;
  gap: 4px;
  flex-direction: column;
}
.smlBtn_text_main {
  font-weight: bold;
}
.smlBtn_text_sub {
  font-size: calc(var(--smallFontSize) - 2px);
}
/* - リンクアイコン - */
.smlBtn_linkIcon {
  width: var(--smlBtnLinkIconWidth);
  height: var(--smlBtnLinkIconHeight);
  position: absolute;
  top: 0;
  right: var(--smlBtnLinkIconPosR);
  bottom: 0;
  margin: auto;
}
.smlBtn_linkIcon::after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  background-color: var(--mainColor);
  transition: var(--transBg);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-image: var(--smlBtnLinkIcon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: var(--smlBtnLinkIcon);
}
/* 文字で来るアイコン用（pdfなど共通部分） */
.smlBtn_item_inner:has(.smlBtn_linkIcon-pdf) {
  --smlBtnPaddingR: 38px;
}
/* アイコンの種類 */
.smlBtn_linkIcon-down { --smlBtnLinkIcon: url(/common/images/icon/icon_anchor.svg); }
.smlBtn_linkIcon-blank { --smlBtnLinkIcon: url(/common/images/icon/icon_blank.svg); }
.smlBtn_linkIcon-pdf {
  --smlBtnLinkIcon: url(/common/images/icon/icon_pdf.svg);
  --smlBtnLinkIconWidth: 31px;
  --smlBtnLinkIconHeight: 14px;
}
/* - 非活性ボタン - */
.smlBtn_item.is-disabled {
  --smlBtnColor: var(--colorGray);
  --smlBtnBoderColor: var(--colorGray);
  --smlBtnTxtColor: var(--defColor);

  pointer-events: none;
  user-select: none;
}
.smlBtn_item.is-disabled .smlBtn-linkIcon {
  display: none;
}
/* - 見た目だけボタン - */
div.smlBtn_item_inner:not([data-modalclass]) {
  user-select: none;
  pointer-events: none;
}

/* --------------------------------------------------
Panel
-------------------------------------------------- */

.panel:not(:first-child) {
  margin-top: 20px;
}

.panel+.panel {
  margin-top: 10px;
}

.panel_list {
  display: flex;
  flex-wrap: wrap;
  min-width: 100%;
  margin: 0 -8px -10px;
}

.panel_item {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  width: 100%;
  padding: 0 8px 10px;
}

.panel_inner {
  position: relative;
  border: 1px solid #ccc;
  border-radius: 8px;
  overflow: hidden;
  width: 100%;
  height: 100%;
  z-index: 1;
  /* safariバグ 対策*/
  transition: all .2s ease;
  text-decoration: none;
}

.panel_img {
  position: relative;
  height: 228px;
  overflow: hidden;
}

.panel_img img {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: cover;
  font-family: "object-fit: cover;";
  transition: all .2s ease;
}

.panel_txt {
  padding: 16px 20px;
}

.panel_txt .text-main {
  font-size: 14px;
  font-weight: 600;
}

.panel_txt .text-sub {
  font-size: 12px;
}

.panel_txt .text-main+.text-sub {
  margin-top: 16px;
}

/* type-icon */

.panel_item.type-icon .numIcon {
  position: relative;
  z-index: 2;
  margin: 0 auto -28px;
}

.panel_item.type-icon .numIcon+.panel_inner .panel_txt:first-child {
  margin-top: 24px;
}

.panel_item.type-icon .panel_inner {
  border: none;
}

.panel_item.type-icon .panel_img {
  border-radius: 8px;
}

.panel_item.type-icon .panel_txt {
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}

.panel_item.type-icon .panel_txt .text-main {
  font-size: 18px;
  font-weight: 600;
}

/* type-link */

.panel_item.type-link .panel_inner {
  padding-bottom: 20px;
  background: right 10px bottom 16px no-repeat;
}

.panel_item.type-link.arrow-right .panel_inner {
  background-image: url(/common/images/arrow_right_half_red.svg);
  background-size: 6px 12px;
}

.panel_item.type-link .panel_inner .icon-pdf {
  position: absolute;
  right: 10px;
  bottom: 16px;
}

.panel_item.type-link .panel_inner .icon-blank {
  position: absolute;
  right: 10px;
  bottom: 16px;
}

.panel_item.type-link .panel_txt .text-sub {
  color: #000;
}

/* ==================================================
card
================================================== */
.card_outer {
  border: 1px solid #CCCCCC;
  border-radius: 8px;
  margin-top: 40px;
  overflow: hidden;
}
.card_outer:first-child {
  margin-top: 0;
}
.card {
}
.card_link {
  position: relative;
  display: flex;
  flex-direction: column;
  color: #000;
  font-size: 16px;
  text-decoration: none;
  background: no-repeat right 10px bottom 16px;
  background-size: 6px 12px;
  padding-bottom: 20px;
}
.card_img_outer {
}
.card_img {
  position: relative;
  overflow: hidden;
  padding-bottom: 40%;
  height: 0;
}
.card_img img {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  object-fit: cover;
  font-family: "object-fit: cover;";
}
.card_txt {
  line-height: 1.5;
  padding: 16px 20px;
}
.card_txt_main {
  color: #CE2D26;
  font-size: 14px;
  font-weight: 600;
}
.card_txt_sub {
  font-size: 12px;
}
.card_txt_main + .card_txt_sub {
  margin-top: 16px;
}

.card_link.icon-right .card_txt { background-image: url(/common/images/arrow_right_half_red.svg); }
.card_link.icon-pdf .card_txt { background-image: url(/common/images/icon_document_red.svg); }

.card.no-link .card_link {
  user-select: none;
  pointer-events: none;
}
