@charset "UTF-8";

.form__content {
	padding-top: 20px;
	dl {
		width: 100%;
		border-bottom: 1px solid var(--color-border-2);
		&:first-of-type {
			border-top: 1px solid var(--color-border-2);
		}
		dt, dd {
			font-size: var(--font-s);
			line-height: 1.6;
			padding: 15px 0;
			>* {
				line-height: 1.6;
			}
			display: block;        /* とりあえずblockに */
  			height: auto;          /* 高さ自動 */
		}
		p {
			line-height: 1.6;
		}
		dt {
			position: relative;
			padding-bottom: 0;
		}
		:where(legend, label){
			> span[id^="required-"]{
				position: absolute;
				right: 0;
				top: 10px;
				display: inline-block;
				font-size: var(--font-2xs);
				line-height: 1;
				font-weight: 600;
				color: #fff;
				background-color: var(--color-secondary);
				padding: 4px 12px;
				border-radius: 50px;
			}
		}
		dd {
			padding: 10px 0 15px;
			word-break: break-all;
		}
		ul[id^="supplement-"]{
			li {
				font-size: var(--font-xs);
				line-height: 1.5;
				padding-top: 10px;
			}
		}
	}
	.form__content dl dd textarea {
		width: 100%;
		min-height: 12em;      /* すでにある指定を確保 */
		height: 100% !important; /* 親(dd)に強制フィット */
		box-sizing: border-box;
		display: block;
	  }
	@media (min-width: 1120px) {
		padding-top: 40px;
		dl {
			width: 100%;
			display: table;
			dt, dd {
				font-size: var(--font-m);
				display: table-cell;
				vertical-align: middle;
				padding: 20px;
			}
			dt {
				width: 244px;
				>legend {
					width: 80%;
				}
			}
			:where(legend, label){
				> span[id^="required-"]{
					font-size: var(--font-xs);
					top: 50%;
					transform: translateY(-50%);
					padding: 6px 12px;
				}
			}
			dd {
				width: calc(100% - 244px);
			}
			ul[id^="supplement-"]{
				li {
					font-size: var(--font-xs);
				}
			}
		}
	}
}
input, button, textarea, select {
	font-family: inherit;
	color: inherit;
	vertical-align: middle;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	outline: none;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	display: inline-block;
}
select,
button,
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
textarea {
	width: 100%;
	font-size: var(--font-m);
	padding: 10px 10px;
	background-color: #fff;
}
button,
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
dd>div:has(input[type=file]) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	div.image{
		inline-size: 150px;
		aspect-ratio: 1;
		background: rgb(128 128 128 / 0.5);
		display: flex;
		align-items: center;
		justify-content: center;
		font-weight: bold;
		margin: 10px 10px 10px 0;
	}
}

input::placeholder,
textarea::placeholder {
	color: #DCDCDC;
	font-weight: 400;
}
/* Edge */
input::-ms-input-placeholder,
textarea::-ms-input-placeholder {
	color: #DCDCDC;
	font-weight: 400;
}

.form__content--button {
	text-align: center;
	padding-top: 40px;
	>p {
		padding-bottom: 60px;
	}
	div {
		&+div {
			margin-top: 20px;
		}
	}
}
fieldset {
	&:not(:has(> fieldset)) {
		& > dl {
			ul:has(input + label) {
				> li {
					flex: 0 0 auto;
					display: flex;
					align-items: center;
					flex-flow: row nowrap;
					&+li {
						padding-top: 15px;
					}
					> input {
						flex: 0 0 auto;
						inline-size: var(--font-l);
						block-size: var(--font-l);
						margin: 0;
						cursor: pointer;
						+ label[for] {
							line-height: 1.75;
							cursor: pointer;
							user-select: none;
							flex: 0 1 auto;
							font-size: var(--font-s);
							padding-left: 15px;
						}
					}
				}
			}
		}
	}
}
.order__detail {
	padding: 10px 4vw;
	background-color: #fff;
	dl {
		display: flex;
		align-items: center;
		&+dl {
			padding-top: 10px;
			margin-top: 10px;
			border-top: 1px solid var(--color-border-2);
		}
		>dt, dd {
			line-height: 1.75;
			width: calc(100% * 3);
		}
		dd {
			text-align: right;
		}
	}
	.total {
		padding-top: 10px;
		margin-top: 10px;
		border-top: 1px solid var(--color-border-1);
		p {
			text-align: right;
		}
	}
	@media (min-width: 1120px) {
		padding: 30px;
		dl {
			&+dl {
				padding-top: 15px;
				margin-top: 15px;
			}
		}
		.total {
			padding-top: 20px;
			margin-top: 15px;
		}
	}
}
img {
	&.square-image {
		display: block;
		block-size: 150px;
		aspect-ratio: 1;
		background: var(--color-tgray);
		object-fit: scale-down;
		margin-block: var(--gap-100);
	}
}