/* Common */
.sec {
  padding:120px 0px;
}

.sec-subtitle {
  font-size:2.4rem;
  font-weight:500;
  line-height:1;
  color:#1fb8df;
  margin-bottom:30px;
}

.sec-title {
  font-size:4.6rem;
  font-weight:700;
  line-height: 1;
  padding-bottom: 80px;
}

@media screen and (max-width:1200px) {
  .sec-subtitle {
    font-size:2rem;
  }

  .sec-title {
    font-size:3.6rem;
  }
}
@media screen and (max-width:992px) {
  .sec {
    padding:100px 0px;
  }

  .sec-subtitle {
    margin-bottom:24px;
  }

  .sec-title {
    padding-bottom: 60px;
  }
}
@media screen and (max-width:768px) {
  .sec {
    padding:80px 0px;
  }

  .sec-subtitle {
    font-size:1.8rem;
    margin-bottom:20px;
  }

  .sec-title {
    font-size:2.8rem;
    padding-bottom: 44px;
  }
}
@media screen and (max-width:576px) {
  .sec-subtitle {
    font-size:1.7rem;
    margin-bottom:10px;
  }

  .sec-title {
    font-size:2.4rem;
    padding-bottom: 32px;
  }
}


/* Sub Visual */
.sub-visual {
  position: relative;
  width:100%;
  height:400px;
  background-color: #000;
  overflow: hidden;
}

.sub-visual-container {
  max-width: 1310px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0px 15px;
}

.sub-visual-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  height: 100%;
  padding-top: 90px;
  z-index: 10;
}

.sub-visual-inner .sub-visual-title {
  font-family: "Albert Sans", sans-serif;
  font-size: 5.8rem;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.sub-visual-background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: #1fb8df;
  z-index: 5;
  animation: sub-visual 1.2s cubic-bezier(0.4, 0.38, 0.26, 0.93) both;
}

.sub-visual-background div {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.sv1 .sub-visual-background div {
  background-image: url('/child/img/sub/sv_01.png');
}

.sv2 .sub-visual-background div {
  background-image: url('/child/img/sub/sv_02.png');
}

.sv3 .sub-visual-background div {
  background-image: url('/child/img/sub/sv_03.png');
}

.sv4 .sub-visual-background div {
  background-image: url('/child/img/sub/sv_04.png');
}

.sv5 .sub-visual-background div {
  background-image: url('/child/img/sub/sv_05.png');
}

@keyframes sub-visual {
  from {
    transform: scale(1.1);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}
@media screen and (max-width:1200px) {
  .sub-visual {
    height:360px;
  }

  .sub-visual-inner {
    padding-top:0px;
  }

  .sub-visual-inner .sub-visual-title {
    font-size:4.8rem;
  }
}
@media screen and (max-width:992px) {
  .sub-visual {
    height:320px;
  }
}
@media screen and (max-width:768px) {
  .sub-visual {
    height:260px;
  }

  .sub-visual-inner .sub-visual-title {
    font-size:4rem;
  }
}
@media screen and (max-width:576px) {
  .sub-visual {
    height:220px;
  }

  .sub-visual-inner .sub-visual-title {
    font-size:3.2rem;
  }
}


/* Company */
.sec--company .img {
  position: relative;
  left:50%;
  transform: translateX(-50%);
  width:100vw;
  height:0;
  padding-top:calc(600/1280*100%);
  overflow: hidden;
}

.sec--company .img::before {
  content:"";
  display: block;
  position: absolute;
  top:0;
  right:0;
  width:100%;
  height:100%;
  background-color: #fff;
  z-index:2;
}

.sec--company .img img {
  position: absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  height:100%;
}

.sec--company .context {
  padding-top:80px;
}

.sec--company .context .text {
  font-size:2rem;
  line-height:2;
}

.sec--company.on .img::before {
  animation: company-ani 1.2s cubic-bezier(0.4, 0.38, 0.26, 0.93) .35s both;
}

@keyframes company-ani {
  0% {
    width:100%;
  }
  100% {
    width:0;
  }
}
@media screen and (max-width:1200px) {
  .sec--company .context .text {
    font-size:1.8rem;
  }
}
@media screen and (max-width:992px) {
  .sec--company .context {
    padding-top:60px;
  }
}
@media screen and (max-width:768px) {
  .sec--company .context {
    padding-top:46px;
  }

  .sec--company .context .text {
    font-size:1.7rem;
    line-height:1.8;
  }
}
@media screen and (max-width:576px) {
  .sec--company .context {
    padding-top:40px;
  }

  .sec--company .context .text {
    font-size:1.6rem;
  }
}


/* Business */
.sec--business .item {
  padding-bottom:80px; 
}

.sec--business .item:last-child {
  padding-bottom:0px;
}

.sec--business .din {
  display: flex;
  align-items:flex-end;
  margin:0px -20px;
}

.sec--business .lt,
.sec--business .rt {
  flex:1 1 50%;
  max-width:50%;
  padding:0px 20px;
}

.sec--business .context {
  position: relative;
  margin-bottom:80px;
  padding-bottom:30px;
}

.sec--business .context::after {
  content: "";
  display: block;
  position: absolute;
  left:0;
  bottom:0;
  width:calc(100% + 100px);
  height:1px;
  background-color: #1fb8df;
}

.sec--business .context .text {
  font-family: "Albert Sans", sans-serif;
  font-size:3.6rem;
  font-weight:700;
  line-height: 1.4;
}

.sec--business .context--01,
.sec--business .context--03 {
  text-align: right;
}

.sec--business .context--01::after,
.sec--business .context--03::after {
  left: unset;
  right:0;
}
@media screen and (max-width:1200px) {
  .sec--business .context .text {
    font-size:2.8rem;
  }
}
@media screen and (max-width:992px) {
  .sec--business .item {
    padding-bottom:60px; 
  }

  .sec--business .context {
    margin-bottom:60px;
    padding-bottom:24px;
  }

  .sec--business .context::after {
    width:calc(100% + 60px);
  }
}
@media screen and (max-width:768px) {  
  .sec--business .item {
    padding-bottom:44px; 
  }

  .sec--business .din {
    flex-wrap: wrap;
    margin:-10px;
  }

  .sec--business .lt, 
  .sec--business .rt {
    flex:1 1 100%;
    max-width:100%;
    padding:10px;
  }

  .sec--business .lt {
    order:1;
  }

  .sec--business .rt {
    order:2;
  }

  .sec--business .item--02 .lt,
  .sec--business .item--04 .lt {
    order: 2;
  }

  .sec--business .item--02 .rt,
  .sec--business .item--04 .rt {
    order: 1;
  }

  .sec--business .img {
    display: flex;
    justify-content: center;
    align-items: center;
    width:100%;
    background-color: #f3f3f3;
    border-radius:10px;
  }

  .sec--business .context {
    margin-bottom:0px;
    padding-bottom:0px;
  }

  .sec--business .context--01, 
  .sec--business .context--03 {
    text-align:left;
  }

  .sec--business .context::after {
    display: none;
  }

  .sec--business .context .text {
    font-size:2.4rem;
  }
}
@media screen and (max-width:576px) {
  .sec--business .item {
    padding-bottom:32px; 
  }

  .sec--business .din {
    margin:-6px;
  }

  .sec--business .lt, 
  .sec--business .rt {
    padding:6px;
  }

  .sec--business .context .text {
    font-size:2rem;
  }
}


/* Product */
.sec--view {
  padding:0px;
}
@media screen and (max-width:1200px) {

}
@media screen and (max-width:992px) {

}
@media screen and (max-width:768px) {

}
@media screen and (max-width:576px) {

}


/* Contact */
.sec--location {
  padding-bottom:0px;
}

.sec--location .location-inner {
  border-radius:10px;
  overflow: hidden;
}

.sec--location .location-inner .img {
  position: relative;
  width:100%;
  height:0;
  padding-top:calc(600/1280*100%);
  overflow: hidden;
}

.sec--location .location-inner .img iframe {
  display: block;
  position: absolute;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);
  width:calc(100% + 4px);
  height:calc(100% + 4px);
  border:0px;
  border-radius:0px;
}

.sec--location .location-inner .context {
  padding:30px 40px;
  background-color: #1fb8df;
}

.sec--location .location-inner .context .text {
  display: flex;
  align-items: center;
  font-size:2rem;
  color:#fff;
}

.sec--location .location-inner .context .text::before {
  content: "";
  display: block;
  width:36px;
  height:36px;
  background: url('/child/img/common/icon_add.png') no-repeat center;
  margin-right:16px;
}

.sec--location .location-inner .context .text span {
  display: block;
  width:calc(100% - 52px);
}

@media screen and (max-width:1200px) {
  .sec--location .location-inner .context .text {
    font-size:1.8rem;
  }
}
@media screen and (max-width:992px) {
  .sec--location .location-inner .context {
    padding:20px 30px;
  }

  .sec--location .location-inner .context .text::before {
    width:30px;
    height: 30px;
    background-size:auto 30px;
    margin-right:10px;
  }

  .sec--location .location-inner .context .text span {
    width:calc(100% - 40px);
  }
}
@media screen and (max-width:768px) {
  .sec--location .location-inner .img {
    height:280px;
    padding-top:0;
  }

  .sec--location .location-inner .context {
    padding:16px 24px;
  }

  .sec--location .location-inner .context .text {
    font-size:1.7rem;
  }
}
@media screen and (max-width:576px) {
  .sec--location .location-inner .context {
    padding:10px 20px;
  }

  .sec--location .location-inner .context .text {
    font-size:1.6rem;
  }

  .sec--location .location-inner .context .text::before {
    width:24px;
    height: 24px;
    background-size:auto 24px;
    margin-right:6px;
  }

  .sec--location .location-inner .context .text span {
    width:calc(100% - 30px);
  }
}