@charset "utf-8";
:root{
	--mainColor: #beaf87;
	--subColor: #A19276;
	--linkColor: #0066CC;
	--basicGrey: #CCC;
	--darkGrey: #999;
	--textColor: #333;
	/* 進捗表示の三角形 */
	--arrowTriangle: polygon(0 0, 50% 50%,0 100%);
}

@layer reset, base, extra;

/* リセット */
@layer reset {
	body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dt,dd,strong,input,label,select,textarea{
		margin: 0;
		padding: 0;
	}

	ul,ol{
		list-style-type: none;
	}
}

/* 基本設定 */
@layer base{
	.formWrapper,input,label,select,textarea{
		font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', 'sans-serif';
		font-size: 15px;
	}

	select {
		padding: 5px;
	}

	input[type="text"]{
		box-sizing: border-box;
		width: 100%;
		padding: 5px;
	}

	a {
		color:var(--linkColor);
		cursor:pointer;
		text-decoration:none;
		outline:none;
	}

	a:hover {
		text-decoration:underline;
	}

	a:visited {
		color:var(--darkGrey);
	}
}

/* 追加設定 */
@layer extra{
	.pageTitle {
		margin-bottom: 40px;
		padding: 30px;
		border: 1px solid var(--basicGrey);
	}

	.pageTitle__inner{
		display: block;
		padding: 5px 0 5px 20px;
		border-left: 6px solid var(--subColor);
		line-height: 1;
		font-size: 40px;
	}

	.form-lead{
		margin-bottom: 20px;
	}

	/* フォームフロー（入力・確認・完了） */
	.form-flow {
		margin: 20px 0;
		display: flex;
	}

	.form-flow__item {
		box-sizing: border-box;
		isolation: isolate;
		position: relative;
		flex: 1;
		display: flex;
		align-items: center;
		height: 40px;
		padding-left: 10px;
		font-size: 16px;
		font-weight:900;
		color: #FFF;
		background-color: var(--mainColor);
	}

	.form-flow__item:first-child{
		z-index: 3;
	}

	.form-flow__item:nth-child(2){
		z-index: 2;
	}

	.form-flow__item:last-child{
		z-index: 1;	
		background-color: #DDD;
	}

	.form-flow__number {
		display: flex;
		font-size: 14px;
		justify-content: center;
		align-items: center;
		background-color: #FFF;
		margin: 0 10px 0 20px;
		height: 25px;
		width: 25px;
		color: var(--mainColor);
	}

	.form-flow__item:first-child .form-flow__number {
		margin: 0 10px 0 0;
	}

	.form-flow__item:last-child .form-flow__number {
		color: #FFF;
		background-color: var(--textColor);
	}

	.form-flow__item:last-child {
		color :var(--textColor);
	}

	/* 2番目・3番目左側に白抜き三角形配置
	非アクティブ時に、三角形がかかっている部分を薄くするため。 */
	.form-flow__item::before {
		content: "";
		position: absolute;
		left: 0;
		display: block;
		width: 40px;
		height: 40px;
		background-color: #FFF;
		clip-path: var(--arrowTriangle);
	}

	.form-flow__item:first-child:before{
		content: none;
	}
	
	/* 三角形矢印配置 */
	.form-flow__item::after {
		content: "";
		position: absolute;
		right: -40px;
		display: block;
		width: 40px;
		height: 40px;
		background-color: var(--mainColor);
		clip-path: var(--arrowTriangle);
	}

	.form-flow__item:last-child:after{
		content: none;
	}
	
	/* 非アクティブ / アクティブ切り替え */
	.form-flow__item {
		opacity: 0.5;
	}

	.form-flow__active {
		opacity:1;
	}

	.sectTitle {
		padding: 4px 0 4px 15px;
		margin-bottom: 20px;
		color: var(--textColor);
		border-left: solid 5px var(--textColor);
		font-size: 18px;
		font-weight: bold;
	}

	.fieldset {
		margin-bottom: 40px;
	}
	.fieldset dl {
		margin-bottom: 40px;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		border-top: 1px solid var(--basicGrey);
		border-left: 1px solid var(--basicGrey);
		border-right: 1px solid var(--basicGrey);
	}

	.fieldset :is(dt,dd){
		box-sizing: border-box;
		padding: 15px;
		border-bottom: 1px solid var(--basicGrey);
	}

	.fieldset dt {
		display: flex;
		flex-direction: column;
		justify-content: center;
		font-size: 15px;
		font-weight: bold;
		background-color: #F4F4F4;
		border-right: 1px solid var(--basicGrey);
	}

	.fieldset dd.delimit {
		border-bottom: 1px dotted #6392b1;
	}
	/* .fieldset span.err {
		color: #880000;
	} */
	.fieldset input.text.err {
		background-color: #fff8f8;
		border: 1px solid #aa6666;
	}
	.fieldset input.radio.err {
		background-color: #fff8f8;
		border: 1px solid #aa6666;
	}
	.fieldset input.checkbox.err {
		background-color: #fff8f8;
		border: 1px solid #aa6666;
	}
	.fieldset textarea.err {
		background-color: #fff8f8;
		border: 1px solid #aa6666;
	}
	.fieldset select.err {
		background-color: #fff8f8;
		border: 1px solid #aa6666;
	}
	div.errs {
		background-image: url("../imgs/warning.png");
		background-repeat: no-repeat;
		color: #880000;
		margin-top: 1em;
		margin-bottom: 1em;
		padding: 0px 0px 0px 30px;
		min-height: 32px;
		height: auto !important;
		height: 32px;
	}
	span.radioelement {
		margin-right: 1.8em;
		color: black;
	}
	span.checkelement {
		margin-right: 1.8em;
		color: black;
	}

	.form-listZip{
		display: flex;
		align-items: center;
		gap: 5px;
	}

	.zip1{
		width: 4em;
	}

	.zip2{
		width: 5em;
	}

	.form-adress__note{
		margin: 5px 0 10px;
		font-size: 13px;
	}

	.form-adress__note:last-of-type{
		margin-bottom: 0;
	}

	.form-attention__list{
		margin-bottom: 40px;
	}

	.form-attention__listItem{
		display: flex;
		gap: 10px;
		margin-bottom: 20px;
	}

	.form-attention__listItem:last-child{
		margin-bottom: 0;
	}

	.form-attention__num{
		flex-shrink: 0;
		width: 20px;
		height: 20px;
		line-height: 20px;
		text-align: center;
		font-weight: bold;
		font-size: 12px;
		border: 2px solid var(--darkGrey);
		border-radius: 50%;
	}

	.form-attention__note{
		margin-left: 10px;
		font-size: 13px;
	}

	/* カレンダー選択 */
	#selectedDateTime{
		box-sizing: border-box;
		width: fit-content;
		min-width: 308px;
		padding: 5px;
		text-align: center;
		border: 1px solid #767676;
	}

	.formIcon{
		display: flex;
		align-items: center;
		gap: 10px;
	}

	.formIcon__icon{
		flex-shrink: 0;
		width: 30px;
		height: auto;
	}

	.formIcon__icon:hover{
		cursor: pointer;
	}

	#preferred_day{
		display: none;
	}

	.form-privacy{
		margin-bottom: 40px;
		text-align: center;
	}

	.form-button {
		width: 90%;
		height: 70px;
		margin: 0 auto 20px;
		font-weight: 900;
		font-size: 21px;
		border: none;
		background-color: #6fba2c;
		box-shadow: 0px -3px 0px 0px rgba(0,0,0,0.2) inset;
		display: flex;
		text-decoration: none;
		align-items: center;
		justify-content:center;
		color: #FFF;
		border-radius: 5px;
		transition: 0.3s;
		padding-bottom: 2px;
		letter-spacing: 0.3em;
	}

	.form-button--grey{
		background-color: var(--darkGrey);
	}
	
	.form-button:hover {
		opacity:0.7;
		cursor: pointer;
	}

	.form-buttonMultiCol{
		display: flex;
		gap: 20px;
		width: 90%;
		margin-inline: auto;
	}

	.form-buttonMultiCol .form-button{
		flex: 1;
		width: 100%;
	}

	.form-checkBg{
		box-sizing: border-box;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		width: 90%;
		margin-inline: auto;
		padding: 30px;
		background-color: #F4F4F4;
	}

	.required::after {
		content: "[必須]";
		margin-left: 0.5em;
		font-weight: bold;
		color:#CF4430;
	}

	.form-srongText{
		font-weight: bold;
		color:#CF4430;
	}
}

/* プラグイン上書き */
.xdsoft_datetimepicker.xdsoft_inline{
	position: absolute;
}

/* モバイル */
@media screen and (max-width: 768px) {
	.pageTitle{
		margin-bottom: 20px;
		padding: 15px;
	}
	
	.pageTitle__inner{
		padding: 5px 0 5px 10px;
		font-size: 20px;
	}

	.formWrapper {
		width: 90%;
		margin-inline: auto;
	}

	.fieldset dl {
		display: block;
	}

	.fieldset select{
		width: 100%;
	}

	#selectedDateTime{
		flex: 1;
		width: auto;
		min-width: auto;
	}

	.form-checkBg{
		padding: 20px;
	}
}