@charset "utf-8";
/* CSS Document */

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
:root {
	--color-accent: #dbecf1;
	--color-red: #e13535;
	--color-border: #c8d8dc;
	--color-bg: #f5f9fb;
	--color-white: #ffffff;
	--color-text-light: #5a6a74;
	--color-label-bg: #dbecf1;
	--color-required: #e13535;
	--color-focus: #2e9bbf;
}

header {background-color: #f8fafc;}
header .box01 {
    padding:20px 10px;
    max-width: 1240px;
    margin: 0 auto;
}
.ttl_main p{margin-top: 1em;}

/* セクション */
form .inner{margin-bottom: 30px;}
.section-title {
	font-size: 18px;
    font-weight: 700;
    background: var(--color-label-bg);
    color: var(--color-text);
    padding: 1em .8em;
    line-height: 1;
    border-left: 4px solid #0074bf;
}

/* テーブルレイアウト */
.form-table tr:last-child {
	border-bottom: none;
}

.form-table th {
	background: var(--color-accent);
	width: 220px;
	padding: 14px 16px;
	font-weight: 600;
	text-align: left;
}

.form-table td {
	padding: 12px 16px;
	vertical-align: top;
	background: var(--color-white);
}

/* 必須ラベル */
.badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 2px 6px;
	border-radius: 2px;
	margin-left: 6px;
	vertical-align: middle;
	line-height: 1.4;
}

.badge-required {
	background: var(--color-required);
	color: #fff;
}

.badge-optional {
	background: #8ba0ab;
	color: #fff;
}

/* フォーム部品 */
input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #b0c4cc;
	border-radius: 3px;
	font-family: var(--font-main);
	font-size: 0.9rem;
	color: var(--color-text);
	background: #fafdfe;
	transition: border-color 0.2s, box-shadow 0.2s;
	appearance: none;
	-webkit-appearance: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--color-focus);
	box-shadow: 0 0 0 3px rgba(46, 155, 191, 0.15);
	background: var(--color-white);
}

input[type="text"].error,
input[type="email"].error,
input[type="tel"].error,
select.error,
textarea.error {
	border-color: var(--color-red);
	background: #fff8f8;
}

select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a6a74' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 32px;
	cursor: pointer;
}

textarea {
	resize: vertical;
	min-height: 100px;
}

 /* 年月日プルダウン */
    .date-selects {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }

    .date-selects select {
      width: auto;
    }

    #lost_year  { min-width: 90px; }
    #lost_month,#lost_day,#lost_time1,#lost_time2 { min-width: 80px; }

    .date-koro {
      font-size: 0.9rem;
      color: var(--color-text);
      white-space: nowrap;
    }

.field-note {
	margin-top: 5px;
}

.red {
	color: var(--color-red);
}

/* エラーメッセージ（インライン） */
.field-error {
	display: none;
	font-size: 0.78rem;
	color: var(--color-red);
	margin-top: 4px;
}

.field-error.show {
	display: block;
}

/* 画像アップロード */
.upload-area {
	border: 2px dashed #aacad4;
	border-radius: 4px;
	padding: 24px 16px;
	text-align: center;
	background: #f0f8fb;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
	position: relative;
}

.upload-area:hover {
	border-color: var(--color-focus);
	background: #e8f5f9;
}

.upload-area.dragover {
	border-color: var(--color-focus);
	background: #ddf0f6;
}

.upload-area input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}

.upload-icon {
	font-size: 2rem;
	display: block;
	margin-bottom: 8px;
	color: #5bb5cf;
}

.upload-label {
	font-size: 0.9rem;
	color: var(--color-text-light);
	display: block;
}

.upload-label strong {
	color: var(--color-focus);
}

.upload-preview {
	margin-top: 10px;
	font-size: 0.82rem;
	color: var(--color-text);
}

.upload-preview span {
	display: inline-block;
	background: #e2f0f5;
	padding: 3px 10px;
	border-radius: 20px;
	margin: 2px 4px;
}

.upload-preview .remove-file {
	cursor: pointer;
	color: var(--color-red);
	margin-left: 4px;
	font-weight: bold;
}

/* reCAPTCHA エリア */
.recaptcha-wrap {
	margin-top: 4px;
}

/* 送信ボタン */
.submit-area {
	text-align: center;
	max-width: 300px;
	margin: 0 auto;
}

.btn-submit {
	display: inline-block;
	background: #0074bf;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	width: 100%;
	padding: .8em .5em;
	border: none;
	border-radius: 3px;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
}
.btn-submit:hover {background:#133c82;}
.btn-submit:active {transform: scale(0.98);}

/* モーダル（ポップアップ） */
.modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 100;
	align-items: center;
	justify-content: center;
}
.modal-overlay.show {display: flex;}
.modal-box {
	background: #fff;
	border-radius: 6px;
	padding: 36px 40px;
	max-width: 500px;
	width: 90%;
	text-align: center;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
	animation: modalIn 0.2s ease;
}

@keyframes modalIn {
	from {
		opacity: 0;
		transform: translateY(-16px) scale(0.97);
	}

	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.modal-icon {font-size: 42px;}
.modal-box p {margin: 25px auto;}
.modal-close {
	background: #0074bf;
	color: #fff;
	border: none;
	border-radius: 3px;
	padding: 10px 32px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s;
}
.modal-close:hover {background: #133c82;}

/* 送信ボタン：非活性状態 */
.btn-submit:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none; /* ホバーエフェクト等も無効化 */
}

/* 送信ボタン：活性状態（元のスタイルを上書きしたい場合はここで調整） */
.btn-submit:not(:disabled) {
	cursor: pointer;
}

/* レスポンシブ */
@media (max-width: 600px) {
	.ttl_main p{text-align: left;}
	.form-table,
	.form-table tbody,
	.form-table tr,
	.form-table th,
	.form-table td {
		display: block;
		width: 100%;
	}
	.form-table th {
		border-right: none;
		border-bottom: 1px solid var(--color-border);
		padding: 10px 14px 8px;
	}
	.form-table td {padding: 14px;}
	.btn-submit {
		width: 100%;
		padding: 14px 0;
	}
	table tr th:nth-child(even), table td:nth-child(even) {
    border-left: none;
	border-right: none;
}
}
/* 確認ページ */
.confirm-note {
    background: #fff9e6;
    border: 1px solid #f0d97a;
    border-radius: 3px;
    padding: 12px 16px;
    font-size: 0.84rem;
    color: #7a6200;
    margin-bottom: 28px;
    line-height: 1.6;
}

.btn-area {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2%;
    flex-wrap: wrap;
	max-width: 600px;
	margin: 0 auto;
}
.btn-back {
	width: 48%;
    font-size: 18px;
    font-weight: 700;
    padding: .9em .5em;
    border: 1px solid #b0c4cc;
    border-radius: 3px;
    cursor: pointer;
    text-decoration: none;
	text-align: center;
}
.btn-area .btn-submit {width: 48%;}

/* えんどページ */
#form_end .inner01 div{
	font-size: 25px;
	text-align: center;
	margin:3em 0 .5em;
	font-weight: 700;
}
#form_end .inner01 p{
	font-size: 18px;
	line-height: 1.5;
	text-align: center;
}
#form_end .btn{
	float: none;
	max-width: 500px;
	margin: 0 auto;
}
/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}

input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}