/*----------------------------------------------------------
 *      Initialize
 *----------------------------------------------------------*/
html {
  width: 100%;
  height: 100%;
  font-family: "Noto Serif JP";
  font-size: 10px;
  line-height: 1; }
  @media only screen and (max-width: 768px) {
    html {
      min-width: 100%;
      font-size: 10px !important; } }

body {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  background: #faf9f4;
  color: #555555;
  font-size: 10px;
  font-family: "Noto Serif JP" !important;
  letter-spacing: 0.05em;
  line-height: 1; }
  @media only screen and (max-width: 768px) {
    body {
      min-width: 100%;
      font-size: 10px !important; } }

p {
  margin: 0; }

ul, li {
  margin: 0;
  padding: 0;
  list-style: none; }

h1, h2, h3, h4, h5 {
  margin: 0;
  padding: 0; }

strong {
  font-weight: bold; }

a {
  color: #b28378;
  text-decoration: none;
  transition: all 0.3s; }
  @media only screen and (max-width: 768px) {
    a {
      transition: none; } }
  a:hover {
    color: #333333;
    text-decoration: none; }
  a:focus {
    color: #333333; }

/*----------------------------------------------------------
 *      Common
 *----------------------------------------------------------*/
.contents--wrap {
  width: 1180px;
  min-width: 1180px;
  margin: 0 auto; }
  @media only screen and (max-width: 768px) {
    .contents--wrap {
      width: 100%;
      min-width: 100%; } }

.visible-xs {
  display: none !important; }
  @media only screen and (max-width: 768px) {
    .visible-xs {
      display: block !important; } }

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

@media only screen and (max-width: 768px) {
  .hidden-xs {
    display: none !important; } }

/*----------------------------------------------------------
 *      Scroll Head
 *----------------------------------------------------------*/
.scroll__head {
  display: block;
  position: fixed;
  top: -100px;
  width: 100%;
  min-width: 1180px;
  height: 100px;
  background: #ffffff;
  z-index: 50; }
  @media only screen and (max-width: 768px) {
    .scroll__head {
      display: block;
      position: fixed;
      top: -100px;
      width: 750px;
      min-width: 750px;
      height: 100px;
      background: #ffffff;
      z-index: 50; } }

.scroll__head--wrap {
  position: relative;
  width: 100%;
  height: 100px; }

/*----------------------------------------------------------
 *      Footer
 *----------------------------------------------------------*/
footer {
  height: 260px; }
  footer .contents--wrap {
    position: relative;
    padding: 70px 0 0 0; }

.foot__logo {
  width: 99px;
  height: 74.5px;
  position: absolute;
  top: 100px;
  left: calc(50% - 37.25px); }
  .foot__logo img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .foot__logo {
      width: 58px;
      height: 44px;
      width: 116px;
      height: 88px;
      top: 100px;
      left: calc(50% - 58px); }
      .foot__logo img {
        width: 100%;
        height: auto; } }

.foot__logo--wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 0 40px 0; }

.foot__sgec {
  width: 80px;
  height: 76px;
  margin: 0 20px 0 20px; }
  .foot__sgec img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .foot__sgec {
      width: 40px;
      height: 38px;
      width: 80px;
      height: 76px; }
      .foot__sgec img {
        width: 100%;
        height: auto; } }

.foot__pefc {
  width: 58px;
  height: 76px;
  margin: 0 20px 0 20px; }
  .foot__pefc img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .foot__pefc {
      width: 29px;
      height: 38px;
      width: 58px;
      height: 76px; }
      .foot__pefc img {
        width: 100%;
        height: auto; } }

.foot__copyright {
  margin: 140px 0 0 0;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center; }
  @media only screen and (max-width: 768px) {
    .foot__copyright {
      margin: 160px 0 0 0;
      font-size: 1.6rem; } }

/*----------------------------------------------------------
 *      MainVisual
 *----------------------------------------------------------*/
.main--area {
  position: relative;
  min-width: 1180px;
  height: 100vh; }
  @media only screen and (max-width: 768px) {
    .main--area {
      min-width: 750px;
      height: calc(var(--vh, 1vh) * 100); } }
  .main--area .contents--wrap {
    width: 100%;
    height: 100%;
    background: url("../images/main__mainVisual--1.jpg") center center;
    background-size: cover; }

.main__logo {
  width: 199px;
  height: 151px;
  position: absolute;
  top: calc(50% - 75.5px);
  left: calc(50% - 99.5px); }
  .main__logo img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .main__logo {
      width: 133px;
      height: 101px;
      width: 266px;
      height: 202px;
      top: calc((var(--vh, 1vh) * 50) - 110px);
      left: calc(50% - 133px); }
      .main__logo img {
        width: 100%;
        height: auto; } }

.main__logo__en {
  position: absolute;
  top: calc(50% + 110px);
  left: calc(50% - 39px);
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.4em;
  text-align: center; }
  @media only screen and (max-width: 768px) {
    .main__logo__en {
      font-size: 2.4rem;
      top: calc((var(--vh, 1vh) * 50) + 140px);
      left: calc(50% - 48px); } }

/*----------------------------------------------------------
 *      Copy
 *----------------------------------------------------------*/
.copy--area .contents--wrap {
  position: relative;
  height: 794px; }
  @media only screen and (max-width: 768px) {
    .copy--area .contents--wrap {
      height: 975px; } }

.copy__main {
  width: 284.5px;
  height: 198px;
  position: absolute;
  top: 185px;
  right: 52px; }
  .copy__main img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .copy__main {
      width: 159px;
      height: 111px;
      width: 318px;
      height: 222px;
      top: 144px;
      right: 216px; }
      .copy__main img {
        width: 100%;
        height: auto; } }

.copy__read {
  width: 310.5px;
  height: 390px;
  position: absolute;
  top: 216px;
  right: 450px; }
  .copy__read img {
    width: 100%;
    height: auto; }
  @media only screen and (max-width: 768px) {
    .copy__read {
      width: 136px;
      height: 188px;
      width: 272px;
      height: 376px;
      top: 442px;
      right: 238px; }
      .copy__read img {
        width: 100%;
        height: auto; } }

.copy__logo {
  width: 199px;
  height: 151px;
  position: absolute;
  top: 294px;
  right: 924px; }
  .copy__logo img {
    width: 100%;
    height: auto; }

/*----------------------------------------------------------
 *      Services
 *----------------------------------------------------------*/
.services--area .contents--wrap {
  padding: 225px 0 0 0; }
  @media only screen and (max-width: 768px) {
    .services--area .contents--wrap {
      padding: 189px 0 0 0; } }

.services--image img {
  width: 100%; }

.services__title {
  margin: 0 0 90px 0;
  font-size: 2.9rem;
  font-weight: 500;
  letter-spacing: 0.5em;
  text-align: center; }
  @media only screen and (max-width: 768px) {
    .services__title {
      margin: 0 0 84px 0;
      font-size: 2.6rem; } }

.services__detail {
  margin: 0 0 352px 0;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-align: center; }
  @media only screen and (max-width: 768px) {
    .services__detail {
      margin: 0 0 290px 0;
      font-size: 2.1rem; } }

/*----------------------------------------------------------
 *      Company
 *----------------------------------------------------------*/
.company--area {
  position: relative;
  z-index: 10; }
  .company--area .contents--wrap {
    padding: 0 0 80px 0; }
    @media only screen and (max-width: 768px) {
      .company--area .contents--wrap {
        padding: 0 0 70px 0; } }

.company__title {
  margin: 0 0 57px 0;
  font-size: 2.9rem;
  font-weight: 500;
  letter-spacing: 0.5em;
  text-align: center; }
  @media only screen and (max-width: 768px) {
    .company__title {
      margin: 0 0 41px 0;
      font-size: 2.6rem; } }

.company__list--wrap {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 0 70px; }
  @media only screen and (max-width: 768px) {
    .company__list--wrap {
      margin: 0 0 0 78px; } }

.company__list--element {
  padding: 40px 0 8px 0;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.555; }
  @media only screen and (max-width: 768px) {
    .company__list--element {
      font-size: 1.9rem; } }
  .company__list--element dt {
    display: block;
    float: left;
    width: 108px;
    margin: 0 0 8px 0; }
    @media only screen and (max-width: 768px) {
      .company__list--element dt {
        width: 135px; } }
  .company__list--element dd {
    display: block;
    margin: 0 0 8px 108px; }
    @media only screen and (max-width: 768px) {
      .company__list--element dd {
        margin: 0 0 8px 135px; } }

.company__list--element__left {
  flex-basis: 390px;
  font-size: 1.7rem; }
  @media only screen and (max-width: 768px) {
    .company__list--element__left {
      font-size: 1.9rem; } }
  .company__list--element__left dt {
    width: 144px;
    margin: 0 0 18px 0; }
    @media only screen and (max-width: 768px) {
      .company__list--element__left dt {
        width: 135px;
        margin: 0 0 7px 0; } }
  .company__list--element__left dd {
    margin: 0 0 18px 144px; }
    @media only screen and (max-width: 768px) {
      .company__list--element__left dd {
        margin: 0 0 7px 135px; } }

.jigyosyo__title {
  font-size: 1.5rem;
  float: left; }
  @media only screen and (max-width: 768px) {
    .jigyosyo__title {
      margin: 0 0 8px 0;
      float: none;
      font-size: 1.9rem; } }

.company__list--element__right dl {
  margin: 0 0 30px 80px; }
  @media only screen and (max-width: 768px) {
    .company__list--element__right dl {
      margin: 0 0 15px 0; } }

/*----------------------------------------------------------
 *      Map
 *----------------------------------------------------------*/
.map--area .contents--wrap {
  width: 100%;
  min-width: 100%; }

.map--area iframe {
  width: 100%; }
  @media only screen and (max-width: 768px) {
    .map--area iframe {
      width: 750px;
      height: 1000px; } }
