@charset "UTF-8";

/* 共通部分
---------------------------------------- */
body {
    background: #f9f9f9;
    color: #292929;
    font-family:"Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
    font-size: calc(14px + 6 * (100vw - 320px) / 1600);
    line-height: 1.7;
    letter-spacing: 0.04em;
}
img {
    max-width: 100%;
}
.container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-width: 320px;
}
main {
    flex: 1;
}
.wrapper {
    margin: 0 auto;
    padding: 0 6.4vw;
}
section {
    padding-bottom: 40vw;
}



/* ヘッダー
---------------------------------------- */
#home header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    margin-bottom: 20vw;
}
#home header h1 {
    width: 48vw;
    max-width: 480px;
    text-align: center;
}
#home header .scroll {
  position: absolute;
  width: 100%;
  bottom: 4%;
  text-align: center;
}
#home header .scroll a {
  position: relative;
  display: inline-block;
  padding-bottom: 50px;
  color: #999;
  font-size: calc(12px + 4 * (100vw - 320px) / 1600);
  text-decoration: none;
}
#home header .scroll a:before {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  left: 0;
  right: 0;
  bottom: 25px;
  margin: auto;
  border-bottom: 2px solid #d30;
  border-right: 2px solid #d30;
  transform: rotate(45deg);
  animation: move 2s infinite;
}
@keyframes move {
  0% {
    transform: rotate(45deg) translate(0, 0);
  }
  20% {
    transform: rotate(45deg) translate(10px, 10px);
  }
  40% {
    transform: rotate(45deg) translate(0, 0);
  }
}


/* ホームページ
---------------------------------------- */
#home h2 {
    margin-bottom: 14vw;
    font-size: calc(24px + 10 * (100vw - 320px) / 1600);
}
#home .swiper-container {
    margin-top: 20vw;
}
#home .swiper-wrapper {
    transition-timing-function: linear !important;
}
#home .swiper-wrapper img {
    max-height: 600px;
    object-fit: contain;
}

/* ミッション
---------------------------------------- */
#mission .content {
    display: flex;
    justify-content: center;
}
#mission p {
    font-size: calc(28px + 4 * (100vw - 320px) / 1600);
    line-height: 2;
    writing-mode: vertical-rl;
}


/* コンセプト
---------------------------------------- */
#concept li {
    margin-bottom: 14vw;
}
#concept h3 {
    margin-bottom: 2vw;
    font-size: calc(28px + 8 * (100vw - 320px) / 1600);
}


/* カンパニー
---------------------------------------- */
#company dt {
    padding-bottom: 2vw;
}
#company dd {
    margin-bottom: 16vw;
}
#company .map {
    position: relative;
    width: 100%;
    height: 0;
    overflow: hidden;
    margin-top: 20vw;
    padding-bottom: 56.25%;
}
#company .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-height: 400px;
}


/* コンタクト
---------------------------------------- */
#contact h2 {
    margin-bottom: 8vw;
}
#contact .lead {
    margin-bottom: calc(14px + 6 * (100vw - 320px) / 1600);
}
#contact .addition {
    font-size: calc(10px + 4 * (100vw - 320px) / 1600);
}
.formTable {
    width: 100%;
    margin-top: calc(16px + 8 * (100vw - 320px) / 1600);
    border-collapse: collapse;
}
.formTable th {
    display: block;
    padding: 16px;
    padding-left: 0;
    white-space: nowrap;
}
.formTable td {
    display: block;
    margin-bottom: 8vw;
    border: 1px solid #d9d9d9;
}
.formTable input[type="text"],
.formTable textarea {
    width: 100%;
    padding: 16px;
    background: #f9f9f9;
}
.formTable input[type="text"]:focus,
.formTable textarea:focus {
    background: #ffffff;
    border: 1px solid #292929;
}
.formTable input::placeholder,
.formTable textarea::placeholder {
    color: #d9d9d9;
}
.btn-area {
    display: grid;
    gap: calc(24px + 40 * (100vw - 320px) / 1600);
    margin-top: 6vw;
}
.btn {
    display: inline-block;
    width: 100%;
    padding: calc(24px + 8 * (100vw - 320px) / 1600);
    background: #292929;
    text-align: center;
    color: #fff;
    transition: 0.4s;
}
.btn:hover {
    background: #d30;
}


/* プライバイーポリシーとサンクス
---------------------------------------- */
#pages header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: calc(24px + 32 * (100vw - 320px) / 1600);
    padding-bottom: calc(32px + 80 * (100vw - 320px) / 1600);
}
#pages figure {
    width: 48vw;
    max-width: 400px;
    text-align: center;
}
#pages main {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 6.4vw;
}
#pages h1 {
    margin-bottom: calc(24px + 40 * (100vw - 320px) / 1600);
    font-size: calc(24px + 10 * (100vw - 320px) / 1600);
    border-bottom: 1px solid #d9d9d9;
}
#pages h2 {
    margin-bottom: 8px;
    font-size: calc(20px + 10 * (100vw - 320px) / 1600);
}
#pages li {
    margin-bottom: calc(32px + 32 * (100vw - 320px) / 1600);
}
#privacy a {
    display: block;
    margin-top: calc(14px + 6 * (100vw - 320px) / 1600);
    text-decoration: underline;
}


/* フッター
---------------------------------------- */
footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16vw 0 4vw;
    font-size: calc(12px + 2 * (100vw - 320px) / 1600);
}
footer nav {
    margin-bottom: 8vw;
}
footer nav a:hover {
    text-decoration: underline;
}
footer h3 {
    width: 24vw;
    max-width: 120px;
    margin-bottom: 4vw;
}


/* PHPメールプログラム
---------------------------------------- */
p.error_messe {
	color:red;
}
#error .php-lead {
    margin-bottom: calc(14px + 6 * (100vw - 320px) / 1600);
}
#confirm .formTable td {
    padding: 16px;
}


/* メディアクエリ
---------------------------------------- */
@media screen and (min-width: 769px) {
    .wrapper {
        display: flex;
    }
    .content {
        display: block;
        width: 100%;
        margin-top: 16vw;
        margin-left: 2vw;
        text-align: center;
    }
    #mission p {
        display: inline-block;
        font-size: calc(24px + 16 * (100vw - 320px) / 1600);
        line-height: 1.7;
        text-align: left;
        writing-mode: horizontal-tb;
    }
    #concept ul {
        display: inline-block;
    }
    #concept li {
        text-align: left;
    }
    #company dl {
        display: inline-block;
    }
    #company dt, #company dd {
        text-align: left;
    }
    #company dd {
        margin-bottom: 8vw;
    }
    #company .map {
        margin-top: 8vw;
        padding-bottom: 25%;
    }
    #contact .content {
        margin-top: 10vw;
        padding-left: 6vw;
        padding-right: 8vw;
    }
    #contact p {
        margin-bottom: 0;
        text-align: left;
    }
    .formTable {
        border-collapse: separate;
        border-spacing: 0 6vw;
    }
    .formTable th {
        display: table-cell;
        padding-right: 24px;
        text-align: left;
    }
    .formTable td {
        display: table-cell;
        text-align: left;
    }
    .btn-area {
        grid-template-columns: 1fr 1fr;
    }
    footer {
        padding: 8vw 0 2vw;
    }
    footer nav {
        margin-bottom: 4vw;
    }
    footer h3 {
        margin-bottom: 2vw;
    }
}