@charset "UTF-8";

/*-----------------------------------------------------
html
-------------------------------------------------------*/
html, body{
	margin: 0;
	padding: 0;
	margin-left:auto;
	margin-right:auto; 
	font-size: var(--base);
	font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3","Yu Gothic Medium","游ゴシック Medium",YuGothic,游ゴシック体,メイリオ,sans-serif;
	color: #333333;
	line-height: 1.0;
	letter-spacing: .1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-feature-settings: 'palt';
    font-feature-settings: 'palt';
	z-index: -9999;
    box-sizing: border-box;
    text-align: left;
}

a{
    text-decoration: none !important;
}


#container{
}

img {
    image-rendering: -webkit-optimize-contrast;
}


/*-----------------------------------------------------
root
-------------------------------------------------------*/

:root {
    
/*font-size*/    
font-size: 62.5% !important;
--base: 1.8rem;
--s10: 1.0rem;
--s12: 1.2rem;
--s13: 1.3rem;
--s14: 1.4rem;    
--s15: 1.5rem; 
--s16: 1.6rem;    
--s18: 1.8rem;
--s20: 2.0rem;
--s22: 2.2rem;
--s24: 2.4rem;    
--s26: 2.6rem;     
--s28: 2.8rem;     
--s32: 3.2rem;
--s38: 3.8rem;
--s40: 4.0rem;
--s42: 4.2rem;
--s44: 4.4rem;
    
--imgh: 34vw; 
	
/*line-height*/    
--lh12: 1.2;
--lh14: 1.4;
--lh16: 1.6;
--lh18: 1.8;
--lh20: 2.0;

    
/*color*/
--main_color: #10561e;
--main_color2: #F1F9F4;
--main_color3: #eb6100;
--yellow1: #D09B2E;
--yellow2: #F7F2E6;
--whi: #ffffff;
--gra1: #f9f9f9;
--gra2: #333333;
}

/*-----------------------------------------------------
font
-------------------------------------------------------*/

@font-face {
  font-family: 'notoSerifJP';
  src: url('../../fonts/NotoSerifJP-Medium.woff2') format('woff2'),
       url('../../fonts/NotoSerifJP-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/*-----------------------------------------------------
global
-------------------------------------------------------*/
.g_only_pc{
    display: block;
}

.g_only_tb{
    display: block;
}

.g_only_sp{
    display: none !important;
}

.g_only_pc_in{
    display: inline-block;
}

.g_w1240{
	max-width: 1240px;
	margin: 0 auto;
}

.g_w1100{
	max-width: 1100px;
	margin: 0 auto;
}

.g_w1000{
	max-width: 1000px;
	margin: 0 auto;
}

.g_w900{
	max-width: 900px;
	margin: 0 auto;
}

.g_w800{
	max-width: 800px;
	margin: 0 auto;
}

.g_font1 {
	font-family: 'notoSerifJP', serif;
	font-weight: 500;
}

.g_t1{
	text-align: center;
}

.g_t1 h2{
	font-size: var(--s32);
	font-weight: 500;
	font-family: 'notoSerifJP', serif;
}

.g_t1vc h2{
	font-size: var(--s42);
	font-weight: 500;
	font-family: 'notoSerifJP', serif;
	writing-mode: vertical-rl;
	text-align: left;
	letter-spacing: 8px;
}

.g_t1vc h2 span.s1{
	font-size: var(--s18);
	display: block;
	padding-right: 10px;
	letter-spacing: 4px!important;
}

.g_t2{
	font-family: 'notoSerifJP', serif;
  	display:flex;
	justify-content: flex-start;
	align-items: flex-end;
	gap: 20px;
}

.g_t2 h2{
	font-size: var(--s42);
	font-weight: 500;
}

.g_t2 span{
	font-size: var(--s16);
}


.g_t1 h3{
	text-align: center;
	font-size: var(--s32);
	line-height: var(--lh14);
	color: var(--main_color);
	font-weight: bold;
}


.g_btn{
	display: inline-flex;
	align-items: center;
	position: relative;
	cursor: pointer;
	overflow: visible;
	font-size: var(--s20);
}

.g_btn::after{
	content: "";
	display: inline-block;
	background: url("../../images/index/btn_line.svg") no-repeat;
	width: 80px;
	height: 10px;
	position: absolute;
	background-size: contain;
	top:60%;
	left: 100%;
	margin-left: 10px;
	transform: translateY(-50%);
	pointer-events: auto;
	z-index: 1;
}

.g_btn:hover::after {
  animation: btnLineHover 0.6s ease;
}

/* アニメーション定義はそのままでOK */
@keyframes btnLineHover {
  0%   { transform: translateY(-50%); }
  50%  { transform: translate(10px, -50%); } /* 右へ10px */
  100% { transform: translateY(-50%); }
}

.g_btn:hover{
    opacity: 0.7;
}

.g_mb_a{
    margin-bottom: 26px;
}

.g_mb_b{
    margin-bottom: 36px !important;
}

.g_mb_c{
    margin-bottom: 46px !important;
}


/*-----------------------------------------------------
header
-------------------------------------------------------*/

#header_box{	
	position: fixed;
    z-index: 10;
    padding: 40px 0 0 36px;
    display: flex;
  	flex-direction: column;
	gap: 30px;
}

.header_logo{
    max-width: 190px;
    height: auto;
}


.header_menu ul{
    display: flex;
  	flex-direction: column;
    width: 210px;
	background: #fff;
	padding: 0 16px;
	border-radius: 6px;
}

.header_menu ul li{
	padding: 20px 10px;
	border-bottom: 1px solid #fafafa;
}

#content{
}

/*-----------------------------------------------------
drawer
-------------------------------------------------------*/
#drawer{
    display: none;
    background: #111111;
    opacity: 0.75;
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0px;
    left: 0px;
    z-index: 80;
}

.drawer_menu{
    display: none;
    background: #ffffff;
    height: 100vh;
    padding: 140px 100px 200px;
    width: 30%;
    position: fixed;
    top: 0px;
    right: 0px;
    z-index: 90;
}

.drawer_menu ul{
    margin-bottom: 60px;
}

.drawer_menu ul li{
    margin-bottom: 40px;
    font-weight: bold;
}

.drawer_menu ul li a{
    display: inline;
}

.drawer_cta {
    width: 76%;
}

.drawer_cta .tel{
    width: 100%;
    text-align: center;
}

.drawer_cta .img{
    width: 100%;
    margin-bottom: 20px;
}

.drawer_cta .img img{
    width: 100%;
    height: auto;
}

.drawer_cta .tx{
    width: 100%;
    font-size: var(--size06);
    margin-bottom: 46px;
    padding: 8px 0px;
    border-top: 1px solid #CCCCCC;
    border-bottom: 1px solid #CCCCCC;
}

.drawer_cta .mail{
    width: 100%;
}

.drawer_cta .mail a{
    display: block;
    width: 100%;
    padding: 26px 0px;;
    text-align: center;
    background: #111111;
    font-weight: bold;
    border-radius: 5px;
}


/*drawer_btn*/
#drawer_btn{
  position: fixed;
  cursor: pointer;
  width: 50px;
  height: 15px;
  right: 2vw;
  top: 55px;
  z-index: 100;
}

/*ボタン内側*/
#drawer_btn span{
    display: inline-block;
    transition: all .4s;/*アニメーションの設定*/
    position: absolute;
    left: 0px;
    height: 3px;
    background: #ffffff;
    width: 100%;
  }

#drawer_btn.black span{
    background: #111111;
}
    
#drawer_btn span:nth-of-type(1) {
  top:0px; 
}

#drawer_btn span:nth-of-type(2) {
  top:6px;
}

#drawer_btn span:nth-of-type(3) {
  top:12px;
}

/*activeクラスが付与されると線が回転して×に*/
#drawer_btn.active span{
    background: #111111;
}

#drawer_btn.active span:nth-of-type(1) {
    top: 0px;
    left: 0px;
    transform: translateY(6px) rotate(-45deg);
}

#drawer_btn.active span:nth-of-type(2) {
  opacity: 0;/*真ん中の線は透過*/
}

#drawer_btn.active span:nth-of-type(3){
    top: 13px;
    left: 0px;
    transform: translateY(-6px) rotate(45deg);
}

/*-----------------------------------------------------
mv
-------------------------------------------------------*/

.mv{
	padding: 120px 80px 0 80px;
}

.mv{
  --kbDur: 8000ms;   /* 1枚の表示時間（= autoplay.delay） */
  --fade: 2000ms;    /* フェード時間（= Swiper speed） */
  --kbFrom: 1.06;    /* 開始スケール：控えめ推奨 */
  --kbTo:   1.02;    /* 終了スケール */
  --mask:   0.08;    /* 黒マスクの濃さ 0~1 */
}

/* ====== レイアウト ====== */
.mv, .mv_slider, .mv_slider .swiper-slide{
  position: relative;
  width: 100%;
  height: 1200px;             /* モバイルのアドレスバー対策 */
  overflow: hidden;
  isolation: isolate;
}

.mv_slider .swiper-slide::before{
  content:"";
  position:absolute; inset:0;
  background:#000; opacity:var(--mask); /* 合成が軽い */
  pointer-events:none; z-index:1;
}

.mv_slider .swiper-slide img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform-origin:50% 50%;
  transform: scale(var(--kbFrom)) translateZ(0);
  will-change: transform;
  backface-visibility:hidden;
  z-index:0;
}

/* ====== Ken Burns（アクティブ時のみ）====== */
@keyframes mv-kb {
  from { transform: scale(var(--kbFrom)) translateZ(0) translate(var(--panX,0), var(--panY,0)); }
  to   { transform: scale(var(--kbTo))   translateZ(0) translate(var(--panX,0), var(--panY,0)); }
}
.swiper-slide-active img{
  animation: mv-kb var(--kbDur) linear forwards;
}

/* ====== パン方向をスライドごとに変える（好みで） ====== */
/* わずかに左右上下へパンすると動きに表情が出る（px でごく小さく） */
.mv_slider .swiper-slide:nth-child(3n+1) img { --panX: 6px;  --panY: 0px; }
.mv_slider .swiper-slide:nth-child(3n+2) img { --panX: -6px; --panY: 0px; }
.mv_slider .swiper-slide:nth-child(3n+3) img { --panX: 0px;  --panY: 4px; }

/* ====== Swiper フェード安定化 ====== */
.swiper { background: transparent; }
.swiper-fade .swiper-slide{ pointer-events:none; }

/* ====== 省エネ配慮 ====== */
@media (prefers-reduced-motion: reduce){
  .swiper-slide img{ animation:none !important; transform:none !important; }
}

/* ====== モバイルはさらに軽く ====== */
@media (max-width: 768px){
  .mv{ --kbFrom: 1.04; --kbTo:1.01; --fade:1600ms; --kbDur:7000ms; }
}

.mv_right {
  position: absolute;
  right: 170px;
  bottom: 0px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  z-index: 10;
  color: #fff;
  font-family: 'Noto Serif JP', serif;
  font-size: var(--s14);
  letter-spacing: 1px;
}

/* copyright */
.mv_copyright {
  writing-mode: vertical-rl; /* 縦書き */
}

/* scroll */
.mv_down {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.mv_down span {
  font-size: var(--s14);
  letter-spacing: 2px;
  writing-mode: vertical-rl; /* 縦書き */
}

/* 下矢印アニメーション */
.mv_down::after {
  content: "";
  display: block;
  width: 1px;
  height: 100px;
  background: #fff;
  margin-top: 8px;
  animation: scrollDown 2s infinite;
  opacity: 0.7;
}

@keyframes scrollDown {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
/*-----------------------------------------------------
box1
-------------------------------------------------------*/

.box1 {
	padding: 100px 0 100px 0;
	z-index: 1;
}

.box1 .g_t1{
	margin-bottom: 40px;
	line-height: var(--lh16);
}

.box1_text{
	text-align: center;
	line-height: var(--lh20);
}

/*-----------------------------------------------------
news_top
-------------------------------------------------------*/
.news_top{
	padding: 80px 0 160px 0;
	background: url("../../images/index/line_logo.svg") repeat-x;
	background-size: 2000px;
}

.news_top .wrap{
  	display:flex;
    justify-content: space-between;
}

.news_top_left{
	width: 40%;
}

.news_top_left p{
	line-height: var(--lh18);
	padding: 40px 0 26px 0;
}

.news_top_right{
	width: 50%;
}

.news_top_right ul{
  	display:flex;
  	flex-direction: column;
	gap: 40px;
}

.news_top_right ul li a{
  	display:flex;
    justify-content: space-between;
}

.news_top_right ul li .img{
	width: 30%;
}

.news_top_right ul li .text{
	width: 62%;
}

.news_top_right ul li .text .time{
	font-size: var(--s14);
	display: block;
	margin-bottom: 12px;
}

.news_top_right ul li .text .t{
	display: block;
	line-height: var(--lh16);
}



/*-----------------------------------------------------
box2（背景と全体）
-------------------------------------------------------*/
.box2{
	padding: 120px 0;
	background: url("../../images/index/slide01.jpg") no-repeat center center;  background-size: cover;
	position: relative;
	overflow: hidden;
	z-index: 2;
	color: #fff!important;
}
.box2::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: rgba(0,0,0,0.70);
}

.box2 .g_btn a{
	color: #fff;
}

.box2 .g_btn::after{
	filter: brightness(0) invert(1);
}


.hzscroll{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	margin:0 0 0 7.5%;
	z-index: 3;
	position: relative;
}
.hzscroll_left{
	width:30%;
}

.hzscroll_left .wrap{
	max-width: 280px;
	margin: 0 auto;
	display:flex;
	justify-content: center;
	flex-wrap: wrap;
	text-align: center;
	gap: 36px;
}

.hzscroll_left p{
	line-height: var(--lh18);
	text-align: left;
	margin-bottom: 20px;
}

.hzscroll_left .g_btn{
	margin: 0 auto 0 0;
}


/*-----------------------------------------------------
swiperスライド部分
-------------------------------------------------------*/
.hzscroll_slide{
  width:70%;
  position:relative;
}

.hzscroll_swiper{
  overflow:hidden;
  padding-bottom:80px;
}

.swiper-wrapper{
  display:flex;
  align-items:flex-start;
}

.swiper-slide{
	width:600px; /* 固定幅 */
	flex-shrink:0;
}

.swiper-slide:last-child {
  margin-right: 600px;
}

.swiper-slide img{
	display:block;
	width:100%;
	height:auto;
}

.swiper-slide h3{
	font-size: var(--s22);
	line-height: var(--lh16);
	padding-top:26px;
	font-family:'Noto Serif JP', serif;
}

.swiper-scrollbar{
	position:absolute;
	bottom: 0;
	left: 0;
	width:220px;
	height:1px;
	background:#fafafa;
}

.swiper-scrollbar-drag{
	position: absolute;
	height:3px;
	width:73.333px !important;
	background:#DABE6F;
	top: -1px;
	left: 0;
	cursor:grab;
}
.swiper-scrollbar-drag:active{
	cursor:grabbing;
}


/*-----------------------------------------------------
box3
-------------------------------------------------------*/
.box3{
	padding: 120px 0 200px 0;
}

.box3 .swiper-slide{
	width:500px; /* 固定幅 */
	flex-shrink:0;
}

.box3 .swiper-scrollbar{
	background:#ccc;
}


/*-----------------------------------------------------
box4
-------------------------------------------------------*/
.box4{
	padding: 120px 0 120px 0;
	position: relative;
	text-align: center;
}

.box4::after{
	content: "";
	position: absolute;
	background: #F5F5F5;
	top: 0;
	left: 6%;
	width: 94%;
	height: 100%;
	z-index: -1;
}

.box4_list{
	margin-bottom: 60px;
}

.box4_list .g_t1{
	margin-bottom: 46px;
}

.box4_list ul{
    display: flex;
    justify-content: space-between;
  	flex-wrap: wrap;
	gap: 20px 0;
}

.box4_list ul li{
	width: 18%;
}

.box4_list ul li span{
	padding-top: 10px;
	display: block;
	text-align: center;
	font-size: var(--s20);
	font-family: 'notoSerifJP', serif;
}



/*-----------------------------------------------------
box5
-------------------------------------------------------*/
.box5{
	padding: 100px 0 100px 0;
}

.box5_list{
}

.box5_list ul{
    display: flex;
    justify-content: space-between;
  	flex-wrap: wrap;
}

.box5_list ul li{
	width: 31%;
	padding: 6px;
	border-radius: 6px;
	background: #333333;	
}

.box5_list ul li span{
	padding: 10px 0;
	display: block;
	text-align: center;
	color: #fff;
}


/*-----------------------------------------------------
scene
-------------------------------------------------------*/
.scene{
	padding: 0 0;
}

.scene .wrap{
	background: #F5F5F5;
	padding: 80px;
}

.scene .g_t1{
	text-align: center;
	margin-bottom: 40px;
}

.scene ul{
	display:flex;
    justify-content: center;
	margin: 0 auto 26px;
}

.scene ul li{
	border-right: 1px solid #ccc;
	padding: 0 26px;
	font-weight: bold;
}

.scene ul li:last-child{
	border-right: none;
}


.scene p{
	display:flex;
    justify-content: center;
	line-height: var(--lh18);
}


/*-----------------------------------------------------
box6
-------------------------------------------------------*/
.box6{
	padding: 100px 0 100px 0;
	background: #F5F5F5;
}

.box6 .g_t1{
	margin-bottom: 36px;
}

.box6_t{
	display:flex;
	align-items:flex-start;
	align-items: flex-end;
	gap: 40px;
	margin-bottom: 40px;
}

.box6_t h3{
    font-size: var(--s32);
	font-weight: 500;
    font-family: 'notoSerifJP', serif;
}


.box6_floor{
	margin-bottom: 40px;
}

.box6_floor ul {
  	display:flex;
 	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 20px 20px;
}

.box6_floor li {
	border-right: 1px solid #ccc;
}

.box6_layout{
	margin-bottom: 60px;
}

.box6_layout ul{
    display: grid;
    grid-template-areas:
        "left right-top"
        "left right-bottom";
    grid-template-columns: 2fr 1fr; /* 左2:右1の比率 */
    grid-template-rows: 1fr 1fr;   /* 上下で均等 */
	row-gap: 0;
    gap: 10px; /* 各要素間の間隔を調整 */
}

.box6_layout li {
	width: 100%;
	height: 100%;
}

.box6_layout li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.box6_layout li:nth-child(1) {
    grid-area: left; /* 左の大きな領域 */
}

.box6_layout li:nth-child(2) {
    grid-area: right-top; /* 右上の領域 */
}

.box6_layout li:nth-child(3) {
    grid-area: right-bottom; /* 右下の領域 */
}


/*-----------------------------------------------------
cta
-------------------------------------------------------*/
.cta{
	padding: 120px 0;
    position: relative;
    overflow: hidden;
    z-index: 2;
}


.cta p{
	line-height: var(--lh20);
    position: relative;
    z-index: 3;
}

.cta p span.t1{
	font-size: var(--s32);
	display: block;
	margin-bottom: 20px;
}

.cta p span.tel{
	font-size: var(--s32);
	display: block;
	margin-bottom: 16px;
}

.cta p span.tel .s{
	font-size: var(--s22);
}


.cta p span.tel a{
	display: inline-block;
}

.cta p span.ad{
	font-size: var(--s22);
	display: block;
	margin-bottom: 16px;
}

/*-----------------------------------------------------
footer
-------------------------------------------------------*/
#footer_box{
    padding: 140px 0px 60px;
	background: #333;
	color: #fff;
}

.footer_logo{
	width: 250px;
	margin: 0 auto 80px;
}


.footer_nav{
    margin-bottom: 120px;
    display: flex;
    justify-content: space-between;
    font-size: var(--s16);
}

.footer_nav .footer_link{
	width: 20%;
}

.footer_nav ul {
  	display:flex;
  	flex-direction: column;
	gap: 16px;
}

.footer_nav ul li a{
	color: #fff;
}

.footer_nav ul li.t{
	font-weight: bold;
}

.footer_sub{
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	padding: 36px 0;
}

.footer_sub ul{
  	display:flex;
    justify-content: center;
}

.footer_sub ul li{
	padding: 0 24px;
	border-right: 1px solid #ddd;
    font-size: var(--s15);
}

.footer_sub ul li a{
	color: #fff;
}

.footer_sub ul li:last-child{
	border-right: none;
}

.footer_copyright{
	padding-top: 60px;
    text-align: center;
    font-size: var(--s13);
	line-height: var(--lh16);
}

/*-----------------------------------------------------
page-top
-------------------------------------------------------*/

#page_top {
    position: fixed;
    bottom: 0;
    right: 30px;
	z-index: 9999;
	margin: 0 0 32px;
    display: none;
}

#page_top.active{
    display: block;
    transition: 1s all;     
}

#page_top a{
	width: 50px;
	height: 50px;
    display: inline-block;
}

#page_top a:hover{
    text-decoration: none;
    opacity: 0.8;
}

#page_top a img{
}

/*-----------------------------------------------------
reCAPTCHA
-------------------------------------------------------*/
.grecaptcha-badge { visibility: hidden; }

.recaptcha{
    margin: 54px auto 15px;
    border: 1px solid #cccccc;
    padding: 20px;
    border-radius: 4px;
    width: 100%;
    text-align: center;
}

.recaptcha p{
  font-size:12px;
  color:#808080;
  line-height: 1.75;
}

.recaptcha a{
  display: inline;
  text-decoration: underline;
  color:#808080;
}

.recaptcha span{
    display: block;
    color: #222222;
}


/*-----------------------------------------------------
translate
-------------------------------------------------------*/
#gt-nvframe{
    display: none;
}

