@charset "UTF-8";
/*
Reset
*/
figure, picture {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
}

*, *::before, *::after {
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

/*
header
*/
header {
  width: 100%;
}

header nav {
  padding-right: 5%;
  padding-left: 5%;
}

@media screen and (min-width: 1200px) {
  header nav {
    padding-right: 140px;
    padding-left: 140px;
  }
}

/*
  Common
  */
.section {
  text-align: center;
}

.section span {
  display: inline-block;
}

.section > * {
  margin-right: auto;
  margin-left: auto;
}

.section h1 {
  padding: 1rem;
}

@media screen and (min-width: 960px) {
  .section h1 {
    padding-top: 2rem;
  }
}

@media screen and (min-width: 1200px) {
  .section h1 {
    padding-top: 3rem;
  }
}

.flex {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  width: 100%;
  margin: 0 auto;
  margin-top: 50px;
  margin-bottom: 50px;
}

@media screen and (min-width: 960px) {
  .row_2 > * {
    width: 50%;
  }
  .row_2::after {
    display: block;
    content: "";
    width: 50%;
    height: 0;
  }
}

.row_5 > * {
  padding: 0.25rem;
}

@media screen and (min-width: 960px) {
  .row_5 > * {
    width: 20%;
  }
}

.navbtn {
  width: 100%;
  max-width: 310px;
  min-width: 150px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 30px;
  text-decoration: none;
  font-size: 1.2rem;
  height: 50px;
  margin: 0 auto;
 /* border-top: 2px solid rgba(255,255,255,0.2);*/
  border-bottom: 3px solid rgba(0,0,0,0.2);
}
.navbtn:hover{
  opacity:0.8;
  transform: translate(0,3px);
	border-bottom:none;
}
@media screen and (min-width: 960px) {
  .navbtn {
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 1200px) {
  .navbtn {
    height:50px;
    font-size: 1.5rem;
    width: auto;
  }
}

.imagegallery > * {
  padding: 0.5rem;
}

.imagegallery figure, .imagegallery picture {
  padding: 1rem;
}

@media screen and (min-width: 960px) {
  .imagegallery figure, .imagegallery picture {
    position: relative;
    overflow: hidden;
    padding-top: 65%;
  }
  .imagegallery figure img, .imagegallery picture img {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
  }
}

.lightblue_bg {
  background-color: #e9f6fe;
}

/*
* ColorPreset
*/
.blue {
  color: #5db7e9;
}

.blue_bg {
  background-color: #5db7e9;
}

.blue_bd {
  border-color: #5db7e9;
}

.white {
  color: #ffffff;
}

.white_bg {
  background-color: #ffffff;
}

.white_bd {
  border-color: #ffffff;
}

.green {
  color: #b5d781;
}

.green_bg {
  background-color: #b5d781;
}

.green_bd {
  border-color: #b5d781;
}

.orange {
  color: #f49950;
}

.orange_bg {
  background-color: #f49950;
}

.orange_bd {
  border-color: #f49950;
}

.pink {
  color: #ed86b5;
}

.pink_bg {
  background-color: #ed86b5;
}

.pink_bd {
  border-color: #ed86b5;
}

.navbtn_white {
  /*outline: 1px solid #5db7e9;*/
  color: #5db7e9;
  box-shadow: 0 0 0 1px #5db7e0;
}

.navbtn_blue {
  background-color: #5db7e9;
  color: #ffffff;
}

.navbtn_green {
  background-color: #b5d781;
  color: #ffffff;
}

.navbtn_orange {
  background-color: #f49950;
  color: #ffffff;
}

.navbtn_pink {
  background-color: #ed86b5;
  color: #ffffff;
}

.negative_top {
  margin-top: -1rem;
}

/*
カード
*/
.card {
  margin: 0.5rem auto;
  padding: 20px;
  max-width: 96%;
  margin-right: auto;
  margin-left: auto;
  text-align: left;
  position: relative;
}

@media screen and (min-width: 1024px) {
  .card {
    max-width: 960px;
  }
}

@media screen and (min-width: 1200px) {
  .card {
    max-width: 1200px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 1920px) {
  .card {
    max-width: 1500px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 960px) {
  .card {
    padding: 20px;
  }
}

.card h2 {
  width: 100%;
  font-size: 1.2rem;
  line-height: 1.6;
  color: #5db7e9;
  display: flex;
  flex-direction: row;
  align-items: center;
}

.card h2 img {
  width: min(80px,10vw);
  height: min(80px,10vw);
  margin-right: 1rem;
}

.card h2 span {
  display: flex;
  align-items: flex-end;
}

@media screen and (min-width: 960px) {
  .card h2 {
    height: 6rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
}

.card p {
  font-size: 0.98rem;
  line-height: 1.6;
}

@media screen and (min-width: 1024px) {
  .card {
    display: flex;
    flex-flow: row wrap;
  }
  .card h2 {
    order: 1;
    font-size: 1.8rem;
    font-size: min(3.7vw,1.8rem);
  }
}

@media screen and (min-width: 1024px) and (min-width: 1920px) {
  .card h2 {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 1024px) {
  .card h2 br {
    display: none;
  }
  .card_content {
    order: 2;
    padding-right: 4rem;
    width: 60%;
  }
  .card_image {
    order: 3;
    width: 40%;
    display: flex;
    align-items: center;
  }
}

@media screen and (min-width: 1200px) {
  .card_content {
    width: 55%;
    padding-right: 4rem;
  }
  .card_content p {
    width: auto;
  }
  .card_image {
    width: 45%;
    display: flex;
    align-items: center;
    top: 0;
    position: static;
  }
}

/*
* インナーボックス
*/
.inner {
  max-width: 96%;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 1024px) {
  .inner {
    max-width: 960px;
  }
}

@media screen and (min-width: 1200px) {
  .inner {
    max-width: 1200px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 1920px) {
  .inner {
    max-width: 1500px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

/*
*   ボックス
*/
.box {
  width: 95%;
  max-width:1100px;
  border-width: 2px;
  border-style: solid;
  margin-bottom: 2rem;
  position: relative;
}

.box h2 {
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
}

@media screen and (min-width: 1920px) {
  .box h2 {
    font-size: 1.8rem;
  }
}

.box h3 {
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
}

@media screen and (min-width: 1920px) {
  .box h3 {
    font-size: 1.8rem;
  }
}

.box p {
  font-size: 1rem;
  padding-left: 4rem;
  padding-right: 4rem;
  padding-left: min(5%,4rem);
  padding-right: min(5%,4rem);
  text-align: left;
}

.listbox {
  width: 90%;
  max-width: 96%;
  margin-right: auto;
  margin-left: auto;
  padding: 1.5rem;
  text-align: left;
  border-radius: 20px;
  margin-bottom: 1rem;
}

@media screen and (min-width: 1024px) {
  .listbox {
    max-width: 960px;
  }
}

@media screen and (min-width: 1200px) {
  .listbox {
    max-width: 1200px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 1920px) {
  .listbox {
    max-width: 1500px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

.listbox dt {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
  font-size: 4.1vw;
}

.listbox dt > span {
  display: inline-flex;
  margin-right: 0.5rem;
  align-items: center;
  justify-content: center;
}

@media screen and (min-width: 960px) {
  .listbox dt > span {
    margin-right: 1rem;
  }
}

.listbox dt > p {
  margin: 0;
  line-height: 1;
  height: 4.2vw;
  display: flex;
  align-items: flex-end;
  font-weight: bold;
}

.listbox dt > span {
  width: 4.2vw;
  height: 4.2vw;
  font-size: 3.5vw;
  line-height: 1;
  border-radius: 2.1vw;
}

.listbox dt > span.digits2 {
  letter-spacing: -0.05em;
  text-indent: -0.1em;
}

@media screen and (min-width: 1024px) {
  .listbox dt {
    font-size: 1.5rem;
    font-size: min(3.7vw,1.5rem);
  }
}

@media screen and (min-width: 1024px) and (min-width: 1920px) {
  .listbox dt {
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 1024px) {
  .listbox dt > p {
    height: 1.5rem;
  }
  .listbox dt > span {
    width: 2rem;
    height: 2rem;
    font-size: 1.5rem;
    border-radius: 1rem;
  }
}

.listbox dd {
  margin-left: 0;
  font-size: 1rem;
}

@media screen and (min-width: 1024px) {
  .listbox dd {
    padding-left: 2rem;
  }
}

/*
*   concept
*/
section.concept {
  text-align: center;
}

section.concept h1 {
  font-size: 4vw;
  padding-right: 0.2rem;
  padding-left: 0.2rem;
  font-size: 1.8rem;
  font-size: min(4vw,1.8rem);
}

@media screen and (min-width: 1920px) {
  section.concept h1 {
    font-size: 1.8rem;
  }
}

section.concept p {
  padding-right: 1rem;
  padding-left: 1rem;
  font-size: 0.96rem;
  font-size: min(4vw,1.0rem);
}

@media screen and (min-width: 1920px) {
  section.concept p {
    font-size: 0.96rem;
  }
}

/*
*   ５つの約束
*/
.promise {
  /*
    background: linear-gradient(#d8eaf8 20%, #ffffff 70%);
    @include mq(m){
        background: url(../images/ttl_promise_bg.jpg) repeat-x;
    }*/
  background: url(../images/ttl_promise_bg.jpg) repeat-x;
}

.promise__list {
  margin: 0 auto;
  width: 100%;
  font-size: 1rem;
  text-align: left;
  list-style-type: none;
  list-style-position: inside;
  line-height: 2.0rem;
  color: #5db7e9;
  font-weight:bold;
  padding-right: 10px;
  padding-left: 10px;
}

@media screen and (min-width: 960px) {
  .promise__list {
    font-size: 1.6rem;
  }
}

.promise__list li {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.promise__list li span {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.promise__list li img {
  width: 59px;
  height: 28px;
  margin-right: 1rem;
}

@media screen and (min-width: 960px) {
  .promise__list li img {
    width: auto;
    height: auto;
  }
}

@media screen and (min-width: 640px) {
  .promise__list li {
    align-items: center;
    flex-direction: row;
    height: 4rem;
    margin-bottom: 2rem;
  }
  .promise__list li span {
    padding-bottom: 0;
  }
}

@media screen and (min-width: 1024px) {
  .promise__list {
    width: 1024px;
    padding-left: 5rem;
  }
}

.performance {
  background: url(../images/ttl_performance_bg.jpg) repeat-x;
}

.performance__box {
  border-color: #b5d781;
}

.performance__box h2 {
  color: #fff;
  background-color: #b5d781;
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
  margin: 0;
  text-align: left;
  display: flex;
  align-items: center;
}

@media screen and (min-width: 1920px) {
  .performance__box h2 {
    font-size: 1.8rem;
  }
}

.performance__box h2 p {
  display: inline-block;
  margin: 0;
  padding-left: 1rem;
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
  border-left: 2px solid #fff;
}

@media screen and (min-width: 1920px) {
  .performance__box h2 p {
    font-size: 1.8rem;
  }
}

.performance__box h2 span {
  display: inline-block;
  width: 4.5rem;
  text-align: center;
}

.performance__box h2 small {
  font-size: 0.96rem;
  font-size: min(3vw,0.96rem);
}

@media screen and (min-width: 1920px) {
  .performance__box h2 small {
    font-size: 0.96rem;
  }
}

.performance__box h3 {
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
}
.performance__box h3 small{
  font-size: 0.96rem;
  font-size: min(3vw,0.96rem);
}
@media screen and (min-width: 1920px) {
  .performance__box h3 {
    font-size: 1.8rem;
  }
}

.performance__box figure, .performance__box picture {
  margin-bottom: 2rem;
  padding-right: 1rem;
  padding-left: 1rem;
}

.performance__box figure figcaption, .performance__box picture figcaption {
  font-size: 1.96rem;
  font-size: min(4.66vw,1.96rem);
  font-weight: bold;
  text-align: left;
  display: flex;
  /*align-items: center;*/
  justify-content: center;
  width: fit-content;
  margin: 0 auto 3.2rem;
  position: relative;
}
.performance__box figure figcaption span.small, .performance__box picture figcaption span.small {
  position: absolute;
  left: 17vw;
  bottom: 2vw;
  transform: translateY(2em);
  font-size: 60%;
}
.performance__box figure figcaption span.txt, .performance__box picture figcaption span.txt {
  font-size: 0.94rem;
  font-weight: normal;
  display: flex;
  align-items: center;
}
.performance__box figure figcaption.note, .performance__box picture figcaption.note {
  font-size: min(3.2vw,0.8rem);
  font-weight: normal;
  margin: 1em auto 0;
  padding: 0;

}
.performance__box figure figcaption img, .performance__box picture figcaption img {
  width: 14vw;
  height: 14vw;
  margin-right: 3vw;
}

@media screen and (min-width: 960px) {
  .performance__box figure img.small, .performance__box picture img.small {
    width: 60%;
  }
  .performance__box figure img.middle, .performance__box picture img.middle {
    width: 75%;
  }
  .performance__box figure figcaption, .performance__box picture figcaption {
    font-size: min(1.86vw,1.96rem);  
  }
  .performance__box figure figcaption span.txt, .performance__box picture figcaption span.txt {
    font-size:0.94rem;
  }
  .performance__box figure figcaption.note, .performance__box picture figcaption.note {
    width: 60%;
  }
  .performance__box figure figcaption img, .performance__box picture figcaption img {
    width: 8vw;
    height: 8vw;
    margin-right:1.5vw;
  }
  .performance__box figure figcaption span.small, .performance__box picture figcaption span.small {
    left: 9.6vw;
    transform: translateY(1.4em);
  }
}
@media screen and (min-width: 1024px) {
  .performance__box figure figcaption, .performance__box picture figcaption {
    /* padding-left: 4rem; */
    /* padding-right: 2rem; */
  }
}
@media screen and (min-width: 1200px) {
  .performance__box figure figcaption, .performance__box picture figcaption {
    padding-right: 2rem;
  }
  .performance__box figure figcaption img, .performance__box picture figcaption img {
    width: 128px;
    height: 128px;
    margin-right: 20px;
  }
  .performance__box figure figcaption span.small, .performance__box picture figcaption span.small {
    left: 148px;
  }
}

.performance__content {
  margin-bottom: 2rem;
}

.performance__content h2 {
  background-color: #b5d781;
  color: #ffffff;
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
  padding: 1rem;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

@media screen and (min-width: 1920px) {
  .performance__content h2 {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 960px) {
  .performance__content h2 {
    padding:1rem;
  }
}

.performance__content p {
  padding-right: 1rem;
  padding-left: 1rem;
  font-size: 1rem;
}

/*
*経済効果
*/
.economic {
  background: url(../images/ttl_economic_bg.png) repeat-x;
}

.economic h1 {
  margin-bottom: 3rem;
}

.economic__box {
  border-color: #f49950;
  padding-bottom: 1rem;
  padding-right: 1rem;
  padding-left: 1rem;
}
.economic__box .inner{
  max-width: 100%;
}
.economic__box h2 {
  color: #f49950;
}

.economic__box h3 {
  margin-right: 0rem;
  margin-left: 0.5rem;
}

@media screen and (min-width: 960px) {
  .economic__box h3 {
    margin-right: 0rem;
    margin-left: 0rem;
  }
}

.economic__box p {
  font-size: min(3.2vw,1rem);
  text-align: center;
  padding-right: min(2.5%,2rem);
  padding-left: min(2.5%,2rem);
  text-align: center;
}
/*
*デザイン
*/
.design {
  background: url(../images/ttl_design_bg.png) repeat-x;
}

.design h1 {
  margin-bottom: 3rem;
}

.design .design_wrap {
  max-width: 96%;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 4rem;
}
.design .design_type figure.main {
  width: 80%;
  margin: auto;
}
.design .design_type figure.map {
  width: 90%;
  margin: auto;
}

@media screen and (min-width: 1024px) {
  .design .design_wrap {
    max-width: 960px;
  }
  .design .design_type figure.main {
    width: 60%;
    margin: auto;
  }
  .design .design_type figure.map {
    width: 80%;
    margin: auto;
  }
}

@media screen and (min-width: 1200px) {
  .design .design_wrap {
    max-width: 1200px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 1920px) {
  .design .design_wrap {
    max-width: 1500px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

.design .design_wrap h2 {
  padding-right: 1rem;
  padding-left: 1rem;
}
.design .design_wrap h2 img{
  max-height:1.0em;
  width: auto;
  max-width: 100%;
}
.design .design_wrap p {
  font-size: 1.0rem;
  font-size: min(3.5vw,1.0rem);
}

@media screen and (min-width: 960px) {
  .design .design_wrap h2 img{
    max-height:2.2em;
  }
  .design .design_wrap p {
    font-size: 1.0rem;
  }
}

.design .design_wrap > figure, .design .design_wrap picture {
  padding: 2rem;
}

.design .design_wrap .imagegallery p {
  font-size: 0.94rem;
}

/*
*スマートな暮らし
*/
.smartlife h1 {
  font-size: 1.8rem;
  font-size: min(3.7vw,1.8rem);
  padding: 1rem;
}

@media screen and (min-width: 1920px) {
  .smartlife h1 {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 960px) {
  .smartlife img {
    max-width: 960px;
  }
}

.smartlife__wrap {
  max-width: 96%;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 1024px) {
  .smartlife__wrap {
    max-width: 960px;
  }
}

@media screen and (min-width: 1200px) {
  .smartlife__wrap {
    max-width: 1200px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

@media screen and (min-width: 1920px) {
  .smartlife__wrap {
    max-width: 1500px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}
/*# sourceMappingURL=style.css.map */

nav.fix_nav {
  position: fixed;
  right: 0;
  bottom: 0;
  display:flex;
  width: 100%;
  opacity: 0.95;
}

nav.fix_nav a{
  display:block;
  text-decoration:none;
  color: #fff;
  width: 50%;
  text-align: center;
  font-size: 4vw;
  line-height: 1;
  padding:4.5vw 0em 4.2vw 1.5em;
  background-repeat: no-repeat;
  background-size:1.3em auto;
  background-position: left 1.5vw center;
}

nav.fix_nav a:first-of-type{
  background-color:#4aa9de;
  background-image:url(../images/fix_nav_icn1.png);
}
nav.fix_nav a:nth-child(2){
  background-color:#f49950;
  background-image:url(../images/fix_nav_icn2.png);
}
nav.fix_nav a:last-of-type{
  background-color:#8bc34a;
  background-image:url(../images/fix_nav_icn2.png);
}
main{
  margin-bottom:13.04vw;
}
@media screen and (min-width: 960px) {
  nav.fix_nav {
    top: 3vw;
    bottom:auto;
    flex-direction: column;
    width: auto;
    opacity: 1;
  }
  nav.fix_nav a{
    width: auto;
    font-size: 16px;
    line-height: 1;
    writing-mode: tb-rl;
    padding:70px 18px 20px 16px;
    transition:0.3s;
    background-size: 1.5em auto;
    background-position: top 28px center;
  }  
  nav.fix_nav a:first-of-type{
    border-top-left-radius: 7px;
  }
  nav.fix_nav a:last-of-type{
    border-bottom-left-radius: 7px;    
  }
  nav.fix_nav a:hover{
    opacity:0.7;
  }
  main{
    margin-bottom:initial;
  }  
}

/*Topに戻る*/
#js-pagetop{
  display: flex;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  position: fixed;
  bottom: 50px;
  right: 10px;
  background:rgba(0,0,0,0.7);
  color: #fff;
  align-items: center;
  justify-content: center;
  text-decoration: none;

}
.go_top{
  position: relative;
  top:5px;
}
.go_top::before{
  content:"";
  display: block;
  position: absolute;
  width:10px;
  height:10px;
  border-top:2px solid #fff;
  border-left:2px solid #fff;
  top:-5px;
  left:8px;
  transform:rotate(45deg);
}
@media screen and (min-width: 960px) {
  #js-pagetop{
    right: 60px;
  }

}