@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Zen+Old+Mincho&display=swap");
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

/*
  タイポグラフィの微調整
  4. アクセシブルなline-heightを追加
  5. テキストのレンダリングを改善
*/
body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body {
  font-size: 4.2666666667vw;
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  font-variant-east-asian: proportional-width;
  text-rendering: optimizeLegibility;
  line-height: 1.5;
  color: #efd37f;
  background-color: #152136;
}

main,
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/*
  6. メディア要素のデフォルトを改善
*/
input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
  font-style: normal;
}

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

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  color: inherit;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

/** COMMON
==============================================*/
.show-small {
  display: none;
}

.row {
  margin: 0 auto;
  padding: 0 27.5px;
  max-width: 1235px;
}
.row .row {
  padding: 0;
}
.row.nopad {
  padding: 0;
}

.w1215 {
  max-width: 1270px;
}
.pagetop {
  position: fixed;
  right: 20px;
  bottom: 0;
  z-index: 9;
}
.pagetop a {
  display: block;
  padding: 20px 0;
  text-align: center;
  font-weight: bold;
  position: relative;
  background-size: cover;
  width: 114px;
  height: 95px;
}

/** SITE HEADER
==============================================*/
@-webkit-keyframes fadeUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(70px);
            transform: translateY(70px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fadeUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(70px);
            transform: translateY(70px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.page--top .globalnav .gn-top > a:before {
  opacity: 1;
  visibility: visible;
}

.page--event .globalnav .gn-event > a:before {
  opacity: 1;
  visibility: visible;
}

.page--philosophy .globalnav .gn-philosophy > a:before {
  opacity: 1;
  visibility: visible;
}

.page--service .globalnav .gn-service > a:before {
  opacity: 1;
  visibility: visible;
}

.page--works .globalnav .gn-works > a:before {
  opacity: 1;
  visibility: visible;
}

.page--recruit .globalnav .gn-recruit > a:before {
  opacity: 1;
  visibility: visible;
}

.page--company .globalnav .gn-company > a:before {
  opacity: 1;
  visibility: visible;
}

.gn-nav {
  position: fixed;
}

/** SITER FOOTER
==============================================*/
.footer {
  margin-top: 17.0666666667vw;
  background-color: #a08d61;
  color: #fff;
  position: relative;
  padding: 8.5333333333vw 0 10.6666666667vw;
}
.footer .back-to-top {
  position: absolute;
  top: -21.3333333333vw;
  right: 4.2666666667vw;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.footer .back-to-top img {
  width: 17.0666666667vw;
  height: 17.0666666667vw;
}
.footer .footer-logo {
  margin: auto;
  width: 75.2vw;
}
.footer .footer-logo a {
  display: block;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.footer .footer-logo img {
  width: 100%;
}
.footer .copyright {
  margin-top: 8.5333333333vw;
  font-size: 3.2vw;
  letter-spacing: 0.04em;
  font-family: "Playfair Display", serif;
  text-align: center;
}

@media only screen and (min-width: 769px){
  body {
    font-size: min(29.9707317073px, 1.5609756098vw);
  }
  .grid-margin-x-40 {
    margin: 0 -20px;
  }
  .grid-margin-x-40 .cell {
    padding: 0 20px;
  }
  .grid-margin-x-70 {
    margin: 0 -35px;
  }
  .grid-margin-x-70 .cell {
    padding: 0 35px;
  }
  .gn-nav {
    left: 40px;
    top: 55px;
  }
  .footer {
    margin-top: min(119.8829268293px, 6.243902439vw);
    padding: min(59.9414634146px, 3.1219512195vw) 0 min(74.9268292683px, 3.9024390244vw);
  }
  .footer .back-to-top {
    top: max(-149.8536585366px, -7.8048780488vw);
    right: min(29.9707317073px, 1.5609756098vw);
  }
  .footer .back-to-top img {
    width: min(119.8829268293px, 6.243902439vw);
    height: min(119.8829268293px, 6.243902439vw);
  }
  .footer .footer-logo {
    width: min(528.2341463415px, 27.512195122vw);
  }
  .footer .copyright {
    margin-top: min(59.9414634146px, 3.1219512195vw);
    font-size: min(22.4780487805px, 1.1707317073vw);
  }
}

@media only screen and (max-width: 768px){
  .show-small {
    display: inherit;
  }
  .hide-small {
    display: none;
  }
  .row.sp-nopad {
    padding: 0;
  }
  .grid-margin-x-10 {
    margin: 0 -5px;
  }
  .grid-margin-x-10 .cell {
    padding: 0 5px;
  }
  .pagetop a {
    width: 70px;
    height: 60px;
  }
  .gn-nav {
    left: 20px;
    top: 20px;
  }
}

@media (hover: hover) and (pointer: fine){
  .footer .back-to-top:hover {
    opacity: 0.7;
  }
  .footer .footer-logo a:hover {
    opacity: 0.7;
  }
}
/*# sourceMappingURL=common.css.map */