@charset "utf-8";

form#mail_form {
	width: 100%;
	margin: 50px auto;
	padding: 10px 0;
	font-size: 95%;
	line-height: 1.8;
}

form#mail_form dl {
	width: 90%;
	margin: 0 auto;
	overflow: hidden;
}

form#mail_form dl dt {
	clear: both;
	width: 30%;
	float: left;
	border-top: 1px solid #cccccc;
	padding: 15px 0;
	text-align: right;
	overflow: hidden;
}

form#mail_form dl dd {
	width: 65%;
	float: right;
	border-top: 1px solid #cccccc;
	padding: 15px 0 15px 5%;
}

form#mail_form dl dt:first-child,
form#mail_form dl dt:first-child + dd {
	border: none;
}

form#mail_form dl dt span {
	display: block;
	font-size: 85%;
	color: #3377ff;
}

form#mail_form .required-label {
	background-color: #ce3131;
	padding: 0 8px;
	color: #fff;
	border-radius: 2px;
	display: inline-block;
	margin-right: 8px;
	font-size: 10px;
}

form#mail_form .static-text {
	margin-left: 12px;
	font-size: 16px;
	padding: 12px 16px;
	background-color: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 6px;
	margin-top: 8px;
	min-height: 48px;
	display: flex;
	align-items: start;
	gap: 1rem;
}

form#mail_form .form-submit {
	text-align: center;
}
form#mail_form .alert-error-message {
	display: none;
	padding: 8px 16px;
}

/* -- for JavaScript ここから -------------------------------------------------------------------------------- */

form#mail_form dl dt span.required,
form#mail_form dl dt span.optional {
	display: inline-block;
	float: left;
	color: #ffffff;
	padding: 4px 10px;
	border-radius: 3px;
}

form#mail_form dl dt span.required {
	background: #d9534f;
	border: 1px solid #d43f3a;
}

form#mail_form dl dt span.optional {
	background: #337ab7;
	border: 1px solid #2e6da4;
}

form#mail_form dl dd span.error_blank,
form#mail_form dl dd span.error_format,
form#mail_form dl dd span.error_match {
	display: block;
	color: #ff0000;
	margin-top: 3px;
}

span.loading {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border-top: 5px solid rgba(255, 255, 255, 0.2);
	border-right: 5px solid rgba(255, 255, 255, 0.2);
	border-bottom: 5px solid rgba(255, 255, 255, 0.2);
	border-left: 5px solid #ffffff;
	-webkit-transform: translateZ(0);
	-ms-transform: translateZ(0);
	transform: translateZ(0);
	-webkit-animation: load-circle 1s linear infinite;
	animation: load-circle 1s linear infinite;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -30px;
	margin-left: -30px;
}

@-webkit-keyframes load-circle {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

@keyframes load-circle {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

/* -- for JavaScript ここまで -------------------------------------------------------------------------------- */

form#mail_form input[type='text']:focus,
form#mail_form input[type='email']:focus,
form#mail_form input[type='tel']:focus,
form#mail_form textarea:focus {
	box-shadow: 0px 0px 5px #55ccff;
	border: 1px solid #55ccff;
	background: #ffffff;
}

form#mail_form ul li input[type='radio'],
form#mail_form ul li input[type='checkbox'] {
	margin-right: 10px;
	margin-top: 10px;
}

form#mail_form ul li:first-child input[type='radio'],
form#mail_form ul li:first-child input[type='checkbox'] {
	margin-top: 0px;
}

form#mail_form select {
	font-size: 100%;
	font-family: inherit;
	margin-top: 10px;
}

form#mail_form textarea {
	display: block;
	width: 90%;
	max-width: 90%;
	height: 200px;
	padding: 7px 2%;
	resize: vertical;
	border: 1px solid #cccccc;
	border-radius: 3px;
	background: #fafafa;
	-webkit-appearance: none;
	font-size: 100%;
	font-family: inherit;
}

form#mail_form ul {
	list-style-type: none;
}

form#mail_form ul li label:hover {
	cursor: pointer;
}

form#mail_form input#company {
	width: 60%;
}

form#mail_form input#name_1,
form#mail_form input#name_2,
form#mail_form input#read_1,
form#mail_form input#read_2,
form#mail_form input#postal,
form#mail_form input#phone,
form#mail_form input#schedule {
	width: 30%;
}

form#mail_form input#mail_address,
form#mail_form input#mail_address_confirm {
	width: 80%;
}

form#mail_form input#postal + a {
	display: inline-block;
	padding: 5px 15px;
	border: 1px solid #46b8da;
	border-radius: 3px;
	background: #5bc0de;
	font-size: 100%;
	color: #ffffff;
	text-decoration: none;
}

form#mail_form input#postal + a:hover {
	cursor: pointer;
	background: #31b0d5;
	border: 1px solid #269abc;
}

form#mail_form input#address {
	width: 90%;
}

form#mail_form p#form_submit {
	width: 90%;
	margin: 0 auto;
	padding: 15px 0;
}

form#mail_form input[type='button'] {
	padding: 7px 20px;
	border: 1px solid #4cae4c;
	border-radius: 3px;
	background: #5cb85c;
	font-size: 100%;
	color: #ffffff;
	font-family: inherit;
	-webkit-appearance: none;
}

form#mail_form input[type='button']:hover {
	cursor: pointer;
	background: #449d44;
	border: 1px solid #398439;
}

form#mail_form input#form_submit_button {
	margin-left: 35%;
}

/* -- responsive ----------------------------------------------------------------------------------------------------------------- */

/* 1000pixel start */
@media screen and (max-width: 1000px) {
	form#mail_form {
		width: 95%;
		font-size: 100%;
	}

	form#mail_form dl {
		overflow: visible;
	}

	form#mail_form dl dt {
		width: auto;
		float: none;
		text-align: left;
		padding: 15px 0 5px;
		font-weight: bold;
	}

	form#mail_form dl dd {
		width: auto;
		float: none;
		border-top: none;
		padding: 0px 0 20px 0px;
	}

	form#mail_form dl dt span {
		font-weight: normal;
	}

	/* -- for JavaScript ここから -------------------------------------------------------------------------------- */

	form#mail_form dl dt span.required,
	form#mail_form dl dt span.optional {
		margin-right: 1em;
		margin-bottom: 2em;
	}

	/* -- for JavaScript ここまで -------------------------------------------------------------------------------- */

	form#mail_form input[type='text'],
	form#mail_form input[type='email'],
	form#mail_form input[type='tel'] {
		margin-top: 0px;
	}

	form#mail_form input#postal + a {
		padding: 6px 15px 5px;
	}

	form#mail_form input#form_submit_button {
		margin-left: 0;
	}

	form#mail_form select {
		font-size: 16px;
		margin-top: 0;
	}

	form#mail_form input#phone,
	form#mail_form input#schedule {
		width: 50%;
	}
}
/* 1000pixel end */

.form-check-input {
	width: 1.6em;
	height: 1.6em;
	margin-top: 0;
}

.form-check {
	min-height: 2.6rem;
	align-items: center;
	display: flex;
	padding-left: 1.8em;
}

.online-form {
	background-color: #004e7d !important;
	padding: 10px 14px;
	border-radius: 4px;
	color: #fff;
	font-size: 1rem;
}

.alert-info {
	line-height: 1;
	background-color: #ffffff !important;
	border-color: #004e7d !important;
	color: #004e7d !important;
	font-weight: 500;
	font-size: 1.1em;
}

input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type='number'] {
	-moz-appearance: textfield;
}

.datepicker-days th.dow:first-child,
.datepicker-days td:first-child {
  color: #f00;
}
.datepicker-days th.dow:last-child,
.datepicker-days td:last-child {
  color: #00f;
}

/* フロー表示用のスタイル */
.flow-section {
    margin: 2rem 0;
}

.flow-section p{
    font-size:.8rem;
    display: flex;
    justify-content: center;
}

.flow-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.flow-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.flow-step {
    background-color: #bababa;
    border: 2px solid #c0c0c0;
    border-radius: 8px;
    padding: 1rem 1.5rem;
    text-align: center;
    height: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 200px;
}

.flow-step-main {
    font-weight: bold;
    color: #ffffff;
    font-size: 1rem;
    line-height: normal;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.flow-note {
    font-size: 0.7rem;
    color: #e2e2e2;
    letter-spacing: .04rem;
    margin-top: auto;
}

.flow-arrow {
    font-size: 1.2rem;
    color: rgb(185 185 185);
    margin: 0.1rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

.flow-arrow .flow-note {
    font-size: 0.7rem;
    color: #666;
    letter-spacing: .04rem;
    margin-top: 0.25rem;
}

/* デスクトップ表示（横並び） */
@media screen and (min-width: 768px) {
    .flow-container {
        flex-direction: row;
        justify-content: center;
        align-items: flex-start;
        flex-wrap: nowrap;
        gap: 1rem;
    }
    
    .flow-item {
        flex-direction: column;
        align-items: center;
        flex: 0 0 auto;
        display: flex;
        align-items: center;
    }
    
    .flow-step {
        width: auto;
        height: 80px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
    }
    
    .flow-step-main {
        font-size: 0.9rem;
        margin-bottom: 0.25rem;
    }
    
    .flow-arrow {
        margin: 0 0.5rem;
        align-self: center; /* 中央揃え */
        flex-direction: column; /* 縦並びを維持 */
        gap: 0.25rem;
    }
    
    .flow-arrow.has-note {
        margin-top: 20px; /* 翌営業日がある矢印だけ上に調整 */
    }
    
    .flow-arrow i {
        transform: rotate(270deg); /* アイコンのみ回転 */
    }
    
    .flow-arrow .flow-note {
        white-space: nowrap;
        font-size: 0.7rem;
        align-self: center;
    }
}

/* モバイル表示（縦並び） */
@media screen and (max-width: 767px) {
    .flow-container {
        flex-direction: column;
        align-items: center;
    }
    
    .flow-step {
        width: 300px;
        height: 64px;
        justify-content: space-between;
    }
    
    .flow-step-main {
        font-size: 0.9rem;
    }
    
    .flow-arrow {
        transform: rotate(0deg);
    }
}

.notes-section {
    margin-top: 2rem;
    padding: 1rem;
    background-color: #f8f9fa;
    border-radius: 8px;
}

.notes-section ul li {
    margin-bottom: 0.5rem;
    padding-left: 0.5rem;
}

.notes-section ul li:last-child {
    margin-bottom: 0;
}

/* 確認画面のレイアウト改善 */
.form-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 8px;
}

.required-label {
    background-color: #dc3545;
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: bold;
    margin-right: 8px;
}

.mb-3 {
    margin-bottom: 1.5rem !important;
}

.col-sm {
    margin-bottom: 1rem;
}

/* 確認画面のボタンスタイル */
.btn-primary {
    background-color: #007bff;
    border-color: #007bff;
    padding: 12px 24px;
    font-weight: 600;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background-color: #0056b3;
    border-color: #0056b3;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3);
}

.btn-light {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #495057;
    padding: 12px 24px;
    font-weight: 600;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.btn-light:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* 免許証画像表示の改善 */
.static-text img {
    max-width: 100%;
    height: auto;
    border: 2px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 1rem;
}

.static-text object {
    border: 2px solid #dee2e6;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.fw-bold {
    color: #495057;
    font-size: 14px;
    margin-bottom: 8px;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
    .col-sm {
        margin-bottom: 1.5rem;
    }
    
    .static-text {
        font-size: 14px;
        padding: 10px 12px;
    }
    
    .btn-primary,
    .btn-light {
        width: 100%;
        margin-bottom: 10px;
    }
    
    .static-text img {
        max-width: 100%;
        height: auto;
    }
}
