@charset "UTF-8";

/* ########################
  general
######################## */

#lp {
  padding: 65px 0 0 !important;
}

#lp, #lp h2, #lp h3 {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 16px;
  letter-spacing: 0.07em;
}

#lp * {
  color: #fff;
}

#lp img {
  vertical-align: bottom;
}

#lp a, #lp .ov {
  opacity: 1;
  transition: opacity 0.3s ease;
  cursor: pointer;
}

#lp .main-article {
  padding: 0;
}

#lp .font-sans {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}

#lp .font-lato {
  font-family: "Lato", sans-serif;
  font-weight: 400;
}

@media screen and (min-width: 769px) {
  #lp a:hover, #lp .ov:hover {
    opacity: 0.7;
  }

  .sp-only {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  #lp, #lp h2, #lp h3 {
    font-size: calc(14 / 393 * 100vw);
    letter-spacing: 0.05em;
  }

  .pc-only {
    display: none;
  }
}


/* ########################
  Animation
######################## */

#lp .gsapAnime .fadeAnime {
  opacity: 0;
  transition: opacity 0.8s ease;
}

#lp .gsapAnime .fadeAnime.isAnimated {
  opacity: 1;
}

#lp .gsapAnime .fadeAndSlideAnime {
  opacity: 0;
  translate: 0 20px;
  transition: opacity 0.8s ease, translate 0.8s ease;
}

#lp .gsapAnime .fadeAndSlideAnime.isAnimated {
  opacity: 1;
  translate: 0 0;
}

#lp .gsapAnime .openAnime {
  height: 0;
  transition: height 0.8s ease;
}

#lp .gsapAnime .openAnime.isAnimated {
  height: 100%;
}

#lp .gsapAnime .wipeAnime span {
  display: block;
  width: 0;
  white-space: nowrap;
  overflow: hidden;
  transition: width 0.8s ease;
}

#lp .gsapAnime .wipeAnime.isAnimated span {
  display: block;
  width: 100%;
  vertical-align: bottom;
}

.delay-100 { transition-delay: 0.1s !important; }
.delay-200 { transition-delay: 0.2s !important; }
.delay-300 { transition-delay: 0.3s !important; }
.delay-400 { transition-delay: 0.4s !important; }
.delay-500 { transition-delay: 0.5s !important; }
.delay-600 { transition-delay: 0.6s !important; }
.delay-700 { transition-delay: 0.7s !important; }
.delay-800 { transition-delay: 0.8s !important; }
.delay-900 { transition-delay: 0.9s !important; }
.delay-1000 { transition-delay: 1.0s !important; }
.delay-1100 { transition-delay: 1.1s !important; }
.delay-1200 { transition-delay: 1.2s !important; }
.delay-1300 { transition-delay: 1.3s !important; }
.delay-1400 { transition-delay: 1.4s !important; }
.delay-1500 { transition-delay: 1.5s !important; }
.delay-1600 { transition-delay: 1.6s !important; }
.delay-1700 { transition-delay: 1.7s !important; }
.delay-1800 { transition-delay: 1.8s !important; }
.delay-1900 { transition-delay: 1.9s !important; }
.delay-2000 { transition-delay: 2.0s !important; }
.delay-2100 { transition-delay: 2.1s !important; }
.delay-2200 { transition-delay: 2.2s !important; }
.delay-2300 { transition-delay: 2.3s !important; }
.delay-2400 { transition-delay: 2.4s !important; }
.delay-2500 { transition-delay: 2.5s !important; }
.delay-2600 { transition-delay: 2.6s !important; }
.delay-2700 { transition-delay: 2.7s !important; }
.delay-2800 { transition-delay: 2.8s !important; }
.delay-2900 { transition-delay: 2.9s !important; }
.delay-3000 { transition-delay: 3.0s !important; }
.delay-3100 { transition-delay: 3.1s !important; }
.delay-3200 { transition-delay: 3.2s !important; }
.delay-3300 { transition-delay: 3.3s !important; }
.delay-3400 { transition-delay: 3.4s !important; }
.delay-3500 { transition-delay: 3.5s !important; }
.delay-3600 { transition-delay: 3.6s !important; }
.delay-3700 { transition-delay: 3.7s !important; }
.delay-3800 { transition-delay: 3.8s !important; }
.delay-3900 { transition-delay: 3.9s !important; }
.delay-4000 { transition-delay: 4.0s !important; }
.delay-4100 { transition-delay: 4.1s !important; }
.delay-4200 { transition-delay: 4.2s !important; }
.delay-4300 { transition-delay: 4.3s !important; }
.delay-4400 { transition-delay: 4.4s !important; }
.delay-4500 { transition-delay: 4.5s !important; }
.delay-4600 { transition-delay: 4.6s !important; }
.delay-4700 { transition-delay: 4.7s !important; }
.delay-4800 { transition-delay: 4.8s !important; }
.delay-4900 { transition-delay: 4.9s !important; }
.delay-5000 { transition-delay: 5.0s !important; }



/* ########################
  #sec-intro
######################## */

#sec-intro {
  position: relative;
  width: 100%;
  height: calc(100vh - 65px);
}

#sec-intro .fade {
  opacity: 0;
  transition: opacity 2s ease;
}
#sec-intro .fade.isAnimated {
  opacity: 1;
}

#sec-intro .anime-1 {
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #C70032;
  opacity: 1;
  transition: opacity 2s ease;
}

#sec-intro .anime-1.hidden {
  opacity: 0;
  pointer-events: none;
}

#sec-intro .anime-1 .lead1 {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  margin: clamp(-68px, calc(-80 / 1400 * 100vw), -80px) 0 0;
  width: clamp(194px, calc(227 / 1400 * 100vw), 227px);
}

#sec-intro .anime-1 .lead2 {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  margin: 0 0 0 clamp(-10px, calc(-12 / 1400 * 100vw), -12px);
  width: clamp(438px, calc(511 / 1400 * 100vw), 511px);
}

#sec-intro .anime-1 .lead3 {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  margin: clamp(51px, calc(60 / 1400 * 100vw), 60px) 0 0;
  width: clamp(456px, calc(532 / 1400 * 100vw), 532px);
}

#sec-intro .anime-1 .skip {
  position: absolute;
  right: 84px;
  bottom: 49px;
  width: 79px;
}

#sec-intro .anime-2 {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#sec-intro .anime-2 .bg {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  width: 120%;
  height: 120%;
  pointer-events: none;
}

#sec-intro .anime-2 .bg img {
  width: 100%;
  height: 100%;
  opacity: 0;
  scale: 0.9;
  object-fit: cover;
  transition: opacity 2s ease, scale 2s ease;
}

#sec-intro .anime-2.go .bg img {
  opacity: 1;
  scale: 1;
}

#sec-intro .anime-2 .logo {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  margin: clamp(-111px, calc(-130 / 1400 * 100vw), -130px) 0 0;
  width: clamp(735px, calc(858 / 1400 * 100vw), 858px);
  opacity: 0;
  scale: 0.9;
  transition: opacity 2.5s ease-in-out, scale 2.5s ease-in-out;
}

#sec-intro .anime-2.go .logo {
  opacity: 1;
  scale: 1;
}

#sec-intro .anime-2 .lead {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  margin: clamp(68px, calc(80 / 1400 * 100vw), 80px) 0 0;
  width: clamp(347px, calc(405 / 1400 * 100vw), 405px);
}

#sec-intro .decorative-line {
  position: absolute;
  left: 50%;
  bottom: 0;
  translate: -50% 0;
  height: 20%;
  padding: 0 0 0 5px;
  overflow: hidden;
}

#sec-intro .decorative-line:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  height: 100%;
  background: #000;
}

#sec-intro .decorative-line:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  height: 28px;
  background: #C70032;
  animation: scrollAnimation 2.5s infinite;
}

@keyframes scrollAnimation {
  0% {
    transform: translateY(-28px);
  }
  100% {
    transform: translateY(164px);
  }
}

#sec-intro .decorative-line img {
  width: 9px;
}

@media screen and (max-width: 768px) {
  #sec-intro {
    background-image: url(../images/intro_bg_sp.jpg);
  }
  
  #sec-intro .anime-1 .lead1 {
    margin: calc(-42 / 393 * 100vw) 0 0;
    width: calc(129 / 393 * 100vw);
  }
  
  #sec-intro .anime-1 .lead2 {
    margin: 0 0 0 calc(-5 / 393 * 100vw);
    width: calc(293 / 393 * 100vw);
  }
  
  #sec-intro .anime-1 .lead3 {
    margin: calc(42 / 393 * 100vw) 0 0;
    width: calc(304 / 393 * 100vw);
  }
  
  #sec-intro .anime-1 .skip {
    right: calc(20 / 393 * 100vw);
    bottom: calc(30 / 393 * 100vw);
    width: calc(69 / 393 * 100vw);
  }
  
  
  #sec-intro .anime-2 .logo {
    margin: calc(-65 / 393 * 100vw) 0 0;
    width: calc(354 / 393 * 100vw);
  }
  
  #sec-intro .anime-2 .lead {
    margin: calc(80 / 393 * 100vw) 0 0;
    width: calc(292 / 393 * 100vw);
  }
  
  #sec-intro .decorative-line {
    height: calc(100 / 393 * 100vw);
  }
  
  #sec-intro .decorative-line:after {
    height: calc(20 / 393 * 100vw);
  }
  
  #sec-intro .decorative-line img {
    width: calc(9 / 393 * 100vw);
  }
}

/* ########################
  #sec-message
######################## */

#sec-message {
  padding: 155px 0 105px;
}

#sec-message .bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#sec-message .bg img {
  width: 100%;
  height: 150%;
  object-fit: cover;
}

#sec-message .content {
  position: relative;
  width: 930px;
  margin: 0 auto;
  padding: 52px 0 105px;
  background: rgba(204,0,51,0.79);
}

#sec-message .box-title {
  width: 232px;
  margin: 0 0 36px;
  font-size: 25px;
  line-height: 35px;
  text-align: right;
}

#sec-message .box-title span {
  background: #3F3F3F;
}

#sec-message .inner {
  position: relative;
  width: 622px;
  margin: 0 auto;
  padding: 0 36px;
  box-sizing: content-box;
}

#sec-message .inner .decorative-line {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  background: rgba(255,255,255,0.42);
}

#sec-message .inner .headline {
  width: 700px;
  margin: 0 0 35px;
  font-size: 37px;
}

#sec-message .inner .body {
  margin: 0 0 50px;
  line-height: 2;
}

#sec-message .inner .profile {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 36px;
}

#sec-message .inner .profile .photo {
  width: 168px;
}

#sec-message .inner .profile .text {
  line-height: 2em;
}

@media screen and (max-width: 768px) {
  #sec-message {
    padding: calc(125 / 393 * 100vw) 0;
  }
  
  #sec-message .content {
    width: calc(350 / 393 * 100vw);
    margin: 0 auto;
    padding: calc(50 / 393 * 100vw) 0;
    background: rgba(204,0,51,0.79);
  }
  
  #sec-message .box-title {
    width: calc(117 / 393 * 100vw);
    margin: 0 0 calc(50 / 393 * 100vw);
    font-size: calc(18 / 393 * 100vw);
    line-height: calc(27 / 393 * 100vw);
  }
  
  #sec-message .inner {
    width: calc(272 / 393 * 100vw);
    padding: 0 0 0 calc(18 / 393 * 100vw);
  }
  
  #sec-message .inner .headline {
    width: 100%;
    margin: 0 0 calc(50 / 393 * 100vw);
    font-size: calc(28 / 393 * 100vw);
    line-height: 1.6;
  }
  
  #sec-message .inner .body {
    margin: 0 0 calc(50 / 393 * 100vw);
  }
  
  #sec-message .inner .profile {
    flex-direction: column;
    gap: calc(20 / 393 * 100vw);
  }
  
  #sec-message .inner .profile .photo {
    width: calc(190 / 393 * 100vw);
  }
}

/* ########################
  #sec-movie
######################## */

#sec-movie {
  position: relative;
  padding: 351px 0 270px;
}

#sec-movie .movie {
  position: fixed;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-bottom: 56.25%; /* 16:9比率の場合 */
  overflow: hidden;
  background: #000;
}

#sec-movie .movie video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


#sec-movie .history {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 21px;
  width: 930px;
  margin: 0 auto;
}

#sec-movie .history .box-title {
  width: 166px;
  font-size: 25px;
  line-height: 37px;
  text-align: right;
}

#sec-movie .history .box-title span {
  background: rgba(21,32,60,0.31);
}

#sec-movie .history .text {
  width: 600px;
  padding: 0 0 0 48px;
}

#sec-movie .history .text .decorative-line {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  background: rgba(255,255,255,0.42);
}

#sec-movie .history .text .headline {
  width: 570px;
  font-size: 37px;
  line-height: 1;
  margin: 0 0 35px;
}

#sec-movie .history .text .body {
  line-height: 2;
}

@media screen and (max-width: 768px) {
  #sec-movie {
    padding: calc(200 / 393 * 100vw) 0;
  }
  
  
  #sec-movie .history {
    flex-direction: column;
    gap: calc(50 / 393 * 100vw);
    width: calc(325 / 393 * 100vw);
  }
  
  #sec-movie .history .box-title {
    width: calc(106 / 393 * 100vw);
    font-size: calc(18 / 393 * 100vw);
    line-height: calc(27 / 393 * 100vw);
  }
  
  #sec-movie .history .text {
    width: 100%;
    padding: 0 0 0 calc(30 / 393 * 100vw);
  }
  
  #sec-movie .history .text .headline {
    width: 100%;
    font-size: calc(28 / 393 * 100vw);
    line-height: 1.6;
    margin: 0 0 calc(70 / 393 * 100vw);
  }
}

/* ########################
  #sec-bottom
######################## */

#sec-bottom {
  position: relative;
  padding: 0 0 220px;
  background: url("/content/dam/nttcom/hq/jp/about-us/nttdocomobusiness/img/bottom_bg.png") no-repeat 50% 50% / cover;
}


#sec-bottom .our-future {
  position: relative;
  margin: 0 0 110px;
}

#sec-bottom .our-future .box-title {
  width: 190px;
  margin: 0 auto 30px;
  font-size: 25px;
  line-height: 35px;
  text-align: center;
}

#sec-bottom .our-future .box-title span {
  display: inline-block !important;
  background: rgba(21,32,60,0.31);
}

#sec-bottom .our-future .decorative-line {
  display: block;
  width: 1px;
  height: 68px;
  margin: 0 auto 30px;
}

#sec-bottom .our-future .decorative-line span {
  display: block;
  width: 1px;
  background: rgba(255,255,255,0.42);
}

#sec-bottom .our-future .text {
  width: 552px;
  margin: 0 auto;
}

#sec-bottom .our-future .text .headline {
  width: 560px;
  margin: 0 0 35px;
  font-size: 37px;
  text-align: left;
}

#sec-bottom .our-future .text .body {
  line-height: 2;
}


#sec-bottom .concept-movie {
  position: relative;
  width: 843px;
  /*margin: 0 auto 475px;*/
  margin: 0 auto 200px
}

#sec-bottom .concept-movie .box-title {
  margin: 0 0 20px;
  font-size: 28px;
  text-align: center;
}

#sec-bottom .concept-movie .decorative-line {
  display: block;
  width: 1px;
  height: 35px;
  margin: 0 auto;
}

#sec-bottom .concept-movie .decorative-line:before {
  content: '';
  display: block;
  width: 1px;
  height: 100%;
  background: rgba(255,255,255,0.42);
}

#sec-bottom .concept-movie .body {
  width: 843px;
  height: 538px;
  margin: 0 auto;
  padding: 30px 33px;
  border: 1px solid rgba(255,255,255,0.42);
}

#sec-bottom .concept-movie .body iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


#sec-bottom .banner {
  width: 777px;
  margin: 0 auto 160px;
}


#sec-bottom .initiatives {
  margin: 0 0 154px;
}

#sec-bottom .initiatives .box-title {
  margin: 0 0 20px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 26px;
  text-align: center;
}

#sec-bottom .initiatives .list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  width: 838px;
  margin: 0 auto;
}

#sec-bottom .initiatives .list .item {
  width: 196px;
}


#sec-bottom .related-links {
  width: 843px;
  margin: 0 auto;
}

#sec-bottom .related-links .box-title {
  margin: 0 0 20px;
  font-size: 28px;
}

#sec-bottom .related-links .list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 17px 20px;
  border: 1px solid rgba(255,255,255,0.42);
}

#sec-bottom .related-links .list .item {
  font-size: 14px;
  line-height: 1.6;
}


@media screen and (max-width: 768px) {
  #sec-bottom {
    padding: 0 0 calc(162 / 393 * 100vw);
    background-image: url("/content/dam/nttcom/hq/jp/about-us/nttdocomobusiness/img/bottom_bg_sp.png");
  }
  
  #sec-bottom:before {
    height: 30%;
  }
  
  
  #sec-bottom .our-future {
    margin: 0 0 calc(73 / 393 * 100vw);
  }
  
  #sec-bottom .our-future .box-title {
    width: calc(135 / 393 * 100vw);
    margin: 0 auto calc(30 / 393 * 100vw);
    font-size: calc(18 / 393 * 100vw);
  }
  
  #sec-bottom .our-future .decorative-line {
    height: calc(40 / 393 * 100vw);
    margin: 0 auto calc(30 / 393 * 100vw);
  }
  
  #sec-bottom .our-future .decorative-line:before {
    height: calc(63 / 393 * 100vw);
  }
  
  #sec-bottom .our-future .text {
    width: 100%;
  }
  
  #sec-bottom .our-future .text .headline {
    width: 100%;
    margin: 0 0 calc(50 / 393 * 100vw);
    font-size: calc(28 / 393 * 100vw);
    line-height:1.5;
    text-align: center;
  }
  
  #sec-bottom .our-future .text .body {
    width: calc(330 / 393 * 100vw);
    margin: 0 auto;
  }
  
  
  #sec-bottom .concept-movie {
    width: calc(333 / 393 * 100vw);
    /*margin: 0 auto calc(390 / 393 * 100vw);*/
    margin: 0 auto calc(90 / 393 * 100vw);
  }
  
  #sec-bottom .concept-movie .box-title {
    margin: 0 0 calc(30 / 393 * 100vw);
    font-size: calc(18 / 393 * 100vw);
  }
  
  #sec-bottom .concept-movie .decorative-line {
    height: calc(30 / 393 * 100vw);
  }
  
  #sec-bottom .concept-movie .body {
    width: calc(313 / 393 * 100vw);
    height: calc(193 / 393 * 100vw);
    padding: calc(10 / 393 * 100vw);
  }
  
  
  #sec-bottom .banner {
    width: calc(350 / 393 * 100vw);
    margin: 0 auto calc(150 / 393 * 100vw);
  }
  
  
  #sec-bottom .initiatives {
    margin: 0 0 calc(150 / 393 * 100vw);
  }
  
  #sec-bottom .initiatives .box-title {
    margin: 0 0 calc(44 / 393 * 100vw);
    font-size: calc(25 / 393 * 100vw);
    line-height: 1.38;
  }
  
  #sec-bottom .initiatives .list {
    gap: calc(16 / 393 * 100vw);
    width: calc(340 / 393 * 100vw);
  }
  
  #sec-bottom .initiatives .list .item {
    width: calc(162 / 393 * 100vw);
  }
  
  
  #sec-bottom .related-links {
    width: calc(333 / 393 * 100vw);
  }
  
  #sec-bottom .related-links .box-title {
    margin: 0 0 calc(20 / 393 * 100vw);
    font-size: calc(18 / 393 * 100vw);
  }
  
  #sec-bottom .related-links .list {
    gap: calc(30 / 393 * 100vw);
    padding: calc(40 / 393 * 100vw) calc(30 / 393 * 100vw);
  }
  
  #sec-bottom .related-links .list .item {
    font-size: calc(14 / 393 * 100vw);
    line-height: 1.6;
  }
}