/* iOSでのデフォルトスタイルをリセット */


body.formPage .breadcrumb{
	padding-bottom:30px;
}

/* ---- */

.formHeader{
	background:#F9F8F4;
}

.formHeader .inner{
	width:100%;
	max-width:1080px;
	margin:0 auto;
}
.formHeader__tel{
	background:#fff;
	padding:40px 20px;
	border-radius:10px;
	box-shadow: 0px 0px 15px 5px rgba(90, 85, 67, 0.32);

	/*display:flex;*/
	display:none;
	flex-direction: column;
	gap: 20px;

	margin-bottom:40px;
	
}
.formHeader__tel .txt{
	text-align:center;
}
.formHeader__tel .formHeader__tel_btn {
	text-align:center;
}
.formHeader__tel .formHeader__tel_btn img{
	width:100%;
	max-width:311px;
	height:auto;
}

/* Wide Breakpoint */
@media screen and (max-width: 1080px) {
	.formHeader .inner{
		width: calc(100% - 30px);
	}
}


@media screen and (max-width: 767px) {
	.formHeader__tel{
		padding:15px 15px;
	}
	.formHeader__tel .formHeader__tel_btn img{
		width:100%;
		max-width:200px;
		height:auto;
	}
}
/* ---- */
.formHeader__leadBox{
	display:flex;
	flex-direction: column;
	gap: 20px;
}
.formHeader__leadBox .tit{
	text-align:center;
	color:#258C56;
	font-size: 1.5rem;  /* → 24px */
	text-align:center;
	font-weight:bold;
}
.formHeader__leadBox .txt{
	text-align:center;
}




.formHeader.contact-confirm{
}
.formHeader.contact-confirm .setTitBlock{
	margin-bottom:0;
}
.formHeader.contact-confirm .formHeader__leadBox{
	height:1px;
}
.contactFormArea.contactFormArea-kengaku.contact-confirm{
	margin-top:30px;
}

/* ---- */
.contactFormArea{
	width:100%;
	max-width:1080px;
	margin:30px auto 0;
}
@media screen and (max-width: 1080px) {
	.contactFormArea{
		width: calc(100% - 30px);
	}
}

.form-attention{
	margin-bottom:30px;
}

#form_1{
	text-align: center;
}

.contactFormArea input {
    font-family : inherit;
    letter-spacing: inherit;
}

.exmsg{
	color:#870404;
	font-size:14px;
}
.formArea{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	padding:30px 0;
}
.formArea h1{
	font-size:30px;
	font-weight:bold;
	margin-bottom:50px;
}
.formArea h1 span{
	margin-left:20px;
}

/* ----------
contactTelOnly
   ---------- */
.contactTelOnly{
	border:solid 5px #389D47;
	border-radius:20px;
	overflow:hidden;
	margin-bottom: clamp(30px, 9.6552vw + -6.2069px, 100px); /* Vary between 375px and 1100px */
	padding:15px;
}

/* ---- */
.contactTelOnly .contactTelOnly_title{
	font-size: clamp(16px, 0.9195vw + 8.9655px, 20px); /* Vary between 765px and 1200px */
	text-align:center;
	margin-bottom: clamp(15px, 0.6897vw + 12.4138px, 20px); /* Vary between 375px and 1100px */
}

/* ---- */
.contactTelOnly .contactTelOnly_tel{
}
.contactTelOnly .contactTelOnly_tel a{
	font-family: "lato", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: clamp(20px, 4.5977vw + -15.1724px, 40px);
    color: #006835 !important;
    display: flex ;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
}
.contactTelOnly .contactTelOnly_tel a img{
}

/* ---- */
.contactTelOnly .contactTelOnly_hours{
	text-align:center;
    font-weight: 700;
    font-style: normal;
	font-size: clamp(16px, 0.9195vw + 8.9655px, 20px); /* Vary between 765px and 1200px */
    color: #006835 !important;
}

/* Wide Breakpoint */
@media screen and (max-width: 1100px) {
  .example {
    width: calc(100% - 30px);
  }
}

/* SP */
@media screen and (max-width: 767px) {
	.contactTelOnly .contactTelOnly_tel a img{
		width:25px;
	}
	.contactTelOnly{
		padding:7px;
	}
}


/*-------------------
 *
 * ------------------ */
.contactFormArea-lead{
	margin-bottom:38px;
	font-size: clamp(16px, 0.9195vw + 8.9655px, 20px); /* Vary between 765px and 1200px */
}

/*-------------------
 *
 * ------------------ */
.formTbl-wrap{
	border:solid 5px #389D47;
	border-radius:20px;
	overflow:hidden;
	margin-bottom: clamp(20px, 4.1379vw + 4.4828px, 50px); /* Vary between 375px and 1100px */
}

/*-------------------
 *
 * ------------------ */
.formTblArea{
	background:#F9F8F4;
	border-radius:10px;
	padding:30px;
}

@media screen and (max-width: 768px) {
	.formTblArea{
		padding:10px;
	}
}

/*-------------------
 *
 * ------------------ */
.formTbl{
	width:100%;
	border-collapse:collapse;
}
.formTbl caption{
	font-size:clamp( 17px , 2.2vw ,  20px);
	font-weight:bold;
	text-align:left;
	margin-bottom:15px;
}
.formTbl th{
	color: #153E0E;
	width: 245px;
	padding:10px 25px;
	text-align:left;
	vertical-align: top;
	background:none;
	font-weight:normal;
	position:relative;
}
.formTbl th span{
	display:inline-block;
	/*background:#e9737f;*/
	text-align:center;
	color:#E60101;

}
.formTbl th span.nini{
	background:#337ab7;
}
.formTbl td{
	color: #333;
	padding: 5px 25px 25px;
	vertical-align: middle;
}
.contactFormArea input[type="text"],
.contactFormArea input[type="email"],
.contactFormArea input[type="tel"],
.contactFormArea select,
.contactFormArea textarea
{
    display: block;
    width: 100%;
	font-size: 1rem;
    padding: 15px 10px;
    line-height: 1.42857143;
    color: #555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
	box-sizing:border-box;
}

.contactFormArea select {
  /* ネイティブ矢印を消す */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

  /* サイズ・余白 */
  width: 100%;
  box-sizing: border-box;
  padding-right:40px;
  font-size: 16px;
  line-height: 1.4;

  /* 枠線・角丸 */
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;

  /* カスタム矢印アイコン */
  background-image: url('../img/form-select-arrow.png');
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px auto;
}

/* フォーカス時のスタイル（お好みで調整） */
/*
.contactFormArea select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
}
*/

.contactFormArea textarea{
	height:130px;
	padding:15px 10px;
}
.chklabel{
	display:block;
    font-size: 16px;
	padding:5px 0;
}



/**/




/* -- */
.ziparea{
	display:flex;
	justify-content:left;
	flex-wrap:wrap;
}
.ziparea #zip{
	flex-basis:150px;
}
.ziparea input[name="zipBtn"]{
	flex-basis:150px;
	margin-left:10px;
}


.formError{
    position:static !important;
    margin: 5px 0 !important;
    display: block;
	color:#870404;
}

/* ----- */
.lblsLst{
	display:flex;
	flex-wrap:wrap;
	gap:5px 5px;
}
.lblsLst label{
	width:calc( (100% - 10px) / 3);
	font-size:15px;
	background:#fff;
	border-radius:5px;
	padding:5px;
	border:solid 1px #ccc;
}
/* ----- */

.fileuploadLst{
	display:flex;
	flex-wrap:wrap;
	gap:10px 0;
}
.fileuploadLst li{
	width:100%;
}

/* ----- */
.confirm{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
}
/*.confirm__back{
	margin-right:15px;
}
.confirm__back input[type="submit"]{
	background:#727272;
}
*/
.confirm__send input[type="submit"]{

}

.error-messages{
	padding:20px 0;
	color:#870404;
}

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

	.formArea h1{
		font-size:16px;
	}
	.formArea h1 img{
		display:block;
		margin-bottom:15px;
	}
	.formTbl{
		width:100%;
	}
	.formTbl th{
		display:block;
		width:100%;
		box-sizing:border-box;
		padding:5px;
		font-weight:bold;
	}
	.formTbl td{
		display:block;
		width:100%;
		box-sizing:border-box;
		padding:5px 5px 20px;
		margin-bottom:20px;
		border-bottom:solid 1px #ccc;
	}
	.formTbl th br{
		display:none;
	}

}

/* ボタンエリア全体 */
.contactFormArea .button-area {
    text-align: center;
    margin-top: 20px;

	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:10px;
}



/* リセットボタン */
/* リセットボタン */
.confirm__back button,
button.confirm-back-button,
.contactFormArea input.reset-button {
    -webkit-appearance: none; /* デフォルトスタイルリセット */
    appearance: none; /* デフォルトスタイルリセット */
    background-color: #fff; /* 背景色を白に */
    color: #333; /* 文字色を黒に */
    border: 1px solid #666; /* 枠線 */
    border-radius: 5px; /* 角丸 */
    padding: 15px 26px; /* 余白を調整 */
    font-size: 15px; /* フォントサイズ */
    cursor: pointer; /* カーソル */
    font-family: inherit; /* フォントを親要素から継承 */
    letter-spacing: inherit; /* 文字間隔を親要素から継承 */
	min-width:130px;
}


.contactFormArea input.reset-button:hover {
    background-color: #f0f0f0; /* ホバー時の背景色 */
}


/* 確認画面へボタン (confirm-button クラスを付与) */
.contactFormArea button.confirm-button{
	border: none;
    font-size: 15px;
    font-weight: normal;
    padding: 15px 26px;
	background-color: #808080; /* グレー系の背景色に変更 */
	color:#fff;
	position: relative;
	font-family: inherit;
    border-radius: 5px; /* 角丸 */
	min-width:130px;
}

.contactFormArea button.confirm-button:after{
    position: absolute;
    border: none; /* button.confirm-button には不要なので削除 */
    content: "";
    top: 0; /* :after の枠線をなくすので 0 に */
    bottom: 0; /* :after の枠線をなくすので 0 に */
    left: 0; /* :after の枠線をなくすので 0 に */
    right: 0; /* :after の枠線をなくすので 0 に */
}


.contactFormArea button.confirm-button:hover{
	background-color: #a0a0a0; /* ホバー時の背景色を少し明るく */
}

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

	.confirm__back,
	.confirm__send{
		min-width:100%;
	}

	.confirm__back button,
	button.confirm-back-button,
	.contactFormArea input.reset-button ,
	.contactFormArea button.confirm-button{
		min-width:100%;
	}
}



.zipBox{
	display:flex;
	justify-content:flex-start;
	align-items:center;
	gap:0 10px;
}
.zipBox #postal_code{
	max-width:200px;
}
.zipBox input[type="button"]{
}

.zipBox .btn-zip{
	background:#258C56;
	padding:5px;
	width:100px;
}

.zipBox .btn-zip:hover{
	background:#fff;
	color:#258C56;
}

.addressBox{
	display:flex;
	justify-content:left;
	flex-wrap:wrap;
	gap:10px 10px;
}



/* --- */
.submitArea{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:10px 10px;
	margin-bottom:80px;
}
.submitArea li,
.submitArea form{
	width:100%;
	max-width:300px;
}
.submitArea li .btn,
.submitArea form .btn{
	padding-top:10px;
	padding-bottom:10px;
	font-size:1rem;
	padding-left:0 !important;
}
/* --- */


.submitArea-confilm {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.submitArea-confilm form {
  flex: 1 1 0;   /* ボタンの親formに指定するのがポイント！ */
  max-width: 280px; /* 好きな最大幅を指定 */
}







@media screen and (max-width: 767px) {
	.submitArea-confilm {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 10px;
	}

	.submitArea-confilm form {
		width: 100%;           /* フォームを親の幅に揃える */
		max-width: 280px;      /* 最大幅を指定（お好みで） */
		box-sizing: border-box;
	}
	.submitArea{
		margin-bottom:50px;
	}

}




/*-------------------
 *formPolicy_check
 * ------------------ */
.formPolicy_check{
	font-size: clamp(16px, 0.9195vw + 8.9655px, 20px); /* Vary between 765px and 1200px */
	margin-bottom: clamp(16px, 0.9195vw + 8.9655px, 20px); /* Vary between 765px and 1200px */
}
.formPolicy_check a{
	color:#E69C01;
	text-decoration: underline #E69C01;
	text-underline-offset: 6px;
}
.formPolicy_check a:hover{
	color:#000;
	text-decoration: underline #000;
}


/* ----------
kengaku-teien
   ---------- */
.kengaku-teien{
	position:relative;
}
.kengaku-teien-lst {
	display:flex;
	flex-wrap:wrap;
	gap: 20px;
}
.prefecture-group{
	width:100%;
}
select[name="prefecture"]{
	width:230px;
	margin-bottom:10px;
}

.kengaku-teien strong{
  display: inline-block;
  font-size: 18px;
  background: #AA9850;
  color:#fff;
  margin-bottom: 15px;
  padding: 5px 20px;
  border-radius:5px;
}







		/* --- ここからがカスタムチェックボックスのCSS START--- */

		/* 1. 元のチェックボックスは完全に非表示にする (変更なし) */
		.garden-checkbox.garden-item-input {
			position: absolute;
			opacity: 0;
			width: 0;
			height: 0;
			margin: 0;
			padding: 0;
		}

		/* 2. チェックボックスの見た目を作るためのコンテナ (変更なし) */
		.garden-checkboxArea {
			position: relative;
			display: inline-block;
			width: 1.5em; 
			height: 1.5em;
			vertical-align: middle;
			flex-shrink: 0;
		}

		/* 3. 【UNCHKECKED】チェックボックスの「枠」 (変更なし) */
		.garden-checkboxArea::before {
			content: '';
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			border: 1px solid #ADADAD; /* 少し薄いグレーに変更 */
			background-color: #fff;
			border-radius: 4px; /* 少し丸みを持たせる */
			box-sizing: border-box;
			transition: all 0.2s ease-in-out; /* アニメーションを追加 */
		}

		/* 4. チェックマークを::afterで作成 */
		.garden-checkboxArea::after {
			content: '';
			position: absolute;
			top: 50%;
			left: 50%;
			width: 0.4em;
			height: 0.8em;
			/* ▼▼▼【変更】チェックマークを白く、太くする ▼▼▼ */
			border-style: solid;
			border-color: #ffffff; /* チェックマークの色を白に */
			border-width: 0 3px 3px 0; /* 太さを調整 (右と下のみ) */
			
			/* ▼▼▼【変更】チェックマークの配置を微調整 ▼▼▼ */
			transform: translate(-50%, -60%) rotate(45deg);
			
			opacity: 0; /* チェックされていないときは非表示 */
			transition: opacity 0.2s;
		}


		/* 5.【CHECKED】checked状態のスタイルを追加 */
		.garden-item-input:checked + .garden-checkboxArea::before {
			/* ▼▼▼【変更】背景と枠を青に、影を追加 ▼▼▼ */
			background-color: #2582E2; /* 背景色を青に */
			border-color: #2582E2;     /* 枠線の色も同じ青に */
			/*box-shadow: 0 0 8px rgba(37, 130, 226, 0.6);*/ /* 青い光彩（グロー）効果 */
		}

		.garden-item-input:checked + .garden-checkboxArea::after {
			/* ▼▼▼【変更】チェックマークを表示する ▼▼▼ */
			opacity: 1;
		}


		/* 6. ★【DISABLED & CHECKED】disabledでも同じ見た目を維持 */
		.garden-item-input:disabled:checked + .garden-checkboxArea::before {
			background-color: #2582E2;
			border-color: #2582E2;
			box-shadow: 0 0 8px rgba(37, 130, 226, 0.6);
			opacity: 1; /* グレーアウトさせない */
		}
		.garden-item-input:disabled:checked + .garden-checkboxArea::after {
			opacity: 1; /* グレーアウトさせない */
		}

		/* 7. 【DISABLED & UNCHECKED】チェックされていないdisabled状態 (任意) */
		.garden-item-input:disabled:not(:checked) + .garden-checkboxArea::before {
			background-color: #f0f0f0; /* 少しだけ背景色を変える */
			border-color: #ccc;
			opacity: 0.7;
		} 

		/* --- ここからがカスタムチェックボックスのCSS END--- */







@media screen and (max-width: 767px) {
	.kengaku-teien strong{
	  font-size: 16px;
	  padding: 3px 20px;
	}
	select[name="prefecture"]{
		width:100%;
	}
}

/* ---- */


.garden-items-wrapper{
	display:flex;
	flex-wrap:wrap;
	gap: 20px;
}
.garden-item-block{
	width:calc( (100% - 20px) / 2);
	background:#fff;
	border-radius:10px;
	/*box-shadow: 0px 0px 15px 5px rgba(90, 85, 67, 0.1);*/
	padding:5px 10px;
}

.kengaku-teien label.garden-item{
	width:100%;
	display:flex;
	flex-wrap:wrap;
	gap: 0px 10px;
	align-items:center;
}

.kengaku-teien label .garden-checkboxArea{
	/*width:30px;*/
}
.kengaku-teien label .garden-checkboxArea input{
	display:block;
	transform: scale(1.5);
}

.garden-content{
	width:calc(100% - (30px + 10px));
}


.kengaku-teien label .garden-city{
  color: #AA9850;
}
.kengaku-teien label .garden-temple{
	color:#153E0E;
}
.kengaku-teien label .garden-name{
	font-size: 1.125rem;  /* → 18px */
	color:#153E0E;
}




.garden-item .formError{
	position:absolute !important;
}
.garden-item .formError{
	top:0px !important;
}

/* Wide Breakpoint */
@media screen and (max-width: 1100px) {
  .example {
    width: calc(100% - 30px);
  }
}

/* SP */
@media screen and (max-width: 767px) {
	.garden-items-wrapper{
		gap: 10px;
	}
	.garden-item-block{
		width:100%;
		border-radius:5px;
		padding:5px;
	}
}



/* -------------- */
.contactEnd{
	background:#F9F8F4;
}
.contactEnd .inner{
	width:100%;
	max-width:1100px;
	margin:0 auto;
}
@media screen and (max-width: 1100px) {
	.contactEnd .inner{
		max-width:calc( 100% - 30px);
	}
}




.agreeBox{
	margin-bottom:100px;
}
.agreeBox input{
	transform: scale(1.5);
}
@media screen and (max-width: 767px) {
	.agreeBox{
		margin-bottom:50px;
	}
}

.contactMethod{
	display:flex;
	flex-direction: column;
	gap: 10px;
}
.contactMethod .item{
	display:flex;
	flex-wrap:wrap;
	gap: 10px;
}
.contactMethod .item .lbl{
	width:140px;

	color: #153E0E;
    text-align: left;
    vertical-align: top;

}
.contactMethod .item .inp{
	width:calc( 100% - (140px + 10px));
}

@media screen and (max-width: 767px) {
	.contactMethod .item .lbl{
		width:100%;
	}
	.contactMethod .item .inp{
		width:100%;
	}
}


.contactAnq{
	display:flex;
	flex-wrap:wrap;
	flex-direction: column;
	gap: 10px;
}
.contactAnq .lbl{
	width:100%;
	color: #153E0E;
    text-align: left;
    font-weight: normal;
}
.contactAnq select{
	width:400px;
}
@media screen and (max-width: 767px) {
	.contactAnq select{
		width:100%;
	}
}







