@charset "utf-8";
/* CSS Document */
.greenwave {
  position: relative;
  z-index: 1; /* コンテンツより下げたくない場合は調整 */
}
.greenwave::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 1; /* 高さを画像比に保つ（必要なら） */
  background-image: url("https://senda-s.com/system_panel/uploads/images/wave.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
  z-index: -1; /* 背景として配置 */
  pointer-events: none;
}

.hero {
  position: relative;
  height: clamp(600px, 80vh, 950px);
  min-height: 100vh;
  margin: 0 auto;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  overflow: hidden;
}
.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 5;
}
.hero .txtbox {
  position: absolute;
  top: 40%;
  right: 0;
  z-index: 10;
  padding: clamp(20px, 8vw, 50px);
  justify-content: flex-end;
  align-items: flex-end;
  overflow: hidden;
}
.hero-title {
  color: #fff;
  font-family: "Cormorant", sans-serif;
  font-size: clamp(48px, 6vw, 72px);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.4);
  white-space: nowrap;
  overflow: hidden;
}
.hero-jp {
  color: #fff;
  font-size: clamp(16px, 1.6vw, 24px);
  line-height: 2;
  letter-spacing: 0.25em;
  margin-right: clamp(12px, 4vw, 36px);
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
}
.herowrap {
  position: relative;
}
.topimg1 {
  position: absolute;
  bottom: 20px;
  left: -20px;
  z-index: 20;
  width: clamp(300px, 40vw, 400px);
}
.cate1 {
  flex-wrap: nowrap;
  gap: clamp(10px, 4vw, 50px);
}
.cate1 .leftbox {
  width: 40%;
}
.cate1 .rightbox {
  width: 60%;
}
.cate1 .imgbox img {
  max-width: 400px;
  object-fit: cover;
}
.cate2 {
  position: relative;
}
.about-title {}
.cate2 .box {
  position: relative;
}
.cate2 .about-subtitle {
  position: absolute;
  writing-mode: vertical-rl;
  line-height: 2;
  letter-spacing: 0.2em;
  right: 0px;
}
.cate2 .aboutwrap {
  width: 80%;
}
.cate2 .aboutwrap .imgbox img {
  max-width: 1230px;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}
.cate3 .titlebox {
margin-top: -20px;
}
.cate3 .box {
  background-color: #fff;
}
.cate3 .products {
  gap: 50px;
  margin: 40px auto;
  max-width: 1000px;
  background-color: #fff;
    align-items: stretch;
}
.cate3 .product {
  padding-bottom: 20px;
  position: relative;
    max-width: 350px;
    width: 30%;
}
.cate3 .imgbox {
  position: relative;
  z-index: 1;
}


.cate3 .imgbox::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #2E9568;
  bottom: -12px;
  right: -12px;
  z-index: -1;
}
.cate3 .vertical-label {
  writing-mode: vertical-rl;
  position: absolute;
  right: -40px;
  top: 0;
  font-size: 22px;
  height: 100%;
  z-index: 2;
}
.cate3 .caption {}


.main-wrap .cate_wrap .cate4{
	position: relative;
	background-color: #EAEAEA;
}
body.on .main-wrap .cate_wrap .cate4::after{
	content: "";
	width: 30%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 30%;
	background: #EAEAEA;
	background: linear-gradient(90deg, rgba(234, 234, 234, 1) 0%, rgba(207, 224, 216, 0) 100%);
	z-index: 2;
}
body.on .main-wrap .cate_wrap .cate4::before{
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: #A5CEBC;
	opacity: 0.4;
	z-index: 3;
}
body.on .main-wrap .cate_wrap .cate4 .imgbox{
	position: absolute;
	top: 0;
	right: 0;
	width: 70%;
	height: 100%;
	z-index: 1;
}

.main-wrap .cate_wrap .cate4 .contents{
	position: relative;
	z-index: 4;
	gap: 5%;
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap{
	width: 40%;
	gap: 0 20%;
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap .box{
	width: 40%;
	padding: 5%;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	background-color: rgba(252,252,252,0.80);
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap .box:first-of-type{
	margin: 0 30% -10%;
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap .box:last-of-type{
	margin-top: -10%;
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap .box .icon_box{
	width: 60px;
	margin: 0 auto 10px;
	background-position: center center;
	background-size: contain;
	aspect-ratio: 1 / 1;
}
.main-wrap .cate_wrap .cate4 .contents .boxwrap .box p{
	white-space: nowrap;
}

.main-wrap .cate_wrap .cate4 .contents .txtbox{
	width: 50%;
}
.main-wrap .cate_wrap .cate4 .contents .txtbox h2 span{
	color: #fff;
	background-color: #177E51;
	display: inline-block;
	padding: 10px;
	margin: 10px;
}

.main-wrap .cate_wrap .cate5 .boxwrap{
	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;
	flex-direction: row;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 40px 20px;
}
.main-wrap .cate_wrap .cate5 .boxwrap .box{
	width: calc(100% / 5 - 80px / 5);
}
.main-wrap .cate_wrap .cate5 .boxwrap .box .imgbox a{
	display: block;
}

.main-wrap .cate_wrap .cate6{
	position: relative;
	background-color: #000;
	color: #fff;
}
body.on .main-wrap .cate_wrap .cate6::after{
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: rgba(0,0,0,0.30);
}
.main-wrap .cate_wrap .cate6 .contents{
	position: relative;
	z-index: 2;
}

.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item{
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: 1px solid #D0D0D0;
}
.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a > .flex{
	gap: 20px;
	padding: 10px 0;
}
.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a .date{
	width: 80px;
}
.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a .cate_txt{
	width: 100px;
	text-align: center;
	padding: 3px 5px;
	box-sizing: border-box;
}
.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a h3{
	width: calc(100% - 220px);
}
/* ---------- IEのみ ---------- */
@media all and (-ms-high-contrast: none) {}
/* ---------- 1280px ~ ---------- */
@media screen and (max-width: 1280px) {
	
	.main-wrap .cate_wrap .cate4 .contents .boxwrap{
		width: 45%;
	}
.main-wrap .cate_wrap .cate5 .boxwrap{
	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;
	flex-direction: row;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 40px 20px;
}
.main-wrap .cate_wrap .cate5 .boxwrap .box{
	width: calc(100% / 4 - 60px / 4);
}
.main-wrap .cate_wrap .cate5 .boxwrap .box .cate_txt{
	padding: 3px 7px;
}
}
/* ---------- 1080px ~ ---------- */
@media screen and (max-width: 1080px) {
	.main-wrap .cate_wrap .cate4 .contents .boxwrap .box .icon_box{
		width: 50px;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap{
		gap: 40px 20px;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box{
		width: calc(100% / 3 - 40px / 3);
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box .cate_txt{
		padding: 3px 7px;
	}
}
/* ---------- 768px ~ ---------- */
@media screen and (max-width: 768px) {
	.cate1 .leftbox {
	width: 100%;
	}
	.cate1 .rightbox {
	width: 100%;
	}
	.cate1 {
	flex-wrap: wrap;
	}
	.cate3 .product {
	width: 60%;
	}
	.cate3 .products {
	align-items: center;}
	
	.main-wrap .cate_wrap .cate4 .contents .boxwrap{
		width: 70%;
		margin-bottom: 50px;
	}
	.main-wrap .cate_wrap .cate4 .contents .txtbox{
		width: 90%;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap{
		gap: 40px 20px;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box{
		width: calc(100% / 2 - 20px / 2);
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box .cate_txt{
		padding: 3px 7px;
	}
}
    
  /* ---------- 576px ~ ---------- */
  @media screen and (max-width: 576px) {
    body.on .main-wrap .cate_wrap .cate4 .imgbox {
    width:100%;
}
body.on .main-wrap .cate_wrap .cate4::after {
    width: 100%;
}
    body.on .main-wrap .cate_wrap .cate4::after {
    left: 0;}
      
	.hero .txtbox {
	position: absolute;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	justify-content: flex-start;
	top: 10%;
	left: 70%;
	padding: 0;
	flex-direction: column;
	}
	.hero-title {
	font-size: 38px;
	}

	.cate2 .about-subtitle{
	position: relative;
	margin: 0 auto;
	}
	.cate2 .aboutwrap {
	width: 100%;
	}
	.main-wrap .cate_wrap .cate4 .contents .boxwrap{
		width: 100%;
		margin-bottom: 50px;
	}
	  .main-wrap .cate_wrap .cate4 .contents .boxwrap .box .icon_box{
		  width: 30px;
	  }
	  .main-wrap .cate_wrap .cate4 .contents .boxwrap .box p{
		  line-height: 1.4;
		  font-size: 14px;
	  }
	.main-wrap .cate_wrap .cate4 .contents .txtbox{
		width: 100%;
	}

	.main-wrap .cate_wrap .cate5 .boxwrap{
		gap: 30px;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box{
		width: 100%;
	}
	.main-wrap .cate_wrap .cate5 .boxwrap .box .cate_txt{
		padding: 3px 7px;
	}

	.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a > .flex{
		gap: 10px;
	}
	.main-wrap .cate_wrap .cate7 .webgene-blog .webgene-item a h3{
		width: 100%;
	}
}
    /* ---------- 350px ~ ---------- */
    @media screen and (max-width: 350px) {}