@charset "UTF-8";

@import url("./reset.css");
@import url("./fonts.css");

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
}

*, :after, :before {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

body,div,img,h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,table,caption,td,th,input,textarea,address,select,form,figure{
	margin: 0;
	padding: 0;
}

li{
	list-style:none;
}

summary{
	list-style:none;
}

summary::marker,
summary::-webkit-details-marker{
	display:none;
}



/* 1. Module -------------------------------------------------------------------------------------*/

html {
  font-size: 62.5%;
  scroll-behavior:smooth;
}

body {
	font-family:"M PLUS Rounded 1c", "hiragino-kaku-gothic-pron", "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
}

a{
	color:#014099;
}

.sp{
	display:none;
}

p.tips:before{
	content:"?";
	color:#fff;
	display:inline-block;
	width:1.2em;
	height:1.2em;
	border-radius:0.6em;
	background:#0f76c6;
	text-align:center;
	line-height:1.3em;
	font-weight:normal;
	margin-right:0.5em;
	margin-top:0.1em;
}

p.notes{
	padding-left:1em;
	text-indent:-1em;
}

/* 1-1 Form Elements */

main textarea,
main select,
main input[type="text"],
main input[type="password"]{
	display:inline-block;
	border-radius:4px;
	border:2px solid #bbdded;
	font-size:100%;
	padding:5px 10px;
	background:#fff;
	margin-left:1em;
	margin-right:10px;
	font-family:inherit;
	color:inherit;
	transition:background 0.2s;
	max-width:90%;
	height:2.1em;
}

main textarea{
	height:6em;
	width:90%;
	font-size:131.25%;
}

main textarea.complete,
main select.complete,
main input[type="text"].complete,
main input[type="password"].complete,
main em.text_md.complete{
	background:#fff7bf;
}
main select.complete{
	background:#fff7bf url(../images/arrow_select.png) no-repeat;
	background-size:10px 8px;
	background-position:right 12px top 50%;
}

main textarea.complete:disabled,
main select.complete:disabled,
main input[type="text"].complete:disabled,
main input[type="password"].complete:disabled,
main em.text_md.complete:disabled{
	background:#fffad9;
	color:#416994;
}
main select.complete:disabled{
	background:#fffad9 url(../images/arrow_select.png) no-repeat;
	background-size:10px 8px;
	background-position:right 12px top 50%;
	opacity:1;
}

main textarea.error,
main select.error,
main input[type="text"].error,
main input[type="password"].error,
main em.text_md.error{
	border:2px solid #f89ebd;
	background:#ffe1ec;
}
main select.error{
	background:#ffe1ec url(../images/arrow_select.png) no-repeat;
	background-size:10px 8px;
	background-position:right 12px top 50%;
}

input::placeholder{
	color:#999;
}

main input[type="text"].sshort{
	width:2.5em;
}

main input[type="text"].post{
	width:8em;
}

main input[type="text"].long{
	width:100%;
}

main select.long{
	width:90%;
}

main input[type="text"].middle,
main input[type="password"].middle,
main select.middle{
	width:75%;
}

main input[type="text"].tel{
	width:7em;
}

main select{
	-moz-appearance:none;
	-webkit-appearance:none;
	appearance:none;
	position:relative;
	padding:5px 30px 5px 10px;
	background:#fff url(../images/arrow_select.png) no-repeat;
	background-size:10px 8px;
	background-position:right 12px top 50%;
}

main select option.default{
	display:none;
}

main span.input_radio{
	display:inline-flex;
	margin-left:3em;
}

main section.primary span.input_radio{
	display:flex;
	margin:0;
	width:100%;
}

main label input[type="radio"]{
	height:1.6em;
	width:1.6em;
	border:none;
	vertical-align:middle;
	display:inline-block;
	margin-right:15px;
	-webkit-appearance:none;
	-moz-appearance:none;
	-o-appearance:none;
	appearance:none;
	position:relative;
	z-index:1;
}

main label input[type="radio"]:before{
	content:"";
	display:block;
	height:1.6em;
	width:1.6em;
	border-radius:0.8em;
	border:2px solid #bbdded;
	background:#fff;
}

main label input[type="radio"]:checked:before{
	border:2px solid #004097;
}

main label input[type="radio"]:checked:after{
	position:absolute;
	display:block;
	content:"";
	width:calc(1.6em - 8px);
	height:calc(1.6em - 8px);
	background:#004097;
	border-radius:7px;
	left:4px;
	top:4px;
	z-index:3;
}

main label input[type="radio"].checkbox,
main label input[type="checkbox"]{
	border:none;
	vertical-align:middle;
	display:inline-block;
	margin-right:10px;
	-webkit-appearance:none;
	-moz-appearance:none;
	-o-appearance:none;
	appearance:none;
	position:relative;
	z-index:1;
	height:2em;
	width:2em;
	border-radius:6px;
	left:0;
	top:-2px;
}


main label input[type="radio"].checkbox:before,
main label input[type="checkbox"]:before{
	content:"";
	display:block;
	height:2em;
	width:2em;
	border-radius:6px;
	border:2px solid #bbdded;
	background:#fff;
}
main label input[type="radio"].checkbox:checked:before,
main label input[type="checkbox"]:checked:before{
	background:#004097;
	border:2px solid #004097;
}

main label input[type="radio"].checkbox:checked:after,
main label input[type="checkbox"]:checked:after{
	content:"";
	display:block;
	position:absolute;
	border-radius:0;
	height:1.4em;
	width:0.75em;
	border-right:3px solid #fff;
	border-bottom:3px solid #fff;
	transform:rotate(30deg);
	left:0.6em;
	top:0.2em;
	box-shadow:2px 2px 1px rgba(0,0,0,0.2);
}

main em.text_md{
	display:inline-block;
	border-radius:4px;
	border:2px solid #bbdded;
	font-size:100%;
	padding:5px 10px;
	background:#fff;
	margin-left:1em;
	width:2.5em;
	height:2.1em;
	text-align:center;
	transition:background 0.2s;
}



/* 2. Text ---------------------------------------------------------------------------------------*/

main > p{
	font-size:112.5%;
	max-width:1025px;
	margin:1em auto 0;
	text-align:left;
}

main > section + p{
	margin-top:2em;
}

.text{
}

main p.before_complete{
	text-align:center;
	font-size:131.25%;
	font-weight:bold;
}



/* 3. Blocks -------------------------------------------------------------------------------------*/

/* 3-1. Header */

header{
	width:1025px;
	padding: 25px 0 21px;
	margin:0 auto;
	display:flex;
	justify-content:space-between;
}

header h1#logo{
	font-size:100%;
}

header h1#logo a{
	display:block;
	width:240px;
	height:40px;
	background:url(../images/logo.svg) no-repeat;
	text-indent:-9999px;
	position:relative;
}

header address.tel{
	font-size:87.5%;
}

header address.tel a{
	display:block;
	background:url(../images/telephone.png) no-repeat;
	width:217px;
	height:25px;
	margin-left: auto;
	margin-bottom:0.25em;
}


/* 3-2. Footer */

footer{
	display:flex;
	background:#9bd9f6;
	color:#013770;
	width:100%;
	text-align:center;
	padding:15px 0 0;
	flex-wrap:wrap;
	justify-content:space-between;
	min-width:1025px;
}

footer small{
	display:inline-block;
	width:100%;
	font-size:75%;
	margin-top:15px;
	margin-bottom:30px;
}

footer section.total{
	width:333px;
	height:92px;
	background:#fff7bf;
	padding:20px;
	border-radius:10px;
	margin-left:calc(50% - 512px);
	color:#013770;
	transition:background 0.2s,color 0.2s;
}

footer section.total p{
	height:52px;
	display:flex;
	vertical-align:bottom;
	align-items:flex-end;
	justify-content:space-between;
}

footer section.total p em{
	font-weight:bold;
	font-size:150%;
}

footer section.total p strong{
	font-size:187.5%;
	flex-grow:2;
	text-align:right;
	color:#f60;
	margin-bottom:-0.1em;
	transition:color 0.2s;
}


footer section.total p span{
	font-size:112.5%;
	padding-left:0.25em;
}

footer section.total.disabled{
	background:#fff;
	color:#ccc;
}

footer section.total.disabled p strong{
	color:#ccc;
	display:none;
}

footer section.buttons{
	display:flex;
	position:relative;
	width:1025px;
	margin:0 auto;
}

footer section.buttons a.next{
	disiplay:block;
	font-size:125%;
	width:290px;
	height:92px;
	padding:calc(43px - 0.75em) 0;
	margin:35px auto 40px;
	border-radius:46px;
	text-align:center;
	background:#0f97da;
	border:3px solid #fff;
	color:#fff;
	font-weight:bold;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	transition:background 0.2s;
	position:relative;
}

footer section.buttons a.next.complete{
	width:350px;
}

footer section.buttons a.back{
	background:#fff;
	width:240px;
	height:60px;
	padding:calc(30px - 0.75em) 0;
	border-radius:30px;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	position:relative;
	transition:background 0.2s;
	font-weight:bold;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	position:absolute;
	left:80px;
	top:50px;
}

footer section.buttons a.skip{
	background:#0f97da;
	border:3px solid #fff;
	color:#fff;
	width:240px;
	height:60px;
	padding:calc(30px - 0.75em) 0;
	border-radius:30px;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	position:relative;
	transition:background 0.2s;
	font-weight:bold;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	position:absolute;
	right:80px;
	top:50px;
}

footer section.buttons a.next.disabled{
	background:#ccc;
	box-shadow:none;
}

/*
footer section.buttons a.next i.triangle{
	content:"";
	display:block;
	width:10px;
	height:12px;
	right:25px;
	top:37px;
	background:#fff;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	position:absolute;
}

footer section.buttons a.skip i.triangle{
	background-color:#fff;
}
*/

footer section.buttons div{
	width:260px;
}

footer section.buttons div a{
	background:#fff;
	font-size:112.5%;
	display:block;
	width:100%;
	text-align:center;
	height:40px;
	padding:calc(20px - 0.5em) 0;
	line-height:1;
	border-radius:20px;
	font-weight:bold;
	box-shadow:0px 1px 3px rgba(0,0,0,0.2);
	position:relative;
	transition:color 0.2s;
}

/*	
footer section.buttons a i.triangle{
	content:"";
	display:block;
	width:10px;
	height:12px;
	right:14px;
	top:calc(50% - 6px);
	background:#0f76c6;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	position:absolute;
	transition:background 0.2s;
}

footer section.buttons a.back i.triangle{
	left:14px;
	transform:rotate(180deg);
}
*/

footer section.buttons div a.disabled{
	color:#ccc;
}

footer section.buttons a i.triangle{
	display:block;
	width:12px;
	height:14px;
	right:14px;
	top:calc(50% - 7px);
	background:url(../images/chevron-right.svg) center no-repeat;
	background-size:14px 14px;
	position:absolute;
}

footer section.buttons a.next i.triangle{
	display:block;
	right:25px;
	top:36px;
	background:url(../images/chevron-right_over.svg) center no-repeat;
	background-size:14px 14px;
}

footer section.buttons a.skip i.triangle{
	background:url(../images/chevron-right.svg) center no-repeat;
	background-size:14px 14px;
}

footer section.buttons a.back i.triangle{
	left:14px;
	transform:rotate(180deg);
}

footer > div{
	background:#fff;
	padding-bottom:55px;
	width:100%;
}

footer > div a.logo{
	display:block;
	margin:22px auto 12px;
	width:105px;
	height:66px;
	background:url(../images/footer_logo.png) no-repeat;
	background-size:contain;
	text-indent:-9999px;
}

footer > div small{
	display:inline-block;
	font-size:75%;
	color:#666;
	right:calc(50% - 600px);
	bottom:2em;
	margin:0;
}

a.pagetop{
	display:block;
	text-indent:-9999px;
	width:42px;
	height:42px;
	border-radius:21px;
	border:1px solid #014099;
	box-shadow:0 1px 3px rgba(0,0,0,0.5);
	background:#fff url(../images/icon_pagetop.svg) center no-repeat;
	position:fixed;
	right:30px;
	bottom:30px;
	z-index:11;
}

a.pagetop:hover{
	background:#014099 url(../images/icon_pagetop_over.svg) center no-repeat;
}

aside a.pagetop{
	display:none;
	position:fixed;
	width:42px;
	height:42px;
	border-radius:21px;
	right:30px;
	bottom:90px;
	background:#0f76c6;
	text-indent:-9999px;
	box-shadow:0px 2px 3px rgba(0,0,0,0.2);
	z-index:90;
}

aside a.pagetop:after{
	display:block;
	content:"";
	width:15px;
	height:15px;
	border-left:2px solid #fff;
	border-top:2px solid #fff;
	border-radius:2px;
	transform:rotate(45deg);
	left:13px;
	top:-7px;
	position:relative;
	
}


/* 3-3. Article */

main{
	background:#9bd9f6;
	color:#014099;
	text-align:center;
	line-height:1.5;
	min-width:1025px;
	min-height:calc(100vh - 145px - 1.5em);
}

main h1{
	font-size:187.5%;
	padding-top:20px;
}

main > p.plan{
	width:282px;
	height:101px;
	background:url(../images/logo_plan.png) no-repeat;
	background-size:contain;
	margin:20px auto 0;
	text-indent:-9999px;
}

main > p.tips{
	max-width:1025px;
}

main > section{
	background:#fff;
	border-radius:20px;
	margin:30px auto 0;
	padding:53px 60px 50px;
	max-width:1025px;
	text-align:left;
	font-size:100%;
	box-shadow:0px 2px 6px rgba(27,79,120,0.2);
	position:relative;
}

main > section + section,
main > section.form.confirm + section.form.confirm{
	margin:40px auto 0;
}

main > section.form:not(.hidden) + section.form{
	margin:70px auto 0;
}

main > section.form:not(.hidden) + section.form:before{
	content:"";
	display:block;
	width:81px;
	height:44px;
	background:url(../images/flow.png);
	background-size:contain;
	position:absolute;
	left:calc(50% - 40px);
	top:-59px;
}

main > section.form.confirm + section.form.confirm:before{
	display:none;
}

main > section.prior h2{
	font-size:225%;
	text-align:center;
	margin:0;
}

main > section h2{
	text-align:left;
	font-size:150%;
}

main > section p{
	font-size:112.5%;
	margin-top:1.5em;
}

main > section p.lead{
	font-size:150%;
	margin-top:1em;
	text-align:center;
}

main > section p.lead strong{
	color:#f30;
}

main p.tips{
	font-size:100%;
	text-align:right;
}


/* -- Block01 -- */

main section.plan{
	background:#fff7bf;
	display:flex;
	align-items:center;
}

main section.plan p.plan_name{
	width:226px;
	height:80px;
	background:url(../images/logo_plan.png) no-repeat;
	background-size:contain;
	text-indent:-9999px;
	margin:0;
}

main section.plan div.detail{
	padding-left:55px;
}

main section.plan div.detail p{
	font-size:112.5%;
	margin:0;
	line-height:2;
}

main section.plan div.detail em{
	font-weight:bold;
}

main section.plan div.detail strong{
	color:#f30;
}

main section.plan div.detail span{
	font-size:77.78%;
}

main section.plan div.detail p.premium strong{
	font-size:133.34%;
}


/* -- Block02 -- */

main section ol.flow{
	position:relative;
	width:690px;
	margin:50px auto;
}

main section ol.flow:before{
	content:"";
	display:block;
	position:absolute;
	height:100%;
	width:68px;
	top:0;
	left:calc(50% - 34px);
	background:#bbdded;
	z-index:1;
}

main section ol.flow li{
	position:relative;
	z-index:2;
	background:#dbf3fe;
	border-radius:10px;
	display:flex;
	align-items:center;
}

main section ol.flow li + li{
	margin-top:30px;
}

main section ol.flow li + li:after{
	content:"";
	display:block;
	position:absolute;
	width:68px;
	height:30px;
	top:-30px;
	left:calc(50% - 34px);;
	background:url(../images/arrow_flow.png) no-repeat;
	background-size:contain;
}

main section ol.flow li strong{
	font-size:375%;
	background:#bbdded;
	width:96px;
	height:96px;
	line-height:96px;
	text-align:center;
	border-radius:10px 0 0 10px;
	display:block;
}

main section ol.flow li em{
	width:400px;
	padding-left:30px;
	display:block;
	font-size:150%;
	font-weight:bold;
}

main section ol.flow li i.check{
	position:relative;
	display:inline-block;
	margin-right:0.5em;
	top:-0.1em;
	width:0.4em;
	height:0.8em;
	transform:rotate(30deg);
	border-right:2px solid #f60;
	border-bottom:2px solid #f60;
	box-shadow:1px 2px 1px rgba(0,0,0,0.2);
}


/* -- Block03 -- */

main section details.notice{
	background:#eee;
	margin-top:30px;
	border-radius:5px;
}

main section details.notice summary{
	display:block;
	position:relative;
	font-size:150%;
	border-radius:5px;
	padding:20px 30px;
	list-item:none;
	background:#dbf3fe;
	cursor:pointer;
	font-weight:bold;
	transition:background 0.2s;
}

main section details.notice summary:before{
	display:block;
	position:absolute;
	content:"開く";
	color:#0f76c6;
	font-size:66.67%;
	font-weight:bold;
	text-align:right;
	right:70px;
	top:calc(50% - 0.5em);
}

main section details.notice summary:after{
	display:block;
	position:absolute;
	content:"＋";
	color:#fff;
	font-weight:normal;
	background:#0f76c6;
	width:32px;
	height:32px;
	border-radius:16px;
	text-align:center;
	line-height:32px;
	right:30px;
	top:calc(50% - 16px);
	box-shadow:0 1px 2px rgba(0,0,0,0.2);
}

main section details.notice[open] summary:before{
	content:"閉じる";
}

main section details.notice[open] summary:after{
	content:"－";
}

main section details.notice[open] summary{
	border-radius:5px 5px 0 0;
}

main section details.notice.activated summary{
	background:#fff7bf;
}

main section details.notice p{
	padding:0 30px 0 calc(30px + 1.33em);
	text-indent:-1.33em;
}

main section details.notice p + p{
	margin-top:0.5em;
}

main section details.notice p:last-child{
	padding-bottom:20px;
}

main section p.confirm_text{
	margin-top:3em;
}

main section label.agn{
	display:block;
	position:relative;
	border-radius:5px;
	margin-top:30px;
	padding:20px 30px;
	background:#dbf3fe;
	font-weight:bold;
	font-size:131.25%;
}

main section label.agn:has(input:checked){
	background:#fff7bf;
}

main section label.agn strong{
	color:#f60;
	margin-left:2em;
	font-size:85.72%;
	padding-left:2em;
	background:url(../images/icon_caution.png) left no-repeat;
	background-size:contain;
}

main section label.agn:has(input:checked) strong{
	opacity:0;
}

main section label.agn + p.check_notice{
	color:#f60;
	font-size:112.5%;
	font-weight:bold;
	padding-left:2em;
	background:url(../images/icon_caution.png) left no-repeat;
	background-size:contain;
}

main section label.agn:has(input:checked) + p.check_notice{
	display:none;
}


/* -- Block04 old -- */

main section.identification{
}

main section.identification details{
	background:#f0f0f0;
	border:2px solid #bbdded;
	border-radius:4px 4px 0 0;
	padding:18px;
	margin-top:30px;
}
main section.identification details + details{
	border-radius:0;
	margin-top:0;
	border-top:none;
}
main section.identification details:last-child{
	border-radius:0 0 4px 4px;
}

main section.identification details[open]{
	background:#fff7bf;
}

main section.identification details summary{
	display:block;
	font-size:112.5%;
	position:relative;
	font-weight:bold;
}

main section.identification details summary:before{
	content:"";
	display:inline-block;
	position:relative;
	height:20px;
	width:20px;
	border-radius:4px;
	border:2px solid #bbdded;
	background:#fff;
	margin-right:0.5em;
	top:0.35em;
}
main section.identification details[open] summary:before{
	background:#0f76c6;
	border:2px solid #0f76c6;
}

main section.identification details[open] summary:after{
	content:"";
	display:block;
	position:absolute;
	border-radius:0;
	height:16px;
	width:6px;
	border-right:3px solid #fff;
	border-bottom:3px solid #fff;
	transform:rotate(30deg);
	left:7px;
	top:6px;
	box-shadow:2px 2px 1px rgba(0,0,0,0.2);
	trasnform:scaleX(1.1);
}

main section.identification details em{
	color:#c00;
}

main section.identification details div.required{
	background:#fff;
	padding:1.5em 2.5em;
	margin-top:40px;
	border-radius:8px;
}

main section.identification details div.required p:first-child{
	margin-top:0;
}

main section.identification details ol{
	padding-top:1em;
}

main section.identification details ol li{
	margin-top:1em;
	list-style:decimal inside;
	text-indent:0;
	text-indent:-1.33em;
	padding-left:1.33em;
}

main section.identification details label.image{
	display:block;
	margin-top:1em;
}

main section.identification details label.image input[type="file"]{
	font-size:100%;
	margin-left:1em;
	padding:5px 0;
	width:calc(100% - 4em);
}

main section.identification details label.image input[type="file"]::file-selector-button,
main section.identification details label.image input[type="file"]::-webkit-file-upload-button{
	content:"画像ファイルを選択";
	color:#fff;
	background:#0f97da;
	width:16em;
	font-weight:bold;
	border:none;
	border-radius:4px;
	padding:0.5em 3em;
	margin-right:1em;
	box-shadow:1px 2px 3px rgba(0,0,0,0.2);
	cursor:pointer;
	position:relative;
}


/* -- Block04 -- */

main section div.pdf_reader{
	margin-top:30px;
	width:100%;
	height:470px;
	border:2px solid #37379b;
}

main section.form > div.pdf_reader{
	padding:0;
	border:2px solid #37379b;
}

main section div.pdf_reader iframe.pdf_frame{
	width:100%;
	height:100%;
	overflow:hidden;
	border:none;
}


/* -- Block05 -- */

main section.notice{
}

main section.notice div.notice_list{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	background:#f0f0f0;
	border:2px solid #bbdded;
	border-radius:4px;
	padding:30px 0;
	margin:30px 0 0;
	transition:background 0.2s;
}

main section.notice div.notice_list:has(+ h2){
	margin-bottom:60px;
}

main section.notice div.notice_list + div.notice_list{
	margin-top:0;
	border-top:none;
	border-top-left-radius:0;
	border-top-right-radius:0;
}

main section.notice div.notice_list:has(+ div.notice_list){
	border-bottom-left-radius:0;
	border-bottom-right-radius:0;
}

main section.notice div.notice_list label,
main section.notice div.notice_list p{
	font-size:131.25%;
	font-weight:bold;
	margin:0;
}

main section.notice div.notice_list label{
	flex-basis:120px;
}

main section.notice div.notice_list > label:first-child{
	margin-left:20px;
}

main section.notice div.notice_list.allnone label{
	flex-basis:100%;
}

main section.notice div.notice_list p{
	padding-left:50px;
	max-width:620px;
}

main section.notice div.notice_list div.detail{
	display:none;
}

main section.notice div.notice_list:has(input:checked){
	background:#fff7bf;
}

main section.notice div.notice_list:has(input.yes:checked){
	padding:30px 0 0;
}

main section.notice div.notice_list:has(input.yes:checked) div.detail{
	display:block;
	flex-basis:100%;
	margin-top:30px;
	padding:30px 20px;
	background:#f0f0f0;
}

main section.notice div.notice_list div.detail table th,
main section.notice div.notice_list div.detail table td{
	font-size:131.25%;
	vertical-align:top;
}

main section.notice div.notice_list div.detail table tr:last-child th,
main section.notice div.notice_list div.detail table tr:last-child td{
	padding-bottom:0;
}

main section.notice div.notice_list div.detail table th{
	padding:9px 30px 30px 0;
	text-align:right;
	width:280px;
	font-weight:normal;
}

main section.notice div.notice_list div.detail table td{
	padding:0 0 30px;
}

main section.notice div.notice_list div.detail table td input[type="text"],
main section.notice div.notice_list div.detail table td select{
	width:450px;
	margin-left:0;
}
main section.notice div.notice_list div.detail table td select.year{
	width:6em;
}
main section.notice div.notice_list div.detail table td select.month{
	width:4em;
	margin-left:1em;
}

main section.notice div.notice_list div.detail table td input.bp{
	width:5em;
	margin:0 1em 0 0.25em;
}

main section.notice div.notice_list div.detail table td p.caution{
	color:#f60;
	font-size:85.5%;
	padding-left:2em;
	background:url(../images/icon_caution.png) left no-repeat;
	background-size:1.38em 1.24em;
	margin-top:30px;
	line-height:1.25;
}

main section.notice div.notice_list div.detail table td p.caution:first-child{
	margin-top:0;
}

main section.notice div.notice_list div.detail label{
	font-weight:normal;
	display:block;
	margin-top:30px;
}

main section.notice div.notice_list div.detail label:first-child{
	margin-top:0;
}

main section.notice div.notice_list div.detail div.detail_sub{
	display:none;
	padding-top:20px;
}

main section.notice div.notice_list div.detail label:has(input:checked) + div.detail_sub{
	display:block;
}

main section.notice div.notice_list.error {
	border: 2px solid #f89ebd;
	background: #ffe1ec;
}

main section.notice div.notice_list.error_msg {
	display:none;
	color: #f06;
	background: unset;
	padding: 0;
	border-right: 0;
	border-left: 0;
}

main section.notice div.notice_list.error + div.notice_list.error_msg {
	display: block;
}

/* -- Block07 -- */

main section a.edit{
	display:block;
	text-align:center;
	font-size:112.5%;
	position:sticky;
	z-index:99;
	left:calc(100% - 100px);
	top:30px;
	width:12em;
	color:#fff;
	background:#0f97da;
	box-shadow:0 2px 3px rgba(0,0,0,0.2);
	padding:0.5em 1.5em;
	border-radius:2em;
	margin-left:1em;
	transition:background 0.2s;
}

main section a.edit + h2{
	margin-top:-45px;
}

/* -- Block06 -- */

main section.payment{
}

main section.payment details{
	background:#f0f0f0;
	border:2px solid #bbdded;
	border-radius:4px 4px 0 0;
	margin-top:30px;
	transition:background 0.2s;
}
main section.payment details + details{
	border-radius:0;
	margin-top:0;
	border-top:none;
}
main section.payment details:last-child{
	border-radius:0 0 4px 4px;
}
main section.payment details.credit summary{
	background:#f0f0f0 url(../images/payment_brand.png) no-repeat;
	background-position:right 30px top 30px;
	transition:background 0.2s;
}

main section.payment details[open].credit summary{
	background:#fff7bf url(../images/payment_brand.png) no-repeat;
	background-position:right 30px top 30px;
}

main section.payment details[open].bank,
main section.payment details[open].documents{
	background:#fff7bf;
}

main section.payment details summary{
	display:block;
	font-size:131.25%;
	position:relative;
	font-weight:bold;
	padding:36px 18px;
}

main section.payment details summary:before{
	content:"";
	display:inline-block;
	position:relative;
	height:20px;
	width:20px;
	border-radius:4px;
	border:2px solid #bbdded;
	background:#fff;
	margin-right:0.5em;
	top:0.35em;
	font-size:76.4%;
}
main section.payment details[open] summary:before{
	background:#0f76c6;
	border:2px solid #0f76c6;
}

main section.payment details[open] summary:after{
	content:"";
	display:block;
	position:absolute;
	border-radius:0;
	height:16px;
	width:6px;
	border-right:3px solid #fff;
	border-bottom:3px solid #fff;
	transform:rotate(30deg);
	left:25px;
	top:42px;
	box-shadow:2px 2px 1px rgba(0,0,0,0.2);
	trasnform:scaleX(1.1);
}

main section.payment details span.recommended{
	position:relative;
	display:inline-block;
	background:#f60;
	color:#fef0bd;
	font-size:76%;
	font-weight:normal;
	padding:5px 10px;
	border-radius:4px;
	line-height:1em;
	margin-left:1em;
	top:-0.25em;
	box-shadow:0px 1px 2px 1px rgba(0,0,0,0.2);
}

main section.payment details span.recommended:after{
	content:"";
	display:block;
	position:absolute;
	width:10px;
	height:11px;
	background:url(../images/arrow_recommended_left.png) no-repeat;
	background-size:contain;
	top:calc(50% - 5px);
	left:-10px;
}

main section.payment details[open] div.recommended{
	display:none;
}

main section.payment details div.recommended p.message{
	font-size:85.72%;
	color:#f60;
	line-height:1.75;
}

main section.payment details div.recommended p.note{
	font-size:76.2%;
	font-weight:normal;
	margin-top:0.5em;
	line-height:1.75;
	padding-left:1em;
	text-indent:-1em;
}

main section.payment details div.recommended p.note + p.note{
	margin-top:0;
}

main section.payment details div.form,
main section.payment details div.text{
	padding:0 18px 36px;
}

main section.payment details div.form table td,
main section.payment details div.form table th{
	font-size:131.25%;
	padding-top:30px;
}

main section.payment details div.form table th{
	width:240px;
	text-align:right;
	padding:30px 30px 0 0;
	vertical-align:top;
	line-height:2.5;
}

main section.payment details div.form table td input{
	width:20em;
	box-sizing:border-box;
}

main section.payment details div.form table td input.sshort{
	width:2.5em;
}

main section.payment details div.form table td input:first-child{
	margin-left:0;
}

main section.payment details div.form table td p.note{
	font-size:76.2%;
	margin-top:0.5em;
}

main section.payment details p.caution{
	color:#f60;
	padding-left:2em;
	background:url(../images/icon_caution.png) left no-repeat;
	background-size:contain;
	margin-top:30px;
	line-height:1.25;
	font-weight:bold;
}

main section.payment details div.text p:first-child{
	margin-top:0;
}


/* -- Block08 -- */

section.system{
}

section.system.complete{
	background:#fff7bf;
}

section.system h2{
	font-size:312.5%;
	margin:-53px 0 0 -60px;
	padding:80px 60px;
	height:330px;
	width:calc(100% + 120px);
	border-top-left-radius:20px;
	border-top-right-radius:20px;
}

section.system h2.error{
	background:#0f76c6 url(../images/img_systemerror.png) no-repeat;
	background-size:contain;
	background-position:top 0 right 75px;
	color:#fff;
	font-weight:normal;
}

section.system h2.complete{
	background:#fbe880 url(../images/img_complete.png) no-repeat;
	background-size:contain;
	background-position:top 0 right 75px;
}

section.system p.link{
	font-weight:bold;
	padding-left:calc(8px + 5px)
}

section.system p.link a:before{
	content:"";
	display:inline-block;
	width:10px;
	height:14px;
	background:url(../images/chevron-right.svg) center no-repeat;
	background-size:14px 14px;
	margin-right:0.5em;
	margin-left:calc(-8px - 5px);
	margin-bottom:-1px;
}

section.system p.caution{
	color:#f60;
	font-weight:bold;
	font-size:112.5%;
	padding-left:2em;
	background:url(../images/icon_caution.png) left no-repeat;
	background-size:contain;
}

section.system p em{
	color:#c00;
}



/* 3-4. Modal Content */

div.modal_content{
	display:none;
}

section.modal{
	display:none;
	position:fixed;
	left:0;
	top:0;
	height:100vh;
	width:100vw;
	background:rgba(0,0,0,0.85);
	z-index:100;
	text-align:center;
}

section.modal > div.box{
	position:relative;
	background:#fff;
	width:530px;
	margin:0 auto;
	padding:50px;
	border-radius:10px;
	font-size:112.5%
	box-shadow:0px 1px 4px rgba(0,0,0,0.2);
	z-index:101;
	top:5vh;
}
section.modal > div.box::-webkit-scrollbar{
	width:0;
	scrollbar-width:0;
}
section.modal > div.box::-webkit-scrollbar-thumb{
}

section.modal > div.box:has(div.large){
	width:945px;
	max-height:90vh;
	color:#062743;
	overflow-y:scroll;
}

section.modal > div.box div p:first-child{
	margin-bottom:30px;
}

section.modal > div.box a.close{
	display:block;
	border:3px solid #bbdded;
	width:140px;
	padding:10px;
	line-height:1;
	border-radius:25px;
	margin:30px auto 0;
	font-weight:bold;
}

section.modal > div.box ul.date_selector{
	display:flex;
	flex-wrap:wrap;
	width:100%;
}

section.modal > div.box ul.date_selector li{
	width:13%;
	margin-left:4.4%;
	margin-bottom:15px;
	font-weight:bold;
}

section.modal > div.box ul.date_selector li:first-child,
section.modal > div.box ul.date_selector li:nth-child(6n+1){
	margin-left:0;
}

section.modal > div ul.date_selector li label{
	display:inline-block;
	border:3px solid #bbdded;
	padding:10px;
	line-height:1;
	width:100%;
	color:#013770;
	border-radius:6px;
}

section.modal > div ul.date_selector li label:has(input:checked){
	background:#0f76c6;
	border:3px solid #0f76c6;
	color:#fff;
}

section.modal > div ul.date_selector li label input{
	display:none;
}

section.modal > div.box:has(div.large) em{
	color:#c00;
}

section.modal > div.box:has(div.large) h3,
section.modal > div.box:has(div.large) p,
section.modal > div.box:has(div.large) ol li{
	text-align:left;
}

section.modal > div.box:has(div.large) h3{
	font-size:131.25%;
	position:static;
	margin-top:30px;
}

section.modal > div.box:has(div.large) h3:first-child{
	margin-top:0;
}

section.modal > div.box:has(div.large) p.lead{
	font-size:112.5%;
	margin-top:1em;
}

section.modal > div.box:has(div.large) ol li{
	margin-top:1em;
	list-style:decimal inside;
	text-indent:0;
	text-indent:-1.33em;
	padding-left:1.33em;
	line-height:1.5;
}

section.modal > div.box:has(div.large) img{
	margin-top:30px;
	padding-bottom:20px;
}

section.modal > div.box:has(div.large) table{
	border-spacing:0;
	width:100%;
	margin:10px 0;
}

section.modal > div.box:has(div.large) table th,
section.modal > div.box:has(div.large) table td{
	border-left:2px solid #bbdded;
	border-top:2px solid #bbdded;
	vertical-align:middle;
	width:37.5%;
	line-height:1.75;
}

section.modal > div.box:has(div.large) table th:first-child,
section.modal > div.box:has(div.large) table td:first-child{
	width:25%;
}

section.modal > div.box:has(div.large) table th:last-child,
section.modal > div.box:has(div.large) table td:last-child{
	border-right:2px solid #bbdded;
}
section.modal > div.box:has(div.large) table tr:last-child td{
	border-bottom:2px solid #bbdded;
}

section.modal > div.box:has(div.large) table th{
	background:#dbf3fe;
	text-align:center;
	font-size:131.25%;
	padding:8px 20px;
}

section.modal > div.box:has(div.large) table th:first-child{
	border-radius:6px 0 0 0;
}

section.modal > div.box:has(div.large) table th:last-child{
	border-radius:0 6px 0 0;
}
section.modal > div.box:has(div.large) table tr:last-child td:first-child{
	border-radius:0 0 0 6px;
}
section.modal > div.box:has(div.large) table tr:last-child td:last-child{
	border-radius:0 0 6px 0;
}

section.modal > div.box:has(div.large) table td{
	background:#f0f0f0;
	padding:0.75em 20px;
	transition:background 0.2s;
}


/* 3-5. Form Content */

main section.form h3{
	font-size:131.25%;
	position:absolute;
	left:0;
	top:50px;
}

main section.form h3.rows2{
	top:30px;
}

main section.confirm.form h3{
	top:35px;
	max-width:240px;
}

main section.confirm.form h3.rows2{
	top:18px;
}

main section.form h4{
	position:relative;
	left:-300px;
	width:260px;
	text-align:right;
	font-size:131.25%;
	height:0;
	font-weight:normal;
	margin-top:25px;
}

main section.form h3 + h4{
	margin-top:0.5em;
}

main section.form h4.trigger{
	top:0.4em;
}

main section.form > div{
	position:relative;
	padding:40px 0 40px 300px;
	border-top:1px solid #bbdded;
}

main section.confirm.form > div{
	padding:30px 0 30px 300px;
}

main section.form > div.nocat{
	padding-left:0;
}

main section.form > div:last-child{
	padding-bottom:0;
}

main section.form h2 + div,
main section.form a.edit + div{
	border-top:none;
	padding-top:35px;
}
main section.form label.sameas + div{
	border-top:none;
}

main section.form h2 + div h3{
	top:40px;
}

main section.form > div div.col2{
	display:flex;
	padding-right:60px;
}

main section.form > div div.col2 > *{
	width:50%;
}

main section.form > div div.col2 + div.col2{
	margin-top:25px;
}

main section.form > div div.sp_col2{
	display:inline;
}

main section.form > div label:has(input[type="radio"]){
	display:inline-block;
	border:2px solid #bbdded;
	background:#f0f0f0;
	padding:5px 40px;
	margin:0;
}
main section.form > div label:has(input[type="radio"]).complete{
	background:#fff7bf;
}

main section.form > div h3 + select,
main section.form > div h4 + select,
main section.form > div h4 + label select,
main section.form > div input[type="text"]:first-child,
main section.form > div input[type="password"]:first-child,
main section.form > div textarea{
	margin-left:0;
}

main section.form > div label:has(input[type="radio"]):first-child,
main section.form > div h3 + label:has(input[type="radio"]),
main section.form > div h3 + label.error:has(input[type="radio"]){
	border-radius:6px 0 0 6px;
	border-right:none;
}

main section.form > div label:has(input[type="radio"]) + label:has(input[type="radio"]){
	border-radius:0 6px 6px 0;
}

main section.form > div label.error:has(input[type="radio"])
{
	border:2px solid #f89ebd;
	background:#ffe1ec;
}

main section.form > div label,
main section.form > div em.text_md,
main section.form > div > input,
main section.form > div > select{
	font-size:131.25%;
}

main section.confirm.form > div p{
	font-size:131.25%;
	white-space: normal;
	word-break: break-all;
}

main section.confirm.form > div p + p{
	margin-top:0.4em;
}

main section.confirm.form > div h3 + p{
	margin-top:5px;
}

main section.form > div p + label{
	display:block;
	margin-top:1em;
}

main section.form > div.nocat select{
	margin-left:0;
}

main section.form div label.sameas{
	display:block;
	background:#dbf3fe;
	font-weight:bold;
	font-size:131.25%;
	padding:0.75em 1em;
	border-radius:4px;
	width:100%;
}

main section.form label.sameas:first-child{
	margin-top:0;
}

main section.form > div label.view_pass{
	font-size:100%;
	display:inline-block;
	margin-top:1em;
}
main section.form > div label.same_address,
main section.form > div label.add_insured{
	font-size:100%;
}

main section.form > div label.sameas{
	font-size:100%;
	margin-top:15px;
	width:85.5%;
}

main section.form > div h4 + label{
	position:relative;
	top:-0.25em;
}

main section.form div.add_ip{
	margin-top:20px;
}
main section.form div.add_ip h4 + div.col2{
	margin-top:calc(-0.25 * 2.1em);
}
main section.form div.add_ip + div.add_ip{
	margin-top:40px;
}


main section.form div.add_ip input:disabled,
main section.form div.add_ip textarea:disabled{
	background:#efefef;
	color:#ccc;
}

main section.form > div label.add_insured{
	top:0;
}

main section.form > div a.zipsearch{
	font-size:76.2%;
	color:#fff;
	background:#0f97da;
	box-shadow:0 2px 3px rgba(0,0,0,0.2);
	padding:0.5em 1.5em;
	border-radius:2em;
	margin-left:1em;
	transition:background 0.2s;
}

main section.form > div a.zipsearch.disabled{
	background:#ccc;
	box-shadow:none;
}

main section.form > div label:has(input.tel) + label:has(input.tel):before{
	content:"";
	display:inline-block;
	width:0.75em;
	height:7px;
	border-top:2px solid #bbdded;
	margin-left:-0.25em;
	margin-right:0.5em;
}

main section.form > div p.sub{
	font-size:100%;
	margin-top:0.25em;
}

main section.form > div.birth span{
	font-size:131.25%;
}

main section.form > div p{
	margin-top:0.6em;
}

main section.form > div p.error_msg{
	display:none;
	font-size:100%;
	color:#f06;
}

main section.form > div label p.error_msg{
	font-size:76.2%;
}

main section.form div.form td p.error_msg,
main section.notice td p.error_msg,
main section.notice div.detail > p.error_msg{
	display:none;
	color:#f06;
	margin-top:0.5em;
	font-size:76.2%;
}

main section.form label.sameas > p.error_msg {
	font-size:76.2%;
	margin-top:0;
}

main section.notice div.detail > p.error_msg{
	font-size:100%;
}

main section.notice td p.error_msg,
main section.notice div.detail > p.error_msg{
	padding-left:0;
	font-weight:normal;
}

main section.form > div.birth:has(select.error) p.error_msg,
main section.form > div.birth:has(em.error) p.error_msg,
main section.form > div:has(input.error) div.tel p.error_msg,
main section.form > div textarea.error + p.error_msg,
main section.form > div select.error + p.error_msg,
main section.form > div input.error + p.error_msg,
main section.form > div label.error + p.error_msg,
main section.form > div label:has(input.post.error) + p.error_msg,
main section.form > div.polno:has(input.error) p.error_msg,
main section.form div.form td:has(input.error) p.error_msg,
main section.form > div label:has(select.error) + p.error_msg,
main section.notice td:has(input.error) p.error_msg,
main section.notice td:has(select.error) p.error_msg,
main section.notice div.detail:has(label.error) > p.error_msg{
	display:block;
}


main section.form > div h3 + p{
	margin-top:0;
}

main section.form > div label.view_pass + p{
	margin-top:0.55em;
}

main section.form > div p.definition{
	font-size:131.25%;
	display:block;
	border-radius:4px;
	border:2px solid #bbdded;
	padding:5px 10px;
	background:#fff7bf;
	max-width:90%;
}

main section.form:has(label.agent):before{
	background:none;
}

main section.form:has(label.agent) div{
	height:0;
	width:100%;
	padding-top:0;
	padding-bottom:0;
	overflow:hidden;
	border:none;
}

main section.form:has(label.agent input:checked) div{
	padding-top:40px;
	padding-bottom:40px;
	border-top:1px solid #bbdded;
	height:calc(80px + 1.97em);
}

main section.form:has(label.agent input:checked) div:last-child{
	padding-bottom:0;
}

main section.form:has(label.agent input:checked) label.agent + div{
	border-top:none;
}

main section.confirm.form p.f_lead{
	padding-left:1em;
	text-indent:-1em;
	font-size:131.25%;
}

main section.confirm.form p.f_lead:first-child{
	margin-top:0;
}



