@charset "UTF-8";
/* CSS Document */

/* =========================================================
	 各ページpageIntro背景
	 ========================================================= */

/* ご意見ボックス お客さまからの声 */
.voice .pageIntro,
.activity .pageIntro{
	background: rgba(198 219 0 / 0.1);
}
/* お得な情報・正直情報 */
.tips .pageIntro{
	background: rgba(238 114 3 / 0.1);
	padding: 26px 0 32px 0;
}
.tips .cardGrid{
	margin-top:0;
}

/* =========================================================
	 pageContent（本文：白背景は pageMain 共通に任せる）
	 ========================================================= */
.pageContent .pageMain__inner{
	max-width: 800px;
}
/* =========================================================
	 注意文
	 ========================================================= */
.voiceNotice{
	margin:0 0 22px;
	padding:0 0 35px 0;
	border-bottom:1px solid var(--green);
	background:#fff;
}
.voiceNotice__title{
	margin:0 0 10px;
	font-size:18px;
	font-weight:800;
	color:var(--red);
}
.voiceNotice__list{
	margin:0;
	padding-left:28px;
	font-size: 15px;
	font-weight: 500;
}
.voiceNotice__item{
	line-height:2.4;
	position: relative;
}
.voiceNotice__item::before{
	content: "";
	background: var(--green);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	position: absolute;
	left: -18px;
	top: 13px;
}
.voiceNotice__sub{
	color:var(--red);
	font-size:12px;
	line-height: 1.4;
	display: inline-block;
	text-indent: -1em;
	padding-left: 2em;
}
.voiceNotice__link{
	text-decoration:underline;
}
.voiceNotice__link:hover{
	opacity:0.7;
}

/* =========================================================
	 フォーム
	 ========================================================= */

.voiceForm{
	margin-top:18px;
}
.voiceField{
	margin-top:30px;
}
.voiceField__label{
	display:block;
	margin:0 0 15px 0;
	font-size:16px;
	font-weight:800;
	color:var(--green);
}
.voiceField__req{
	display:inline-block;
	margin-left:8px;
	padding:2px 6px;
	font-size:12px;
	line-height:1;
	color:#fff;
	background:#d00000;
	border-radius:2px;
	vertical-align:middle;
}
.voiceField__control{
	width:100%;
}
.voiceField__control input{
	cursor: pointer;
	color: var(--green);
}
.voiceField__input{
	width:100%;
	height:40px;
	padding:0 12px;
	border:1px solid #d9d9d9;
	border-radius:5px;
	font-size:14px;
	box-sizing:border-box;
}
.voiceField__textarea{
	width:100%;
	min-height:180px;
	padding:10px 12px;
	border:1px solid var(--border);
	border-radius:3px;
	font-size:14px;
	line-height:1.7;
	resize:vertical;
	box-sizing:border-box;
}
/* focus */
.voiceField__input:focus,
.voiceField__textarea:focus,
.voiceSelect__select:focus{
	outline:none;
	border-color:#0a8a35;
	box-shadow:0 0 0 3px rgba(10,138,53,0.12);
}
/* select */
.voiceSelect{
	position:relative;
}
.voiceSelect__select{
	width:100%;
	height:40px;
	padding:0 40px 0 12px;
	border:1px solid var(--border);
	border-radius:3px;
	font-size:14px;
	box-sizing:border-box;
	appearance:none;
}
.voiceSelect::after{
	content:"";
	position:absolute;
	right:14px;
	top:50%;
	width:8px;
	height:8px;
	border-right:2px solid var(--green);
	border-bottom:2px solid var(--green);
	transform:translateY(-60%) rotate(45deg);
	pointer-events:none;
}
/* file */
.voiceField--file .voiceField__file{
	font-size:14px;
}
.voiceField__note{
	margin:12px 0 0;
	font-size:12px;
	color:#777;
}

/* =========================================================
	 同意ブロック
	 ========================================================= */
.voiceAgree{
	margin-top:42px;
	padding-top:42px;
	border-top:1px solid var(--green);
	text-align:center;
}
.voiceAgree__label{
	display:flex;
	align-items:center;
	justify-content: center;
	gap:10px;
	cursor:pointer;
}
/* ===== checkbox 本体 ===== */
.voiceAgree__check{
	appearance:none;
	-webkit-appearance:none;
	width:22px;
	height:22px;
	flex-shrink:0;
	background:#fff;
	border:1px solid #000;
	border-radius:2px;
	cursor:pointer;
	display:inline-grid;
	place-content:center;
	transition:border-color .15s ease;
}
/* チェックマーク */
.voiceAgree__check::before{
	content:"";
	width:10px;
	height:6px;
	border-left:2px solid transparent;
	border-bottom:2px solid transparent;
	transform:rotate(-45deg) scale(0);
	transition:transform .12s ease;
}
/* checked 時 */
.voiceAgree__check:checked{
	border-color:var(--green);
}
.voiceAgree__check:checked::before{
	border-left-color:var(--green);
	border-bottom-color:var(--green);
	transform:rotate(-45deg) scale(1);
}
/* focus*/
.voiceAgree__check:focus-visible{
	outline:none;
	box-shadow:0 0 0 3px rgba(0,160,0,.2);
}
/* テキスト */
.voiceAgree__text{
	font-weight: 700;
	font-size: 20px;
	line-height:1.6;
}
/* hover しても薄くならないように */
.voiceAgree__label:hover .voiceAgree__check{
	opacity:1;
	filter:none;
}
.voiceAgree__link{
	display:block;
	margin-top:8px;
	font-size:14px;
	color:var(--green);
}
.voiceAgree__link a{
	display: inline-block;
 text-decoration:underline;
}
.voiceAgree__hint{
	margin:12px auto 0 auto;
	font-size:12px;
	line-height:1.7;
	color:#666666;
	text-align: left;
	width: fit-content;
}

/* =========================================================
	 送信ボタン
	 ========================================================= */
.voiceSubmit{
	margin-top:22px;
	display:flex;
	justify-content:center;
}
.voiceSubmit__btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:0 20px;
	height:56px;
	border-radius:4px;
	cursor: pointer;
 	transition: all 0.3s;
}
/* =========================================================
	 voice-check
	 ========================================================= */
.voiceCheckLead{
	margin:0 0 40px 0;
	text-align:center;
	font-size:14px;
	line-height:1.8;
}
/* 確認リスト */
.voiceCheck{
	border-top:1px solid var(--green);
}
.voiceCheck__row{
	padding:18px 0;
	border-bottom:1px solid var(--green);
}
.voiceCheck__label{
	margin:0 0 15px;
	font-size:15px;
	font-weight:800;
	color:var(--green);
}
.voiceCheck__value{
	margin:0;
	font-size:14px;
	line-height:1.8;
	word-break:break-word;
}
/* ボタン */
.voiceCheckBtn{
	margin-top:50px;
	display:flex;
	justify-content:space-between;
	gap:20px;
}
/* =========================================================
	 voice-thanks
	 ========================================================= */
.voiceThanks{
	text-align:center;
}
.voiceThanks__text{
	margin:0 0 32px;
	font-size:16px;
	font-weight:500;
	line-height:2;
	color:#333;
}
.voiceThanks__btn{
	display:flex;
	justify-content:center;
}

/* =========================================================
	 pagination
	 ========================================================= */

.pagination{
	margin:40px 0 0;
	display:flex;
	justify-content:center;
}
.pagination__list{
	display:flex;
	align-items:center;
	gap:8px;
	list-style:none;
	padding:0;
	margin:0;
}
.pagination__item{
	font-size:14px;
	font-weight:700;
}
.pagination__link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:32px;
	height:32px;
	padding:0 8px;
	border-radius:50%;
	text-decoration:none;
}
/* current */
.pagination__item.is-current .pagination__link{
	background:var(--lime);
	color:#fff;
}
/* disabled */
.pagination__item.is-disabled .pagination__link{
	color:var(--border);
	pointer-events:none;
}
/* ellipsis */
.pagination__item.is-ellipsis .pagination__link{
	pointer-events:none;
}
/* =========================================================
   voice detail
   ========================================================= */
/* 本文幅 */
.voiceDetailBody{
  max-width: 800px;
}
/* VOICE → 改善！ */
.voiceFlow{
  position: relative;
	width: 1000px;
  margin: 80px auto 0 auto;
  display: flex;
	justify-content: center;
  gap: 36px;
}
.voiceFlow__box{
  position: relative;
  padding: 50px 40px;
	height: auto;
	width: calc((100% - 36px)/2);
}
.voiceFlow__box--voice{
  background: #e6e6e6;
	position: relative;
}
/* 矢印 */
.voiceFlow__box--voice::after{
	content: "";
	position: absolute;
	background: url(../images/icon_box_arrow.svg);
	width: 76px;
	height: 74px;
	background-size: 76px 74px;
	right:-55px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
}
.voiceFlow__box--improve{
  background: #fff;
	position: relative;
}
.voiceFlow__text{
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.9;
}
/* 吹き出しバッジ（HTML版） */
.voiceFlow__badge{
  position: absolute;
  left: -20px;
  top: -40px;
  margin: 0;
  line-height: 1;
  z-index: 2;
}
.voiceFlow__badge img{
  display: block;
  width: 82px;
  height: 82px;
}
/* 本文 */
.contentArticle{
  margin-top: 10px;
}
.contentArticle p{
	margin: 16px 0 50px 0;
	font-size: 16px;
	line-height: 1.9;
}
.contentMedia img{
  max-width: 100%;
  display: block;
}
.contentRichText{
  margin: 16px 0 50px 0;
  font-size: 16px;
  line-height: 1.9;
}
.contentRichText p{
  margin: 0 0 14px;
	text-align: justify;
}
.contentRichText p:last-child{
  margin-bottom: 0;
}
/* 戻る */
.voiceBack{
  margin-top: 34px;
  display: flex;
  justify-content: center;
}
.contentArticle__day{
	color: var(--cardBorder);
	font-size: 14px;
	margin-top: 10px;
	letter-spacing: 0.05em;
	text-align: right;
}

/* =========================================================
	 NEWS一覧
	 ========================================================= */
.news .pageMain{
	padding: 0 0 70px 0;
}
.news .pageIntro{
	padding: 26px 0 18px 0;
}	
.newsTitle{
	margin-bottom: 40px;
	line-height: 1.6;
}
.newsTitle .newsRow__body{
	font-weight: 700;
}
.newsArea .container{
	width:800px;
	margin: 0 auto 80px auto;
}


/* =========================================================
	 検索結果
	 ========================================================= */
.searchResult{
	min-height: calc(100vh - var(--header-h));
	padding-bottom:48px;
}
.searchResult__inner{
	max-width: 800px;
	margin: 0 auto;
}
.searchResult__title{
	margin: 0 0 24px;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.6;
}
.searchResult__list{
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--border);
}
.searchResult__item{
	border-bottom: 1px solid var(--border);
}
.searchResult__link{
	display: block;
	padding: 14px 0;
	color: inherit;
	text-decoration: none;
	line-height: 1.6;
	overflow-wrap: break-word;
	word-break: break-word;
}
.searchResult__empty{
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--border);
	line-height: 1.8;
}
.searchResult__back{
	margin-top: 18px;
}
.searchResult__backLink{
	text-decoration: underline;
}

/* ページネーション（WP標準出力に合わせて調整しやすいように最低限） */
.searchResult__pager{
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.searchResult__pagerLink{
  padding: 8px 10px;
  border: 1px solid #ddd;
  text-decoration: none;
  color: inherit;
}

.searchResult__pagerLink.is-current{
  font-weight: 700;
}



/* =========================================================
	 ここからSP
	 ========================================================= */
@media screen and (max-width: 812px){
	/* ご意見ボックス */
	.voice .pageIntro{
		padding: 16px 0 42px 0px;
	}
	.pageContent .pageMain__inner{
		max-width: 100%;
	}
	.voiceNotice{
		padding:0 0 35px 0;
	}
	.voiceNotice__title{
		font-size: 15px;
	}
	.voiceNotice__list{
		font-size: 14px;
	}
	.voiceNotice__item{
		line-height: 1.8;
		margin-bottom: 12px;
	}
	.voiceNotice__item:last-child{
		margin-bottom: 0;
	}
	.voiceNotice__item::before{
		top:7px;
	}
	.voiceNotice__sub{
		text-indent:-1em;
		padding: 10px 0 0 1em;
	}
	.voiceField__label{
		font-size:13px;
	}
	/* ボタン：SP共通幅（ルール準拠） */
	.voiceAgree__text{
		font-size: 18px;
	}
	.voiceSubmit{
		padding:0 10px;
	}
	.voiceSubmit__btn{
		width:100%;
	}
	.voiceCheckBtn{
		margin-top: 30px;
		align-items:center;
	}
	.voiceCheckBtn .btn{
		width:100%;
		max-width:360px;
	}
	.voiceThanks__text{
		font-size:14px;
	}
	.voiceThanks__btn .btn{
		width:100%;
		max-width:360px;
	}
	/* ページネーション */
	.pagination{
		margin-top:28px;
	}
	.pagination__item{
		font-size: 12px;
	}
	.pagination__list{
		gap:6px;
	}
	.pagination__link{
		min-width:36px;
		height:36px;
	}

	/* =========================================================
   voice detail
   ========================================================= */
	 .contentArticle{
		margin: 0;
	 }
  .voiceDetailBody{
    max-width: 100%;
  }
	.voiceFlow{
		width: 100%;
		margin: 40px auto 0 auto;
		flex-direction: column;
		padding: 0 20px 30px 20px;
		gap: 30px;
	}
	.voiceFlow__box{
		padding: 30px;
		height: auto;
		width: 100%;
	}
	/* 矢印 */
	.voiceFlow__box--voice::after{
		width: 50px;
		height: 48px;
		background-size: 50px 48px;
		right:36%;
		left: auto;
		top: auto;
		bottom: -42px;
		transform:translateX(-50%) rotate(90deg);
	}
	.voiceFlow__text{
		font-size: 16px;
		font-weight: 600;
		line-height: 1.8;
	}
	/* 吹き出しバッジ */
	.voiceFlow__badge{
		left: -10px;
		top: -25px;
	}
	.voiceFlow__badge img{
		width: 52px;
		height: 52px;
	}
		/* =========================================================
		NEWS一覧
		========================================================= */
	.newsTitle{
		margin-bottom: 20px;
	}
	.newsArea .container{
		width:100%;
		margin: 0 auto 40px auto;
	}
	.newsArea .newsFaq__col:nth-child(1){
		padding: 0;
	}
	.newsArea .newsFaq__col:nth-child(1)::before{
		background-image:none;
	}
		/* =========================================================
		詳細
		========================================================= */
	.tips .pageIntro{
		padding:12px 0 20px 0px;
	}

	/* =========================================================
		検索結果
		========================================================= */
	.searchResult{
		padding:0;
	}
	.searchResult__inner{
		max-width: 100%;
		padding: 0 20px;
	}
	.searchResult__title{
		font-size: 18px;
	}
	.searchResult__link{
		font-size: 14px;
	}

}

/* =========================================================
	 SPではhover無効化
	 ========================================================= */
@media (hover: none) and (pointer: coarse){
	.voiceNotice__link:hover,
	.voiceAgree__link:hover{
		opacity:1;
	}
}
