﻿@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300&display=swap');

body,.font_serif{
    font-family: "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif!important;
}
#main_img .main_txt p, #contents1 .con_box .con_sub_title, #contents1-h .con_box .con_sub_title, #contents2 .title, #top_cms .cms_title h2, #top_banner .txt_color2{
    font-family: 'Cormorant Garamond', serif;
}
#pc_nav li a, .contact_bt a, #contents1 .modal_btn, #contents1-h .modal_btn, #contents2 .con2_title1 span, .more {
    font-family: 'Plus Jakarta Sans', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
}
#cms_2-c .box_txt1 {
    font-family: 'Shippori Mincho B1', "游明朝", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "Sawarabi Mincho", "serif";
}


/* ======================================================================================
　　cursor
======================================================================================== */
.cursor{
    width: 8px;
	height: 8px;
	position: fixed;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 9999;
	transition: 1s;
	transition-property: opacity,background,width,height,transform
}
.cursor::before {
    content: " ";
    display: block;
    width: 500px;
    height: 500px;
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: 1s;
    background-image: url(../dup/img/cursor.png);
    background-size: contain;
    background-repeat: no-repeat;
}
.cursor.is-active::before{
	opacity: 0.5;
}

/* ======================================================================================
　　color
======================================================================================== */
.linkStyle{color: #160a0a;transition: opacity .3s;text-decoration: underline;}
.linkStyle:hover{opacity: 0.7}
body, .txt_color_nomal, #top_cms, .more a {
    color: #222!important;
}

.bg_black {
    background-color: #0F0B09;
}
.bg_white {
    background-color: #f9f8f7;
}
.bg_color1 {
    background-color: #f9f8f7;
}
.bg_color2 {
    background-color: #f9f8f7;
}
.bg_color3 {
    background-color: #efecea;
}
.bg_color5 {
    background-color: #271407;
}
.hvr_bg_color2:hover {
    background-color: #ddaf54;
}

.txt_white, #page_title h2, #page_title p{
    color: #f9f8f7;
}
.txt_color1 {
    color: #271407;
}
.txt_color2, #sp_nav a[href^="tel:"], #top_info a[href^="tel:"] {
    color: #431f22;
}
#sp_nav a[href^="tel:"], #top_info a[href^="tel:"] {
    border: 1px solid;
}
.txt_color4 {
    color: #222;
}

.hvr_txt_color2:hover {
    color: #ddaf54;
}

.border_color2 {
    border-color: #ddaf54;
}

#main_img .bg_box{
    background-color: #000;
}
.pager li a {
    color: #665f5f;
}
.pager li:not(.prev):not(.next) a {
    background-color: rgba(255,255,255,0.4);
    border: solid 1px rgba(255,255,255,0);
}
.pager li:not(.prev):not(.next) a:hover {
    background-color: #ddaf54;
    border: solid 1px rgba(255,255,255,0.2);
    color: #fff;
}

#contents1 .modal .box_txt1, #contents1-h .modal .box_txt1,  #contents2, #top_banner .txt_color2, #footer, #contents2 .con2_title1 span{
    color: #f9f8f7!important;
}


/* ======================================================================================
　　all
======================================================================================== */

html, body {
    font-size: 16px;
    line-height: 2;
}
.txt_shadow_h {
    text-shadow: 0 0 5px rgb(0 0 0 / 0%);
}
.more a::before, .more a::after {
    border-color: #222;
}
#top_cms .more a {
    padding: 15px 5px;
    letter-spacing: 3px;
    font-size: 14px;
}
.more a:hover {
    background-color: rgba(221,211,205,0.57);
}

/* ---------- font-size ---------- */
.font_100per {
    font-size: 18px;
}
.font_2up {
    font-size: -webkit-calc(1rem + 4px);
    font-size: calc(1rem + 4px);
}
.font_2dw {
    font-size: -webkit-calc(1rem - 0px);
    font-size: calc(1rem - 0px);
}

/* ---------- header ---------- */
h1 {
    z-index: 98;
    width: 180px;
    top: 22px;
    left: 31px;
}
#sp_nav img {
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    max-width: inherit;
}
header .menu_stick {
    top: 32px;
}
header .menu_stick span{
    border-bottom: 3px solid;
    margin-bottom: 7px;
}
header .menu_stick.stick_trans span:last-child{
    margin-top: -3px;
}
#pc_nav {
    z-index: 97;
    top: 28px;
    right: 143px;
    display: flex;
    font-size: 17px;
    position: fixed;
    font-weight: bold;
}
#pc_nav ul{
    display: flex;
}
#pc_nav li {
    margin-bottom: 0;
    padding: 0 15px;
}
#pc_nav li a {
    text-shadow: 0 4px 5px rgb(0 0 0 / 13%);
}
#pc_nav .contact_bt {
    background-color: transparent;
    transform: translateX(13px);
    margin-top: -9px;
    border: 1px solid #fff;
}
#pc_nav .contact_bt:hover{
    border: 1px solid #ddaf54!important;
}

#header {
    transition: all .5s;
    z-index: 97;
}
#header.is-show {
    height: 95px;
}
#header::before{
    transition: all .5s;
    opacity: 1;
}
#header.is-show::before{
    opacity: 1;
}
#header .fix_logo{
    transition: all .5s;
    width: 180px;
    top: 22px;
    left: 31px;
    opacity: 0;
}
#header.is-show .fix_logo{
    opacity: 1;
}
#pc_nav.is-show  li a{
    color: #fff!important;
}
#pc_nav.is-show .contact_bt, #header .contact_bt.top{
    border: 1px solid #fff;
}
#pc_nav.is-show .contact_bt a, #header .contact_bt.top.active a{
    color: #fff;
}
#header .contact_bt.top{
    display: none;
    z-index: 4;
}


/* ---------- footer ---------- */
#footer .con_img {
    background-color: #323232;
}
#footer .con_img figure{
    display: none;
}


/* ======================================================================================
　　top
======================================================================================== */
.width_1280-1000 {
    max-width: 1380px;
}

/* ---------- main_img ---------- */
.main_txt1, .main_txt2{
    z-index: 4;
}
.main_txt1 {
    width: 80%;
    max-width: 1047px;
    top: 44%;
}
.main_txt1 img{
    transform: rotate(-6deg);
}
.main_txt2 {
    letter-spacing: 2px;
    top: 62%;
    text-align: center;
    font-size: 25px;
    width: 100%;
}

header .scroll_d{
	width: 1px;
	height: 150px;
	right: 0;
	left: 0;
	bottom: 0;
	margin: auto;
	z-index: 3;
}
header .scroll_d span{
	width: 1px;
	height: 100%;
	background-color: rgba(255,255,255,0.4)
}
header .scroll_d span::before{
	position:absolute;
	content: "";
	display: block;
	width: 100%;
	background-color: #fff;
	animation: line 4s ease 0s infinite;
}
@keyframes line {
	0% {
		bottom: 150px;
		height: 0;
	}
	20% {
		bottom: 0;
		height: 150px;
	}
	40% {
		bottom: 0;
		height: 0;
	}
	100% {
		bottom: 0;
		height: 0;
	}
}

/* ---------- contents ---------- */
#contents1 .width_90per, #contents1-h .width_90per {width: 93%!important;}
#contents1 .con_title::before, #contents1-h .con_title::before{display: none;}
#contents1 .posi_abs {
    width: 72%!important;
    bottom: 0;
}
#contents1  .grid_5{
    padding-top: 130px;
}
@media screen and (min-width: 1600px){
/*#contents1  .grid_5{
    padding-top: 262px;
}*/
#contents1 .width_90per, #contents1-h .width_90per {
    width: 90%!important;
}
#contents1-h .con_box {
    margin-bottom: -125px;
}
}

/* ---------- top modal ---------- */
html.modalset{
	overflow: hidden;
}
main.modalset {
    transform: none;
}
#contents1 .con1_modal, #contents1-h .con2_modal {
    margin: 5px auto 0;
}
#contents1 .modal_btn, #contents1-h .modal_btn {
    cursor: pointer;
    color: #222;
    padding: 15px;
    letter-spacing: 3px;
    font-size: 14px;
}
#contents1 .modal_btn:hover, #contents1-h .modal_btn:hover {
    letter-spacing: 7px;
}
#contents1 .modal_btn:hover i, #contents1-h .modal_btn:hover i{
    position: relative;
    right: -10px;
}
#contents1 .modal .box_title1, #contents1-h .modal .box_title1 {
    margin: auto;
    margin-bottom: 67px;
    max-width: 507px;
    width: 100%;
}
#contents1 .modal, #contents1-h .modal{
	display: none;
	width: 100%;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 9998;
	line-height: 2;
}
#contents1 .modal-wrap, #contents1-h .modal-wrap  {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 20px;
	overflow: hidden;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: none;
	overflow: -moz-scrollbars-none;
}
#contents1 .modal-wrap::-webkit-scrollbar, #contents1-h .modal-wrap::-webkit-scrollbar {
	display: none;
}
#contents1 .modal-wrap:after, #contents1-h .modal-wrap:after {
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 1px;
	height: 100%;
}
#contents1 .modal-bg, #contents1-h .modal-bg {
    position: absolute;
    left: 0;
    top: 0;
    background: rgba(39,20,7,0.95);
    width: 100%;
    height: 100%;
}
#contents1 .modal-box, #contents1-h .modal-box {
    width: 90%;
    max-width: 1100px;
    box-sizing: border-box;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    padding: 10px;
    padding-bottom: 23px;
    border-radius: 22px;
}
#contents1 .modal-box .inner, #contents1-h .modal-box .inner{
	max-height: 100%;
    overflow: auto;
	-ms-overflow-style: none;
}
#contents1 .modal-box .inner::-webkit-scrollbar, #contents1-h .modal-box .inner::-webkit-scrollbar {
  width: 2px;
  height: 10px;
}
#contents1 .modal-box .inner::-webkit-scrollbar-track, #contents1-h .modal-box .inner::-webkit-scrollbar-track {
  border-radius: 5px;
  box-shadow: 0 0 4px #aaa inset;
}
#contents1 .modal-box .inner::-webkit-scrollbar-thumb, #contents1-h .modal-box .inner::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: #f9f8f7;
}
#contents1 .modal-box .modal-close, #contents1-h .modal-box .modal-close {
    cursor: pointer;
    position: absolute;
    top: 20px;
    right: 19px;
    width: 30px!important;
    left: auto;
}
#contents1 .modal_img, #contents1-h .modal_img{
    max-width: 600px;
}
#contents1 .modal_title1, #contents1-h .modal_title1{
	padding-top: 60px;
}
#contents1 .modal_title1:before, #contents1-h .modal_title1:before{
	content: "";
	display: block;
	background-color: #666; 
	width: 1px;
	height: 50px;
	position: absolute;
	top: 0;
	left: 2px;
}
#contents1 .modal_title1 span, #contents1-h .modal_title1 span{
	transform: rotate(90deg);
	display: block;
	line-height: 1;
}
#contents1 .modal-box, #contents1-h .modal-box {
    vertical-align: top;
    margin-top: 80px;
}
/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px){
#contents1 .modal-box .modal-close, #contents1-h .modal-box .modal-close {
    top: 13px;
    right: 17px;
    width: 45px;
    width: 38px!important;
}
#contents1 .modal-box .inner, #contents1-h .modal-box .inner{
    max-height: 600px;
}
}

/* #contents2 */
#contents2 .lantern {
  margin: auto;
  background: url(../dup/img/lantern_sprites.png) 0 0 no-repeat;
  height: 0;
  overflow: hidden;
  padding-top: 105px;
  width: 95px;
  animation: sprite1 1.5s steps(8, start) infinite;
  -webkit-animation: sprite1 1.5s steps(8, start) infinite;
}
@keyframes sprite1 {
	0%    {background-position: 0 0;}
	100%  {background-position: -760px 0;}
}
@-webkit-keyframes sprite1 {
	0%    {background-position: 0 0;}
	100%  {background-position: -760px 0;}
}

#contents2 .title {
    text-align: center;
    background-image: url(../dup/img/pole_line.png);
    background-position: bottom center;
    background-repeat: no-repeat;
    background-size: 93px;
    padding: 36px 0 38px;
    margin-bottom: 50px;
    font-size: 70px;
    line-height: 1;
    letter-spacing: 5px;
}
#contents2 .con2_box {
    margin: 0;
    padding-bottom: 150px;
    background-color: #251306;
}


/* ---------- top_banner ---------- */
#top_banner a{
    min-height: 600px;
}
#top_banner a p{
    font-size: 16px;
}
#top_banner a p .txt_color2 {
    font-size: 38px;
    letter-spacing: 6px;
}



/* ======================================================================================
　　under
======================================================================================== */
#page_title .page_title_box{
    background-image: url(../dup/img/pole_line.png);
    background-position: bottom center;
    background-repeat: no-repeat;
    background-size: 93px;
    padding: 0 0 25px;
    top: 137px;
}
#page_title img{
    opacity: 0.5;
}
.cate_list li a {
    color: #fff;
    background-color: rgba(70,29,0,0.3);
    font-size: 17px;
    text-shadow: 1px 1px 2px rgb(0 0 0 / 7%);
}

/* ---------- cms1 ---------- */
#cms_3-d .cate_img1 {
    max-height: 380px!important;
}
#cms_3-d .box_title{
    display: flex;
    align-items: center;
    white-space: nowrap; 
}
#cms_3-d .box_title::after {
    content: '';
    display: block;
    background: linear-gradient(90deg, #817e7e 45%,rgba(255,255,255,0) 20% ,rgba(255,255,255,0) 100%) repeat-x left top/6px 100%;
    background-size: 7px 2px;
    width: 100%;
    height: 1px;
    margin-left: 20px;
    margin-right: -25px;
}
.cms_3-a .cate_box{
    background-color: #f9f8f7;
    padding: 15px 15px 7px;
    width: 48%!important;
}

/* ---------- cms3 ---------- */
.cms_4-a figure{
    min-height: 500px!important;
}

/* ---------- cms4, cms5 ---------- */
#cms_1-a .box_title1{
    color: #271407!important;
    font-weight: bold;
}

.topcms_news_type2 .cate_box {
	width: 100%!important;
	margin-right: 3%;
	margin-left: 3%;
	cursor: pointer;
	border-bottom: 1px solid #7c7c7c;
	margin-bottom: 30px;
	box-shadow: 0 6px 12px rgb(0 0 0 / 0);
	/* padding: 20px; */
	/* border-radius: 20px; */
	/* background-color: #f5f5f5; */
}
.topcms_news_type2 .cate_box:hover {
	transform: translateY(-5px);
}
.topcms_news_type2 .cate_box .box_item {
	cursor: pointer;
}
.topcms_news_type2 .txt_height {
	height: 5em
}
/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.topcms_news_type2 .cate_box {width: 100%!important;}
.topcms_news_type2 .txt_height {height: 3em}
}


/* ======================================================================================
　　window size
======================================================================================== */

@media screen and (max-width: 950px){
#pc_nav {
    right: 99px;
}
}

/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
.font_14_tb, .font_100per, .font_2dw_tb {
    font-size: 16px;
}
#sp_nav nav{
    font-size: 18px;
}

#sp_nav li a:hover .jp {
    opacity: 0;
}
#sp_nav li a:hover .en {
    opacity: 1;
}

#pc_nav, .cursor {
    display: none!important;
}
header .menu_stick.stick_trans{
    color: #222;
}
#header .contact_bt.top{
    opacity: 1!important;
}
h1, #header .fix_logo {
    width: 123px;
}
#header .fix_logo {
    top: 13px;
    left: 22px;
}
#header .contact_bt.top{
    display: block;
}

#contents1 .grid_5 {
    padding-top: 0;
}
#contents1 .width_90per, #contents1-h .width_90per, #contents1 .posi_abs {
    width: 100%!important;
}
#contents1 .con_title .border, #contents1-h .con_title .border{
    display: none;
}
#contents1 .con_title, #contents1-h .con_title {
    letter-spacing: 2px;
    font-size: 24px;
}
#contents2 .title{
    font-size: 50px;
}

#top_cms .more a{
    border: 1px solid;
}

#top_banner a {
    min-height: 357px;
}
#top_banner a p .txt_color2 {
    font-size: 25px;
    letter-spacing: 2px;
}

#cms_3-d .cate_img1 {
    max-height: 229px!important;
}
#cms_3-d .box_title {
    display: block;
}
#cms_3-d .box_title::after{
    display: none;
}

.cms_4-a figure {
    min-height: 300px!important;
}

#page_title {
    height: 324px;
}
#page_title h2 {
    font-size: 33px;
    letter-spacing: 5px;
}
.sitemap_box .more a {
    background-color: #f9f8f7;
}
}

/* ---------- スマホ ---------- */
@media screen and (max-width: 667px){
html, body {
    font-size: 15px;
    line-height: 2;
}
.font_14_tb, .font_100per, .font_14_sp, #sp_nav nav {
    font-size: 16px;
}
.font_2up_sp {
    font-size: -webkit-calc(1rem + 3px);
    font-size: calc(1rem + 4px);
}
#contents1 .con_box p, #contents1-h .con_box p, .con2_txt{
    font-size: 16px;
}

h1 {
    width: 72px;
    top: 12px;
    left: 13px;
}
#header .fix_logo {
    width: 76px;
    top: 7px;
    left: 11px;
}
#header .contact_bt.top{
    display: none!important;
}
#header.is-show::before {
    opacity: 0.4;
}
header .menu_stick {
    top: 32px;
}

#main_img{
    height: 293px;
}
.main_txt1 {
    top: 45%;
}
.main_txt2 {
    font-size: 16px;
    top: 70%;
}
header .scroll_d span{
    display: none;
}

#contents1 .modal-box, #contents1-h .modal-box {
    margin-top: 20px;
}
#contents1 .modal-box, #contents1-h .modal-box{
    width: 100%;
}

#contents2 .con2_box {
    padding-bottom: 110px;
}
#contents2 .title {
    font-size: 28px;
    letter-spacing: 2px;
}
#contents1 .con_title, #contents1-h .con_title {
    letter-spacing: 2px;
    font-size: 22px;
    line-height: 2;
    margin-bottom: 30px;
}
.con2_title2 {
    letter-spacing: 2px;
    font-size: 23px;
    margin-bottom: 50px;
}

#top_banner a {
    min-height: 280px;
}
#top_banner a .banner_bg {
    opacity: 0.7;
}

#cms_3-d .cate_img1 {
    max-height: 136px!important;
}
.cms_4-a .cate_box{
    margin-bottom: 30px;
}
.cms_4-a .cate_box:last-of-type{
    margin-bottom: 0;
}
.cms_4-a figure {
    min-height: 358px!important;
}
.cms_3-a .cate_box {
    width: 100%!important;
}

#page_title {
    height: 270px;
}
#page_title .page_title_box {
    top: 110px;
}
#page_title h2 {
    font-size: 24px;
    letter-spacing: 2px;
}
#page_title p {
    font-size: 15px;
}
.cate_list li a {
    font-size: 16px;
}
}

/* fix_bnr ----------------------------------------- */
#fix_bnr {
    bottom: 84px;
    right: 0;
    z-index: 10;
    width: 16%;
    max-width: 100px;
    transition: 0.5s;
    transform: translateX(100%);
}
#fix_bnr.scroll {
    transform: translateX(0);
}
#fix_bnr.close{
    opacity: 0;
    z-index: -1;
}
@media screen and (max-width: 768px){
#fix_bnr {
    width: 23%!important;
}
}
@media screen and (max-width: 667px){
#fix_bnr {
    width: 18%!important;
    bottom: 62px;
    transform: none!important;
}
}
/* fix_bnr end ----------------------------------------- */


/* ======================================================================================
　　公開後修正
======================================================================================== */

/* 2022.09.13 */
.contact_bnr{
    margin-top: 25px;
    margin-bottom: 40px;
}
.contact_bnr a{
    padding: 18px;
    letter-spacing: 4px;
    display: block;
    background-color: #271407;
    color: #fff;
    transition: all .5s;
}
.contact_bnr a:hover{
    color: #333;
    background-color: transparent;
}