@charset "UTF-8";
/* CSS Document */

/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital@0;1&display=swap');
@import url('https://fonts.googleapis.com/earlyaccess/notosansjp.css');
@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz@0,6..96;1,6..96&family=Poppins:ital,wght@0,100;0,400;0,600;1,100;1,400;1,500;1,600&display=swap');
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.min.css");
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap');


html {
    overflow-x: hidden;
}

html,
html a,
body {
    -webkit-font-smoothing: antialiased;
}

html {
    font-size: 14px;
    -webkit-tap-highlight-color: transparent;
}


body {
    font-size: 1.2rem;
    font-family: "游ゴシック","游ゴシック体",YuGothic,"YuGothic M","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif !important;
    color: #0B0B0B;
    line-height: 1.9;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 400;
    line-height: 1.2;
    color: #242424;
    margin-top: 0;
    margin-bottom: .5rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-transform: capitalize;
    margin-bottom: 0.75rem;
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
    color: #242424;
    transition-duration: 200ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

h1 a:focus,
h1 a:hover,
h2 a:focus,
h2 a:hover,
h3 a:focus,
h3 a:hover,
h4 a:focus,
h4 a:hover,
h5 a:focus,
h5 a:hover,
h6 a:focus,
h6 a:hover {
    color: #242424;
    transition-duration: 200ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-family: YuGothic, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", 'Noto Sans JP', "Meiryo", "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
    font-weight:300;
    letter-spacing: 0.3rem;
    font-size: 24px;
    margin: 0 0 10px 0px;
}


h2 span {
    display: block;
    letter-spacing: 0.1rem;
    font-size: 11px;
    font-style: italic;
    margin: 12px 0 30px 0;
}

h3 {
    font-family: YuGothic, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", 'Noto Sans JP', "Meiryo", "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
    font-weight:300;
    letter-spacing: 0.8rem;
    font-size: 18px;
    margin: 23px 0 13px 0;
}

h3 span{
    display: block;
    letter-spacing: 0.3rem;
    font-size: 12px;
    margin: 10px 0 40px 0;
}

h4 {
    font-size: 1.2rem;
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 1rem;
}

em,
li {
    font-size: 1rem;
    font-weight: 300;
    color: #000;
}

em > a,
li > a {
    color: #0B0B0B;
    transition: 1.0s;
}

em > a:hover,
li > a:hover {
    color: #5c5c5c;
}

small {
    color: #0B0B0B;
}

label {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #242424;
    margin-bottom: .25rem;
}

i {
    line-height: 1;
}

/* Paragraph */
p {
    font-size: 16px;
    font-weight:400;
    color: #000;
    line-height: 1.9;
    margin-bottom: 1rem;
}
@media screen and (min-width: 767px){
p {
    font-size: 18px;
    line-height: 2;
}
}

.hhre {
    color:  #9F9F9F;
    width: 100%;
    margin: 10px 0 30px 0;
}

.v_line_fix {
    border: none;
    border-left: 1px solid #9F9F9F;
    height: 80px;
    width: 1px;
    margin: 100px auto 30px auto;
}

.f_line_fix {
    border: none;
    border-left: 1px solid #9F9F9F;
    height: 100px;
    width: 1px;
    margin: 100px auto 10px auto;
}


.s_line_fix {
    display: inline-block;
    position: relative;
    bottom: 0;
    z-index: 99;
    padding: 10px 10px 110px;
    overflow: hidden;
    color: #9F9F9F;
    line-height: 1;
    letter-spacing: .2em;
    margin: 80px 0 0 0;
    text-transform: uppercase;
    text-decoration: none;
    writing-mode: vertical-lr;
}

.s_line_fix::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: 120px;
    background: #9F9F9F;
    animation: sdm 6.5s cubic-bezier(.37,.26,.46,.96);
}

.s_line_fix::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: 120px;
    background: rgba(255, 255, 255, .4);
}

@keyframes sdm {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }
    50% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }
    50.1% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }
    100% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }
}

/* Links */
a {
    color: #000;
    text-decoration: none;
}

a:focus,
a:hover {
    color: #000;
    text-decoration: none;
}

a:focus {
    outline: none;
}


/* ガター幅（余白）を調整 */

.row-0 {
    margin-left:0px;
    margin-right:0px;
}
.row-0>div {
    padding-right:0px;
    padding-left:0px;
}
.row-10 {
    margin-left:-5px;
    margin-right:-5px;
}	
.row-10>div {
    padding-right:5px;
    padding-left:5px;
}
.row-20 {
    margin-left:-10px;
    margin-right:-10px;
}
.row-20>div {
    padding-right:10px;
    padding-left:10px;
}
.row-30{
    margin-left:-15px;
    margin-right:-15px;
 }
.row-30>div {
    padding-right:15px;
    padding-left:15px;
}
.row-40{
    margin-left:-20px;
    margin-right:-20px;
}
.row-40>div{
    padding-right:20px;
    padding-left:20px;
}
.row-50{
    margin-left:-25px;
    margin-right:-25px;
}
.row-50>div{
    padding-right:25px;
    padding-left:25px;
}
.row-60{
    margin-left:-30px;
    margin-right:-30px;
}
.row-60>div{
    padding-right:30px;
    padding-left:30px;
}



/* IX Content styles */

.layout{
  position: relative;
  overflow: hidden;
  z-index: -10;
}

.page-lines{
  position: absolute;
  left: 0;
  top:0;
  width: 100%;
  height: 100%;
}


.page-lines .col-line{
  padding: 0;
}

.page-lines .line{
  left: 0;
  width: 1px;
  height: 50000px;
  background-color:#f4f4f4;
}


.page-lines .col-line:last-child .line:last-child{
  left: auto;
  right: 0;
}


.page-lines{
    position: absolute;
    z-index: 100;
    left: 0;
    top:0;
    width: 100%;
    height: 100%;
  }





/*----------------------------------
PC NAVI
------------------------------------*/
.pcnav nav{
    color:#fff;
    text-align: center;
    margin: 0 17px 0 0;
}
/*ナビゲーションを横並びに*/
.pcnav nav ul{
    list-style: none;
    display: flex;
    justify-content: right;
}
/*2階層目以降は横並びにしない*/
.pcnav nav ul ul{
    display: block;
}

/*下の階層のulや矢印の基点にするためliにrelativeを指定*/
.pcnav nav ul li{
    position: relative;
}

/*ナビゲーションのリンク設定*/
.pcnav nav ul li a{
    display: block;
    font-size: 16px;
    letter-spacing: 0.1em;
    font-weight: bold;
    font-family: 'Noto Serif JP', serif;
    text-decoration: none;
    color: #fff;
    padding: 24px 15px 0 20px;
    transition:all .3s;
}

.isgac svg {
    fill: #fff;
    margin: -3px 0 0 -3px;
}

.s-header__shrink .pcnav nav ul li a{
    color: #000;
}
.s-header__shrink .isgac svg{
    fill: #000;
}

.pcnav nav ul li li a{
    padding: 16px 35px 16px 35px;
    margin-left: -28px;
}

.pcnav nav ul li a:hover{
    color:#737373; 
}

/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/
.linah {
    color: #FFF;
}

.pcnav nav ul li.has-child::before{
    content:'';
    position: absolute;
    left:8px;
    top:28px;
    width:6px;
    height:6px;
    border-top: 2px solid #999;
    border-right:2px solid #999;
    transform: rotate(135deg);
}

/*3階層目を持つliの矢印の設定*/
.pcnav nav ul ul li.has-child::before{
    content:'';
    position: absolute;
    left:20px;
    top:28px;
    width:6px;
    height:6px;
    border-top: 2px solid #fff;
    border-right:2px solid #fff;
    transform: rotate(45deg);
}

/*== 2・3階層目の共通設定 */

/*下の階層を持っているulの指定*/
.pcnav nav li.has-child ul{
    /*絶対配置で位置を指定*/
    position: absolute;
    left:0;
    top:70px;
    z-index: 4;
    /*形状を指定*/
    background:#474747;
    width:180px;
    /*はじめは非表示*/
    visibility: hidden;
    opacity: 0;
    /*アニメーション設定*/
    transition: all .3s;
    margin-left: -17px;
}

/*hoverしたら表示*/
.pcnav nav li.has-child:hover > ul,
.pcnav nav li.has-child ul li:hover > ul,
.pcnav nav li.has-child:active > ul,
.pcnav nav li.has-child ul li:active > ul{
    visibility: visible;
    opacity: 1;
}

/*ナビゲーションaタグの形状*/
.pcnav nav li.has-child ul li a{
    color: #fff;
    width: 180px;
}

.pcnav nav li.has-child ul li:last-child a{
    border-bottom:none;
}

.pcnav nav li.has-child ul li a:hover,
.pcnav nav li.has-child ul li a:active{
    background:#7b9838;
}


/*==3階層目*/

/*3階層目の位置*/
.pcnav nav li.has-child ul ul{
    top:0;
    left:182px;
    background:#66ADF5;
}

.pcnav nav li.has-child ul ul li a:hover,
.pcnav nav li.has-child ul ul li a:active{
    background:#448ED3;
}

@media (max-width: 991.98px) {
    .pcnav nav {
        display: none;
    }
}
@media (min-width: 992px) {
    .el_humburger {
        display: none;
    }
}

/*----------------------------------
toggle
------------------------------------*/
/*ハンバーガーボタン*/
.el_humburger {
    position: fixed;
    top: 25px;
    right: 30px;
    width: 46px;
    height: 25px;
    padding-top: 1px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding-top: 0px;
    z-index: 20;
    cursor: pointer;
    pointer-events: auto;
    color: #000;
    text-align: center;}

@media screen and (max-width: 640px) { /*840px*/
.el_humburger {
    display: block;
    right: 0;
    top: 0;
    padding-top: 1.8rem;
    width: 70px;
    height: 70px;}
#factory .el_humburger {
        display: none; } }

.el_humburger_wrapper {
    margin-bottom: 5px;
    width: 42px;
    display: inline-block; }

@media screen and (max-width: 840px) {
.el_humburger_wrapper {
    margin-bottom: 5px;
    width: 30px; } }

.el_humburger_text {
    font-size: 12px;
    letter-spacing: 0.1em;
    font-family: "游ゴシック Medium", YuGothic, "Yu Gothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif; }

.js_humburgerOpen .el_humburger_text.el_humburger_text__menu {
    display: none; }

.el_humburger_text.el_humburger_text__close {
    display: none; }

.js_humburgerOpen .el_humburger_text.el_humburger_text__close {
    display: block; }

@media screen and (max-width: 840px) {
.el_humburger_text {
    font-size: 10px;
    padding-top: 0px; } }

@media screen and (max-width: 840px) {
.el_humburger_text svg path {
    -webkit-transition: all 200ms cubic-bezier(0.16, 0.52, 0.25, 1);
    -o-transition: all 200ms cubic-bezier(0.16, 0.52, 0.25, 1);
    transition: all 200ms cubic-bezier(0.16, 0.52, 0.25, 1);
    fill: #000; } }

@media screen and (max-width: 840px) {
.js_humburgerOpen .el_humburger_text svg path {
    fill: #000; } }

.el_humburger span.el_humburger_bar {
    display: block;
    width: 100%;
    margin: 2px auto 9px;
    height: 1px;
    background: #fff;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out; }

.el_humburger span.el_humburger_bar:last-child {
    margin-bottom: 0; }

.js_humburgerOpen .el_humburger span.el_humburger_bar {
    background: #000; }

@media screen and (max-width: 840px) {
.el_humburger span.el_humburger_bar {
    left: 0;
    top: 0;
    background: #fff; } }

.js_humburgerOpen .el_humburger span.el_humburger_bar.top {
    -webkit-transform: translateY(9px) rotate(-45deg);
    -ms-transform: translateY(9px) rotate(-45deg);
    transform: translateY(9px) rotate(-45deg); }

.js_humburgerOpen .el_humburger span.el_humburger_bar.middle {
    opacity: 0; }

.js_humburgerOpen .el_humburger span.el_humburger_bar.bottom {
    -webkit-transform: translateY(-11px) rotate(45deg);
    -ms-transform: translateY(-11px) rotate(45deg);
    transform: translateY(-11px) rotate(45deg); }

.el_humburgerButton.el_humburgerButton__close {
    top: 2%;
    right: 2%; }

.el_humburgerButton__close span.el_humburger_bar {
    display: block;
    width: 35px;
    margin: 0 auto;
    height: 4px;
    background: #000; }

.el_humburgerButton__close span.el_humburger_bar.top {
    -webkit-transform: translateY(5px) rotate(-45deg);
    -ms-transform: translateY(5px) rotate(-45deg);
    transform: translateY(5px) rotate(-45deg); }

.el_humburgerButton__close span.el_humburger_bar.bottom {
    -webkit-transform: translateY(-6px) rotate(45deg);
    -ms-transform: translateY(-6px) rotate(45deg);
    transform: translateY(-6px) rotate(45deg); }

.navi {
    position: fixed;
    right: 0;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.9);
    width: 450px;
    z-index: 3;
    padding-top: 100px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transition: all 600ms ease-out;
    -o-transition: all 600ms ease-out;
    transition: all 600ms ease-out;
    transform:translateZ(0) translateX(100%);
    overflow: auto; }
.js_humburgerOpen .navi {
    transform:translateZ(0) translateX(0); }
@media screen and (max-width: 840px) {
.navi {
    padding: 80px 8% 0;}
.js_humburgerOpen .navi {
    width: 100%;} }

.navi_item {
    position:relative;
    margin-bottom: 18px;
    font-size: 28px;
    letter-spacing: 0.1em;
    font-weight: bold;
    font-family: 'Noto Serif JP', serif;
    text-decoration: none;
    white-space: nowrap;
    margin-left: 90px; }
.navi_item.op_innerLink {
    cursor: pointer; }
    @media screen and (max-width: 840px) {
    .navi_item {
    margin-left: 0;
    font-size: 24px; } }

.el_spChildNavOpen {
    position: absolute;
    top: 6px;
    left: 80%;
    z-index: 20;
    -webkit-transition: all 200ms ease-out;
    -o-transition: all 200ms ease-out;
    transition: all 200ms ease-out;
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center;
    padding: 10px; }

.js_openParent.js_fire > .el_spChildNavOpen {
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg); }
.js_openParent.js_fire > .el_spChildNavOpen > .el_spChildNavOpen_wrapper:after {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0; }

.el_spChildNavOpen_wrapper {
    position: relative;
    width: 15px;
    height: 15px;
    -webkit-transition: all 200ms ease-out;
    -o-transition: all 200ms ease-out;
    transition: all 200ms ease-out;
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center; }
.el_spChildNavOpen_wrapper:before {
    content: "";
    width: 100%;
    height: 1px;
    background-color: #111;
    position: absolute;
    top: calc(50% - 1px); }
.el_spChildNavOpen_wrapper:after {
    content: "";
    width: 1px;
    height: 100%;
    background-color: #111;
    position: absolute;
    left: calc(50% - 1px);
    -webkit-transition: all 200ms ease-out;
    -o-transition: all 200ms ease-out;
    transition: all 200ms ease-out; }

.nav_child{
    padding-top:10px;
}

.nav_child_item{
    position: relative;
    font-size:20px;
    padding-left:10px;
    margin-bottom:5px;
}

.nav_child_item > a{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    top:0;
}

.nav_child_item:last-child{
    margin-bottom:0px;
}

.js_openSwitch {
    cursor: pointer; }

.js_openTarget {
    display: none; }

.s-header__shrink .el_humburger span {
    background: #000;
}






#nav-toggle {
    position: fixed;
    top: 30px;
    right: 35px;
    height: 32px;
    cursor: pointer;
}

#nav-toggle > div {
    position: relative;
    width: 34px;
}

#nav-toggle span {
    width: 100%;
    height: 0.1rem;
    left: 0;
    display: block;
    background: #fff;
    position: absolute;
    -webkit-transition: top .5s ease, -webkit-transform .6s ease-in-out;
    transition: top .5s ease, -webkit-transform .6s ease-in-out;
    transition: transform .6s ease-in-out, top .5s ease;
    transition: transform .6s ease-in-out, top .5s ease, -webkit-transform .6s ease-in-out;
}
#nav-toggle span:nth-child(1) {
    top: 0;
}

#nav-toggle span:nth-child(2) {
    top: 12px;
}

#nav-toggle span:nth-child(3) {
    top: 24px;
}

#nav-toggle:hover span:nth-child(1) {
    top: 2px;
}

#nav-toggle:hover span:nth-child(3) {
    top: 21px;
}

.open #nav-toggle span {
    background: #000;
}

.open #nav-toggle span:nth-child(1) {
    top: 15px;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.open #nav-toggle span:nth-child(2) {
    top: 15px;
    width: 0;
    left: 50%;
}

.open #nav-toggle span:nth-child(3) {
    top: 15px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

/* z-index */
#nav-toggle {
    z-index: 1000;
}

#container {
    z-index: 900;
}

#gloval-nav {
    background: rgba(248, 248, 248, 0.96);
    color: #000;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 990;
    text-align: center;
    display: -webkit-box;
    display: flex;
    visibility: hidden;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    -webkit-box-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    align-items: center;
    font-size: 21px;
    opacity: 0;
    -webkit-transition: opacity .6s ease, visibility .6s ease;
    transition: opacity .6s ease, visibility .6s ease;
}

#gloval-nav a {
    display: block;
    font-size: 21px;
    color: #000;
    text-decoration: none;
    padding: 12px 0;
    -webkit-transition: color .6s ease;
    transition: color .6s ease;
}

#gloval-nav a:hover {
    color: #666;
}

#gloval-nav ul {
    list-style: none;
    padding-inline-start: 0px;
}
#gloval-nav ul li {
    opacity: 0;
    -webkit-transform: translateY(-20px);
    transform: translateY(-20px);
    -webkit-transition: opacity .2s ease, -webkit-transform .6s ease;
    transition: opacity .2s ease, -webkit-transform .6s ease;
    transition: transform .6s ease, opacity .2s ease;
    transition: transform .6s ease, opacity .2s ease, -webkit-transform .6s ease;
}

#gloval-nav ul li:nth-child(2) {
    -webkit-transition-delay: .15s;
    transition-delay: .15s;
}

#gloval-nav ul li:nth-child(3) {
    -webkit-transition-delay: .3s;
    transition-delay: .3s;
}

#gloval-nav ul li:nth-child(4) {
    -webkit-transition-delay: .45s;
    transition-delay: .45s;
}

#gloval-nav ul li:nth-child(5) {
    -webkit-transition-delay: .6s;
    transition-delay: .6s;
}

#gloval-nav ul li:nth-child(6) {
    -webkit-transition-delay: .75s;
    transition-delay: .75s;
}

#gloval-nav ul li:nth-child(7) {
    -webkit-transition-delay: .9s;
    transition-delay: .9s;
}

#gloval-nav ul li:nth-child(8) {
    -webkit-transition-delay: 1.05s;
    transition-delay: 1.05s;
}

#gloval-nav ul li:nth-child(9) {
    -webkit-transition-delay: 1.2s;
    transition-delay: 1.2s;
}

/* open */
.open {
    overflow: hidden;
}

.open #gloval-nav {
    visibility: visible;
    opacity: 1;
}

.open #gloval-nav li {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -webkit-transition: opacity .9s ease, -webkit-transform 1s ease;
    transition: opacity .9s ease, -webkit-transform 1s ease;
    transition: transform 1s ease, opacity .9s ease;
    transition: transform 1s ease, opacity .9s ease, -webkit-transform 1s ease;
}


.s-header__shrink #nav-toggle span {
    background: #000;
}

#gloval-nav .enbx a {
    display: block;
    font-size: 18px;
    color: #000;
    text-decoration: none;
    padding: 15px 0;
    -webkit-transition: color .6s ease;
    transition: color .6s ease;
}

#gloval-nav .enbx a:hover {
    color: #666;
}

.enbx {
    margin: 30px 0 0 0;
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    letter-spacing: .3rem;
}

#gloval-nav ul li .enbx :nth-child(7) {
    -webkit-transition-delay: .9s;
    transition-delay: .9s;
}

.snswrap{
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
}

.snswrap img{
    padding: 0 8px 0 0;
}

.snsmag{
    margin-top: 20px;
}

.snsic{
    height: 17px;
    width: auto;
}

.snsil{
    height: 18px;
    margin: 0 0 2px 0;
    width: auto;
}
.snstxt{
    letter-spacing: .1rem;
    padding: 0 0 0 8px;
}

.spnsic {
    height: 25px;
    width: auto;
    text-align: left;
}

/*----------------------------------
  Header
------------------------------------*/
.s-header__navbar {
    background: transparent;
    transition-duration: 300ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}


/* header stickey
------------------------------ */
.navbar-fixed-top .navbar-collapse,
.navbar-static-top .navbar-collapse {
    padding-right: 0;
    padding-left: 0
}


.navbar-fixed-bottom .navbar-collapse,
.navbar-fixed-top .navbar-collapse {
    max-height: 340px
}

@media (max-device-width:480px) and (orientation:landscape) {

    .navbar-fixed-bottom .navbar-collapse,
    .navbar-fixed-top .navbar-collapse {
        max-height: 200px
    }
}

.container-fluid > .navbar-collapse,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container > .navbar-header {
    margin-right: -15px;
    margin-left: -15px
}

@media (min-width:768px) {

    .container-fluid > .navbar-collapse,
    .container-fluid > .navbar-header,
    .container > .navbar-collapse,
    .container > .navbar-header {
        margin-right: 0;
        margin-left: 0
    }
}

.navbar-static-top {
    z-index: 1000;
    border-width: 0 0 1px
}

@media (min-width:768px) {
    .navbar-static-top {
        border-radius: 0
    }
}

.navbar-fixed-bottom,
.navbar-fixed-top {
    position: fixed;
    right: 0;
    left: 0;
    z-index: 1030
}

@media (min-width:768px) {

    .navbar-fixed-bottom,
    .navbar-fixed-top {
        border-radius: 0
    }
}

.navbar-fixed-top {
    top: 0;
    border-width: 0 0 1px
}


/* Container
------------------------------ */
.s-header__container {
    width: 100%;
    height: auto;
    display: table;
    padding: .25rem 1.475rem .1rem 1.475rem;
}

.s-header__container:before,
.s-header__container:after {
    content: " ";
    display: table;
}

.s-header__container:after {
    clear: both;
}


.container-fluid {
    --bs-gutter-x: -1.5rem;
}

/* Navbar Row
------------------------------ */
.s-header__navbar-row {
    position: relative;
    display: table-row;
    clear: both;
}

.s-header__navbar-row-col {
    width: 30%;
    display: table-cell;
    vertical-align: middle;
}
/* Logo
------------------------------ */
.s-header__logo {
    position: relative;
    z-index: 9999;
    width: 100%;
    height: auto;
    float: left;
}
/* 
.s-header__logo img {　Barns logo
    width: 120px;
    padding: .7rem 0 0 1.2rem;
} */
.s-header__logo img {
    width: 230px;
    padding: 0.8rem 0 0 0.1rem;
    }

@media (min-width:1024px) {
    .s-header__logo-link h1 {
        margin-bottom: 0.4rem;
        }
    .s-header__logo img {
        width: 260px;
        padding: 0.5rem 0 0 0.1rem;
        }
}

.s-header__logo-link {
    display: inline-block;
    padding: .5rem 0;
}

.s-header__logo-link:focus,
.s-header__logo-link:hover {
    text-decoration: none;
}

.s-header__logo-img-default,
.s-header__logo-img-shrink {
    display: block;
    transition-duration: 300ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

.s-header__logo-img-default {
    opacity: 1;
}

.s-header__logo-img-shrink {
    position: absolute;
    top: 0.5rem;
    left: 0;
    opacity: 0;
}

@media (max-width: 61.9em) {
    .s-header__logo {
        width: auto;
        height: auto;
        float: left;
    }

}






/* Shrink
------------------------------ */

/* Logo */
.s-header__shrink.-is-open .s-header__logo-img-default {
    opacity: 1;
}

.s-header__shrink.-is-open .s-header__logo-img-shrink {
    opacity: 0;
}

.s-header__shrink .s-header__navbar {
    background: rgba(255, 255, 255, 0.91);
}

.s-header__shrink .s-header__logo-img-default {
    opacity: 0;
}

.s-header__shrink .s-header__logo-img-shrink {
    opacity: 1;
}



.headsns{
    margin: 25px 0 0 0;
}

.language {
    float: right;
    margin: 3px 0 0 0;
    padding: 14px 10px 0 30px;
    background: url(../images/icon_language.svg) no-repeat left center;
    background-size: 20px 21px;
    font-size: 12px;
    font-size: 1.2rem;
    line-height: 120%;
    color: #ffffff;
}

.lanchoice span {
    color: #ffffff;
}

.lanchoice a {
    color: #ffffff;
}

.lanchoice a:hover {
    color: #d4afaf;
}



/*----------------------------------
CIRCLE ARROW
------------------------------------*/
.arrowbtn {
    position: absolute;
    width: 40px;
    height: 40px;
    background: #ffffff17;
    border: 1px solid #383838;
    border-radius: 100px;
    color: #383838;
    cursor: pointer;
    left: 6%;
    line-height: 100px;
    transition: all 0.3s ease-in-out;
    margin-top: 10px;
}

.arrowbtn:hover {
    background: #383838;
    border-color: #ffffff27;
    color: #fff;
}
.arrowbtn:after {
    position: absolute;
    display: inline-block;
    content: "";
    width: 8px;
    height: 8px;
    top: 50%;
    left: 50%;
}

.arrowbtn-up:after {
    margin-left: -6px;
    margin-top: -3.7px;
    border-top: 1px solid;
    border-left: 1px solid;
    transform: rotateZ(135deg);
}

.cabxtp:hover .arrowbtn {
    background: #383838;
    border-color: #fff;
    color: #fff;
}



.arrowbtn2 {
    position: absolute;
    width: 55px;
    height: 55px;
    background: #ffffff08;
    border: 1px solid #fff;
    border-radius: 100px;
    color: #fff;
    cursor: pointer;
    left: 56.5%;
    line-height: 100px;
    margin-left: -55px;
    transition: all 0.3s ease-in-out;
}
.arrowbtn2:hover {
    background: #ffffffc4;
    border-color: #fff;
    color: #383838;
}
.arrowbtn2:after {
    position: absolute;
    display: inline-block;
    content: "";
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
}

.arrowbtn-up2:after {
    margin-left: -14.5px;
    margin-top: -8.7px;
    border-top: 1px solid;
    border-left: 1px solid;
    transform: rotateZ(135deg);
}

@media (min-width: 576px) {
    .arrowbtn2 {
        left: 53.5%;
    }
}

@media (min-width:768px) {
    .arrowbtn2 {
        left: 53%;
    }
}

@media (min-width: 992px) {
    .arrowbtn2 {
        left: 52.5%;
    }
}

.arrowbtn3 {
    position: absolute;
    width: 55px;
    height: 55px;
    background: #fff;
    border: 1px solid #383838;
    border-radius: 100px;
    color: #383838;
    cursor: pointer;
    left: 54.5%;
    line-height: 100px;
    margin-left: -55px;
    transition: all 0.3s ease-in-out;
}
.arrowbtn3:hover {
    background: #383838;
    border-color: #fff;
    color: #fff;
}
.arrowbtn3:after {
    position: absolute;
    display: inline-block;
    content: "";
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
}

.arrowbtn-up3:after {
    margin-left: -14.5px;
    margin-top: -8.7px;
    border-top: 1px solid;
    border-left: 1px solid;
    transform: rotateZ(135deg);
}

.cabxtp:hover .arrowbtn3 {
    background: #383838;
    border-color: #fff;
    color: #fff;
}
.art00 {
    display: flex;
    margin-top: 50px;
}

.arrowkomt {
    font-size: 13px;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    letter-spacing: 0.1rem;
    line-height: 1;
    display: block;
    margin: 24px 0 0 60px;
}


button {
    position: relative;
    display: inline-block;
    cursor: pointer;
    outline: none;
    border: 0;
    vertical-align: middle;
    text-decoration: none;
    background: transparent;
    padding: 0;
    font-size: inherit;
    font-family: inherit;
   }
   
   button.learn-more {
    width: 12rem;
    height: auto;
   }
   
   button.learn-more .circle {
    transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
    position: relative;
    display: block;
    margin: 0;
    width: 3rem;
    height: 3rem;
    background: #282936;
    border-radius: 1.625rem;
   }
   
   button.learn-more .circle .icon {
    transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    background: #fff;
   }
   
   button.learn-more .circle .icon.arrow {
    transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
    left: 0.625rem;
    width: 1.125rem;
    height: 0.125rem;
    background: none;
   }
   
   button.learn-more .circle .icon.arrow::before {
    position: absolute;
    content: "";
    top: -0.29rem;
    right: 0.0625rem;
    width: 0.625rem;
    height: 0.625rem;
    border-top: 0.125rem solid #fff;
    border-right: 0.125rem solid #fff;
    transform: rotate(45deg);
   }
   
   button.learn-more .button-text {
    transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.75rem 0;
    margin: 0 0 0 1.85rem;
    color: #282936;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    text-transform: uppercase;
   }
   
   button:hover .circle {
    width: 100%;
   }
   
   button:hover .circle .icon.arrow {
    background: #fff;
    transform: translate(1rem, 0);
   }
   
   button:hover .button-text {
    color: #fff;
   }

/*----------------------------------
Swiper
------------------------------------*/
.mv02 {
    margin-bottom: 0;
    /* ページネーション */
    /* フェードモード時 共通調整 */
    /* スライド */
    /* スライド アクティブ時 */
}
@media only screen and (max-width: 1024px) {
.mv02 {
    margin-bottom: 0rem;
    }
}
.mv02 .l-inner {
    padding-bottom: 0;
}
.mv02 .swiper-pagination {
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 0;
    height: -webkit-max-content;
    height: -moz-max-content;
    height: max-content;
    margin: auto;
}
.mv02 .swiper-pagination-bullet {
    display: block;
    width: 1.6rem;
    height: 2px;
    cursor: pointer;
    -webkit-transition: var(--transition);
    transition: var(--transition);
    background-color: #fff;
}
.mv02 .swiper-pagination-bullet:not(:first-child) {
    margin-top: 1.6rem;
}
.mv02 .swiper-pagination-bullet-active {
    width: 4rem;
    background-color: #fff;
}
.mv02 .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}
.mv02 .swiper-fade .swiper-slide-active {
    pointer-events: auto;
}
.mv02 .slide {
    display: grid;
    place-content: center;
    height: 100vh;
    padding-left: 70px;
    text-align: left;

    /*-- height: 100vh; --*/
}
@media only screen and (max-width: 1024px) {
.mv02 .slide {
    height: max(85vh, 85vw);
}
}
.mv02 .slide-media {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.mv02 .slide-media img {
    -webkit-transition: 14s 1s ease-out;
    transition: 14s 1s ease-out;
    -webkit-transform: translateX(-1.5%) scale(1.1);
            transform: translateX(-1.5%) scale(1.1);
}


.mv02 .slide-title {
    font-size: 3.5rem;
    line-height: 1.1;
    color: #fff;
    font-family: A1 Mincho;
    text-shadow: 1px 2px 10px #09090966;
    margin-bottom: 10px;
    padding-left: 10px;
}


.mv02 .slide-eng {
    font-size: 2rem;
    color: #fff;
    font-family: A1 Mincho;
    text-shadow: 1px 2px 10px #09090966;
    margin-bottom: 80px;
    padding-left: 10px;
}



@media only screen and (max-width: 1024px) {
.mv02 .slide-title {
    font-size: 3.5rem;
}
}
.mv02 .slide-text {
    font-size: 1.8rem;
    margin: 4rem 0;
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s;
    color: #fff;
}
@media only screen and (max-width: 1024px) {
    .mv02 .slide-text {
    font-size: 1.6rem;
    }
}
.mv02 .slide-link {
    -webkit-animation-delay: 0.4s;
            animation-delay: 0.4s;
}

.mv02 .swiper-slide[class*=-active] .slide-media img {
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transform: translateX(1.5%) scale(1.05);
            transform: translateX(1.5%) scale(1.05);
}
.mv02 .swiper-slide.anm-started .slide-title,
.mv02 .swiper-slide.anm-started .slide-link {
    -webkit-animation-name: mv02-fadeIn;
            animation-name: mv02-fadeIn;
}
.mv02 .swiper-slide.anm-finished .slide-title,
.mv02 .swiper-slide.anm-finished .slide-link {
    -webkit-animation-name: mv02-fadeOut;
            animation-name: mv02-fadeOut;
}


@-webkit-keyframes mv02-fadeIn {
    0% {
    -webkit-transform: translateY(3rem);
            transform: translateY(3rem);
            opacity: 0;
}
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
            opacity: 1;
}
}

@keyframes mv02-fadeIn {
    0% {
        -webkit-transform: translateY(3rem);
                transform: translateY(3rem);
                opacity: 0;
}
    100% {
            -webkit-transform: translateY(0);
                    transform: translateY(0);
                    opacity: 1;
}
}
@-webkit-keyframes mv02-fadeOut {
    0% {
            -webkit-transform: translateY(0);
                    transform: translateY(0);
                    opacity: 1;
}
    100% {
        -webkit-transform: translateY(-3rem);
                transform: translateY(-3rem);
                opacity: 0;
    }
}
@keyframes mv02-fadeOut {
    0% {
            -webkit-transform: translateY(0);
                    transform: translateY(0);
                opacity: 1;
}
    100% {
        -webkit-transform: translateY(-3rem);
                transform: translateY(-3rem);
                opacity: 0;
    }
}

@-webkit-keyframes zoomUp {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }

    100% {
        -webkit-transform: scale(1.15);
        transform: scale(1.15);
    }
}

@keyframes zoomUp {
    0% {
        -webkit-transform: scale(1);
        transform: scale(1);
    }

    100% {
        -webkit-transform: scale(1.15);
        transform: scale(1.15);
    }
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
    -webkit-animation: zoomUp 15s linear 0s;
    animation: zoomUp 15s linear 0s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.swiper-slide {
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.grdgr {
    height: 100%;
    background-image: linear-gradient(360deg, rgba(85, 85, 85, 0) 72%, rgba(42, 42, 42, 0.69));
}

.slide-img {
    background-size: cover;
    background-position: center center;
    height: 100vh;
}


.slide-text {
    position: absolute;
    z-index: 10;
    color: #fff;
    width: 95%;
    left: 5%;
    top: 31%;
    text-align: left;
}

.slide-text h2{
    z-index: 10;
    font-size: 4rem;
    font-family: "A1明朝", "A1 Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro","HGS明朝B","ＭＳ Ｐ明朝",serif,YuMincho, "游明朝体", "YuMincho", "游明朝", "Yu Mincho","Meiryo","メイリオ","ＭＳ Ｐゴシック",sans-serif;
    color: #fff;
    width: 100%;
    text-align: left;
}

.slide-text h2 .open2{
    z-index: 10;
    font-size: 5rem;
    width: 100%;
    text-align: left;
}

.slide-text h2 span{
    font-size: 2.2rem;
    font-family: "A1明朝", "A1 Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro","HGS明朝B","ＭＳ Ｐ明朝",serif,YuMincho, "游明朝体", "YuMincho", "游明朝", "Yu Mincho","Meiryo","メイリオ","ＭＳ Ｐゴシック",sans-serif;
    font-style: normal;
}

.slide-text img {
    width: 74%;
        -webkit-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        -moz-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        -ms-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
}

@media (min-width: 576px) {
    .slide-text img {
        width: 45%;
    }
}

@media (min-width: 768px) {
    .slide-text img {
        width: 55%;
    }
}

@media (min-width: 992px) {
    .slide-text img {
        width: 50%;
    }
}


.slide-text2 {
    position: absolute;
    z-index: 10;
    color: #fff;
    width: 98%;
    top: 14%;
    text-align: center;
}

.slide-text2 img {
    width: 80%;
        -webkit-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        -moz-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        -ms-filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
        filter: drop-shadow(1px 1px 5px rgba(0, 0, 0, 0.25));
}

@media (min-width: 576px) {
    .slide-text2 img {
        width: 85%;
    }
}

@media (min-width: 768px) {
    .slide-text2 img {
        width: 55%;
    }
}

@media (min-width: 992px) {
    .slide-text2 img {
        width: 50%;
    }
}

.sclll {
    display: inline-block;
    position: absolute;
    left: 30px;
    bottom: 0;
    z-index: 99;
    padding: 10px 10px 110px;
    overflow: hidden;
    color: #fff;
    font-size: 12px;
    line-height: 1;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-decoration: none;
    writing-mode: vertical-lr;
    font-family: 'Bodoni Moda', serif;
    font-style: italic;
}

.sclll::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: 100px;
    background: #fff;
    animation: sdl 2s cubic-bezier(1, 0, 0, 1) infinite;
}

.sclll::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1px;
    height: 100px;
    background: rgba(255, 255, 255, .4);
}
.sclll::after {
    animation: sdl 3.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl {
    0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
}
    50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
}
    50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
}
    100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
}
}

.sp_br {
    display: none;
}
@media screen and (max-width: 768px) {
    .sp_br {
      display: block;
    }
}


.resbbn {
    position: absolute;
    right: 20px;
    bottom: 190px;
    z-index: 10;
}

.reserbutton{
    display: inline-block;
    font-family: "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 130px;
    height: 130px;
    color: #FFF;
    text-decoration: none;
    text-align: center;
    line-height: 1.3;
    margin: 12px 0;
    background-image: linear-gradient(180deg, rgba(139, 122, 78, 1) 10%, rgba(129, 109, 72, 1) 40%, rgba(73, 55, 35, 1) 68%, rgba(63, 46, 30, 1) 90%);
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
}

.reserbutton:hover {
  transform: translateY(2px);
  box-shadow: 0 0 rgba(0, 0, 0, 0);
  transition: all 0.2s 0.1s ease-in-out;
  color: #e2e2e2;
}

.re_tspan{
  font-size:13px;
}

.br_span{
  display:block;
  font-size:35px;
  margin-top:3px;
}

@media screen and (min-width: 990px) {
.resbbn {
    right: 60px;
    bottom: 160px;
}

.reserbutton{
    width: 160px;
    height: 160px;
    line-height: 1.3;
    margin: 12px 0;
}

.re_tspan{
  font-size:15px;
}

.br_span{
  display:block;
  font-size:45px;
  margin-top:3px;
}

}





/* TOP NEWS ---------------------------------------*/
.tpnbwrap{
    margin-top: -50px;
    position: relative;
}

.tpnsbx{
    top: 0;
    right: 0;
    padding: 0;
    background-color: #fff;
    z-index: 5;
    position: absolute;
}

.tpnstit {
    color: #1c1c1c;
    font-size: 16px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    padding: 15px 0 15px 10px;
}

.rgtline {
    border-right: 1px solid;
    padding-left: 10px;
}

.tpnscomm {
    color: #1c1c1c;
    font-size: 13px;
    padding-left: 6px;

}

#newsList p{
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.3;
}

.up_ymd {
    margin-right: 7px;
}

@media (min-width: 768px) {
.tpnstit {
    font-size: 28px;
    letter-spacing: 0.3rem;
    padding: 15px 0 15px 35px;
}

.tpnscomm p{
font-size: 16px;
padding-left: 15px;

}

.rgtline {
    border-right: 1px solid;
    padding-left: 20px;
}

#newsList p{
    margin-top: 15px;
    font-size: 16px;
}

.up_ymd {
    margin-right: 15px;
}
    
    }


/* OUR SERVICE ---------------------------------------*/
.contentsbx{
    margin: 100px 0 100px 0;
}

.contentsbx h3{
    color: #1c1c1c;
    font-size: 32px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.contentsbx h3 span{
    color: #1c1c1c;
    font-size: 14px;
    font-style: normal;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 5px 0 0 0;
}


.contentsbx p{
    color: #1c1c1c;
}

.contwrbx {
    padding: 0 25px 0 25px;
}

.contwrbx h4 {
    font-size: 24px;
    font-family: 'Noto Serif JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.3rem;
    line-height: 1.6;
    color: #1c1c1c;
    padding-bottom: 10px;
    margin: 30px 0 15px 0;
}


@media (min-width: 768px) {
.contwrbx {
    padding: 0 35px 0 35px;
}

.contentsbx h3 {
    font-size: 38px;
    letter-spacing: 0.4rem;
    line-height: 1.3;
    margin: 40px 0 10px 0; 
}

.contwrbx h4 {
    font-size: 30px;
    letter-spacing: 0.1rem;
    line-height: 1.5;
    margin: 30px 0 20px 0;
}

}

@media (min-width: 992px) {   
    .contwrbx h4 {
        font-size: 30px;
        font-weight: 500;
        letter-spacing: 0.1rem;
        line-height: 1.5;
        margin: 10px 0 20px 0;
    }
    
    }

.servbxx {
    text-align: center;
}

.servbxx img{
    width: 50%;
}

.servbxx h5 {
    font-family: 'Noto Serif JP', sans-serif;
    font-size: 22px;
    font-weight: 500;
    text-align: center;
    margin: 10px 0 20px 0;
}

.servbxx p{
    text-align: left;
}

/* ABOUT US ---------------------------------------*/
.secbk1 {
    padding-top: 10px;
    padding-bottom: 10px;
}

.secbk1 h2{
    color: #1c1c1c;
    font-size: 28px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.secbk1 h2 span{
    color: #1c1c1c;
    font-size: 14px;
    font-style: normal;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 5px 0 0 0;
}


.secinlib {
    font-size: 28px;
    font-family: "A1明朝", "A1 Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro","HGS明朝B","ＭＳ Ｐ明朝",serif,YuMincho, "游明朝体", "YuMincho", "游明朝", "Yu Mincho","Meiryo","メイリオ","ＭＳ Ｐゴシック",sans-serif;
    font-weight: 600;
    font-style: normal;
    letter-spacing: 0.1rem;
    line-height: 1;
    display: block;

}

.ttbx {
    font-size: 40px;
}


@media (min-width: 768px) {
    .secbk1e h2 {
        font-size: 38px;
        letter-spacing: 0.4rem;
        line-height: 1.3;
        margin: 40px 0 30px 0; 
    }
    
    .secbk1 h3 {
        font-size: 32px;
        letter-spacing: 0.1rem;
        line-height: 1.3;
        margin: 0 0 20px 0; 
    }
}

.cepho {
    margin-top: 50px;
    width: 80%;
}

.wrbxpq{
    margin-top: 70px;
}

.wrbxpq h3 {
    color: #1c1c1c;
    font-size: 28px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.wrbxpq h3 span {
    color: #1c1c1c;
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 5px 0 0 0;
}

.wrbxpq h4 {
    font-size: 18px;
    font-weight: 400;
    font-family: "A1明朝", "A1 Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro","HGS明朝B","ＭＳ Ｐ明朝",serif,YuMincho, "游明朝体", "YuMincho", "游明朝", "Yu Mincho","Meiryo","メイリオ","ＭＳ Ｐゴシック",sans-serif;
    letter-spacing: 0.1rem;
    line-height: 4.5rem;
    margin: 25px 0 15px 0;
}

.wrbxpq h4 span {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.1rem;
    line-height: 0.5;
    margin: 15px 0 0 0; 
}

@media (min-width: 768px) {
    .cepho {
        width: 100%;
    }

    .wrbxpq h3 {
        font-size: 38px;
        letter-spacing: 0.4rem;
        line-height: 1.3;
        margin: 40px 0 30px 0; 
    }

    .wrbxpq h3 span {
        font-size: 32px;
        letter-spacing: 0.4rem;

    }
    
    .wrbxpq h4 {
        font-size: 22px;
        letter-spacing: 0.1rem;
        line-height: 4rem;
        margin: 40px 0 10px 0; 
    }

    .wrbxpq h4 span {
        font-size: 16px;
        font-weight: 400;
        letter-spacing: 0.1rem;
        line-height: 0.5;
        margin: 15px 0 0 0; 
}

}

.wrbxpq p{
    text-align: justify;
}

.comstra {
background-image:url(../images/history.jpg);
background-position:center bottom;
background-size:cover;
width:100%;
text-align: center;
height:200px;
}

.comstrb {
    background-image:url(../images/company.jpg);
    background-position:center bottom;
    background-size:cover;
    width:100%;
    text-align: center;
    height:200px;
}

.comstra h2 {
    font-size: 22px;
    font-family: 'Noto Serif JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.1rem;
    color: #fff;
    line-height: 180px;
}

.comstrb h2 {
    font-size: 22px;
    font-family: 'Noto Serif JP', sans-serif;
    font-weight: 600;
    letter-spacing: 0.6rem;
    color: #fff;
    line-height: 180px;
}

@media screen and (min-width: 768px){
.comstra {
    margin: 30px 0 0 0;
    height:300px;
}
.comstra h2 {
    font-size: 28px;
    letter-spacing: 0.1rem;
    line-height: 280px;
}

.comstrb {
    margin: 30px 0 0 0;
    height:300px;
}
.comstrb h2 {
    font-size: 28px;
    letter-spacing: 0.6rem;
    line-height: 280px;
}
}


.prename {
    text-align: right;
}

.listbox {
    width: 100%;
}
.listbox dl {
    display: table;
    width: 100%;
    padding: 20px 0 3px 0;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.8;
}

.listbox dl dt {
    width: 15%;
    letter-spacing: 0.1em;
    font-weight: 400;
}

.listbox dl dt span{
    display: inline-block;
}

.listbox dl dd {
    width: 85%;
    text-align: left;
}

.listbox dl dt, .listbox dl dd {
    display: table-cell;
}

.listbox dl + dl {
    border-top: solid 1px #ddd;
}

@media (min-width: 768px) {
    .listbox dl {
        font-size: 16px;
        line-height: 2.3rem;
}
}

@media (max-width: 769px){
.listbox dl dt {
width: 100%;
}
.listbox dl dt, .listbox dl dd {
    display: block;
}
}

/* PLAN,SIM ---------------------------------------*/
.grback{
    padding-top: 150px;
    padding-bottom: 180px;
    background-image:url(../images/aboutu_bk.jpg);
    background-position: center;
    background-repeat: no-repeat;
    object-fit: cover;
    background-size: cover;

}

.grback h2{
    color: #1c1c1c;
    font-size: 32px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.grback h2 span{
    color: #1c1c1c;
    font-size: 14px;
    font-style: normal;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 5px 0 0 0;
}

.grback h3 {
    font-size: 24px;
    font-family: 'Noto Serif JP', sans-serif;
    font-weight: 400;
    letter-spacing: 0.2rem;
    line-height: 1.6;
    color: #1c1c1c;
    padding-bottom: 10px;
}

.grback p{
    color: #1c1c1c;
    text-align: left;
}

@media (min-width: 768px) {
.grback h2 {
    font-size: 38px;
    letter-spacing: 0.4rem;
    line-height: 1.3;
    margin: 40px 0 10px 0; 
}

.grback h3 {
    font-size: 32px;
    letter-spacing: 0.1rem;
    line-height: 1.6;
}

.grback p{
    text-align: center;
}

}

a.btn-border {
    font-size: 18px;
    border: 1px solid #fff;
    background: #ffffff08;
    border-radius: 0;
    color: #fff;
    padding: 15px 35px;
    margin: 20px 0 0 0;
    transition: all 0.3s ease-in-out;
}

a.btn-border:hover {
    border: 1px solid #fff;
    background: #ffffffc4;
    color: #383838;
}







/* NEWS ---------------------------------------*/
.sch2sp {
    font-family: 'Bodoni Moda', serif;
    display: block;
    letter-spacing: 0.1rem;
    font-size: 11px;
    font-style: italic;
    margin: 0 0 5px 0;
}

@media (min-width: 768px) {
.sch2sp {
        margin: 0 0 10px 0;
    }

}

.news-list{
    list-style: none outside;
    margin: 0;
    padding: 0;
    border-top: 1px solid #CCC;
}
.news-list .item{
    position: relative;
}
.news-list .item::after{
    position: absolute;
    top: 30%;
    bottom: 0;
    right: 0;
    margin: auto;
    vertical-align: middle;
    padding-right: .75rem;
    content: "\F285";
    font-family: bootstrap-icons;
    font-size: 20px;
    color: #333;
}
.news-list .item a{
    display: flex;
    flex-wrap: wrap;
    flex-wrap: nowrap;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #CCC;
    padding: 20px 20px;
}
.news-list .item .date{
    margin: 0;
    min-width: 120px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    letter-spacing: 0.1rem;
    padding: 3px 20px 0 0;
}
.news-list .item .title{
    margin: 0;
    width: 100%;
    padding-right: 37px;
}
.news-list .item a:hover .title{
    color: #000;
}

@media screen and (max-width: 767px){
.news-list .item a{
    flex-wrap: wrap;
}
.news-list .item .date{
    min-width: 100px;
}
.news-list .item .title{
    margin-top: 3px;
}
.news-list .item::after{
    top: 38%;
}
}



.newsmain-list{
    list-style: none outside;
    margin: 0;
    padding: 0;
    border-top: 1px solid #CCC;
}
.newsmain-list .item a{
    display: flex;
    flex-wrap: wrap;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #CCC;
    padding: 17px 0 15px 5px;
}

.newsmain-list .item a:hover{
    background-color: #f0f0f0;
}

.newsmain-list .item{
    position: relative;
}
.newsmain-list .item::after{
    position: absolute;
    top: 35%;
    bottom: 0;
    right: 0;
    margin: auto;
    vertical-align: middle;
    padding-right: .75rem;
    content: "\F285";
    font-family: bootstrap-icons;
    font-size: 20px;
    color: #333;
}

.newsmain-list .item .date{
    margin: 0;
    min-width: 120px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    letter-spacing: 0.1rem;
    padding: 0px 10px 0 0;
}
.newsmain-list .item .title{
    margin: 0;
    width: 100%;
    padding-right: 37px;
}
.newsmain-list .item a:hover .title{
    color: #000;
}

@media screen and (max-width: 767px){
.newsmain-list .item .date{
    min-width: 100px;
}
.newsmain-list .item .title{
    margin-top: 5px;
}
}



.nsbx{
    margin-bottom: 30px;
}

.nrnx{
    overflow: hidden;
	height: auto;
	background: #000000;
    margin: 0 0 12px 0;
	opacity: 0.9; 
}



.nwetai {
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.3rem;
    text-align: center;
    line-height: 1.8;
    margin: 25px 0 100px 0;
    position: relative;
    display: inline-block;

}

.nwetai::after {
    position: absolute;
    bottom: -6px;
    left: 0;
    content: '';
    width: 93%;
    height: 1px;
    background: #B05319;
    transform: scale(0, 1);
    transform-origin: center top;
    transition: transform .8s;
}

.nwetai:hover::after {
    transform: scale(1, 1);
}

.nebxtp {
    position: relative;
    height: auto;
    margin: 0 -3px 30px -3px;
    overflow: hidden;
}

.nenx{
    overflow: hidden;
    height: auto;
    background: #000000;
    margin: 0;
    opacity: 0.9; 
}

.nebxtp img {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .7s ease-in-out;
}

.nebxtp:hover img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
    background-color: rgba(58, 52, 42, 0);
    opacity: 0.5;
}


.ymd{
    text-align: left;
    font-size: 11px;
    margin: 0;
}


.nctxt {
    font-size: 14px;
    text-align: left;
    line-height: 1.4;
    margin-bottom: 1rem;
}

@media (min-width: 576px) {
    .nedmytt {
        margin: 15px 0 0 0;
        font-size: 12px;
    }
    
    .nctxt {
        font-size: 14px;
        text-align: left;
        line-height: 1.4;
    }
    
}

.nwdatym{
    margin: 40px 0 0 0;
}

.nwdatym h3{
    font-family:"リュウミン M-KL","Ryumin Medium KL";
    letter-spacing: 0.8rem;
    line-height: 1.8;
    margin: 15px 0 0 0;
}

.dekont{
    font-size: 14px;
    font-weight: 300;
    color: #000;
    line-height: 2.2;
    margin: 60px 0 0 0;
}

.demarg{
    margin: 30px 0 30px 0;
    width: 100%;
}

.dtimlft{
    width: 60%;
    margin: 40px 0 0 0;
}


.lebxtp {
    margin: 0 -15px 40px -15px;
}



.lebxtp img {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .7s ease-in-out;
}

.lebxtp:hover img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
    background-color: rgba(58, 52, 42, 0);
    opacity: 0.5;
}
.lenx{
    width: 100%;
    padding-top: 50%;
    position: relative;
    overflow: hidden;
    background-color: #000;
}

.lenx img {
    width: 100%;
    height: 100%;
    position: absolute;
    background: #000000;
    top: 0;
    object-fit: cover;
}

.thumbNailWrap{
    width: 100%;
    padding-top: 50%;
    position: relative;
    overflow: hidden;
    background-color: #000;
}

.thumbNailWrap img {
    width: 100%;
    height: 100%;
    position: absolute;
    background: #000000;
    top: 0;
    object-fit: cover;
}

.nwtxcm {
    margin: 0 -3px 0 -3px;
}

.nwtxcm ul{
    list-style: none;
    padding-left: 0;
}

.netxt {
    font-size: 13px;
    font-family: "リュウミン M-KL", Ryumin Medium KL, serif;
    text-align: left;
    line-height: 1.4;
    margin: 5px 0 8px 0;
}

.nnccom{
    font-size: 11px;
    line-height: 1.4;
}

@media (min-width: 576px) {

    .netxt {
        font-size: 16px;
        text-align: left;
        line-height: 2.0;
        margin: 5px 0 8px 0;
    }
    
    .nnccom{
        font-size: 13px;
        line-height: 1.8;
    }

}

.nwmtit {
    display: flex;
}

.newp {
    padding: 20px 0 50px 0;
}

.cta {
    margin: 35px 0 40px 8px;
}
.cta a {
    font-size: 14px;
    font-weight:bold;
    letter-spacing: 0.3rem;
    position: relative;
    display: inline-block;
    transition: .3s;
    }
    .cta a::after {
    position: absolute;
    height: 2px;
    bottom: 0;
    left: 0;
    content: '';
    width: 0;
    height: 1px;/*下線の太さ*/
    background-color:#000 ;/*下線の色*/
    transition: .3s;
    }
    .cta a:hover::after {
    width: 100%;
    }



.rebxtp {
    position: relative;
    height: auto;
    margin: 0 -3px 0 -3px;
    overflow: hidden;
}

.rebxtp img {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .7s ease-in-out;
}

.rebxtp:hover img {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
    background-color: rgba(58, 52, 42, 0);
    opacity: 0.5;
}

.dtlik a{
    text-decoration: underline;
    padding-bottom: 2px;
}


/*== ボタン共通設定 */
.vbtn{
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
	overflow: hidden;
    /*ボタンの形状*/
	text-decoration: none;
	display: inline-block;
   	border: 1px solid #555;/* ボーダーの色と太さ */
    padding: 1px 50px;
    text-align: center;
    outline: none;
    /*アニメーションの指定*/   
    transition: ease .2s;
    margin: 0 0 20px 5px;
}

/*ボタン内spanの形状*/
.vbtn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#333;
    font-family: 'Bodoni Moda', serif;
    font-size: 11px;
    line-height: 2.0rem;
}

.vbtn:hover span{
	color:#fff;
}

/*== 背景が流れる（左から右） */
.bgleft:before {
    content: '';
    /*絶対配置で位置を指定*/
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    /*色や形状*/
    background:#333;/*背景色*/
    width: 100%;
	height: 100%;
    /*アニメーション*/
    transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
    transform: scale(0, 1);
	transform-origin: right top;
}

/*hoverした際の形状*/
.bgleft:hover:before{
	transform-origin:left top;
	transform:scale(1, 1);
}

@media (min-width: 576px) {
    .vbtn{
        padding: 0 30px;
        margin: 0 0 20px 5px;
    }
    .vbtn span {
        font-size: 8px;
        line-height: 2.0rem;
    }
}

@media (min-width: 768px) {
    .vbtn{
        padding: 1px 50px;
    }
    .vbtn span {
        font-size: 8px;
        line-height: 2.0rem;
    }
}

/*ページャーボタン*/
.pager{
    text-align:center;
    margin: 150px 0 80px 0;
    padding:10px;
    clear:both;
}

.pager a{
    border: 1px solid #c2c2c2;
    color: #333;
    font-size: 13px;
    padding: 0.5em 0.9em;
    text-decoration: none;
    margin:0 4px;
}

/*現在のページのボタン*/
.pager a.current{
    background: #848484;
    border: 1px solid #848484;
    color: #fff;
    font-size: 13px;
    padding: 0.5em 0.9em;
    margin:0 4px;
    text-decoration: none;
}

.pager a:hover{
    background:#747474;
    border: 1px solid #747474;
    color: #fff;
    transition: 1.0s ;
}

.pagerwrk{
    text-align:center;
    margin: 70px 0 80px 0;
    padding:10px;
    clear:both;
}

.pagerwrk a{
    border: 1px solid #c2c2c2;
    color: #333;
    font-size: 13px;
    padding: 0.5em 0.9em;
    text-decoration: none;
    margin:0 4px;
}

/*現在のページのボタン*/
.pagerwrk a.current{
    background: #848484;
    border: 1px solid #848484;
    color: #fff;
    font-size: 13px;
    padding: 0.5em 0.9em;
    margin:0 4px;
    text-decoration: none;
}

.pagerwrk a:hover{
    background:#747474;
    border: 1px solid #747474;
    color: #fff;
    transition: 1.0s ;
}

.overPagerPattern{
    padding:0 2px ;	
}


.evdtbxpp{
    margin: 100px auto 150px;
}


.evnew-box {
    border-bottom: 1px solid #ccc;
    padding: 1.4rem 0 2.2em 0;
    margin-bottom: 3.4rem;
}
.evnew-date {
    font-size: 11px;
    font-weight: 500;
    font-family: 'Roboto', sans-serif;
    letter-spacing: 0.2rem;
    line-height: 1.8;
    display: block;
    margin-bottom: 1.4rem;
}
.evnew-title {
    font-size: 18px;
    font-family: YuGothic, "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", 'Noto Sans JP', "Meiryo", "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
    font-weight: 600;
    letter-spacing: 0.1rem;
    line-height: 1.6;
    margin: 0 0 0 0;
}

.eveneig {
    max-width: 100%;
}

.evedatx {
    margin: 2.4rem 0 0 0;
    font-size: 14px;
    font-weight: 300;
    line-height: 2.2;
}

@media screen and (min-width: 600px){
    .evnew-box {
        padding: 1.4rem 0 1.4em 0;
        margin-bottom: 2.4rem;
    }
    .evnew-date {
        font-size: 11px;
        margin-bottom: 1rem;
    }
}

@media screen and (min-width: 768px){
    .evedatx {
        font-size: 16px;
        line-height: 2.4;
    }
    .evnew-box {
        padding: 1.4rem 0 2em 0;
        margin-bottom: 3rem;
    }
    .evnew-date {
        font-size: 13px;
    }
    .evnew-title {
        font-size: 26px;
        letter-spacing: 0.1rem;
        line-height: 1.4;
        margin-top: 0.5rem;
    }
    
}


.button-029 {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 230px;
    margin:0 auto;
    padding: 1.2em 1.6em;
    overflow: hidden;
    border: 1px solid #232323;
    border-radius: 5px;
    background-color: #fff;
    color: #232323;
    font-size: 14px;
    font-weight:bold;
    letter-spacing: 0.3rem;
}

.button-029:hover {
    background-color: transparent;
    color: #fff;
}

.button-029::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 0;
    height: 100%;
    background-color: #000000;
    content: '';
    transition: width .3s ease;
}

.button-029:hover::before {
    width: 100%;
}

.button-029::after {
    transform: rotate(45deg);
    width: 8px;
    height: 8px;
    margin-left: 10px;
    border-top: 1px solid #000000;
    border-right: 1px solid #000000;
    content: '';
}

.button-029:hover::after {
    border-color: #fff;
}




.ctb {
    margin: 70px 0 0 0;
}
.ctb a {
    font-size: 14px;
    font-weight:bold;
    letter-spacing: 0.3rem;
    position: relative;
    display: inline-block;
    transition: .3s;
    }
    .ctb a::after {
    position: absolute;
    height: 2px;
    bottom: 0;
    right: 0;
    content: '';
    width: 0;
    height: 1px;/*下線の太さ*/
    background-color:#000 ;/*下線の色*/
    transition: .3s;
    }
    .ctb a:hover::after {
    width: 100%;
    }

    @media screen and (min-width: 992px){
        .ctb {
            margin: 100px 0 0 0;
        }
        
    }




/* WORKS ---------------------------------------*/
.fcbw h4{
    color: #fff;
}
.hidden {
    /* figcaptionの内容はfancyboxのギャラリー用なので非表示にしておく */
    display: none;
}

.capw {
    color: #FFF;
    font-size: 14px;
}
.capp {
    color: #FFF;
}


/* ACCESS ---------------------------------------*/
.s-google-map {
    padding: 60px 0 0 0;
}


.s-google-map h3 {
    color: #1c1c1c;
    font-size: 28px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}


@media (min-width: 768px) {
    .s-google-map h3 {
        font-size: 38px;
        letter-spacing: 0.4rem;
        line-height: 1.3;
        margin: 40px 0 30px 0; 
    }

}




#map_canvas0 {
    width: 100%;
    height: 370px;
    margin: 0;
}

#map_canvas {
    width: 100%;
    height: 370px;
    margin: 0;
}

.madtt_01 {
    text-align:left;
    list-style-type:none;
    margin: 20px 0 0 0;
    padding: 0;
}


.madtt_01 li {
    font-size: 14px;
    font-weight:300;
    line-height: 2;
    display: inline-block;
    margin-right:12px;
    padding-left:16px;
}

.madtt_01 li span {
    font-weight:400;
}

@media print, (min-width: 768px) {
    #map_canvas0 {
        width: 100%;
        height: 420px;
        margin: 0;
    }

    #map_canvas {
        width: 100%;
        height: 550px;
        margin: 0;
    }
    .madtt_01 {
        text-align:center;
        list-style-type:none;
        margin: 30px 0 0 0;
        padding: 0;
    }

    .madtt_01 li {
        font-size: 16px;
        line-height: 2;
        margin-right:12px;
        padding-left:16px;
        text-align: center;
    }

    .madtt_01 li+li {
        border-left:1px solid #999;
    }
}

.list_table > dt,
.list_table > dd {
    padding: 1em;
    margin: 0px;
}

.list_table > dt {
    font-size: 14px;
    letter-spacing: 0.2rem;
}

.list_table > dd p{
    font-size: 14px;
    line-height: 1.8;
}

@media print, (min-width: 768px) {
    .list_table {
        display: flex;
        flex-wrap: wrap;
    }
    .list_table > dt,
    .list_table > dd {
        display: flex;
        flex-direction: column;
        justify-content: top;
    }
    .list_table > dt {
        width: 37%;
        font-size: 16px;
        font-weight: 400;
    }
    .list_table > dd {
        width: 63%;
    }
    .list_table > dd p{
        font-size: 16px;
        line-height: 2;
    }
}


/* CONTACT ---------------------------------------*/
.costra{
    background-image:url(../images/contact_top.jpg);
    background-position:center bottom;
    background-size:cover;
    width:100%;
    height:430px;
    text-align: center;
    padding: 35px 0 0 0;
}

.costra h3{
    color: #fff;
    font-size: 32px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.costra h3 span{
    color: #fff;
    font-size: 14px;
    font-style: normal;
    letter-spacing: 0.3rem;
    line-height: 1.3;
    margin: 5px 0 0 0;
}

.costra p {
    color: #fff;
    margin: 30px 0 40px 0;
    text-align: left;
}

@media (min-width: 768px) {
    
.costra h3 {
    font-size: 38px;
    letter-spacing: 0.4rem;
    line-height: 1.3;
    margin: 40px 0 10px 0; 
}
}

/* FOOTER ---------------------------------------*/
.bgfto{
    margin-top: 40px;
}

.bgfto p{
    padding: 15px 0 00;
    font-size: 12px;
    letter-spacing: .15rem;
    color: #000 !important;
}

footer ul{
    margin:0 auto 30px;
    text-align: center;
}

footer li{
    margin: 20px 12px 0 12px;
}

footer ul a{
    transition: 1.0s ;
    color: #000;
}

footer ul a:hover{
    color: #727272;
}


.fflo{
    margin: 30px 0 0 0;
}

.fflg{
    margin: 30px 0 0 0;
}

.fflg img{
    width: 200px;
    margin-top: 30px;
}

.gftr li {
    font-size: 13px;
    font-family: 'Noto Serif JP', serif;
    font-weight: bold;
}

@media (min-width: 576px) {
    .fflg img {
        width: 250px;
    }
}

.copyr{
    padding: 0 0 30px 0;
    font-size: 9px;
    letter-spacing: .05rem;
    color: #000 !important;
}


/*----------------------------------
Back To Top
------------------------------------*/

.s-back-to-top {
    position: fixed;
    right: 2.125rem;
    bottom: -3.125rem;
    display: block;
    width: 1.875rem;
    height: 3rem;
    z-index: 9;
    background: #5F5F5F;
    border-radius: 3.125rem;
    text-align: center;
    transition-duration: 300ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}

.s-back-to-top:before {
    display: block;
    font-size: 0.75rem;
    font-style: normal;
    font-family: "Material Icons";
    color: #fff;
    line-height: 3rem;
    content: "keyboard_arrow_up";
    transition-duration: 300ms;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
}
.s-back-to-top:hover {
    background: #C3C3C3;
}

.s-back-to-top:hover:before {
    color: #6B6B6B;
}

.s-back-to-top:focus,
.s-back-to-top:hover {
    text-decoration: none;
}

/* The button becomes visible */
.s-back-to-top.-is-visible {
    bottom: 3.125rem;
    opacity: .8;
}

.s-back-to-top.-is-visible:hover {
    opacity: 1;
}

/* If the user keeps scrolling down, the button is out of focus and becomes less visible */
.s-back-to-top.-zoom-out {
    opacity: .6;
}


/* Back To Top */
.pagetop{
    display: none;
    position: fixed;
    right: 15px;
    bottom: 20px;
    z-index: 100;
}
.pagetop a{
    display: block;
    font-size: 0;
    width: 50px;
    height: 50px;
    text-align: center;
    background: #5c5c5c;
    border-radius: 50%;
    line-height: 50px;
}
.pagetop a i{
    font-size: 20px;
    color:#fff;
    line-height: 48px;
}

/*----------------------------------
  PARALLAX
------------------------------------*/


.parallaxContainer {
	position: relative;
	overflow: hidden;
	text-align: center;
    background-position: center center;
    height: 100%;
}

.parallaxContainer:before {
    background-color: rgba(0,0,0,0.2);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: ' ';
    z-index: 1;
}



.g-padding-y-160--xs {
    padding-top: 18.375rem;
    padding-bottom: 18.375rem;
}




.und-header {
    min-height: 100vh;
    max-height: 999px;
    padding: 0;
    color: #FFFFFF;
    position: relative;
    overflow: hidden;
}

.und-header.und-header-small {
    min-height: 50vh;
    max-height: 350px;
}

@media (min-width: 768px) {
    .und-header.und-header-small {
        min-height: 60vh;
        max-height: 440px;
    }
}

.und-header:before {
    background-color: rgba(0, 0, 0, 0.3);
}

.und-header .und-header-image {
    position: absolute;
    background-size: cover;
    background-position: center center;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.und-header:after,
.und-header:before {
    position: absolute;
    z-index: 0;
    width: 100%;
    height: 100%;
    display: block;
    left: 0;
    top: 0;
    content: "";
}

.content-center {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    text-align: center;
    color: #FFFFFF;
    padding: 0 15px;
    width: 100%;
    max-width: 950px;
}

.undtitle {
    font-size: 35px;
    font-family: "Cormorant Garamond", serif;
    font-weight: 600;
    letter-spacing: 0.3rem;
    color: #fff;
    line-height: 1.3;
    margin: 0;
    display: inline;

}

@media screen and (min-width: 768px){
    .undtitle {
        font-size: 40px;
    
    }
}
.captitlpp {
    position: absolute;
    bottom: 0;
    z-index: 99;
    padding: 10px 20px 30px;
    letter-spacing: .2rem;
    color: #fff;
    font-size: 12px;
    writing-mode: vertical-lr;
}


.und404 {
    color: #FFFFFF;
    font-family: 'Cormorant Garamond', serif;
    margin: 0;
    display: inline;

}

.bndtitle {
    margin: 0;
    display: inline;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;

}

.endetitt {
    font-family: 'Cormorant Garamond', serif;
    letter-spacing: 0.8rem;
    font-size: 22px;
    margin: 0 0 0 13px;
}

.endetitt span {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    letter-spacing: 0.3rem;
    font-size: 11px;
    margin: 15px 0 40px 0;
}



/*----------------------------------
About
------------------------------------*/
.undetitt {
    font-family: "リュウミン R-KL", Ryumin Regular KL, serif;
    letter-spacing: 0.8rem;
    font-size: 22px;
    margin: 0 0 0 13px;
}

.undetitt span {
    display: block;
    font-family: "リュウミン R-KL", Ryumin Regular KL, serif;
    letter-spacing: 0.3rem;
    font-size: 11px;
    margin: 15px 0 40px 0;
}

.undemargin{
    margin: 80px 0 80px 0
}


.magmgn{
    margin-bottom: 30px;
}

.nbtexp {
    margin-top: 50px;
    margin-bottom: 80px;
}

.nbtexp p{
    margin-bottom: 0.4rem;
}


.abtexp {
    margin-top: 0px;
    margin-bottom: 80px;
}

.abtexp p{
    margin-bottom: 0.4rem;
}

.abtexp ul {
    list-style: disc;
    padding-left: 15px;
    margin-top: 10px;
}

.abtexp ul li{
    padding: 7px 0 7px -3px;
    margin-left: 5px;
    line-height: 2.3rem;
}

img.gray {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
}


/*----------------------------------
contact
------------------------------------*/
.codettel {
    letter-spacing: 0.4rem;
    line-height: 2.7rem;
    font-size: 20px;
    font-weight: 400;
    margin: 30px 0 0 0;
}

.codettelsp {
    letter-spacing: 0.2rem;
    line-height: 1.0rem;
    font-size: 22px;
    margin-top: 18px;
}

.codephone {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 16px;
    letter-spacing: .2rem;
}

.coessr{
    font-size: 12px;
    vertical-align: top;
    display: inline-block;
}

.codetitt {
    font-family: "游ゴシック","游ゴシック体",YuGothic,"YuGothic M","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif !important;
    letter-spacing: 0.2rem;
    line-height: 2.7rem;
    font-size: 18px;
    margin: 30px 0 0 0;
}

.compsend dl dt {
    text-align: center;
    font-size: 20px;
    margin: 30px 0 0 0;
}

.compsend dl dd {
    font-size: 14px;
    line-height: 2.2em;
    margin: 50px 0 100px 0;
    padding: 0 30px 0 30px;
    text-align: left;
}

.compsend dl dd p {
    font-size: 15px;
    text-align: center;
    margin: 90px 0 0 0;
}

.co-lb-ti {
    text-align: center;
}

/*----------------------------------
WORKS
------------------------------------*/
.wobxpp{
    margin-top: 70px;
}

.works-title {
    font-size: 18px;
    font-family: 'Noto Serif JP', serif;
    font-weight: 600;
    letter-spacing: 0.25rem;
    line-height: 3rem;
    margin-top: 1.5rem;
}

.wodisp {
    margin: 0;
}

.fancybox__caption{
    font-size: 16px;
}