@charset "utf-8";

/*
  BASE
*/

html {
  margin: 0;
  font-size: 62.5%;
}

body {
  color: #404044;
  font-family: 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'Yu Gothic', YuGothic, Verdana, Helvetica, 'ＭＳ Ｐゴシック', sans-serif;
  font-size: 1.6rem;
  margin: 0;
}

img {
  height: auto;
  max-width: 100%;
  vertical-align: bottom;
}

a {
  transition: opacity ease 0.3s;
}

p {
  line-height: 2;
  margin: 0;
}

.em {
  color: #f57;
  font-weight: bold;
}

.headline {
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin: 0 0 3rem;
}

.btn {
  align-items: center;
  border-radius: 5rem;
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
  width: 100%;
}

.btn:hover {
  opacity: 0.6;
}

.btn.primary {
  border: 1px solid #fff;
  box-sizing: border-box;
  color: #fff;
  background-color: #f57;
}

.btn.secondary {
  border: 1px solid #f57;
  box-sizing: border-box;
  color: #f57;
  background-color: #fff;
}

@media screen and (max-width: 768px) {
  .only-pc {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  body {
    min-width: 1200px;
  }

  .only-sph {
    display: none;
  }

  .headline {
    font-size: 3.5rem;
    font-weight: bold;
    text-align: center;
    margin: 0 0 10rem;
  }
}

/* HEADER */

.layout_header {
  height: 4.4rem;
  padding: 1.5rem 2rem 0;
}

.header-logo {
  width: 15.6rem;
}

.header-logo img {
  vertical-align: middle;
}

@media screen and (min-width: 769px) {
  .layout_header {
    height: 5rem;
    padding: 2rem 0 0;
    width: 100%;
    z-index: 999;
    position: relative;
    transition: transform ease 1s;
  }

  .header-inner {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    width: 1200px;
  }

  .header-logo {
    width: 20.9rem;
  }

  .layout_nav .nav {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .layout_nav .nav-item {
    height: 5rem;
  }

  .nav-item {
    margin-left: 2rem;
  }

  .nav-item a {
    height: 100%;
  }

  .nav-item a:hover {
    opacity: 0.6;
  }

  .nav-item.download {
    width: 20rem;
  }

  .nav-item.contact {
    width: 18rem;
  }

  /* Sticky */

  .layout_header.js-is-sticky {
    background-color: #fff;
    box-shadow: 0 3px 4px #4e4e4e0b;
    height: 4.5rem;
    padding: 0.5rem 0;
    position: sticky;
    top: -6rem;
    transform: translateY(6rem);
  }

  .js-is-sticky .header-logo {
    width: 16.3rem;
  }

  .js-is-sticky .nav-item {
    height: 4.5rem;
  }

  .js-is-sticky .nav-item.download {
    width: 19rem;
  }

  .js-is-sticky .nav-item.download a {
    background-color: #f57;
    border: 1px solid #fff;
    color: #fff;
  }

  .js-is-sticky .nav-item.contact {
    width: 17rem;
  }

  .js-is-sticky .nav-item.contact a {
    background-color: #fff;
    border: 1px solid #f57;
    color: #f57;
  }
}

/* IE11 hack */
@media all and (-ms-high-contrast: none) and (min-width: 769px) {
  .layout_header.js-is-sticky {
    border-bottom: 2px solid #f8f8f8;
    position: fixed;
  }
}

/*
  MAIN
*/

.layout_main {
  display: block;
}

.layout_main .section {
  padding: 6.3rem 0;
}

@media screen and (min-width: 769px) {
  .layout_main {
    margin-top: -70px;
  }

  .layout_main .inner {
    width: 1200px;
    margin: 0 auto;
  }

  .layout_main .section {
    padding: 12rem 0;
  }
}

/* HERO */

.hero {
  background-color: #f6f8fb;
}

.hero-inner {
  align-items: flex-end;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  padding: 4.3rem 2rem 6.4rem;
}

.hero h1 {
  font-size: 2.3rem;
  margin: 0 0 2.3rem;
}

.hero h2 {
  font-size: 3.4rem;
  margin: 0 0 3.5rem;
}

.hero-btn {
  align-items: center;
  background-color: #f57;
  box-shadow: 0 0.4rem 1.1rem #98a6c14d;
  border-radius: 2px;
  color: #fff;
  display: flex;
  font-size: 1.8rem;
  font-weight: bold;
  height: 8.9rem;
  justify-content: center;
  text-align: center;
  text-decoration: none;
}

.hero-btn:hover {
  opacity: 0.6;
}

.hero-contact-btn {
  height: 5.5rem;
  margin-top: 3rem;
}

@media screen and (min-width: 769px) {
  .hero {
    height: 655px;
    position: relative;
    overflow: hidden;
  }

  .hero::before {
    content: url(../images/bg_hero.png);
    position: absolute;
    top: 0;
    right: 0;
  }

  .hero-inner {
    justify-content: space-between;
    padding: 16.7rem 4rem 12rem;
  }

  .hero-image {
    position: relative;
    z-index: 1;
  }

  .hero h1 {
    font-size: 2.9rem;
    margin: 0 0 2.3rem;
  }

  .hero h2 {
    font-size: 4.3rem;
    margin: 0 0 3.7rem;
  }

  .hero-btn {
    font-size: 2.1rem;
    height: 8.1rem;
    width: 57.8rem;
    margin-bottom: 1.2rem;
  }
}

/* お悩み */

.worries {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 3rem auto 0;
}

.worry-item {
  font-size: 2.1rem;
  font-weight: bold;
  margin: 6rem 2rem 0;
  text-align: center;
}

.worry-img {
  align-items: center;
  border: 1rem solid #e7edfc;
  border-radius: 50%;
  display: flex;
  height: 13.4rem;
  justify-content: center;
  margin: 0 auto 2rem;
  width: 13.4rem;
}

.angle-down {
  align-items: center;
  display: flex;
  height: 4rem;
  justify-content: center;
  overflow: hidden;
}

.fa-angle-down {
  color: #e7edfc;
  font-size: 10rem;
}

@media screen and (min-width: 769px) {
  .worries {
    margin: 12rem auto 0;
    width: 96rem;
  }

  .worry-item {
    margin: 0;
    width: 30rem;
  }

  .worry-img {
    margin: 0 auto 4rem;
  }
}

/* ご提案 */

.section-suggestion .headline .smaller {
  display: inline-block;
  font-size: 1.9rem;
  margin-bottom: 1.6rem;
}

.section-suggestion .sub-headline {
  color: #f57;
  font-size: 2.1rem;
  margin: 0 0 1rem;
}

.section-suggestion .sub-section {
  display: flex;
  flex-direction: column-reverse;
  margin: 9.3rem 1rem 0;
}

.section-suggestion .sub-section:first-of-type {
  margin-top: 5.6rem;
}

.section-suggestion .catchphrase {
  font-size: 2.3rem;
  margin: 0 0 2rem;
}

@media screen and (max-width: 768px) {
  .sugestion-img {
    margin: 0 auto 4.3rem;
  }

  .fee-structure .sugestion-img {
    width: 167px;
  }

  .constitution .sugestion-img {
    width: 255px;
  }

  .surveillance .sugestion-img {
    width: 215px;
  }

  .bcp .sugestion-img {
    width: 213px;
  }

  .suggestion-box {
    margin: 7.7rem 2rem 0;
  }

  .suggestion-box-item {
    position: relative;
  }

  .suggestion-box-head {
    font-size: 2rem;
    margin: 5.7rem 2rem 3.4rem 5rem;
  }

  .suggestion-box-img {
    position: absolute;
    top: 0.5rem;
    left: 0;
    width: 3.2rem;
  }
}

@media screen and (min-width: 769px) {
  .section-suggestion {
    background: url(../images/bg.png) 50% 155% repeat-x;
  }

  .section-suggestion .headline .smaller {
    font-size: 2.1rem;
    margin-bottom: 2.1rem;
  }

  .section-suggestion .sub-headline {
    margin: 0 0 3rem;
  }

  .section-suggestion .sub-section {
    flex-direction: row;
    justify-content: center;
    margin: 16rem auto;
    width: 1200px;
  }

  .section-suggestion .sub-section:first-child {
    margin-top: 12rem;
  }

  .section-suggestion .sub-section:last-child {
    margin-bottom: 0;
  }

  .section-suggestion .catchphrase {
    font-size: 2.6rem;
    margin: 0 0 3.5rem;
    line-height: 1.8;
  }

  .suggestion-summary {
    flex: 1 1 50%;
    box-sizing: border-box;
  }

  .sugestion-img {
    box-sizing: border-box;
    min-width: 515px;
    padding: 2.5rem 5rem 0;
    width: 515px;
    text-align: center;
    flex: 1 1 50%;
  }

  .fee-structure .sugestion-img {
    padding: 0 10rem 0 0;
  }

  .constitution .sugestion-img {
    padding: 6rem 2rem 0 7rem;
  }

  .section-suggestion .sub-section:nth-child(odd) {
    flex-direction: row-reverse;
  }

  .section-suggestion .sub-section:nth-child(even) .suggestion-summary {
    text-align: right;
    padding-right: 5rem;
  }

  .section-suggestion .sub-section:nth-child(odd) .suggestion-summary {
    padding-left: 5rem;
  }

  .suggestion-box {
    background-color: #fff;
    border-radius: 1rem;
    box-shadow: 0 0.4rem 1.1rem #98a6c14d;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    margin: 16rem auto 0;
    padding: 6.4rem 12rem 8rem;
    width: 1200px;
  }

  .suggestion-box-item {
    display: flex;
    flex-direction: column;
    width: 420px;
  }

  .suggestion-box-head {
    font-size: 2.1rem;
    margin: 0 0 4rem;
  }

  .suggestion-box-img {
    margin-bottom: 4rem;
    order: -1;
    height: 3.5rem;
  }

  .suggestion-box-img img {
    height: 3.5rem;
    width: auto;
  }
}

/* さくらのサーバーサービス */

.section-services .headline {
  margin-bottom: 6rem;
}

.server-services {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 3.2rem auto 0;
}

.service-service-inner {
  align-items: center;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.server-service .server-img {
  align-items: flex-end;
  display: flex;
  height: 7.2rem;
  order: -1;
}

.server-sevice-name {
  font-size: 2.1rem;
  margin: 2.3rem 0 1.7rem;
  line-height: 1;
}

.server-service a {
  color: #0d50d6;
  margin-top: 2.7rem;
  text-decoration: none;
}

.server-service a:hover {
  text-decoration: underline;
}

.server-service .mark {
  align-items: center;
  background-color: #3880e8;
  border-radius: 50%;
  color: #fff;
  display: flex;
  font-weight: bold;
  line-height: 1.3;
  justify-content: center;
  position: absolute;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .section-services {
    margin: 0 2rem;
  }

  .section-services .lead {
    margin-bottom: 7.8rem;
  }

  .server-service {
    margin-bottom: 6.7rem;
  }

  .server-service:last-child {
    margin-bottom: 0;
  }

  .server-service .server-img {
    width: 9rem;
  }

  .server-service a {
    align-items: center;
    border: 1px solid #3880e8;
    display: flex;
    font-size: 1.7rem;
    height: 52px;
    justify-content: center;
    width: 100%;
  }

  .server-service .mark {
    height: 8.4rem;
    left: 50%;
    top: -3.5rem;
    transform: translateX(6rem);
    width: 8.4rem;
  }
}

@media screen and (min-width: 720px) {
  .server-service {
    padding: 1rem;
    position: relative;
  }

  .server-service::after {
    background: url(../images/bg.png) no-repeat 0 0;
    border-radius: 50%;
    content: "";
    display: block;
    height: 32rem;
    left: 0;
    position: absolute;
    top: 0;
    width: 32rem;
  }

  .service-service-inner {
    height: 30rem;
    width: 30rem;
    z-index: 1;
  }

  .server-service a {
    border: none;
  }
}

@media screen and (min-width: 769px) {
  .server-service {
    padding: 1rem;
    position: relative;
  }

  .server-service::after {
    background: url(../images/bg.png) no-repeat 0 0;
    border-radius: 50%;
    content: "";
    display: block;
    height: 37.4rem;
    left: 0;
    position: absolute;
    top: 0;
    width: 37.4rem;
  }

  .service-service-inner {
    height: 35.4rem;
    width: 35.4rem;
    z-index: 1;
  }

  .server-sevice-name {
    font-size: 2.4rem;
    margin: 3rem 0 1.8rem;
  }

  .server-service a {
    margin-top: 2.6rem;
  }

  .server-service .mark {
    font-size: 1.9rem;
    height: 9.5rem;
    right: 0;
    top: 0;
    width: 9.5rem;
  }

  .section-services .lead {
    text-align: center;
  }

  .server-services {
    margin: 12rem auto 0;
    width: 1200px;
  }
}

/* 多くの企業に導入されています */

.section-introduction {
  background: url(../images/bg.png) no-repeat top center / cover;
}

.introduction-box {
  background-color: #fff;
  border-radius: 1rem;
  box-shadow: 0 0.4rem 1.1rem #98a6c14d;
  box-sizing: border-box;
  display: flex;
  flex-direction: column-reverse;
  margin: 6rem 2rem 0;
}

.introduction-box-img {
  text-align: center;
}

.introduction-box-head {
  font-size: 2.7rem;
  margin: 0 0 2.5rem;
}

@media screen and (max-width: 768px) {
  .introduction-box.introduction .introduction-box-img {
    margin: 2.4rem 2.4rem 1.2rem;
  }

  .introduction-box-summary {
    margin: 3.8rem 2rem 3rem;
  }
}

@media screen and (min-width: 769px) {
  .introduction-box {
    align-items: center;
    justify-content: space-between;
    margin: 6rem auto 0;
    width: 1200px;
  }

  .introduction-box.introduction {
    flex-direction: row-reverse;
    padding: 5.8rem 12rem;
  }

  .introduction-box.diversity {
    flex-direction: row;
    padding: 0 7.8rem 0 12rem;
  }

  .introduction-box-summary {
    width: 450px;
  }

  .introduction-box-head {
    font-size: 3rem;
    margin: 0 0 4rem;
  }
}

/* 導入事例 */

.cases {
  margin: 0 2rem 6.3rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.case {
  background-color: #fff;
  border-radius: 1rem;
  box-shadow: 0 0.4rem 1.1rem #98a6c14d;
  display: flex;
  flex-direction: column;
  margin: 2.5rem auto 0;
  overflow: hidden;
  text-decoration: none;
  width: 360px;
}

.case:hover {
  opacity: 0.7;
}

.case-summary {
  color: #404044;
  font-size: 1.8rem;
  padding: 0.8rem 3rem 2.4rem;
}

.case-customer {
  text-align: center;
}

.case-description {
  line-height: 1.8;
  margin-top: 1.5rem;
  font-size: 1.6rem;
}

.case-img {
  height: 18rem;
  order: -1;
  overflow: hidden;
}

.case-img img {
  transition: transform ease 0.5s;
  width: 100%;
}

.case:hover .case-img img {
  transform: scale(1.15);
}

.case-customer-logos {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

.case-customer-logos img {
  display: block;
  height: auto;
  margin: 0 12px 16px;
  min-width: 128px;
  width: 128px;
}

@media screen and (min-width: 620px) {
  .case-customer {
    align-items: center;
    display: flex;
    height: 6.8rem;
    justify-content: center;
  }
}

@media screen and (min-width: 620px) and (max-width: 768px) {
  .case {
    margin: 2.5rem 2rem 0 0;
    width: calc((100% - 20px) / 2);
  }

  .case:nth-child(even) {
    margin-right: 0;
  }
}

@media screen and (min-width: 769px) {
  .cases {
    justify-content: space-between;
    margin: 0 auto 9.6rem;
    width: 1200px;
  }

  .case {
    margin: 0;
  }

  .case-customer-logos {
    margin: 0 auto;
    width: 1200px;
  }

  .case-customer-logos img {
    height: auto;
    margin: 2.4rem 7.5rem 0 0;
    width: 18rem;
  }

  .case-customer-logos img:nth-child(5n) {
    margin-right: 0;
  }
}

/* お役立ち資料 */

.section-documents {
  background: #f6f8fa;
}

.documents {
  margin: 0 2rem 8.6rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.document {
  background-color: #fff;
  border-radius: 1rem;
  box-shadow: 0 0.4rem 1.1rem #98a6c14d;
  display: flex;
  flex-direction: column;
  margin: 2.5rem 2rem 0;
  overflow: hidden;
  text-decoration: none;
  width: 360px;
}

.document:hover {
  opacity: 0.7;
}

.document-summary {
  color: #404044;
  font-size: 1.7rem;
  padding: 2.5rem 3rem;
}

.document-summary .download {
  text-align: center;
  color: #f57;
}

.document-img {
  order: -1;
  overflow: hidden;
}

.document-img img {
  transition: transform ease 0.5s;
  width: 100%;
}

.document:hover .document-img img {
  transform: scale(1.15);
}

.document-banner {
  background-color: #f57;
  margin: 0 2rem 1.7rem;
}

.document-banner a:hover {
  opacity: 0.8;
}

.document-link p {
  display: block;
  margin: -5rem 0 5rem;
  text-align: center;
}

.document-link p a {
  text-decoration: none;
}

.document-link a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

@media screen and (min-width: 620px) and (max-width: 768px) {
  .document {
    margin: 2.5rem 2rem 0 0;
    width: calc((100% - 20px) / 2);
  }

  .document:nth-child(even) {
    margin-right: 0;
  }

  .document-img {
    height: 22rem;
  }
}

@media screen and (min-width: 769px) {
  .documents {
    justify-content: space-between;
    margin: 0 auto 8.6rem;
    width: 1200px;
  }

  .document {
    margin: 0;
  }

  .document-summary .download {
    margin-top: 2rem;
  }

  .document-banner {
    margin: 0 auto;
    width: 1200px;
  }

  .document-link {
    margin: 0 auto;
    width: 1200px;
  }

  .document-link p {
    text-align: right;
  }
}

/*
  FOOTER
*/

.layout_footer {
  padding: 5rem 2rem 3rem;
  text-align: center;
}

.layout_footer .headline {
  font-size: 2.4rem;
  font-weight: normal;
  margin: 0 auto 5rem;
}

.layout_footer .btn {
  font-size: 1.9rem;
  height: 7rem;
  margin: 0 2rem 2.5rem;
  width: 26rem;
}

.footer-logo {
  margin: 2.5rem auto 3rem;
  width: 20.9rem;
}

.footer-line {
  padding: 1.5rem 0;
  border-top: 1px solid #eaeaea;
  margin: 6rem 0 0;
}

.footer-line_inner {
  text-align: center;
  color: #949698;
  font-size: 1.3rem;
}

.footer-line a {
  color: #949698;
  text-decoration: none;
  line-height: 2;
}

@media screen and (min-width: 769px) {
  .layout_footer {
    padding: 7rem 0 0;
  }

  .layout_footer .headline {
    margin: 0 auto 4rem;
  }

  .layout_footer .btn {
    margin: 0 2rem 4rem;
  }

  .footer-logo {
    margin: 0 auto;
    width: 18rem;
  }

  .footer-line_inner {
    display: flex;
    justify-content: space-between;
    width: 960px;
    margin: 0 auto;
  }
}