@charset "UTF-8";

/*
 * StyleName: common.css
 * Version: 3.0.8
 */
/*!
 * normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css
 */
button,
hr,
input {
   overflow: visible;
}

progress,
sub,
sup {
   vertical-align: baseline;
}

[type=checkbox],
[type=radio],
legend {
   box-sizing: border-box;
   padding: 0;
}

html {
   line-height: 1.15;
   -webkit-text-size-adjust: 100%;
}

body {
   margin: 0;
}

h1 {
   font-size: 2em;
   margin: 0.67em 0;
}

hr {
   box-sizing: content-box;
   height: 0;
}

code,
kbd,
pre,
samp {
   font-family: monospace, monospace;
   font-size: 1em;
}

a {
   background-color: transparent;
}

abbr[title] {
   border-bottom: none;
   text-decoration: underline;
   text-decoration: underline dotted;
}

b {
   font-weight: bolder;
}

sub,
sup {
   font-size: 75%;
   line-height: 0;
   position: relative;
}

sub {
   bottom: -0.25em;
}

sup {
   top: -0.5em;
}

img {
   border-style: none;
}

button,
input,
optgroup,
select,
textarea {
   font-family: inherit;
   font-size: 100%;
   line-height: 1.15;
   margin: 0;
}

button,
select {
   text-transform: none;
}

[type=button],
[type=reset],
[type=submit],
button {
   -webkit-appearance: button;
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
   border-style: none;
   padding: 0;
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
   outline: ButtonText dotted 1px;
}

fieldset {
   padding: 0.35em 0.75em 0.625em;
}

legend {
   color: inherit;
   display: table;
   max-width: 100%;
   white-space: normal;
}

textarea {
   overflow: auto;
}

[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-decoration {
   -webkit-appearance: none;
}

::-webkit-file-upload-button {
   -webkit-appearance: button;
   font: inherit;
}

details {
   display: block;
}

summary {
   display: list-item;
}

[hidden],
template {
   display: none;
}

/*=============================================
 * reset 
 *=============================================*/
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,
main,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
   margin: 0;
   padding: 0;
   font-size: 100%;
   font: inherit;
   vertical-align: baseline;
   outline: none;
   border: 0;
}

img {
   border: 0;
   -moz-transform: translateZ(0);
   -webkit-transform: translateZ(0);
   transform: translateZ(0);
}

img,
input {
   vertical-align: middle;
}

html h1,
html h2,
html h3,
html h4,
html h5,
html h6,
html address {
   margin: 0;
   padding: 0;
   font-style: normal;
   font-weight: normal;
   border: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
   display: block;
}

ol,
ul {
   list-style: none;
}

blockquote,
q {
   quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
   content: "";
   content: none;
}

table {
   border-spacing: 0;
   border-collapse: collapse;
}

table,
caption,
th,
td {
   font-style: normal;
   font-weight: normal;
}

hr {
   margin: 0;
   padding: 0;
}

iframe {
   margin: 0;
   padding: 0;
   border: 0;
}

form,
fieldset,
input,
button,
select,
optgroup,
option,
textarea,
label,
legend {
   margin: 0;
   padding: 0;
   outline: none;
}

span,
em,
strong,
dfn,
code,
samp,
kbd,
var,
cite,
abbr,
acronym,
q,
br,
ins,
del,
a,
img,
object {
   margin: 0;
   padding: 0;
   font-style: normal;
   font-weight: inherit;
   border: 0;
}

/*=============================================
 * reset - custom
 *=============================================*/
:before,
:after {
   pointer-events: none;
}

* {
   /* fix font boosting on mobile Chrome */
   max-height: 1000000px;
}

*:first-child+html img,
* html img {
   vertical-align: top;
}

html,
body {
   line-height: 1;
   word-spacing: normal;
   min-height: 100%;
   text-size-adjust: 100%;
   -moz-text-size-adjust: 100%;
   -webkit-text-size-adjust: 100%;
   overflow-scrolling: touch;
   -moz-overflow-scrolling: touch;
   -webkit-overflow-scrolling: touch;
   /* -webkit-font-smoothing: antialiased; */
}

html.break-jump,
.break-jump body {
   /* fixed for screen jumping bug on iOS */
   margin: auto;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   overflow: auto;
}

input,
button,
select,
optgroup,
option,
textarea,
label {
   box-sizing: border-box;
   -moz-box-sizing: border-box;
   -webkit-box-sizing: border-box;
}

select,
button,
input:button,
input:submit,
input:reset {
   cursor: pointer;
}

strong {
   font-weight: 700;
}

em {
   font-style: italic;
}

small {
   font-size: smaller;
}

del {
   text-decoration: line-through;
}

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

a:hover {
   text-decoration: underline;
}

a:focus,
a:active {
   outline: none;
   -moz-outline-style: none;
   ie-dummy: expression(this.hideFocus=true);
}

a[x-apple-data-detectors] {
   color: inherit !important;
   text-decoration: none !important;
   font-size: inherit !important;
   font-family: inherit !important;
   font-weight: inherit !important;
   line-height: inherit !important;
}

/* -- -- */
code {
   border: 0 !important;
}

a {
   transition: all 0.3s;
}

a:hover {
   opacity: 0.6;
   text-decoration: none;
}

a[href^="tel:"] {
   pointer-events: none;
   cursor: text;
}

@media screen and (max-width: 767px) {
   a[href^="tel:"] {
      pointer-events: auto;
      cursor: pointer;
   }
}

.pc {
   display: block;
}

.ipd {
   display: none;
}

.sp {
   display: none;
}

@media screen and (min-width: 768px) and (max-width: 991px) {
   .ipd {
      display: block;
   }
}

@media screen and (max-width: 767px) {
   .pc {
      display: none;
   }

   .sp {
      display: block;
   }
}

/*=============================================
 * lazyload
 *=============================================*/
img:not([src]) {
   visibility: hidden;
}

img[data-src],
img[data-srcset] {
   display: block;
   min-height: 1px;
}

.i-wrapper {
   width: 100%;
   height: 0;
   padding-bottom: 66.67%;
   /* You define this doing height / width * 100% */
   position: relative;
}

.i-wrapper img {
   width: 100%;
   /*height: auto;*/
   position: absolute;
}

/*=============================================
 * .clearfix
 *=============================================*/
.nav-fl,
.nav-fr,
.clearfix {
   zoom: 1 !important;
}

.nav-fl:after,
.nav-fr:after,
.clearfix:after {
   content: "." !important;
   clear: both !important;
   display: block !important;
   height: 0 !important;
   visibility: hidden !important;
}

/*=============================================
 * nav - float/inline
 *=============================================*/
.nav-fl>* {
   float: left;
}

.nav-fr>* {
   float: right;
}

.nav-inline>* {
   display: inline-block;
}

/*=============================================
 * fonts
 *=============================================*/
.fnt-mincho {
   font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
   font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

.fnt-aoboshiOne {
   font-family: 'Aoboshi One', serif;
   font-weight: 400;
}

/*=============================================
 * text vertical
 *=============================================*/
.txt-vertical {
   cursor: vertical-text;
   writing-mode: vertical-rl;
   -o-writing-mode: vertical-rl;
   -ms-writing-mode: vertical-rl;
   -ms-writing-mode: tb-rl;
   -moz-writing-mode: vertical-rl;
   -webkit-writing-mode: vertical-rl;
   text-orientation: upright;
   word-wrap: break-word;
}

.txt-vertical .int {
   writing-mode: lr-tb;
   -o-writing-mode: horizontal-tb;
   -ms-writing-mode: horizontal-tb;
   -ms-writing-mode: lr-tb;
   -moz-writing-mode: horizontal-tb;
   -webkit-writing-mode: horizontal-tb;
   display: inline-block;
   text-align: center;
   line-height: 1.5em;
}

.txt-normal .int {
   height: 1.1em;
}

.txt-vertical-x>* {
   writing-mode: rl-tb;
   -o-writing-mode: vertical-tb;
   -ms-writing-mode: vertical-tb;
   -ms-writing-mode: rl-tb;
   -moz-writing-mode: vertical-tb;
   -webkit-writing-mode: vertical-tb;
   transform: rotate(90deg);
   -o-transform: rotate(90deg);
   -ms-transform: rotate(90deg);
   -moz-transform: rotate(90deg);
   -webkit-transform: rotate(90deg);
   display: inline-block;
   white-space: nowrap;
   word-wrap: break-word;
   width: 1px;
   line-height: 1;
}

.txt-vertical .txt-latin {
   cursor: vertical-text;
   direction: rtl;
   writing-mode: vertical-rl;
   -o-writing-mode: vertical-rl;
   -ms-writing-mode: vertical-rl;
   -ms-writing-mode: tb-rl;
   -moz-writing-mode: vertical-rl;
   -webkit-writing-mode: vertical-rl;
   text-orientation: sideways-right;
   -o-text-orientation: sideways-right;
   -ms-text-orientation: upright;
   -ms-text-orientation: sideways-right;
   -moz-text-orientation: sideways-right;
   -webkit-text-orientation: sideways-right;
   letter-spacing: .25em;
}

@media only screen and (min-width: 992px) {
   .txt-vertical-pc {
      cursor: vertical-text;
      writing-mode: vertical-rl;
      -o-writing-mode: vertical-rl;
      -ms-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      -moz-writing-mode: vertical-rl;
      -webkit-writing-mode: vertical-rl;
      text-orientation: upright;
      word-wrap: break-word;
   }

   .txt-vertical-pc .txt-latin {
      cursor: vertical-text;
      direction: rtl;
      writing-mode: vertical-rl;
      -o-writing-mode: vertical-rl;
      -ms-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
      -moz-writing-mode: vertical-rl;
      -webkit-writing-mode: vertical-rl;
      text-orientation: sideways-right;
      -o-text-orientation: sideways-right;
      -ms-text-orientation: upright;
      -ms-text-orientation: sideways-right;
      -moz-text-orientation: sideways-right;
      -webkit-text-orientation: sideways-right;
      letter-spacing: 0em;
   }
}

/*=============================================
 * .bg-parallax
 *=============================================*/
.bg-parallax {
   background-size: cover;
   background-repeat: no-repeat;
   background-position: top center;
   background-attachment: fixed;
   width: 100%;
   min-height: 600px;
   position: relative;
}

.img_parallax {
   display: none;
}

@media only screen and (max-width: 1080px) {
   .bg-parallax {
      background-image: inherit !important;
   }

   .img_parallax {
      display: block;
      clip: rect(0, auto, auto, 0);
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
   }

   .img_parallax img {
      width: 100% !important;
      height: 100vh !important;
      position: fixed;
      top: 0;
      left: 0;
      padding: 0;
      margin: 0;
      object-fit: cover;
      z-index: 0;
      transform: translateZ(0) !important;
   }
}

/*=============================================
 * .slide-fade
 *=============================================*/
.slideParent {
   position: relative;
}

.slide-fade {
   position: relative;
}

.slide-fade>* {
   margin: auto;
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
}

.slide-btn {
   pointer-events: none;
   margin: auto;
   width: 100%;
   position: relative;
   z-index: 1;
}

.slide-btn .slide-next,
.slide-btn .slide-prev {
   pointer-events: visible;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
}

.slide-btn .slide-next {
   right: 0;
}

.slide-btn .slide-prev {
   left: 0;
}

.slide-btn .slide-next img,
.slide-btn .slide-prev img {
   cursor: pointer;
   opacity: 1;
   transition: opacity .3s ease;
   -moz-transition: opacity .3s ease;
   -webkit-transition: opacity .3s ease;
}

.slide-btn .slide-next img:hover,
.slide-btn .slide-prev img:hover {
   opacity: .8;
}

.slide-page {
   margin: 0 auto;
   text-align: center;
}

.slide-page>* {
   cursor: pointer;
   display: inline-block;
   margin: 0 5px;
   background: #C0C0C0;
   width: 15px;
   height: 15px;
   -moz-border-radius: 100%;
   -webkit-border-radius: 100%;
   border-radius: 100%;
   transition: all .3s ease;
   -moz-transition: all .3s ease;
   -webkit-transition: all .3s ease;
}

.slide-page>*:hover,
.slide-page>*.active {
   background: #8D8D8D;
}

/*=============================================
 * .nav-fixed
 *=============================================*/
.nav-fixed.fixed {
   position: fixed;
   left: 0;
   right: 0;
   text-align: center;
}

/*=============================================
 * .wrap
 *=============================================*/
.wrap {
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
   box-sizing: border-box;
   position: relative;
}

.wr_1400 {
   max-width: 1400px;
}

@media screen and (max-width: 1440px) {
   .wrap {
      max-width: 1140px;
   }

   .wr_1400 {
      max-width: 1140px;
   }
}

@media screen and (max-width: 1200px) {
   .wrap {
      max-width: 960px;
   }

   .wr_1400 {
      max-width: 960px;
   }
}

@media screen and (max-width: 991px) {
   .wrap {
      max-width: 720px;
   }

   .wr_1400 {
      max-width: 720px;
   }
}

@media screen and (max-width: 767px) {
   .wrap {
      max-width: 100%;
      padding: 0 20px;
   }

   .wr_1400 {
      max-width: 100%;
   }
}

.container {
   width: 100%;
   margin-right: auto;
   margin-left: auto;
}

@media (min-width: 576px) {
   .container {
      max-width: 540px;
   }
}

@media (min-width: 768px) {
   .container {
      max-width: 720px;
   }
}

@media (min-width: 992px) {
   .container {
      max-width: 960px;
   }
}

@media (min-width: 1200px) {
   .container {
      max-width: 1140px;
   }
}

.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl {
   width: 100%;
   padding-right: 15px;
   padding-left: 15px;
   margin-right: auto;
   margin-left: auto;
}

@media (min-width: 576px) {
   .container {
      max-width: 540px;
   }
}

@media (min-width: 768px) {
   .container {
      max-width: 720px;
   }
}

@media (min-width: 992px) {
   .container {
      max-width: 960px;
   }
}

@media (min-width: 1200px) {
   .container {
      max-width: 1140px;
   }
}

/*=============================================
 * .tabs-switch
 *=============================================*/
.tabs-switch .tab-link>* {
   cursor: pointer;
   display: inline-block;
}

.tabs-switch .tab-link>* a {
   pointer-events: none;
}

.tabs-switch .tab-link.link-over>* {
   position: relative;
}

.tabs-switch .tab-link.link-over>*>img+img {
   margin: auto;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
}

.tabs-switch .tab-link.link-over>*>img+img,
.tabs-switch .tab-link.link-over>*:hover>img,
.tabs-switch .tab-link.link-over>*.active>img {
   opacity: 0;
}

.tabs-switch .tab-link.link-over>*:hover>img+img,
.tabs-switch .tab-link.link-over>*.active>img+img {
   opacity: 1;
}

.tabs-switch[data=fade] .tab-content {
   min-height: 100px;
   position: relative;
}

.tabs-switch .tab-content>* {
   display: none;
}

.tabs-switch[data=fade] .tab-content>* {
   margin: auto;
   width: 100%;
   height: 100%;
   /*
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  */
}

/*=============================================
 * .toggle
 *=============================================*/
.toggle .toggle-link {
   cursor: pointer;
   position: relative;
}

.toggle .toggle-main {
   display: none;
}

.toggle.active .toggle-main {
   display: block;
}

/*=============================================
 * .pagination
 *=============================================*/
.pagination>.page-content>* {
   display: none;
}

.pagination>.page-content>*.active {
   display: block;
}

.pagination>.page-link {
   text-align: center;
}

.pagination>.page-link li {
   cursor: pointer;
   display: inline-block;
}

.pagination>.page-link .page-item.active {
   font-weight: 600;
}

.pagination>.page-link .page-ellipse,
.pagination>.page-link .page-first.disabled,
.pagination>.page-link .page-last.disabled,
.pagination>.page-link .page-next.disabled,
.pagination>.page-link .page-prev.disabled {
   cursor: not-allowed;
}

/*=============================================
 * .noanimated
 *=============================================*/
.noanimated .wow {
   visibility: visible !important;
   animation-duration: none !important;
   -moz-animation-duration: none !important;
   -webkit-animation-duration: none !important;
   animation-fill-mode: none !important;
   -moz-animation-fill-mode: none !important;
   -webkit-animation-fill-mode: none !important;
}

/*=============================================
 * .rss
 *=============================================*/
.rss {
   word-wrap: break-word;
   word-break: break-word;
}

/*=============================================
 * #pagetop
 *=============================================*/
#pagetop {
   transition: opacity .3s ease, visibility .3s ease;
   -moz-transition: opacity .3s ease, visibility .3s ease;
   -webkit-transition: opacity .3s ease, visibility .3s ease;
}

#pagetop.in-scroll {
   cursor: not-allowed;
}

#pagetop>* {
   opacity: 1;
   transition: opacity .3s ease;
   -moz-transition: opacity .3s ease;
   -webkit-transition: opacity .3s ease;
}

#pagetop>*:hover {
   cursor: pointer;
   opacity: .8;
}

/*=============================================
 * <header>
 *=============================================*/
/*=============================================
 * <section>
 *=============================================*/
section {
   clear: both;
   margin: auto;
   width: 100%;
   position: relative;
}

/*=============================================
 * <footer>
 *=============================================*/
footer {
   position: relative;
}

footer a {
   color: inherit;
}

address {
   text-align: center;
}

/*=============================================
 * #socialbuttons
 *=============================================*/
#socialbuttons {
   font: unset;
   line-height: normal;
   text-align: center;
   display: -webkit-flex;
   display: -moz-flex;
   display: -ms-flex;
   display: -o-flex;
   display: flex;
   justify-content: center;
   align-items: center;
}

#socialbuttons>* {
   height: 20px;
   margin: 0 3px;
}

.social-google {
   display: none !important;
}

/*=============================================
 * debugger
 *=============================================*/
#fc-console {
   opacity: 0;
   margin: auto;
   color: #F0F0F0;
   font-size: 14px;
   font-family: Consolas, "Source Code Pro", "Lucida Grande", monospace, sans-serif;
   background: rgba(60, 60, 60, 0.9);
   width: 90%;
   max-width: 1200px;
   border: 1px solid rgba(255, 255, 255, 0.05);
   position: fixed;
   top: 100%;
   left: 0;
   right: 0;
   bottom: 0;
   box-shadow: 5px 10px 10px rgba(0, 0, 0, 0.5);
   -moz-box-shadow: 5px 10px 10px rgba(0, 0, 0, 0.5);
   -webkit-box-shadow: 5px 10px 10px rgba(0, 0, 0, 0.5);
   transition: all .3s ease;
   -moz-transition: all .3s ease;
   -webkit-transition: all .3s ease;
   visibility: hidden;
   z-index: 9999999999999999999999999999999;
}

html.fc-debugger #fc-console {
   opacity: 1;
   visibility: visible;
}

#fc-console.active {
   top: initial;
}

#fc-console * {
   color: #EFEFEF;
   font-size: 14px;
   text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
   line-height: 20px;
}

#fc-console .console-title {
   cursor: pointer;
   margin: auto;
   padding: 10px 20px;
   color: #202020;
   font-size: 20px;
   font-weight: 600;
   font-variant: small-caps;
   text-shadow: none;
   line-height: 22px;
   background: rgba(215, 215, 215, 0.8);
   border: 1px solid rgba(255, 255, 255, 0.05);
   position: absolute;
   top: -45px;
   left: -1px;
   right: -1px;
   transition: all .3s ease;
   -moz-transition: all .3s ease;
   -webkit-transition: all .3s ease;
}

#fc-console .console-title[data-total]:before {
   content: attr(data-total);
   margin-left: -10px;
   margin-right: 10px;
   padding: 3px 10px;
   color: #FEFEFE;
   font-size: 12px;
   text-align: center;
   text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
   line-height: 15px;
   background: #D82323;
   height: 15px;
   border-radius: 10px;
   -moz-border-radius: 10px;
   -webkit-border-radius: 15px;
   position: relative;
   top: -3px;
}

#fc-console .console-title:hover {
   color: #303030;
   background: rgba(215, 215, 215, 0.9);
}

#fc-console .console-clear {
   cursor: pointer;
   margin: auto;
   padding: 5px 10px;
   font-size: 12px;
   line-height: 15px;
   background: #607D8B;
   border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
   position: absolute;
   top: -35px;
   right: 7px;
   transition: all .3s ease;
   -moz-transition: all .3s ease;
   -webkit-transition: all .3s ease;
}

#fc-console .console-clear:hover {
   background: #4C626D;
}

#fc-console .console-main {
   padding: 10px;
   max-height: 350px;
   max-height: 35vh;
   overflow: hidden;
   overflow-y: auto;
}

#fc-console .console-main a {
   color: #3A92C8;
   text-decoration: none;
}

#fc-console .console-main a:hover {
   text-decoration: underline;
}

#fc-console .console-block {
   padding: 10px;
   position: relative;
}

#fc-console .console-block[data-count]:before {
   content: attr(data-count);
   margin: auto;
   padding: 3px 10px;
   color: #FEFEFE;
   font-size: 12px;
   text-align: center;
   line-height: 15px;
   background: #D82323;
   height: 15px;
   border-radius: 10px;
   -moz-border-radius: 10px;
   -webkit-border-radius: 15px;
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
}

#fc-console .console-block+.console-block:after {
   content: "";
   margin: auto;
   background: rgba(0, 0, 0, 0.1);
   height: 1px;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   box-shadow: 0 1px rgba(255, 255, 255, 0.05);
   -moz-box-shadow: 0 1px rgba(255, 255, 255, 0.05);
   -webkit-box-shadow: 0 1px rgba(255, 255, 255, 0.05);
}

#fc-console .console-block>* {
   margin: 5px 0;
}

#fc-console .console-message {
   padding-left: 20px;
   color: #F44336;
   font-style: italic;
   position: relative;
}

#fc-console .console-message:before {
   content: "#";
   color: #F44336;
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
}

#fc-console .console-stacktrace {
   margin-left: 20px;
   padding-left: 20px;
   box-shadow: inset 2px 0 rgba(255, 255, 255, 0.1);
   -moz-box-shadow: inset 2px 0 rgba(255, 255, 255, 0.1);
   -webkit-box-shadow: inset 2px 0 rgba(255, 255, 255, 0.1);
}

#fc-console .console-stacktrace>* {
   font-size: 13px;
}

#fc-console .console-error {
   margin-left: 18px;
   padding-left: 22px;
   color: #CFCFCF;
   position: relative;
}

#fc-console .console-error:before {
   content: "$";
   position: absolute;
   top: 0;
   left: 0;
   bottom: 0;
}

/*=============================================
 * .copy - clipboard
 *=============================================*/
.copy {
   cursor: pointer;
   touch-action: manipulation;
   /* fixed for iOS */
   transition: all .3s ease;
   -moz-transition: all .3s ease;
   -webkit-transition: all .3s ease;
}

.copy:hover {
   opacity: .8;
}

/*=============================================
 * horizontal & vertical align
 *=============================================*/
.x-full {
   margin: auto;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
}

.x-center {
   text-align: center;
   position: relative;
   left: 50%;
   transform: translateX(-50%);
   -moz-transform: translateX(-50%);
   -webkit-transform: translateX(-50%);
}

.y-center {
   position: relative;
   top: 50%;
   transform: translateY(-50%);
   -moz-transform: translateY(-50%);
   -webkit-transform: translateY(-50%);
}

.z-center {
   margin-right: -50%;
   text-align: center;
   position: relative;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   -moz-transform: translate(-50%, -50%);
   -webkit-transform: translate(-50%, -50%);
}

/*=============================================
 * .vh-fix
 *=============================================*/
/*=============================================
 * .full-height - 100vh
 *
 * this bug not displaying 100vh correctly
 * fixed on iOS/Chrome
 *=============================================*/
.full-height {
   height: 100vh;
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) {
   .full-height {
      height: 768px;
   }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) {
   .full-height {
      height: 1024px;
   }
}

@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2) {
   .full-height {
      height: 320px;
   }
}

@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2) {
   .full-height {
      height: 568px;
   }
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) {
   .full-height {
      height: 320px;
   }
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
   .full-height {
      height: 480px;
   }
}

/*=============================================
 * customs
 *=============================================*/
.fl {
   float: left;
}

.fr {
   float: right;
}

.fn {
   float: none;
}

/*=============================================
 * RESPONSIVE
 *=============================================*/
img {
   width: auto;
   max-width: 100%;
   height: auto;
}

@media only screen and (max-width: 768px) {
   html.responsive #socialbuttons .social-line {
      width: 92px;
      overflow: hidden;
   }
}

@media only screen and (max-width: 320px) {
   html.responsive {
      min-width: 320px !important;
   }
}

@-moz-document url-prefix() {
   .txt-vertical .txt-latin {
      display: inline-block;
      vertical-align: middle;
      transform: rotate(180deg);
   }
}

/*=============================================
 * hamburger
 *=============================================*/
.hamburger {
   display: none;
   width: 58px;
   height: 50px;
   background-color: #5F3F25;
   color: #fff;
   position: relative;
   z-index: 1;
   cursor: pointer;
   border-radius: 0 0 10px 10px;
}

.hamburger span {
   display: block;
   width: 28px;
   height: 2px;
   background: #fff;
   transition: all 0.3s ease;
   -webkit-transition: all 0.3s ease;
   -moz-transition: all 0.3s ease;
   position: absolute;
   top: calc(50% - 1px);
   left: calc(50% - 14px);
}

.hamburger span:before,
.hamburger span:after {
   content: "";
   position: absolute;
   left: 0;
   width: 28px;
   height: 2px;
   background: #fff;
   transition: all 0.3s ease;
   -webkit-transition: all 0.3s ease;
   -moz-transition: all 0.3s ease;
}

.hamburger span:before {
   top: -10px;
}

.hamburger span:after {
   top: 10px;
}

.hamburger.is-active span {
   background-color: transparent;
}

.hamburger.is-active span:before {
   top: 0;
   transform: rotate(45deg);
   -moz-transform: rotate(45deg);
   -webkit-transform: rotate(45deg);
}

.hamburger.is-active span:after {
   top: 0;
   transform: rotate(-45deg);
   -moz-transform: rotate(-45deg);
   -webkit-transform: rotate(-45deg);
}

/*=============================================
 * Custom
 *=============================================*/
/* -- heading -- */
.h2 {
   font-weight: 700;
   font-size: 22px;
   letter-spacing: 0.1em;
   line-height: 32px;
   text-align: center;
   position: relative;
}

.h2 span.en {
   display: block;
   font-family: 'Aoboshi One', serif;
   font-weight: 400;
   font-size: 50px;
   letter-spacing: 0.2em;
   line-height: 67px;
   padding-bottom: 10px;
}

.h2 small.en {
   display: block;
   color: #41A5C5;
   font-family: 'Aoboshi One', serif;
   font-weight: 400;
   font-size: 20px;
   letter-spacing: 0em;
   line-height: 30px;
   padding-bottom: 5px;
}

.h2 .jp {
   display: block;
   color: #5F3F25;
   font-weight: 700;
   font-size: 36px;
   line-height: 60px;
   letter-spacing: 0;
}

.h2 i {
   display: block;
   background: url("../img/common/h2-deco.png") no-repeat center top/cover;
   width: 25px;
   height: 50px;
   margin: 0 auto 4px;
}

.h-20 {
   font-weight: 500;
   font-size: 20px;
   letter-spacing: 0;
   line-height: 30px;
}

.h-22 {
   font-weight: 700;
   font-size: 22px;
   letter-spacing: 0;
   line-height: 32px;
}

.h-24 {
   font-weight: 700;
   font-size: 24px;
   letter-spacing: 0.05em;
   line-height: 36px;
}

.h-26 {
   font-weight: 700;
   font-size: 26px;
   letter-spacing: 0.05em;
   line-height: 36px;
}

.h-28 {
   font-weight: 700;
   font-size: 28px;
   letter-spacing: 0em;
   line-height: 40px;
}

.h-28._icon {
   max-width: 1040px;
   background-color: #fff;
   border: 5px solid #41A5C5;
   border-radius: 100px;
   margin: 0 auto;
   padding: 10px 20px 10px 80px;
   position: relative;
}

.h-28._icon i {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 70px;
   border-radius: 100px 0 0 100px;
   background-color: #41A5C5;
   color: #ffff;
   font-family: 'Aoboshi One', serif;
   font-weight: 400;
   font-size: 20px;
   line-height: 25px;
   text-align: center;
   position: absolute;
   top: -5px;
   bottom: -5px;
   left: -5px;
}

.h-28._icon i img {
   width: 30px;
}

.h-32 {
   font-weight: 700;
   font-size: 32px;
   letter-spacing: 0.05em;
   line-height: 46px;
}

.h-36 {
   font-weight: 600;
   font-size: 36px;
   letter-spacing: 0em;
   line-height: 52px;
}

.h2-bg {
   background-color: #fff;
   color: #000;
   letter-spacing: 0.2em;
   padding: 20px 165px;
   position: relative;
}

@media screen and (max-width: 767px) {
   .h2 {
      font-size: 17px;
      line-height: 25px;
   }

   .h2 span.en {
      font-size: 36px;
      line-height: 48px;
   }

   .h2 small.en {
      font-size: 15px;
      line-height: 22px;
      padding-bottom: 4px;
   }

   .h2 .jp {
      font-size: 20px;
      line-height: 20px;
   }

   .h-20 {
      font-size: 16px;
   }

   .h-22,
   .h-24 {
      font-size: 18px;
      line-height: 30px;
   }

   .h-26 {
      font-size: 20px;
      line-height: 30px;
   }

   .h-28 {
      font-size: 22px;
      line-height: 32px;
   }

   .h-32 {
      font-size: 23px;
      line-height: 32px;
   }

   .h-36 {
      font-size: 26px;
      line-height: 36px;
   }

   .h2-bg {
      padding: 19px 20px 19px 70px;
   }
}

/* button */
.button {
   position: relative;
}

.button a {
   display: inline-block;
   width: 100%;
   max-width: 280px;
   background-color: #FCEA73;
   color: #5F3F25;
   border-radius: 6px;
   font-weight: 700;
   font-size: 16px;
   letter-spacing: 0em;
   line-height: 24px;
   text-align: center;
   box-sizing: border-box;
   border-radius: 10px;
   margin-bottom: 10px;
   padding: 14px 0;
   box-shadow: 0 6px 0 #5F3F25;
   position: relative;
   z-index: 1;
}

.button a:after {
   content: '\f0a9';
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
   display: var(--fa-display, inline-block);
   font-style: normal;
   font-variant: normal;
   line-height: 1;
   text-rendering: auto;
   font-family: "Font Awesome 6 Free";
   font-weight: 900;
   font-size: 18px;
   position: absolute;
   top: 50%;
   right: 15px;
   transform: translateY(-50%);
   transition: all 0.3s;
}

.button a:hover {
   opacity: 1;
   transform: translateY(6px);
   box-shadow: none;
}

@media screen and (max-width: 767px) {
   .button {
      text-align: center;
   }
}

/* -- -- */
.txt-udl {
   text-decoration: underline;
}

a.txt-udl:hover {
   text-decoration: none;
}

.txt-c {
   text-align: center;
}

.txt-j {
   text-align: justify;
}

.txt-r {
   text-align: right;
}

.cl-red {
   color: #5D2200;
}

.cl-blue {
   color: #41A5C5;
}

.cl-yellow {
   color: #F8CE23;
}

.cl-brown {
   color: #5F3F25;
}

.udl01 {
   background-image: linear-gradient(#AE0615, #AE0615);
   background-size: 100% 17px;
   background-repeat: no-repeat;
   background-position: left bottom;
}

.udl02 {
   background-image: linear-gradient(#002A7D, #002A7D);
   background-size: 100% 17px;
   background-repeat: no-repeat;
   background-position: left bottom;
}

.fw-smb {
   font-weight: 600;
}

.fw-b {
   font-weight: 700;
}

.fw-black {
   font-weight: 900;
}

.bdra-10 {
   border-radius: 10px;
}

.bdra-20 {
   border-radius: 20px;
}

.img_shadow {
   box-shadow: 0 3px 20px rgba(0, 0, 0, 0.05);
}

/* -- --*/
.w600 {
   width: 100%;
   max-width: 600px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

.w800 {
   width: 100%;
   max-width: 800px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

.w900 {
   width: 100%;
   max-width: 900px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

.w1000 {
   width: 100%;
   max-width: 1000px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

.w1040 {
   width: 100%;
   max-width: 1040px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

.w1100 {
   width: 100%;
   max-width: 1100px;
   box-sizing: border-box;
   margin: 0 auto;
   position: relative;
}

/* -- --*/
.section_pd {
   padding: 80px 0;
}

@media screen and (max-width: 767px) {
   .section_pd {
      padding: 50px 0;
   }
}

/* -- --*/
.bg-cl01 {
   background-color: #EBF6F6;
}

.bg-cl02 {
   background-color: #F3F6EB;
}

.bg-cl03 {
   background-color: #31BCBC;
}

/* -- -- */
.img-zoom {
   display: block;
   overflow: hidden;
}

.img-zoom>* {
   transform: scale(1, 1);
   transition: all 0.3s ease;
}

.img-zoom:hover>* {
   transform: scale(1.05, 1.05);
}

/* -- -- */
.effect-bnr a {
   display: block;
   background-color: #030c17;
   position: relative;
}

.effect-bnr a:after {
   content: '';
   position: absolute;
   top: 30px;
   right: 30px;
   bottom: 30px;
   left: 30px;
   border: 1px solid #fff;
   box-shadow: 0 0 0 30px rgba(255, 255, 255, 0.1);
   opacity: 0;
   -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
   transition: opacity 0.35s, transform 0.35s;
   -webkit-transform: scale3d(1.1, 1.1, 1);
   transform: scale3d(1.1, 1.1, 1);
}

.effect-bnr a:hover {
   opacity: 1;
}

.effect-bnr a:hover:after {
   opacity: 1;
   -webkit-transform: scale3d(1, 1, 1);
   transform: scale3d(1, 1, 1);
}

.effect-bnr a:hover img {
   opacity: 0.3 !important;
}

/* -- -- */
.box-img {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 50px;
}

.box-img .photo {
   width: 700px;
}

.box-img .col {
   width: 650px;
   box-sizing: border-box;
   padding: 0px 0;
}

.box-img .no {
   font-weight: 700;
   font-size: 42px;
   letter-spacing: 0.05em;
   line-height: 60px;
   padding-bottom: 5px;
}

.box-img h3 {
   padding-bottom: 20px;
   position: relative;
}

.box-img h3:before {
   content: '';
   width: 60px;
   border-bottom: 2px solid #016B63;
   position: absolute;
   bottom: 0;
   left: 0;
}

.box-img .txt {
   padding-top: 30px;
}

.box-img .button {
   padding-top: 30px;
}

.box-img.img_r {
   flex-direction: row-reverse;
}

@media screen and (max-width: 1440px) {
   .box-img {
      align-items: flex-start;
      gap: 5%;
   }

   .box-img .photo {
      width: 50%;
   }

   .box-img .col {
      width: 45%;
      padding: 50px;
   }
}

@media screen and (max-width: 991px) {
   .box-img {
      gap: 20px;
   }

   .box-img .photo {
      width: 100%;
   }

   .box-img .col {
      width: 100%;
      padding: 30px 20px;
   }

   .box-img.img_r {
      flex-direction: row;
   }
}

@media screen and (max-width: 767px) {
   .box-img .photo {
      width: 100%;
   }

   .box-img .col {
      width: 100%;
   }

   .box-img .no {
      font-size: 40px;
      line-height: 1;
   }

   .box-img .txt {
      padding-top: 15px;
   }

   .box-img .button {
      padding-top: 15px;
   }
}

/* -- --*/
.tb-style dl {
   display: table;
   width: 100%;
   box-sizing: border-box;
   position: relative;
   word-wrap: break-all;
   word-break: break-all;
}

.tb-style dl+dl {
   padding-top: 10px;
}

.tb-style dl>* {
   display: table-cell;
   vertical-align: top;
   border: 1px solid #ACE3DD;
   padding: 20px;
}

.tb-style dl dt {
   width: 300px;
   box-sizing: border-box;
   background-color: #EBF6F6;
}

.tb-style dl dd {
   border-left: 0;
}

.tb-style dl dd p {
   padding-bottom: 20px;
}

.tb-style dl dd p:last-child {
   padding-bottom: 0;
}

@media screen and (max-width: 767px) {
   .tb-style dl>* {
      padding: 10px;
   }

   .tb-style dl dt {
      width: 100px;
      text-align: left;
   }

   .tb-style dl dd p {
      padding-bottom: 20px;
   }

   .tb-style dl dd p:last-child {
      padding-bottom: 0;
   }
}

/* -- -- */
.swiper-container {
   overflow: hidden;
   position: relative;
}

.swiper-fade .swiper-slide>* {
   opacity: 0;
}

.swiper-fade .swiper-slide-active>* {
   opacity: 1;
}

/* -- --*/
.box-style {
   background-color: #fff;
   border-radius: 10px;
   border: 4px solid #003D7E;
   padding: 40px 40px;
}

@media screen and (max-width: 767px) {
   .box-style {
      padding: 20px 10px;
   }
}

/* -- --*/
.table_price {
   width: 100%;
   max-width: 450px;
   background-color: #fff;
   border: 3px solid #31BCBC;
   box-sizing: border-box;
   margin-top: 36px;
   padding: 32px 30px 24px;
   position: relative;
}

.table_price h4 {
   display: inline-block;
   background-color: #31BCBC;
   color: #fff;
   font-weight: 500;
   font-size: 18px;
   line-height: 26px;
   border-radius: 32px;
   padding: 3px 14px;
   position: absolute;
   top: -19px;
   left: 20px;
}

.table_price dl {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
}

.table_price dl+dl {
   padding-top: 10px;
}

.table_price dl dt {
   width: calc(100% - 145px);
}

.table_price dl dt:before {
   content: '・';
}

.table_price dl dd {
   width: 135px;
   color: #CC0001;
}

.table_price dl dd small {
   font-size: 13px;
}

@media screen and (max-width: 767px) {
   .table_price {
      padding: 32px 10px 20px;
   }

   .table_price h4 {
      left: 10px;
   }

   .table_price dl dt {
      width: calc(100% - 150px);
      text-indent: -14px;
      padding-left: 14px;
   }

   .table_price dl dd {
      width: 125px;
   }
}

/* -- --*/
.d-flex {
   display: flex;
   flex-wrap: wrap;
}

/* -- --*/
.txt-18 {
   font-size: 18px;
   line-height: 36px;
}

@media screen and (max-width: 767px) {
   .txt-18 {
      font-size: 14px;
      line-height: 28px;
   }
}

/* -- --*/
.box-column {
   display: flex;
   flex-wrap: wrap;
   gap: 40px 50px;
   padding-top: 40px;
}

.box-column .item {
   width: calc(33.33% - 34px);
}

.box-column h3,
.box-column .txt {
   padding-top: 10px;
}

.box-column h3 {
   font-weight: 700;
   color: #5F3F25;
}

@media screen and (max-width: 767px) {
   .box-column .item {
      width: 100%;
   }
}