/* リセット */

* {
  box-sizing: border-box;
}

html {
  overflow: auto;
}

body {
  overflow: hidden;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre,
form, fieldset, input, textarea, p, blockquote, th, td, figure {
  padding: 0;
  margin: 0;
}

a {
  text-decoration: none;
}

table {
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-weight: normal;
  font-style: normal;
}

strong {
  font-weight: bold;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

q:before, q:after {
  content: '';
}

abbr, acronym {
  border: 0;
}

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


/*-------------------------------------------------
/* 基本
--------------------------------------------------*/

:root {
  --color-text: #000000;
  --color-back: #EFE3CD;

  --color-main: #e7001c;
  --color-red: #ff002b;

  --color-purple: #743771;
  --color-day-saturday: #2461ad;
  --color-day-sunday: #e60033;
  --color-balck-1: #333238;
  --color-brown: #72240f;
  --color-light-brown: #966848;
  --color-gold: #bf9b30;
  --color-dark-blue: #06275e;
  --color-cty: #1a2f8f;
  --color-dull-pink: #e94d61;

  --color-gray: #999490;
  --color-dark-purple: #514d4a;
  --color-visited: #514d4a;

  --box-shadow: 0 0 5px rgba(150, 104, 72, .75);

  --font-main: YakuHanMP, 'Zen Old Mincho', 'Hiragino Mincho ProN', 'Noto Serif JP', serif;
  --font-sans: YakuHanJP, "Poppins", "Zen Kaku Gothic Antique", 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'Noto Sans CJK JP', sans-serif;
  --font-en: "Poppins", sans-serif;
}

body {
  font-family: var(--font-main);
  color: var(--color-text);
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.6;
  background-color: var(--color-back);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  -webkit-print-color-adjust: exact;
}

@media screen and (min-width: 834px), print {
  body {
    font-size: 18px;
  }
}

.foot-copy,
.en {
  font-family: var(--font-en);
}

a:link {
  text-decoration: none;
}

a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a:active {
  text-decoration: none;
}

/* iPhoneTELリンク色変更なしにする */
a[href^="tel"] {
  color: inherit;
  text-decoration: none;
}

img {
  vertical-align: bottom;
  -ms-interpolation-mode: bicubic;
}

html {
  scroll-behavior: smooth;
}

.margin-top-non {
  margin-top: 0 !important;
}


/* JSが有効な場合のみ非表示（<html>にjsクラスを付与する前提） */
.js .topmain,
.js .animation-fade-in,
.js .animation-left,
.js .animation-right,
.js .animation,
.js .animation-scale,
.js .animation-scale-out {
  visibility: hidden;
}



/*------------------------------------------*/
/* ロゴ
/*------------------------------------------*/

.logo {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/logo.png');
  background-size: 100%;
  background-repeat: no-repeat;
  aspect-ratio: 36/47;
  width: calc(360px / 2);
  height: auto;
  z-index: 11;
  transition: all .3s ease;
}

@media screen and (min-width: 768px), print {
  .logo {
    width: calc(360px / 2);
  }
}

@media screen and (min-width: 834px), print {
  .logo {
    width: calc(360px / 2);
  }
}

/* CTY・CNSロゴ ------------------------------*/
.logo-parent {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/logo_cty_cns.png');
  background-size: 100%;
  background-repeat: no-repeat;
  aspect-ratio: 24/11;
  width: 80px;
  height: auto;
  z-index: 11;
  transition: all .3s ease;
}

@media screen and (min-width: 768px), print {
  .logo-parent {
    width: 100px;
  }
}

@media screen and (min-width: 834px), print {
  .logo-parent {
    width: 120px;
  }
}

/* インスタ ------------------------------*/
.insta {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/sns_insta.svg');
  background-size: 100%;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
  width: 30px;
  height: auto;
}

@media screen and (min-width: 834px), print {
  .insta {
    width: 40px;
  }
}

/* tw ------------------------------*/
.tw {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/sns_x.svg');
  background-size: 100%;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
  width: 30px;
  height: auto;
}

@media screen and (min-width: 834px), print {
  .tw {
    width: 40px;
  }
}

/* line ------------------------------*/
.line {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/sns_line.svg');
  background-size: 100%;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
  width: 30px;
  height: auto;
}

@media screen and (min-width: 834px), print {
  .line {
    width: 60px;
  }
}

/* sns-list ------------------------------*/
.sns-list {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.sns-list li+li {
  margin-left: 40px;
}

.sns-list li a {
  color: var(--color-text);
  font-family: var(--font-en);
  font-size: 0.9rem;
  font-weight: 600;
}

.sns-list li a:hover {
  text-decoration: none;
}


/*****************************************
*
* ヘッダ
*
******************************************/

.wrapper {
  position: relative;
}

.wrapper::before {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/background.jpg');
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
}

.wrapper::after {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/back_top.png');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 107/13;
  width: 1284px;
  width: calc(calc(1280 / 1400) * 100vw);
  height: auto;
  position: absolute;
  top: 0;
  right: 0;
}

header {
  position: relative;
  z-index: 50;
}

header .logo-parent-wrap {
  position: absolute;
  top: 5px;
  left: 10px;
}

header .logo-wrap {
  display: none;
}

@media screen and (min-width: 834px), print {
  header .logo-parent-wrap {
    position: fixed;
    top: 10px;
    left: 20px;
  }

  header .logo-wrap {
    display: block;
    position: fixed;
    top: 70px;
    left: 15px;
    transform: translateX(0);
  }

  .is-scroll header .logo-parent {
    width: calc(120px / 1.2);
  }

  .is-scroll header .logo-wrap {
    top: 60px;
  }

  .is-scroll header .logo {
    width: calc(360px / 3);
  }
}

.tsunagu_line {
  position: fixed;
  bottom: 5px;
  right: 5px;
  z-index: 100;
}

.tsunagu_line a {
  text-indent: 100%;
  white-space: nowrap;
  font-size: 0;
  display: inline-block;
  background-image: url('../../img/common/tsunagu_line.png');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 33/20;
  width: 180px;
  height: auto;
  transition: all .3s ease;
}

.tsunagu_line a:hover {
  animation: bounce 0.4s ease-out;
}

@media screen and (min-width: 834px), print {
  .tsunagu_line a {
    bottom: 10px;
    right: 10px;
  }

  .tsunagu_line a {
    width: 330px;
  }
}

@keyframes bounce {
  0% {
    transform: translateY(0);
  }

  30% {
    transform: translateY(-8px);
  }

  55% {
    transform: translateY(2px);
  }

  75% {
    transform: translateY(-2px);
  }

  100% {
    transform: translateY(0);
  }
}

.main {
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
}

.main::after {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/back_side.png');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 1333/4000;
  width: 160px;
  width: calc(calc(160 / 1400) * 100vw);
  height: auto;
  position: absolute;
  bottom: 0;
  left: 0;
}

.container {
  position: relative;
  z-index: 10;
}

.container::before,
.container::after {
  content: '';
  display: inline-block;
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 6/26;
  width: calc(calc(30 / 375) * 100vw);
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 10;
}

.container::before {
  background-image: url('../../img/common/heading_string_l.png');
  left: calc(calc(90 / 375) * 100vw);
}

.container::after {
  background-image: url('../../img/common/heading_string_r.png');
  right: calc(calc(90 / 375) * 100vw);
}

@media screen and (min-width: 768px), print {

  .container::before,
  .container::after {
    width: calc(calc(60 / 1400) * 100vw);
  }

  .container::before {
    --offset: calc(calc(450 / 1400) * 100vw);
    left: calc(50% - var(--offset));
  }

  .container::after {
    --offset: calc(calc(450 / 1400) * 100vw);
    right: calc(50% - var(--offset));
  }
}

@media screen and (min-width: 1400px), print {

  .container::before,
  .container::after {
    width: 60px;
  }

  .container::before {
    left: calc(50% - 450px);
  }

  .container::after {
    right: calc(50% - 450px);
  }
}


/*****************************************
*
* drawer nav
*
******************************************/

.drawer-open {
  overflow: hidden !important;
}

.drawer-nav {
  position: fixed;
  z-index: 101;
  top: 0;
  overflow: hidden;
  width: 16.25rem;
  width: 100%;
  height: 100%;
  background-image: url('../../img/common/back_nav.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  padding: 40px 20px;
}

.drawer-menu {
  display: inline-block;
}

.drawer-menu li a:hover,
.drawer-menu li a:active {
  text-decoration: none;
}

.drawer-menu li.nav-brand a {
  font-size: 0;
  padding: 0;
  text-align: left;
  margin-bottom: 40px;
}

@media screen and (min-width: 834px), print {
  .drawer-menu li.nav-brand a {
    margin-bottom: 60px;
  }
}

.drawer-menu li.nav-single {
  text-align: left;
  margin-bottom: 20px;
}

.drawer-menu li.nav-single a {
  position: relative;
  color: var(--color-text);
  font-size: 1.2rem;
  font-weight: bold;
  padding-left: 30px;
}

.drawer-menu li.nav-single a::before {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/icon_nav.svg');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 1/1;
  width: 20px;
  height: auto;
  position: absolute;
  top: 0.3em;
  left: 0;
}

.drawer-menu .nav-sns-menu {
  margin-top: 60px;
}


/* ------------------------------*/
/*! overlay */
/*
.drawer-overlay {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  display: none;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .2);
}

.drawer-open .drawer-overlay {
  display: block;
}
*/

/*!------------------------------------*\
    Top
\*!------------------------------------*/

.drawer--top .drawer-nav {
  top: -100%;
  left: 0;
  width: 100%;
  height: auto;
  max-height: 100%;
  -webkit-transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.drawer--top.drawer-open .drawer-nav {
  top: 0;
}

.drawer--top .drawer-hamburger,
.drawer--top.drawer-open .drawer-hamburger {
  right: 0;
}

/*!------------------------------------*\
    Left
\*!------------------------------------*/

.drawer--left .drawer-nav {
  left: -16.25rem;
  -webkit-transition: left .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: left .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.drawer--left.drawer-open .drawer-nav,
.drawer--left .drawer-hamburger,
.drawer--left.drawer-open .drawer-navbar .drawer-hamburger {
  left: 0;
}

.drawer--left.drawer-open .drawer-hamburger {
  left: 16.25rem;
}

/*!------------------------------------*\
    Right
\*!------------------------------------*/

.drawer--right .drawer-nav {
  right: -16.25rem;
  right: -100%;
  -webkit-transition: right .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: right .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.drawer--right.drawer-open .drawer-nav,
.drawer--right .drawer-hamburger,
.drawer--right.drawer-open .drawer-navbar .drawer-hamburger {
  right: 0;
}

.drawer--right.drawer-open .drawer-hamburger {
  right: 16.25rem;
  /* 右端固定 */
  right: 0;
}

/*!------------------------------------*\
    iPhoneでメニューをスクロールするとメニューが閉じてしまうバグ対策
\*!------------------------------------*/

.drawer--top.drawer-open .drawer-nav {
  top: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.drawer--left.drawer-open .drawer-nav,
.drawer--left .drawer-hamburger,
.drawer--left.drawer-open .drawer-navbar .drawer-hamburger {
  left: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.drawer--right.drawer-open .drawer-nav,
.drawer--right .drawer-hamburger,
.drawer--right.drawer-open .drawer-navbar .drawer-hamburger {
  right: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/*!------------------------------------*\
    Hamburger
\*!------------------------------------*/

.drawer-hamburger {
  display: block;
  padding: 0;
  -webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  outline: 0;
  border: 0;
  background: var(--color-main);
  border: solid 3px var(--color-balck-1);
  border-radius: 6px;
  width: 40px;
  height: 40px;
  margin-right: 10px;
  position: fixed;
  top: 10px;
  right: 0;
  box-shadow: var(--box-shadow);
  z-index: 1004;
}

.drawer-hamburger:hover {
  cursor: pointer;
}

.drawer-hamburger-icon {
  position: relative;
  display: block;
  position: absolute;
  top: 10px;
  left: 8px;
}

.drawer-hamburger-icon,
.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
  border-radius: 2px;
  width: 20px;
  height: 2px;
  -webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  background: var(--color-balck-1);
}

.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
  content: ' ';
  position: absolute;
}

.drawer-hamburger-icon:before {
  width: 15px;
  top: 5px;
  left: 5px;
}

.drawer-hamburger-icon:after {
  width: 10px;
  top: 10px;
  left: 10px;
}

@media screen and (min-width: 834px), print {
  .drawer-hamburger {
    border-radius: 10px;
    width: 80px;
    height: 80px;
    margin-right: 20px;
    top: 20px;
  }

  .drawer-hamburger-icon,
  .drawer-hamburger-icon:before,
  .drawer-hamburger-icon:after {
    width: 40px;
    height: 3px;
  }

  .drawer-hamburger-icon {
    top: 28px;
    left: 15px;
  }

  .drawer-hamburger-icon:before {
    width: 30px;
    top: 8px;
    left: 10px;
  }

  .drawer-hamburger-icon:after {
    width: 20px;
    top: 16px;
    left: 20px;
  }
}

.drawer-open .drawer-hamburger {
  width: 40px;
  height: 40px;
  /*開いた時のアイコンの背景*/
  background: var(--color-main);
  padding-right: 0;
}

.drawer-open .drawer-hamburger-icon,
.drawer-open .drawer-hamburger-icon:before,
.drawer-open .drawer-hamburger-icon:after {
  width: 20px;
  top: 2px;
  left: 4px;
}

.drawer-open .drawer-hamburger-icon {
  background-color: transparent;
}

.drawer-open .drawer-hamburger-icon:before,
.drawer-open .drawer-hamburger-icon:after {
  top: 14px;
  /*開いた時の×の色*/
  background-color: var(--color-balck-1);
}

@media screen and (min-width: 834px), print {
  .drawer-open .drawer-hamburger {
    width: 80px;
    height: 80px;
  }

  .drawer-open .drawer-hamburger-icon,
  .drawer-open .drawer-hamburger-icon:before,
  .drawer-open .drawer-hamburger-icon:after {
    width: 30px;
    top: 18px;
    left: 12px;
  }
}


.drawer-open .drawer-hamburger-icon:before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.drawer-open .drawer-hamburger-icon:after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.drawer-open .drawer-hamburger-text {
  display: none;
}


/*!------------------------------------*\
    accessibility
\*!------------------------------------*/

/*!
 * Only display content to screen readers
 * See: http://a11yproject.com/posts/how-to-hide-content
 */

.sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}

/*!
 * Use in conjunction with .sr-only to only display content when it's focused.
 * Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
 * Credit: HTML5 Boilerplate
 */

.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  overflow: visible;
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
}

/*!------------------------------------*\
    Container
\*!------------------------------------*/

.drawer-container {
  margin-right: auto;
  margin-left: auto;
}



/*****************************************
*
* フッタ
*
******************************************/


/* お問い合わせ --------------------------------*/
.footer-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  background-image: url('../../img/common/contact_back.png');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 65/34;
  width: 100%;
  max-width: 650px;
  height: auto;
  padding: calc(calc(40 / 375) * 100vw) 0;
  margin: 0 auto;
}

.footer-contact .heading,
.footer-contact .title {
  width: 100%;
}

.footer-contact .heading p,
.footer-contact .title p {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: bold;
}

.footer-contact .heading p {
  position: relative;
  display: inline-block;
}

.footer-contact .heading p::before {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/contact_headeing.svg');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 176/12;
  width: 100%;
  height: auto;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}

.footer-contact .title {
  margin-top: calc(calc(10 / 375) * 100vw);
}

.footer-contact .phone a {
  position: relative;
  color: var(--color-main);
  font-family: var(--font-en);
  font-size: calc(calc(25 / 375) * 100vw);
  font-weight: 600;
  padding-left: calc(calc(25 / 375) * 100vw);
}

.footer-contact .phone a::before {
  content: '';
  display: inline-block;
  background-image: url('../../img/common/icon_phone.svg');
  background-repeat: no-repeat;
  background-size: 100%;
  aspect-ratio: 30/32;
  width: calc(calc(20 / 375) * 100vw);
  height: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

@media screen and (min-width: 576px), print {
  .footer-contact {
    padding: calc(calc(60 / 576) * 100vw) 0;
  }

  .footer-contact .heading p,
  .footer-contact .title p {
    font-size: 1.2rem;
  }

  .footer-contact .title {
    margin-top: calc(calc(20 / 576) * 100vw);
  }

  .footer-contact .phone a {
    font-size: calc(calc(34 / 576) * 100vw);
    padding-left: calc(calc(32 / 576) * 100vw);
  }

  .footer-contact .phone a::before {
    width: calc(calc(26 / 576) * 100vw);
  }
}

@media screen and (min-width: 768px), print {

  .footer-contact .heading p,
  .footer-contact .title p {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 834px), print {
  .footer-contact {
    padding: 80px 0;
  }

  .footer-contact .heading p,
  .footer-contact .title p {
    font-size: 1.4rem;
  }

  .footer-contact .title {
    margin-top: 30px;
  }

  .footer-contact .phone a {
    font-size: 3rem;
    padding-left: 40px;
  }

  .footer-contact .phone a::before {
    width: 30px;
  }
}

/* コピーライト --------------------------------*/
.footer-copy {
  text-align: center;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: bold;
  margin-top: 20px;
  padding-bottom: 20px;
}

@media screen and (min-width: 834px), print {
  .footer-copy {
    font-size: 0.8rem;
    margin-top: 40px;
    padding-bottom: 40px;
  }
}


/*****************************************
*
* プリローダー
*
******************************************/

/* スクロール禁止用クラス */
body.is-loading {
  overflow: hidden !important;
  height: 100% !important;
}

/* プリローダーの外枠（オーバーレイ） */
#preloader-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;

  /* フェードアウトの設定 */
  opacity: 1;
  visibility: visible;
  transition: opacity 500ms ease, visibility 500ms ease;
}

/* 読み込み完了後にJSで付与されるクラス */
#preloader-overlay.is-hide {
  opacity: 0;
  visibility: hidden;
}

/* ローダー本体 */
.loader {
  color: #e94d61;
  font-size: 10px;
  margin: 100px auto;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  position: relative;
  text-indent: -9999em;
  -webkit-animation: load4 1.3s infinite linear;
  animation: load4 1.3s infinite linear;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}

@-webkit-keyframes load4 {

  0%,
  100% {
    box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
  }

  12.5% {
    box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }

  25% {
    box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }

  37.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }

  50% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }

  62.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
  }

  75% {
    box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
  }

  87.5% {
    box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
  }
}

@keyframes load4 {

  0%,
  100% {
    box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;
  }

  12.5% {
    box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }

  25% {
    box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0, 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;
  }

  37.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em, 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }

  50% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em, 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;
  }

  62.5% {
    box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;
  }

  75% {
    box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;
  }

  87.5% {
    box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em, 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;
  }
}



/*****************************************
*
* 印刷用
*
******************************************/

@media print {
  body {
    width: 1400px;
    transform: scale(0.8);
    transform-origin: 0 0;
    -webkit-print-color-adjust: exact;
  }

  /* FireFoxテーブル印刷バグ回避 */
  _:-ms-lang(x)::-ms-backdrop, .wrapper {
    overflow: auto;
    display: table;
  }


  /* アニメーション無効 */
  [class^="animation"], [class*=" animation"],
  footer {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}