@charset "utf-8";
/* CSS Document */
.header_d .menu-bt.active .line div:nth-of-type(1) {
  background-color: #2a2a2a;
}

.header_d .menu-bt.active .line div:nth-of-type(3) {
  background-color: #2a2a2a;
}
.sunhead{
    background: rgba(255,255,255,0.5);
}
body .swiper_a {
  overflow: hidden;

}
body:not(.on) .swiper_a {
	height: auto!important;
}
body:not(.on) .swiper_a .swiper-wrapper {
	display:-webkit-box;
    display:-moz-box;
    display:-ms-box;
    display:-webkit-flexbox;
    display:-moz-flexbox;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:-ms-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
    justify-content: center;
    align-items: center;
	flex-direction: row;
}
body:not(.on) .swiper_a .swiper-wrapper .swiper-slide{
	width: 25%;
}
.sunhead .rightbox .ul .li a p.jp,.sunhead .rightbox .ul .li a p.en{
color: #333;
}

.sun-top-btn__label{
color: #333;}

.top-title{
	font-size: 35px;
}

.blueline span {
    display: inline-block;
    background: linear-gradient(to bottom, transparent 70%, #B4EBDF 0%);
}
.title-style1 {
    position: relative;
    display: inline-block;      
    padding-right: 24px;  
    color: #2a2a2a;
}
.title-style1::after {
    content: "";
    position: absolute;
    right: -100px;            
    bottom: -30px;
    width: clamp(80px, 12vw, 220px);    
    height: 1px;
    background: currentColor; 
    transform-origin: left center;
    transform: rotate(-35deg);
    opacity: .9;
    pointer-events: none;
}
/* ---------- fv ---------- */
body.on .fv{
	position: relative;
	height: 100vh;
	overflow: hidden;
}
.fv::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none; 
    z-index: 5;
    background-color: rgba(101, 97, 66, 0.3);
    opacity: 1;
}
.fv .fv_icon{
	position: absolute;
	bottom: 0;
	right: 0;
	width: 35%;
	z-index: 5;
}
.fv .fv_icon img{
	mix-blend-mode: multiply;
	opacity: 0.4;
}
.fv .img-box{
	position: relative;
	z-index: 1;
}
@keyframes fvtxt {
	0% {
		opacity: 0;
		transform: translateX(50px);
		-ms-filter: blur(6px);
		filter: blur(6px);
	}
	100% {
		opacity:1;
		transform: translateX(0px);
		-ms-filter: blur(0px);
		filter: blur(0px);
	}
}
.fv .swiper{
	z-index: 1;
	position: relative;
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
body.on .fv .swiper-slide{
	width: 100%!important;
	height:100vh;
}
body.on .fv .swiper-slide .swiper-img{
	width: 100%!important;
	height:100vh;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.fv .swiper-slide-active .swiper-img,
.fv .swiper-slide-duplicate-active .swiper-img,
.fv .swiper-slide-prev .swiper-img {
  animation: zoomUp 10s linear 0s normal both;
}
body.on .fv .swiper-slide img {
	display: block!important;
	opacity: 0;
	height: auto;
	width: 100%;
}
.fv .txtbox h1{
	font-weight: 500;
	letter-spacing: 0.5rem;
	font-size: 31px;
	text-align: center;
}
.fv .txtbox h1 span{
	font-weight: 500;
	letter-spacing: 0.5rem;
	font-size: 26px;
}
.fv .txtbox img{
	width: 280px;
	margin-bottom: 15px;
}
body.on .fv .txtbox{
	color: #fff;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 9;
	transform: translate(-50%, -50%);
}
.fv .nav{
	width: 30%;
	max-width: 300px;
}
body.on .fv .mainmenu_box{
	position: absolute;
	top: 0;
	right: 0;
	width: calc(50% - 300px);
	height: 100%;
	padding: 5% 20px;
	overflow: auto;
	z-index: 9;
}

.fv .scroll_box {
    position: absolute;
    left: 20px; 
    bottom: 16px;
    z-index: 8; 
    pointer-events: none;
	flex-direction: column;
	gap: 7px;
	align-items: center;
}
.fv .scroll_box .scroll {
    font-size: 24px;
    letter-spacing: 0.15em;
	font-weight: 400;
    color: #fff;
    opacity: 1;
    line-height: 1;
	text-align: center;
}
.fv .scroll_box .scroll_line {
    content: "";
    display: block;
    inline-size: 1px;
    block-size: 415px; 
    background: #fff;
	transform: translateX(-3px);
}
.fv .label {
    position: absolute;
    right: 0px;     
    bottom: 30px;
    z-index: 9;                 
    pointer-events: auto;        
}
.fv .label img {
    display: block;
    width: clamp(270px, 30vw, 360px); 
    max-width: calc(100% - 32px); 
    height: auto;
	margin-left: auto;
}
/* ---------- cate1 ---------- */
.cate1 .box_wrap{
	gap: 90px;
}
.cate1 .leftbox{
	gap: 50px;
	width: calc(50% - 45px);
	flex-direction: column;
	align-items: flex-start;
}
.cate1 .rightbox{
	width: calc(50% - 45px);
}
.cate1 .leftbox .txtbox{
	padding-left: 90px;
}
/* ---------- cate2 ---------- */
.cate2 .box_wrap{
	position: relative;
	flex-direction: row-reverse;
	gap: 120px;
}
.cate2 .leftbox{
	gap: 50px;
	width: calc(50% - 60px);
	flex-direction: column;
	align-items: flex-start;
	z-index: 2;
}
.cate2 .leftbox .txt-wrwp{
	gap: 50px;
	flex-direction: column;
	align-items: flex-start;
}
.cate2 .leftbox .imgbox{
	width: 40%;
	margin-left: auto;
	padding-right: 80px;
}
.cate2 .rightbox{
	width: calc(50% - 60px);
	z-index: 2;
}
.cate2 .rightbox .bottombox{
	align-items: flex-start;
}
.cate2 .rightbox .bottombox .img1{
	width: 30%;
	padding-top: 150px;
}
.cate2 .rightbox .bottombox .img2{
	width: 50%;
	padding-top: 250px;
	padding-left: 60px;
}
.cate2 .yellow-bg::before {
    content: "";
    position: absolute;
	top: 100px;        
    bottom: 40px;
	left: 0;
	right: 0; 
    z-index: 0; 
    background: #F4F3DC;
    border-radius: 8px;
    pointer-events: none;
}
.cate2 .rightbox .topbox .timebox{
	padding-left: 60px;
}
.cate2 .rightbox .topbox .timebox .time span{
	font-size: 30px;
}
.sns_a .bg_img_wrap2 { background: none !important; }
.sns_a .bg_img_wrap2 img {
    opacity: 1 !important;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;     /* 正方形トリミング */
    position: static;      /* ユーティリティで absolute になってたら打ち消す */
}

.sns_b .titlebox p {
    font-size: 40px;
    font-family: "EB Garamond", sans-serif;
    font-weight: 400;
    color: #3D3D3F;
    letter-spacing: 0.1em;
}
.sns_b .titlebox img {
    width: 30px;
}
.menu_a .box_wrap .box-item:nth-child(2) .imgbox > img {
	margin-left: auto;
}
.menu_a .box_wrap .box-item:nth-child(2) .imgbox::after {
	left: 0;
	top: 20%;
}
.menu_a .box_wrap .box-item .imgbox::after {
    top: 20%;
}
.menu_a .box_wrap .box-item .imgbox .iconbox .icon2 {
    left: 30%;
}
.menu_a .box_wrap .box-item .txtbox h3 {
    text-align: center;
}
.menu_a .box_wrap .box-item .txtbox h3 span{
    display: inline-block;
}
.newstop_d .webgene-blog {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-box;
	display: -webkit-flexbox;
	display: -moz-flexbox;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: flex;
	-webkit-box-lines: multiple;
	-moz-box-lines: multiple;
	-webkit-flex-wrap: wrap;
	-moz-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: row;
	gap: 50px 30px;
}
.newstop_d .webgene-blog .webgene-item {
	width: calc(100% / 4 - 90px / 4);
	transition: ease 0.3s;
}
.newstop_d .webgene-blog .webgene-item a{display:block}
.newstop_d .webgene-blog .webgene-item:hover {
	opacity: 0.5 !important;
}
.newstop_d .webgene-blog .webgene-item .date {
	color: #3C3C3C;
}
.newstop_d .webgene-blog .webgene-item .cate {
	display: inline-block;
	padding: 7px 15px;
	border-radius: 200px;
	line-height: 1;
	background-color: #0A183E;
	color: #fff;
}

/* ---------- IEのみ ---------- */
@media all and (-ms-high-contrast: none) {
}
/* ---------- 1280px ~ ---------- */
@media screen and (max-width: 1280px){
	.fv .scroll_box .scroll {
		font-size: 18px
	}
	.fv .txtbox h1{
		font-size: 26px;
	}
	.fv .txtbox h1 span{
		font-size: 22px;
	}
	.fv .txtbox img{
		width: 200px;
		margin-bottom: 10px;
	}
/* ---------- cate1 ~ ---------- */	
	.cate1 .box_wrap{
		gap: 80px;
	}
	.cate1 .leftbox .txtbox{
		padding-left: 30px;
	}
	.top-title{
		font-size: 28px;
	}
	.title-style1::after {
		right: -70px;
		bottom: -20px;
		width: clamp(80px, 12vw, 220px);
	}
	.cate1 .leftbox .txtbox{
		margin-top: 50px;
	}
/* ---------- cate1 ~ ---------- */	
	.cate2 .box_wrap{
		gap: 90px;
	}
	.cate2 .rightbox .topbox .timebox .time span {
		font-size: 26px;
	}
	.menu_a .box_wrap .box-item .txtbox .txt-item {
		padding: 50px 40px;
	}
	.menu_a .box_wrap .box-item:nth-child(2) .txtbox {
		padding-right: 0%;
	}
}
/* ---------- 1080px ~ ---------- */
@media screen and (max-width: 1080px){
    .cate1 .box_wrap {
        flex-direction: column-reverse;
		gap: 50px;
    }
	.cate1 .rightbox {
		width: 80%;
	}
	.cate1 .leftbox {
		flex-direction: row;
		width: 100%;
	}
	.cate1 .leftbox .txtbox{
		margin-top: 30px;
	}
	.title-style1::after {
		right: -50px;
		bottom: -20px;
		width: clamp(80px, 12vw, 220px);
	}
	.top-title{
		font-size: 28px;
	}
    .menu_a .box_wrap .box-item .txtbox .txt-item {
        width: 70%;
    }
/* ---------- cate2 ~ ---------- */
    .cate2 .box_wrap {
        flex-direction: column;
    }
	.cate2 .leftbox {
		width: 100%;
		padding: 0 60px;
	}
	.cate2 .leftbox .imgbox {
		width: 80%;
		margin: 0 auto;
		padding-right: 0px;
	}
	.cate2 .leftbox .txt-wrwp {
		flex-direction: row;
		width: 100%;
	}
	.cate2 .rightbox {
		width: 80%;
		padding: 0 60px;
	}
	.cate2 .rightbox .topbox .timebox {
		padding-left: 0px;
	}
	
	.cate2 .rightbox .bottombox {
		width: 100%;
		align-items: flex-start;
		padding-top: 70px;
	}
	.cate2 .rightbox .bottombox .img1 {
		width: 40%;
		padding-top: 0px;
	}
	.cate2 .rightbox .bottombox .img2 {
		width: 60%;
		padding-top: 0px;
	}
	
/* ---------- newstop_d ---------- */
	.newstop_d .webgene-blog{
		gap: 50px;
	}
	.newstop_d .webgene-blog .webgene-item {
		width: calc(100% / 2 - 50px / 2);
	}
	.menu_a .box_wrap .box-item .imgbox::after {
		top: 10%;
	}
	.menu_a .box_wrap .box-item:nth-child(2) .imgbox::after {
		top: 10%;
	}
	.menu_a .box_wrap .box-item .txtbox .txt-item {
        width: 80%;
    }
    .menu_a .box_wrap .box-item .txtbox {
        gap: 10px;
    }
	.menu_a .box_wrap .box-item .txtbox .txt-item {
        background-color: #FFFEF5;
        padding: 30px 40px;
    }
	.menu_a .box_wrap .box-item .topbox {
        gap: 40px;
    }
    .menu_a .box_wrap .box-item .imgbox > img {
        width: 90%;
    }
	.menu_a .box_wrap .box-item .imgbox {
        width: 80%;
    }
}
/* ---------- 768px ~ ---------- */
@media screen and (max-width: 768px){
	.fv .scroll_box .scroll {
		font-size: 16px;
	}
	.fv .txtbox h1{
		font-size: 22px;
		width: 100%;
	}
	.fv .txtbox h1 span{
		font-size: 18px;
	}
	.fv .txtbox img{
		width: 160px;
		margin-bottom: 10px;
	}
	body.on .fv .txtbox{
		width: 100%;
	}
/* ---------- cate1 ~ ---------- */
	.cate1 .box_wrap {
        gap: 30px;
    }
	.cate1 .leftbox {
		gap: 40px;
		align-items: flex-start;
		flex-direction: column;
		margin: 0 auto;
	}
    .cate1 .leftbox .txtbox {
        margin-top: 0px;
    }
	.cate1 .rightbox {
        width: 100%;
    }
	.title-style1::after {
		right: -30px;
		bottom: -0px;
		width: clamp(80px, 12vw, 220px);
	}
    .cate1 .leftbox .txtbox {
        padding-left: 0px;
    }
	.top-title{
		font-size: 22px;
	}
/* ---------- cate2 ~ ---------- */
	.cate2 .box_wrap {
        gap: 30px;
    }
	.cate2 .leftbox .txtbox{
        margin-top: 0px;
    }
	.cate2 .leftbox .imgbox {
        width: 100%;
    }
	.cate2 .leftbox {
		gap: 30px;
	}
	.cate2 .leftbox .txt-wrwp {
		gap: 40px;
		align-items: flex-start;
		flex-direction: column;
	}
	.cate2 .leftbox {
        padding: 0 50px;
    }
	.cate2 .rightbox {
		width: 100%;
		padding: 0 50px;
	}
	.cate2 .rightbox .topbox .timebox .time span {
		font-size: 22px;
	}

/* ---------- newstop_d ---------- */
	.newstop_d .webgene-blog{
		gap: 50px 30px;
	}
	.newstop_d .webgene-blog .webgene-item {
		width: calc(100% / 2 - 30px / 2);
	}

}
/* ---------- 576px ~ ---------- */
@media screen and (max-width: 576px){
	.fv .scroll_box .scroll_line {
		block-size: 160px; 
	}
	.cate1 .leftbox {
		justify-content: flex-start;
		gap: 30px;
	}
	.cate1 .box_wrap {
        gap: 10px;
    }
    .cate2 .leftbox {
        padding: 0 20px;
    }
    .cate2 .rightbox {
        padding: 0 20px;
    }
	.cate2 .rightbox .topbox .timebox .time span {
		font-size: 20px;
	}
	.title-style1::after {
        right: -60px;
        bottom: 5px;
        width: clamp(80px, 12vw, 220px);
    }
    .cate2 .rightbox .bottombox {
        padding-top: 50px;
    }
    .menu_a .box_wrap .box-item .txtbox .txt-item {
        width: 100%;
    }
	.menu_a .box_wrap .box-item .txtbox h3 {
		padding:15px 15px 10px 15px;
	}
	.menu_a .box_wrap .box-item .imgbox {
        width: 90%;
    }
	.menu_a .box_wrap .box-item .txtbox .txt-item {
        background-color: #FFFEF5;
        padding: 30px 20px;
    }
/* ---------- newstop_d ---------- */
	.newstop_d .webgene-blog{
		gap: 40px;
		justify-content: center;
	}
	.newstop_d .webgene-blog .webgene-item {
		width: 90%;
	}
}
/* ---------- 350px ~ ---------- */
@media screen and (max-width: 350px){
}

