@charset "UTF-8";

/* ========================================
   共通
======================================== */
section {
  position: relative;
}

.h2_en {
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-size: 100px;
  font-weight: 300;
  color: #FAFAFA;
}

@media (max-width: 960px) {
  .h2_en {
    font-size: 59px;
  }
}

@media (max-width: 375px) {
  .h2_en {
    font-size: 48px;
  }
}

/* ========================================
   FV
======================================== */
.video-wrap {
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.video-wrap video {
  width: 100%;
  height: auto;
  display: block;
}

.catchcopy {
  position: absolute;
  left: 190px;
  bottom: 110px;
  color: #fff;
  font-size: 60px;
  font-weight: 600;
  text-shadow: 0px 0px 15px #0000002E;
  z-index: 2;
  line-height: 1.5;
}
.since {
  position: absolute;
  right: 190px;
  bottom: 110px;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  z-index: 2;
}

@media (max-width: 1536px) {
  .catchcopy {
    left: 90px;
    bottom: 100px;
    font-size: 50px;
    line-height: 1.5;
  }
  .since {
    right: 90px;
    bottom: 100px;
  }
}

@media (max-width: 1100px) {
  .catchcopy {
    left: 20px;
  }
  .since {
    right: 20px;
  }
}

@media (max-width: 768px) {
  .video-wrap {
    height: 694px;
  }
  .video-wrap video {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: -155px 0px;
  }

  .catchcopy {
    font-size: 32px;
    text-shadow: inherit;
    top: 75px;
  }
  .since {
    bottom: 70px;
    font-size: 16px;
  }
}

/* ========================================
   Company
======================================== */
.top-company {
  background-color: #294C7A; /* 青系背景 */
  color: #fff;
  padding: 86px 20px 84px;
	position: relative;
}

.top-company:before {
content:"";
  position:absolute;
  left:0; right:0; top:-50px;
  height: 50px;
  pointer-events:none;
  background: no-repeat left top / 100% 100% url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920.011 60.228" preserveAspectRatio="none">\
  <path fill="%23294C7A" d="M1920.011,41.227 s-85.435,15.284-425.007,4.5 s-559.53-43.249-933.281-45.625 S0,36.227 0,36.227 l0.011,24 h1920 Z"/>\
</svg>');
}
.top-company:after {
content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -50px;
  height: 50px; /* 波の高さ */
	z-index: 8;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 100%; /* 横幅に合わせてフィット */
  background: no-repeat left top / 100% 100% url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920.011 60.228" preserveAspectRatio="none">\
  <path fill="%23294C7A" d="M1920.011,19 s-85.435,-15.284-425.007,-4.5 s-559.53,43.249-933.281,45.625 S0,24 0,24 l0.011,-24 h1920 Z"/>\
</svg>');
}

@media (max-width: 1536px) {
	.top-company:before {height: 25px;top:-23px;}
	.top-company:after {height: 25px;bottom:-24px;}
  }

.company-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 50px;
}

.company-text {
  flex: 1;
  max-width: 580px;
}
.company-text p {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.75;
  margin: 50px auto 0;
}
.company-text p:not(:first-of-type) {
  margin-top: 0;
}

.company-btn-wrap {
  text-align: right;
  margin-top: 72px;
}
.company-btn-wrap a {
  max-width: 280px;
}

.company-image {
  flex: 1;
  max-width: 670px;
}
.company-image img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1536px) {
  .top-company {
    padding: 124px 20px 140px;
  }
  
  .company-inner {
    max-width: 1200px;
  }
  
  .company-text p {
    margin: 55px auto 0;
    letter-spacing: -0.01em;
  }
  
  .company-btn-wrap {
    margin-top: 69px;
  }

  .company-image img {
    object-fit: cover;
    /*height: 340px;*/
  }
}

@media (max-width: 767px) {
  .top-company {
    padding: 80px 20px;
  }

  .company-inner {
    flex-direction: column;
    gap: 40px;
  }

  .company-text {
    max-width: inherit;
  }
  .company-text p {
    font-size: 16px;
    line-height: 26px;
    font-weight: normal;
  }
  .company-text p:not(:first-of-type) {
    margin-top: 30px;
  }

  .company-image {
    max-width: inherit;
    width: 100%;
  }

  .company-btn-wrap {
    text-align: inherit;
    margin-top: 30px;
  }
  .company-btn-wrap a {
    max-width: inherit;
  }
}

@media (max-width: 375px) {
  .top-company {
    padding: 50px 20px 72px;
  }

  .top-company:before {
    height: 20px;
    top: -19px;
  }
  .top-company:after {
    height: 20px;
    bottom: -19px;
    z-index: 2;
  }

  .company-inner {
    gap: 25px;
  }

  .company-text p {
    margin: 37px auto 0;
    letter-spacing: 0;
  }
  .company-text p:not(:first-of-type) {
    margin-top: 25px;
  }

  .company-image img {
   /* height: 220px;*/
  }
}

/* ========================================
   Works
======================================== */
.top-works {
  background-color: #4580AD; /* 青系背景 */
  color: #fff;
}

.works-content-01 {
  position: relative;
  overflow: hidden;
  padding: 110px 0 253px;
}
.works-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center calc(100% - -138px);
  z-index: 0;
}
/* 共通オーバーレイ設定 */
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
/* #D9E5F6 を 17% 不透明でハードライト */
.overlay-hardlight {
  background-color: #D9E5F6;
  opacity: 0.17;
  mix-blend-mode: hard-light;
}
/* #B0C8EC を乗算で */
.overlay-multiply {
  background-color: #B0C8EC;
  mix-blend-mode: multiply;
}

.works-inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 120px;
  padding: 0 20px;
  z-index: 2;
}

.works-text {
  flex: 1;
}
.works-text p {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.75;
  text-shadow: 0 0 10px #344E72D9;
}

.works-content-02 {
  position: relative;
  padding: 70px 0 220px;
}
.works-content-02::before {
content:"";
  position:absolute;
  left:0; right:0; top:-48px;
  height: 50px;
  pointer-events:none;
  background: no-repeat left top / 100% 100% url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 50.002" preserveAspectRatio="none">\
  <g transform="translate(0,50.002) scale(1,-1)">\
    <path fill="%234580AD" d="M0,30.49c54.25,7,182.26,19.06,421.98,19.5,338.31.61,514.96-20.84,899.09-21.94,296.06-.85,514.38,10.03,598.93,15.06V0H0Z"/>\
  </g>\
</svg>');z-index: 8;
}

.workslist-inner {
  max-width: 1760px;
  margin: 0 auto;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  padding: 0 20px;
}

.work-item {
  flex: 1 1 calc(33.333% - 20px);
  text-align: center;
}
.work-item a {
  display: block;
  background-color: #000;
  overflow: hidden;
}

.work-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.4s ease, opacity 0.3s ease;
}
.work-item a:hover img {
  opacity: 0.8;
}

.work-item p {
  margin-top: 6px;
  font-size: 18px;
  font-weight: 600;
  text-align: left;
}

.works-btn-wrap {
  text-align: center;
  margin-top: 84px;
}
.works-btn-wrap a {
  max-width: 350px;
}

@media (max-width: 1536px) {
  .works-content-01 {
    padding: 132px 0 152px;
  }
  .works-bg {
    object-position: center calc(100% - -150px);
  }
  
  .works-inner {
    gap: 50px;
  }
  
  .works-content-02 {
    padding: 50px 0 100px;
  }

  .workslist-inner {
    max-width: 1460px;
  }

  .work-item img {
    object-fit: cover;
    /*height: 596px;*/
  }
  
  .work-item p {
    margin-top: 8px;
    font-size: 16px;
  }
  
  .works-btn-wrap {
    margin-top: 77px;
  }
}

@media (max-width: 1024px) {
  .works-bg {
    object-position: center;
  }
}

@media (max-width: 767px) {
	.works-content-01 {
    padding: 82px 0 202px;
  }
  .works-inner {
    flex-direction: column;
    align-items: inherit;
    gap: 20px;
  }
  
  .works-text p {
    font-size: 16px;
    line-height: 26px;
		
  }
  
  .workslist-inner {
    flex-direction: column;
    gap: 30px;
		display: block;
  }
	
	.work-item {
  text-align: center;margin-top: 10px;margin-bottom: 30px;
}
  
  .work-item p {
    margin-top: 0px;
    font-size: 16px;
  }

  .work-item img {
    /*height: 650px;*/
  }
  
  .works-btn-wrap {
    margin: 50px 20px 0;
  }
  .works-btn-wrap a {
    max-width: inherit;
  }
}

@media (max-width: 375px) {
  .works-content-01 {
    padding: 0 0 142px;
  }
  
  .works-inner {
    padding: 80px 20px;
    gap: 35px;
  }

  .works-content-02 {
    padding: 20px 0 80px;
  }
  .works-content-02:before {
    height: 20px;
    top: -19px;
  }

  .work-item img {
    /*height: 400px;*/
  }
  
  .works-btn-wrap {
    margin-top: 50px;
  }
}

/* ========================================
   Sustainability
======================================== */
.top-sustainability {
  position: relative;
  background-color: #dbeaf5;
  padding: 127px 0 145px;
}
.top-sustainability:before {
content:"";
  position:absolute;
  left:0; right:0; top:-50px;
  height: 50px;
  pointer-events:none;
  background: no-repeat left top / 100% 100% url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 50" preserveAspectRatio="none">\
  <path fill="%23dcebf5" d="M1920,31.27c-.42.04-86.27,7.26-425-.5C1155.43,22.98,935.47,2.52,561.72.14,188.39-2.23.43,26.2,0,26.26V50H1920Z"/>\
</svg>');
}
.top-sustainability:after {
content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -60px;
  height: 60px; /* 波の高さ */
	z-index: 8;
  pointer-events: none;
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 100%; /* 横幅に合わせてフィット */
  background: no-repeat left top / 100% 100% url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920.01 60" preserveAspectRatio="none">\
  <path fill="%23dcebf5" d="M0,0V5.58C126.78,17.01,490.46,53.31,813.54,45.59c200.94-4.57,258.2-6.05,747.24-6.05,209.78,4.82,311.21,12.94,359.23,20.46V0Z"/>\
</svg>');z-index: 8;
}

@media (max-width: 767px) {
.top-sustainability:before {top: -24px;
  height: 25px; /* 波の高さ */
  }
	.top-sustainability:after{ bottom: -29px;
  height: 30px; /* 波の高さ */
  }
}


.sustainability-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 20px;
}

.sustainability-text {
  flex: 1;
  max-width: 375px;
  z-index: 1;
}

.sustainability-text h2 {
  color: #294C7A;
}

.sustainability-text p {
  font-size: 17px;
  font-weight: 600;
  color: #294C7A;
  margin-top: 57px;
}

.sustainability-btn-wrap {
  margin-top: 47px;
}
.sustainability-btn-wrap a {
  max-width: 350px;
  border: 1px solid #294C7A;
  color: #294C7A;
}

.sustainability-btn-wrap a:hover {
  background-color: #294C7A;
  color: #fff;
}

.sustainability-image {
  flex: 1;
  margin-top: 66px;
  max-width: 900px;
}

.sustainability-image img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 1536px) {
  .top-sustainability {
    padding: 92px 0 125px;
  }
  
  .sustainability-inner {
    max-width: 1240px;
    gap: 20px;
  }
  
  .sustainability-text {
    max-width: 375px;
  }
  
  .sustainability-text p {
    font-size: 17px;
    font-weight: 600;
    margin-top: 57px;
  }
  
  .sustainability-btn-wrap {
    margin-top: 47px;
  }
  .sustainability-btn-wrap a {
    max-width: 350px;
  }
  
  .sustainability-image {
    margin-top: 66px;
    max-width: 900px;
  }
  
  .sustainability-image img {
    width: 100%;
    height: auto;
    display: block;
  }
}

@media (max-width: 767px) {
  .top-sustainability {
    padding: 60px 0;
  }
  
  .sustainability-inner {
    flex-direction: column;
    gap: 40px;
  }

  .sustainability-text {
    max-width: inherit;
    width: 100%;
		overflow: hidden;
  }
  .sustainability-text p {
    font-size: 16px;
    margin-top: 30px;
  }
  
  .sustainability-btn-wrap {
    margin-top: 30px;
  }
  .sustainability-btn-wrap a {
    max-width: inherit;
  }
  
  .sustainability-image {
    margin-top: 0;
    max-width: inherit;
  }
}
@media (max-width: 420px) {
	.sustainability-text h2{
    font-size: 48px;
  }
}
@media (max-width: 375px) {
  .top-sustainability {
    padding: 40px 0 70px;
  }
  .top-sustainability:before {
    height: 20px;
    top: -19px;
  }
  .top-sustainability:after {
    height: 20px;
    bottom: -19px;
  }
  
  .sustainability-inner {
    gap: 25px;
  }

  .sustainability-text p {
    margin-top: 38px;
  }
	.sustainability-text h2{
    font-size: 45px;
  }
}

/* ========================================
   Recruit
======================================== */
.top-recruit {
  background: url(../image/top/recruit-bg.jpg) center -308px / cover no-repeat;
  padding: 185px 0 207px;
  color: #fff;
}

.recruit-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

.recruit-inner p {
  font-size: 24px;
  font-weight: 600;
  text-shadow: 0px 0px 10px #243A59D9;
  margin-top: 50px;
}

.recruit-btn-wrap {
  margin-top: 41px;
}
.recruit-btn-wrap a {
  max-width: 500px;
}

@media (max-width: 1600px) {
  .top-recruit {
    background: url(../image/top/recruit-bg.jpg) center center / cover no-repeat;
    padding: 160px 0 225px;
  }
}

@media (max-width: 1536px) {  
  .recruit-inner p {
    font-size: 22px;
    font-weight: 600;
    margin-top: 50px;
  }
  
  .recruit-btn-wrap {
    margin-top: 44px;
  }
  .recruit-btn-wrap a {
    max-width: 500px;
  }
}

@media (max-width: 767px) {
  .top-recruit {
    padding: 160px 0 200px;
  }
  
  .recruit-inner p {
    font-size: 16px;
    margin-top: 30px;
  }

  .recruit-btn-wrap {
    margin-top: 68px;
  }
  .recruit-btn-wrap a {
    max-width: inherit;
  }
}

@media (max-width: 375px) {
  .top-recruit {
    background: url(../image/top/recruit-bg_sp.jpg) right center / cover no-repeat;
    padding: 87px 0 100px;
  }

  .recruit-inner p {
    margin-top: 38px;
  }

  .recruit-btn-wrap {
    margin-top: 60px;
  }
}

/*page*/
.page-header{width: 100%;height: 300px;display: flex;align-items: center;padding: 0 20px;background-color: #E7F1F7;background-position:center center;position: relative;background-size: cover;}
.page-header h1{font-size: 48px;color: #000;max-width: 1200px;margin: 0 auto;width: 100%;position: relative;font-weight: bold;}
.page-header h1 span{font-size: 20px;position: absolute;bottom: -20px;left: 0;}

.page-header h1.title-w{color: #fff;}

@media (max-width:480px){
	.page-header{height: 200px;}
}

main.page{max-width: 1220px;margin: 0 auto 150px;padding: 0px 20px 0;}
main.page p{font-family: "Noto Sans JP", sans-serif;margin-bottom: 10px;}
main.page h2{position: relative;font-size: 32px;font-weight: 500;line-height: 1.4;padding-left: 16px;margin-bottom: 40px;}
main.page h2::before {content: "";position: absolute;left: 0;top: 0;bottom: 0;width: 4px;
background: linear-gradient(to bottom,#1a4f7a 0%,#1a4f7a 50%,#8ecae6 50%,#8ecae6 100%);}
main.page h3{position: relative;font-weight: 500;
  font-size: 24px;
  line-height: 1.4;
  padding-bottom: 12px;margin:0 0 30px 0;
}
main.page h3::after {
content: "";position: absolute;left: 0;
bottom: 0;width: 100%;height: 1px;
background: linear-gradient(	to right,	#0F3969 0px,	#0F3969 30px,	transparent 30px,	transparent 31px,	#DCDCDC 31px,	#DCDCDC 100%);}
main.page h4{font-size: 20px;color: #294C7A;position: relative;margin:0 0 12px 25px;font-weight: 500;}
main.page h4::before {position: absolute;top: 8px;left: -20px;content: "";display: inline-block;width: 16px;height: 16px;background: no-repeat center/contain url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">\
  <rect width="16" height="16" rx="8" fill="%23294c7a"/>\
  <rect x="2" y="2" width="12" height="12" rx="6" fill="none" stroke="%23fff" stroke-width="1"/>\
</svg>');}
main.page h5{font-size: 18px;font-weight: 500;margin-bottom: 12px;}

main.page tbody,main.page tr,main.page td,main.page th,main.page thead{border:none;}
main.page table{width: 100%;font-family: "Noto Sans JP", sans-serif;overflow: hidden;margin: 0px 0 50px;border-collapse: separate;border-spacing: 5px 0px;}

main.page .col-table table td{border-bottom: 1px solid #DCDCDC;padding: 20px 15px 20px 30px;line-height: 1.8em;}
main.page .col-table table td:first-child{border-bottom: 1px solid #294C7A;background: #F1F7FA;padding: 12px 15px;color: #294C7A;border-spacing: 0 8px;}
	
main.page .row-table table{border-collapse: collapse;}
main.page p a,main.page td a{color:#294C7A;text-decoration: underline; }
main.page .row-table thead{background: #F1F7FA;}
main.page .row-table table th{text-align: center;padding: 20px 15px;color: #294C7A;position: relative;}
main.page .row-table table th::after{content: "";position: absolute;bottom: 0;right: 50%;height: 1px;width: 97%;background: #294C7A;transform: translateX(50%);}
main.page .row-table table td{text-align: center;padding: 20px 15px;position: relative;}
main.page .row-table table td::after{content: "";position: absolute;bottom: 0;right: 50%;height: 1px;width: 97%;background: #DCDCDC;transform: translateX(50%);}
main.page .wp-block-button{width: 100%;max-width: 300px;}
main.page .wp-block-button__link{position: relative;
    display: inline-block;
    padding: 20px 60px;
	
    border-radius: 50px;
    color: #fff;
    text-decoration: none;
    font-size: 17px;
    font-weight: 500;
    text-align: center;border: 1px solid #fff;
    transition: background 0.3s, color 0.3s;background: #294C7A;margin-bottom: 20px;}
main.page .wp-block-button__link:hover{color: #294C7A;border: 1px solid #294C7A;background: #fff;}
main.page .wp-block-button__link::after{content: '';
    position: absolute;
    background: url(../image/white-arrow.png) center top / contain no-repeat;
    width: 16px;
    height: 16px;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);}
main.page .wp-block-button__link:hover::after{background: url(../image/navy-arrow.png) center top / contain no-repeat;}
main.page .is-layout-flex{align-items: center !important;margin-bottom: 20px;gap:30px;}
main.page .is-layout-flex h5{margin-bottom: 10px;}
main.page .is-layout-flex .wp-block-image{margin-bottom: 10px;}
main.page .is-layout-flex.column-top{align-items: flex-start !important;}
main.page .is-layout-flex p{margin-bottom: 20px;}
main.page strong{font-weight:bold;}

main.page ul.wp-block-list{margin-bottom: 20px;font-family: "Noto Sans JP", sans-serif;}
main.page ul.wp-block-list li{position: relative;padding-left: 15px;padding-bottom: 6px;}
main.page ul.wp-block-list li::before{content: '';width: 8px;height: 8px;background: #294C7A;border-radius: 50%;display: inline-block;position: absolute;top: 10px;left: 0px;}
main.page ul.wp-block-list li ul,main.page ol.wp-block-list li ul{margin-bottom: 0px;}
main.page ul.wp-block-list li ul li{font-weight: 400;padding: 0;}
main.page ul.wp-block-list li ul li::before,main.page ol.wp-block-list li ul li::before{display: none;}
main.page ul.wp-block-list.ul-list02 li ul li{padding-left:15px;}
main.page ul.wp-block-list.ul-list02 li ul li::before{display: block;background: #91BCD6;}

main.page ol.wp-block-list{list-style: decimal;margin-bottom: 20px;margin-left: 28px; font-family: "Noto Sans JP", sans-serif;}
main.page ol.wp-block-list li{padding-bottom: 6px;}
main.page ol.wp-block-list li ul{font-weight: 400;padding-left: 0;}
main.page ol.wp-block-list li ul li{padding: 0;}
main.page ol.wp-block-list.ol-list02 li ul{list-style: decimal;}
main.page ol.wp-block-list.ol-list02 li ul li{margin-left: 25px;}

main.page .wp-block-embed__wrapper{
	position: relative;
  width: 100%;              /* 親幅いっぱい */
  aspect-ratio: 16 / 9;     /* 比率固定（古い環境なら下のpadding法を使用） */
  background: #000;}
main.page .wp-block-embed__wrapper iframe{width:100%;height: 100%;}

@media (max-width:960px){
	main.page .is-layout-flex{margin-bottom: 0px;gap: 16px;}
	.page-header h1{font-size: 32px}
	.page-header h1 span{font-size: 18px;}
	main.page h2{font-size: 24px;margin-bottom: 20px;}
	main.page h3{font-size: 21px;margin: 0 0 16px 0;}
	main.page h4{font-size: 18px;margin-left: 20px;}
	main.page h4::before{top:6px;}
	main.page table{font-size:14px;}
	main.page .col-table table td{padding: 20px 10px;}
	/*main.page .col-table table td:first-child{padding: 20px;}*/
	main.page .row-table table{ width: max-content;min-width: 100%;table-layout: fixed;margin-bottom: 0;}
	main.page .row-table{margin-bottom:50px;}
	main.page .wp-block-button__link{font-size: 15px;}
}
@media (max-width:781px){
	main.page .is-layout-flex.oder-reverse > div:first-child{order: 2;}
	main.page .is-layout-flex.oder-reverse > div:last-child{order: 1;}
	main.page .wp-block-button{max-width: 100%;}
}
@media (max-width:340px){
.page-header h1 span {font-size: 14px; }
	
}

/*sustainability*/
main.sustainability .group01 h3,
main.sustainability .group02 h3,
main.sustainability .group03 h3{font-size: 24px;padding: 10px 30px;margin:0 0 20px 0;width: 100%;}
main.sustainability .group01 h3::after,
main.sustainability .group02 h3::after,
main.sustainability .group03 h3::after{display: none;}
main.sustainability .is-layout-flex{}
main.sustainability h4{padding: 30px 10px 10px 20px;font-family: "Noto Sans JP", sans-serif;font-size: 20px;font-weight: bold;margin: 30px 30px 20px;}
main.sustainability h4::before {content: "";position: absolute;left: 0;top: 47%;width: 6px;height: 27px;}

main.sustainability .sustainability-flex{display: flex;padding:0 30px 20px 30px;}
main.sustainability .sustainability-flex ul{width: 100%}

main.sustainability .group01 ul{}
main.sustainability .group01 ul li,
main.sustainability .group02 ul li,
main.sustainability .group03 ul li{font-weight: 400;}
main.sustainability .group01 ul li::before{background: #457C3B;}
main.sustainability .group01 h4:before{background-image: linear-gradient(to bottom,#457c3b 0 15px,#a0e078 15px 100%);}
main.sustainability .group02 h4:before{background-image: linear-gradient(to bottom,#294C7A 0 15px,#91BCD6 15px 100%);}
main.sustainability .group03 h4:before{background-image: linear-gradient(to bottom,#F3A200 0 15px,#FFE0B2 15px 100%);}
main.sustainability .group02 ul li::before{background: #294C7A;}
main.sustainability .group03 ul li::before{background: #F3A200;}

@media (max-width:600px){
main.sustainability .sustainability-flex{flex-wrap: wrap;padding:0 30px 20px 30px;}
}

@media (max-width:960px){
main.sustainability .group01 h3,
main.sustainability .group02 h3,
main.sustainability .group03 h3{font-size: 21px;}
main.sustainability h4{font-size: 18px;}
}

.category-list {display: flex;flex-wrap: wrap;gap: 30px; list-style: none;padding: 0;margin: 40px 0;}
.category-list li {position: relative;}
.category-list a {text-decoration: none;color: #222;font-size: 19px;font-weight: 400;display: inline-flex;align-items: center;gap: 20px;padding-bottom: 6px;border-bottom: 1px solid #DCDCDC;transition: border-color 0.3s, color 0.3s;position: relative;font-family: "Noto Sans JP", sans-serif;}
.category-list a:hover {}
.category-list li a::after {content: "" !important;display: inline-block;width: 8px !important;height: 8px !important;border-right: 2px solid #294C7A;border-bottom: 2px solid #294C7A;transform: rotate(45deg) !important;margin-left: 6px;margin-top: -2px;position: relative !important;background: none !important; mask: none !important;}
.category-list li a::before {content: "";position: absolute;
        left: 0;
        width: 100%;
        height: 1px;
        background: #294C7A;
        bottom: -1px;
        transform: scale(0, 1);
        transform-origin: left top;
        transition: transform 0.3s;}
.category-list li a:hover::before {transform: scale(1, 1);}

@media (min-width:961px){
	main.case .case-card {max-width: 285px;}
}

main.case .case-list{display: flex;flex-wrap: wrap;max-width: 1200px;gap: 10px;margin-bottom: 60px;}
main.case .case-card {flex: 1 1 calc(25% - 10px);min-width: 285px;
background: #f4f4f4;cursor: pointer;box-sizing: border-box;transition: background 0.3s;position: relative;}
main.case .case-card img{height: 285px;object-fit: cover;}
main.case .case-card:hover::after,main.case .case-card.active::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(41, 76, 122, 0.5);
  pointer-events: none;
}

main.case .accordion-detail {position: relative;flex-basis: 100%;overflow: hidden;max-height: 0;opacity: 0;padding: 0 20px;margin: 0;transition:max-height 0.3s ease,opacity 0.25s ease,padding 0.25s ease,margin 0.25s ease;background-color: #294C7A;justify-content: space-between;}
main.case .accordion-detail.active {max-height: 1000px;opacity: 1;padding: 20px;margin: 10px 0;transition:max-height 0.4s ease,opacity 0.35s ease,padding 0.35s ease,margin 0.35s ease;}
main.case .accordion-detail > div{display: flex;align-items: center;}

.accordion-close {position: absolute;top: 20px;right: 20px;color: #fff;cursor: pointer;font-size: 30px;line-height: 28px;text-align: center;padding: 0;}

main.case .case-contents-box{justify-content: space-between;}
main.case .case-box-left{width: 50%;padding-right: 20px;}
main.case .case-box-left img{object-fit: contain;max-height: 402px;height: auto;}
main.case .case-box-right{width: 50%;padding: 20px}
main.case .case-box-right .case-title{color: #fff;font-size: 30px;font-weight: bold;margin: 0px 0 30px 0;font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;}
main.case .case-box-right dl{display: grid;grid-template-columns: 150px 1fr;border-collapse: collapse;font-family: "Noto Sans JP", sans-serif;max-width: 600px;color: #fff;
  }
main.case .case-box-right dl > div{display: contents;align-items: center;}
main.case .case-box-right dt{padding: 20px;font-weight: normal;
  border-bottom: 1px solid #294C7A;background: rgba(255,255,255,0.2);}
main.case .case-box-right dd{padding: 20px;margin-left: 3px;
  border-bottom: 1px solid #FFFFFF;font-weight: normal;}
@media (max-width:960px){
	main.case .case-box-right .case-title{font-size: 24px;}
}

@media (max-width: 767px) {
	main.case .accordion-detail.active {padding: 60px 20px 20px;}
	main.case .accordion-detail > div{flex-direction: column;}
	main.case .case-box-left{width: 100%;padding: 0px;}
main.case .case-box-right{width: 100%;padding: 20px 0;}
	.accordion-close {}
}

@media (max-width:480px){
	main.case .case-box-right .case-title{font-size: 20px;}
	main.case .case-box-right dl{font-size: 16px;grid-template-columns: 100px 1fr;}
}
.accordion-detail{
  overflow:hidden;
  max-height:0;
  opacity:0;
  transition:max-height .28s ease, opacity .28s ease;
}
.accordion-detail.active{
  max-height:2000px;
  opacity:1;
}
main.contact{font-family: "Noto Sans JP", sans-serif;}
.cf-row{display: grid;grid-template-columns: 250px 1fr;align-items: flex-start;gap: 15px;margin: 15px 0;max-width: 900px;}
.cf-row-message{max-width:100%;}
.cf-row--half{width:50%;}

.cf-label{margin: 0;font-weight: 300;font-family: "Noto Sans JP", sans-serif;display: inline-flex;align-items: center;justify-content: flex-end;gap: .4em;font-weight: 500;margin: 12px 0;justify-content: space-between;}
.cf-req{display:inline-block;margin:0 20px 0 10px;font-size:12px;line-height:1;color:#fff;background:#DB0000;padding:5px 10px;vertical-align:bottom;}

/* Inputs */
.cf-input,.cf-textarea{
  width:100%;display:block;border:1px solid #DCDCDC;
  padding:10px 12px;background:#fff;color:#324664;outline:none;transition:.15s border-color,.15s box-shadow
}
.wpcf7-not-valid{background: #FFF0F1;border-color:#DB0000;}
.cf-input:focus,.cf-textarea:focus{border-color:#294C7A;}
.cf-textarea{resize:vertical}



/* Radios */
.cf-radio{list-style:none;margin:.2rem 0 0;padding:0;display:grid;gap:.4rem}
.cf-radio input{margin-right:.4rem}

/* Privacy */
.cf-privacy{margin:60px 0 50px;}
.cf-privacy h3{margin:0 0 .6rem;font-size:16px}
.cf-privacy p{text-align: center;}
.cf-privacy p:first-child{text-align: left;}
.cf-privacy__box{max-height: 170px;overflow-y: auto;
  border:1px solid #DCDCDC;
  padding:14px;margin:0 0 .8rem;font-size:16px
}
.cf-privacy__box p{text-align: left;}
.cf-check{display:inline-block;text-align: center;}
.cf-check input{margin-top:.35em}

/* Submit button */
.cf-btn,
.wpcf7 .wpcf7-submit.cf-btn{font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;font-size: 17px;
  position: relative;
  display: inline-block;transition: background 0.3s, color 0.3s;
  width: 100%;
  padding: 17px 20px;border: none;
  border-radius: 999px;
  background: #294C7A;
  color: #fff;
  font-weight: 700;cursor:pointer;border:1px solid #fff;
  text-align: center;
}


.wpcf7 .wpcf7-submit:disabled{background: #707070;}
/* ラッパーを疑似要素のベースに */
.cf-submit{
  position: relative;
  display: block;max-width: 350px;margin: 0 auto;width: 100%;
}
.wpcf7-spinner{display: none;}
.cf-submit:hover::before{ opacity:1; }

/* 右矢印 */
.cf-submit::after{
  position: absolute;
    background: url(../image/white-arrow.png) center top / contain no-repeat;
    width: 16px;
    height: 16px;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);content: "";
}

.cf-submit-box{display: flex;justify-content: center;max-width: 725px;margin: 50px auto;}
/* CF7が挿入する<p>対策：行崩れ防止（任意） */
.cf-submit > p{ display: contents; margin:0; }

.cf-submit.is-hovering:hover::after{background: url(../image/navy-arrow.png) center top / contain no-repeat;}
.cf-btn:hover,
.wpcf7 .wpcf7-submit.cf-btn:hover{background: #fff;color: #294C7A;border:1px solid #294C7A;}

.cf-btn[disabled]{
  pointer-events: none;
}

/* 戻る＝ゴースト */
.wpcf7 .cf7btn--ghost {
  background: #fff;
  color: #294C7A;
  border-color: #9ca3af;border:1px solid #294C7A;
}
@media (max-width: 767px){
	.wpcf7 .wpcf7-submit.cf-btn,.wpcf7 .cf7btn--ghost{font-size: 15px;}
}
.cf-ghost::after{background: url(../image/navy-arrow.png) center top / contain no-repeat;left:20px;transform: rotate(180deg);top: 39%;}
.wpcf7 .cf7btn--ghost:hover {background: #294C7A;color: #fff;border:1px solid #fff; }
.cf-ghost:hover::after{background: url(../image/white-arrow.png)  center top / contain no-repeat !important;}

.wpcf7 .wpcf7-not-valid-tip {
  font-size: 0;                /* 文字非表示 */
  line-height: 0;position: relative;
}
.wpcf7 .wpcf7-form-control-wrap[data-name="your-name"] .wpcf7-not-valid-tip::after {
  content: "お名前・ご担当者名を入力してください";
  font-size: 13px;
  line-height: 1.6;margin-left: 18px;
}
.wpcf7 .wpcf7-form-control-wrap[data-name="kana"] .wpcf7-not-valid-tip::after {
  content: "フリガナを入力してください";
  font-size: 13px;
  line-height: 1.6;margin-left: 18px;
}
.wpcf7 .wpcf7-form-control-wrap[data-name="tel"] .wpcf7-not-valid-tip::after {
  content: "電話番号を入力してください";
  font-size: 13px;
  line-height: 1.6;margin-left: 18px;
}
.wpcf7 .wpcf7-form-control-wrap[data-name="email"] .wpcf7-not-valid-tip::after {
  content: "E-mailを入力してください";
  font-size: 13px;
  line-height: 1.6;margin-left: 18px;
}
.wpcf7 .wpcf7-form-control-wrap[data-name="message"] .wpcf7-not-valid-tip::after {
  content: "お問い合わせ内容を入力してください";
  font-size: 13px;
  line-height: 1.6;margin-left: 18px;
}

.wpcf7 .wpcf7-not-valid-tip::before{content:"";display: block;width: 15px;height: 15px;position: absolute;top: 3px;background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15"><g transform="translate(0.146)"><g transform="translate(-0.146)" fill="%23db0000" stroke="%23db0000" stroke-width="1"><circle cx="7.5" cy="7.5" r="7.5" stroke="none"/><circle cx="7.5" cy="7.5" r="7" fill="none"/></g><path d="M228.19,127.18a.374.374,0,0,0,.1.2.267.267,0,0,0,.2.094.282.282,0,0,0,.305-.29l.611-4.7a3.078,3.078,0,0,0,.016-.352.978.978,0,0,0-.243-.642.85.85,0,0,0-.689-.29.834.834,0,0,0-.7.3.988.988,0,0,0-.235.635,3.282,3.282,0,0,0,.016.352Z" transform="translate(-221.157 -118.187)" fill="%23fff"/><path d="M228.036,335.095a.947.947,0,1,0-.948-.948.94.94,0,0,0,.274.666A.9.9,0,0,0,228.036,335.095Z" transform="translate(-220.682 -323.107)" fill="%23fff"/></g></svg>') center/contain no-repeat;}



/* ===== ラジオ（共通） ===== */
/* 例：.cf-radio 内や CF7 のリストアイテムだけに限定して当てる */
.cf-radio input[type="radio"],
.wpcf7 .wpcf7-list-item input[type="radio"]{
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  margin: 0 8px;
  border: 1px solid #707070;
  border-radius: 50%;
  background: #fff;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  position: relative;
  outline: none;
}
.cf-radio input[type="radio"]::after,
.wpcf7 .wpcf7-list-item input[type="radio"]::after{
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #294C7A;
  transform: scale(0);
  transition: transform .12s ease-out;
}

/* チェック時：内側の丸を表示 */
.cf-radio input[type="radio"]:checked::after,
.wpcf7 .wpcf7-list-item input[type="radio"]:checked::after{
  transform: scale(1);
}

/* フォーカスリング（キーボード操作向け） */
.cf-radio input[type="radio"]:focus-visible,
.wpcf7 .wpcf7-list-item input[type="radio"]:focus-visible{
  box-shadow: 0 0 0 3px rgba(41,76,122,.15);
}

/* 無効状態 */
.cf-radio input[type="radio"]:disabled,
.wpcf7 .wpcf7-list-item input[type="radio"]:disabled{
  opacity: .5;
  cursor: not-allowed;
}
.wpcf7-list-item{display: block;margin: 5px 0 0 0;}
/* CF7 が自動で挿入するpを透明化 */
.cf-row > p {
  display: contents;
  margin: 0;
}


@media (max-width: 767px){
	.cf-submit-box{flex-direction: column;margin: 30px auto 0;}
	.cf-ghost{margin-bottom:30px;}
  .contact-form{margin:28px auto 56px}
  .cf-title{font-size:20px}
  .cf-row--half{max-width:none}
	.cf-row {
    grid-template-columns: 1fr;
  }
  .cf-label {
    text-align: left;
    margin-bottom: .35rem;justify-content: flex-start;
		
  }
	
}

.contact-content {width:100%;background: url(../image/partner-company.png) right center / cover no-repeat;padding: 70px 0 60px;margin-bottom: 50px;}
.contact-content .container{width:100%;max-width: 1220px;margin: 0 auto;padding: 0 20px;}
.contact-content .coop__grid{display:grid;grid-template-columns: 1fr 1fr;gap: 20px;}
.contact-content .coop__grid .panel{background: #fff;padding: 30px;}
.contact-content .coop__grid .panel h3{position: relative;
    font-weight: 500;color: #294C7A;
    font-size: 28px;
    line-height: 1.4;
    padding-bottom: 8px;
	margin: 0 0 20px 0;}
.contact-content .coop__grid .panel h3::after{    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, #0F3969 0px, #0F3969 30px, transparent 30px, transparent 31px, #DCDCDC 31px, #DCDCDC 100%);
}
.contact-content .coop__grid .panel .panel__list{font-family: "Noto Sans JP", sans-serif;}
.contact-content .coop__grid .panel .panel__list strong{color: #294C7A;}
.contact-content .coop__grid .panel .panel__list .pic{margin-top: 10px;}
.contact-content .coop__grid .panel .panel__list .circle{margin-left: 1em;text-indent: -1em;}
.contact-content .coop__grid .panel .panel__list .circle::before{content: "・"}

.contant-container-title{display:flex;justify-content: space-between; align-items: center;margin-bottom: 50px;}
.contant-container-title h2{position: relative;
    font-size: 32px;color: #fff;
    font-weight: 500;
    line-height: 1.4;
    padding-left: 16px;}
.contant-container-title h2::before{content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 2px;
    background: #fff;}
.contant-container-title p{font-family: "Noto Sans JP", sans-serif;color: #fff;}
.container-area{padding:0 20px ;max-width: 1220px;margin: 0 auto;}
@media (max-width: 767px){
	.contant-container-title h2{font-size: 24px;margin-bottom: 20px;}
	.contact-content .coop__grid .panel h3{font-size: 24px;}
	.contact-content .coop__grid{display:grid;grid-template-columns: 2fr ;gap: 20px;}
	.contant-container-title{flex-direction: column;justify-content: flex-start;align-items: flex-start;margin-bottom: 30px;}
}
.multiform-p{padding: 10px 12px;display: inline-block !important;}
#cf7msm_message{white-space: pre-wrap;overflow-wrap: anywhere;}
p.multiform-p.cf7msm-no-padding {
  padding: 0 !important;
}
/* ===== 20px #294C7A 塗り＋白チェック（CF7）===== */

/* 行の土台 */
.cf-check .wpcf7-list-item label {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .5em;
  cursor: pointer;
  padding-left: calc(20px + .6em); /* 左に□ぶんの余白 */
  user-select: none;
}

/* ネイティブinputは見えないが操作可 */
.cf-check .wpcf7-list-item input[type="checkbox"] {
  position: absolute;
  left: 0;
  top: 50%;
  width: 20px;
  height: 20px;
  margin: 0;
  transform: translateY(-50%);
  opacity: 0;
}

/* □（未チェック時：白塗り＋紺枠） */
.cf-check .wpcf7-list-item .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #294C7A; /* SVGのstrokeに合わせて1px */
  border-radius: 0;          /* 角丸なし */
}

/* ✓（白） */
.cf-check .wpcf7-list-item .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  left: 8px;       /* 配置微調整 */
  top: 14px;
  width: 12px;     /* 横 */
  height: 7px;     /* 縦 */
  transform: translateY(-56%) rotate(-45deg) scale(0);
  transform-origin: left bottom;
  border-left: 3px solid #fff;   /* 白い✓の線 */
  border-bottom: 3px solid #fff;
  transition: transform 120ms ease-out;
}

/* チェックON：□を#294C7Aで塗り、✓を表示 */
.cf-check .wpcf7-list-item input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
  background: #294C7A;
  border-color: #294C7A;
}
.cf-check .wpcf7-list-item input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
  transform: translateY(-56%) rotate(-45deg) scale(1);
}

/* フォーカスリング（キーボード操作時） */
.cf-check .wpcf7-list-item input[type="checkbox"]:focus-visible + .wpcf7-list-item-label::before {
  outline: 3px solid rgba(41, 76, 122, .35);
  outline-offset: 2px;
}

/* 無効状態 */
.cf-check .wpcf7-list-item input[type="checkbox"]:disabled + .wpcf7-list-item-label {
  opacity: .55;
  cursor: not-allowed;
}
