/* ====== ヘッダー ====== */
.is-entry .mv_title_img{
	margin-bottom:105px;
}

.entry_nav_head{
	text-align:center;
	margin:0 auto 35px auto;
  width:75%;
  max-width:1200px;
}
.entry_nav{
	max-height:80px;
	margin:0 auto;
}

#entry_nav2{
	display:none;
}

/* ====== 基本配色・グラデ ====== */
.entry-form{
	--c-border: #297fca;
	--c-grad-from: #2BAFF4;
	--c-grad-to:   #16329C;
	--c-muted: #9b9b9b;
	--radius: 12px;
	padding: 70px 0 150px;
  width:65%;
	max-width: 900px;
	margin: 0 auto
}

/* ラベル行（CF7の<p>直下に来る） */
.entry-form p{
	margin: 0 0 40px;
	font-size:20px;
	font-weight:500;
	line-height: 1.6;
}
.entry-form p > label{
	font-size: 18px;
    font-weight: 600;
    display: inline-block;
    width: 100%;
}
.label_text{
	font-size: 18px;
    font-weight: 600;
}
.label_sub_text{
	font-size: 16px;
    margin-left: 15px;
}
.required{
	font-size: 16px;
    margin-left: 15px;
    padding: 0px 20px 2px;
    color: #fff;
    background: #1d76b7;
    border-radius: 30px;
}

/* ====== 入力ボックス====== */
.entry-form .field-input,
.entry-form .field-select,
.entry-form .field-textarea,
.entry-form .wpcf7-date,
.entry-form .wpcf7-email,
.entry-form .wpcf7-tel {
    width: 100%;
    font-size: 14px;
    line-height: 1.5;
    padding: 12px 14px;
    border: 1.75px solid #9b9b9b;
    border-radius: var(--radius);
    margin-top: 12px;
}
.entry-form .field-textarea{ min-height: 180px; resize: vertical; }
.entry-form .field-input::placeholder,
.entry-form .field-textarea::placeholder{ color: var(--c-muted); }

/* フォーカス */
.entry-form .field-input:focus,
.entry-form .field-select:focus,
.entry-form .field-textarea:focus,
.entry-form .wpcf7-date:focus,
.entry-form .wpcf7-email:focus,
.entry-form .wpcf7-tel:focus{
  box-shadow: 0 0 0 4px rgba(41,127,202,.14);
}

/* ====== チェックボックス ====== */
.entry-form .field-check .wpcf7-list-item,.wpcf7-acceptance .wpcf7-list-item{
	display: inline-flex;
	align-items: center;
	margin: 6px 0;
}

.entry-form .field-check .wpcf7-list-item.first{
    margin-top: 25px;
}
.entry-form .field-check .wpcf7-list-item{
    margin-right: 60px;
    font-size: 18px;
}
.entry-form .field-check label ,.wpcf7-acceptance label{
  display: inline-flex;
  align-items: center;
  column-gap: 6px;
  cursor: pointer;
  position: relative;
}
.wpcf7-acceptance label{
    margin: 15px auto;
}

.entry-form .field-check input[type="checkbox"],.wpcf7-acceptance input[type="checkbox"]{
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 20px;
  height: 20px;
  border: 2px solid #06b6d4;
  border-radius: 3px;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  background: #fff;
}
.entry-form .field-check input[type="checkbox"]:checked::after,.wpcf7-acceptance input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	top: 1px;
	left: 1px;
	width: 11px;
	height: 6px;
	border-bottom: 3px solid #06b6d4;
	border-left: 3px solid #06b6d4;
	transform: rotate(-45deg);
}

.wpcf7-acceptance .wpcf7-list-item{
	font-size: 18px;
}


/* ====== 日付入力（表示の統一） ====== */
.entry-form input[type="date"].wpcf7-date{
  appearance: none;
  background-position: right 12px center;
  width:40%;
}


/* ====== ファイル（PDF想定） ====== */
.field-file {
  display: none;
}
.file-upload-wrapper {
	display: flex;
    align-items: center;
    border: 1px solid var(--c-muted);;
    border-radius: var(--radius);
    padding: 10px 25px;
    font-size: 16px;
    color: var(--c-muted);;
    background: #fff;
    cursor: pointer;
    width: 100%;
    transition: border-color 0.2s ease, color 0.2s ease;
    box-sizing: border-box;
}
.file-upload-wrapper .upload-btn {
    flex-shrink: 0;
    padding: 1px 16px;
    border-radius: 20px;
    font-weight: bold;
    color: #fff;
    margin-right: 20px;
    transition: background 0.2s ease;
}

/* 未選択 */
.file-upload-wrapper .upload-btn {
  background: var(--c-muted);;
}
.file-upload-wrapper .file-name {
  flex: 1;
  font-size: 16px;
  color: var(--c-muted);;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 選択済み状態 */
.file-upload-wrapper.active {
  border-color: #297fca;
}
.file-upload-wrapper.active .upload-btn {
  background: #297fca;
}
.file-upload-wrapper.active .file-name {
  color: #333;
}


/* ====== テキストエリア ====== */
.is-entry .placeholder{
	font-size:16px;
	color: #bbb;
}

/* ====== 送信ボタン ====== */
.acceptance_link{
	color:#1d76b7;
}

.entry-form .btn-submit{
	display: inline-block;
    width: 60%;
    max-width: 550px;
    padding: 20px 0;
    margin-top: 20px;
	margin-left: 48px;
    border: none;
    border-radius: 999px;
    color: #fff;
    font-weight: 700;
    font-size: 32px;
    background: linear-gradient(180deg, var(--c-grad-from) 0%, var(--c-grad-to) 100%);
    cursor: pointer;
    transition: filter .2s ease, transform .02s ease;
}
.entry-form .btn-submit:disabled{
  opacity: .5; cursor: not-allowed;
}
.entry-form .btn-submit:hover:not(:disabled){
  filter: brightness(1.05);
}

/* ====== バリデーション（CF7標準クラス） ====== */
.entry-form .wpcf7-not-valid{
  box-shadow: 0 0 0 4px rgba(225,29,72,.12);
}
.entry-form .wpcf7-not-valid-tip{
  display: block;
  color: #e11d48;
  font-size: 12px;
  margin-top: 6px;
}
.entry-form .wpcf7-response-output{
  margin-top: 16px;
  border: 2px solid var(--c-border);
  border-radius: var(--radius);
  background: #f0f7ff;
  color: #0a2540;
  padding: 12px 14px;
}

/* ====== 確認画面 ====== */
#confirmation-screen {
	font-size: 16px;
	line-height: 1.6;
	padding: 70px 0 150px;
	max-width: 1080px;
	margin: 0 auto;
}

#confirmation-screen .label_text {
  font-weight: bold;
  display: inline-block;
  margin-right: 8px;
}

#confirmation-screen .required {
  background: #297fca;
  color: #fff;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 12px;
}

#confirmation-screen p {
  margin-bottom: 20px;
}
.entry_button_block{
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: center;
    align-items: center;
    width: 70%;
    margin: 0 auto;
}
.entry_button_block .blue-gradient-block{

}

#back-button{
    border-radius: 999px;
	cursor: pointer
}
.entry_button_block .btn-submit,#back-button{
	width: max-content;
    font-size: 28px;
    font-weight: 500;
    padding: 12px 40px;
}

.entry_thanks_text {
    text-align: center;
}
.entry_thanks_text h2{
	font-size:32px;
}
.entry_button_block.thanks{
	grid-template-columns:1fr;
}


/* ====== レスポンシブ ====== */
@media (max-width: 768px){
	.entry-form{ 
		padding: 30px 1.5rem 20px;
      width:100%;
      box-sizing: border-box;
	}
	.is-entry .mv_title_img {
	    margin-bottom: 55px;
	}	
	.entry_nav_head {
	    margin-bottom: 0px;
      width:auto;
	}
    .is-pages #mv .mv_title {
        padding-bottom:20px;
    }
    
	.entry-form .field-check .wpcf7-list-item {
	    margin-right:60px;
	    font-size: 16px;
	}
    .entry-form p > label,.label_text{
	    font-size: 4vw;
	}
	.entry-form .field-input,
	.entry-form .field-select,
	.entry-form .field-textarea,
	.entry-form .wpcf7-date,
	.entry-form .wpcf7-email,
	.entry-form .wpcf7-tel,
	.file-upload-wrapper{
        width: 100%;
        box-sizing: border-box;
	}
	.is-entry .placeholder {
	    font-size: 13px;
	}
	
	.entry-form p,.acceptance_link{
	    font-size: 16px;
	}
	.entry-form .btn-submit {
	    width: 60%;
	    padding: 15px 20px;
	    margin-top: 10px;
	    font-weight: 600;
	    font-size: 24px;
      box-sizing: border-box;
	}
    
    
	#confirmation-screen {
		padding: 30px 1.5rem 20px;
	}

	#confirmation-screen .label_text {
	  font-weight: bold;
	  display: inline-block;
	  margin-right: 8px;
	}

	#confirmation-screen .required {
	  background: #297fca;
	  color: #fff;
	  font-size: 12px;
	  padding: 2px 6px;
	  border-radius: 12px;
	}

	#confirmation-screen p {
	  margin-bottom: 20px;
	}
	.entry_button_block{
        width: 100%;
        align-items: start;
        justify-items: normal;
	}
    .entry_button_block .btn-submit{
        width: max-content;
	    font-size: 16px;
	    font-weight: 500;
        margin: 0;
        padding: 12px 20px;
    }
	
	#back-button{
        width: max-content;
	    font-size: 16px;
	    font-weight: 500;
	    padding: 12px 20px
	}

	.entry_thanks_text h2{
		font-size:24px;
	}
	.entry_thanks_text p{
        font-size: 16px;
        width: 90%;
        margin: 10px auto 20px;
	}
	.entry_button_block.thanks .btn-submit{
		margin:0 auto;
	}
}
}
