body {
font-family: 'Noto Sans JP', sans-serif;
font-style: normal;
font-weight: normal;
font-optical-sizing: auto;
line-height: 1.5;
background-repeat: repeat;
background-position: center center;
margin: 0;
padding: 0;
}
header {
width: 98%;
padding: 20px 0 90px;
margin: 0 auto;
}
.main_cont_bg {
position: relative;
}
.header_logo{
position: absolute;
top:10px;
left: 50%; 
transform: translateX(-50%);
width: 30%;
}
.header_logo img{
width: 100%;
}
.main_cont_bg02 {
position: absolute;
width: 100%;
height: auto;
background-color:rgba(0,0,0,0.50);
}
.main_cont {
position: relative;
top: -70px;
width: 85%;
max-width: 1300px;
padding: 20px;
margin: 0 auto 100px;
background: #fff;
border: 5px solid #fccf00;
border-radius: 10px;
animation: puyon 1s linear 0s 1;
}
.main_cont02 {
position: relative;
top: 0;
width: 85%;
max-width: 1500px;
padding: 0 0 40px 0;
margin: 100px auto;
background: #fff;
animation: puyon 0.8s linear 0s 1;
}
@keyframes puyon {
0% {
transform: scale(1, 1) translate(0%, 8%);
}
100% {
transform: scale(1, 1) translate(0%, 0%);
}
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fo_140 {
font-size: 140%;
font-weight: 600;
}

.main_cont h1,.main_cont02 h1{
margin: 0px auto 15px;
font-weight: bold;
color: #ffffff;
font-size: 180%;
background: #CB052A;
padding: 15px 5px;
text-align: center;
width: 100%;
border-radius: 0px;
}

h2{
border-bottom: dotted 4px #b1bee1;
font-size: 200%;
text-align: center;
font-weight: bold;
margin: 10px auto 30px;
position: relative;
padding: 10px 0 10px 0;
color: #cd2c24;
} 
h2::before {
content: '';
display: inline-block;
width: 30px;
height: 30px;
background-image: url("../../assets/img/senior_mark02.png");
background-size: contain;
vertical-align: middle;	
margin-right: 10px;
background-repeat: no-repeat;
}

h2::after {
content: '';
display: inline-block;
width: 30px;
height: 30px;
background-image: url("../../assets/img/senior_mark02.png");
background-size: contain;
vertical-align:middle;	
margin-left: 10px;
background-repeat: no-repeat;
}
h4{
font-size: 120%;
font-weight: bold;
}
h4::before {
position: relative;
top: 5px;
right: 5px;
content: url("../../assets/img/cyuui_mark.png");
}
h6 {
margin: 0px auto;
font-weight: bold;
text-align: center;
position: relative;
padding: 20px 0 15px 0;
color: #525050;
font-size: 110%;
}
h6::before {
content: '';
display: inline-block;
width: 20px;
height: 20px;
background-image: url("../../assets/img/senior_mark.png");
background-size: contain;
vertical-align:middle;	
padding-right: 10px;
background-repeat: no-repeat;
}
.list02{
position: relative;
padding: 5px 0 5px 17px;
text-align: left;
line-height: 1.3;
}
.list02::after { 
position: absolute;
top: 13px;
left: 5px;
content: '';
width: 8px;
height: 8px;
background-color: #6B7B77;
border-radius: 50%; /* これで円形になります */
}
.pink_box{
font-size: 140%;
background: #fff0f5;
font-weight: 600;
width: 95%;
margin: 0 auto;
padding:10px 0 20px;
}
.kakunin_box{
width: 32%;
box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.3);
background-color: #eeeeee;
display: flex;
flex-direction: column;
margin: 10px;
}
 /*了承しました*/
.check_box{
text-align: center;
margin: 60px auto 20px;
}
.check_btn input[type=checkbox] {
display: none;
}
.check_btn label {
position: relative;
padding-left: 50px;
font-weight: bold;
font-size: 180%;
}
.check_btn input[type=checkbox]  + label::before {
position: absolute;
content: '';
display: block;
width: 50px;
height: 50px;
border: 2px solid #000000;
left: -15px;
top: 0px;
border-radius: 3px;
}
.check_btn input[type=checkbox]  + label::after {
position: absolute;
content: '';
display: block;
width: 15px;
height: 40px;
transform: rotate(45deg) scale(0, 0);
border-right: 8px solid #EF001D;
border-bottom: 8px solid #EF001D;
top:0;
left: 10px;
bottom: 0px;
transition: .3s;
}
.check_btn input[type=checkbox]:checked + label {
 color: #EF001D;
}
.check_btn input[type=checkbox]:checked + label::before {
border: 2px solid #EF001D;
border-radius: 50%;
background: #FFF0F0;
}
.check_btn input[type=checkbox]:checked + label::after {
transform: rotate(45deg) scale(1, 1);
}
.kakunin_btn{
width: 80%;
margin: 0px auto;
padding: 20px 0;
}
button.kakunin {
width: 100%;
margin: 0 auto 20px;
cursor: pointer;
border: none;
color: #fff;
font-weight: bold;
border-radius: 5px;
padding: 15px 0;
background: #ca012d;
font-size: 150%;
transition: background 0.8s ease, color 0.8s ease; /* ← 追加 */
}
button.kakunin:disabled {
background: #FFD61B;
pointer-events: none; /* マウスイベントを無効化 */
cursor: default;
color: #333; /* 無効時の文字色を少し暗くする例 */
}
button.kakunin:hover {
opacity: 0.6;
}
.warning_cent{
position: relative;
font-size: 20px;
font-weight: bold;
padding: 30px 0 10px 0;
text-align: center;
color: #cd2c24;
}
.warning_cent::before {
position: absolute;
top: 0;
left: 50%; 
transform: translateX(-50%);
content: url('../../assets/img/cyuui_mark.png');
width: 30px;
height: 30px;
}
.flex_q img{
width: 100%;
}
.flex_q {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-around;
padding: 10px;
margin: 20px auto;
border-bottom: solid 2px #F8BB43;
}
.flex_q p{
font-size: 140%;
font-weight: 600;
text-align: center;
}
.q_last{
border-bottom: none;
}
/* Qボタン */
.q_cent,.q_cent02 {
font-size: 180%;
font-weight: 700;
margin-top: 10px;
}
.q_cent::before {
position: relative;
top: 5px;
left:0;
content: url('../../assets/img/q_mark.png');
}
.q_cent02{
text-align: center;
color: #DD1C08;
}
.target_btn{
display: none;
}
.target01{
}
.target01 label{
display: block;
width: 78%;
padding: 8px 15px 8px 0;
margin: 0 auto;
font-size: 150%;
font-weight: 900;
color: #313131;
text-align: center;
text-decoration: none;
cursor: pointer;
background: #fedf8f;
border: 2px solid #fedf8f;
border-radius: 3px;
filter: drop-shadow(0 1px 2px #ccc);
transition: 0.2s ease-in-out;
}
.target02 label{
width: 90%;
padding: 15px 10px;
font-size: 130%;
font-weight: 900;
color: #495799;
background: #ffd61b;
border: 2px solid #ffd61b;
border-radius: 10px;
box-shadow:rgb(50 50 93 / 25%) 0 2px 5px -1px,rgb(0 0 0 / 30%) 0 1px 3px -1px;
margin: 0 auto 20px;
}

.target01 label i{
padding-right: 5px;
color: #fedf8f;
font-size: 95%;
transition: 0.3s ease-in-out;
}
.target01 label:hover {
color: #fff;
background: #2191C8;
border: 2px solid #2191C8;
}
.target01 label:hover i {
 color: #fff;
}
.target_btn:checked + label {
color: #fff;
background-color: #dd1a51;
border: 4px solid #fbc7d5;
border-radius: 10px;
}
.target_btn:checked + label i{
color: #fff;
}
.yesno_flex{
display: flex;
flex-direction: row;
justify-content: center;
margin: 30px auto;
}
.button_general {
position: relative;
width: 90%;
padding: 10px 0;
margin: 50px auto;
font-size: 200%;
font-weight: 900;
color: #fff;
text-align: center;
letter-spacing: 0.2em;
cursor: pointer;
background: #dd1a51;
border: 4px solid #fbc7d5;
border-radius: 10px;
box-shadow:rgb(50 50 93 / 25%) 0 2px 5px -1px,rgb(0 0 0 / 30%) 0 1px 3px -1px;
}
.button_general:hover {
color: #fff;
background: #C30000;
border: 4px solid #dd1a51;
}
.button_general::before {
position: absolute;
top: 0;
right: 40px;
bottom: 0;
width: 10px;
height: 10px;
margin: auto;
content: '';
border-top: 3px solid #fff;
border-right: 3px solid #fff;
transform: rotate(45deg);
transition: right 0.3s ease;
}
.button_general:hover::before {
border-top: 3px solid #fff;
border-right: 3px solid #fff;
right: 20px;
}
#submitButton,#goto_postcard,#select_book {
display: none;
}
#submitButton,#goto_postcard {
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}
#submitButton.show,#select_book.show,#goto_postcard.show   {
opacity: 1;
pointer-events: auto; 
animation: puyon 1s linear 0s 1;
}
.fade {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.fade.show {
    opacity: 1;
}
@media screen and (max-width: 890px) {
h2 {
font-size: 170%;
}
	
.kakunin_box{
width: 70%;
}
.q_cent,.q_cent02 {
font-size: 140%;
margin-top: 30px;
width: 96%;
margin: 0 auto;
}
.flex_q {
flex-direction: column;
justify-content: center;
width: 100%;
padding: 0;
margin: 10px auto;
border-bottom: dotted 4px #b1bee1;
}
.flex_q p{
font-size: 130%;
width: 96%;
margin: 0 auto;
text-align: left;
}
.q_last{
border-bottom: none;
}
.yesno_flex {
display: flex;
flex-direction: row
;justify-content: space-between;
margin: 30px auto;
}
.main_cont {
top: -80px;
width: 85%;
padding: 20px;
border-radius: 10px;
}
.button_general {
width: 95%;
margin: 50px auto;
font-size: 150%;
}
.check_btn label {
padding-left: 40px;
font-size: 150%;
}
.check_btn input[type=checkbox]  + label::before {
width: 30px;
height: 30px;
left: 8px;
top: 5px;
}
.check_btn input[type=checkbox]  + label::after {
width: 10px;
height: 30px;
border-right: 7px solid #EF001D;
border-bottom: 7px solid #EF001D;
left: 20px;
bottom: 10px;
}

}
@media screen and (max-width: 600px) {
h1{
margin: 0px auto 10px;
font-size: 160%;
padding: 15px 5px;
}
h2 {
padding:10px 0 15px;
margin: 5px auto 20px;
font-weight: bold;
line-height: 1.2;
text-indent: 0px;
position: relative;
font-size: 140%;
}
h2::before {
position: absolute;
top: 10px;
left:5px;
opacity: 0.2;
}
h2::after {
position: absolute;
top: 10px;
right: 5px;
opacity: 0.2;
}
h4{
font-size: 105%;
}
h4::before {
position: relative;
top: 0px;
right: 5px;
content: url("../../assets/img/cyuui_mark_sp.png");
}
.pink_box{
border: 1px solid #FF7B7B;
font-size: 115%;
width: 95%;
margin: 10px auto;
padding:5px 0 20px;
border-radius: 3px;
}
.flex_q p{
font-size: 120%;
width: 96%;
margin: 0 auto;
line-height: 1.4;
}
.target01 label{
font-size: 120%;
width: 85%;
}
.q_cent,.q_cent02 {
font-size: 130%;
margin-top: 30px;
width: 96%;
margin: 0 auto;
}
.main_cont{
width: 98%;
padding: 0px 0px 15px;
margin: 0 auto 100px;
background: #fff;
border: 1px solid #E81F1F;
border-top: none;
border-radius: 0px;
top: -50px;
}
.main_cont02{
width: 98%;
margin: 90px auto;
}
header {
padding: 5px 0 50px;
margin: 0 auto;
}
.header_logo{
width: 50%;
}
.kakunin_box{
width: 90%;
}
.target01 label {
font-size: 130%;
}
.target01 label i{
font-size: 90%;
}
.target02 label{
width: 96%;
padding: 10px 8px;
font-size: 130%;
font-weight: 900;
margin: 0 auto 30px;
}
/*了承しました*/
.check_box{
margin: 50px auto 20px;
}
.check_btn label {
padding-left: 35px;
font-size: 135%;
}
.check_btn input[type=checkbox]  + label::before {
width: 30px;
height: 30px;
left: 0px;
top: 0px;
}
.check_btn input[type=checkbox]  + label::after {
width: 10px;
height: 30px;
border-right: 7px solid #EF001D;
border-bottom: 7px solid #EF001D;
left: 13px;
bottom: 30px;
}
.kakunin_btn{
padding: 15px 0;
width: 95%;
}
button.kakunin {
width: 100%;
padding: 15px 0;
font-size: 25px;
}
button.kakunin:disabled {
font-size: 20px;
}
.button_general:hover {
color: #fff;
background: #C30000;
border: 4px solid #dd1a51;
}
.button_general::before {
right: 20px;
width: 10px;
height: 10px;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
}
.button_general:hover::before {
border-top: 2px solid #fff;
border-right: 2px solid #fff;
right: 10px;
}
}
