@charset "UTF-8";

/* reset 
========================================== */

body,div,dl,dt,dd,ul,ol,li,
h1,h2,h3,h4,h5,h6,
pre,code,form,fieldset,legend,
p,blockquote,table,th,td {margin: 0; padding: 0;}
img {border: 0; vertical-align: top;}
ul,dl,ol {text-indent: 0;}
li {list-style: none;}
table {border-collapse: collapse; border-spacing: 0; font-size: inherit;}
em{font-style:normal;}

/* PC・SP切り替え
======================================= */

.sp_only,
.img_sp,
.br_sp,
.sp_br {
display:none !important;
}


/* body
========================================== */

body {
color: #60534d;
margin: 0 auto 0;
padding: 0 0 0 0;
position:relative;
overflow-x: hidden;
text-align:justify;
font-feature-settings: "palt"; /* 自動カーニング */
font-family: "Kosugi Maru", sans-serif;
font-weight: 400;
font-style: normal;
}


/* font
========================================== */

.jp,
body {
font-family: "Kosugi Maru", sans-serif;
font-weight: 400;
font-style: normal;
}

.palt_none{
font-feature-settings: none; /* 自動カーニング解除 */
}

/* コンテンツ共通
========================================== */

a {text-decoration:none;}
a:hover {text-decoration:underline;}

img,
video {
max-width: 100%;
height: auto;
}

html{scroll-behavior: smooth;}

/* header
========================================== */

#header{
width:100%;
margin: 0 auto;
padding: 0;
z-index:100;
position: absolute;
top: 30px;
left:20px;
}
p#description {
display:none;
}
#header h1{
margin: 0 0 0;
padding: 0 0 0 30px;

}
#header h1 img{
width:250px;
max-width:none;
height:auto;
vertical-align:top;
}


/* footer
========================================== */


#footer {
clear: both;
margin: 0 auto;
padding: 60px 0 60px 0;
position:relative;
min-width: 1180px;
text-align:center;
background:#ff9d26;
}
#footer::before {
content: "";
position: absolute;
top:-15px;
left:0;
width: 100%;
height: 15px;
background-image: url("../images/base/mask3.svg");
background-repeat: repeat-x;
background-position: center top;
background-size:88px auto;
}
#footer small{
margin: 0 0 0 0;
padding: 0 0 0;
position: relative;
font-size: 18px;
line-height: 18px;
color:#fff;
white-space:nowrap;
}

p#page-top {
position: fixed;
bottom: 30px;
right: 20px;
cursor:pointer;
z-index:99;
}

p#page-top img{
width:50px;
height:auto;
vertical-align:top;
}









/* トップページ
========================================== */

#kv{
margin: 0 auto;
padding: 0 0 0 0;
position:relative;
min-width: 1180px;
background-color:#ff9d26;
background-image: url(../images/base/kv_bg.svg);
background-repeat: no-repeat;
background-position: center top;
background-size: cover;
}
#kv_inner{
margin: 0 auto ;
padding: 80px 0 120px 0;
position:relative;
text-align:center;
}
h2.h2_tit{
margin: 0 auto 40px;
padding: 0 0 0 0;
position:relative;
text-align:center;
}
h2.h2_tit img{
width:960px;
height:auto;
}
.kv_img{
margin: 0 auto 50px;
padding: 0 0 0 0;
position:relative;
text-align:center;
}
.kv_img img{
width:750px;
height:auto;
}

.btn_here{
margin: 0 auto;
padding: 0 0 0 0;
position:relative;
text-align:center;
}
.btn_here a{
margin: 0 auto;
padding: 30px 100px;
position:relative;
text-align:center;
background-color:#fff;
font-weight: bold;
font-size: 24px;
letter-spacing: 0.05em;
line-height: 24px;
color: #60534d;
border-radius:50px;
display:inline-block;
text-decoration:none;
}
.btn_here a:before {
position: absolute;
top: 35%;
right:30px;
font-family: "Font Awesome 6 Free";
content: '\f138';
color:#ff9d26;
font-weight: 900;
font-size: 38px;
}
.btn_here a:hover:before {
right:20px;
transition : 0.3s;
}

.section_inner{
margin: 0 auto 0;
padding: 0 0 0;
width: 1180px;
position:relative;
text-align:center;
}

.section1{
margin: -20px auto 0;
padding: 60px 0 160px;
min-width: 1180px;
position:relative;
text-align:center;
z-index:1;
}

.mask_style1 {
position: absolute;
top: 0px;
left: 0;
width: 100%;
height: 100%;
background-color: #c2dfe7;
background-image: url(../images/base/bg_dot.png);
background-repeat: repeat;
background-position: center top;
background-size: auto;
mask-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22a%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2087.78%203601.1%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3A%23ff9d26%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22b%22%20d%3D%22M0%2C3601.1V15.2C21.94%2C15.2%2C21.94%2C0%2C43.89%2C0s21.94%2C15.2%2C43.89%2C15.2V3601.1H0Z%22%2F%3E%3C%2Fsvg%3E');
mask-repeat: repeat-x;
mask-position:center top;
mask-size:88px auto;
mask-composite: intersect;
z-index:-1;
}

.campaign_img1{
margin: 0 auto;
padding: 0 0 0 0;
position:relative;
text-align:center;
}
.campaign_img1 img{
width:850px;
height:auto;
}

.section2{
margin: -230px auto 0;
padding: 140px 0 80px;
min-width: 1180px;
position:relative;
text-align:center;
z-index:1;
}

.mask_style2 {
position: absolute;
top: 0px;
left: 0;
width: 100%;
height: 100%;
background-color: #ff9d26;
background-image: url(../images/base/section_bg.svg);
background-repeat: repeat-x;
background-position: center bottom;
background-size: auto;
mask-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22a%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%202600%204507.8%22%3E%3Cpolygon%20points%3D%222600%200%200%20226.13%200%204507.8%202600%204507.8%202600%200%22%2F%3E%3C%2Fsvg%3E');
mask-repeat: repeat-x;
mask-position:center top;
mask-size:2600px auto;
mask-composite: intersect;
z-index:-1;
}

.campaign_img2{
margin: 0 auto;
padding: 0 0 0 0;
position:relative;
text-align:center;
}
.campaign_img2 img{
width:950px;
height:auto;
}



.section3{
margin: 0px auto 0;
padding: 80px 0 80px;
min-width: 1180px;
position:relative;
text-align:center;
z-index:1;
background-color: #fff;
background-image: url(../images/base/bg_dot2.png);
background-repeat: repeat;
background-position: center top;
background-size: auto;
}

.section_box{
margin: 0px auto;
padding: 0 0 20px;
width: 900px;
position:relative;
text-align:center;
border:2px solid #ff9d26;
border-radius:40px;
background-color:#fff;
}
.section_box h3{
margin: 0px auto 30px;
padding: 30px 0 30px;
width: 900px;
position:relative;
text-align:center;
border-radius:40px 40px 0 0;
background-color:#ffebd4;
}
.section_box h3 img.h3_img1{
position:absolute;
top:-120px;
left:80px;
}
.section_box h3 img.h3_img2{
position:absolute;
top:-50px;
right:20px;
}

.section_box p{
margin: 0px auto 30px;
padding: 0 0 0;
position:relative;
text-align:center;
font-weight: 500;
font-size: 20px;
letter-spacing: 0.05em;
line-height: 1.5;
color: #60534d;
}

ul.apply_list{
margin: 0px auto;
padding: 0 40px 0;
position:relative;
text-align:center;
}

ul.apply_list li{
margin: 0px auto;
padding: 20px 0px 20px 10px;
position:relative;
text-align:center;
border-top:3px dotted #ff9d26;
display: flex;
align-items:stretch;
justify-content:flex-start;
}
ul.apply_list li h4{
margin: 0px 0;
padding: 0 0;
position:relative;
text-align:left;
width:220px;
}
ul.apply_list li div{
margin: 0px 0;
padding: 0 0;
position:relative;
text-align:left;
width:100%;
}
ul.apply_list li div{
margin: 0px 0;
padding: 0 0;
position:relative;
text-align:left;
width:100%;
}
ul.apply_list li div p{
margin: 0px 0 0 1em;
padding: 0 0;
position:relative;
text-align:left;
font-weight: 500;
font-size: 17px;
letter-spacing: 0.00em;
line-height: 1.6;
color: #60534d;
text-indent:-1.2em;
}
ul.apply_list li div p em{
color: #ff9d26;
margin-right:5px;
}
ul.apply_list li div p a{
color: #ff9d26;
font-weight: bold;
text-decoration:underline;
text-underline-offset: .3em;
text-decoration-thickness: 2px;
}
ul.apply_list li div p a:hover{ text-decoration-thickness: 3px; }


.section4{
margin: 0px auto 0;
padding: 0 0 150px;
min-width: 1180px;
position:relative;
text-align:center;
z-index:1;
}
.section4 h3{
margin: 0px auto 80px;
padding: 50px 0 40px;
position:relative;
text-align:center;
background-color: #ff9d26;
z-index:1;
}
.section4 h3::before {
content: "";
position: absolute;
bottom:-15px;
left:0;
width: 100%;
height: 15px;
background-image: url("../images/base/mask3.svg");
background-repeat: repeat-x;
background-position: center bottom;
background-size:88px auto;
}


table.table_form{
width:850px;
margin: 0 auto 25px;
padding: 0 0 0 0;
position: relative;
border-collapse:separate;
border-spacing:0;
}
table.table_form tr{

}
table.table_form th{
margin: 0 20px 0 0;
padding: 5px 0 30px 0;
font-size:20px;
line-height: 1.5;
font-weight:normal;
color:#60534d;
letter-spacing:0px;
text-align:right;
width:auto;
vertical-align:top;
width:300px;
display: flex;
align-items:center;
justify-content:flex-end;
}

table.table_form th span.require{
margin: 0 0 0 5px;
padding: 4px 6px;
font-size: 12px;
font-weight:normal;
line-height: 12px;
letter-spacing:0px;
color:#fff;
background-color:#d0121b;
border-radius:3px;
}
table.table_form th span.any{
margin: 0 0 0 5px;
padding: 4px 6px;
font-size: 12px;
font-weight:normal;
line-height: 12px;
letter-spacing:0px;
color:#fff;
background-color:#bbb;
border-radius:3px;
}

table.table_form td{
margin: 0 0 0 0;
padding: 0 0 30px 0;
position: relative;
font-size:15px;
line-height: 1.5;
font-weight:normal;
color:#000;
letter-spacing:0px;
text-align:left !important;
vertical-align:middle;
border-bottom:0px solid #ccc;
width:auto;
vertical-align:top;
width:520px;
}

table.table_form td .flex_kakomi{
display: flex;
align-items:stretch;
justify-content:space-between;
}
table.table_form td .flex_kakomi input{
width:48%;
}
table.table_form td p{
font-size:14px;
}
table.table_form td small{
font-size:14px;
padding:10px 0;
display:inline-block;
}
table.table_form td.td_add em{
margin-top:10px;
display:block;
}
table.table_form td.td_add input{
margin-top:5px;
margin-bottom:0px;
}
table.table_form td.td_mail input{
margin-bottom:10px;
}
table.table_form td.td_tel input{
margin-right:20px;
margin-bottom:10px;
}
table.table_form select {

padding:10px;
border:1px solid #ff8c00;
font-size:18px;
line-height:18px;
background:#fff8e8;
box-sizing: border-box;
border-radius:5px;
width:50%;
}
table.table_form select:has(option:checked[value=""]) {
color: #bebebe;
}
table.table_form input {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding:10px;
border:1px solid #ff8c00;
font-size:18px;
line-height:18px;
background:#fff8e8;
box-sizing: border-box;
border-radius:5px;
}
table.table_form input::placeholder {
color: #ccc;
}
table.table_form input:focus {
outline: none;
}

table.table_form input.input_size1{
margin:0 0 0 0;
width:100%;
}

table.table_form input.input_size2{
margin:0 0 0 0;
width:50%;
}


.wrap_radio{
margin: 0 0 0 0;
padding: 0 0 0 0;
font-size:18px;
line-height: 1.5;
font-weight:normal;
color:#60534d;
letter-spacing:0.00em;
text-align:left;
}
.wrap_radio input[type=radio] {
display: none !important;
}
.wrap_radio .radio_style {
box-sizing: border-box;
cursor: pointer;
display: block;
margin: 0 0 20px;
padding: 0 0 0 40px;
position: relative;
width: auto;
}
.wrap_radio .radio_style::before {
content: '';
display: block;
border:1px solid #ff8c00;
border-radius: 5px;
width: 28px;
height: 28px;
position: absolute;
top: 0;
left: 0;
background-color:#fff8e8;
box-sizing: border-box;
/*transition : 0.2s;*/
}
.wrap_radio .radio_style:hover::before {
border:4px solid #ff8c00;
}
.wrap_radio input[type=radio]:checked + .radio_style::before {
background-color:#ff8c00;
}
.wrap_radio .radio_style::after {
border-right: 3px solid #fff;
border-bottom: 3px solid #fff;
content: '';
display: block;
height: 9px;
left: 10px;
top: 8px;
opacity: 0;
position: absolute;
transform: rotate(45deg);
width: 5px;
}
.wrap_radio input[type=radio]:checked + .radio_style::after {
opacity: 1;
}




/* ===== MW WP Form用 ===== */

.wrap_radio .mwform-radio-field {
    display: block;
    margin: 0 0 20px;
}

.wrap_radio .mwform-radio-field label {
    cursor: pointer;
    display: block;
    position: relative;
}

/* radio非表示 */
.wrap_radio .mwform-radio-field input[type=radio] {
    display: none !important;
}

/* 表示本体 */
.wrap_radio .mwform-radio-field-text {
    display: block;
    padding-left: 40px;
    position: relative;
    box-sizing: border-box;
}

/* 枠 */
.wrap_radio .mwform-radio-field-text::before {
    content: '';
    border:1px solid #ff8c00;
    border-radius: 5px;
    width: 28px;
    height: 28px;
    position: absolute;
    top: 0;
    left: 0;
    background-color:#fff8e8;
    box-sizing: border-box;
    /*transition: 0.2s;*/
}

/* hover */
.wrap_radio .mwform-radio-field label:hover .mwform-radio-field-text::before {
    border:4px solid #ff8c00;
}

/* チェック */
.wrap_radio .mwform-radio-field-text::after {
    content: '';
    position: absolute;
    left: 10px;
    top: 8px;
    width: 5px;
    height: 9px;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
    transform: rotate(45deg);
    opacity: 0;
}

.wrap_radio input[type=radio]:checked + .mwform-radio-field-text::before {
    background-color:#ff8c00;
}

.wrap_radio input[type=radio]:checked + .mwform-radio-field-text::after {
    opacity: 1;
}






table.table_form textarea{
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
margin:0 0 0 0;
padding:10px;
border:1px solid #ff8c00;
font-size:18px;
line-height:1.5;
background:#fff;
width:100%;
border-radius:5px;
box-sizing: border-box;
}

table.table_form textarea:focus {
outline: none;
}


table.table_form td h5{
margin: 20px 0 15px 0;
padding: 0 0 0 0;
position: relative;
font-size:20px;
line-height: 1.5;
font-weight:bold;
color:#ff8c00;
letter-spacing:0px;
text-align:center;
}
.consent_box{
margin: 0 0;
padding: 0 0;
position:relative;
text-align:left;
width:100%;
border:1px solid #ccc;
border-radius:5px;
}
.consent_box ul{
margin: 0 0 0 0;
padding: 25px 0 0 30px;
position: relative;
height:250px;
overflow-y: auto;
}
.consent_box ul li{
margin: 0 0 0 1em;
padding: 0 0 0 0;
position: relative;
font-size:16px;
line-height: 1.6;
font-weight:normal;
color:#777;
letter-spacing:0.01em;
text-align:left;
text-indent:-1em;
}
.consent_box ul li.li_span{
margin-bottom: 1em;
}


table.table_form td.td_check {
margin: 0 0 0 0;
padding: 0 0 0 0;
font-size:18px;
line-height: 1.5;
font-weight:normal;
color:#60534d;
letter-spacing:0.05em;
text-align:left;
}
table.table_form td.td_check input[type=checkbox] {
display: none !important;
}
table.table_form td.td_check .checkbox_style {
box-sizing: border-box;
cursor: pointer;
display: block;
margin: 0 0 20px;
padding: 0 0 0 40px;
position: relative;
width: auto;
}
table.table_form td.td_check .checkbox_style::before {
content: '';
display: block;
border:1px solid #ff8c00;
border-radius: 5px;
width: 28px;
height: 28px;
position: absolute;
top: 0;
left: 0;
background-color:#fff8e8;
box-sizing: border-box;
/*transition : 0.2s;*/
}
table.table_form td.td_check .checkbox_style:hover::before {
border:4px solid #ff8c00;
}
table.table_form td.td_check input[type=checkbox]:checked + .checkbox_style::before {
background-color:#ff8c00;
}
table.table_form td.td_check .checkbox_style::after {
border-right: 3px solid #fff;
border-bottom: 3px solid #fff;
content: '';
display: block;
height: 9px;
left: 10px;
top: 8px;
opacity: 0;
position: absolute;
transform: rotate(45deg);
width: 5px;
}
table.table_form td.td_check input[type=checkbox]:checked + .checkbox_style::after {
opacity: 1;
}

/* =====================================================
   MW WP Form用
===================================================== */

/* inputは非表示 */
table.table_form td.td_check .mwform-checkbox-field input[type="checkbox"] {
	display: none !important;
}

/* ラベル全体をクリック可能に */
table.table_form td.td_check .mwform-checkbox-field label {
	cursor: pointer;
	display: block;
}

/* テキスト部分をチェックボックスUI化 */
table.table_form td.td_check .mwform-checkbox-field-text {
	box-sizing: border-box;
	display: block;
	position: relative;
	padding: 0 0 0 40px;
	margin: 0 0 20px;
	line-height: 1.5;
}

/* チェックボックス枠 */
table.table_form td.td_check .mwform-checkbox-field-text::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 28px;
	height: 28px;
	border: 1px solid #ff8c00;
	border-radius: 5px;
	background-color: #fff8e8;
	box-sizing: border-box;
	/*transition: 0.2s;*/
}

/* hover時 */
table.table_form td.td_check label:hover .mwform-checkbox-field-text::before {
	border: 4px solid #ff8c00;
}

/* チェックON時 背景 */
table.table_form td.td_check
.mwform-checkbox-field input[type="checkbox"]:checked
+ .mwform-checkbox-field-text::before {
	background-color: #ff8c00;
}

/* チェックマーク */
table.table_form td.td_check .mwform-checkbox-field-text::after {
	content: '';
	position: absolute;
	top: 8px;
	left: 10px;
	width: 5px;
	height: 9px;
	border-right: 3px solid #fff;
	border-bottom: 3px solid #fff;
	transform: rotate(45deg);
	opacity: 0;
}

/* チェックON時 チェックマーク表示 */
table.table_form td.td_check
.mwform-checkbox-field input[type="checkbox"]:checked
+ .mwform-checkbox-field-text::after {
	opacity: 1;
}



/* ボタンラッパー共通 */
.btn_form {
  margin: 0 auto;
  padding: 0;
  position: relative;
  text-align: center;
  width: 850px;
}

/* ▼ inputが複数ある場合は横並び */
.btn_form {
  display: flex;
  gap: 20px; /* ボタン間の余白 */
}

/* inputが1つだけのときは中央1列 */
.btn_form input:only-child {
  width: 100%;
}

/* inputが2つ以上あるときは横並び */
.btn_form input {
  flex: 1;
}

/* ボタンデザイン */
.btn_form .submit_btn{
  margin: 0;
  padding: 35px 0;
  position: relative;
  text-align: center;
  background-color: #ff8c00;
  font-weight: bold;
  font-size: 24px;
  letter-spacing: 0.10em;
  line-height: 24px;
  color: #fff;
  border-radius: 50px;
  display: block;
  text-decoration: none;
  cursor: pointer;
  width: 100%;
  border: none;
}

/* FontAwesome 矢印（1ボタン時のみ想定） */
.btn_form:has(input:only-child)::before {
  position: absolute;
  top: 25%;
  right: 40px;
  font-family: "Font Awesome 6 Free";
  content: '\f138';
  color: #fff;
  font-weight: 900;
  font-size: 42px;
  z-index: 1;
  transition: 0.3s;
}

.btn_form:has(input:only-child):hover::before {
  right: 20px;
}
/* ▼ inputが2つ以上ある場合のみ hover を有効化 */
.btn_form:has(input:nth-child(2)) .submit_btn:hover {
  background-color: rgba(255, 140, 0, 0.6); /* 薄くする */
  transition: background-color 0.3s;
}

/* 無効状態 */
.submit_btn.disable {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.btn_form.disable {
  pointer-events: none;
}

.mw_wp_form_input .input_none{
	display:none;
}
.mw_wp_form_confirm .confirm_none{
	display:none !important;
}

.mw_wp_form_confirm table.table_form td span.waku {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        padding: 10px;
        border: 1px solid #ff8c00;
        font-size: 18px;
        line-height: 18px;
        background: #fff8e8;
        box-sizing: border-box;
        border-radius: 5px;
		display: block;
}
.mw_wp_form_confirm table.table_form td .flex_kakomi {
	display: block;
}