@charset "UTF-8";
/*
@font-face{
  font-family:Noto Sans JP;
  src:url(/assets/font/NotoSansJP-Regular.woff2) format("woff2"),url(/assets/font/NotoSansJP-Regular.woff) format("woff"),url(/assets/font/NotoSansJP-Regular.ttf) format("truetype");
  font-weight:400;
  font-style:normal
}
*/
@font-face{
  font-family: "M PLUS 1p";
  src:url(/font/MPLUS1p-Regular.ttf) format("truetype");
  font-weight:400;
  font-style:normal
}
@font-face {
  font-display: swap;
}

body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,dd,th,td,hr,iframe,fieldset,figure,legend,button,input,textarea,select,option{
  margin:0;
  padding:0;
  border:none;
}
h1,h2,h3,h4,h5,h6,small,strong,sub,sup,th{
  font-size:inherit;
  font-weight:inherit
}
address,em,var,cite,dfn{font-style:normal}
caption,th{text-align:left}
a,ins,abbr[title]{text-decoration:none}
html{text-size-adjust:100%;
  -moz-osx-font-smoothing:grayscale;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:rgba(0,0,0,0)}
body{
  font-family: "M PLUS 1p";
  font-size: 15pt;
  line-height: 1.8;
  text-size-adjust:100%;
}
ul,ol{list-style-type:none}
table{border-collapse:collapse;border-spacing:0}
a{color:inherit}
a:hover, button:hover{ cursor: pointer;}
q:before,q:after{content:none}
sub,sup{vertical-align:baseline}
mark{background:none;color:inherit}
button,input,textarea,select{
  background:none;
  color:inherit;
  font-family:inherit;
  font-size:inherit;
  letter-spacing:inherit
}
img{
  height: auto;
  display: block;
}
#container_first{
/*  max-width:1900px; */
  overflow: hidden;
}

.sp, .tab{display: none;}
@media screen and (max-width:1280px){
  .pc{display: none;}
  .tab{display: block;}
}
@media screen and (max-width:768px){
  body{font-size: 12pt;}
  img {width: 100%;}
  .pc{display: none;}
  .tab{display: none;}
  .sp{display: block;}
}


.container_second{
  width: 100%;
  padding: 0 0 100px 0;
} 

/*ふわっと出る*/
.container_second h2, .container_second div, .container_second img, .container_second p{
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out; 
} 
.container_second h2.is-visible, .container_second div.is-visible, .container_second img.is-visible, .container_second p.is-visible { 
  opacity: 1; 
  transform: translateY(0);
}

p sup{ position: relative; top: -9px; font-size: 9pt;}

#header div{
  width: 100%;
  height: 500px;
  background: url("images/bg_top1.png") repeat-x;
  background-size: cover;
  position: relative;
  padding: 0 0 100px 0;
  z-index: -10;
}
@media screen and (max-width:768px){
  #header div{padding-bottom: 0;}
}
/*リンク*/
#header nav{ 
  position: absolute;
  top: 0;
  right: 0;
  background: #00cbed;
}
#header nav ul, #header nav ul div{
  display: flex;
  justify-content: flex-end;
  padding: 20px 20px 0 0;
}

/*メニュー*/
#header nav ul a{
  padding: 7px 32px 7px 20px;
  margin-left: 10px;
}
#header nav ul{
  position: relative;
  color: #fff;  
  font-size: 11pt;  
  font-weight: bold;
}
#header nav ul li{
  position: relative;
  color: #fff;  
  font-size: 11pt;  
  font-weight: bold;
}

/*他ページへのリンク*/
.nav_link {
  background: rgba(255, 255, 255, 0.9);
/*  border: solid #fff 1px;*/
  border-radius: 50px;
  padding: 7px 32px 7px 20px;
  margin-left: 10px;
}

#header nav ul .nav_link li{
  color: #00afec; 
}
.nav_link li::after{
  content: '';
  background: url("images/triangle_b.png") no-repeat;
  background-size: contain;
  width: 10px;
  height: 12px;
  position: absolute;
  top: 7px;
  right: -15px;
  transition: transform 0.3s;
}
.nav_link a:hover{
  background: #fff;
}
.nav_link li:hover::after{
  transform: translateX(5px);
}

@media screen and (max-width:768px){
  #header nav{ right: auto; width: 100%;}
  #header nav ul{ justify-content: center;}
  #header nav ul li{ font-size: 9pt; line-height: 1.0;}
  .nav_link li::after{ right: -18px;}
}

.h1_title{
  color: #00388b;
  line-height: 1.5;
  position: absolute;
  left: 30%; /* 左端を中央に */
  transform: translateX(-30%); /* 自分の幅の半分戻す */
  top: 120px;
}
.h1_title img{
  width: 550px;
  position: relative;

}

.h1_title span{
  display: inline-block;
  padding: 40px;
}

.h1_title::after{
  content: '';
  background: url("images/bg_top_cube.png") no-repeat;
  width: 530px;
  height:371px;
  background-size: contain;
  position: absolute;
  top: 10px;
  left: 110%; /* 左端を中央に */
}
@media screen and (max-width:1280px){
  #header{ padding: 0 0 150px 0;}
  .h1_title{ width: 100%; top: 70px;}
  .h1_title img{ width: 500px; margin: auto;}
  .h1_title span{ padding: 0px; text-align: center; margin: auto; width: 100%;}
  .h1_title::after{ width: 350px; height: 245px; top: 310px; left: 50%; transform: translateX(-40%); }
}
@media screen and (max-width:768px){
  .container_second{ padding: 0 0 50px 0;}
   #header{ padding: 0;}
  .h1_title{ position: static; left: auto; transform: none; top: auto; width: 80%; margin: auto; }
  .h1_title img{ width: 100%; padding-top: 75px;}
  .h1_title span{ padding: 0; color: #fff;}
  .h1_title::after{ width: 250px; height: 175px; top: 280px; left: 60%; transform: translateX(-55%); }
}

#main{
  display: block;
  width: 100%;
  margin: auto;
  
}

#confirmation, #point, #problems, #halfcube, #lineup, #prepare, #consultation{
  margin: auto;
/*  margin-bottom: 150px;*/
  width: 80%;
}

.h2_main{
  color: #00388b;
  font-family: "corporate-logo-ver2", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 38pt;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.08em;
  margin-bottom: 50px;
}

.h2_main span, p span{
  color: #00afec;
  font-weight: bold;
}

.h2_main_sub{
  color: #00388b !important;
  font-size: 25pt;
  font-family: "corporate-logo-ver2", sans-serif;
  font-weight: 500;
  font-style: normal;
}

#confirmation p, #point p, #problems p, #halfcube p, #lineup p{
  width: 80%;
  margin: auto;
  margin-bottom: 50px;
}


@media screen and (max-width:768px){
  #confirmation, #point, #problems, #halfcube, #lineup, #prepare, #consultation{ width: 85%;}
  .h2_main{ font-size: 22pt; margin-bottom: 30px;}
  .h2_main_sub{ font-size: 15pt;}
  #confirmation p, #point p, #problems p, #halfcube p, #lineup p{ width: 100%;  margin: 0; margin-bottom: 30px;}
}

.hidden{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0;
  margin: -1px;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0;
}
/**************
list 共通
***************/

#confirmation .list, #point .list, #problems .list, #halfcube .list, #lineup .list, #prepare .list, #consultation .list{
  margin-bottom: 70px; 
}
#confirmation .list h3, #point .list h3, #halfcube .list h3, #lineup .list h3, #prepare .list h3, #consultation .list h3{
  padding-bottom: 30px;
}
#confirmation .list p, #point .list p, #problems .list p, #halfcube .list p, #lineup .list p{
  width: 100%;
}

#confirmation .list ul, #point .list ul, #problems .list ul, #halfcube .list ul, #lineup .list ul, #prepare .list ul{
  display: flex;
  justify-content:center;
  flex-wrap:wrap;
  position: relative; 
  margin-bottom: 30px;
}

.annotation{
  width: 80% !important;
  font-size: 12.5pt;
  color: #000;
  padding-left: 1em;
  text-indent: -1em;
}

@media screen and (max-width:768px){
  #confirmation .list, #point .list, #problems .list, #halfcube .list, #lineup .list, #prepare .list, #consultation .list{margin-bottom: 30px; padding-top: 10px;}
  #confirmation .list h3, #point .list h3, #halfcube .list h3, #lineup .list h3, #prepare .list h3, #consultation .list h3{ padding: 0;}
  #confirmation .list ul, #point .list ul, #problems .list ul, #halfcube .list ul, #lineup .list ul, #prepare .list ul{ margin-bottom: 0;}
  .annotation{ font-size: 10pt; width: 100% !important;}
}

/**************
confirmation
***************/
.container_second:nth-child(1){ position: relative;}
/*氷左*/
.container_second:nth-child(1)::before{
  content: '';
  width: 236px;
  height: 899px;
  background: url("images/bg_confirmation_l.png") no-repeat;
  background-size: contain;
  position: absolute;
  left: 0;
  z-index: -1;
  top: -150px;
  opacity: 0.8;
}
/*氷右*/
.container_second:nth-child(1)::after{
  content: '';
  width: 294px;
  height: 1011px;
  background: url("images/bg_confirmation_r.png") no-repeat;
  background-size: contain;
  position: absolute;
  right: -50px;
  z-index: -1;
  top: 0px;
  opacity: 0.8;
}
#confirmation .h2_main{position: relative;}
#confirmation .h2_main::before{
  content: '';
  width: 76px;
  height: 66px;
  background: url("images/bg_confirmation_r1.png") no-repeat;
  background-size: contain;
  position: absolute;
  right: -50px;
  z-index: -1;
  top: 0px;
  opacity: 0.8;
  animation: shake 2s infinite;
}
#confirmation .h2_main::after{
  content: '';
  width: 130px;
  height: 124px;
  background: url("images/bg_confirmation_l1.png") no-repeat;
  background-size: contain;
  position: absolute;
  left: -70px;
  z-index: -1;
  top: 210px;
  opacity: 0.8;
  animation: shake 3s infinite;
}
#confirmation .list{position: relative;}
#confirmation .list::before{
  content: '';
  width: 70px;
  height: 66px;
  background: url("images/bg_confirmation_r2.png") no-repeat;
  background-size: contain;
  position: absolute;
  right: 100px;
  z-index: -1;
  bottom: -180px;
  opacity: 0.8;
  animation: shake 4s infinite;
}
#confirmation .list::after{
  content: '';
  width: 70px;
  height: 73px;
  background: url("images/bg_confirmation_l2.png") no-repeat;
  background-size: contain;
  position: absolute;
  left: -120px;
  z-index: -1;
  top: 360px;
  opacity: 0.8;
  animation: shake 3s infinite;
}
@keyframes shake {
  0%, 90%   { transform: rotate(0deg); }
  92%  { transform: rotate(-7deg); }
  94%  { transform: rotate(7deg); }
  96%  { transform: rotate(-2deg); }
  98%  { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
#confirmation .list ul li{
  margin: 0 20px 0 0;
  position: relative;
  padding: 0 10px 0 70px;
  line-height: 1.2;
}

#confirmation .list ul li:nth-child(3){
  margin: 0 ;
}

#confirmation .list ul li::before{
  width: 55px;
  height: 55px;
  position: absolute;
  left: -5px;
  top: -3px;
  color: #fff;
  background: #00afec;
  border-radius: 50%;
  font-size: 24pt;
  text-align: center;
  font-family: "Barlow", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.6;
}

#confirmation .list ul li:first-child::before{ content: '1';}
#confirmation .list ul li:nth-child(2)::before{ content: '2';}
#confirmation .list ul li:nth-child(3)::before{ content: '3';}
#confirmation .list ul li:first-child h3{ font-weight: 700;}

@media screen and (max-width:768px){
  .container_second:nth-child(1)::before{ background: url("images/bg_confirmation_l_sp.png") no-repeat; width: 100px; height: 1143px; top: -50px; background-repeat: repeat-y; opacity: 0.4; background-size: contain;}
  .container_second:nth-child(1)::after{ background: url("images/bg_confirmation_r_sp.png") no-repeat; width: 100px; height: 1218px; right: 0; background-repeat: repeat-y; opacity: 0.4; background-size: contain;}
  #confirmation .list ul li{ margin:0; padding: 0 0 30px 0; width: 100%;} 
  #confirmation .list ul li::before{ top: -8px;}
  #confirmation .list ul li img{ margin: auto; width: 70%;}
  #confirmation .list ul li h3{ padding-left: 70px;}
  #confirmation .h2_main::before{ display: none;}
  #confirmation .h2_main::after{ display: none;}
  #confirmation .list::before{ display: none;}
  #confirmation .list::after{ display: none;}
}
/**************
point
***************/

/*タイトル*/

#point .h2_sub{
  width: 510px;
  color: #fff;
  font-family: "corporate-logo-ver2", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 35pt;
  text-align: center;
  line-height: 1.0;
  letter-spacing: 0.08em;
  margin: auto;
  margin-bottom: 50px;
  padding: 30px;
  background: #01498b;
  border-radius: 100px;
  position: relative;
  
}
.h2_sub1{ color: #fff000;}
.h2_sub2{
  font-size: 17pt;
  border-top: 1px #fff solid;
  font-weight: 100;
  letter-spacing: 0.05em;
  padding-top: 3px;
}

#point .h2_sub::after{
  content: '';
  position: absolute;
  width: 40px;
  height: 50px;
  background: #01498b;
  top: 125px;
  left: 265px;
  border-radius: 50px;
}

@media screen and (max-width:768px){
  #point .h2_sub{ width: 85%; font-size: 20pt; line-height: 1.2; margin-bottom: 30px;}
  .h2_sub2{ font-size: 10pt;}
  #point .h2_sub::after{ top: 93px; left: 50%; z-index: -10; transform: translateX(-50%);}
  #confirmation img{width: 100%;}
}

/*リスト*/
#point .list ul li{
  height: 270px;
  margin-bottom: 5px;
  position: relative;
  padding: 50px 30px 0 90px;
  line-height: 1.2;
  background: url("images/bg_point.png") repeat;
  border: 7px solid #00388b;
  border-radius: 40px;
}
#point .list ul li:nth-child(1){
  width: 400px;
  margin: 0 20px 5px 0;
}
#point .list ul li:nth-child(2){
  width: 430px;
  display: flex;
  margin: 0 0 5px 0;
}

#point .list ul li::before{
  width: 70px;
  height: 100px;
  position: absolute;
  left: 10px;
  top: 5px;
  color:  #00afec;
  border-radius: 50%;
  font-size: 70pt;
  text-align: center;
  font-family: "Barlow", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.6;
}

#point .list h3{
  color: #00388b;
  font-family: "corporate-logo-ver2", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 25pt;
  line-height: 1.2;
  letter-spacing: 0.08em;
  padding-bottom: 20px;
}

#point .list ul li p{
  font-size: 13pt;
  font-weight: bold;
}

#point .list ul li:first-child::before{ content: '1';}
#point .list ul li:nth-child(2)::before{ content: '2';}

#point .list ul li:first-child img{
  position: relative;
  top: -10px;
  width: 300px;
}
#point .list ul li:nth-child(2) img{
  position: relative;
  top: -10px;
  right: -10px;
  width: 101px;
  height: 240px;
}

@media screen and (max-width:768px){
  #point .list ul li{ padding:  25px 20px 0 50px; border: 4px solid #00388b;}
  #point .list ul li:nth-child(1){ width: 100%;  margin: 0; height: 210px; margin-bottom: 10px;}
  #point .list ul li:nth-child(2){ height: 220px; margin-bottom: 10px;}
  #point .list ul li::before{ width: 30px; font-size: 40pt; top: -3px;}
  #point .list h3{ font-size: 17pt;}
  #point .list ul li p{ font-size: 11pt;}
  #point .list ul li:first-child img{ top: -23px; width: 100%;}
  #point .list ul li:nth-child(2) img{ width: 80px; height: 190px; top: 20px;}
}
/**************
problems
***************/

.container_second:nth-child(3){
  padding-top: 100px;
  position: relative;
}
/*縞背景*/
.container_second:nth-child(3)::before{
  content: '';
  width: 100%;
  height: 120%;
  background: url("images/bg_problems.png") no-repeat;
  background-size: cover;
  position: absolute;
  z-index: -100;
  top: -10px;
}

/*矢印*/
.container_second:nth-child(3)::after{
  content: '';
  width: 90px;
  height: 50px;
  background: url("images/problems_4.png") no-repeat;
  background-size: contain;
  position: absolute;
  z-index: 10;
  bottom: 77px;
  left: 50%;              /* 左端を中央に */
  transform: translateX(-50%); /* 自分の幅の半分戻す */
}

#problems .list ul li{
  margin: 0 30px 0 0;
  position: relative;
  padding: 10px;
  text-align: center;
}
#problems .list ul li:nth-child(3){
  margin: 0;
}
#problems .list p{
  line-height: 1.2;
  font-weight: bold;
}
#problems .list ul li img{
  height: 256px;
  padding-bottom: 15px;
}

@media screen and (max-width:768px){
  .container_second:nth-child(3){ padding-top: 30px;}
  .container_second:nth-child(3)::before{ height: 100%;}
  #problems .list{padding: 0; margin-bottom: 100px;}
  #problems .list ul li{ margin: auto; padding: 0;}
  #problems .list ul li img{ height: 200px;}
}
/**************
halfcube
***************/

.container_second:nth-child(4){
  padding-top: 70px;
  position: relative;
}
/*白い半円背景*/
.container_second:nth-child(4)::before{
  content: '';
  width: 100%;
  height: 300px;
  background: #fff;
  border-radius:100% 100% 0 0;
  position: absolute;
  z-index: -50;
  top: -100px;
  overflow: hidden;
  left: 50%;              /* 左端を中央に */
  transform: translateX(-50%); /* 自分の幅の半分戻す */
}

/*ハーフキューブアイス*/
.halfcube_1{
  display: block;
  margin: auto;
  margin-bottom: 50px;
  transform-origin: bottom center;
}
.halfcube_1 img{
  width: 253px;
}
#halfcube .list ul {
  width: 90%;
  margin: auto;
}
#halfcube .list ul li{
  width: 300px;
  position: relative;
  text-align: center;
}
#halfcube .list ul li:nth-child(2n+1){
  margin: 0 70px 0 0;
}
#halfcube .list ul li p{
  text-align: left;
}

#halfcube .list ul li div img{ width: 300px;}
#halfcube .list ul li div{position: relative;}
#halfcube .list ul li div p{
  color: #00388b;
  font-family: "corporate-logo-ver2", sans-serif;
  font-weight: 700;
  font-style: normal;
  position: absolute;
  top: 68px;
  font-size: 18pt;
  line-height: 1.2;
  text-align: center;
  left: 50%;              /* 左端を中央に */
  transform: translateX(-50%); /* 自分の幅の半分戻す */
  letter-spacing: 0.08em;
}

@media screen and (max-width:768px){
  .container_second:nth-child(4){ padding-top: 0;}
  .container_second:nth-child(4)::before{ height: 150px;}
  .halfcube_1{ width: 150px; margin-bottom: 20px;}
  #halfcube .list{padding: 0;}
  #halfcube .list ul { width: 100%;}
  #halfcube .list ul li{ width: 70%;}
  #halfcube .list ul li p{ font-size: 11pt; line-height: 1.2; margin-bottom: 20px;}
  #halfcube .list ul li:nth-child(2n+1){ margin: 0 auto 0 0;}
  #halfcube .list ul li:nth-child(2n){ margin: 0 0 0 auto;}
  #halfcube .list ul li div{ margin-bottom: 10px;}
  #halfcube .list ul li div img{ width: 100%;}
  #halfcube .list ul li div p{ top: 52px; font-size: 15pt;}
}

/**************
lineup
***************/
.container_second:nth-child(5){
  padding: 100px 0 250px 0;
  position: relative;
}
.container_second:nth-child(5)::before{
  content: '';
  width: 100%;
  height: 120%;
  background: url("images/bg_lineup.png") repeat-x;
  background-size: contain;
  position: absolute;
  z-index: -100;
  top: -10px;
}
.container_second:nth-child(5)::after{
  content: '';
  width: 100%;
  height: 120%;
  background: url("images/bg_lineup.png") repeat-x;
  background-size: contain;
  transform: scale(1, -1);
  position: absolute;
  z-index: -100;
  bottom: -1px;
}

#lineup h2 .annotation{
  font-weight: normal;
  color: #000;
  position: relative;
  right: -24%;
  top: -20px;
}

#lineup h3{
  color: #00388b;
  font-size: 18pt;
  font-weight: bold;
  width: 80%;
  line-height: 1.2;
  margin: auto;
  margin-bottom: 30px;
  position: relative;
}
/*
#lineup h3::before{
  content: '';
  position: absolute;
  width: 0.5em;
  height: 1em;
  background: #00388b;
  top: 0;
  left: -1em;
}
*/
#lineup h3 span{
  font-size: 15pt;
  font-weight: bold;
  color: #000;

}
#lineup .lineup_container{
  display: flex;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom: 50px;
}

.lineup_container img{
  max-width:100%;
  height:auto;
}

.lineup_container > *{
  min-width:0;
}

#lineup h5{
  font-size: 25pt;
  font-weight: bold;
  border-bottom: 1px solid #555;
  margin-bottom: 10px;
}
#lineup h5 span img{ display: inline-block;}
#lineup table{ font-size: 15pt; margin-bottom: 30px;}
#lineup table th{ vertical-align: top;}
#lineup table th, #lineup table td{ padding: 5px;}

.lineup_container .im{ width: 414px;}
.lineup_container h5 span img:first-of-type, .lineup_container h5 span img:nth-last-of-type(2){ width: 52px;}
.lineup_container h5 span img:last-of-type{ width: 86px;}

#lineup .button_details,#lineup .button_details_lineup{
  background: #004595;
  border-radius: 6px;
  padding: 10px 50px 10px 25px;
  position: relative;
  color: #fff;
  font-size: 17pt;
  margin: auto;
  overflow: hidden;
}
#lineup .button_details::after, #lineup .button_details_lineup::after{
  content: '';
  background: url("images/triangle_w.png") no-repeat;
  background-size: contain;
  width: 18px;
  height: 20px;
  position: absolute;
  top: 18px;
  right: 25px;
 transition: transform 0.3s;
}
#lineup .button_details:hover::after, #lineup .button_details_lineup:hover::after{
  transform: translateX(5px);
}

#lineup .button_details_lineup{
  display: block;
  margin-bottom: 100px;
/*  background: #00afec;*/
  background-image: linear-gradient(123deg, rgba(0, 131, 251, 1) 0%, rgba(46, 144, 234, 1) 0%, rgba(41, 147, 234, 1) 27%, rgba(0, 189, 255, 1));
  overflow: hidden;
}

#lineup .button_details::before, #lineup .button_details_lineup::before, #lineup .button_details_lineup:before{
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-20deg); /* 斜めにする */
  transition: all 0.5s;
}
#lineup .button_details:hover::before, #lineup .button_details_lineup:hover::before, #lineup .button_details_lineup:hover::before {
  left: 150%; /* ホバー時に右端まで駆け抜ける */
}

@media screen and (max-width:768px){
  .container_second:nth-child(5){ padding-top: 50px; padding-bottom: 50px;}
  #lineup h2 .annotation{ top: -10px; right: auto;}
  #lineup h3{ font-size: 14pt; width: 100%;}
  #lineup h3 span{ font-size: 11pt;}
  #lineup h5{ font-size: 20pt; line-height: 1.0;}
  .lineup_container h5 span img:first-of-type, .lineup_container h5 span img:nth-last-of-type(2){ width: 40px;}
  .lineup_container h5 span img:last-of-type{ width: 66.2px;}
  #lineup table{ font-size: 12pt;}
  #lineup .button_details{ position: relative; left: 50%; transform: translateX(-50%); font-size: 14pt;}
  #lineup .button_details_lineup{ font-size: 14pt; line-height: 1.2;}
  #lineup .button_details_lineup::after{ top: 25px; right: 20px;}
}
/*雲*/
#lineup h2{position: relative;}
#lineup h2::after{
  content: '';
  background: url("images/lineup_bg_cloud1.png") no-repeat;
  background-size: contain;
  width: 200px;
  height: 130px;
  position: absolute;
  top: 17px;
  right: -50px;
  z-index: -1;
  animation: cloud 3s ease-in-out infinite;
}

#lineup .lineup_container{position: relative;}
#lineup .lineup_container::before, #lineup .lineup_container::after{
  content: '';
  position: absolute;
}
#lineup .lineup_container:first-of-type::before{
  background: url("images/lineup_bg_cloud2.png") no-repeat;
  background-size: contain;
  width: 150px;
  height: 90px;
  top: -50px;
  left: -70px;
  z-index: -10;
  animation: cloud 3s ease-in-out infinite;
}

#lineup .lineup_container:first-of-type::after{
  background: url("images/lineup_bg_cloud3.png") no-repeat;
  background-size: contain;
  width: 110px;
  height: 70px;
  bottom: 60px;
  right: 30px;
  z-index: -10;
  animation: cloud 3s ease-in-out infinite;
}
#lineup .lineup_container:last-of-type::before{
  background: url("images/lineup_bg_cloud3.png") no-repeat;
  background-size: contain;
  width: 180px;
  height: 120px;
  top: 100px;
  left: 0px;
  z-index: -10;
  animation: cloud 3s ease-in-out infinite;
}
#lineup .lineup_container:last-of-type::after{
  background: url("images/lineup_bg_sun.png") no-repeat;
  background-size: contain;
  width: 80px;
  height: 80px;
  bottom: -100px;
  right: 10px;
  z-index: -10;
  animation: rotate 20s linear infinite;
}
@keyframes rotate {
  from { transform: rotate(0deg);}
  to { transform: rotate(360deg);}
}
#lineup{position: relative;}
#lineup::after{
  content: '';
  position: absolute;
  background: url("images/lineup_bg_town.png") no-repeat;
  background-size: contain;
  width: 380px;
  height: 160px;
  bottom: -250px;
  right: -18px;
  z-index: -10;
}
@keyframes cloud {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}
@media screen and (max-width:768px){
  #lineup h2::after{ top: -140px; right: -100px;}
  #lineup .lineup_container:first-of-type::before{ opacity: 0.5;}
  #lineup .lineup_container:first-of-type::after{ bottom: -40px; right: -70px; opacity: 0.5;}
  #lineup .lineup_container:last-of-type::before{ top: 220px; left: -140px; z-index: 1; opacity: 0.5;}
  #lineup .lineup_container:last-of-type::after{ width: 30px; height: 30px; bottom: -150px; right: -20px;}
  #lineup::after{ width: 180px; height: 74px; bottom: -130px; right: -25px;}
}
/**************
prepare
***************/

.container_second:nth-child(6){
  background: url("images/bg_prepare.png") repeat;
  background-size: cover;
  position: relative;
}
.container_second:nth-child(6)::after{
  content: '';
  width: 100%;
  height: 100px;
  background: url("images/bg_prepare2.png") repeat-x;
  background-size: contain;
  position: absolute;
  bottom: -100px;
}

#prepare .h2_main{ margin-bottom: 70px;}
.prepare1, .prepare2, .prepare3{
  margin: auto;
}

@media screen and (max-width:768px){
  .container_second:nth-child(6){ padding: 30px 0 10px 0;}
  #prepare th, #prepare td{display: block; width: 80%; margin: auto;}
}

.prepare1 h3, .prepare2 h3, .prepare3 h3{
  font-size: 18pt;
  padding: 7px 20px 7px 30px;
  position: relative;
  display: inline-block;
  color: #fff;
  left: 50px;
  border-radius: 5px;
  margin-bottom: 50px;
}
.prepare1 h3{ background: #418ed6;}
.prepare2 h3{ background: #5eb598;}
.prepare3 h3{ background: #5ab8c3;}

.prepare1 h3::before, .prepare2 h3::before, .prepare3 h3::before{
  width: 70px;
  height: 70px;
  position: absolute;
  left: -40px;
  top: -5px;
  color: #fff;
  border-radius: 50%;
  font-size: 27pt;
  text-align: center;
  font-family: "Barlow", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.9;  
  }

.prepare1 h3::before{ content: '1'; background: #418ed6;}
.prepare2 h3::before{ content: '2'; background: #5eb598;}
.prepare3 h3::before{ content: '3'; background: #5ab8c3;}

/**/
.prepare1 td{ padding-right: 80px;}
.prepare2 td:first-of-type{ padding-right: 50px;}
.prepare3 td:first-of-type, .prepare3 td:nth-of-type(2){ padding-right: 10px;}

/*製品名*/
.prepare1 th p, .prepare2 th p, .prepare3 th p{ line-height: 1.5; width: 70%; position: relative;}
.prepare1 th:first-child p{ left: 20%;}
.prepare2 th p{ left: 25%;}
.prepare3 th p{ left: 40%;}

.prepare1 ul, .prepare2 ul, .prepare3 ul{
  display: flex;
}
.prepare1 ul:first-of-type{ height: 280px;}
.prepare2 ul:first-of-type{ height: 320px;}
.prepare3 ul:first-of-type{ height: 370px;}

/*ふきだし*/
.prepare1 .h4, .prepare2 .h4, .prepare3 .h4{
  background: url("images/prepare_1.png") no-repeat;
  background-size: contain;
  width: 200px;
  height: 212px;
}
/*青文字*/
.prepare1 h4, .prepare2 h4, .prepare3 h4{
  color: #00388b;
  font-weight: bold;
  font-size: 14pt;
  line-height: 1.5;
}
/*文字の位置*/
#prepare h4{ position: relative; }
.prepare1 .h4 h4{ top: 17%; left: 20%;}
.prepare2  td:first-of-type .h4 h4{ top: 31%; left: 15%;}
.prepare2  td:last-of-type .h4 h4{ top: 25%; left: 15%;}
.prepare3  td:first-of-type .h4 h4{ top: 25%; left: 15%;}
.prepare3  td:nth-last-of-type(2) .h4 h4{ top: 25%; left: 15%;}
.prepare3  td:last-of-type .h4 h4{ top: 25%; left: 15%;}

/*小さい文字*/
.prepare1 .h4 p{
  font-size: 10pt;
  margin: 0 !important;
  line-height: 1.3;
  position: relative;
  top: 20%;
  left: 20%;
}
@media screen and (max-width:1280px){
  .prepare1 th p, .prepare2 th p{ width: 100%;}
  .prepare3 th p{ width: 150%;}
  .prepare1 th:first-child p{ left: 70%;}
  .prepare1 th:last-child p{ left: 110%;}
  .prepare2 th:first-child  p{ left: 50%;}
  .prepare2 th:last-child p{ left: 170%;}
  .prepare3 table{ position: relative; left: -5%;}
  .prepare3 th:first-child p{ left: 170%;}
  .prepare3 th:nth-child(2) p{ left: 290%;}
  .prepare3 th:last-child p{ left: 620%;}
  .prepare2 ul:first-of-type{ height: auto;}
}
@media screen and (max-width:768px){
  .prepare1 ul:first-of-type{ height: 230px;}
  .prepare2 ul:first-of-type{ height: 220px;}
  .prepare3 ul:first-of-type{ height: 250px;}
  .prepare3 td:nth-of-type(2) ul:first-of-type{ height: 220px;}
  .prepare1 .h4, .prepare2 .h4, .prepare3 .h4{ width: 230px; height: 244px;}
  .prepare1 h3, .prepare2 h3, .prepare3 h3{ font-size: 14pt; line-height: 1.3; padding: 10px 20px 10px 30px; left: 50%; transform: translateX(-50%); margin-bottom: 30px;}
  .prepare1 h3::before, .prepare2 h3::before, .prepare3 h3::before{ width: 50px; height: 50px; left: -20px; top: -20px; z-index: -10; font-size: 20pt;}
  .prepare1 table{ padding: 10px 0;}
  .prepare1 td, .prepare2 td:first-of-type, .prepare3 td:first-of-type, .prepare3 td:nth-of-type(2){ padding: 0;}
  #prepare h4{ font-size: 12pt; line-height: 1.3;}
  .prepare1 .h4 h4{ top: 13%; left: 17%;}
  .prepare2  td:first-of-type .h4 h4{ top: 25%;}
  .prepare2  td:last-of-type .h4 h4, .prepare3  td:first-of-type .h4 h4, .prepare3  td:nth-last-of-type(2) .h4 h4{ top: 20%; }
  .prepare3  td:last-of-type .h4 h4{ top: 15%;}
  .prepare1 .h4 p{ top: 15%; left: 17%;}
  .prepare1 th p, .prepare2 th p, .prepare3 th p{ text-align: center; padding-bottom: 30px; margin: auto; width: 100%;}
  .prepare1 th p, .prepare2 th p, .prepare3 th p{ left: auto !important;}
}

.prepare1, .prepare2, .prepare3{ margin-bottom: 50px;}
.prepare2{ margin: 0 0 50px 40%;}

/*製品写真の位置*/
#prepare img{ position: relative; width: 100%;}
.prepare1 td:first-of-type img{ top: 100px; left: -10%; width: 145px;}
.prepare1 td:last-of-type img{ top: 15px; left: 0; width: 244px;}
.prepare2 td:first-of-type img{ top: 20px; left: -20%; width: 120px;}
.prepare2 td:last-of-type img{ top: 40px; left: -20%; width: 139px;}
.prepare3 td:first-of-type img{ top: 0; left: -20%; width: 140px;}
.prepare3 td:nth-last-of-type(2) img{ top: 155px; left: -20%; width: 121px;}
.prepare3 td:last-of-type img{ top: -20px; left: -11%; width: 198px;}

#prepare img:hover{animation: jump 2s linear; animation-timing-function: cubic-bezier(.4, 0, .2, 1);}
@keyframes jump {
  0% {
    transform: translateY(0) scale(1);
  }

  10% {
    transform: translateY(-25px) scale(1.03);
  }

  20% {
    transform: translateY(0) scale(1);
  }

  100% {
    transform: translateY(0) scale(1);
  }
}
@media screen and (max-width:1280px){
  .prepare2 td:first-of-type img{ left: -10%;}
  .prepare2 td:last-of-type img{ top: 0;}
  .prepare2{ margin: auto; margin-bottom: 50px;}
}
@media screen and (max-width:768px){
  #prepare img{ margin: auto;}
  .prepare1, .prepare2, .prepare3{ margin-bottom: 30px;}
  .prepare1 td:last-of-type img{ width: 70% !important;}
  .prepare3 td:nth-last-of-type(2) img{ top: 70px;}
  .prepare3 td:last-of-type img{ top: 0;}
}
/*
.prepare1 a:nth-child(2) img{
  position: relative;
  top: 10px;
}
*/

/**************
consultation
***************/
.container_second:nth-child(7){
  background: url("images/bg_consultation.png") no-repeat;
  background-size: cover;
  position: relative;
  padding-bottom: 300px;
  margin-top: 70px;
}
#consultation{
  padding-top: 100px;
  width: 60%;
  position: relative;
  }
#consultation .cta{
  display: flex;
  justify-content:center;
  margin: auto;
  text-align: center;
  min-width: 70%;
}
#consultation .cta img{ 
  padding: 50px 0 0 0;
  width: 238px;
}
#consultation .cta div{ margin: auto 10px;}
#consultation .cta p{ margin-bottom: 50px;}
#consultation .cta button{
/*  background: #004595;*/
  border-radius: 50px;
  padding: 15px 60px 15px 30px;
  position: relative;
  color: #fff;
  font-size: 17pt;
  margin: auto;
  margin-bottom: 10px;
}
#consultation .cta button{
  background: linear-gradient(146deg, rgba(1, 73, 139, 1), rgba(0, 189, 255, 1) 0%, rgba(1, 73, 139, 1) 0%, rgba(4, 122, 229, 1) 100%, rgba(0, 189, 255, 1));
  overflow: hidden;
}
#consultation .cta button::after{
  content: '';
  background: url("images/triangle_w.png") no-repeat;
  background-size: contain;
  width: 18px;
  height: 20px;
  position: absolute;
  top: 22px;
  right: 29px;
  transition: transform 0.3s;
}
#consultation .cta button:hover::after{
  transform: translateX(5px);
}
#consultation .cta button::before{
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-20deg); /* 斜めにする */
  transition: all 0.5s;
}
#consultation .cta button:hover::before {
  left: 150%; /* ホバー時に右端まで駆け抜ける */
}

@media screen and (max-width:1280px){
  #consultation .cta{ width: 100%;}
  #consultation .cta img{  width: 150px; height: 100px; margin: auto; padding: 0;}
  }
@media screen and (max-width:768px){
  .container_second:nth-child(7){ padding-bottom: 100px; background-size: contain; background-position: bottom;}
  #consultation{ padding-top: 50px; width: 90%;}
  #consultation .cta p{ margin-bottom: 20px;}
  #consultation .cta div div{ position: relative; top: -15px;}
}

/**************
footer
***************/
#footer{
  background: #7ec2cf;
  color: #dcedf4;
  font-size: 9pt;
  padding: 8px 20px;
  }