/* A Modern CSS Reset */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
ul[class],
ol[class] {
  padding: 0;
}
body,
h1,
h2,
h3,
h4,
p,
ul[class],
ol[class],
figure,
blockquote,
dl,
dd {
  margin: 0;
}
body {
  min-height: 100vh;
  scroll-behavior: smooth;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}
ul[class],
ol[class] {
  list-style: none;
}
a:not([class]) {
  -webkit-text-decoration-skip: ink;
  text-decoration-skip-ink: auto;
}
img {
  max-width: 100%;
  display: block;
}
article > * + * {
  margin-top: 1em;
}
input,
button,
textarea,
select {
  font: inherit;
}
img:not([alt]) {
  -webkit-filter: blur(10px);
  filter: blur(10px);
}
@media (prefers-reduced-motion: reduce) {
  * {
    -webkit-animation-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
    -o-transition-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
body {
  min-width: 1000px;
  font-size: 16px;
  font-weight: normal;
  color: #838383;
  line-height: 1.6;
  font-family: Meiryo, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", sans-serif;
}

.wrap {
  min-width: 1000px;
  width: 1000px;
  margin: 0 auto;
}
.header {
}
.nav {
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.nav .wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.nav .akamai_logo {
  margin-right: auto;
}
.nav .menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.nav .menu li a {
  padding: 25px;
  text-decoration: none;
  color: #000;
  font-size: 14px;
  display: inline-block;
  transition: all 300ms ease;
}
.nav .menu li a:hover {
  color: #00a9d5;
  transition: all 00ms ease;
}
.mv {
  background: url(../img/mv.png) no-repeat center center;
  background-size: cover;
}
.mv .wrap {
  padding: 40px 0 200px 0;
}
.title_wrap {
  width: 380px;
  text-align: center;
}
.title_wrap p {
  margin: 40px 0 0 0;
  color: #7b7c7c;
  letter-spacing: 0.18em;
  font-size: 20px;
  font-weight: bold;
}
.campaign {
  position: relative;
  background: #00a9d5;
  padding: 80px 0 120px;
}
.ribbon {
  position: relative;
  margin: -200px auto 0;
  padding: 0 0 160px 0;
  width: 725px;
}
.ribbon img {
  position: absolute;
}
.ribbon .ribbon_text {
  position: absolute;
  font-size: 44px;
  color: #fff;
  text-align: center;
  line-height: 0.9;
  top: 83px;
  left: 103px;
}
.ribbon .ribbon_text .date {
  color: #fff;
  font-size: 20px;
}
.ribbon .ribbon_text .date span {
  color: #fff;
  font-size: 28px;
}
.campaign .flex_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  position: relative;
  width: 870px;
  margin: 0 auto;
}
.campaign .flex_box .flex_items {
  background: #fff;
  position: relative;
  width: 280px;
  height: 280px;
  line-height: 1.3;
  border-radius: 50%;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}
.campaign .flex_box .center {
  margin-top: 120px;
}

.campaign .flex_box .flex_items img {
  position: absolute;
  top: -40px;
  margin: 0 auto;
  right: 0;
  left: 0;
}

.campaign h3 {
  font-size: 32px;
  position: absolute;
  top: 36px;
  color: #00a9d5;
  font-weight: 900;
  right: 0;
  left: 0;
}
.campaign p {
  color: #838383;
  font-size: 21px;
  margin: 30px 0 0 0;
}
.campaign .flex_items p span {
  color: #ffa942;
  font-weight: bold;
  font-size: 43px;
  letter-spacing: -0.1em;
}
.campaign .btn_contact {
  display: block;
  width: 847px;
  margin: 0 auto;
  margin-top: 70px;
  position: absolute;
  bottom: -66px;
  left: 0;
  right: 0;
}
.campaign .btn_contact img:hover {
  transform: scale(1.01);
  transition: all 1s ease;
}
.introduction {
  padding: 250px 0 120px 0;
}
.headline {
  width: 100%;
  text-align: center;
  font-size: 24px;
  font-weight: bold;
  color: #55c1e1;
  position: relative;
  margin-bottom: 30px;
}
.headline::after {
  content: " ";
  height: 2px;
  width: 100%;
  border-bottom: 2px solid #cdcdcd;
  display: block;
  top: 70px;
  position: absolute;
}
.headline span {
  font-size: 48px;
  font-weight: bold;
  color: #838383;
}
.sec_title {
  color: #00a9d5;
  font-size: 36px;
  text-align: center;
  margin: 0 0 24px 0;
}
.read {
  text-align: center;
  color: #838383;
  width: 674px;
  margin: 0 auto;
}
.introduction .image {
  width: 700px;
  margin: 80px auto 0;
  position: relative;
}
.introduction .image .text {
  position: absolute;
}
.introduction .image .text h3 {
  font-size: 30px;
  margin: 0 0 10px 0;
}
.introduction .image .text p {
  font-size: 18px;
  line-height: 1.5;
}
.introduction .image .first {
  top: 45px;
  left: 320px;
}
.introduction .image .second {
  top: 315px;
  left: 70px;
}
.introduction .image .second p,
.introduction .image .second h3 {
  text-align: right;
}
.introduction .image .third {
  bottom: 0;
  left: 355px;
  width: 500px;
}
.merit {
  background: #f6f6f7;
  padding: 40px 0 80px;
}
.merit .read {
  color: #666666;
}
.merit .flex_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-top: 30px;
}
.merit .flex_box .flex_items {
  padding: 30px;
  background: #fff;
  width: 478px;
  min-height: 955px;
}
.merit .flex_box .flex_items .task {
  text-align: center;
  border: solid 3px #dadada;
  padding: 14px;
  margin: 0 0 100px 0;
  line-height: 1.5;
}
.merit .flex_box .flex_items .task h3 {
  font-size: 28px;
}
.merit .flex_box .flex_items .task p {
  font-size: 18px;
}
.merit .flex_box .flex_items .task h3,
.merit .flex_box .flex_items .task span {
  font-weight: bold;
  margin: 0 0 8px 0;
  color: #666666;
}
.merit .flex_box .flex_items .task::after {
  content: "";
  border-top: solid 50px #bdd3da;
  border-bottom: solid 50px transparent;
  border-left: solid 50px transparent;
  border-right: solid 50px transparent;
  position: relative;
  top: 100px;
}
.merit .solution h3 {
  text-align: center;
  color: #00a9d6;
  font-size: 18px;
  text-align: center;
  margin: 0 0 40px 0;
}
.merit .solution span {
  font-size: 30px;
  letter-spacing: -0.1em;
}
.merit .solution .imge_wrap {
  min-height: 330px;
}
.merit .solution img {
  margin: 0 auto 20px;
}
.merit .solution ul li {
  color: #666666;
}
.merit .solution ul li span {
  color: #00a9d5;
  font-weight: bold;
  font-size: 16px;
}
.ipression {
  padding: 125px 0 80px;
}
.ipression .read {
  margin: 0 auto;
}
.ipression .title {
  color: #00a9d5;
  text-align: center;
  margin: 0 0 20px 0;
  font-size: 36px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.ipression .flex_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.ipression .flex_box .flex_items {
  width: 33%;
  border: solid 3px #bbebf8;
  border-radius: 25px;
  padding: 17px;
  min-height: 220px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin: 0 10px 65px;
}
.ipression .second .flex_items {
  align-items: center;
}

.ipression .flex_box .flex_items .blue {
  color: #00a9d5;
  font-weight: bold;
}
.ipression .flex_box .flex_items .bold {
  font-weight: bold;
  color: #666666;
}

.performance {
  background: #b9d9fb;
  padding: 90px 0 40px 0;
}
.performance .wrap {
  background: #fff;
  padding: 40px;
  border-radius: 20px;
}
.performance .title {
  color: #666666;
  font-size: 36px;
  font-weight: bold;
  text-align: center;
  margin-left: 40px;
}
.performance .award {
  position: relative;
}
.performance h2 {
  position: absolute;
  top: 10px;
  left: 120px;
  font-size: 27px;
  z-index: 1;
  color: #7f2d00;
  font-weight: bold;
}
.performance img {
  position: absolute;
  top: -139px;
  left: -33px;
}
.performance .award + p {
  margin: 100px 0 0 0;
  font-size: 18px;
}
.step .headline {
  margin: 0 0 70px 0;
}
.step {
  padding: 120px 0 50px;
}
.step .flex_box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 30px 60px;
  background: #fff;
  margin: 0 0 20px 0;
  -webkit-box-shadow: 0px 0px 10px #999;
  box-shadow: 0px 0px 10px #999;
}
.step .flex_box .number {
  position: absolute;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #00a9d5;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  left: -35px;
  font-weight: bold;
  font-size: 48px;
}
.step .flex_box .flex_items {
  margin: 0 10px 0 0;
  width: 160px;
}
.step .flex_box img {
  max-width: 140px;
}
.step .flex_box .text {
  margin: 0 0 auto 0;
}
.step .flex_box .text h3 {
  font-size: 24px;
  margin: 0 0 20px 0;
  font-weight: bold;
}
.step .flex_box .text .blue {
  color: #00a9d5;
  font-weight: bold;
}
.campaign_info {
  color: #fff;
  background: #00a9d5;
  padding: 60px 0;
}
.campaign_info p {
  color: #fff;
  margin: 0 auto -50px;
  text-align: center;
  font-weight: bold;
  font-size: 24px;
}
.campaign_info .ribbon {
  margin: 0 auto;
}
.campaign_info h3 {
  font-size: 33px;
  text-align: center;
  margin: 60px 0 0 0;
}
.campaign_info .wrap {
  margin: 60px auto 0;
  list-style: disc;
  line-height: 1.7;
}
.campaign_info .info {
  color: #fff;
  text-align: center;
  display: block;
  text-decoration: none;
  margin: 60px 0 0 0;
}
.campaign_info .info:hover {
  text-decoration: underline;
}
.campaign_info .btn_contact {
  display: block;
  width: 847px;
  margin: 0 auto;
  margin-top: 70px;
}
.campaign_info .btn_contact img:hover {
  transform: scale(1.01);
  transition: all 1s ease;
}

.footer {
  padding: 60px 0 40px;
  font-size: 24px;
  text-align: center;
}
.footer h2 {
  font-weight: bold;
}
.footer p {
  margin: 20px 0;
}
.footer a {
  color: #838383;
  text-decoration: none;
  margin: 0 0 30px 0;
}
.footer small {
  display: block;
  font-size: 12px;
}
