@charset "UTF-8";

/*
========================================

	common.css
	add base_group_dist.css( = base_group.css)
 
========================================
*/

body {
  font-family:/*YakuHanJP,*/ "Noto Sans JP", "Hiragino Kaku Gothic Pro", "Osaka", "Meiryo", "MS PGothic", Sans-Serif;
  color: #171717; /*Neutral-900*/ /*-----------Memo　モノトーン基準は neutral*/
  font-display: swap;
}

body.category1st_Top {
  background-image: linear-gradient(125deg, rgba(255, 255, 255, 0) 25%, #e9ecfc 25%, #b6bfdf 50%, rgba(255, 255, 255, 0) 50%);
}

body.category2nd_Top {
  /*background-image: linear-gradient(125deg, rgba(255,255,255,0) 25%, #93a5cf 25%,#93a5cf 50%,rgba(255,255,255,0) 50%);*/
}

body.gradient {
  background-repeat: repeat-y;
  background-size: 25% 100%;
  background-position: 0 0;
  background-image: linear-gradient(#e9ecfc, #e9ecfc);
}

.num {
  font-family: "DM Sans", monospace, Sans-Serif;
  font-display: swap;
}

body.sitetop {
  /*top page only*/
  animation: fadein 1s forwards;
}

@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/*smooth scroll ---> common.js

@media (prefers-reduced-motion: no-preference) {
	:root {
	  scroll-behavior: smooth;
	}
  }

html {scroll-behavior: smooth;}

*/

/*scroll-padding-top ---> main

html, body {scroll-padding-top: 60px;header height}

	@media (min-width: 1024px) {
		html, body {scroll-padding-top: 90px;header height}
	}

*/

/*----------------------
  common utilities
----------------------*/

/*text*/

h1 {
  font-size: clamp(1.5rem, 1.25rem + 1.25vw, 2.75rem);
} /*----24px-44px*/
h2 {
  font-size: clamp(1.25rem, 1.1rem + 0.75vw, 2rem);
} /*-----20px-32px*/
h3 {
  font-size: clamp(1.125rem, 1.025rem + 0.5vw, 1.625rem);
} /*-----18px-26px*/
h4 {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
} /*-----16px-20px*/

.small {
  font-size: 87.5%;
}

.medium {
  font-size: 93.75%;
}

.large {
  font-size: 112.5%;
}

.link_extlink {
  /*アイコンに背景画像extlinkを使う場合*/
  position: relative;
  display: inline-block;
  padding-right: 24px;
  opacity: 1;
  transition: all 0.2s eas;
}

.link_extlink:hover {
  opacity: 0.8;
}

.link_extlink::before {
  position: absolute; /* relative-->a.link_extlink */
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  background: url(/common/cmn_img/icon/icon_link_color.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
}

.link_zoomlink {
  /*アイコンに背景画像zoomを使う場合*/
  position: relative;
  display: inline-block;
  padding-right: 24px;
  opacity: 1;
  transition: all 0.2s ease;
}

.link_zoomlink::before {
  position: absolute; /* relative-->a.link_extlink */
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  background: url(/common/cmn_img/icon/icon_link_zoom.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s ease;
}

.modal.link_zoomlink::before {
  position: absolute; /* relative-->a.link_extlink */
  content: "";
  display: inline-block;
  width: 28px;
  height: 28px;
  background: url(/common/cmn_img/icon/icon_modal.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s ease;
}

.modal.color_line.link_zoomlink::before {
  background: url(/common/cmn_img/icon/icon_modal_color.svg) no-repeat;
}

.link_zoomlink:hover::before {
  /*filter: brightness(120%);*/
  width: 36px;
  height: 36px;
  transition: all 0.2s ease;
}
/*----------------------
  base layout
----------------------*/

main {
  padding-top: 60px; /*header height*/
  margin-bottom: 60px;
}

@media (min-width: 1024px) {
  main {
    padding-top: 90px; /*header height*/
    margin-bottom: 90px;
  }
}

/*-----page title*/
/*スクロールで位置固定・高さ変動・背景画像あり*/

main.change_title {
  position: relative;
}

main.change_title div#gr_pagetitle_area {
  /*★タイトルエリア*/
  position: sticky;
  top: 60px; /*header height*/
  height: 120px;
  background: #fff;
  z-index: 20;
}

main.change_title div#gr_pagetitle_area.change01 {
  /*タイトルエリアを透過させる場合*/
  background: transparent;
  animation: bgChange01 0.8s ease forwards;
  box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1);
}

main.change_title div.bg_gr_title {
  /*★上に動くイメージ画像のdiv*/
  position: sticky;
  top: 60px; /*header height*/
  height: 120px; /*＝div#gr_pagetitle_area*/
  /*border: 1px solid #fc3;ガイド*/
}

/*main.change_title div.bg_gr_title.short {★上に動くイメージ画像のdiv　ページ内ナビゲーションありの場合
	position: sticky;
	top:60px;header height
	height: 120px;
}*/

/*main.change_title div.bg_gr_title.no_inner_nav {★上に動くイメージ画像のdiv　ページ内ナビゲーションなしの場合
	position: sticky;
	top:0;
}*/

main.change_title div#gr_pagetitle_area div#inner01 {
  /*★タイトルエリア内のページタイトル範囲*/
  height: 120px; /*＝div#gr_pagetitle_area*/
  margin-top: 0;
  /*border: 1px solid #3c9;ガイド*/
}

main.change_title div#gr_pagetitle_area div#inner02 {
  /*★タイトルエリア内のパンくずリスト範囲*/
  /*border: 1px solid #936;ガイド*/
}

main.change_title div#gr_pagetitle_area.change01 div#inner02 {
  /*高さ変動後*/
  box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1);
}

main.change_title div#gr_pagetitle_area h1,
div#gr_pagetitle_area_static h1 {
  /*★タイトルエリア内のページタイトル範囲内のh1*/
  display: flex;
  padding-left: 24px;
  padding-right: 24px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  line-height: 1.1;
  margin: auto;
  /*font-size:clamp(1.063rem, 0.963rem + 0.5vw, 1.563rem);
	font-size: clamp(1rem, 0.925rem + 0.38vw, 1.375rem);*/
  font-size: clamp(0.75rem, 0.675rem + 0.38vw, 1.125rem); /*12px-18px*/
  letter-spacing: 0.025rem;
  /*background-color: rgba(0,0,0,0.1);ガイド*/
  font-weight: 500;
}

main.change_title div#gr_pagetitle_area h1 span.num,
div#gr_pagetitle_area_static h1 span.num {
  font-size: 300%;
  font-weight: 500;
  letter-spacing: -0.05em;
  opacity: 0.2;
  color: #7088bf;
}

main.change_title div#gr_pagetitle_area h1 span.num.small,
div#gr_pagetitle_area_static h1 span.num.small {
  font-size: 250%;
  letter-spacing: -0.025em;
}

main.change_title div#gr_pagetitle_area h1 span.title,
div#gr_pagetitle_area_static h1 span.title {
  line-height: 2;
  /*color: #1f2a66;
	font-weight: 700;*/
}

main.change_title div#gr_pagetitle_area.change01 h1,
main.change_title div#gr_pagetitle_area.change01 h1 span.num {
  color: #fff;
  opacity: 0.9;
  transition:
    opacity 0.8s ease,
    color 0.8s ease;
  text-shadow: 8px 8px 0 rgba(0, 0, 0, 0.1);
}

main.change_title div#gr_pagetitle_area.change01 h1 span.title {
  color: #fff;
  opacity: 1;
  transition:
    opacity 0.8s ease,
    color 0.8s ease;
  text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.1);
}

main.change_title div.bg_gr_title {
  z-index: 10; /*★上に動くイメージ画像のdiv*/
}

/*上に動くイメージ画像*/

main.change_title div.bg_gr_title img {
  /*★上に動くイメージ画像そのもの*/
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: bottom;
  object-position: bottom;
  /*border: 1px solid #c33;ガイド*/
}

main.change_title div.bg_gr_title img.ob_center {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
}

main.change_title div.bg_gr_title img.ob_center_ct {
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  -o-object-position: contain;
  object-position: contain;
}

main.change_title div.bg_gr_title img.ob_top {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: top;
  object-position: top;
}

main.change_title div.bg_gr_title img.ob_bottom {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: bottom;
  object-position: bottom;
}

@media (min-width: 1024px) {
  main.change_title div.bg_gr_title img.lg_ob_center {
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
  }

  main.change_title div.bg_gr_title img.lg_ob_center_ct {
    height: 100%;
    width: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    -o-object-position: contain;
    object-position: contain;
  }

  main.change_title div.bg_gr_title img.lg_ob_top {
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: top;
    object-position: top;
  }

  main.change_title div.bg_gr_title img.lg_ob_top_15 {
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center 15%;
    object-position: center 15%;
  }

  main.change_title div.bg_gr_title img.lg_ob_bottom {
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: bottom;
    object-position: bottom;
  }
}

/*上に動くイメージ画像があるページのコンテンツ部分*/

main.change_title div#gr_contents {
  margin-top: 0;
  transition: all 0.8s ease;
  /*border: 10px solid #fc3;ガイド*/
}

@media (min-width: 1024px) {
  main.change_title {
    position: relative;
  }

  main.change_title div#gr_pagetitle_area, /*★タイトルエリア*/
	main.change_title div.bg_gr_title {
    /*★上に動くイメージ画像のdiv*/
    position: sticky;
    top: 90px;
  }

  main.change_title div#gr_pagetitle_area {
    /*★タイトルエリア*/
    height: 160px;
    border-top: 1px solid #fff; /*★必須*/
  }

  main.change_title div#gr_pagetitle_area.change01 {
    /*透過させる場合*/
    height: 160px;
    background: transparent;
    animation: bgChange01 0.8s ease forwards;
  }

  main.change_title div.bg_gr_title,
  main.change_title div.bg_gr_title.short {
    position: sticky;
    top: 0px;
    height: 312px; /*ここで調整*/
    margin-top: -100px; /*ここで調整*/
  }

  main.change_title div.bg_gr_title.no_inner_nav {
    /*height: 280px;
		position: sticky;
		top:-9px;ここで調整*/

    height: 240px;
    position: sticky;
    top: -9px; /*ここで調整*/
    margin-top: -90px;
  }

  main.change_title div#gr_pagetitle_area div#inner01 {
    height: 120px;
    margin-top: 10px;
    margin-bottom: 0;
    transition: all 0.4s ease;
  }

  main.change_title div#gr_pagetitle_area.change01 div#inner01 {
    margin-top: 5px;
    margin-bottom: 5px;
    transition: all 0.6s ease 0.2s;
    /*border: 1px solid #c33;ガイド*/
  }

  main.change_title div#gr_pagetitle_area h1,
  div#gr_pagetitle_area_static h1 {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    padding-left: 32px;
    padding-right: 32px;
  }

  main.change_title div#gr_pagetitle_area h1 span.num,
  div#gr_pagetitle_area_static h1 span.num {
    font-size: 450%;
    margin-right: 1.5rem;
    white-space: nowrap;
  }

  main.change_title div#gr_pagetitle_area h1 span.num.small,
  div#gr_pagetitle_area_static h1 span.num.small {
    font-size: 400%;
  }

  main.change_title div#gr_pagetitle_area.change01 div#inner02 {
    /*高さ変動後*/
    animation: bgChange 0.8s ease forwards;
    box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1);
  }
}

@keyframes bgChange01 {
  /*タイトルエリアを透過させる場合*/
  0% {
    background: #fff;
  }

  25% {
    background: #fff;
  }

  50% {
    background: linear-gradient(-20deg, transparent 25%, #25348e 100%);
    background-size: 200% 100%;
    background-position: top left;
  }

  100% {
    background: linear-gradient(-20deg, transparent 25%, #25348e 100%);
    background-size: 200% 100%;
    background-position: top right;
  }
}

/*inner nav　ページ内ナビゲーション*/

.gr_inner_nav_line {
  /*policyは独自cssあり（ --> policy_rule_add.css の　div.gr_inner_nav_line ）*/
  width: 100%;
  background: rgba(255, 255, 255, 1);
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;

  display: none;
}

.gr_inner_nav {
  width: 100%;
  margin: 0 auto;
  padding: 0 1rem !important; /* overwrite .container padding */
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  background: #e7ecf5;
}

.gr_inner_nav ul.gr_inner_nav_group {
  display: flex;
  flex-wrap: wrap;
  min-height: 64px;
}

.gr_inner_nav ul.gr_inner_nav_group li {
  width: auto;
  display: flex;
  align-items: center;
}

.gr_inner_nav_itemlink {
  display: block;
  margin: 0.25rem 0;
  padding: 0 1rem 0 0.25rem;
  margin-right: 0;
  position: relative;
  border-right: 1px solid #93a5cf;
}

.gr_inner_nav_itemlink:hover {
  opacity: 0.5;
}

.gr_inner_nav_itemlink::after {
  position: absolute;
  width: 14px;
  height: 14px;
  top: 50%;
  right: 4px;
  margin-top: -7px;
  display: inline-block;
  content: "";
  /*border-radius: 100%;
    border:2px solid #1d4ed8;;輪郭
	opacity: 1;*/
  background: url(/common/cmn_img/icon/icon_chevron_down.svg) no-repeat center;
  background-size: 12px 12px;
}

@media (min-width: 568px) {
  .gr_inner_nav {
    border-top: 1px solid transparent;
    background: transparent;
  }

  .change01 .gr_inner_nav {
    border-top: 1px solid #93a5cf;
  }
}

@media (min-width: 1024px) {
  .gr_inner_nav_line {
    display: block;
  }

  .gr_inner_nav {
    font-size: 0.8125rem;
    padding: 0;
  }

  .gr_inner_nav_itemlink {
    margin: 0.75rem 0.5rem 0.75rem 0;
    padding: 0 2rem 0 0;
    position: relative;
  }

  .gr_inner_nav_itemlink::after {
    position: absolute;
    width: 18px;
    height: 18px;
    top: 50%;
    right: 8px;
    margin-top: -9px;
    background-size: 16px 16px;
  }

  .gr_inner_nav ul.gr_inner_nav_group {
    min-height: 0;
  }
}

@media (min-width: 1536px) {
  /*.gr_inner_nav_line {
		display: block;
	}*/

  .gr_inner_nav {
    font-size: 0.9375rem;
    padding: 1rem;
  }
}

/*-----page title*/
/*スクロールで変動しない*/
/*amenity -----> /business/amenity/css/modal.css*/

/*-----page title*/
/*スクロールで位置固定・高さ変動・背景画像なし*/
/*case and solution and news*/

div#gr_pagetitle_area_static {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  height: 120px; /*＝div#inner01 ＝div.bg_gr_title*/

  position: sticky;
  top: 60px; /*header height*/
  z-index: 10;
}
/*
div#gr_pagetitle_area_static h1 span.num {
	margin-right: 1rem;
}*/

@media only screen and (min-width: 1024px) {
  div#gr_pagetitle_area_static {
    position: sticky;
    top: 90px; /*header height*/
    z-index: 10;
    height: 170px; /*＝div#inner01 ＝div.bg_gr_title + 10px(margin)*/
  }
}

div#gr_pagetitle_area_static h1,
div#gr_pagetitle_area_static h1 span.num {
  /*★タイトルエリア内のページタイトル範囲内のh1*/
  color: #fff;
  opacity: 1;
}

/*-----page title　(section)　*/
/*スクロールで位置固定・高さ変動・背景画像なし*/
/*policy and sitemap*/

section#gr_pagetitle_area_plain {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  position: sticky;
  top: 60px; /*header height*/
  background: linear-gradient(120deg, #93a5cf 0%, #e4efe9 100%);
  z-index: 10;
  min-height: 90px;
}

@media (min-width: 1024px) {
  section#gr_pagetitle_area_plain {
    position: sticky;
    top: 90px; /*header height*/
    height: fit-content;
  }
}

section#gr_pagetitle_area_plain.compact {
  /*高さ変動後*/
  animation: bgChange 0.8s ease forwards;
  box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.1);
}

@keyframes bgChange {
  /*高さ変動によって背景色を変える*/

  0% {
    background: #93a5cf;
  }
  100% {
    background: #fff;
  }
}

section#gr_pagetitle_area_plain h1 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100%;
  margin-top: 24px;
  margin-bottom: 24px;
  padding-left: 16px;
  padding-right: 16px;
  color: #fff;
  transition: all 0.2s ease;
  font-size: clamp(1.375rem, 1.2rem + 0.88vw, 2.25rem); /*----22px-36px*/
}

section#gr_pagetitle_area_plain.compact h1 {
  /*高さ変動後*/
  color: #93a5cf;
}

@media (min-width: 1024px) {
  section#gr_pagetitle_area_plain.compact h1 {
    margin-top: 16px;
    margin-bottom: 16px;
    transition: all 0.4s ease 0.2s;
  }
}

/*breadcrumb*/

div.gr_breadcrumb_line {
  display: none;
}

@media (min-width: 1024px) {
  div.gr_breadcrumb_line {
    /*全画面横幅の帯を付ける場合*/
    width: 100%;
    background: rgba(255, 255, 255, 0.25);
    /*background: #f5f7fb;*/
    margin: 0;
    padding: 0.5rem;
    display: flex;
    align-items: center;
    height: 40px;
  }

  /*pagetitle の背景がイメージ画像になる場合*/

  main.change_title div.gr_breadcrumb_line {
    background: linear-gradient(120deg, #f5f7fb 0%, #fff 100%);
  }

  main.change_title div.change01 div.gr_breadcrumb_line {
    background: #fff;
  }

  /*スクロールで位置固定・高さ変動・背景画像なし*/
  /*case and solution and news*/

  div#gr_pagetitle_area_static div.gr_breadcrumb_line {
    background: rgba(255, 255, 255, 0.8);
  }

  .gr_breadcrumb {
    width: 100%;
    margin: 0 auto;
    padding: 0 1rem !important;
    font-size: 0.75rem;

    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .gr_breadcrumb .gr_breadcrumb_group {
    display: flex;
    flex-wrap: wrap;
  }

  .gr_breadcrumb .gr_breadcrumb_group li:last-child {
    color: #7088bf;
    font-weight: 500; /*現在地ページ*/
  }

  .gr_breadcrumb_itemlink[href]:hover {
    opacity: 0.5;
  }

  .gr_breadcrumb_group > * + * {
    margin-left: 0.25em;
  }

  .gr_breadcrumb_group > * + *::before {
    content: "/";
    margin-left: 0.5em;
    margin-right: 0.5em;
    opacity: 0.5;
    color: #7088bf;
  }
}

@media (min-width: 1440px) {
  .gr_breadcrumb {
    font-size: 0.825rem;
  }

  .gr_breadcrumb_group > * + * {
    margin-left: 0.5em;
  }

  .gr_breadcrumb_group > * + *::before {
    content: "/";
    margin-left: 0.75em;
    margin-right: 0.75em;
  }
}

/*
main.vis_pagetitle section#gr_pagetitle_area.compact .gr_breadcrumb .gr_breadcrumb_group li,
main.vis_pagetitle section#gr_pagetitle_area.compact .gr_breadcrumb_group > * + *::before {
	color: #fff;
}*/

/*.container {
	border:1px dotted #639;★ガイド
}*/

div.container {
  margin: auto;
  padding: 1rem;
  /*border:1px solid #c33;★ガイド*/
}

@media (min-width: 1024px) {
  div.container {
    padding: 2rem;
  }
}

@media (min-width: 640px) {
  .container.container_full {
    max-width: none;
    padding: 0;
  }
}

div.container > div.contents_list_box {
  /*add base_group.css*/
  padding-left: 0;
  padding-right: 0;
}

/*background*/

/*decoration text*/

/*----------------------
  header
----------------------*/

header {
  position: fixed;
  width: 100%;
  z-index: 9999;
  background: #fff;
  /*border-bottom: 3px solid #fb923c;orange-400*/
}

@media (min-width: 1024px) {
  /*header {
			border-bottom: 1px solid transparent;
		}*/
  header.gr_header_shadow {
    /*border-bottom: 4px solid #FDBA74;orange-300
			box-shadow: 0 6px 0 0 rgba(0, 0, 0,0.05), 0 12px 0 0 rgba(0, 0, 0,0.05), 0 18px 0 0 rgba(0, 0, 0,0.05);*/
    box-shadow: 0 4px 0 0 rgba(0, 0, 0, 0.1);
    transition: all 0.2s ease;
  }
}

header .gr_header_nav_area {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0px;
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  /*border:1px dotted #ccc;ガイド*/
}

@media (min-width: 1024px) {
  header .gr_header_nav_area {
    max-width: 1920px;
  }
}

header a.header_site_name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  height: 60px;
  /*border:1px dotted #ccc;★#cccガイド*/
}

header img.header_site_logo {
  width: 140px;
  height: 42px;
}

header span.site_name {
  font-size: clamp(0.625rem, 0.575rem + 0.25vw, 0.875rem);
  letter-spacing: 0.05rem;
}

header span.site_name span.num {
  display: block;
  letter-spacing: 0.025rem;
}

@media (min-width: 1024px) {
  header a.header_site_name {
    height: 90px;
    margin-left: 0.5rem;
  }

  header img.header_site_logo {
    width: 173px;
    height: 52px;
  }
}

@media (min-width: 1280px) {
  header a.header_site_name {
    margin-left: 1rem;
  }

  header img.header_site_logo {
    width: 200px;
    height: 60px;
  }
}

header nav.gr_header_nav {
  position: absolute;
  right: 0;
  left: 0;
  top: 60px; /*header height + border*/
  width: 100%;
  height: calc(100vh - 60px);
  transform: translateX(100%);
  background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  transition: ease 0.4s; /*-----リサイズ時のチラつき防止したい場合は、ここをコメントアウトしてactiveのみとする*/
  overflow-y: auto;
}

header ul.gr_cmn_nav {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 0 126px 0; /*-----スマホサイズの下余白*/
  margin: 0;
  width: 90%;
  /*max-width: 360px;*/
}

@media (min-width: 1024px) {
  header nav.gr_header_nav {
    position: static;
    transform: initial;
    background-color: inherit;
    height: inherit;
    display: flex;
    justify-content: end;
    width: 60%;
    max-width: 1600px;
    min-width: 660px;
    background: transparent;
    overflow: visible;
  }

  header ul.gr_cmn_nav {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    padding: 0;
    max-width: none;

    width: 100%;
    display: flex;
    align-items: flex-start;
    height: initial;
    /*justify-content: space-between;*/
    justify-content: space-evenly;
    margin: 0;
  }

  /*header ul.gr_cmn_nav li {
		width: 100%; 均等幅
	}*/
}

header ul.gr_cmn_nav li .gr_cmn_nav_item {
  /*大カテゴリ--> a.gr_cmn_nav_item or p.gr_cmn_nav_item*/
  display: block;
  border-top: 1px solid #fff; /*区切り線*/
  padding: 1rem 0.5rem 1rem 1rem;
  margin: 0;
  text-align: left;
  text-decoration-line: none;
  white-space: nowrap;
  cursor: pointer;

  font-weight: 700;
}

header ul.gr_cmn_nav li:first-child .gr_cmn_nav_item {
  border-top: none;
}

header ul.gr_cmn_nav li .gr_cmn_nav_item span.num {
  display: block;
  width: fit-content;
  /*font-size:90%;
	font-size:110%;*/
  color: #93a5cf;
  font-weight: 400;
  margin-left: 2px;
}

@media (min-width: 1024px) {
  header ul.gr_cmn_nav li .gr_cmn_nav_item {
    border-width: 0px;
    /*padding-top: 2.4rem;*/
    padding-top: 1.5rem;
    font-size: 0.8125rem;
    text-align: center;
    line-height: 1;
    height: 90px;
    cursor: pointer;

    padding-right: 1.75rem;
    padding-left: 1.75rem;
  }

  header ul.gr_cmn_nav li .gr_cmn_nav_item span.num {
    padding-bottom: 8px;
    /*font-size:75%;*/
    margin: auto;
  }
}

@media (min-width: 1280px) {
  header ul.gr_cmn_nav li .gr_cmn_nav_item {
    font-size: 0.9375rem;
  }
}

header .gr_cmn_nav_item {
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: right 20px center; /*右から20pxで、縦の中央*/
  background-size: 16px 16px;
}

header .gr_cmn_nav_item.extlink {
  background: url(/common/cmn_img/icon/icon_link_color.svg) no-repeat;
  background-position: right 20px center; /*右から20pxで、縦の中央*/
  background-size: 20px 20px;
}

/*megamenu = like accordion*/

/*トリガーのあるリンクだけにプラスマイナスマークを付ける*/

header .gr_mm_trigger {
  position: relative;
  display: inline-block;
  z-index: 1;
  /*font-weight:500;*/
  background-image: none;
}

header .gr_mm_trigger::before,
header .gr_mm_trigger::after {
  content: "";
  display: inline-block;
  width: 15px;
  height: 2px;
  /*border-radius: 2px;*/
  background-color: #274aca; /*icon color*/
  position: absolute; /* relative-->gr_mm_trigger */
  right: 21px;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.2s;
  transition: transform 0.4s;
}

header .gr_mm_trigger::after {
  transform: translateY(-50%) rotate(90deg);
}

header .gr_mm_trigger.is-active::before {
  opacity: 0;
}

header .gr_mm_trigger.is-active::after {
  transform: translateY(-50%) rotate(180deg);
}

header .gr_mm_content {
  opacity: 0;
  visibility: hidden;
  height: 0;
  padding-top: 0; /*for like accordion ★*/
  transition:
    padding 0.25s,
    opacity 0.25s,
    visibility 0.25s;
}

header .gr_mm_content img.category_top_img,
header .gr_mm_content .btn_close {
  /*category_top_img and icon_close*/
  display: none;
  height: 0;
}

header .gr_mm_trigger.is-active + .gr_mm_content {
  overflow: hidden;
  padding-top: 0.75rem; /*for like accordion ★*/
  height: auto;
  opacity: 1;
  visibility: visible;
  /*background-color: #fff;*/
  background-color: #93a5cf; /*header .gr_mm_inner li.category_top a と同色に*/
}

@media (min-width: 1024px) {
  /*すべてのリンクに下線を引く*/

  header .gr_cmn_nav_item {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-weight: 500;
    background-image: none; /*右矢印アイコンを消す*/
  }

  header .gr_cmn_nav_item.extlink {
    /*background: url(/common/cmn_img/icon/icon_link.svg) no-repeat ;
		background-position:right 0 top 55%; 右から10%で、上から53%
		background-size: 20px 20px;*/

    background: none;
    position: relative;
  }

  header .gr_cmn_nav_item::after {
    content: "";
    position: absolute; /* relative-->gr_cmn_nav_item */
    bottom: 12px;
    left: 20%;
    z-index: -1;
    height: 4px;
    width: 60%;
    background: #93a5cf; /*blue-700 sample color*/
    transform: scale(0, 1) translateX(2px);
    transform-origin: center top;
  }

  header .gr_cmn_nav_item:hover::after {
    transform: scale(1, 1) translateX(2px);
    transition: transform 0.25s;
  }

  header .gr_cmn_nav_item.is-active::after {
    height: 2px;
    background: #000;
  }

  header .gr_cmn_nav_item.extlink::before {
    display: block;
    position: absolute;
    content: "";
    top: calc(50% - 4px);
    right: 5px;
    width: 16px;
    height: 12px;
    border-width: 2px;
    border-style: solid;
    transition: 0.2s;
    opacity: 0.5;
    border-color: #7088bf !important;
    background: #93a5cf !important;
  }

  header .gr_cmn_nav_item.extlink::after {
    display: block;
    position: absolute;
    content: "";
    top: calc(50% - 1px);
    right: 8px;
    width: 16px;
    height: 12px;
    border-width: 2px;
    border-style: solid;
    transition: 0.2s;
    border-color: #7088bf !important;

    /*通常の取り消し*/
    bottom: auto;
    left: auto;
    z-index: 0;

    background: transparent;
    transform: none;
    transform-origin: none;
  }

  header .gr_cmn_nav_item.extlink:hover::before {
    width: 16px;
    height: 12px;
    top: calc(50% - 4px);
    right: 3px;
    opacity: 0.8;
  }

  /*megamenu*/

  header .gr_mm_trigger {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-weight: 500;
  }

  header .gr_cmn_nav_item.gr_mm_trigger::before,
  header .gr_cmn_nav_item.gr_mm_trigger::after {
    content: "";
    display: block;
    position: absolute; /* relative-->gr_mm_trigger */
    top: auto;
    bottom: 12px;
    left: 50%;
    right: auto;
    width: 11px;
    height: 11px;
    margin-left: -8px;
    background-color: transparent;
    border-radius: 0;
    transform: translateY(0);
    transition: opacity 0.2s;
    /*transition: transform 0.2s;*/
  }

  header .gr_cmn_nav_item.gr_mm_trigger::before {
    transform: rotate(45deg);
    border-bottom: 3px solid #e5e5e5;
  }

  header .gr_cmn_nav_item.gr_mm_trigger::after {
    border-right: 3px solid #e5e5e5;
    transform: scale(1, 1) rotate(45deg);
    transform-origin: center;
  }

  header .gr_cmn_nav_item.gr_mm_trigger:hover:before,
  header .gr_cmn_nav_item.gr_mm_trigger.is-active::before {
    opacity: 1;
    border-bottom: 4px solid #93a5cf; /*blue-700 sample color*/
    transform: scale(4.1, 1) rotate(0deg) translateX(1px); /*すき間が空かないように調整*/
    transform-origin: right bottom;
    margin-left: -12px;
    transition: transform 0.2s; /*あえて往路だけにする*/
  }

  header .gr_cmn_nav_item.gr_mm_trigger:hover:after,
  header .gr_cmn_nav_item.gr_mm_trigger.is-active::after {
    margin-left: -12px;
    border-right: 4px solid #93a5cf; /*blue-700 sample color*/
    transform: scale(4, 1) rotate(90deg);
    transform-origin: right bottom;
    transition: transform 0.2s; /*あえて往路だけにする*/
  }

  header .gr_cmn_nav_item.gr_mm_trigger.is-active::before {
    border-bottom: 9px double #93a5cf; /*blue-700 sample color*/
  }

  header .gr_cmn_nav_item.gr_mm_trigger.is-active::after {
    border-right: 9px double #93a5cf; /*blue-700 sample color*/
  }

  header .gr_mm_content {
    opacity: 0;
    visibility: hidden;
    position: absolute; /*relative-->.gr_header_nav */
    top: 90px; /*header高さ*/

    /*横幅画面いっぱいにする場合
		left: auto;
		right: 0;
		width: calc(100vw - 16px);スクロールバー幅（だいたい）を引く
		max-width: 1920px;*/
    padding: 2rem 2rem 0 2rem;

    /*横幅ナビゲーションの範囲内*/
    left: 0;
    width: 100%;

    background-color: #fff;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;

    transition: none; /*あえて往路だけにする*/
  }

  /*個別に開く位置を指定する場合
	ul.gr_cmn_nav li:nth-child(2) .gr_mm_content {left: 10%; width: 25%;}
	ul.gr_cmn_nav li:nth-child(3) .gr_mm_content {left: 20%; width: 25%;}
	ul.gr_cmn_nav li:nth-child(8) .gr_mm_content {right: 0; width: 25.5%;}ずれを調整
	*/

  header .gr_cmn_nav_item.gr_mm_trigger.is-active + .gr_mm_content {
    background-color: #fff;
    transition:
      opacity 0.4s,
      visibility 0.4s;
    transition-delay: 0;
  }
}

@media (min-width: 1440px) {
  header .gr_cmn_nav_item::after {
    left: 30%;
    width: 40%;
  }
}

/*megamenu inner*/

header .gr_mm_inner {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  background: #fff;
  /*border-radius: 4px;*/
}

header .gr_mm_inner li {
  width: 100%;
  /*font-size: 0.9375rem;*/
  text-align: left;
}

header .gr_mm_inner li a {
  margin-left: auto;
  margin-right: auto;
  display: block;
  border-top: 1px solid #93a5cf; /*区切り線*/
  /*padding: 0.75rem 2rem 0.75rem 1rem;*/
  padding: 0.75rem 1rem 0.75rem 2rem;
  display: flex;
  align-items: center;
  justify-content: start;
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  /*background-position:right 4px center; 右から4pxで、縦の中央*/
  background-position: left 8px center;
  background-size: 16px 16px;
}

header .gr_mm_inner li div.no_link {
  margin-left: auto;
  margin-right: auto;
  display: block;
  border-top: 1px solid #93a5cf; /*区切り線*/
  padding: 0.75rem 2rem 0.75rem 1rem;
  display: flex;
  align-items: center;
  justify-content: start;
}

header .gr_mm_inner li a:hover {
  color: #93a5cf;
  /*opacity: 0.5;*/
}

header .gr_mm_inner li.category_top a {
  border-top: none;
  padding-top: 0;
  background: url(/common/cmn_img/icon/icon_chevron_right02.svg) no-repeat;
  background-position: right 18px top calc(50% - 5px);
  background-size: 20px 20px;
  background-color: #93a5cf; /*header .gr_mm_trigger.is-active + .gr_mm_content と同色に*/
  color: #fff;
}

header .gr_mm_inner li a .title {
  font-weight: 500;
}

header .gr_mm_inner li div.no_link p.title {
  font-weight: 500;
}

header .gr_mm_inner li ul {
  margin-bottom: 1rem;
}

header .gr_mm_inner li ul li {
  padding-left: 1rem;
  font-size: 87.5%;
}

header .gr_mm_inner li ul li a {
  /*background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;*/
  background: url(/common/cmn_img/icon/icon_dot.svg) no-repeat;
  background-position: left -2px center;
  background-size: 12px 12px;
  padding: 0.25rem 1rem;
  border: 0;
}

@media (min-width: 1024px) {
  header .gr_mm_content {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    justify-items: center;
  }

  header .gr_mm_trigger.is-active + .gr_mm_content {
    overflow: visible; /*btn_close をはみ出す場合*/
    box-shadow: rgba(0, 0, 0, 0.45) 0px 12px 10px -10px;
  }

  header .gr_mm_content img.category_top_img {
    display: block;
    width: 25%;
    height: auto;
    display: none;
  }

  header .gr_mm_content .btn_close {
    display: block;
    width: 100%;
    height: auto;
  }

  header .gr_mm_content img.icon_close {
    display: block;
    width: 36px;
    height: 36px;
    margin-left: auto;
    margin-right: -12px;
    margin-top: 8px;
    margin-bottom: -16px;
    padding: 10px;
    background-color: #f5f7fb;
    border-radius: 28px;
    z-index: 1;
    box-shadow:
      rgba(50, 50, 93, 0.25) 0px 6px 12px -2px,
      rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
  }

  header .gr_mm_content img.icon_close:hover {
    /*opacity: 0.5;*/
    background-color: #fff;
    cursor: pointer;
  }

  header .gr_mm_inner {
    width: 100%;
    display: grid;
    /*grid-template-columns: repeat(3, minmax(0, 1fr));*/
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  header .gr_mm_inner.about li.category_top {
    background: url(/common/cmn_img/bg_hd_about.svg) no-repeat;
    /*background-position:bottom -32px center;*/
    background-position: right top;
    background-size: 100%;
  }

  header .gr_mm_inner.business {
    background: url(/common/cmn_img/bg_hd_bs.svg) no-repeat;
    /*background-position:bottom -32px center;*/
    background-position: right top;
    background-size: 100%;
  }

  header .gr_mm_inner li {
    font-size: 0.875rem;
  }

  header .gr_mm_inner li.category_top {
    /*grid-column: span 3 / span 3;*/
    grid-column: span 4 / span 4;
    border-bottom: 3px solid #93a5cf;
    background-size: 50% 50%;
  }

  header .gr_mm_inner li.category_top a {
    display: inline-block;
    padding-right: 4rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
    background-position: right 16px center; /*矢印アイコンの位置調整*/
  }

  header .gr_mm_inner li a {
    border-top-color: transparent; /*区切り線を見えなくする*/
  }

  header .gr_mm_inner li a:hover .icon {
    background-color: #fdba74;
    color: #fff;
    border-radius: 999px;
  }

  header .gr_mm_inner li a .title {
    margin-right: 0;
  }

  header .gr_mm_inner li ul li {
    font-size: 0.8125rem;
  }

  header .gr_mm_inner li.hd_span {
    grid-column: span 2 / span 2;
    border-bottom: 1px solid #93a5cf;
  }

  header .gr_mm_inner li.hd_span_full {
    grid-column: span 4 / span 4;
    border-bottom: 1px solid #93a5cf;
  }

  header .gr_mm_inner li.hd_span div.hd_row ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1440px) {
  header .gr_mm_inner {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  header .gr_mm_inner li {
    font-size: 0.9375rem;
  }

  header .gr_mm_inner li.category_top {
    grid-column: span 6 / span 6;
  }

  header .gr_mm_inner.about {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }

  header .gr_mm_inner.about li.category_top {
    grid-column: span 8 / span 8;
  }

  header .gr_mm_inner li.hd_span.half {
    grid-column: span 3 / span 3;
    border-bottom: 1px solid #93a5cf;
  }
}

/* hamburger menu */

header .gr_ham_btn {
  width: 60px;
  height: 48px;
  background-color: transparent;
  border-color: transparent;
  z-index: 9999;
  padding: 1rem;
}

@media (min-width: 1024px) {
  header .gr_ham_btn {
    display: none;
  }
}

header .gr_ham_btn span {
  width: 100%;
  height: 1px;
  position: relative;
  transition: ease 0.4s;
  display: block;
}

header .gr_ham_btn span:nth-child(1) {
  top: 0;
  background-color: #000;
}

header .gr_ham_btn span:nth-child(2) {
  margin: 8px 0;
  background-color: #000;
}

header .gr_ham_btn span:nth-child(3) {
  top: 0;
  background-color: #000;
}

/* クリック後のスタイル */
header .gr_header_nav.active {
  transform: translateX(0);
  transition: ease 0.4s;
}

header .gr_ham_btn.active span:nth-child(1) {
  top: 8px;
  transform: rotate(45deg);
}

header .gr_ham_btn.active span:nth-child(2) {
  opacity: 0;
}

header .gr_ham_btn.active span:nth-child(3) {
  top: -10px;
  transform: rotate(-45deg);
}

/*screen*/

div.screen,
div.screen.shade {
  display: none;
}

@media (min-width: 1024px) {
  #screen {
    width: 100vw;
    height: 0;
    position: fixed;
    z-index: 8;
    z-index: 21;
    background: rgba(0, 0, 0, 1);
    display: none;
    opacity: 0;
  }
  #screen.shade {
    height: 100vh;
    display: block;
    /*opacity: 0.2;*/
    animation: shadein 0.2s forwards;
  }
}

@keyframes shadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 0.2;
  }
}

/*sitemap*/
/*
ここでは矢印アイコン設定のみ。
#sitemap設定---> base_group.css
*/

#sitemap ul.gr_mm_inner li a {
  background: rgba(255, 255, 255, 1) url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: right 6px top 22px;
  background-size: 16px 16px;
}

#sitemap ul.gr_mm_inner li.category_top a {
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: right 2px center;
  background-size: 24px 24px;
  border: 0;
}

#sitemap ul li a.gr_cmn_nav_item {
  background: rgba(255, 255, 255, 0) url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: right 2px center;
  background-size: 24px 24px;
}

#sitemap ul li a.gr_cmn_nav_item.extlink {
  /*background:#fff url(/common/cmn_img/icon/icon_link_color.svg) no-repeat ;
	background-position:right 4px center; 
	background-size: 24px 24px;
	box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;*/
  background-image: none;
  position: relative;
}

#sitemap ul li a.gr_cmn_nav_item.extlink::before {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 8px);
  right: 11px;
  width: 16px;
  height: 12px;
  border-width: 2px;
  border-style: solid;
  transition: 0.2s;
  opacity: 0.5;
  border-color: #7088bf !important;
  background: #93a5cf !important;
}

#sitemap ul li a.gr_cmn_nav_item.extlink::after {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 5px);
  right: 14px;
  width: 16px;
  height: 12px;
  border-width: 2px;
  border-style: solid;
  transition: 0.2s;
  border-color: #7088bf !important;
}

#sitemap ul li a.gr_cmn_nav_item.extlink:hover::before {
  width: 16px;
  height: 12px;
  top: calc(50% - 8px);
  right: 9px;
  opacity: 0.8;
}

#sitemap ul.gr_mm_inner li ul li a {
  display: inline;
  width: 100%;
  /*background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat ;*/
  background-position: left 0 top 14px !important;
  background-size: 12px 12px !important;
  padding-left: 14px;
  background: url(/common/cmn_img/icon/icon_dot.svg) no-repeat;
  border: 0;
}

#sitemap ul.policy li a {
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: right 6px top 18px;
  background-size: 16px 16px;
}

@media (min-width: 1024px) {
  #sitemap ul.gr_mm_inner li a {
    background-position: right 12px top 24px;
    background-size: 16px 16px;
  }

  #sitemap ul.gr_mm_inner li.category_top a {
    background-position: right 18px center;
    background-size: 24px 24px;
  }

  #sitemap ul li a.gr_cmn_nav_item {
    background-position: right 8px center;
    background-size: 24px 24px;
  }

  #sitemap ul li a.gr_cmn_nav_item.extlink {
    background-position: right 16px center;
    background-size: 24px 24px;
  }

  #sitemap ul.gr_mm_inner li ul li a {
    width: 100%;
    background-position: left 8px top 14px;
    background-size: 12px 12px;
    padding-left: 24px;
  }

  #sitemap ul.policy li a {
    background-position: right 12px top 18px;
    background-size: 16px 16px;
  }
}

/*pagetop*/

#btn_pagetop {
  display: block;
  position: fixed;
  bottom: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.5) url(/common/cmn_img/icon/icon_chevron_up.svg) no-repeat;
  background-position: center;
  background-size: 32px 32px;
  border-radius: 24px;
  padding-top: 4px;
  opacity: 0;
  transition: ease 0.4s;
  cursor: pointer;
  z-index: 9;
  z-index: 22;
}

#btn_pagetop span {
  display: block;
  width: 48px;
  height: 48px;
  padding-top: 4px;
  font-size: 0.625rem;
  text-align: center;
}

@media (min-width: 1024px) {
  #btn_pagetop {
    padding-top: 0;
  }
}

/*footer*/

footer {
  background: linear-gradient(300deg, #171717 0%, #333333 100%);
}

/*
ここでは矢印アイコン設定のみ。
footer設定---> base_group.css
*/

footer ul.gr_mm_inner li {
  /*background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat ;
	background-position:right 0 top 12px;右から0で、上から12px
	background-size: 12px 12px;
	mix-blend-mode: screen;*/
  background: none;
}

footer ul.gr_mm_inner li ul li {
  width: 100%;
  background: url(/common/cmn_img/icon/icon_chevron_right.svg) no-repeat;
  background-position: left 14px top 8px; /*左から14pxで、上から8px*/
  background-size: 12px 12px;
  padding-left: 26px;
  mix-blend-mode: screen;
}

/*entry*/

/*more btn icon*/
/*.btn_normal --> base_group.css*/

div.btn_icon_more {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s ease;
}

div.btn_icon_more p {
  margin-left: 32px;
  padding-right: 48px;
  position: relative;
}

div.btn_icon_more p::after {
  display: block;
  position: absolute;
  right: 32px;
  top: calc(50% - 4px);
  right: 0;
  transform: translateY(-50%);
  transform-origin: left;
  width: 32px;
  height: 8px;
  /*background-color: #fff; 各自色指定*/
  clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
  content: "";
  transition: transform 0.3s;
}

a:hover div.btn_icon_more p::after {
  transform: translateY(-50%) scaleX(1.4);
}

div.btn_icon_more_s {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s ease;
}

div.btn_icon_more_s p {
  margin-left: 8px;
  padding-right: 36px;
  position: relative;
}

div.btn_icon_more_s p::after {
  display: block;
  position: absolute;
  right: 32px;
  top: calc(50% - 4px);
  right: 0;
  transform: translateY(-50%);
  transform-origin: left;
  width: 28px;
  height: 8px;
  background-color: #fff;
  clip-path: polygon(0 100%, 100% 100%, 70% 40%, 70% 90%, 0% 90%);
  content: "";
  transition: transform 0.3s;
}

a:hover div.btn_icon_more_s p::after {
  transform: translateY(-50%) scaleX(1.25);
}

div.btn_icon_more p span.num,
div.btn_icon_more_s p span.num {
  font-size: larger;
  font-weight: 400;
}

a:hover div.btn_icon_more p span.num,
a:hover div.btn_icon_more_s p span.num {
  transition-delay: 0.1s;
  font-style: oblique;
}

/*extlink btn icon*/
/*.btn_normal --> base_group.css*/

div.btn_icon_extlink {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s ease;
}

div.btn_icon_extlink p {
  margin-left: 24px;
  padding-right: 36px;
  position: relative;
}

div.btn_icon_extlink p::before {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 8px);
  right: 7px;
  width: 16px;
  height: 12px;
  border-width: 2px;
  border-style: solid;
  /*border-color: #999; 各自色指定*/
  transition: 0.2s;
  background: rgba(255, 255, 255, 0.5);
  opacity: 0.5;
}

div.btn_icon_extlink p::after {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 5px);
  right: 10px;
  width: 16px;
  height: 12px;
  border-width: 2px;
  border-style: solid;
  /*border-color: #999; 各自色指定*/
  transition: 0.2s;
}

a:hover div.btn_icon_extlink p::before {
  width: 16px;
  height: 12px;
  top: calc(50% - 8px);
  right: 5px;
  opacity: 0.8;
}

div.btn_icon_extlink_s {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  transition: all 0.2s ease;
}

div.btn_icon_extlink_s p {
  margin-left: 8px;
  padding-right: 32px;
  position: relative;
}

div.btn_icon_extlink_s p::before {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 8px);
  right: 7px;
  width: 12px;
  height: 10px;
  border-width: 1px;
  border-style: solid;
  /*border-color: #999; 各自色指定*/
  transition: 0.2s;
  background: rgba(255, 255, 255, 0.5);
  opacity: 0.5;
}

div.btn_icon_extlink_s p::after {
  display: block;
  position: absolute;
  content: "";
  top: calc(50% - 5px);
  right: 10px;
  width: 12px;
  height: 10px;
  border-width: 1px;
  border-style: solid;
  /*border-color: #999; 各自色指定*/
  transition: 0.2s;
}

a:hover div.btn_icon_extlink_s p::before {
  width: 12px;
  height: 10px;
  border-width: 1px;
  border-style: solid;
  /*border-color: #999; 各自色指定*/
  top: calc(50% - 8px);
  right: 5px;
  opacity: 0.8;
}

/*.btn --> base_group.css*/

.btn_normal,
.btn_normal_s,
.btn_flat {
  /*border:2px solid #666;*/
  background: #666;
  color: #fff;
}

.btn_normal > div.btn_icon_extlink p::before,
.btn_normal_s > div.btn_icon_extlink_s p::before {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal > div.btn_icon_extlink p::after,
.btn_normal_s > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal > div.btn_icon_more p::after,
.btn_normal_s > div.btn_icon_more_s p::after {
  background: #fff !important;
}

.btn_normal.line {
  border: 2px solid #666;
  padding-top: 14px;
  padding-bottom: 14px;
  background: #fff;
  color: #555;
}

.btn_normal_s.line {
  border: 1px solid #666;
  padding-top: 9px;
  padding-bottom: 9px;
  background: #fff;
  color: #555;
}

.btn_normal.line > div.btn_icon_extlink p::before,
.btn_normal_s.line > div.btn_icon_extlink_s p::before {
  border-color: #666 !important;
  background: transparent !important;
}

.btn_normal.line > div.btn_icon_extlink p::after,
.btn_normal_s.line > div.btn_icon_extlink_s p::after {
  border-color: #666 !important;
  background: transparent !important;
}

.btn_normal.line > div.btn_icon_more p::after,
.btn_normal_s.line > div.btn_icon_more_s p::after {
  background: #666 !important;
}

.btn_normal.color,
.btn_normal_s.color {
  /*border:2px solid #93a5cf;*/
  background: #93a5cf;
  color: #fff;
}

.btn_normal.color > div.btn_icon_extlink p::before,
.btn_normal_s.color > div.btn_icon_extlink_s p::before {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal.color > div.btn_icon_extlink p::after,
.btn_normal_s.color > div.btn_icon_extlink_s p::after {
  border-color: #fff !important;
  background: transparent !important;
}

.btn_normal.color > div.btn_icon_more p::after,
.btn_normal_s.color > div.btn_icon_more_s p::after {
  background: #fff !important;
}

.btn_normal.color_line {
  border: 2px solid #7088bf;
  padding-top: 14px;
  padding-bottom: 14px;
  background: #fff;
  color: #5571b3;
}

.btn_normal_s.color_line {
  border: 1px solid #7088bf;
  padding-top: 9px;
  padding-bottom: 9px;
  background: #fff;
  color: #5571b3;
}

.btn_normal.color_line > div.btn_icon_extlink p::before,
.btn_normal_s.color_line > div.btn_icon_extlink_s p::before {
  border-color: #7088bf !important;
  background: #93a5cf !important;
}

.btn_normal.color_line > div.btn_icon_extlink p::after,
.btn_normal_s.color_line > div.btn_icon_extlink_s p::after {
  border-color: #7088bf !important;
}

.btn_normal.color_line > div.btn_icon_more p::after,
.btn_normal_s.color_line > div.btn_icon_more_s p::after {
  background: #7088bf !important;
}

/*btn bg change*/

.btn_bg_flat_a,
.btn_bg_flat_b,
.btn_bg_flat_c,
.btn_bg_flat_d {
  position: relative;
  overflow: hidden;
}

.btn_bg_flat_a::before,
.btn_bg_flat_b::before,
.btn_bg_flat_c::before,
.btn_bg_flat_d::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  opacity: 0;
}

.btn_bg_flat_a:hover::before,
.btn_bg_flat_b:hover::before,
.btn_bg_flat_c:hover::before,
.btn_bg_flat_d:hover::before {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  opacity: 1;
}

a:hover .btn_bg_flat_a::before,
a:hover .btn_bg_flat_b::before,
a:hover .btn_bg_flat_c::before,
a:hover .btn_bg_flat_d::before {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  opacity: 1;
}

.btn_bg_round_a,
.btn_bg_round_b,
.btn_bg_round_c,
.btn_bg_round_d {
  /*丸の基点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
}

.btn_bg_round_a::before,
.btn_bg_round_b::before,
.btn_bg_round_c::before,
.btn_bg_round_d::before {
  content: "";
  position: absolute;
  left: -60px;
  width: 60px;
  height: 60px;
  border-radius: 25px;
  transition: 0.3s ease-out;
}

.btn_bg_round_a:hover::before,
.btn_bg_round_b:hover::before,
.btn_bg_round_c:hover::before,
.btn_bg_round_d:hover::before {
  width: calc(120% + 60px);
}

a:hover .btn_bg_round_a::before,
a:hover .btn_bg_round_b::before,
a:hover .btn_bg_round_c::before,
a:hover .btn_bg_round_d::before {
  width: calc(120% + 60px);
}

.btn_bg_flat_a::before,
.btn_bg_round_a::before {
  /*グレーから黒*/
  background-image: linear-gradient(to right, #999 0%, #333 100%);
}

.btn_bg_flat_b::before,
.btn_bg_round_b::before {
  /*白から*/
  background-image: linear-gradient(125deg, #d6ead4 0%, #fff 55%, #94d7f7 100%);
}

.btn_bg_flat_c::before,
.btn_bg_round_c::before {
  /*青から紫*/
  background-image: linear-gradient(to right, #6fb9dd 0%, #4440c3 100%);
}

.btn_bg_flat_d::before,
.btn_bg_round_d::before {
  /*3色*/
  background-image: linear-gradient(125deg, #d9afd9 0%, #fff 55%, #94d7f7 100%);
}

/*badge*/

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  height: 24px;

  margin-right: 0.1rem;
  margin-top: 0.1rem;
  margin-bottom: 0.1rem;

  padding-right: 0.4rem;
  padding-left: 0.4rem;

  font-size: 0.75rem;
  font-weight: 500;
  vertical-align: text-top;
  text-align: center;
  border: 1px solid #292524; /*stone-800*/
}

.badge-tag {
  padding-top: 0.1rem;
  padding-right: 0.5rem;
  padding-left: 0.5rem;
  padding-bottom: 0.15rem;

  font-weight: 500;
  border: 1px solid #292524; /*stone-800*/
  color: #292524; /*stone-800*/
  background-color: #fff;
  font-size: 0.75rem;
  min-width: 64px;
}

.badge-new {
  color: #fff;
  border: 0;
  background: #ef4444; /*red-500*/
  font-size: 0.825rem;
  line-height: 1.5;
  border-radius: 100px;
  padding-right: 0.5rem;
  padding-left: 0.5rem;
  min-width: 0;
}

.note-tag {
  display: inline-block;
  padding-top: 0.25rem;
  padding-right: 0.5rem;
  padding-left: 0.5rem;
  padding-bottom: 0.35rem;
  font-weight: 500;
  border-top: 1px solid #ccc;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  /*border-left:8px solid #fff;*/
  background-color: #fff;
  font-size: 0.825rem;
  margin-bottom: 4px;
}

/*tab*/

.tab-group {
  display: flex;
  justify-content: center;
}
.tab {
  flex-grow: 1;
  padding: 16px 8px;
  list-style: none;
  color: #333;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  background: #ccc;
  min-width: 32%;
  text-align: center;
  font-size: 0.75rem;
}
.tab span {
  font-size: 0.75rem;
  display: inline-block;
}
.panel-group {
  /*min-height: 50vh;
	border:solid 8px #f6f6f6;*/
  border-top: 0;
  background: #fff;
}
.panel {
  display: none;
}
.tab.is-select {
  background: #333;
  color: #fff;
  font-weight: 700;
  transition: all 0.2s ease-out;
  /*font-size:1rem !important;*/
}
.panel.is-show {
  display: block;
}

@media (min-width: 1024px) {
  .tab {
    font-size: 1.125rem;
    text-align: center;
    /*padding:24px 8px 16px 8px;
		min-height: 96px;*/
  }
  .tab span {
    font-size: 1rem;
    display: block;
  }
  /*.tab.is-select{
		font-size:1.25rem !important;
	}*/
}

.contents_img a div.cel.ppl {
  background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
  background-image: linear-gradient(to top, #a7a6cb 0%, #8989ba 52%, #8989ba 100%);
  background-image: linear-gradient(to top, #d9afd9 0%, #97d9e1 100%);
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
  background-image: linear-gradient(to top, #9795f0 0%, #fbc8d4 100%);
}

.contents_img a div.cel.pnk {
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
}

.contents_img a div.cel.org {
  background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
  background-image: linear-gradient(-60deg, #ff5858 0%, #f09819 100%);
}

.contents_img a div.cel.yel {
  background-image: linear-gradient(60deg, #abecd6 0%, #fbed96 100%);
}

.contents_img a div.cel.lmn {
  background-image: linear-gradient(60deg, #64b3f4 0%, #c2e59c 100%); /*★*/
}

.contents_img a div.cel.grn {
  background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%);
  background-image: linear-gradient(-225deg, #b7f8db 0%, #50a7c2 100%);
}

.contents_img a div.cel.blu {
  background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(to top, #accbee 0%, #e7f0fd 100%);
  background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
}

.contents_img a div.cel.red {
  background-image: linear-gradient(-45deg, #ffc796 0%, #ff6b95 100%);
}

.contents_img a div.cel.nvy {
  background-image: linear-gradient(to top, #6a85b6 0%, #bac8e0 100%);
  background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(15deg, #13547a 0%, #80d0c7 100%);
  background-image: linear-gradient(-225deg, #cbbacc 0%, #2580b3 100%);
  background-image: linear-gradient(-225deg, #7085b6 0%, #87a7d9 50%, #def3f8 100%);
  background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%); /*★*/
}

.contents_img a div.cel.pale {
  background-image: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%);
  background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}

.bg-grade_ppl {
  background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
  background-image: linear-gradient(to top, #a7a6cb 0%, #8989ba 52%, #8989ba 100%);
  background-image: linear-gradient(to top, #d9afd9 0%, #97d9e1 100%);
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
  background-image: linear-gradient(to top, #9795f0 0%, #fbc8d4 100%);
}

.bg-grade_pnk {
  background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
}

.bg-grade_org {
  background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
  background-image: linear-gradient(-60deg, #ff5858 0%, #f09819 100%);
}

.bg-grade_yel {
  background-image: linear-gradient(60deg, #abecd6 0%, #fbed96 100%);
}

.bg-grade_lmn {
  background-image: linear-gradient(60deg, #64b3f4 0%, #c2e59c 100%); /*★*/
}

.bg-grade_grn {
  background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%);
  background-image: linear-gradient(-225deg, #b7f8db 0%, #50a7c2 100%);
}

.bg-grade_blu {
  background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(to top, #accbee 0%, #e7f0fd 100%);
  background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
}

.bg-grade_red {
  background-image: linear-gradient(-45deg, #ffc796 0%, #ff6b95 100%);
}

.bg-grade_nvy {
  background-image: linear-gradient(to top, #6a85b6 0%, #bac8e0 100%);
  background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);
  background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
  background-image: linear-gradient(15deg, #13547a 0%, #80d0c7 100%);
  background-image: linear-gradient(-225deg, #cbbacc 0%, #2580b3 100%);
  background-image: linear-gradient(-225deg, #7085b6 0%, #87a7d9 50%, #def3f8 100%);
  background-image: linear-gradient(to top, #1e3c72 0%, #1e3c72 1%, #2a5298 100%); /*★*/
}

.bg-grade_pale {
  background-image: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%);
  background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}

.bg-diagonal_25 {
  background-color: #fff;
  background-image: linear-gradient(125deg, rgba(255, 255, 255, 0) 25%, #e9ecfc 25%, #b6bfdf 100%);
}

.bg-diagonal_25_rev {
  background-color: #fff;
  background-image: linear-gradient(125deg, #e9ecfc 0%, #b6bfdf 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 100%);
}

.bg-diagonal_50 {
  background-color: #fff;
  background-image: linear-gradient(125deg, rgba(255, 255, 255, 0) 50%, #e9ecfc 50%, #b6bfdf 100%);
}

#business div#gr_pagetitle_area_static {
  background: url(/business/img/bg_solution.jpg) no-repeat;
  background-size: cover;
  background-position: center bottom;
}

#gr_contents ul.process li {
  position: relative;
}

#gr_contents ul.process li::after {
  position: absolute;
  content: "";
  display: inline-block;
  width: 32px;
  height: 32px;
  background: url(/common/cmn_img/icon/icon_arrow_down.svg) no-repeat;
  background-position: center;
  background-size: 100%;
  right: calc(50% -12px);
  bottom: -40px;
  transform: translateY(-50%);
}

@media (min-width: 1024px) {
  #gr_contents ul.process li::after {
    position: absolute;
    content: "";
    display: inline-block;
    width: 32px;
    height: 32px;
    background: url(/common/cmn_img/icon/icon_arrow_right.svg) no-repeat;
    background-position: center;
    background-size: 100%;
    right: -24px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
  }
}

#gr_contents ul.process li.last::after {
  display: none;
}
