@charset "utf-8";
/* CSS Document */
.box_wrap{
	max-width: 1440px;
	margin: 0 auto;
}

.fv{
	position: relative;
	width: 100%;
	height: calc(100svh - 105px);
	min-height: 620px;
	margin-top: 105px;
	overflow: hidden;
	background-color: #F8F6F0;
}
.fv .fv_img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.fv .fv_img img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.fv .fv_txt{
	position: absolute;
	right: clamp(20px, 5vw, 90px);
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	text-align: right;
}

.fv .fv_logo{
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(260px, 30vw, 440px);
	padding: clamp(25px, 3vw, 45px);
	background-color: rgba(248, 246, 240, 0.2);
	border-radius: 10px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	translate: -50% -50%;
	box-sizing: border-box;
}

.fv .fv_logo img{
	display: block;
	width: 100%;
	height: auto;
}
/* ---------- sns_wrap ---------- */
.sns_wrap {
	width: 100%;
}
.sns_wrap .title_wrap{
	max-width: 1440px;
	margin: 0 auto;
	justify-content: space-between;
	width: 100%;
}
.sns_wrap .titlebox{
	color: #010000;
	gap: 10px;
	justify-content: flex-start;
}
.sns_wrap .titlebox img{
	width: 27px;
	aspect-ratio: 1 / 1;;
}
.sns_wrap .box_wrap{
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
}

.sns_wrap .webgene-blog{
	position: relative;
	left: 50%;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: clamp(14px, 1.5vw, 24px);
	width: max-content;
	transform: translateX(-50%);
}
.sns_wrap .webgene-item{
	flex-shrink: 0;
	width: clamp(220px, 22vw, 320px);
	padding: clamp(10px, 1vw, 14px);
	background-color: #fff;
	border-radius: 7px;
	box-sizing: border-box;
}
.sns_wrap .webgene-item > a{
	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;
	gap: 10px;
	width: 100%;
	overflow: hidden;
	border-radius: 6px;
}
.sns_wrap .webgene-item > a img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform ease 0.5s;
}

.sns_wrap .webgene-item:hover > a img{
	transform: scale(1.04);
}
.sns_wrap .webgene-item .caption{
	margin-top: 12px;
	overflow: hidden;
	font-size: clamp(11px, 0.9vw, 14px);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.04em;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.sns_wrap .webgene-item .imgbox{
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 6px;
}
/* ---------- cate1 ---------- */
.cate1 {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	flex-direction: column;
	gap: 100px;
	padding-bottom: 10px;
}
.cate1::before{
	content: "";
	position: absolute;
	top: clamp(20px, 4vw, 60px);
	right: clamp(-160px, -7vw, -70px);
	z-index: 0;
	width: clamp(260px, 28vw, 440px);
	aspect-ratio: 1 / 1;
	background-image: url("https://cozytech.jp/system_panel/uploads/images/bg_deco1.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
}
.cate1::after{
	content: "";
	position: absolute;
	left: clamp(-180px, -8vw, -80px);
	bottom: 0;
	z-index: 0;
	width: clamp(280px, 30vw, 470px);
	aspect-ratio: 1 / 1;
	background-image: url("https://cozytech.jp/system_panel/uploads/images/bg_deco2.svg");
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
}

.cate1 > *{
	position: relative;
	z-index: 1;
}
.cate1 .txt_swiper{
	position: relative;
	z-index: 1;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
}

.cate1 .txt_swiper_inner{
	display: flex;
	width: max-content;
	white-space: nowrap;
	animation: txt_loop 18s linear infinite;
	will-change: transform;
}
@keyframes txt_loop{
	0%{
		transform: translateX(0);
	}

	100%{
		transform: translateX(-50%);
	}
}
/* ---------- cate2 ---------- */
.cate2 .more2 a{
	width: 100%;
}
.cate2 .more2 a > .flex{
	justify-content: center;
}
.cate2 .box_wrap{
	gap: 80px 40px;
}
.cate2 .box_wrap .box-item{
	width: calc(50% - 20px);
}
.cate2 .box_wrap .box-item .txtbox{
	background-color: #fff;
	padding: 40px 30px;
	border-radius: 0 0 8px 8px;
	width: 100%;
}
.cate2 .box_wrap .box-item .txtbox .txt-item{
	width: 100%;
	gap: 10px;
}
.cate2 .box_wrap .box-item .txtbox .txt-item .line{
	border: #3A3D404D 1px solid;
	flex: 1
}
.cate2 .box_wrap .box-item .txtbox .item-wrap{
	gap: 10px 30px;
	justify-content: flex-start;
}
.cate2 .box_wrap .box-item .txtbox .item-wrap .dot-blue{
	position: relative;
    display: inline-block;
    padding-left: 18px;
}
.cate2 .box_wrap .box-item .txtbox .item-wrap .dot-blue::before{
	content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    background-color: #4779A8;
    border-radius: 50%;
    left: 0;
    top: 50%;
	transform: translateY(-50%);
}
.cate2 .box_wrap .box-item2 .txtbox .item-wrap .dot-blue::before{
    background-color: #C99A18;
}
.cate2 .box_wrap .box-item .imgbox{
	position: relative;
	overflow: hidden;
}
.cate2 .box_wrap .box-item .imgbox::after{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.2);
	border-radius: 8px 8px 0 0;
	pointer-events: none;
}
.cate2 .box_wrap .box-item .imgbox .num{
	position: absolute;
	top: 20px;
	left: 20px;
	z-index: 2;
}
.cate2 .box_wrap .box-item .imgbox img{
	border-radius: 8px 8px 0 0;
}
.cate2 .box_wrap .box-item .txtbox .more{
	width: 100%;
}
.cate2 .box_wrap .box-item .txtbox .more a{
	width: 100%;
	background-color: #4779A8;
}
.cate2 .box_wrap .box-item2 .txtbox .more a{
	background-color: #C99A18;
}
/*

.cate2 .box_wrap .boxitem3{
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border-radius: 8px;
	background: transparent;
}
.cate2 .box_wrap .boxitem3 .imgbox{
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: transparent;
	border-radius: 0;
	font-size: 0;
	line-height: 0;
}
.cate2 .box_wrap .boxitem3 .imgbox::after{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.3);
	pointer-events: none;
}
.cate2 .box_wrap .boxitem3 .imgbox img{
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	vertical-align: bottom;
}
.cate2 .box_wrap .boxitem3 .txtbox{
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	padding: 40px 80px;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
	background: transparent !important;
}
.cate2 .box_wrap .boxitem3 .imgbox .num{
	position: absolute;
	top: 20px;
	left: 25px;
	z-index: 2;
	line-height: 1;
}
*/
.cate2 .box_wrap .bottombox{
	position: relative;
	width: 100%;
	padding: 40px 20px;
	border-radius: 8px;
	overflow: hidden;
}
.cate2 .box_wrap .bottombox > img{
	width: 100%;
	height: auto;
}
.cate2 .box_wrap .bottombox::after{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.3);
	pointer-events: none;
}
.cate2 .box_wrap .bottombox .txtbox{
	position: relative;
	z-index: 2;
}
.cate2 .box_wrap .bottombox .num{
	position: relative;
	z-index: 2;
}

/* ---------- products_wrap ---------- */
.products_wrap{
	position: relative;
	isolation: isolate;
	width: 100%;
	box-sizing: border-box;
}
.products_wrap::before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	height: clamp(330px, 50vw, 600px);
	background-color: #286431;
	pointer-events: none;
}
.products_wrap > *{
	position: relative;
	z-index: 1;
}
.products_wrap .title_wrap{
	max-width: 1440px;
	margin: 0 auto;
	justify-content: space-between;
	width: 100%;
}
.products_wrap .title_wrap .titlebox1{
	width: auto;
}
.products_wrap .box_wrap{
	gap: 30px;
	width: 100%;
}
.products_wrap .box_wrap .boxitem{
	gap: 20px;
	flex-direction: column;
	width: calc((100% - 60px)/3);
	background-color: #F8F6F0;
	border-radius: 10px;
	padding: 25px 20px;
}
.products_wrap .box_wrap .boxitem .imgbox img{
	border-radius: 10px;
}
.products_wrap .box_wrap .boxitem .txtbox{
	flex-direction: column;
	gap: 10px;
	align-items: flex-start;
	width: 100%;
}
.products_wrap .box_wrap .boxitem .txtbox .bottombox{
	width: 100%;
	gap: 10px;
	align-items: center;
	justify-content: flex-start;
}
.products_wrap .box_wrap .boxitem .txtbox .cate{
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	padding: 4px 10px;
	background-color: #286431;
	border-radius: 20px;
	line-height: 1;
	color: #fff;
}

/* ---------- cate3 ---------- */
.cate3{
	position: relative;
}
.cate3 .box_wrap{
	gap: 20px;
	align-items: flex-start;
}
.cate3 .box_wrap .leftbox{
	width: 20%;
}
.cate3 .box_wrap .contents{
	flex:1;
}
.cate3 .webgene-blog .webgene-item{
	padding-bottom: 10px;
}
.cate3 .webgene-blog .webgene-item a > .flex{
	gap: 20px;
	padding: 10px 0;
}
.cate3 .webgene-blog .webgene-item a .date{
	width: 100px;
}
.cate3 .webgene-blog .webgene-item a .catelabel{
	border: #286431 solid 1px;
	border-radius: 5px;
	padding: 2px 10px;
	color: #286431;
	font-size: 14px;
}
.cate3 .webgene-blog .webgene-item a h3{
	width: calc(100% - 240px);
}


.cate3::before{
	content: "NEWS";
	position: absolute;
	top: 5vw;
	left: 0;
	z-index: 0;
	font-family: "Sen", sans-serif;
	font-size: clamp(90px, 10vw, 150px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.03em;
	color: rgba(40, 100, 49, 0.05);
	white-space: nowrap;
	pointer-events: none;
}
.cate3 .contents .more2{
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin-top: 50px;
}
/* ---------- IEのみ ---------- */
@media all and (-ms-high-contrast: none) {
}
/* ---------- 1280px ~ ---------- */
@media screen and (max-width: 1280px){
	.cate3 .box_wrap .leftbox{
		width: 100%;
	}
	.cate3 .box_wrap .contents{
		width: 100%;
	}
}
/* ---------- 1080px ~ ---------- */
@media screen and (max-width: 1080px){
	.fv .fv_txt{
		bottom: 50px;
	}
    .cate2 .box_wrap {
		flex-direction: column;
		gap: 50px;
	}
	.cate2 .box_wrap .box-item {
		width: 80%;
	}
	.cate2 .box_wrap .bottombox{
		width: 80%;
	}
	.products_wrap .box_wrap .boxitem{
		width: calc((100% - 30px)/2);
	}
}
/* ---------- 768px ~ ---------- */
@media screen and (max-width: 768px){
	.products_wrap .box_wrap .boxitem{
		width: 80%;
	}
	.cate3 .contents .more2{
		justify-content: center;
		margin-top: 30px;
	}
	.cate3 .webgene-blog .webgene-item a .date {
		width: 80px;
	}
}
/* ---------- 576px ~ ---------- */
@media screen and (max-width: 576px){
	.fv {
		height: calc(100svh - 60px);
		margin-top: 60px;
	}
	.cate2 .box_wrap .box-item {
		width: 100%;
	}
	.cate2 .box_wrap .box-item .txtbox {
		padding: 30px 20px;
	}
	.cate2 .box_wrap .bottombox{
		width: 100%;
	}
	.products_wrap .box_wrap .boxitem{
		width: 100%;
		border-radius: 5px;
	}
	.products_wrap .box_wrap .boxitem .imgbox img{
		border-radius: 5px;
	}
	.cate3 .webgene-blog .webgene-item a h3 {
		width: 100%;
	}
	.cate3 .webgene-blog .webgene-item a .catelabel {
		border-radius: 3px;
		padding: 0px 6px;
		font-size: 12px;
	}
}
/* ---------- 350px ~ ---------- */
@media screen and (max-width: 350px){
}

