/*================
PC、スマホ共通スタイル
=================*/
* {
 box-sizing: border-box;
}

body {
 max-width: 1080px;
 margin: 0 auto 0 auto;
 font-family: "Source Sans Pro", "Hiragino Kaku Gothic ProN", Meiryo, Arial, sans-serif;
 font-size: 15px;
}

/* ヘッダー */
header {
 display: flex;
 justify-content: space-between;
}

/* ナビゲーションのレイアウト */
#nav-pc {
 text-align: right;
 font-size: 14px;
 padding-top: 15px;
}

/* ナビゲーションのリンクの装飾設定 */
#nav-pc ul {
 display: flex;
 padding-left: 0;
}

#nav-pc li {
 margin-left: 20px;
 list-style: none;
}

#nav-pc a {
 text-decoration: none;
 color: #04414A;
}

#nav-pc a:hover {
 text-decoration: underline;
}

/* メインビジュアル*/
#main-visual {
 position: relative;
 height: 400px;
}

#main-message {
 position: absolute;
 top: 0;
 left: 0;
 background-color: #04414A;
 color: #ffffff;
 border-radius: 0 0 150px 0;
 max-width: 620px;
 height: 100%;
 width: 100%;
 z-index: 11;
}

#main-message > h1 {
 font-size: 60px;
 font-weight: bold;
 margin: 100px 0 0 50px;
}

#main-message > p {
 font-size: 28px;
 margin: 0 0 0 50px;
}

#main-visual > img {
 max-width: 600px;
 position: absolute;
 top: 0;
 right: 0;
 z-index: 10;
}

/* 見出し */
h2 {
 margin: 40px 0 0 0;
}

h2::after {
 content: url("images/line.png");
 margin-left: 10px;
}

h3 {
 font-size: 27px;
}

/* コンセプト */
#concept {
 margin: 80px auto 0 auto;
 padding: 10px 40px 0px 40px;
}

#concept-flex {
 display: flex;
 text-align: center;
}

#concept-flex > div {
 width: 50%;
 margin: 20px;
}

.concept-photo {
 width: 80%;
}

/* プロダクト */
#product {
 background-color: #fafafa;
 margin: 20px 0 80px 0;
 padding: 10px 40px 0px 40px;
}

/* 外枠 */
#product > div {
 margin-top: 40px;
 display: flex;
}

/* 左のカラム */
#product-left {
 width: 50%;
 margin-right: 20px;
}

/* 右のカラム */
#product-right {
 width: 50%;
 margin-left: 20px;
 margin-top: 80px;
}

/* 画像＋説明の枠 */
#product-left > div {
 position: relative;
 height: 480px;
 margin-right: 20px;
}

#product-right > div {
 position: relative;
 height: 480px;
 margin-left: 20px;
}

/* 画像 */
.product-photo {
 width: 100%;
}

/* 説明文の枠 */
.product-explain {
 background-color: #ffffff;
 position: absolute;
 left: 0;
 bottom: 50px;
 margin: 0 40px 0 40px;
 padding: 20px;
 box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.05);
}

/* 説明文の英語 */
.product-explain > span {
 color: #04414A;
 font-weight: bold;
 font-size: 16px;
 margin: 0;
}

/* 説明文の見出し */
.product-explain > h3 {
 margin: 5px 0 5px 0;
}

/* 説明文 */
.product-explain > p {
 margin: 0;
}

/* 会社概要 */
#company {
 margin: 80px auto 80px auto;
 padding: 10px 40px 0px 40px;
}

#company-table {
 width: 100%;
}

.tableheader {
 text-align: left;
 padding: 20px;
 border-bottom-color: #04414A;
 border-bottom-width: 1px;
 border-bottom-style: solid;
 width: 100px;
}

.tableheader-first {
 border-top-color: #04414A;
 border-top-width: 1px;
 border-top-style: solid;
}

.cell {
 padding: 30px;
 border-bottom-color: #ececec;
 border-bottom-width: 1px;
 border-bottom-style: solid;
}

.cell-first {
 border-top-color: #ececec;
 border-top-width: 1px;
 border-top-style: solid;
}

/* フッター */
footer {
 background-color: #04414A;
 text-align: center;
 padding: 80px 80px 30px 80px;
}

#footer-logo {
 margin-bottom: 30px;
}

#footer-link {
 margin-bottom: 50px;
}
#footer-link > a {
 text-decoration: none;
 margin: 10px;
 color: #ffffff;
}

#footer-link > a:hover {
 text-decoration: underline;
}

#sns-footer {
 text-align: left;
 width: 100%;
}

#sns-footer > a {
 margin-right: 30px;
}

#copyright {
 color: #ffffff;
 float: right;
}

/*================
スマートフォン用のスタイル
=================*/
@media screen and (max-width: 767px) {
/* ナビゲーションのリンクの装飾設定 */
 #nav-pc li {
   margin: 0 10px;
 }
  /* メインビジュアル */
 #main-visual {
   position: relative;
   height: 470px;
   overflow: hidden;
 }

 #main-message {
   border-radius: 0 0 476px 0;
   height: 280px;
 }

 #main-visual > div > h1 {
   font-size: 28px;
   margin: 70px 0 0 20px;
 }

 #main-visual > div > p {
   margin-left: 20px;
   font-size: 22px;
 }

 #main-visual > img {
   width: 100%;
   border-radius: 476px 0 0 0;
   top: auto;
   bottom: 0;
   right: 0;
 }

 /*見出し*/
 h2::after {
   content: url("images/line.png");
   margin-left: 10px;
 }

 h3 {
   font-size: 24px;
   margin: 10px 0 0 0;
 }

 /* コンセプト */
 #concept {
   margin-top: 20px;
   padding: 0 20px 0 20px;
 }
  #concept-flex {
   flex-direction: column;
 }
  #concept-flex > div {
   width: 100%;
   margin: 0;
 }
  .concept-photo {
   width: 100%;
 }
  #concept h3 {
   padding: 0 20px 0 20px;
 }

 /* プロダクト */
 #product {
   margin: 0;
   padding: 10px 0 0;
 }

 #product > div {
   margin-top: 0;
   flex-direction: column;
 }

 #product h2 {
   margin-left: 20px;
 }

 /* 外枠 */
 /* 左右のカラム　スマホでは縦並び */
 #product-left,
 #product-right {
   width: 100%;
   margin: 0;
   padding: 0 20px 0 20px;
 }

 /* 写真＋説明の枠 */
 #product-left > div,
 #product-right > div {
   height: auto;
   margin: 0;
 }

 /* 説明文の枠 */
 .product-explain {
   position: relative;
   width: 100%;
   margin: 0;
   bottom: 70px;
 }

 .product-explain > h3 {
   margin: 10px 0 10px 0;
 }

 /*会社概要*/
 #company {
   padding: 0 20px 0 20px;
 }
  #company h2 {
   margin: 20px 0 20px 0;
 }

 .tableheader {
   width: 50px;
 }

 .cell {
   padding: 20px;
 }

 /* フッター */
 footer {
   padding: 30px 20px 50px 20px;
 }

 #footer-link > a {
   display: block;
   margin: 0 20px 30px 0;
 }
  #copyright {
   font-size: 12px;
   margin-top: 30px;
 }

}