.form-sec {
	margin: 3em 0
}

.form-sec:first-child {
	margin-top: 0
}

.form-sec-ttl {
	margin-bottom: 1.2em;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .01em
}

.form-sec-lead {
	margin-top: 1em;
	margin-bottom: 1.5em;
	line-height: 1.7
}

.form-box {
	--form-inner_pd: 1.5em;
	padding: 1.3em var(--form-inner_pd);
	border-radius: var(--radius-s);
	box-shadow: var(--shadow2);
	background: #fff
}

.form-box._mail {
	padding-top: 2.5em;
	padding-bottom: 2.5em
}

.form-tbl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between
}

.form-tbl .row {
	position: relative;
	width: 100%;
	font-size: 1.5rem
}

.form-tbl .row:not(:last-child):not(.last) {
	margin-bottom: 1em;
	padding-bottom: 1em
}

.form-tbl .row:not(:last-child):not(.last):before {
	content: "";
	position: absolute;
	bottom: 0;
	left: calc(var(--form-inner_pd) * -1);
	right: calc(var(--form-inner_pd) * -1);
	height: 1px;
	background: var(--color-lgy1)
}

.form-box .form-tbl .row:before {
	left: calc(var(--form-inner_pd) * -1);
	right: calc(var(--form-inner_pd) * -1)
}

.form-tbl > .row > dt {
	position: relative;
	margin-bottom: .5em;
	font-size: 1.3rem;
	line-height: 1.5;
	font-weight: 700
}

.form-tbl .req {
	margin-left: 1.2em;
	display: inline-block;
	color: var(--color-red);
	font-size: 1.1rem;
	font-weight: 700;
	vertical-align: .05em
}

.form-tbl label {
	cursor: pointer
}

.form-tbl > .row > dd {
	line-height: 1.7
}

.form-tbl .sub-row-group {
	padding-top: .25em
}

.form-tbl .sub-row {
	width: 100%;
	margin: .85em 0
}

.form-tbl .sub-row:last-child {
	margin-bottom: .5em
}

.form-tbl .sub-row label {
	display: inline-block;
	margin-bottom: .3em;
	font-size: 1.3rem
}

.separator {
	display: inline-block;
	padding: 0 .5em
}

.type-confirm .form-tbl > .row > dt {
	margin-bottom: 1em
}

.input-tel {
	display: flex;
	gap: 10px
}

.input-name {
	display: -webkit-box;
	display: flex;
	gap: 1em
}

.input-name-group {
	flex: 1
}

.input-name-group ._label {
	display: block;
	margin: .2em 0 .3em;
	font-size: 1.2rem
}

.input-zip {
	display: flex;
	align-items: center;
	gap: .5em
}

.input-zip .zip1 {
	width: 40%
}

.input-zip .zip2 {
	width: 60%
}

.form_tbl .row.input-address {
	margin-bottom: 1em
}

.input-ymd {
	display: flex;
	align-items: baseline;
	gap: 0 1em
}

.input-radio label {
	position: relative;
	display: inline-block;
	margin-right: 1.5em;
	padding: .5em 0 .5em 1.6em
}

.credit-point {
	display: block;
	width: fit-content;
	margin-top: .5em;
	padding: .7em 1.2em;
	font-size: 1.2rem;
	color: #fff;
	font-weight: 700;
	line-height: 1;
	border-radius: 1.5em;
	background: var(--color-red)
}

.form-note {
	margin: .5em 0
}

.form-box > .form-note {
	margin-top: 1.5em
}

.form-note small {
	font-size: 1.2rem;
	line-height: 1.8
}

.form-agree {
	position: relative;
	margin-top: 1.5em;
	padding: 2em 1em;
	text-align: center;
	border-top: 2px solid var(--color-main);
	border-bottom: 2px solid var(--color-main)
}

.form-agree .txt {
	margin-bottom: 1.5em
}

.form-agree label {
	font-size: 1.6rem;
	font-weight: 700;
	cursor: pointer
}

.form-alert {
	padding-top: 2em;
	padding-bottom: 2em;
	color: var(--color-red);
	text-align: center;
	line-height: 1.6;
	border: 2px solid var(--color-red);
	background: #fff
}

form .is-invalid {
	border: 1px solid var(--color-red) !important;
}

.form-foot-alert {
	margin-top: 4em;
	text-align: center
}

.form-foot-alert .btn {
	margin-top: 1.5em
}

.form-shop_box {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	padding: 1.5em 2em
}

.form-shop_box .thumb {
	overflow: hidden;
	border-radius: var(--radius-s);
	aspect-ratio: 7/4
}

.form-shop_box .thumb img {
	object-fit: cover;
	width: 100%;
	height: 100%
}

.form-shop_box .shopname {
	padding: 0 0 .5em;
	margin-bottom: 1em;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1.6;
	border-bottom: 1px solid var(--color-lgy1)
}

.form-shop_box .body {
	padding-top: 1.4em;
	font-size: 1.3rem;
	flex: 1
}

.form-shop_box .address {
	line-height: 1.5
}

.form-shop_box .info_tbl {
	margin-top: 1.2em
}

.form-shop_box .info_tbl .row {
	display: flex;
	line-height: 1.6;
	margin-bottom: .3em
}

.form-shop_box .info_tbl dt {
	width: 5em;
	margin-right: 1em;
	color: #888
}

.form-shop_box .info_tbl dd {
	flex: 1
}

.form-shop_box .btn {
	display: block;
	width: 280px;
	margin: 1.4em auto 0
}

.tingle-modal {
	z-index: 10000;
	background: #0009
}

.custom-modal .tingle-modal-box {
	height: 80vh;
	min-height: 200px
}

.tingle-modal-box {
	overflow: hidden
}

.tingle-modal-box__content {
	padding: 0;
	height: 100%
}

.tingle-modal-box__content iframe {
	display: block
}

.form-submit_box {
	margin: 2em 0;
	text-align: center
}

input[type=text], input[type=email], input[type=tel], input[type=number], input[type=url], input[type=date], input[type=password], .select_custom select, textarea {
	margin: 4px 0;
	padding: .2em .75em;
	color: #222;
	font-size: 16px;
	font-weight: 500;
	border: 1px solid var(--color-lgy2);
	border-radius: 3px;
	background: #fff
}

input[type=text]:focus, input[type=email]:focus, input[type=tel]:focus, input[type=number]:focus, input[type=url]:focus, input[type=date]:focus, input[type=password]:focus, .select_custom select:focus, textarea:focus {
	border-color: var(--color-main);
	outline: none
}

input::placeholder {
	color: var(--color-gry)
}

input[disabled] {
	background: var(--color-lgy1)
}

.size-t {
	width: 15%
}

.size-s {
	width: 20em;
	max-width: 100%
}

.size-m {
	width: 60%
}

.size-l {
	width: 100%
}

.size-tel {
	width: 32%
}

.select_custom {
	position: relative;
	display: inline-block
}

.select_custom:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1.2rem;
	width: 0;
	height: 0;
	margin: auto 0;
	border-width: 5px 4px 0 4px;
	border-style: solid;
	border-color: var(--color-main) transparent transparent transparent;
	pointer-events: none
}

.select_custom select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 1.8em;
	cursor: pointer
}

.select_custom select::-ms-expand {
	display: none
}

.select_custom:last-of-type {
	margin-right: 0
}

input[type=checkbox] {
	position: relative;
	margin-right: .7em;
	width: 1em;
	height: 1em;
	border: 1px solid #ccc;
	border-radius: 4px;
	vertical-align: -.3em;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: #fff
}

input[type=checkbox]:before, input[type=checkbox]:after {
	content: "";
	display: block;
	position: absolute;
	opacity: 0
}

input[type=checkbox]:before {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: var(--color-main)
}

input[type=checkbox]:after {
	border-bottom: 2px solid #fff;
	border-left: 2px solid #fff;
	opacity: 0;
	padding-top: 25%;
	width: 80%;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	margin: auto;
	top: 15%;
	left: 0;
	right: 0;
	z-index: 2
}

input[type=checkbox]:checked {
	border-color: var(--color-main)
}

input[type=checkbox]:checked:before, input[type=checkbox]:checked:after {
	opacity: 1
}

input[type=radio] {
	position: absolute;
	top: .85em;
	left: 0;
	width: 16px;
	height: 16px;
	margin: 0 .5em 0 0;
	border: 1px solid var(--color-main);
	border-radius: 50%;
	vertical-align: -2px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none
}

input[type=radio]:checked:before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--color-main);
	content: ""
}

.thanks-msg {
	padding: 4em 2em;
	text-align: center
}

.thanks-note {
	max-width: 680px;
	margin: 2em auto 0;
	padding: 2em 2.5em 3em;
	font-size: 1.5rem;
	text-align: justify;
	background: var(--color-main-bg)
}

.thanks-tel {
	margin-top: 1.5em;
	margin-bottom: 0
}

@media screen and (min-width: 768px) {
	.form-box {
		--form-inner_pd: 2em;
		padding-top: 2em;
		padding-bottom: 2em
	}

	.form-sec-ttl {
		font-size: 1.6rem
	}

	.form-tbl .row:not(:last-child):not(.last) {
		margin-bottom: 1.2em;
		padding-bottom: 1.2em
	}

	.form-tbl > .row > dt {
		font-size: 1.4rem
	}

	.form-tbl .sub-row-group {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 0 1em
	}

	.form-tbl .sub-row {
		margin: .5em 0
	}

	.form-tbl .sub-row._w_herf {
		flex: 1
	}

	.size-tel {
		width: 6em
	}

	.form-shop_box .thumb {
		width: 42%;
		max-width: 320px
	}

	.form-shop_box .body {
		padding: 0 0 0 2em
	}
}
