@charset "UTF-8";
/* CSS Document */
header h1.pageTit{
  position: relative;
  top:0;
  right: 0;
	text-align: right;
	padding: 22px 65px 0 0;
}
header h1.pageTit .fen_m{
	font-size: 0.15rem;
	letter-spacing: 0.2em;
}
/*=============================
  main
あとでphp化
php化したときにやること
・色を生地別に変化
・infLineAni以外もphp化
・各delayも0.1s刻みにランダムで設定「main_row1_delay」は削除
参考）
animation:
lineAni_start var(--main_row1_speed) var(--main_easeing) hoge秒 1 both,
lineAni_loop var(--main_row1_speed) var(--main_easeing) calc(var(--main_row1_speed) + hoge秒) infinite none;
それとクロスフェードさせたい場合、linear-gradientにはtransition効かないから、spanのレイヤーわけが必要
=============================*/

#main{
  width: 100%;
  height: calc(100svh - 65px);
  position: relative;
  overflow: hidden;
 /*margin-bottom: 125px;*/
}
#main .noiseLines li p{
  position: absolute;
  top:0;
  left:0;
  display: none;
}
#main .noiseLines li p.start{
  display: block;
}

/* #main .noiseLines li p:nth-of-type(1){z-index: 4}
#main .noiseLines li p:nth-of-type(2){z-index: 3}
#main .noiseLines li p:nth-of-type(3){z-index: 2}
#main .noiseLines li p:nth-of-type(4){z-index: 1} */

/*=============================
  message-area-logo
=============================*/

.message-area-logo {
  position: absolute;
  top: 15%;
  bottom: 0;
  left: 7%;
  z-index: 100;
  max-width: calc(100% - 60px);
  max-height: 130px;
  mix-blend-mode: difference;
}

.message-area-logo img.blend-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left bottom;
}



#container{
}
/*=============================
  section
=============================*/
/*section:not(#areport){margin-top: 120px;}*/
section > .inner{margin-top:48px;}
section > .inner > *{
  position: relative;
  z-index: 1;
}
section h2{
  position: sticky;
  top:19px;
  left:0;
  z-index: 100;
  font-size: 0.26rem;
  letter-spacing: 0.1em;
  text-align: right;
  padding-right: 65px;
}

/* areport
=============================*/
#areport .actList > li + li{margin-top: 50px;}
#areport .actList li .noiseArea .ph{
  aspect-ratio: 390/211;
  width: calc((390/1280)*100%);
  max-width: calc(390px * (1440/1280));
  height: auto;
  margin-left: auto;
}
/* #areport .actList li .noiseArea .noiseLines {width: max(calc(100% - (((390*0.4)/1280)*100%)),calc(100% - ((390px*0.4) * (1440/1280))));} */
#areport .actList li .noiseArea .noiseLines {width: max(calc(100% - (390/1280)*100%),calc(100% - (390px * 1440/1280)));}
#areport .actList li:first-child .noiseArea .ph{
  aspect-ratio: 786/423;
  width: calc((786/1280)*100%);
  max-width: calc(786px * (1440/1280));
}
/* #areport .actList li:first-child .noiseArea .noiseLines {width: max(calc(100% - (((786*0.4)/1280)*100%)),calc(100% - ((786px*0.4) * (1440/1280))));} */
#areport .actList li:first-child .noiseArea .noiseLines {width: max(calc(100% - (786/1280)*100%),calc(100% - (786px * 1440/1280)));}

#areport .actList li .detailArea {
  grid-template-columns: 50% calc(50% - 80px) 80px;
  /* grid-template-rows: repeat(3, 1fr); */
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  margin-top: 40px;
  padding: 0 15px;
}
/* #areport .actList .detailArea > *{border: 1px solid #000;} */
#areport .actList li .detailArea .grid01 {grid-area: 1 / 1 / 2 / 2;}
#areport .actList li .detailArea .grid02 {grid-area: 1 / 2 / 2 / 3; padding-left: 35px;}
#areport .actList li .detailArea .grid03 {grid-area: 1 / 3 / 2 / 4;}
#areport .actList li .detailArea .grid04 {grid-area: 2 / 1 / 3 / 2; margin-top: 20px;}
#areport .actList li .detailArea .grid06 {grid-area: 2 / 2 / 3 / 4; margin-top: 20px; padding-left: 35px;}
#areport .actList li .detailArea .grid06  > .inner{width: 100%; margin:auto 0;}

#areport .actList li:first-child .detailArea .grid04 {grid-area: 2 / 1 / 4 / 2; margin-top: 20px;}
#areport .actList li:first-child .detailArea .grid05 {grid-area: 2 / 2 / 3 / 4; margin-top: 20px; padding-left: 35px;}
#areport .actList li:first-child .detailArea .grid06 {grid-area: 3 / 2 / 4 / 4; margin-top: 20px; padding-left: 35px;}
#areport .actList li:first-child .detailArea .grid06  > .inner{width: 100%; margin: 0 0 auto 0;}

#areport .actList .detailArea .data{
  font-size: 0.12rem;
  letter-spacing: 0.1em;
}
#areport .actList .detailArea .tagList{
  font-size: 0.13rem;
  letter-spacing: 0.1em;
}
#areport .actList .detailArea .tagList li{
  margin-right: 1em;
}
#areport .actList .detailArea .likeBt{text-align: right;}
#areport .actList .detailArea .likeBt a{
  font-size: 0.13rem;
  letter-spacing: 0.1em;
  text-decoration: underline;
}

#areport .actList .detailArea h3{
  font-size: 0.21rem;
  letter-spacing: 0.15em;
  line-height: calc(34/21);
  padding-right: calc((100/625)*100%);
}
#areport .actList li:first-child .detailArea h3{
  font-size: 0.33rem;
  letter-spacing: 0.2em;
}
#areport .actList li:first-child .detailArea .txt{
  font-size: 0.14rem;
  letter-spacing: 0.1em;
  line-height: calc(27/14);
}
#areport .actList li .detailArea .phColor{width: fit-content;}
#areport .actList li .detailArea .phColor li{
  width: 10px;
  height: 10px;
  margin-right: 10px;
}
#areport .actList li .detailArea .bt_more{
  margin-left: auto;
}

#areport .bt_view{
  margin-left: 15px;
  margin-top: 55px;
}

/* news
=============================*/
#news > .inner{
  padding: 0 15px;
}
#news .newsList li{
  padding-bottom: 25px;
  border-bottom: 1px solid #000;
}
#news .newsList > li + li{
  margin-top: 25px;
}
#news .newsList li a .data{
  width: 180px;
  font-size: 0.12rem;
  letter-spacing: 0.1em;
  padding-top: 1em;
}
#news .newsList li a h3{
  width: calc(100% - 180px - 150px);
  font-size: 0.16rem;
  letter-spacing: 0.15em;
  line-height: calc(28/16);
  margin-right: auto;
  padding-top: 0.2em;
}
#news .newsList li a .bt_more{
  width: 110px;
  display: block;
  font-size: 0.11rem;
  letter-spacing: 0.1em;
  padding: 1em;
  border: 1px solid #000;
  text-align: center;
}
#news .bt_view{
  margin-top: 55px;
}

/* about
=============================*/
#about .noiseArea01 {
	aspect-ratio: 1280/210;
	width: 100%;
	/*max-height: calc(210px * (1440/1280));*/
  max-height: calc(105px * (1440/1280));
  /*margin-top: 110px;*/
}
#about .noiseArea02 {
	aspect-ratio: 1280/150;
	width: 100%;
	max-height: calc(150px * (1440/1280));
  margin-top: 125px;
}
#about > .inner{
  padding: 0 15px;
}
#about > .inner .logo{
  aspect-ratio: 505/92;
  width: calc((505/1280)*100%);
  margin-left: auto;
}
#about > .inner .txtArea{
  width: calc((584/1280)*100%);
}
#about > .inner .txtArea .txt{
  font-size: 0.17rem;
  letter-spacing: 0.2em;
  line-height: calc(37/17);
}
#about .bt_view{
  margin-top: 30px;
}

/* sol_pjt
=============================*/
.sol_pjt .noiseArea{margin-top: 75px;}
.sol_pjt .noiseArea .ph{
  aspect-ratio: 550/307;
  width: calc((550/1280)*100%);
  max-width: calc(550px * (1440/1280));
  height: auto;
  margin-left: auto;
}
/* #sol .noiseArea .noiseLines {width: max(calc(100% - (((550*0.4)/1280)*100%)),calc(100% - ((550px*0.4) * (1440/1280))));}
#pjt .noiseArea .noiseLines {width: max(calc(100% - (550/1280)*100%),calc(100% - (550px * 1440/1280)));} */
.sol_pjt .noiseArea .noiseLines {width: max(calc(100% - (550/1280)*100%),calc(100% - (550px * 1440/1280)));}

.sol_pjt .detailArea {
  padding: 0 15px;
  margin-top: 70px;
}
.sol_pjt .detailArea h3{
  width: calc(100% - 150px);
  font-size: 0.18rem;
  letter-spacing: 0.2em;
  line-height: calc(38/18);
}
.sol_pjt .detailArea  > .inner{
  width: 150px;
}
.sol_pjt .detailArea .phColor{
  width: fit-content;
  margin-left: auto;
}
.sol_pjt .detailArea .phColor li{
  width: 10px;
  height: 10px;
}
.sol_pjt .detailArea .phColor li + li{
  margin-left: 10px;
}
.sol_pjt .detailArea .bt_view{
  margin-left: auto;
  margin-top: 35px;
}

/* lab
=============================*/
#lab > .inner{
  padding: 0 15px;
  margin-top: 110px;
}
#lab .txtArea .logo{
  aspect-ratio: 475/107;
  width: calc((475/1250)*100%);
  margin-left: auto;
}
#lab .txtArea h3{
  width: calc(100% - (475/1250)*100%);
  font-size: 0.17rem;
  letter-spacing: 0.2em;
  line-height: calc(38/17);
}

#lab .labListArea {
  margin-top: 65px;
}
#lab .labListArea .labList{
width: calc(100% - 150px - 95px);
margin: 0 auto;
}
#lab .labListArea .labList li{
  width: calc(100% - 150px - 95px);
  margin-right: auto;
}
#lab .labListArea .labList li .name_jp{
  font-size: 0.17rem;
  letter-spacing: 0.1em;
  line-height: calc(36/17);
}
#lab .labListArea .labList li h4{
  font-size: 0.30rem;
  letter-spacing: 0.1em;
  line-height: calc(60/30);
}
#lab .labListArea .labList li .txt{
  font-size: 0.17rem;
  letter-spacing: 0.1em;
  line-height: calc(30/17);
}
#lab .labListArea .labList li .ph{
  aspect-ratio: 487/325;
  width: 100%;
  margin-top: 20px;
}

/* main catch
=============================*/
.mainCatch{
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	transform: translateY(-50%);
	z-index: 20;
	pointer-events: none;
}

.mainCatch__inner{
	width: calc(100% - 30px);
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 15px;
}

.mainCatch__sub{
	display: inline-block;
	margin: 0 0 14px;
	padding: 0;
	background: none;
	color: #fff;
	font-size: 0.22rem;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-shadow:
		0 0 6px rgba(0,0,0,0.25),
		0 2px 12px rgba(0,0,0,0.35);
}

.mainCatch__title{
	margin: 0;
	color: #fff;
	font-size: clamp(0.30rem, 4.2vw, 0.56rem);
	letter-spacing: 0.06em;
	line-height: 1.08;
	text-shadow:
		0 0 6px rgba(0,0,0,0.25),
		0 2px 12px rgba(0,0,0,0.35);
	word-break: break-word;
}

.mainCatch__link{
	margin: 24px 0 0;
	pointer-events: auto;
}

.mainCatch__link a{
	display: inline-block;
	color: #fff;
	font-size: 0.18rem;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}

#about .cmiAboutRow {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 7%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 80px 0 96px;
}

#about .cmiAboutCol {
	min-width: 0;
}

#about .cmiAboutCol--logo {
	flex: 0 0 28%;
	max-width: 360px;
	text-align: center;
}

#about .cmiAboutCol--text {
	flex: 0 0 58%;
	max-width: 820px;
}

#about .cmiAboutLead {
	margin: 0 0 18px;
	color: #7b7b7b;
	font-size: 0.26rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
}

#about .cmiAboutLogo {
	margin: 0;
}

#about .cmiAboutLogo img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}

#about .cmiAboutTextArea {
	width: 100%;
}

#about .cmiAboutText {
	margin: 0;
	color: #111;
	font-size: 0.18rem;
	font-weight: 700;
	line-height: 1.95;
	letter-spacing: 0.02em;
	text-align: left;
}

#about .cmiAboutText + .cmiAboutText {
	margin-top: 0.9em;
}

#about .cmiAboutTextArea .bt_view {
	margin-top: 30px;
}

#about .cmiAboutTextArea .bt_view a {
	min-width: 150px;
}

#lab .cmiLabRow {
	display: grid;
	grid-template-columns: minmax(240px, 28%) minmax(0, 58%);
	justify-content: center;
	align-items: center;
	column-gap: 7%;
	max-width: 1280px;
	margin: 0 auto 56px;
	padding: 0;
}

#lab .cmiLabCol--logo {
	text-align: center;
}

#lab .cmiLabCol--text {
	min-width: 0;
}

#lab .cmiLabLead {
	margin: 0 0 18px;
	color: #7b7b7b;
	font-size: 0.26rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-align: center;
}

#lab .cmiLabLogo {
	margin: 0;
}

#lab .cmiLabLogo img {
	display: block;
	width: 100%;
	max-width: 360px;
	height: auto;
	margin: 0 auto;
}

#lab .cmiLabTextArea {
	width: 100%;
}

#lab .cmiLabTextArea h3 {
	margin: 0;
	color: #111;
	font-size: 0.18rem;
	font-weight: 700;
	line-height: 1.95;
	letter-spacing: 0.02em;
	text-align: left;
}

.mainCatch__sub_black {
	color: #000;
	text-shadow:
		0 0 3px rgba(255,255,255,0.95),
		0 0 8px rgba(255,255,255,0.9),
		0 0 14px rgba(255,255,255,0.85);
}

.mainCatch__title_black {
	color: #000;
	text-shadow:
		0 0 3px rgba(255,255,255,0.95),
		0 0 8px rgba(255,255,255,0.9),
		0 0 14px rgba(255,255,255,0.85);
}

.mainCatch__link_black a {
	color: #000;
	text-shadow:
		0 0 3px rgba(255,255,255,0.95),
		0 0 8px rgba(255,255,255,0.9),
		0 0 14px rgba(255,255,255,0.85);
}

/* =============================
   CMI HOME CARDS (TOP only / PC)
   PICK UP は common.css の 3列を維持
   ARTICLE のみ PC大画面で 4列
============================= */
.cmiHomeCards__grid--pickup .cmiHomeCards__body,
.cmiHomeCards__grid--article .cmiHomeCards__body{
	min-height: 238px;
}

.cmiHomeCards__grid--pickup .cmiHomeCards__tagRows,
.cmiHomeCards__grid--article .cmiHomeCards__tagRows{
	margin-top: auto;
	min-height: 64px;
	align-content: flex-start;
}

.cmiHomeCards__grid--pickup .cmiHomeCards__meta,
.cmiHomeCards__grid--article .cmiHomeCards__meta{
	min-height: 20px;
}

.cmiHomeCards__grid--pickup .cmiHomeCards__card,
.cmiHomeCards__grid--article .cmiHomeCards__card{
	min-height: 100%;
}

.cmiHomeCards__grid--pickup .cmiHomeCards__mainLink,
.cmiHomeCards__grid--article .cmiHomeCards__mainLink{
	display: flex;
	flex-direction: column;
	height: 100%;
}

@media screen and (min-width: 1281px){
	.cmiHomeCards__inner{
		width: min(1440px, calc(100% - 48px));
	}

	.cmiHomeCards__grid--article{
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 18px !important;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__body{
		gap: 10px !important;
		padding: 16px 16px 18px !important;
		min-height: 224px;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__cardTitle{
		font-size: 19px !important;
		line-height: 1.45 !important;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__excerpt{
		font-size: 13px !important;
		line-height: 1.6 !important;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__tags{
		gap: 6px !important;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__tags li{
		min-height: 24px !important;
		padding: 3px 8px !important;
		font-size: 11px !important;
	}

	.cmiHomeCards__grid--article .cmiHomeCards__pdf{
		right: 14px;
		bottom: 14px;
	}
}

/* =============================
   CMI HOME CARDS
   PICK UP 3カラム固定
============================= */

@media screen and (min-width: 768px){
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup{
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		grid-auto-flow: row !important;
		gap: 24px !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
	}

	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup > .cmiHomeCards__item{
		display: block !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		flex: none !important;
		flex-basis: auto !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup .cmiHomeCards__card{
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		height: 100% !important;
		margin: 0 !important;
	}
}

@media screen and (max-width: 767px){
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup{
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 18px !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
	}

	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup > .cmiHomeCards__item{
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		flex: none !important;
		flex-basis: auto !important;
		margin: 0 !important;
		padding: 0 !important;
	}
}

/* =============================
   CMI HOME CARDS
   ABOUT
   PICK UP と同じカード構造・同じカードサイズ
============================= */

.cmiHomeCards--about .cmiHomeCards__inner{
	width: min(1440px, calc(100% - 48px));
	margin: 0 auto;
}

.cmiHomeCards--about .cmiHomeCards__head{
	margin-bottom: 26px;
}

.cmiHomeCards--about .cmiHomeCards__title{
	position: static !important;
	top: auto !important;
	left: auto !important;
	padding-right: 0 !important;
	text-align: center !important;
}

.cmiHomeCards__aboutPanel{
	background: #f3f3f3;
	padding: 32px 24px 54px;
}

.cmiHomeCards__aboutLead{
	margin: 0 0 36px;
	color: #111;
	font-size: 0.16rem;
	font-weight: 700;
	line-height: 1.85;
	letter-spacing: 0.04em;
}

.cmiHomeCards__aboutLead p{
	margin: 0;
}

.cmiHomeCards__aboutLead p + p{
	margin-top: 0.45em;
}

.cmiHomeCards__grid--about{
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 24px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.cmiHomeCards__grid--about > .cmiHomeCards__item{
	display: block !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
	flex-basis: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.cmiHomeCards__grid--about .cmiHomeCards__card{
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 100% !important;
	min-height: 100% !important;
	margin: 0 !important;
	background: #fff;
}

.cmiHomeCards__grid--about .cmiHomeCards__mainLink{
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	color: #111;
	text-decoration: none !important;
}

.cmiHomeCards__grid--about .cmiHomeCards__imageWrap{
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff;
}

.cmiHomeCards__grid--about .cmiHomeCards__image{
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
}

.cmiHomeCards__grid--about .cmiHomeCards__body{
	display: flex !important;
	flex-direction: column !important;
	min-height: 238px !important;
	background: #fff;
}

.cmiHomeCards__grid--about .cmiHomeCards__excerpt{
	margin-bottom: auto;
}

.cmiHomeCards__aboutEmpty{
	margin: 24px 0 0;
	color: #111;
	font-size: 0.14rem;
	font-weight: 700;
	line-height: 1.8;
	text-align: center;
}

/* =============================
   TOP PICK UP / ABOUT carousel
   自前JSは維持 / PICK UP・ABOUTを同一UIへ統一
   PC：左右の丸矢印のみ表示、ドットとPREV/NEXT文字は非表示
   SP：スワイプ中心のため操作UIは非表示
============================= */

.cmiHomeCarousel{
	position: relative !important;
	width: 100% !important;
	overflow: visible !important;
}

.cmiHomeCarousel__viewport{
	position: relative !important;
	width: 100% !important;
	overflow: hidden !important;
}

.cmiHomeCards .cmiHomeCarousel .cmiHomeCards__grid.cmiHomeCarousel__track,
.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel .cmiHomeCards__grid.cmiHomeCards__grid--pickup.cmiHomeCarousel__track,
.cmiHomeCards--about .cmiHomeCarousel .cmiHomeCards__grid.cmiHomeCards__grid--about.cmiHomeCarousel__track{
	display: flex !important;
	grid-template-columns: none !important;
	grid-auto-flow: unset !important;
	flex-wrap: nowrap !important;
	gap: 24px !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 0 2px !important;
	list-style: none !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory !important;
	scroll-behavior: smooth !important;
	-webkit-overflow-scrolling: touch !important;
	scrollbar-width: none !important;
	box-sizing: border-box !important;
}

.cmiHomeCarousel__track::-webkit-scrollbar{
	display: none !important;
}

.cmiHomeCards .cmiHomeCarousel .cmiHomeCards__item.cmiHomeCarousel__slide,
.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel .cmiHomeCards__grid.cmiHomeCards__grid--pickup > .cmiHomeCards__item.cmiHomeCarousel__slide,
.cmiHomeCards--about .cmiHomeCarousel .cmiHomeCards__grid.cmiHomeCards__grid--about > .cmiHomeCards__item.cmiHomeCarousel__slide{
	display: block !important;
	flex: 0 0 calc((100% - 48px) / 3) !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	scroll-snap-align: start !important;
	scroll-snap-stop: always !important;
	box-sizing: border-box !important;
}

.cmiHomeCards .cmiHomeCarousel .cmiHomeCards__card,
.cmiHomeCards .cmiHomeCarousel .cmiHomeCards__mainLink{
	height: 100% !important;
}

@media screen and (min-width: 768px){

	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCards__grid.cmiHomeCards__grid--pickup.cmiHomeCarousel__track > .cmiHomeCards__item.cmiHomeCarousel__slide{
		flex: 0 0 calc((100% - 48px) / 3) !important;
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
	}

	/* controlsはレイアウト領域を持たせず、左右矢印だけ絶対配置で使う */
	.cmiHomeCarousel .cmiHomeCarousel__controls,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__controls,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__controls{
		display: block !important;
		position: static !important;
		width: 0 !important;
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.cmiHomeCarousel:not(.is-scrollable) .cmiHomeCarousel__controls{
		display: none !important;
	}

	.cmiHomeCarousel.is-scrollable .cmiHomeCarousel__controls,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup.is-scrollable .cmiHomeCarousel__controls,
	.cmiHomeCards--about .cmiHomeCarousel--about.is-scrollable .cmiHomeCarousel__controls{
		display: block !important;
	}


	.cmiHomeCarousel.is-scrollable .cmiHomeCarousel__dots,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup.is-scrollable .cmiHomeCarousel__dots,
	.cmiHomeCards--about .cmiHomeCarousel--about.is-scrollable .cmiHomeCarousel__dots{
		display: flex !important;
		position: absolute !important;
		left: 50% !important;
		bottom: -28px !important;
		z-index: 15 !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 8px !important;
		width: auto !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		transform: translateX(-50%) !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__dot,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__dot,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__dot{
		appearance: none !important;
		display: block !important;
		width: 7px !important;
		height: 7px !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 1px solid #111 !important;
		border-radius: 999px !important;
		background: #fff !important;
		font-size: 0 !important;
		line-height: 0 !important;
		cursor: pointer !important;
		opacity: 1 !important;
		transition:
			background 0.2s ease,
			transform 0.2s ease,
			opacity 0.2s ease !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__dot.is-active,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__dot.is-active,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__dot.is-active{
		background: #111 !important;
		transform: scale(1.15) !important;
	}

	/* ドット分の下余白 */
	.cmiHomeCarousel.is-scrollable{
		margin-bottom: 34px !important;
	}

	/* PREV / NEXT文字ボタンを、丸い左右矢印アイコンへ統一 */
	.cmiHomeCarousel .cmiHomeCarousel__button,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button{
		appearance: none !important;
		position: absolute !important;
		top: 50% !important;
		z-index: 20 !important;
		display: block !important;
		width: 42px !important;
		height: 42px !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 1px solid rgba(17,17,17,0.18) !important;
		border-radius: 999px !important;
		background: rgba(255,255,255,0.92) !important;
		color: #111 !important;
		box-shadow: 0 8px 20px rgba(0,0,0,0.08) !important;
		backdrop-filter: blur(6px) !important;
		-webkit-backdrop-filter: blur(6px) !important;
		cursor: pointer !important;
		transform: translateY(-50%) !important;
		font-size: 0 !important;
		line-height: 0 !important;
		letter-spacing: 0 !important;
		font-family: inherit !important;
		box-sizing: border-box !important;
		transition:
			background 0.2s ease,
			border-color 0.2s ease,
			box-shadow 0.2s ease,
			transform 0.2s ease,
			opacity 0.2s ease !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button--prev,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button--prev,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button--prev{
		left: -18px !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button--next,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button--next,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button--next{
		right: -18px !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button::before,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button::before,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button::before{
		content: "" !important;
		position: absolute !important;
		top: 50% !important;
		left: 50% !important;
		display: block !important;
		width: 10px !important;
		height: 10px !important;
		border-top: 2px solid currentColor !important;
		border-right: 2px solid currentColor !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button::after,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button::after,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button::after{
		content: none !important;
		display: none !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button--prev::before,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button--prev::before,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button--prev::before{
		transform: translate(-35%, -50%) rotate(-135deg) !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button--next::before,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button--next::before,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button--next::before{
		transform: translate(-65%, -50%) rotate(45deg) !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button:hover:not(:disabled),
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button:hover:not(:disabled),
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button:hover:not(:disabled){
		background: #111 !important;
		border-color: #111 !important;
		color: #fff !important;
		box-shadow: 0 10px 24px rgba(0,0,0,0.14) !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button:active:not(:disabled),
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button:active:not(:disabled),
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button:active:not(:disabled){
		transform: translateY(-50%) scale(0.96) !important;
	}

	.cmiHomeCarousel .cmiHomeCarousel__button:disabled,
	.cmiHomeCards.cmiHomeCards--pickup .cmiHomeCarousel--pickup .cmiHomeCarousel__button:disabled,
	.cmiHomeCards--about .cmiHomeCarousel--about .cmiHomeCarousel__button:disabled{
		opacity: 0.28 !important;
		cursor: default !important;
		box-shadow: none !important;
	}
}

@media screen and (max-width: 767px){

	.cmiHomeCarousel .cmiHomeCarousel__controls,
	.cmiHomeCarousel .cmiHomeCarousel__dots{
		display: none !important;
	}
}



/* =============================
   CMI HOME ARTICLE pagination dots / final
   カルーセルではないARTICLEページング用。PICK UPのJS/CSSに干渉させない。
============================= */
.cmiHomeArticlePager,
.cmiHomeCards__pagination.cmiHomeArticlePager{
	width: 100% !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	margin: 38px 0 0 !important;
	padding: 0 !important;
}

.cmiHomeArticlePager .cmiHomeArticlePager__dots,
.cmiHomeArticlePager .cmiHomeCarousel__dots{
	display: flex !important;
	position: static !important;
	left: auto !important;
	bottom: auto !important;
	z-index: auto !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}

.cmiHomeArticlePager .cmiHomeArticlePager__dot,
.cmiHomeArticlePager .cmiHomeCarousel__dot{
	appearance: none !important;
	-webkit-appearance: none !important;
	display: block !important;
	width: 7px !important;
	height: 7px !important;
	min-width: 7px !important;
	min-height: 7px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #111 !important;
	border-radius: 999px !important;
	background: #fff !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: -9999px !important;
	overflow: hidden !important;
	cursor: pointer !important;
	opacity: 1 !important;
	box-sizing: border-box !important;
	text-decoration: none !important;
	transition:
		background 0.2s ease,
		transform 0.2s ease,
		opacity 0.2s ease !important;
}

.cmiHomeArticlePager .cmiHomeArticlePager__dot.is-active,
.cmiHomeArticlePager .cmiHomeCarousel__dot.is-active,
.cmiHomeArticlePager .cmiHomeArticlePager__dot[aria-current="true"],
.cmiHomeArticlePager .cmiHomeCarousel__dot[aria-current="true"]{
	background: #111 !important;
	transform: scale(1.15) !important;
	pointer-events: none !important;
}

.cmiHomeArticlePager .cmiHomeArticlePager__dot:focus-visible,
.cmiHomeArticlePager .cmiHomeCarousel__dot:focus-visible{
	outline: 2px solid #111 !important;
	outline-offset: 4px !important;
}

@media screen and (min-width: 768px){
	.cmiHomeCards--about .cmiHomeCards__grid--about,
	.cmiHomeCards__grid--about.cmiHomeCards__grid--article{
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 18px !important;
	}
}

@media screen and (max-width: 767px){
	.cmiHomeArticlePager,
	.cmiHomeCards__pagination.cmiHomeArticlePager{
		margin-top: 32px !important;
	}

	.cmiHomeArticlePager .cmiHomeArticlePager__dots,
	.cmiHomeArticlePager .cmiHomeCarousel__dots{
		gap: 7px !important;
	}
}
