@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
========================================================================== */
@import url("https://fonts.googleapis.com/css?family=Playfair+Display&display=swap");
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&display=swap&subset=japanese");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.2.0/dist/css/yakuhanjp.min.css");
html {
  font-family: sans-serif;
  line-height: 1.15;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

/* Sections
========================================================================== */
body {
  margin: 0; }

article, aside, footer, header, nav, section {
  display: block; }

/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
========================================================================== */
figcaption, figure {
  display: block; }

figure {
  margin: 1em 40px; }

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible; }

main {
  display: block; }

pre {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Links
========================================================================== */
a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects; }

a:active, a:hover {
  outline-width: 0; }

/* Text-level semantics
========================================================================== */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; }

b, strong {
  font-weight: inherit; }

b, strong {
  font-weight: bolder; }

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em; }

dfn {
  font-style: italic; }

mark {
  background-color: #ff0;
  color: #000; }

small {
  font-size: 80%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

ul, li, ol, dt, dd {
  list-style: none; }

/* Embedded content
========================================================================== */
audio, video {
  display: inline-block; }

audio:not([controls]) {
  display: none;
  height: 0; }

img {
  border-style: none; }

svg:not(:root) {
  overflow: hidden; }

/* Forms
========================================================================== */
button, input, optgroup, select, textarea {
  font-family: sans-serif;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

button {
  overflow: visible; }

button, select {
  text-transform: none; }

button, html [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button; }

button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

input {
  overflow: visible; }

[type="checkbox"], [type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0; }

[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: table;
  max-width: 100%;
  padding: 0;
  color: inherit;
  white-space: normal; }

progress {
  display: inline-block;
  vertical-align: baseline; }

textarea {
  overflow: auto; }

/* Interactive
========================================================================== */
details {
  display: block; }

summary {
  display: list-item; }

menu {
  display: block; }

/* Scripting
========================================================================== */
canvas {
  display: inline-block; }

template {
  display: none; }

/* Hidden
========================================================================== */
[hidden] {
  display: none; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

*, *::before, *::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

.map_canvas img, .map_canvas embed, .map_canvas object, .mqa-display img, .mqa-display embed, .mqa-display object {
  max-width: none !important; }

button {
  padding: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1; }

[data-whatinput='mouse'] button {
  outline: 0; }

pre {
  overflow: auto; }

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

.fr {
  float: right; }

.imgR {
  float: right;
  margin-left: 20px; }

.fl {
  float: left; }

.imgL {
  float: left;
  margin-right: 20px; }

.imgC, .tC {
  text-align: center; }

.imgC {
  display: block;
  margin-left: auto;
  margin-right: auto; }

.tR {
  text-align: right; }

.mt0 {
  margin-top: 0px !important; }

.mb0 {
  margin-bottom: 0px !important; }

.pt0 {
  padding-top: 0px !important; }

.pb0 {
  padding-bottom: 0px !important; }

.mt5 {
  margin-top: 5px !important; }

.mb5 {
  margin-bottom: 5px !important; }

.pt5 {
  padding-top: 5px !important; }

.pb5 {
  padding-bottom: 5px !important; }

.mt10 {
  margin-top: 10px !important; }

.mb10 {
  margin-bottom: 10px !important; }

.pt10 {
  padding-top: 10px !important; }

.pb10 {
  padding-bottom: 10px !important; }

.mt15 {
  margin-top: 15px !important; }

.mb15 {
  margin-bottom: 15px !important; }

.pt15 {
  padding-top: 15px !important; }

.pb15 {
  padding-bottom: 15px !important; }

.mt20 {
  margin-top: 20px !important; }

.mb20 {
  margin-bottom: 20px !important; }

.pt20 {
  padding-top: 20px !important; }

.pb20 {
  padding-bottom: 20px !important; }

.mt25 {
  margin-top: 25px !important; }

.mb25 {
  margin-bottom: 25px !important; }

.pt25 {
  padding-top: 25px !important; }

.pb25 {
  padding-bottom: 25px !important; }

.mt30 {
  margin-top: 30px !important; }

.mb30 {
  margin-bottom: 30px !important; }

.pt30 {
  padding-top: 30px !important; }

.pb30 {
  padding-bottom: 30px !important; }

.mt35 {
  margin-top: 35px !important; }

.mb35 {
  margin-bottom: 35px !important; }

.pt35 {
  padding-top: 35px !important; }

.pb35 {
  padding-bottom: 35px !important; }

.mt40 {
  margin-top: 40px !important; }

.mb40 {
  margin-bottom: 40px !important; }

.pt40 {
  padding-top: 40px !important; }

.pb40 {
  padding-bottom: 40px !important; }

.mt45 {
  margin-top: 45px !important; }

.mb45 {
  margin-bottom: 45px !important; }

.pt45 {
  padding-top: 45px !important; }

.pb45 {
  padding-bottom: 45px !important; }

.mt50 {
  margin-top: 50px !important; }

.mb50 {
  margin-bottom: 50px !important; }

.pt50 {
  padding-top: 50px !important; }

.pb50 {
  padding-bottom: 50px !important; }

.mr0 {
  margin-right: 0 !important; }

.pr0 {
  padding-right: 0 !important; }

.mt1em {
  margin-top: 1em; }

/* clearfix */
.clear-fix {
  zoom: 1; }
  .clear-fix:before, .clear-fix:after {
    content: "";
    display: table;
    height: 0;
    visibility: hidden; }
  .clear-fix:after {
    clear: both; }

.clear {
  clear: both; }

/* 基本タグのフォントサイズを指定（12px -> 120% or 1.2em ） */
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, th, td, address, li, dt, dd {
  font-weight: 400;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  letter-spacing: 1px; }

.contents h1, .contents h2, .contents h3, .contents h4, .contents h5, .contents h6, .contents input, .contents button, .contents textarea, .contents select, .contents p, .contents th, .contents td, .contents address, .contents li, .contents dt, .contents dd {
  line-height: 1.6; }
  @media screen and (min-width: 960px) {
    .contents h1, .contents h2, .contents h3, .contents h4, .contents h5, .contents h6, .contents input, .contents button, .contents textarea, .contents select, .contents p, .contents th, .contents td, .contents address, .contents li, .contents dt, .contents dd {
      font-size: 16px; } }
  @media screen and (max-width: 959px) {
    .contents h1, .contents h2, .contents h3, .contents h4, .contents h5, .contents h6, .contents input, .contents button, .contents textarea, .contents select, .contents p, .contents th, .contents td, .contents address, .contents li, .contents dt, .contents dd {
      font-size: 14px; } }

/* =========================================================
	element style
========================================================= */
html, body {
  height: 100%; }

body {
  color: #212121;
  font-family: YakuHanJP, "Noto Sans JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }

input, textarea, button {
  font-family: YakuHanJP, "Noto Sans JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  -webkit-appearance: none; }

a {
  color: #000; }

@media screen and (min-width: 1024px) {
  a:hover {
    text-decoration: none; }
  a.hov {
    transition: all 0.3s;
    -moz-transition: all 0.3s;
    -webkit-transition: all 0.3s; }
    a.hov:hover {
      opacity: 0.6; } }
img {
  max-width: 100%;
  height: auto; }

/* =========================================================
	general
========================================================= */
@media screen and (min-width: 960px) {
  .cnt-pc {
    display: block; } }
@media screen and (max-width: 959px) {
  .cnt-pc {
    display: none; } }

@media screen and (min-width: 960px) {
  .cnt-sp {
    display: none; } }
@media screen and (max-width: 959px) {
  .cnt-sp {
    display: block; } }

@media screen and (min-width: 1200px) {
  .cnt-sp2 {
    display: none; } }
@media screen and (max-width: 1199px) {
  .cnt-sp2 {
    display: block; } }

@media screen and (min-width: 1200px) {
  .cnt-pc2 {
    display: block; } }
@media screen and (max-width: 1199px) {
  .cnt-pc2 {
    display: none; } }

body#home-page .article + .article {
  margin-top: 200px; }
  @media screen and (max-width: 959px) {
    body#home-page .article + .article {
      margin-top: 100px; } }

.visualbox {
  position: relative; }
  .visualbox-img {
    background-position: center;
    background-size: cover; }
  .visualbox-cnt {
    position: absolute;
    background-color: rgba(255, 255, 255, 0.9);
    -webkit-box-shadow: 2px 6px 9px 0px rgba(0, 0, 0, 0);
            box-shadow: 2px 6px 9px 0px rgba(0, 0, 0, 0);
    -webkit-transition: margin 1s ease, -webkit-box-shadow 1s ease;
    transition: margin 1s ease, -webkit-box-shadow 1s ease;
    transition: margin 1s ease, box-shadow 1s ease;
    transition: margin 1s ease, box-shadow 1s ease, -webkit-box-shadow 1s ease; }
    .visualbox-cnt:before {
      content: "";
      display: block;
      position: absolute;
      right: 0;
      bottom: 0;
      width: 10px;
      height: 10px;
      background: #212121; }
    @media screen and (min-width: 987px) {
      .visualbox-cnt:hover {
        margin-top: -50px !important;
        -webkit-box-shadow: 0px 40px 25px 5px rgba(0, 0, 0, 0.17);
                box-shadow: 0px 40px 25px 5px rgba(0, 0, 0, 0.17);
        background-color: white; }
        .visualbox-cnt:hover span.asa:before {
          opacity: 1;
          top: 6px;
          left: 6px; }
        .visualbox-cnt:hover span.asa:after {
          width: 120px; } }
    .visualbox-cnt a {
      text-decoration: none;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      width: 100%;
      height: 100%; }
  .visualbox-title {
    font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
    font-size: 60px;
    letter-spacing: .08em; }
    .visualbox-title h2 {
      font-family: a-otf-ryumin-pr6n, serif;
      margin: 50px 0;
      font-size: 20px;
      letter-spacing: .12em;
      line-height: 30px; }
    @media screen and (max-width: 959px) {
      .visualbox-title {
        font-size: 30px; }
        .visualbox-title h2 {
          font-size: 16px;
          margin: 30px 0; } }

.btn {
  text-align: center; }
  .btn span.asa,
  .btn a {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    width: 200px;
    height: 50px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border: 1px solid #212121;
    font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
    font-size: 14px;
    text-decoration: none;
    letter-spacing: .3em; }
    @media screen and (min-width: 960px) {
      .btn span.asa:before,
      .btn a:before {
        content: "";
        position: absolute;
        width: 200px;
        height: 50px;
        top: 0;
        left: 0;
        border: 1px solid #ddd;
        opacity: 0;
        -webkit-transition: all .3s ease;
        transition: all .3s ease; }
      .btn span.asa:after,
      .btn a:after {
        content: "";
        position: absolute;
        top: 34px;
        width: 0;
        height: 1px;
        background: #212121;
        -webkit-transition: width .3s ease;
        transition: width .3s ease; }
      .btn span.asa:hover:before,
      .btn a:hover:before {
        opacity: 1;
        top: 6px;
        left: 6px; }
      .btn span.asa:hover:after,
      .btn a:hover:after {
        width: 120px; } }

.inner-1200 {
  max-width: 1260px;
  width: 100%;
  margin: 0 auto;
  padding: 0 30px; }
  @media screen and (max-width: 1260px) {
    .inner-1200 {
      padding: 0 15px; } }

.inner-1000 {
  max-width: 1060px;
  width: 100%;
  margin: 0 auto;
  padding: 0 30px; }
  @media screen and (max-width: 1260px) {
    .inner-1000 {
      padding: 0 15px; } }

.js-scroll {
  opacity: 0;
  margin-top: 50px;
  -webkit-transition: margin-top 1s ease, opacity 1s ease, background-color 1s ease, -webkit-box-shadow 1s ease;
  transition: margin-top 1s ease, opacity 1s ease, background-color 1s ease, -webkit-box-shadow 1s ease;
  transition: margin-top 1s ease, opacity 1s ease, box-shadow 1s ease, background-color 1s ease;
  transition: margin-top 1s ease, opacity 1s ease, box-shadow 1s ease, background-color 1s ease, -webkit-box-shadow 1s ease; }
  .js-scroll.fade_on {
    margin-top: 0;
    opacity: 1; }

.js-scroll2 {
  opacity: 0;
  -webkit-transform: translateY(50px);
          transform: translateY(50px);
  -webkit-transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: opacity 1s ease, -webkit-transform 1s ease;
  transition: transform 1s ease, opacity 1s ease;
  transition: transform 1s ease, opacity 1s ease, -webkit-transform 1s ease; }
  .js-scroll2.fade_on {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1; }

.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .flex h3 {
    font-family: a-otf-ryumin-pr6n, serif;
    font-size: 18px;
    margin-bottom: 30px; }
  .flex-box {
    width: calc(50% - 30px); }
  @media screen and (max-width: 959px) {
    .flex {
      display: block; }
      .flex-box {
        width: 100%; }
        .flex-box + .flex-box {
          margin-top: 60px; } }

.map {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  overflow: hidden; }
  .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

ul li {
  font-size: 16px;
  font-family: a-otf-ryumin-pr6n, serif;
  line-height: 2; }
  @media screen and (max-width: 1260px) {
    ul li {
      font-size: 14px; } }

ul.list-reason {
  padding: 50px 30px;
  border: 1px solid #212121; }
  ul.list-reason li.reason dl dd, ul.list-reason li.reason dl dt {
    padding-left: 20px;
    letter-spacing: .12em; }
  ul.list-reason li.reason dl dt {
    position: relative;
    font-size: 22px;
    border-bottom: 1px solid #ddd; }
    ul.list-reason li.reason dl dt span {
      font-size: 16px;
      margin-right: 5px; }
    ul.list-reason li.reason dl dt:before {
      content: "";
      display: block;
      position: absolute;
      width: 10px;
      height: 10px;
      background: #212121;
      border: 1px solid #212121;
      border-radius: 10px;
      left: 3px;
      top: 21px; }
  ul.list-reason li.reason dl dd {
    font-size: 16px; }
  ul.list-reason li.reason + li {
    margin-top: 20px; }
  @media screen and (max-width: 959px) {
    ul.list-reason {
      padding: 0;
      border: none; }
      ul.list-reason li.reason {
        padding: 15px;
        border: 1px solid #212121; }
        ul.list-reason li.reason dl {
          position: relative;
          padding-top: 10px;
          text-align: center; }
          ul.list-reason li.reason dl:before {
            content: "";
            display: block;
            position: absolute;
            width: 10px;
            height: 10px;
            background: white;
            border: 1px solid #212121;
            border-radius: 10px;
            left: 0;
            right: 0;
            margin: 0 auto;
            top: 5px; }
          ul.list-reason li.reason dl dt, ul.list-reason li.reason dl dd {
            padding-left: 0; }
          ul.list-reason li.reason dl dt {
            font-size: 18px;
            padding-bottom: 10px;
            margin-bottom: 10px; }
            ul.list-reason li.reason dl dt span {
              display: block;
              font-size: 14px;
              line-height: 1;
              margin-top: 20px; }
            ul.list-reason li.reason dl dt:before {
              content: none; }
          ul.list-reason li.reason dl dd {
            font-size: 14px; }
      ul.list-reason.nocenter li.reason dl {
        text-align: left; }
        ul.list-reason.nocenter li.reason dl dt {
          text-align: center; } }

ul.list li {
  position: relative;
  padding-left: 1em; }
  ul.list li:last-child {
    margin-bottom: 0; }
  ul.list li:before {
    position: absolute;
    display: block;
    content: '';
    top: 14px;
    left: 0;
    width: 6px;
    height: 6px;
    background: #212121;
    border-radius: 100%; }
@media screen and (max-width: 959px) {
  ul.list.url li a {
    display: block; } }

.section {
  margin-top: 100px; }
  .section-title {
    font-size: 22px;
    font-family: a-otf-ryumin-pr6n, serif; }
  .section-main {
    margin-top: 60px; }
    .section-main p {
      font-size: 16px;
      letter-spacing: .08em;
      font-family: a-otf-ryumin-pr6n, serif;
      line-height: 35px; }
    .section-main p + p {
      margin-top: 30px; }
    .section-main p + ul, .section-main ul + p {
      margin-top: 60px; }
  @media screen and (max-width: 959px) {
    .section {
      margin-top: 60px; }
      .section-title {
        font-size: 20px;
        font-family: a-otf-ryumin-pr6n, serif; }
      .section-main {
        margin-top: 30px; }
        .section-main p {
          font-size: 14px;
          letter-spacing: .08em;
          font-family: a-otf-ryumin-pr6n, serif;
          line-height: 30px; }
        .section-main p + p {
          margin-top: 15px; }
        .section-main p + ul, .section-main ul + p {
          margin-top: 20px; } }

table {
  width: 100%;
  margin: auto;
  border-collapse: collapse;
  border: none; }
  table th, table td {
    border: none;
    vertical-align: top;
    font-size: 16px;
    font-family: a-otf-ryumin-pr6n, serif;
    line-height: 35px;
    font-weight: 400;
    text-align: left; }
    @media screen and (min-width: 960px) {
      table th, table td {
        padding: 25px 0; } }
    @media screen and (max-width: 959px) {
      table th, table td {
        padding: 15px 0;
        font-size: 14px; } }
    @media screen and (max-width: 767px) {
      table th, table td {
        display: block;
        padding: 10px; } }
  @media screen and (min-width: 768px) {
    table th {
      width: 200px;
      font-weight: bold;
      border-bottom: 1px solid #dfdfdf; } }
  @media screen and (max-width: 767px) {
    table th {
      background: #f4f4f4; } }
  table td {
    border-bottom: 1px solid #dfdfdf; }

/* =========================================================
	#wrapper
========================================================= */
#wrapper {
  width: 100%;
  height: 100%;
  margin: 0 auto; }

/* =========================================================
	.contents
========================================================= */
.contents {
  text-align: center; }

/* =========================================================
 special
========================================================= */
.bk-wrapper {
  position: fixed;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -200; }
  .bk-wrapper canvas {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    opacity: .1;
    z-index: 9; }
  .bk-wrapper .img {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    background-size: cover;
    background-position: center;
    background-image: url(/common/images/bk.jpg);
    z-index: 8; }
  @media screen and (max-width: 959px) {
    .bk-wrapper {
      background-size: cover;
      background-position: center;
      background-image: url(/common/images/sp-bk.jpg);
      height: 100%; }
      .bk-wrapper canvas {
        opacity: 0; }
      .bk-wrapper .img {
        display: none; } }

.pagetitle {
  height: 350px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .pagetitle-title {
    text-align: center; }
    .pagetitle-title span {
      font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
      font-size: 74px;
      letter-spacing: .08em;
      color: #212121;
      line-height: 1; }
    .pagetitle-title h1 {
      margin-top: 30px;
      font-family: a-otf-ryumin-pr6n, serif;
      font-size: 24px; }
  .pagetitle + .article {
    padding-top: 150px; }
  @media screen and (max-width: 959px) {
    .pagetitle {
      height: 200px; }
      .pagetitle-title span {
        font-size: 40px; }
      .pagetitle-title h1 {
        margin-top: 15px;
        font-size: 20px; }
      .pagetitle + .article {
        padding-top: 75px; } }

body:not(#home-page) .article {
  background: white; }
  body:not(#home-page) .article + .article {
    padding-top: 200px; }
  body:not(#home-page) .article:first-of-type {
    padding-top: 150px; }
  body:not(#home-page) .article:last-of-type {
    padding-bottom: 200px; }
  body:not(#home-page) .article-title span {
    font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
    font-size: 35px;
    letter-spacing: .08em; }
  body:not(#home-page) .article-title h2 {
    margin-top: 20px;
    font-family: a-otf-ryumin-pr6n, serif;
    font-size: 18px;
    letter-spacing: .12em; }
  body:not(#home-page) .article-title + .article-main {
    margin-top: 60px; }
  body:not(#home-page) .article-main p {
    font-size: 16px;
    letter-spacing: .08em;
    font-family: a-otf-ryumin-pr6n, serif;
    line-height: 35px; }
  body:not(#home-page) .article-main p + p {
    margin-top: 30px; }
  body:not(#home-page) .article-main p + ul {
    margin-top: 30px; }
  @media screen and (max-width: 959px) {
    body:not(#home-page) .article + .article {
      padding-top: 100px; }
    body:not(#home-page) .article:first-of-type {
      padding-top: 75px; }
    body:not(#home-page) .article:last-of-type {
      padding-bottom: 100px; }
    body:not(#home-page) .article-title span {
      font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
      font-size: 24px;
      letter-spacing: .08em;
      line-height: 1.6; }
    body:not(#home-page) .article-title h2 {
      margin-top: 10px;
      font-family: a-otf-ryumin-pr6n, serif;
      font-size: 16px;
      letter-spacing: .12em; }
    body:not(#home-page) .article-title + .article-main {
      margin-top: 30px; }
    body:not(#home-page) .article-main p {
      font-size: 14px;
      letter-spacing: .08em;
      font-family: a-otf-ryumin-pr6n, serif;
      line-height: 30px; }
    body:not(#home-page) .article-main p + p {
      margin-top: 15px; }
    body:not(#home-page) .article-main p + ul {
      margin-top: 20px; } }

/* =========================================================
	header
========================================================= */
.header {
  width: 100%;
  max-width: 1500px;
  height: 100px;
  margin: 30px auto 0;
  zoom: 1; }
  .header:before, .header:after {
    content: "";
    display: table;
    height: 0;
    visibility: hidden; }
  .header:after {
    clear: both; }
  @media screen and (max-width: 959px) {
    .header {
      height: 51px; } }
  .header .head-logo {
    padding-top: 15px; }
    @media screen and (max-width: 1560px) {
      .header .head-logo {
        padding-left: 30px; } }
  .header .head-logo {
    float: left; }
    @media screen and (max-width: 959px) {
      .header .head-logo {
        padding-left: 15px; } }
    @media screen and (min-width: 960px) {
      .header .head-logo img {
        width: 264px; } }
    @media screen and (max-width: 959px) {
      .header .head-logo img {
        width: 180px; } }
  @media screen and (min-width: 1200px) {
    .header .menu {
      float: right;
      background: white; } }
  @media screen and (max-width: 1199px) {
    .header .menu {
      max-height: 0;
      overflow: hidden;
      -webkit-transition: 300ms cubic-bezier(0.165, 0.84, 0.44, 1);
      transition: 300ms cubic-bezier(0.165, 0.84, 0.44, 1);
      background: white;
      color: #212121;
      opacity: 0;
      -webkit-transform: translateY(-20px);
              transform: translateY(-20px);
      position: fixed;
      width: 100vw;
      top: 0;
      padding: 0;
      z-index: 100; }
      .header .menu.on {
        max-height: 3000vw;
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
        min-height: 100vh;
        height: 100%;
        overflow-y: scroll;
        padding: 35px 35px 90px; } }
  .header .gnav {
    zoom: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    float: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .header .gnav:before, .header .gnav:after {
      content: "";
      display: table;
      height: 0;
      visibility: hidden; }
    .header .gnav:after {
      clear: both; }
    @media screen and (min-width: 1200px) {
      .header .gnav {
        padding: 0px 20px;
        height: 70px; } }
    @media screen and (max-width: 1199px) {
      .header .gnav {
        display: block;
        height: auto;
        float: none;
        width: 300px;
        margin: 0 auto;
        text-align: center;
        margin-bottom: 40px;
        margin-top: 10%; } }
    @media screen and (min-width: 1200px) {
      .header .gnav li {
        height: 100%; } }
    @media screen and (max-width: 1199px) {
      .header .gnav li {
        padding: 10px; } }
    .header .gnav a {
      text-decoration: none;
      font-family: a-otf-ryumin-pr6n, serif;
      letter-spacing: .1em;
      line-height: 1;
      cursor: pointer; }
      @media screen and (min-width: 1200px) {
        .header .gnav a {
          position: relative;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
              -ms-flex-align: center;
                  align-items: center;
          height: 100%;
          padding: 0 15px;
          font-size: 14px; }
          .header .gnav a:before {
            content: "";
            position: absolute;
            width: 100%;
            bottom: 0;
            left: 0;
            height: 1px;
            background: #212121;
            opacity: 0;
            -webkit-transition: opacity .7s ease;
            transition: opacity .7s ease; }
          .header .gnav a:hover:before {
            opacity: 1; } }
      @media screen and (max-width: 1199px) {
        .header .gnav a {
          text-align: center;
          font-size: 14px; } }
    .header .gnav .parent {
      position: relative;
      color: white;
      font-size: 15px; }
      @media screen and (min-width: 1200px) {
        .header .gnav .parent:hover .childList {
          top: 55px;
          visibility: visible;
          opacity: 1; } }
      @media screen and (max-width: 1199px) {
        .header .gnav .parent {
          font-size: 16px; } }
    @media screen and (min-width: 1200px) {
      .header .gnav .childList {
        position: absolute;
        top: 70px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        width: 100%;
        padding: 20px 15px;
        margin-top: 15px;
        visibility: hidden;
        opacity: 0;
        z-index: 1;
        background: #fafafa; }
        .header .gnav .childList > li {
          margin-bottom: 15px;
          line-height: 1; }
          .header .gnav .childList > li:last-child {
            margin-bottom: 0; }
          .header .gnav .childList > li a:before {
            width: 10px;
            position: absolute;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
            background: #212121;
            height: 1px;
            right: 0;
            left: auto; } }
    @media screen and (max-width: 1199px) {
      .header .gnav .childList {
        position: relative;
        width: 100%;
        padding-right: 0;
        margin-top: 0;
        opacity: 1;
        background: transparent;
        visibility: visible;
        padding-top: 20px; }
        .header .gnav .childList > li {
          padding: 0; }
        .header .gnav .childList:before {
          content: none; }
        .header .gnav .childList > li a {
          position: relative;
          font-size: 14px !important; }
          .header .gnav .childList > li a:before {
            content: "";
            display: block;
            position: absolute;
            width: 8px;
            height: 1px;
            background: white;
            top: 7px;
            left: -13px; } }
  .header .head-info {
    text-align: center; }
    @media screen and (min-width: 960px) {
      .header .head-info {
        float: left; } }
    @media screen and (max-width: 1199px) {
      .header .head-info {
        float: none;
        text-align: center; }
        .header .head-info li {
          display: inline-block; } }
    .header .head-info a {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      position: relative;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      text-decoration: none;
      width: 70px;
      height: 70px;
      border: 3px solid #212121;
      background-color: #212121;
      -webkit-transition: border-color .7s ease;
      transition: border-color .7s ease; }
      .header .head-info a img {
        height: 25px; }
      @media screen and (min-width: 960px) {
        .header .head-info a:hover {
          border-color: white; } }
    @media screen and (min-width: 960px) {
      .header .head-info i {
        margin-right: 5px; } }
  .header .menu-btn {
    cursor: pointer;
    position: fixed;
    top: 60px;
    right: 20px;
    width: 30px;
    height: 20px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 998;
    line-height: 1; }
    .header .menu-btn:before {
      content: "";
      display: block;
      position: absolute;
      width: 70px;
      height: 70px;
      top: -24px;
      left: -20px;
      background: #212121; }
    @media screen and (min-width: 1200px) {
      .header .menu-btn {
        display: none; } }
    @media screen and (max-width: 1199px) {
      .header .menu-btn {
        display: block; } }
    @media screen and (max-width: 767px) {
      .header .menu-btn {
        top: 46px;
        right: 10px; }
        .header .menu-btn:before {
          content: "";
          display: block;
          position: absolute;
          width: 50px;
          height: 50px;
          top: -15px;
          left: -10px;
          background: #212121; } }
    .header .menu-btn figure {
      position: absolute;
      left: 0;
      display: block;
      width: 100%;
      height: 1px;
      background: white;
      transition: 0.25s;
      -moz-transition: 0.25s;
      -webkit-transition: 0.25s; }
      .header .menu-btn figure:nth-child(1) {
        top: 0; }
      .header .menu-btn figure:nth-child(2) {
        top: 50%; }
      .header .menu-btn figure:nth-child(3) {
        bottom: 0; }
    .header .menu-btn.on figure:nth-child(1) {
      top: 50%;
      transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -webkit-transform: rotate(45deg); }
    .header .menu-btn.on figure:nth-child(2) {
      background: transparent; }
    .header .menu-btn.on figure:nth-child(3) {
      bottom: 50%;
      transform: rotate(-45deg);
      -moz-transform: rotate(-45deg);
      -webkit-transform: rotate(-45deg); }

/* =========================================================
	footer
========================================================= */
.footer {
  margin-top: 200px;
  height: 230px;
  width: 100%;
  background: #212121; }
  @media screen and (min-width: 960px) {
    .footer {
      padding: 60px 0 60px;
      height: 281px; } }
  @media screen and (max-width: 959px) {
    .footer {
      margin-top: 100px;
      height: auto;
      padding: 40px 30px; } }
  .footer-wrapper {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    height: 100%; }
    @media screen and (max-width: 1260px) {
      .footer-wrapper {
        margin: 0 30px;
        width: calc(100% - 60px); } }
    @media screen and (max-width: 959px) {
      .footer-wrapper {
        width: 100%;
        margin: 0; } }
  .footer-logo img {
    width: 264px; }
  @media screen and (max-width: 959px) {
    .footer-logo img {
      width: 210px; } }
  .footer-info {
    margin-top: 20px;
    font-size: 16px;
    color: white; }
    .footer-info span {
      margin-top: 10px;
      display: block;
      font-size: 14px; }
    @media screen and (max-width: 959px) {
      .footer-info {
        font-size: 14px;
        margin-top: 10px; }
        .footer-info span {
          font-size: 12px;
          display: inline-block;
          margin-left: 10px;
          vertical-align: 1px;
          margin-top: 0; } }
  .footer-nav {
    position: absolute;
    top: 0;
    right: 0; }
    .footer-nav ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .footer-nav ul li + li {
        margin-left: 20px; }
      .footer-nav ul li a {
        font-size: 14px;
        color: white;
        text-decoration: none; }
        .footer-nav ul li a:hover {
          text-decoration: underline; }
    @media screen and (max-width: 959px) {
      .footer-nav {
        position: relative;
        margin: 20px 0; }
        .footer-nav ul {
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
          -webkit-box-pack: center;
              -ms-flex-pack: center;
                  justify-content: center; } }
  .footer-bnr {
    position: absolute;
    bottom: 38px;
    right: 0; }
    @media screen and (max-width: 959px) {
      .footer-bnr {
        position: relative;
        bottom: auto;
        left: 0;
        right: 0;
        margin: 0 auto;
        text-align: center;
        padding: 30px 0 0; } }
  .footer-copyright {
    position: absolute;
    bottom: 0;
    right: 0; }
    .footer-copyright p {
      color: white;
      font-size: 12px; }
    @media screen and (max-width: 959px) {
      .footer-copyright {
        position: relative; }
        .footer-copyright p {
          font-size: 10px; } }

/* index page
========================================================= */
#home-page .initial-cover {
  position: fixed;
  z-index: 9999;
  background: white;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh; }
#home-page .intro .chatchphrase {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%); }
  #home-page .intro .chatchphrase p {
    text-align: center;
    font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
    font-size: 74px;
    letter-spacing: .05em;
    line-height: 92px;
    color: #212121; }
    #home-page .intro .chatchphrase p span {
      display: block;
      margin-top: 30px;
      font-size: 24px;
      font-family: a-otf-ryumin-pr6n, serif;
      letter-spacing: .2em; }
    @media screen and (max-width: 959px) {
      #home-page .intro .chatchphrase p {
        font-size: 45px;
        line-height: 50px; }
        #home-page .intro .chatchphrase p span {
          font-size: 20px;
          line-height: 40px; } }
  @media screen and (max-width: 959px) {
    #home-page .intro .chatchphrase {
      width: 300px;
      margin-top: -20px; } }
#home-page .intro .intro-btn {
  position: absolute;
  bottom: calc((100vh - 50vh)/2 - 81px);
  left: 0;
  right: 0;
  text-align: center;
  font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
  font-size: 18px;
  z-index: 10; }
  #home-page .intro .intro-btn .entrance {
    position: relative;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    text-decoration: none;
    letter-spacing: .2em;
    cursor: pointer; }
    #home-page .intro .intro-btn .entrance:hover .ring {
      position: absolute;
      z-index: -1;
      border: 1px solid rgba(33, 33, 33, 0.7);
      border-radius: 200px;
      opacity: 0;
      -webkit-box-shadow: 0px 0px 2px #ccc, inset 0px 0px 2px #ccc;
              box-shadow: 0px 0px 2px #ccc, inset 0px 0px 2px #ccc;
      -webkit-animation: pulsate 3s ease-out;
      -webkit-animation-iteration-count: infinite;
      -moz-animation: pulsate 3s ease-out;
      -moz-animation-iteration-count: infinite;
      /* センター揃えとリングの大きさ */
      height: 300px;
      width: 300px;
      top: -140px;
      left: -90px;
      right: 0;
      margin: 0 auto; }
  @media screen and (max-width: 960px) {
    #home-page .intro .intro-btn {
      bottom: calc((100vh - 50vh)/2 - 61px); } }
#home-page .header {
  height: 100vh; }
  @media screen and (max-width: 1500px) {
    #home-page .header {
      margin-bottom: 70px; } }
#home-page .cnt-info {
  position: absolute;
  top: calc(100vh - 100px);
  right: calc(50% - 750px);
  width: 850px;
  height: 70px;
  padding: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: white; }
  @media screen and (max-width: 1517px) {
    #home-page .cnt-info {
      right: 0; } }
  @media screen and (max-width: 959px) {
    #home-page .cnt-info {
      right: 0;
      width: 100%;
      height: auto;
      top: auto;
      bottom: 0;
      padding: 15px; } }
  #home-page .cnt-info a {
    font-family: a-otf-ryumin-pr6n, serif;
    text-decoration: none; }
    #home-page .cnt-info a .date {
      font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif; }
    #home-page .cnt-info a span + span {
      margin-left: 20px; }
    #home-page .cnt-info a > span.title {
      text-decoration: underline; }
    #home-page .cnt-info a:hover > span.title {
      text-decoration: none; }
    @media screen and (max-width: 959px) {
      #home-page .cnt-info a {
        font-size: 14px; }
        #home-page .cnt-info a span.title {
          display: block;
          margin: 0; } }
#home-page .cnt-service {
  margin-top: 170px;
  text-align: center; }
  @media screen and (max-width: 959px) {
    #home-page .cnt-service {
      margin-top: 0; } }
  #home-page .cnt-service .visualbox-img {
    position: relative;
    width: calc(50% + 300px);
    height: 800px;
    overflow: hidden; }
    @media screen and (max-width: 959px) {
      #home-page .cnt-service .visualbox-img {
        width: 100%;
        height: 310px; } }
  #home-page .cnt-service .visualbox-cnt {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 400px;
    height: 600px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    left: calc(50% + 200px); }
    @media screen and (max-width: 1260px) {
      #home-page .cnt-service .visualbox-cnt {
        left: auto;
        right: 30px; } }
    @media screen and (max-width: 959px) {
      #home-page .cnt-service .visualbox-cnt {
        position: relative;
        height: 350px;
        width: calc(100% - 60px);
        left: 0;
        right: 0;
        -webkit-transform: none;
                transform: none;
        margin: 0 auto;
        margin-top: -150px; } }
#home-page .cnt-aboutus {
  text-align: center; }
  #home-page .cnt-aboutus .visualbox-img {
    position: relative;
    width: calc(50% + 300px);
    height: 800px;
    margin-left: calc(50% - 300px);
    overflow: hidden; }
    @media screen and (max-width: 959px) {
      #home-page .cnt-aboutus .visualbox-img {
        width: 100%;
        height: 310px;
        margin: 0; } }
  #home-page .cnt-aboutus .visualbox-cnt {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 400px;
    height: 600px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    right: calc(50% + 200px); }
    @media screen and (max-width: 1260px) {
      #home-page .cnt-aboutus .visualbox-cnt {
        right: auto;
        left: 30px; } }
    @media screen and (max-width: 959px) {
      #home-page .cnt-aboutus .visualbox-cnt {
        position: relative;
        height: 350px;
        width: calc(100% - 60px);
        left: 0;
        right: 0;
        -webkit-transform: none;
                transform: none;
        margin: 0 auto;
        margin-top: -150px; } }
#home-page .cnt-recruitment,
#home-page .cnt-policy {
  height: 660px; }
  @media screen and (max-width: 959px) {
    #home-page .cnt-recruitment,
    #home-page .cnt-policy {
      height: 470px; } }
  #home-page .cnt-recruitment .visualbox-img,
  #home-page .cnt-policy .visualbox-img {
    position: relative;
    width: 100%;
    height: 450px; }
    @media screen and (max-width: 959px) {
      #home-page .cnt-recruitment .visualbox-img,
      #home-page .cnt-policy .visualbox-img {
        width: 100%;
        height: 150px; } }
  #home-page .cnt-recruitment .visualbox-cnt,
  #home-page .cnt-policy .visualbox-cnt {
    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    top: 225px;
    left: calc(50% + 100px);
    width: 500px;
    height: 430px; }
    #home-page .cnt-recruitment .visualbox-cnt a,
    #home-page .cnt-policy .visualbox-cnt a {
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      padding: 50px; }
    @media screen and (max-width: 1260px) {
      #home-page .cnt-recruitment .visualbox-cnt,
      #home-page .cnt-policy .visualbox-cnt {
        left: auto;
        right: 30px; } }
    @media screen and (max-width: 959px) {
      #home-page .cnt-recruitment .visualbox-cnt,
      #home-page .cnt-policy .visualbox-cnt {
        position: relative;
        height: 350px;
        width: calc(100% - 60px);
        left: 0;
        right: 0;
        -webkit-transform: none;
                transform: none;
        margin: 0 auto;
        margin-top: -258px;
        text-align: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center; }
        #home-page .cnt-recruitment .visualbox-cnt a,
        #home-page .cnt-policy .visualbox-cnt a {
          -webkit-box-pack: center;
              -ms-flex-pack: center;
                  justify-content: center; } }
  #home-page .cnt-recruitment .btn,
  #home-page .cnt-policy .btn {
    text-align: left; }
    @media screen and (max-width: 1260px) {
      #home-page .cnt-recruitment .btn,
      #home-page .cnt-policy .btn {
        text-align: center; } }
#home-page .cnt-policy .visualbox-img {
  background-image: url(/images/index/img03.jpg); }
@media screen and (max-width: 1260px) {
  #home-page .cnt-policy .visualbox-img {
    background-image: url(/images/index/img03-sp.jpg); } }
#home-page .cnt-recruitment {
  height: 735px; }
  @media screen and (max-width: 959px) {
    #home-page .cnt-recruitment {
      height: 470px; } }
  #home-page .cnt-recruitment .visualbox-cnt {
    width: 560px;
    height: 490px;
    left: auto;
    right: calc(50% + 40px);
    top: 245px; }
    @media screen and (max-width: 1260px) {
      #home-page .cnt-recruitment .visualbox-cnt {
        right: auto;
        left: 30px; } }
    @media screen and (max-width: 959px) {
      #home-page .cnt-recruitment .visualbox-cnt {
        position: relative;
        height: 350px;
        width: calc(100% - 60px);
        left: 0;
        right: 0;
        -webkit-transform: none;
                transform: none;
        margin: 0 auto;
        margin-top: -278px;
        padding: 50px 20px; } }

@-webkit-keyframes pulsate {
  0% {
    -webkit-transform: scale(0.6, 0.6);
    opacity: 0.0; }
  15% {
    opacity: 1; }
  /* リングの大きさ */
  60% {
    -webkit-transform: scale(0.7, 0.7);
    opacity: 0.0; }
  100% {
    -webkit-transform: scale(0.7, 0.7);
    opacity: 0.0; } }
/* company page
========================================================= */
#company-page .flex table th {
  width: 160px; }
  @media screen and (max-width: 959px) {
    #company-page .flex table th {
      width: 100%; } }
#company-page .flex + .flex {
  margin-top: 50px; }
@media screen and (max-width: 959px) {
  #company-page table {
    margin-top: 30px; } }

/* about page
========================================================= */
#message-page p.auther {
  margin-top: 60px;
  text-align: right; }
  #message-page p.auther span {
    font-size: 24px;
    margin-left: 13px; }

/* service page
========================================================= */
@media screen and (min-width: 960px) {
  #service-page .flex-box {
    width: 50%; }
    #service-page .flex-box.txt {
      width: calc(50% - 60px); }
    #service-page .flex-box.img {
      width: 50%;
      height: 300px; }
      #service-page .flex-box.img .parallax-window {
        height: 300px; } }
#service-page .cnt-akiya .article-title h2 {
  font-size: 22px; }
#service-page .cnt-akiya p.attention {
  font-size: 12px;
  margin-top: 0; }
#service-page .cnt-akiya .btn a {
  width: 300px;
  line-height: 1.6;
  height: 80px;
  margin-top: 60px; }
  #service-page .cnt-akiya .btn a:before {
    height: 80px;
    width: 300px; }
  #service-page .cnt-akiya .btn a:after {
    content: none; }

/* info page
========================================================= */
#news-page .list-info {
  margin-top: 60px !important;
  border-bottom: 1px solid #ccc; }
  #news-page .list-info a {
    font-family: a-otf-ryumin-pr6n, serif;
    text-decoration: none; }
    #news-page .list-info a .date {
      font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif; }
    #news-page .list-info a span + span {
      margin-left: 20px; }
    #news-page .list-info a > span.title {
      text-decoration: underline; }
    #news-page .list-info a:hover > span.title {
      text-decoration: none; }
    @media screen and (max-width: 959px) {
      #news-page .list-info a {
        font-size: 14px; }
        #news-page .list-info a span.title {
          display: block;
          margin: 0; } }
  #news-page .list-info span.category {
    display: inline-block;
    text-align: center;
    width: 80px; }
  #news-page .list-info li {
    padding: 15px 0;
    border-top: 1px solid #ccc; }
#news-page .info .info-detail {
  padding-bottom: 20px;
  border-bottom: 1px solid #ddd; }
  #news-page .info .info-detail h2 {
    font-family: a-otf-ryumin-pr6n, serif;
    font-size: 24px;
    margin-bottom: 20px; }
  #news-page .info .info-detail .info-date {
    font-family: "Playfair Display", YakuHanJP, a-otf-ryumin-pr6n, serif;
    margin-right: 20px; }
  #news-page .info .info-detail .info-cat {
    font-family: a-otf-ryumin-pr6n, serif; }
  @media screen and (max-width: 959px) {
    #news-page .info .info-detail h2 {
      line-height: 1.6;
      font-size: 20px; }
    #news-page .info .info-detail .info-cat,
    #news-page .info .info-detail .info-date {
      font-size: 14px; } }
#news-page .info-main {
  margin-top: 60px; }
#news-page .detail h3, #news-page .detail h4, #news-page .detail h5 {
  font-family: a-otf-ryumin-pr6n, serif; }
#news-page .detail h3 {
  font-size: 22px; }
#news-page .detail h4 {
  font-size: 20px; }
#news-page .detail h5 {
  font-size: 16px;
  font-weight: bold; }
#news-page .detail h3, #news-page .detail h4, #news-page .detail h5 {
  margin-top: 60px; }
#news-page .detail p + img,
#news-page .detail img + p,
#news-page .detail h3 + p,
#news-page .detail h4 + p,
#news-page .detail h5 + p {
  margin-top: 30px; }
#news-page .detail p {
  font-size: 16px;
  font-family: a-otf-ryumin-pr6n, serif;
  line-height: 36px;
  letter-spacing: .08em; }
#news-page .detail p + p {
  margin-top: 20px; }
@media screen and (max-width: 959px) {
  #news-page .detail h3 {
    font-size: 18px; }
  #news-page .detail h4 {
    font-size: 16px; }
  #news-page .detail h5 {
    font-size: 14px;
    font-weight: bold; }
  #news-page .detail h3, #news-page .detail h4, #news-page .detail h5 {
    margin-top: 50px; }
  #news-page .detail p + img,
  #news-page .detail img + p,
  #news-page .detail h3 + p,
  #news-page .detail h4 + p,
  #news-page .detail h5 + p {
    margin-top: 15px; }
  #news-page .detail p {
    font-size: 14px;
    font-family: a-otf-ryumin-pr6n, serif;
    line-height: 28px;
    letter-spacing: .08em; }
  #news-page .detail p + p {
    margin-top: 15px; } }

/* recruitment page
========================================================= */
#recruitment-page .wide-img {
  margin-top: 100px;
  max-width: 1500px;
  width: 100%;
  height: 450px;
  margin-left: auto;
  margin-right: auto;
  background-size: cover;
  background-position: center; }
  @media screen and (max-width: 959px) {
    #recruitment-page .wide-img {
      height: 150px; } }

/*  assessment page
========================================================= */
#assessment-page ul + p {
  margin-top: 60px; }
  @media screen and (max-width: 959px) {
    #assessment-page ul + p {
      margin-top: 30px; } }
#assessment-page dd .date {
  width: 100% !important; }
  #assessment-page dd .date + .date {
    margin-top: 10px; }
  #assessment-page dd .date select {
    float: left;
    width: 70%; }
  #assessment-page dd .date select.time,
  #assessment-page dd .date input {
    -webkit-appearance: none;
    width: calc(30% - 10px) !important;
    padding: 10px;
    margin-left: 10px;
    border: solid 1px #dfdfdf;
    background: #fafafa;
    border-radius: 5px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 100% !important; }

/*  contact page
========================================================= */
#assessment-page form,
#contact-page form {
  width: 100%; }
#assessment-page .form,
#contact-page .form {
  margin-top: 60px; }
  #assessment-page .form #mfp_confirm_table,
  #contact-page .form #mfp_confirm_table {
    width: 100%;
    margin-top: 20px; }
    #assessment-page .form #mfp_confirm_table th,
    #contact-page .form #mfp_confirm_table th {
      width: 50%; }
      @media screen and (max-width: 959px) {
        #assessment-page .form #mfp_confirm_table th,
        #contact-page .form #mfp_confirm_table th {
          width: 100% !important; } }
  #assessment-page .form dl,
  #contact-page .form dl {
    display: table;
    width: inherit;
    margin: 0;
    width: 100%;
    padding: 20px 0;
    border-bottom: dotted 1px #dfdfdf;
    font-family: a-otf-ryumin-pr6n, serif; }
    #assessment-page .form dl:first-of-type,
    #contact-page .form dl:first-of-type {
      border-top: dotted 1px #dfdfdf; }
    @media screen and (max-width: 767px) {
      #assessment-page .form dl,
      #contact-page .form dl {
        display: block; } }
  #assessment-page .form dt, #assessment-page .form dd,
  #contact-page .form dt,
  #contact-page .form dd {
    display: table-cell;
    padding: 0;
    border: none !important;
    font-size: 16px;
    text-align: left;
    vertical-align: middle; }
    @media screen and (max-width: 959px) {
      #assessment-page .form dt, #assessment-page .form dd,
      #contact-page .form dt,
      #contact-page .form dd {
        display: block; } }
  @media screen and (min-width: 960px) {
    #assessment-page .form dt,
    #contact-page .form dt {
      width: 300px; } }
  @media screen and (max-width: 959px) {
    #assessment-page .form dt,
    #contact-page .form dt {
      width: auto;
      padding-bottom: 10px;
      font-size: 16px !important; } }
  #assessment-page .form dt span,
  #contact-page .form dt span {
    display: block;
    float: right;
    width: 35px;
    height: 18px;
    margin-top: 3px;
    background: #212121;
    color: #fff;
    font-size: 9px;
    text-align: center;
    line-height: 18px;
    text-indent: 0;
    border-radius: 2px; }
  #assessment-page .form #submit,
  #contact-page .form #submit {
    margin-top: 30px;
    text-align: center; }
  #assessment-page .form #add,
  #contact-page .form #add {
    width: 100%; }
  #assessment-page .form h3,
  #contact-page .form h3 {
    margin-bottom: 15px; }
  #assessment-page .form dd,
  #contact-page .form dd {
    padding-left: 20px; }
    @media screen and (max-width: 959px) {
      #assessment-page .form dd,
      #contact-page .form dd {
        padding-left: 0; } }
    #assessment-page .form dd dl,
    #contact-page .form dd dl {
      width: 100%;
      padding: 5px 0;
      border: none !important; }
      #assessment-page .form dd dl:first-of-type,
      #contact-page .form dd dl:first-of-type {
        border-top: none; }
      #assessment-page .form dd dl dt,
      #contact-page .form dd dl dt {
        width: 100px;
        padding-top: 10px; }
      @media screen and (max-width: 959px) {
        #assessment-page .form dd dl,
        #contact-page .form dd dl {
          padding-left: 1em; }
          #assessment-page .form dd dl dt, #assessment-page .form dd dl dd,
          #contact-page .form dd dl dt,
          #contact-page .form dd dl dd {
            width: auto; } }
    #assessment-page .form dd .mfp_err,
    #contact-page .form dd .mfp_err {
      clear: both;
      display: none;
      text-align: left;
      margin: 5px 0px 0px 0px;
      padding: 3px 0px 5px 17px;
      color: #212121;
      font-size: 12px;
      line-height: normal;
      background-repeat: no-repeat;
      background-position: 0px center; }
    #assessment-page .form dd input[type="text"], #assessment-page .form dd input[type="tel"], #assessment-page .form dd input[type="email"], #assessment-page .form dd textarea,
    #contact-page .form dd input[type="text"],
    #contact-page .form dd input[type="tel"],
    #contact-page .form dd input[type="email"],
    #contact-page .form dd textarea {
      -webkit-appearance: none;
      width: 100% !important;
      padding: 10px;
      border: solid 1px #dfdfdf;
      background: #fafafa;
      border-radius: 2px;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      font-size: 18px !important;
      font-family: a-otf-ryumin-pr6n, serif; }
    #assessment-page .form dd #zip-code,
    #contact-page .form dd #zip-code {
      width: 250px !important;
      margin-right: 10px; }
    #assessment-page .form dd .custom,
    #contact-page .form dd .custom {
      overflow: hidden;
      position: relative;
      width: 250px;
      border-radius: 2px;
      background: #fafafa;
      z-index: 10; }
      #assessment-page .form dd .custom i,
      #contact-page .form dd .custom i {
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        right: 10px; }
    #assessment-page .form dd select,
    #contact-page .form dd select {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      display: block;
      position: relative;
      border: solid 1px #dfdfdf;
      border-radius: 2px;
      height: 44px;
      padding: 11px 0 10px 15px;
      font-weight: 400;
      cursor: pointer;
      background: #fafafa;
      z-index: 15;
      vertical-align: middle;
      line-height: 24px;
      -webkit-appearance: button;
         -moz-appearance: button;
              appearance: button; }
    #assessment-page .form dd input[type=radio], #assessment-page .form dd input[type=checkbox],
    #contact-page .form dd input[type=radio],
    #contact-page .form dd input[type=checkbox] {
      display: none; }
    #assessment-page .form dd .radio, #assessment-page .form dd .checkbox,
    #contact-page .form dd .radio,
    #contact-page .form dd .checkbox {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      -webkit-transition: background-color 0.2s linear;
      transition: background-color 0.2s linear;
      position: relative;
      display: block;
      padding: 15px 15px 15px 45px;
      border-radius: 2px;
      border: 1px solid #dfdfdf;
      background-color: #fafafa;
      vertical-align: middle;
      font-size: 16px;
      cursor: pointer; }
      @media screen and (max-width: 767px) {
        #assessment-page .form dd .radio, #assessment-page .form dd .checkbox,
        #contact-page .form dd .radio,
        #contact-page .form dd .checkbox {
          font-size: 18px; } }
      #assessment-page .form dd .radio:hover:after, #assessment-page .form dd .checkbox:hover:after,
      #contact-page .form dd .radio:hover:after,
      #contact-page .form dd .checkbox:hover:after {
        border-color: #212121; }
      #assessment-page .form dd .radio:before, #assessment-page .form dd .radio:after, #assessment-page .form dd .checkbox:before, #assessment-page .form dd .checkbox:after,
      #contact-page .form dd .radio:before,
      #contact-page .form dd .radio:after,
      #contact-page .form dd .checkbox:before,
      #contact-page .form dd .checkbox:after {
        display: block;
        position: absolute;
        top: 50%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        content: ''; }
      #assessment-page .form dd .radio:before, #assessment-page .form dd .checkbox:before,
      #contact-page .form dd .radio:before,
      #contact-page .form dd .checkbox:before {
        opacity: 0; }
      #assessment-page .form dd .radio:after, #assessment-page .form dd .checkbox:after,
      #contact-page .form dd .radio:after,
      #contact-page .form dd .checkbox:after {
        -webkit-transition: border-color 0.2s linear;
        transition: border-color 0.2s linear;
        left: 15px;
        margin-top: -10px;
        width: 20px;
        height: 20px;
        border: 2px solid #bbb;
        border-radius: 2px; }
      #assessment-page .form dd .radio.mfp_checked:after, #assessment-page .form dd .checkbox.mfp_checked:after,
      #contact-page .form dd .radio.mfp_checked:after,
      #contact-page .form dd .checkbox.mfp_checked:after {
        border-color: #212121; }
      #assessment-page .form dd .radio.mfp_checked:before, #assessment-page .form dd .checkbox.mfp_checked:before,
      #contact-page .form dd .radio.mfp_checked:before,
      #contact-page .form dd .checkbox.mfp_checked:before {
        opacity: 1; }
    #assessment-page .form dd .radio:before,
    #contact-page .form dd .radio:before {
      -webkit-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;
      left: 21px;
      margin-top: -4px;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background-color: #212121; }
    #assessment-page .form dd .radio:after,
    #contact-page .form dd .radio:after {
      border-radius: 100%; }
    #assessment-page .form dd .checkbox:before,
    #contact-page .form dd .checkbox:before {
      -webkit-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;
      position: absolute;
      top: 50%;
      left: 21px;
      display: block;
      margin-top: -7px;
      width: 7px;
      height: 11px;
      border-right: 3px solid #212121;
      border-bottom: 3px solid #212121;
      -webkit-transform: rotate(45deg);
              transform: rotate(45deg); }
    #assessment-page .form dd ol,
    #contact-page .form dd ol {
      zoom: 1; }
      #assessment-page .form dd ol:before, #assessment-page .form dd ol:after,
      #contact-page .form dd ol:before,
      #contact-page .form dd ol:after {
        content: "";
        display: table;
        height: 0;
        visibility: hidden; }
      #assessment-page .form dd ol:after,
      #contact-page .form dd ol:after {
        clear: both; }
    #assessment-page .form dd li,
    #contact-page .form dd li {
      float: left;
      width: 50%;
      padding: 5px 10px 5px 0;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
      @media screen and (max-width: 959px) {
        #assessment-page .form dd li,
        #contact-page .form dd li {
          float: none;
          width: auto;
          padding: 0 0 10px 0; }
          #assessment-page .form dd li:last-child,
          #contact-page .form dd li:last-child {
            padding-bottom: 0; } }
      #assessment-page .form dd li input,
      #contact-page .form dd li input {
        margin-right: 5px;
        padding: 0;
        border: none;
        background: none; }
    #assessment-page .form dd.tri .attention,
    #contact-page .form dd.tri .attention {
      text-indent: -14px;
      padding-left: 14px;
      margin-top: 10px;
      text-align: left; }
    #assessment-page .form dd.tri > ol > li,
    #contact-page .form dd.tri > ol > li {
      width: 33%; }
      @media screen and (max-width: 959px) {
        #assessment-page .form dd.tri > ol > li,
        #contact-page .form dd.tri > ol > li {
          width: auto; } }
      @media screen and (max-width: 1400px) and (min-width: 959px) {
        #assessment-page .form dd.tri > ol > li,
        #contact-page .form dd.tri > ol > li {
          font-size: 16px; } }
      @media screen and (max-width: 767px) {
        #assessment-page .form dd.tri > ol > li,
        #contact-page .form dd.tri > ol > li {
          font-size: 18px; } }
  #assessment-page .form #button, #assessment-page .form .mfp_buttons,
  #contact-page .form #button,
  #contact-page .form .mfp_buttons {
    text-align: center; }
    @media screen and (min-width: 960px) {
      #assessment-page .form #button, #assessment-page .form .mfp_buttons,
      #contact-page .form #button,
      #contact-page .form .mfp_buttons {
        margin: 50px 180px 0; } }
    @media screen and (max-width: 959px) {
      #assessment-page .form #button, #assessment-page .form .mfp_buttons,
      #contact-page .form #button,
      #contact-page .form .mfp_buttons {
        margin-top: 50px; } }
    @media screen and (max-width: 767px) {
      #assessment-page .form #button, #assessment-page .form .mfp_buttons,
      #contact-page .form #button,
      #contact-page .form .mfp_buttons {
        margin-top: 0; } }
    #assessment-page .form #button li, #assessment-page .form .mfp_buttons li,
    #contact-page .form #button li,
    #contact-page .form .mfp_buttons li {
      width: 45%; }
      @media screen and (max-width: 767px) {
        #assessment-page .form #button li, #assessment-page .form .mfp_buttons li,
        #contact-page .form #button li,
        #contact-page .form .mfp_buttons li {
          float: none;
          width: 100%;
          margin-top: 30px; } }
    #assessment-page .form #button button, #assessment-page .form .mfp_buttons button,
    #contact-page .form #button button,
    #contact-page .form .mfp_buttons button {
      display: block;
      width: 100%;
      height: 60px;
      margin: 0;
      padding: 0;
      border: none;
      background: #212121;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      border-radius: 2px;
      cursor: pointer;
      color: #fff;
      font-size: 14px;
      text-align: center; }
      #assessment-page .form #button button:hover, #assessment-page .form .mfp_buttons button:hover,
      #contact-page .form #button button:hover,
      #contact-page .form .mfp_buttons button:hover {
        opacity: 0.8; }
  #assessment-page .form .mfp_buttons,
  #contact-page .form .mfp_buttons {
    padding: 0;
    zoom: 1; }
    #assessment-page .form .mfp_buttons:before, #assessment-page .form .mfp_buttons:after,
    #contact-page .form .mfp_buttons:before,
    #contact-page .form .mfp_buttons:after {
      content: "";
      display: table;
      height: 0;
      visibility: hidden; }
    #assessment-page .form .mfp_buttons:after,
    #contact-page .form .mfp_buttons:after {
      clear: both; }
    #assessment-page .form .mfp_buttons button,
    #contact-page .form .mfp_buttons button {
      width: 45%; }
      @media screen and (max-width: 767px) {
        #assessment-page .form .mfp_buttons button,
        #contact-page .form .mfp_buttons button {
          width: 100%;
          margin-top: 30px; } }
    #assessment-page .form .mfp_buttons #mfp_button_send,
    #contact-page .form .mfp_buttons #mfp_button_send {
      float: right; }
    #assessment-page .form .mfp_buttons #mfp_button_cancel,
    #contact-page .form .mfp_buttons #mfp_button_cancel {
      float: left; }
  #assessment-page .form #mfp_confirm_table dt,
  #contact-page .form #mfp_confirm_table dt {
    padding-top: 0; }
  #assessment-page .form .thanks,
  #contact-page .form .thanks {
    text-align: center; }
    #assessment-page .form .thanks h2, #assessment-page .form .thanks div,
    #contact-page .form .thanks h2,
    #contact-page .form .thanks div {
      -webkit-animation-delay: .5s;
              animation-delay: .5s; }
    #assessment-page .form .thanks h2,
    #contact-page .form .thanks h2 {
      margin-bottom: 50px;
      padding: 0;
      border: none;
      font-size: 30px;
      font-weight: 700; }
      #assessment-page .form .thanks h2:before, #assessment-page .form .thanks h2:after,
      #contact-page .form .thanks h2:before,
      #contact-page .form .thanks h2:after {
        display: none; }
      @media screen and (max-width: 767px) {
        #assessment-page .form .thanks h2,
        #contact-page .form .thanks h2 {
          margin-bottom: 30px;
          font-size: 22px; } }
    #assessment-page .form .thanks p,
    #contact-page .form .thanks p {
      margin-bottom: 1em;
      text-align: center;
      line-height: 2; }
    #assessment-page .form .thanks .btn-link,
    #contact-page .form .thanks .btn-link {
      padding-top: 80px; }
      @media screen and (max-width: 767px) {
        #assessment-page .form .thanks .btn-link,
        #contact-page .form .thanks .btn-link {
          padding-top: 40px; } }
  #assessment-page .form #mfp_phase_confirm h4,
  #contact-page .form #mfp_phase_confirm h4 {
    font-size: 30px;
    text-align: center; }
    @media screen and (max-width: 767px) {
      #assessment-page .form #mfp_phase_confirm h4,
      #contact-page .form #mfp_phase_confirm h4 {
        font-size: 18px; } }

@media screen and (max-width: 767px) {
  form#mailformpro dl dd {
    padding-left: 0 !important;
    padding-right: 0 !important; } }

/*  error page
========================================================= */
#error-page .pagetitle {
  background-image: url(/common/images/pagetitle/pagetitle01.jpg); }
#error-page .contents {
  text-align: center; }
  #error-page .contents h2 span {
    display: block;
    font-size: 11px; }

@media screen and (max-width: 959px) {
  #error-page #pagetitle h1 {
    padding: 0;
    border: none; } }
@media print {
  * html body {
    zoom: .7; } }

/*# sourceMappingURL=style.css.map */