@charset "UTF-8";

/* フォントサイズ
---------------------------------------------------------*/
.p-form input[type=text],
.p-form input[type=tel],
.p-form input[type=email],
.p-form input[type=date],
.p-form textarea,
.p-form select {
	font-size: 17px!important;
	letter-spacing: 0.1em!important;
	line-height: 1.4!important;
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.p-form input[type=text],
.p-form input[type=tel],
.p-form input[type=email],
.p-form input[type=date],
.p-form textarea,
.p-form select {
	font-size: 15px!important;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.p-form input[type=text],
.p-form input[type=tel],
.p-form input[type=email],
.p-form input[type=date],
.p-form textarea,
.p-form select {
	font-size: 16px!important;/*16px以下にしないで下さい（拡大防止）*/
	letter-spacing: 0.05em!important;
	line-height: 1.8em!important;
}
}
	


/* p-form
---------------------------------------------------------*/
.p-form {
	width: 80%;
	max-width: 900px;
	margin-inline: auto;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.p-form {
	width: 90%;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.p-form {
	width: 100%;
}
}



/*p-form__table
---------------------------------------------------------*/
.p-form__table {
	width: 100%;
	margin-inline: auto;
	line-height: 1.8em;
}
.p-form__table th,
.p-form__table td {
	display: block;
	text-align: left;
}
.p-form__table th {
	font-size: 125%;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1.4em;
	margin-bottom: .5em;
}
.p-form__table td {
	letter-spacing: .1em;
	padding-bottom: min(3.5em,5vw);
}

.p-form__table .req,
.p-form__table .opt {
	display: inline-block;
	vertical-align: middle;
	color: #c1272d;
	font-size: 70%;
	font-weight: normal;
	letter-spacing: 0.1em;
	line-height: 1.5em;
	border: 1px solid currentcolor;
	border-radius: 100vmax;
	background: #fff;
	padding: 0 .6em;
	margin-left: .8em;
	transform: translateY(-.1em);
}
.p-form__table .opt {
	color: #999999;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {	
.p-form__table td {
	letter-spacing: .05em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.p-form__table th {
	margin-bottom: .3em;
}
.p-form__table td {
	letter-spacing: normal;
	padding-bottom: 2em;
}
}



/*input
---------------------------------------------------------*/
.p-form .valid-box {
	position: relative;
}
/*Contact Form 7*/
.p-form .wpcf7-form-control-wrap {
	position: static;
}
.p-form .wpcf7-list-item {
	margin: 0;
}
.p-form .wpcf7-not-valid-tip {
	position: absolute;
	z-index: 1;
	left: 0;
	top: 100%;
	display: inline-block;
	background-color: #C1272D;
	color: #FFF;
	font-size: 80%;
	letter-spacing: normal;
	line-height: 1.4em;
	white-space: nowrap;
	padding: .2em .5em;
	border-radius: .2em;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color:#c1272d;!important;
	color: #c1272d;
	font-weight: bold;
	text-align: center;
	padding: 1.0em 1.0em !important;
	margin-bottom: 2.5em !important;
}

/*input*/
.p-form input[type=text],
.p-form input[type=tel],
.p-form input[type=email],
.p-form input[type=date],
.p-form textarea,
.p-form select {
	width: 100%;
	font-family: inherit;
	background: #fff;
	border: 1px solid #b2b2b2;
	border-radius: .5em;
	outline: none;  
	padding: 0.9em 1.6em;
	box-sizing: border-box;
}
.p-form textarea {
	resize: none;
	height: 11em;
}
.p-form input[type=text]:focus,
.p-form input[type=tel]:focus,
.p-form input[type=email]:focus,
.p-form input[type=date]:focus,
.p-form textarea:focus,
.p-form select:focus {
	filter: drop-shadow(0 0 10px rgba(0,0,0,0.1));
}
::placeholder {
    color: #cccccc;
}

/*radio checkbox*/
.p-form .wpcf7-radio,
.p-form .wpcf7-checkbox {
	line-height: 1.5em;
	font-weight: bold;
}
.p-form .wpcf7-radio > span,
.p-form .wpcf7-checkbox > span {
	display: block;
}
.p-form input[type=radio],
.p-form input[type=checkbox] {
    display: inline-block;
}
.p-form label:has(input[type=radio]),
.p-form label:has(input[type=checkbox]) {
    position: relative;     
    display: inline-block;
    cursor: pointer;
	margin-right: 0;
	line-height: 1.6em;
}
.p-form .list_noflex .wpcf7-radio,
.p-form .list_noflex .wpcf7-checkbox {
	flex-direction: column;
}
 
@media (min-width: 1px) {
    .p-form input[type=radio],
    .p-form input[type=checkbox] {
		position: absolute;		/* 上に別の要素が乗るようにする */
		z-index: -1;			/* 最背面にする */
		pointer-events: none;	/* クリック無効 */
		opacity: 0;
        margin: 0;
    }
    .p-form label:has(input[type=radio]),
    .p-form label:has(input[type=checkbox]) {
		display: inline-flex;
		align-items: center;
		padding-left: 2.5em;
		vertical-align: top;
    }
    .p-form label:has(input[type=radio])::before,
    .p-form label:has(input[type=checkbox])::before {
        content: "";
        position: absolute;
		top: 0;
        left: 0;
        display: block;
		background-color: #fff;
		border: 1px solid #b2b2b2;
		border-radius: .5em;
        width: 1.5em;	/*揃える*/
        height: 1.5em;
    }
    .p-form label:has(input[type=radio])::before {
        border-radius: 50%;
    }
    .p-form label:has(input[type=radio]:checked):after,
    .p-form label:has(input[type=checkbox]:checked):after {
        content: "";
        position: absolute;
        display: block;
    }
    .p-form label:has(input[type=radio]:checked):after {
        width: calc(1.5em - 6px);	/*揃える*/
        height: calc(1.5em - 6px);
		border: solid 3px #fff;	/*丸の大きさを線幅で調整*/
        background: #61b8b3;
        border-radius: 50%;
        left: 1px;
		top: 1px;
    }
    .p-form label:has(input[type=checkbox]:checked):before {
		/*日坂会固有デザイン*/
		background-color: #61b8b3;
    }
    .p-form label:has(input[type=checkbox]:checked):after {
		/*日坂会固有デザイン*/
        left: .35em;
		top: .35em;
        width: .7em;
        height: .4em;
        border-left: 3px solid #fff;
        border-bottom: 3px solid #fff;
        rotate: -45deg;
    }
	/*同意チェックボックス：少し大きくする*/
    .p-form__accept label:has(input[type=checkbox])::before {
        width: 1.6em;	/*揃える*/
        height: 1.6em;
    }
    .p-form__accept label:has(input[type=checkbox]:checked):after {
        left: .4em;
		top: .4em;
        width: .8em;
        height: .5em;
    }
}

/*button*/
.p-form input[type="submit"], 
.p-form input[type="button"], 
.p-form button[type="reset"] {
	-webkit-appearance: none;
	width: 100%;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-style: normal;
	opacity: 1.0;
	transition: all 1.0s;
	padding: 0 1.5em;
	height: 4.0em;
	border-radius: .5em;
	background-color: #999999;
	text-align: center;
	color: #fff;
	font-size: 125%;
	font-weight: bold;
}
.p-form input[type="submit"] {
	text-align: left;
    background-image: url("../images/btn-arrow.svg"), linear-gradient(90deg, #89d5a6, #61b8b3);
    background-repeat: no-repeat, no-repeat;
    background-position: right 1em center, center center;
    background-size: 0.5em 0.5em, 100% 100%;
}
.p-form input[type="submit"][disabled] {
	opacity: 0.3 !important;
	cursor: default;
}
.p-form button[type="reset"] span {
	font-size: 88%;
}
.p-form input[type="submit"]:hover, 
.p-form input[type="button"]:hover, 
.p-form button[type="reset"]:hover {
	opacity: 0.6;
}
.p-form input[type="submit"] + span {
	display: none;	/*CF7で挿入されるspan*/
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {	
.p-form label:has(input[type=radio]),
.p-form label:has(input[type=checkbox]) {
	padding-left: 2.0em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
/*input*/
.p-form input[type=text],
.p-form input[type=tel],
.p-form input[type=email],
.p-form input[type=date],
.p-form textarea,
.p-form select {
	padding: .7em 1em; 
}
	
.p-form label:has(input[type=radio]),
.p-form label:has(input[type=checkbox]) {
	padding-left: 2.0em;
}
.p-form__accept label:has(input[type=checkbox]) {
	padding-left: 2.5em;
}
	
/*button*/
.p-form input[type="submit"], 
.p-form input[type="button"], 
.p-form button[type="reset"] {
	height: 3.5em;
}
}



/*入力項目レイアウト
---------------------------------------------------------*/
/*テキスト*/
.p-form__table .kakunin-txt {
	font-size: 120%;
	margin: 1em 0 .5em;
}
.p-form__table .sub-txt--l {
	display: inline-block;
	vertical-align: middle;
	margin-right: 1.0em;
}
.p-form__table .sub-txt--r {
	display: inline-block;
	vertical-align: middle;
	margin-left: 1.0em;
}
.p-form__table .sub-txt--t {
	margin-bottom: 1.0em;
}
.p-form__table .sub-txt--b {
	margin-top: 1.0em;
}

/*テキストボックスサイズ*/
.p-form__table .size--s {
	max-width: 10em;
}
.p-form__table .size--m {
	max-width: 26em;
}
.p-form__table .size--l {
	max-width: 36em;	
}

/*テキストボックスの高さ*/
.p-form .height--15 {
	height: 15em;
}
.p-form .height--20 {
	height: 20em;
}

/*隙間*/
.p-form__table .btm-next {
	margin-bottom: 2.0em;
}

/*ラジオボタン・チェックリスト*/
.p-form__table .item-list .wpcf7-list-item {
	margin-top: 1.2em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
/*テキスト*/
.p-form__table .kakunin-txt {
	font-size: 105%;
}
.p-form__table .sub-txt--l {
	margin-right: .5em;
}
.p-form__table .sub-txt--r {
	margin-left: .5em;
}
/*テキストボックスの高さ*/
.p-form .height--15 {
	height: 10em;
}
.p-form .height--20 {
	height: 15em;
}

/*ラジオボタン・チェックリスト*/
.p-form__table .item-list .wpcf7-list-item {
	margin-top: .6em;
}
}



/* 生年月日
---------------------------------------------------------*/
.p-form .birth_list {
    display: flex;
    align-items: center;
    gap: 1.25em;
    padding: 0;
    margin: 0;
    list-style: none;
}

.p-form .birth_list li {
    display: flex;
    align-items: center;
    gap: 0.75em;
    margin: 0;
}

.p-form .birth_list .valid_box {
    display: flex;
    align-items: center;
    gap: 0.75em;
}

/* セレクトボックス共通 */
.p-form .birth_list select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    background-image: url("../images/birth-arrow.svg");
    background-repeat: no-repeat;
    background-position: right 0.94em center;
    background-size: 1.5625em 1.5625em;
}

/* 年 */
.p-form .birth_list select.year {
    max-width: 164px;
	width: 10.25em;
}

/* 月・日 */
.p-form .birth_list select.month,
.p-form .birth_list select.day {
    max-width: 149px;
	width: 9.25em;
}

/* 年・月・日の文字 */
.p-form .birth_list .sub_txt_r {
    font-size: 125%;
    font-weight: bold;
    white-space: nowrap;
}

.p-form .birth_list select > option:first-of-type{
	color: #999!important;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.p-form .birth_list{
	flex-wrap: wrap;
}
.p-form .birth_list li:first-child{
	width: 100%;
}
	
/* 年 */
.p-form .birth_list select.year {
	width: 45vw;
}

/* 月・日 */
.p-form .birth_list select.month,
.p-form .birth_list select.day {
	width:35vw;
}
}



/* 開閉アイコン
---------------------------------------------------------*/
/*開閉アイコン*/
.icon-open {
	letter-spacing: normal;
	line-height: 1.0em;
	display: inline-block;
	vertical-align: middle;
	width: 1.2em;
	aspect-ratio: 1 / 1;
	background: currentColor;
	border-radius: 50%;
	margin-left: .5em;
	transform: translateY(-.1em);
	position: relative;
}
.icon-open::before,
.icon-open::after {
	content: "";
	position: absolute;
	width: 50%;
	height: 1px;
	background: #fff;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}
.icon-open::after {
	transform: rotate(90deg);
	transition: all 0.4s;
}
.is-open .icon-open::after {
	transform: rotate(0deg);
}

	

/* アコーディオン共通
---------------------------------------------------------*/
.p-form__open {
	text-align: center;
}
.p-form__open-btn {
	display: inline-block;
	cursor: pointer;
	letter-spacing: .1em;
	line-height: 1.4em;
}
.p-form__open-box {
	display: none;
	text-align: left;
	font-size: var(--fs-15);
	letter-spacing: .05em;
	margin-top: 1.0em;
	padding: min(50px,4vw) 4% min(20px,2vw);
}
.p-form__close-btn {
	width: max-content;
	margin-left: auto;
	margin-right: 1.0;
	margin-top: 1.0em;
	cursor: pointer;
}
.p-form__close-btn .icon-open::after {
	transform: rotate(0deg);
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.p-form__open-btn {
	letter-spacing: .05em;
}
.p-form__open-box {
	letter-spacing: normal;
	padding: 8% 6% 3%;
}
}



/* mbl_attention
-----------------------------------------------------------------------------*/
.p-form__mobile {
	text-align: left;
	margin-top: .5em;
	margin-bottom: 1.5em;
}
.p-form__mobile .p-form__open-box {
	background: #fff;
	border-radius: 1.0em;
}
.p-form__mobile .p-form__open-box > div {
	max-width: 780px;
	margin: 0 auto;
}
.p-form__mobile .p-form__open-box ul {
	display: flex;
	gap: 0 1.2em;
	margin-top: 1.0em;
}
.p-form__mobile .p-form__open-box li a {
	text-decoration: underline;
}
.p-form__mobile .p-form__open-box a:hover {
	text-decoration: none;
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) {
}



/* privacy
-----------------------------------------------------------------------------*/
.p-form__privacy {
	margin-top: min(70px,7vw);
	border-top: 1px solid #B2B2B2;
	border-bottom: 1px solid #B2B2B2;
	transition: background 0.4s;
}
.p-form__privacy:has(.is-open) {
	background: #fff;
}
.p-form__privacy .p-form__open-btn {
	font-size: 125%;
	font-weight: bold;
	padding: 1.7em 0;
}
.p-form__privacy .p-form__open-box {
	margin-top: 0;
	padding-top: 0;
}
.p-form__privacy .p-form__open-box > div {
	max-width: 780px;
	margin: 0 auto;
}
.p-form__privacy dt {
	font-weight: bold;
	margin-top: 1.5em;
	margin-bottom: .5em;
}
.p-form__privacy ol {
	list-style-position: inside;
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
.p-form__privacy .p-form__open-btn {
	padding: 1.5em 0;
}
}



/*announce、submit_box
---------------------------------------------------------*/
.p-form__announce {
	text-align: center;
	line-height: 1.9em;
}
.p-form__announce span{
	color: #c1272d;
}
.p-form__submit {
	margin-top: min(60px,4vw);
}
.p-form__accept {
	width: max-content;
	margin-inline: auto;
}
.p-form__accept > span {
	display: block;
	margin-top: 1.0em;
}
.p-form__accept > span:first-child {
	margin-top: 0;
}
.p-form__btn-list {
	width: 60%;
	max-width: 475px;
	margin: min(60px,4vw) auto 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.p-form__btn-list li:first-child {
	width: 60%;
}
.p-form__btn-list li:last-child {
	width: 37%;
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
.p-form__announce {
	text-align: left;
	line-height: 2.0em;
}
.p-form__submit {
	margin-top: 8vw;
}
.p-form__btn-list {
	width: 100%;
	max-width: 100%;
	margin-top: 8vw;
}
}
