/* main */

.modal-overlay {
    align-items: center;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transition: opacity 200ms linear;
    z-index: 999;
}

.modal-opener {
    cursor: pointer;
}

.modal.is-open .modal-overlay {
    opacity: 1;
    pointer-events: auto;
    z-index: 999;
}

.mod-title {
    font-size: 1.2rem;
    margin: 1.5rem 0 0 0;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ddd;
}

.modal_caching,
.modal_flow_1,
.modal_flow_2,
.modal_flow_3,
.modal_help, .modal_notice,
.modal_profile_photo,
.modal_profile_video,
.modal_menuList{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.7);
	opacity: 0;
	visibility: hidden;
	transition: .3s linear;
}

.isopen{
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}




/*////////////// bottom menu ////////////////*/

.mod-bm-container {
    transform: translateY(24px);
    transition: transform 300ms ease-in-out, opacity 250ms linear;
    width: 96%;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 9999;
}

.modal.is-open .mod-bm-container {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.mod-bm-content {
    background-color: #fff;
    text-align: center;
    border-radius: 20px;
    min-width: 300px;
    max-height: 90vh;
    padding: 1px;
}

.mod-bm-content p {
    color: #333;
    font-size: 0.9rem;
    padding: 1rem;
    margin: auto;
    line-height: 1.4;
    border-bottom: 1px solid #ddd;
}

.mod-bm-content a {
    text-decoration: none;
    color: inherit;
    display: block;
    padding: 1rem 0;
}

.mod-bm-content ul {
    text-align: center;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.mod-bm-content li {
    color: #007AFF;
    font-size: 1rem;
    font-weight: 600;
    border-bottom: 1px solid #ddd;
    padding: 0.2rem 0rem;
}

.mod-bm-content li.mod-alert {
    color: #FF3B30;
}

.mod-bm-content li:last-child {
    border-bottom: none;
}

.mod-bm-footer {
    margin-top: 0.5rem;
    background-color: #fff;
    text-align: center;
    border-radius: 20px;
    min-width: 300px;
    max-height: 90vh;
    padding: 1px;
}

.mod-bm-footer .mod-cancel {
    color: #007AFF;
    font-size: 1rem;
    font-weight: 600;
    padding: 1.2rem 0rem;
    cursor: pointer;
}

@media screen and (min-width: 681px) {
    .mod-bm-container {
        position: fixed;
        bottom: 30px;
        max-width: 640px;
    }

    .mod-bm-footer .mod-cancel {
        cursor: pointer;
    }
}


/*////////////// popup dialog ////////////////*/

.mod-pud-container {
    transform: translateY(24px);
    transition: transform 300ms ease-in-out, opacity 250ms linear;
    width: 100%;
    position: fixed;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 50%;
    bottom: 50%;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 9999;
}

.modal.is-open .mod-pud-container {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.mod-pud-content {
    background-color: #fff;
    text-align: center;
    border-radius: 20px;
    width: 90%;
    min-width: 300px;
    max-height: 90vh;
    padding: 1px;
}

.mod-pud-content p {
    color: #333;
    font-size: 0.9rem;
    padding: 1rem;
    margin: auto;
    line-height: 1.4;
    border-bottom: 1px solid #ddd;
}

.mod-pud-content a {
    text-decoration: none;
    color: inherit;
    display: block;
    padding: 1rem 0;
}

.mod-pud-content ul {
    text-align: center;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.mod-pud-content li {
    color: #007AFF;
    font-size: 1rem;
    font-weight: 600;
    border-bottom: 1px solid #ddd;
    padding: 0.2rem 0rem;
}

.mod-pud-content li.mod-alert {
    color: #FF3B30;
}

.mod-pud-content li:last-child {
    border-bottom: none;
}

@media screen and (min-width: 681px) {
    .mod-pud-container {
        max-width: 640px;
    }
}



/*////////////// popup message ////////////////*/

.mod-pum-container {
    transform: translateY(10px);
    transition: transform 200ms ease-in-out, opacity 100ms linear;
    width: 100%;
    position: fixed;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 50%;
    bottom: 50%;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 9999;
}

.modal.is-open .mod-pum-container {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.mod-pum-content {
    background-color: rgb(255 255 255 / 85%);
    text-align: center;
    border-radius: 20px;
    width: 40%;
    min-width: 12rem;
    max-width: 20rem;
    height: auto;
    max-height: 90vh;
    padding: 0.5rem;
    border: 1px solid rgb(230 230 230 / 80%);
    box-shadow: rgba(00, 00, 00, 0.16) 0px 3px 6px 0px;
}

.mod-pum-content p {
    color: #333;
    font-size: 0.9rem;
    padding: 1rem;
    margin: auto;
    line-height: 1.4;
    border-bottom: 1px solid #ddd;
}

.mod-pum-img {
    display: block;
    margin: 0 auto;
    padding: 0;
    width: auto;
    height: 2.6rem;
}

.is-open .mod-pum-img {
    animation: bounce 2s;
}

@keyframes bounce {
    0% {
        transform: scale(0.6, 0.6) translate(0%, 50%);
    }

    4% {
        transform: scale(1.5, 1.5) translate(0%, -10%);
    }

    8% {
        transform: scale(1.7, 1.7) translate(0%, -15%);
    }

    15% {
        transform: scale(1.6, 1.6) translate(0%, -12%);
    }

    20% {
        transform: scale(0.9, 0.9) translate(0%, 5%);
    }

    25% {
        transform: scale(1.2, 0.8) translate(0%, 10%);
    }

    32% {
        transform: scale(0.8, 1.2) translate(0%, -10%);
    }

    38% {
        transform: scale(1.1, 0.9) translate(0%, 5%);
    }

    45% {
        transform: scale(1.0, 1.0) translate(0%, 0%);
    }

    100% {
        transform: scale(1.0, 1.0) translate(0%, 0%);
    }
}

.mod-pum-message {
    font-size: 0.9rem;
    color: #f70454;
    padding: 0.5rem;
}

@media screen and (min-width: 681px) {
    .mod-pum-container {
        max-width: 640px;
    }
}


/*--キャッシング----------------------------------------------*/

.modal_caching_inner .dialogTitle{
	margin: 0;
	padding: 15px 0 15px 0;
    	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #ff87ac;
}

.modal_caching_inner .dialogContent{
	margin: 0;
	padding: 5px 0 5px 0;
	text-align: center;
	background: #f0f0f0;
}

.modal_caching_inner .dialogContent p{
	margin: 0;
	padding: 5px 0 5px 0;
	font-size: 0.9rem;
	text-align: center;
	color: #000;
}

.modal_caching_inner{
    overflow: hidden;
    position: absolute;
    top: 10%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 90%;
    margin: 0;
    padding: 0;
    border-radius: 16px;
    -webkit-border-radius: 16px;
    -moz-border-radius: 16px;
    background: #fff;
}


.modal_caching_inner .caching_list{
	list-style: none;
	overflow-y: scroll; 
	height: 40vh;
	margin: 0;
	padding: 0;
}

.modal_caching_inner .caching_plan{
	overflow: hidden;
	width: 96%;
	margin: 0 auto 5px auto;
	padding: 0;
	border-radius: 8px;		/* CSS3草案 */
	-webkit-border-radius: 8px;	/* Safari,Google Chrome用 */
	-moz-border-radius: 8px;	/* Firefox用 */
	background: #fff;
}

.modal_caching_inner  .caching_list .plan a{
	text-decoration: none;
	color: #fff;
}

.modal_caching_inner .plan_name{
	margin: 0;
	padding: 3px 0 3px 0;
	font-size: 1.0rem;
	color: #fff;
	text-align: center;
}

.modal_caching_inner .plan_name a{
	text-decoration: none;
	color: #fff;
}

.modal_caching_inner .cachingSlider_1,
.modal_caching_inner .cachingSlider_2,
.modal_caching_inner .cachingSlider_3,
.modal_caching_inner .cachingSlider_4,
.modal_caching_inner .cachingSlider_5,
.modal_caching_inner .cachingSlider_6{
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.modal_caching_inner .caching_list .plan{
	display: table !important;
	overflow: hidden;
	width: 80% !important;
	margin: 15px auto 15px auto;
	padding: 0;
	border: 1px solid #e6e6e6;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
	-moz-border-radius: 50px;	/* Firefox用 */
	vertical-align: middle;
}

.modal_caching_inner  .caching_list .plan a{
	text-decoration: none;
	color: #fff;
}

.modal_caching_inner .caching_list .plan_point{
	display: table-cell;
	box-sizing: border-box;
	width: 38%;
	margin: 0 0 0 2%;
	padding: 15px 0 15px 0;
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: linear-gradient(0deg, rgba(255,50,119,1) 0%, rgba(252,123,176,1) 100%);
}

.modal_caching_inner .caching_list .plan_price{
	display: table-cell;
	box-sizing: border-box;
	width: 58%;
	margin: 0 2% 0 0;
	padding: 15px 10px 15px 0;
	font-size: 1.2rem;
	font-weight: 700;
	text-align: right;
	color: #000;
	background: #f0f0f0;
}

.modal_caching_inner .caching_list .plan_banner{
	box-sizing: border-box;
	margin: 0 auto 0 auto;
	padding: 5px 5% 5px 5%;
	text-align: center;
}


.modal_caching_inner .caching_other{
	width: 96%;
	margin: 15px auto 10px auto;
	padding: 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	text-align: center;
	color: #000;
	background: #c7bba3;
}


.modal_caching_inner .caching_other a{
	display: block;
	margin: 0;
	padding: 15px 0 15px 0;
	text-decoration: none;
	color: #000;
}

.modal_caching .close{
	width: 30%;
	margin: 10px auto 10px auto;
	padding: 5px 0 5px 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 0.8rem;
	text-align: center;
	color: #000;
	background: #e6e6e6;
}

.modal_caching .modal_btn_close{
      position:fixed;
	top: 30px;
	right: 30px;
	width: 30px;
	margin: 0 auto 0 auto;
	padding: 0;
}


@media screen and (min-width: 681px){


.dialogBox{
	overflow: hidden;	
	position: absolute;
	top: 30%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	width: 480px;
	margin: 0;
	padding: 0;
	border-radius: 16px;		/* CSS3草案 */
	-webkit-border-radius: 16px;	/* Safari,Google Chrome用 */
	-moz-border-radius: 16px;	/* Firefox用 */
	background: #fff;
}


/*--キャッシング----------------------------------------------*/

.modal_caching_inner{
    overflow: hidden;
    position: absolute;
    top: 10%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    width: 480px;
    margin: 0 auto 0 auto;
    padding: 0;
    border-radius: 16px;
    -webkit-border-radius: 16px;
    -moz-border-radius: 16px;
    background: #fff;
}
}



/*--PWA----------------------------------------------*/

.flowSlider{
	margin: 10px 10px 0 10px;
	padding: 0;
}


.flow{
	position:relative;
	box-sizing: border-box;
	width: 90%;
	margin: 30px auto 5px auto;
	padding: 10px;
	border-radius: 8px;		/* CSS3草案 */
	-webkit-border-radius: 8px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 8px;	/* Firefox用 */
	background: #fff;
}

.flow::after{
	position: absolute;
	box-sizing: border-box;
	top:-15px;
	left:50%;
	transform: translateX(-50%);
	width: 40%;
	margin: 0 auto 30px auto;
	padding: 10px;
	border: 3px solid #fff;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: #02b6fa;
}


.step_1::after{ content:"step1";}
.step_2::after{ content:"step2";}
.step_3::after{ content:"step3";}
.step_4::after{ content:"step4";}
.step_5::after{ content:"step5";}


.flow img{
	margin: 0 0 10px 0;
	border: 1px solid #acacac;
}

.flow p{
	margin: 0;
	padding: 0 0 0 0;
	font-size: 1.2rem;
	text-align: left;
	line-height: 110%;
	color: #000;
}


.modal_flow_1 .next-arrow,
.modal_flow_2 .next-arrow,
.modal_flow_3 .next-arrow{width: 25px;}

.modal_flow_1 .prev-arrow,
.modal_flow_2 .prev-arrow,
.modal_flow_3 .prev-arrow{width: 25px;}


.modal_flow_1 .close,
.modal_flow_2 .close,
.modal_flow_3 .close{
    width: 60%;
    margin: 10px auto 10px auto;
    padding: 10px 0 10px 0;
    border-radius: 50px;
    -webkit-border-radius: 50px;
    -moz-border-radius: 50px;
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    color: #000;
    background: #e6e6e6;
}



.modal_help .helpSlider{
	margin: 10px 10px 0 10px;
	padding: 0;
}


.modal_help .help{
	position:relative;
	box-sizing: border-box;
	width: 90%;
	margin: 30px auto 5px auto;
	padding: 10px;
	border-radius: 8px;		/* CSS3草案 */
	-webkit-border-radius: 8px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 8px;	/* Firefox用 */
	background: #fff;
}

.modal_help .help img{
	margin: 0 0 10px 0;
	border: 1px solid #acacac;
}

.modal_help .help p{
	color: #000;
}


.modal_help .help::after{
	position: absolute;
	box-sizing: border-box;
	top:-15px;
	left:50%;
	transform: translateX(-50%);
	width: 40%;
	margin: 0 auto 30px auto;
	padding: 10px;
	border: 3px solid #fff;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: #02b6fa;
}

.modal_help .h_step_1::after{ content:"ヘルプ1";}
.modal_help .h_step_2::after{ content:"ヘルプ2";}
.modal_help .h_step_3::after{ content:"ヘルプ3";}
.modal_help .h_step_4::after{ content:"ヘルプ4";}
.modal_help .h_step_5::after{ content:"ヘルプ5";}
.modal_help .h_step_6::after{ content:"ヘルプ6";}

.modal_help .close {
    width: 60%;
    margin: 10px auto 10px auto;
    padding: 10px 0 10px 0;
    border-radius: 50px;
    -webkit-border-radius: 50px;
    -moz-border-radius: 50px;
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    color: #000;
    background: #e6e6e6;
}

.modal_video_viewer{
	overflow: hidden;
	width: 80%;
	margin: 0 auto 0 auto;
	padding: 45px 0 0 0;
}


.modal_video_1 .modal_btn_close{
	position: fixed;
	top: 15px;
	right: 15px;
	z-index: 9999;
	width: 30px;
	margin: 0;
	padding: 0;
}



/*--マイページ----------------------------------------------*/

.modal_profile_photo .profile_photo_inner,
.modal_profile_video .profile_video_inner{
	width: 96%;
	margin: 0 auto 0 auto;
	padding: 0;
}

.profile_photo_inner .pic{
	width: 100%;
	margin: 50px auto 0 auto;
	padding: 0;
}

.profile_video_inner .video_viewer{
	margin: 50px auto 0 auto;
	padding: 0;
}

.modal_profile_photo .modal_btn_close,
.modal_profile_video .modal_btn_close{
      position:fixed;
	top: 15px;
	right: 15px;
	width: 30px;
	margin: 0 auto 0 auto;
	padding: 0;
}

.modal_menuList .modal_menuList_inner{
	position: absolute;
	top:30%;
	transform: translateY(-50%);
	left:50%;
	transform: translateX(-50%);
	width: 80%;
	margin: 0 auto 0 auto;
	padding: 15px;
	border-radius: 8px;		/* CSS3草案 */
	-webkit-border-radius: 8px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 8px;	/* Firefox用 */
	background: #fff;
}

.modal_menuList .modal_menuList_inner ul{
	list-style: none;
	margin: 0;
	padding: 0;
}

.modal_menuList .modal_menuList_inner ul .btn_picture{
	position: relative;
	margin: 10px 0 20px 0;
	padding: 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: rgba(174,131,214,1);
}

.modal_menuList .modal_menuList_inner ul .btn_movie{
	position: relative;
	margin: 0 0 20px 0;
	padding: 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: rgba(174,131,214,1);
}

.modal_menuList .modal_menuList_inner ul .btn_close{
	width: 50%;
	margin: 0 auto 0 auto;
	padding: 15px 0 15px 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #000;
	background: #acacac;
}

.btn_picture a,
.btn_movie a{
	display: block;
	width: 100%;
	margin: 0;
	padding: 15px 0 15px 0;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	text-decoration: none; 
	color: #fff;
}




.modal_menuList .modal_menuList_inner .btn_picture::before{
	position: absolute;
	top: 50%;
	left: 30px;
  	transform: translateY(-50%);
  	-webkit-transform: translateY(-50%);
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	content: "";
	background: url(/img/www/wa/img/icon_photo.png) no-repeat;
  	background-size: contain;
}

.modal_menuList .modal_menuList_inner .btn_picture::after{
	position: absolute;
	top: 50%;
	right: 10px;
  	transform: translateY(-50%);
  	-webkit-transform: translateY(-50%);
	width: 10px;
	height: 10px;
	margin: 0;
	padding: 0;
	content: "";
	background: url(/img/www/wa/img/r-arrow.png) no-repeat;
  	background-size: contain;
}


.modal_menuList .modal_menuList_inner .btn_movie::before{
	position: absolute;
	top: 50%;
	left: 30px;
  	transform: translateY(-50%);
  	-webkit-transform: translateY(-50%);
	width: 30px;
	height: 30px;
	margin: 0;
	padding: 0;
	content: "";
	background: url(/img/www/wa/img/icon_video.png) no-repeat;
  	background-size: contain;
}

.modal_menuList .modal_menuList_inner .btn_movie::after{
	position: absolute;
	top: 50%;
	right: 10px;
  	transform: translateY(-50%);
  	-webkit-transform: translateY(-50%);
	width: 10px;
	height: 10px;
	margin: 0;
	padding: 0;
	content: "";
	background: url(/img/www/wa/img/r-arrow.png) no-repeat;
  	background-size: contain;
}



.modal_menuList .modal_menuList_inner .btn_picture:active,
.modal_menuList .modal_menuList_inner .btn_movie:active,
.modal_menuList .modal_menuList_inner .btn_close:active{
	transform: scale(0.9);
}


@media screen and (min-width: 681px){


.modal_profile_photo .profile_photo_inner,
.modal_profile_video .profile_video_inner{
	width: 480px;
	margin: 0 auto 0 auto;
	padding: 0;
}

.modal_menuList .modal_menuList_inner{
    	width: 480px;
	margin: 0 auto 0 auto;
	padding: 15px;
}

}



/*////////////// popup form ////////////////*/

.mod-puf-container {
    transform: translateY(24px);
    transition: transform 300ms ease-in-out, opacity 250ms linear;
    width: 100%;
    position: fixed;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 50%;
    bottom: 50%;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    z-index: 9999;
}

.modal.is-open .mod-puf-container {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.mod-puf-content {
    background-color: #fff;
    color: #333;
    text-align: center;
    border-radius: 20px;
    width: 90%;
    min-width: 300px;
    max-height: 90vh;
    padding: 1px;
}

.mod-puf-content p {
    font-size: 0.9rem;
    padding: 1rem;
    margin: auto;
    line-height: 1.4;
    border-bottom: 1px solid #ddd;
}

.mod-puf-content form {
    padding: 1rem;
}

.mod-puf-content form div {
    margin-bottom: 1rem;
}

.mod-puf-content form div label {
    font-size: 1rem;
}

@media screen and (min-width: 681px) {
    .mod-puf-container {
        max-width: 640px;
    }
}

/************************************
form
*************************************/

/* reset ***********************/
/* 
button,
option,
select,
textarea,
input[type="button"],
input[type="submit"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="text"],
input[type="select"],
input[type="reset"],
input[type="option"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
    border: none;
    outline: 0;
    margin: 0;
    background: #fff;
    font-size: 100%;
    font-family: inherit;
} */

/* デフォルトのradio、checkboxは非表示 */

input[type=radio].radiobutton {
    display: flex;
    position: absolute;
    top: 0.4em;
    left: -0.2em;
    z-index: -999;
}

input[type=checkbox].mod-checkbox {
    display: flex;
    position: absolute;
    top: 0.4em;
    left: -0.2em;
    z-index: -999;
}

/* for firefox */

select {
    text-indent: 0.01px;
    text-overflow: '';
}

/* for ie10 ie11 ie系のプルダウンの矢印を消す ie9は非対応 */

select::-ms-expand {
    display: none;
}

/* main */

form {
    text-align: left;
}

form h3 {
    font-size: 1rem;
    margin: 1rem 0 0.5rem;
}

form ol {
    list-style: none;
    margin: 0.5rem 1rem 1rem 0.5rem;
    padding: 0rem;
}

input[type="reset"].form-cancel {
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    appearance: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    border-radius: 0;
    border: none;
    outline: 0;
    margin: 0;
    background: #fff;
    font-family: inherit;

    font-size: 1rem;
    text-align: center;
    margin: 0.8em auto 0.5em;
    padding: 0.5em;
    display: block;
    color: #555;
    text-decoration: underline;
    cursor: pointer;
}

/*
/reset
***********************/


/* text box */

textarea,
input[type="number"],
input[type="text"] {
    width: -webkit-fill-available;
    width: -moz-available;
    padding: 10px 15px;
    font-size: 1rem;
    border: 1px solid #efefef;
    background: #f8f6f7;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    border-radius: 4px;
}

textarea {
    height: 3rem;
    /* お好みの高さに */
}

/* フォーカス時の色変更 */

textarea:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="text"]:focus {
    border: 1px solid #333;
}

/* radio button */

.form-radio label {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    font-size: 1rem;
    cursor: pointer;
    padding: 0.5rem 0;
}

.radiobutton {
    display: none;
}

.radio-fontas {
    font-size: 1rem;
}

.radiobutton+.radio-fontas:before {
    font-weight: 900;
    font-family: "Font Awesome 5 Free";
    color: #ccc;
    content: '\f192';
    margin-right: 0.5rem;
}

.radiobutton:checked+.radio-fontas:before {
    color: #3399ff;
}



/* check box */

.form-checkbox label {
    position: relative;
    display: inline-block;
    font-size: 1rem;
    cursor: pointer;
    padding: 0.5rem 0;
}

.form-checkbox label::before,
.form-checkbox label::after {
    position: absolute;
    /* display: block; */
    content: '';
    top: 50%;
    left: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

/* 
.check {
    display: none;
} */

.check-fontas {
    position: relative;
    vertical-align: middle;
    font-size: 21px;
}

.check+.checkbox-fontas:before {
    font-weight: 900;
    font-family: "Font Awesome 5 Free";
    content: '\f14a';
    color: #ccc;
    margin-right: 0.5rem;
}

.check:checked+.checkbox-fontas:before {
    color: #3399ff;
}



/* pull-down menu */

.form-select {
    display: block;
    position: relative;
    width: 100%;
    height: 2rem;
    font-size: 14px;
    font-size: 1.4rem;
    border: 1px solid #ccc;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    border-radius: 4px;
    overflow: hidden;
}

.form-select:after {
    position: absolute;
    display: block;
    content: '';
    width: 0;
    height: 0;
    /* ここで下向き矢印指定　今回はCSSで */
    border-top: 6px solid transparent;
    border-left: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #333;
    top: 50%;
    right: 10px;
    margin-top: -3px;
    pointer-events: none;
    /* クリック出来るよう */
}

.form-select select {
    width: 100%;
    height: 2rem;
    font-size: 14px;
    font-size: 1rem;
    padding: 0 10px;
    border: none;
    position: relative;
    background-color: #f8f6f7;
    border: 1px solid #efefef;
}

.form-select option {
    font-size: 0.8rem;
    padding: 10rem;
    margin: 2rem;
}

/* ie9対策 */

.form-select select:not(:target) {
    width: 120% \9;
}

/* button */

button {
    -webkit-border-radius: 5rem;
    -moz-border-radius: 5rem;
    -ms-border-radius: 5rem;
    border-radius: 5rem;
    width: 90%;
    height: 48px;
    margin: 2rem auto 0;
    display: block;
    position: relative;
    background: #f70454;
    color: #fff;
    font-size: 1rem;
    text-align: center;
    border: 1px solid #f70454;
    cursor: pointer;
}

/* button:before {
    position: absolute;
    display: block;
    content: '';
    width: 98%;
    height: 3px;
    background: #ccc;
    bottom: -4px;
    left: 1%;
} */

@media print,
screen and (min-width: 1024px) {
    button {
        -webkit-transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
        -moz-transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
        -ms-transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
        transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
    }

    button:hover {
        color: #f70454;
        background: #ffffff;
    }
}


#insert-img {
    display: block;
    padding: 1rem;
    width: 90%;
    max-width: 640px;
    height: auto;
}


/* お気に入りボタン */
.favorite {
    margin-left: 2rem;
}

.favorite-check-box {
    cursor: pointer;
}

.favorite-check-box input {
    display: none;
}

/*
.favorite-check-box input+.favorite-text:before {
    content: "";
    display: inline-block;
    position: relative;
    top: 0em;
    padding: 1px;
    background-image: url("/img/heart_bg.png");
    background-size: contain;
    background-repeat: no-repeat;
    width: 5em;
    height: 5em;
}*/

.favorite-check-box input+.favorite-text:before {
    content: "";
    display: inline-block;
    position: relative;
    top: 0.6em;
    padding: 1px;
    margin-right: 5px;
    background-image: url(/img/heart_bg.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.5em;
    height: 1.5em;
}

.favorite-check-box input:checked+.favorite-text:before {
    background-image: url("/img/heart.png");
}



@media screen and (max-width: 680px) {
/* お気に入りボタン */
.favorite {
    margin-left: 0;
}

.favorite-check-box {
    cursor: pointer;
}

.favorite-check-box input {
    display: none;
}

.favorite-check-box input+.favorite-text:before {
    content: "";
    display: inline-block;
    position: relative;
    top: 5px;
    width: 20px;
    padding: 0;
    margin: 0;
    background-image: url(/img/heart_bg.png);
    background-size: contain;
    background-repeat: no-repeat;
    /*width: 1.1em;
    height: 1.1em;*/
}

.favorite-check-box input:checked+.favorite-text:before {
    background-image: url("/img/heart.png");
}

}


/*--20231005 PWA 許可表示追加----------------------------------------------*/

.modal_notice .close{
    width: 60%;
    margin: 10px auto 10px auto;
    padding: 10px 0 10px 0;
    border-radius: 50px;
    -webkit-border-radius: 50px;
    -moz-border-radius: 50px;
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    color: #000;
    background: #e6e6e6;
}

.noticeSlider{
	margin: 10px 10px 0 10px;
	padding: 0;
}

.modal_notice .help{
	position:relative;
	box-sizing: border-box;
	width: 90%;
	margin: 30px auto 5px auto;
	padding: 10px;
	border-radius: 8px;		/* CSS3草案 */
	-webkit-border-radius: 8px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 8px;	/* Firefox用 */
	color: #000;
	background: #fff;
}

.modal_notice .help::after{
	position: absolute;
	box-sizing: border-box;
	top:-15px;
	left:50%;
	transform: translateX(-50%);
	width: 40%;
	margin: 0 auto 30px auto;
	padding: 10px;
	border: 3px solid #fff;
	border-radius: 50px;		/* CSS3草案 */
	-webkit-border-radius: 50px;	/* Safari,Google Chrome用 */
  	-moz-border-radius: 50px;	/* Firefox用 */
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	color: #fff;
	background: #02b6fa;
}

.modal_notice .h_step_1::after{ content:"ヘルプ1";}
.modal_notice .h_step_2::after{ content:"ヘルプ2";}
.modal_notice .h_step_3::after{ content:"ヘルプ3";}
.modal_notice .h_step_4::after{ content:"ヘルプ4";}
.modal_notice .h_step_5::after{ content:"ヘルプ5";}
.modal_notice .h_step_6::after{ content:"ヘルプ6";}

.modal_notice .help img{
	margin: 0 0 10px 0;
	border: 1px solid #acacac;
}

.modal_notice .help p{
	margin: 0;
	padding: 0 0 0 0;
	font-size: 1.2rem;
	text-align: left;
	line-height: 110%;
	color: #000;
}

.modal_help .next-arrow,
.modal_notice .next-arrow{width: 25px;}

.modal_help .prev-arrow,
.modal_notice .prev-arrow{width: 25px;}
