@charset "UTF-8";
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

*,*::before,*::after {
  box-sizing: border-box;
}

:root {
	--jost-font: "Jost", sans-serif;
  --zenkaku-font: "Zen Kaku Gothic New", sans-serif;
  --noto-font: "Noto Sans JP", sans-serif;
  --mont-font: "Montserrat", sans-serif;;
}

body {
  margin: 0;
  font-family: var(--zenkaku-font);
  font-weight: 700;
  font-size: 1.8rem;
  color: #342A18;
  background-color: #FCF8F3;
}

.top_body::before {
  content: '';
  position: fixed; /* 画面に固定 */
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url(img/mv_bg.webp);
  background-size: cover;
  background-position: center;
  z-index: -1; /* 全ての要素の背面に配置 */
}

a:link, a:visited, a:hover, a:active {
  text-decoration: none;
  color: inherit;
}

a{
  display: block;
}

img{
  width: 100%;
  height: 100%;
  vertical-align: bottom;
}

h1, h2, h3, h4{
  font-weight: normal;
  font-size: inherit;
  margin: 0;
}

ol, ul {
  list-style: none;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

address {
  font-style: normal;
}


header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 40;
  padding: 20px 28px 0;
}

.header_inner {
  padding: 25px 0 25px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #FCF8F3;
  border-radius: 20px;
  box-shadow: 0 0 20px rgba(52,42,24,.1);
}

.logo {
  width: 100%;
  max-width: 200px;
}

.logo_black {
  display: block;
}

.logo_white {
  display: none;
}

.toggle-wrap{
  display: none;
}

.gnav_sp{
  display: none;
}

.gnav_pc > ul {
  display: flex;
  font-size: 1.6rem;
  letter-spacing: .1em;
}

.gnav_pc > ul > li {
  padding-right: 66px;
}

.gnav_pc ul li a {
  transition: .3s;
}

.gnav_pc ul li a:hover {
  opacity: .6;
}

.has-dropdown {
  position: relative;
}

.has-dropdown::after {
  content: "";
  background: url(img/arrow_down.svg) no-repeat;
  background-size: contain;
  display: block;
  width: 18px;
  height: 9px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 40px;
}

.dropdown-menu {
  position: absolute;
  top: 38px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  background-color: #ffffff;
  min-width: 236px;
  padding: 4px 24px 24px;
  border-radius: 20px;
  box-shadow: 0 0 20px rgba(52, 42, 24, 0.1);
}

.dropdown-menu li {
  border-bottom: 1px solid #BCBCBC;
}

.dropdown-menu li a {
  padding: 20px 16px 16px 0;
  position: relative;
}

.dropdown-menu li a::after {
  content: "";
  background: url(img/arrow_right.svg) no-repeat;
  background-size: contain;
  display: block;
  width: 12px;
  height: 10px;
  position: absolute;
  top: 28px;
  right: 0;
}

.has-dropdown:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
}

.mv {
  min-height: 1280px;
  width: 100%;
  position: relative;
  padding: 30px 30px 30px 60px;
}

.mv::after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,.78);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.mv::before {
  background-image: url(img/wave.svg);
  content: '';
  position: absolute;
  width: 100%;
  height: 40px;
  background-size: cover;
  background-position: center;
  bottom: 0;
  left: 0;
  z-index: 3;
}

.mv_inner {
  display: flex;
  column-gap: 5%;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 4;
  height: 1280px;
}

.mv_txt_box {
  width: 100%;
  max-width: 710px;
  background-color: #fff;
  border-radius: 40px;
  overflow: hidden;
  padding: 0 50px;
}

.fade-in-up {
  opacity: 0;
  transform: translateY(50px);
}

.fade-in-up.show {
  animation: fadeInUp .4s linear 1 normal forwards;
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(50px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.mv_txt_box::before,.mv_txt_box::after {
  background-image: url(img/triangle_pink.svg);
  content: '';
  position: absolute;
  width: 130px;
  height: 130px;
  background-size: cover;
  background-position: center;
}

.mv_txt_box::before {
  top: -1px;
  left: -1px;
  transform: rotate(180deg);
}

.mv_txt_box::after {
  bottom: -1px;
  right: -1px;
}

.mv_txt_box_inner {
  max-width: 530px;
  margin: 150px auto;
}

.mv_txt_box_title_en {
  font-family: var(--jost-font);
  font-weight: 500;
  color: #EA706D;
  font-size: 2rem;
  line-height: 1;
}

.mv_txt_box_title_jp {
  margin-top: 28px;
  font-size: 6.4rem;
  line-height: 1.6;
  letter-spacing: .1em;
}

.mv_txt_box_p {
  margin-top: 44px;
  font-size: 3.2rem;
  line-height: 1.6;
  letter-spacing: .1em;
}

.bg-color {
  background-color: #FCF8F3;
  position: relative;
  z-index: 1;
  padding-top: 170px;
}

.news {
  margin-bottom: 240px;
}

.news_inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  column-gap: 50px;
}

.news .heading_h2 > span:before {
  background-image: url(img/title_arrow_black.svg);
}

.news .button_link {
  margin-top: 40px;
  background: #EA706D;
  color: #fff;
}

.news .button_link .icon_arrow {
  background: url(img/arrow_right_white.svg) no-repeat center / contain;
}

.news_list {
  width: 100%;
  max-width: 800px;
}

.news_list li {
  border-bottom: 1px solid #BCBCBC;
  position: relative;
}

a.news_li_link {
  padding: 40px 60px 40px 0;
  position: relative;
  transition: .3s;
}

a.news_li_link:hover {
  opacity: .6;
}

.post_wrap {
  display: flex;
  column-gap: 40px;
  align-items: center;
}

.news_arrow {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 17px;
}

.news_arrow img {
  display: block;
}

.video_area {
  aspect-ratio: 1920 / 1000;
  position: relative;
}

.video_area .video_wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.video_area .video_wrap video {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.strengths {
  margin: 240px 0 180px;
  position: relative;
}

.strengths_inner {
  display: grid;
  grid-template-columns: 30% 1fr;
  column-gap: 70px;
  align-items: center;
}

.strengths .heading_h2 {
  display: grid;
  place-content: center;
}

.heading_h2 > span {
  position: relative;
  padding-left: 24px;
  font-family: var(--jost-font);
  font-weight: 500;
  font-size: 2rem;
  line-height: 1;
}

.heading_h2 > span:before {
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  background-image: url(img/title_arrow_white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}

.strengths .heading_h2 span:before {
  background-image: url(img/title_arrow_black.svg);
}

.heading_h2 h2 {
  font-weight: 700;
  font-size: 4.8rem;
  padding-top: 14px;
  letter-spacing: .1em;
  line-height: 1.3;
}

.strengths .heading_h2 h2 span {
  font-size: 2.4rem;
}

.strengths_slider {
  min-width: 0;
}

.slider {
  overflow: hidden;
  width: 100%;
  min-width: 0;
}

.strengths_slider .swiper-slide {
  height: auto;
}

.strengths_box {
  height: 100%;
  background-color: #fff;
  border-radius: 40px;
  position: relative;
  overflow: hidden;
  padding: 44px 12%;
  display: flex;
  flex-direction: column;
}

.strengths_box::before {
  background-image: url(img/triangle_pink.svg);
  content: '';
  position: absolute;
  width: 190px;
  height: 190px;
  background-size: cover;
  background-position: center;
  top: -1px;
  left: -1px;
  transform: rotate(180deg);
}

.strengths_box.blue::before {
  background-image: url(img/triangle_blue.svg);
}

.strengths_box.yellow::before {
  background-image: url(img/triangle_yellow.svg);
}

.strengths_box::after {
  content: attr(data-num);
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 2;
  font-family: var(--jost-font);
  color: #fff;
  font-size: 6rem; 
  font-weight: 700;
  line-height: 1;
}

.strengths_box_img {
  max-width: 300px;
  margin: 0 auto;
}

.slider img {
  pointer-events: none;
}

.strengths_box h3 {
  margin-top: 10px;
  font-weight: 700;
  font-size: 2.8rem;
  line-height: 1.5;
  letter-spacing: .1em;
}

.strengths_box p {
  margin-top: 50px;
  margin-bottom: 50px;
  line-height: 2.5;
  letter-spacing: .05em;
}

.box-arrow {
  margin-top: auto;
  align-self: center;
  width: 60px;
}

.slider1 .controlls1_wrap {
  margin-top: 55px;
  display: flex;
  justify-content: flex-start;
}

.slider1 .controlls1_wrap .swiper-pagination {
  position: static; 
  width: auto;
  display: flex;
  gap: 25px;
}

.slider1 .swiper-pagination-bullet {
  width: 98px;
  height: 6px;
  border-radius: 4px;
  background-color: #BCBCBC;
  opacity: 1;
  margin: 0 !important;
  transition: background-color 0.3s;
}

.slider1 .swiper-pagination-bullet-active {
  background-color: #EA706D;
}

/* 流れる文字 */
.txt_loop_wrap {
	position: absolute;
	top: 66px;
	display: flex;
	width: 100%;
	overflow: hidden;
  z-index: -1;
}

.tlw_2 {
  top: auto;
  bottom: 66px;
}

.txt_loop_wrap div {
	flex: 0 0 auto;
	white-space: nowrap;
	font-family: var(--jost-font);
	font-size: 20rem;
	color: #F0F0F0;
	font-weight: 500;
	overflow: hidden;
  line-height: 1;
  padding-bottom: 20px;
}

.txt_loop_wrap div:nth-child(odd) {
	animation: loop 40s linear infinite;
}

.txt_loop_wrap div:nth-child(even) {
  animation: loop2 40s linear infinite;
}

@keyframes loop {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
  
@keyframes loop2 {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}

.txt_loop_wrap.tlw_2 div:nth-child(odd),
.txt_loop_wrap.tlw_2 div:nth-child(even) {
  animation: loop-reverse 40s linear infinite;
}

@keyframes loop-reverse {
  0% {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

.top_color-box_wrap {
  display: grid;
  row-gap: 180px;
  overflow: hidden;
}

.anchor {
  margin-top: -120px;
  padding-top: 120px;
}

.top_color-box_top {
  font-family: var(--jost-font);
  font-size: 12.8rem;
  line-height: 1;
  font-weight: 500;
  color: #EA706D;
}

.what-we-do .top_color-box_top {
  color: #5988CB;
  white-space: nowrap;
}

.workplace .top_color-box_top {
  color: #F6BF43;
}

/* Gridアイテム（各セクション）の横幅暴走を止める */
.top_color-box_wrap > section {
  min-width: 0;
}

.top_color-box {
  margin-top: -20px;
  border-radius: 40px;
}

.culture .top_color-box {
  background-color: #EA706D;
  padding: 70px 0;
}

.top_culture_txt-part,
.top_workplace_txt-part {
  padding: 0 4%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  column-gap: 50px;
}

.top_color-box_txt-wrap {
  color: #fff;
}

.top_color-box_p_wrap {
  margin-top: 80px;
  letter-spacing: .1em;
  line-height: 1.75;
  display: grid;
  row-gap: 28px;
}

a.button_link {
  background: #fff;
  overflow: hidden;
  position: relative;
  padding: 20px 60px;
  line-height: 1;
  width: 240px;
  border-radius: 52px;
  font-family: var(--jost-font);
  font-weight: 500;
  color: #EA706D;
  transition: .3s;
}

a.button_link:hover {
  opacity: .6;
}

.icon_arrow {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  background-size: contain;
  width: 17px;
  height: 15px;
  background: url(img/arrow_right.svg) no-repeat center / contain;
}

/* .slider2 の動きを等速（一定のスピード）にする */
.slider2 .swiper-wrapper,
.slider3 .swiper-wrapper,
.slider5 .swiper-wrapper {
  transition-timing-function: linear !important;
}

.top_culture_slider {
  margin-top: 96px;
}

.top_culture_slider .swiper-slide {
  background-color: #fff;
  border-radius: 20px;
  padding: 24px 24px 60px;
  text-align: center;
  height: auto;
}

.culture_slide_img {
  border-radius: 15px;
  overflow: hidden;
}

.culture_slide_p {
  margin-top: 52px;
  font-size: 2rem;
  letter-spacing: .1em;
  color: #EA706D;
}

.what-we-do .top_color-box {
  background-color: #5988CB;
  padding: 70px 4%;
}

.top_what-we-do_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  column-gap: 50px;
}

.what-we-do a.button_link {
  color: #5988CB;
  margin-top: 60px;
}

.what-we-do .icon_arrow {
  background: url(img/arrow_right_blue.svg) no-repeat center / contain;
}

.top_what-we-do_slider {
  width: 52%;
  border-radius: 30px;
  overflow: hidden;
}

.top_what-we-do_slider .swiper-slide {
  border-radius: 30px;
  overflow: hidden;
}

.workplace .top_color-box {
  background-color: #F6BF43;
  padding: 70px 0 0;
  overflow: hidden;
  position: relative;
}

.workplace .top_color-box::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 80%;
  max-width: 1220px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  transform: translate(-50%, 64%);
  background-color: #fff;
}

.workplace .top_color-box_txt-wrap {
  display: flex;
  column-gap: 10%;
  flex-grow: 1;
}

.workplace .heading_h2 {
  flex-shrink: 0;
  white-space: nowrap;
}

.workplace .top_color-box_p_wrap {
  margin-top: 8px;
}

.workplace a.button_link {
  color: #F6BF43;
  margin-top: 0;
}

.workplace .icon_arrow {
  background: url(img/arrow_right_yellow.svg) no-repeat center / contain;
}

.workplace_slider_wrap {
  overflow: hidden;
}

.slider4 .swiper-slide {
  transition: transform 1s ease, opacity 1s ease;
  transform: translateY(100px);
  padding-top: 200px;
}

.slider4 .slide-txt {
  opacity: 0;
  transition: opacity 0.5s ease;
  text-align: center;
  color: #fff;
  font-weight: 700;
  font-size: 3rem;
  margin-bottom: 48px;
  letter-spacing: .1em;
  white-space: nowrap;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
}

.slider4 .slide-img img {
  border-radius: 30px;
}

.slider4 .swiper-slide-active {
  transform: translateY(-75px);
}

.slider4 .swiper-slide-active .slide-txt {
  opacity: 1;
}

.job-info {
  margin-top: 200px;
  position: relative;
}

.job-info_inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 20px;
}

.job-info .heading_h2 > span:before {
  background-image: url(img/title_arrow_black.svg);
}

.job-info h3 {
  margin-top: 150px;
  font-size: 2.8rem;
  text-align: center;
  line-height: 1.5;
  letter-spacing: .1em;
  font-weight: 700;
}

.job-info p {
  margin-top: 80px;
  text-align: center;
  line-height: 2.5;
  letter-spacing: .05em;
}

.job-info .button_link {
  margin-top: 90px;
  background: #EA706D;
  color: #fff;
}

.job-info .button_link .icon_arrow {
  background: url(img/arrow_right_white.svg) no-repeat center / contain;
}

.job-info .txt_loop_wrap,
.sub_job-info_head .txt_loop_wrap {
  top: 50%;
  transform: translateY(-50%);
}

.job-info .txt_loop_wrap div,
.sub_job-info_head .txt_loop_wrap div  {
  color: #fff;
}

footer {
  max-width: 1700px;
  margin: 240px auto 0;
  padding: 0 20px;
  position: relative;
}

.footer_deco {
  position: absolute;
}

.footer_deco.left {
  top: -142px;
  left: 0;
  width: 77px;
  height: 77px;
}

.footer_deco.right {
  top: -120px;
  right: 0;
  width: 168px;
  height: 168px;
}

.footer_inner {
  background-color: #fff;
  border-radius: 60px 60px 0 0;
  padding: 100px 140px 40px;
}

.footer_flex {
  display: flex;
  justify-content: space-between;
  column-gap: 30px;
}

.footer_logo {
  width: 100%;
  max-width: 300px;
}

.footer_com-info {
  margin-top: 60px;
  font-size: 1.6rem;
  letter-spacing: .05em;
  display: grid;
  row-gap: 28px;
  line-height: 1.75;
}

.copy-right {
  margin-top: 68px;
  font-size: 1.4rem;
  letter-spacing: .05em;
  line-height: 1.75;
  text-align: center;
  color: #BCBCBC;
}

.footer_nav {
  display: flex;
  column-gap: 100px;
}

.footer_nav ul {
  display: grid;
  row-gap: 44px;
  align-self: flex-start;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: .1em;
}

.footer_nav_pp {
  font-size: 1.6rem;
  color: #BCBCBC;
}

.footer_nav a {
  transition: .3s;
}

.footer_nav a:hover {
  opacity: .6;
}


.sub_head {
  position: relative;
  width: 100%;
  padding-top: 136px;
  padding-bottom: 140px;
  overflow: hidden;
  z-index: 1;
}

.sub_head::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 150vw; 
  height: 100%;
  background-color: #EA706D;
  border-radius: 0 0 50% 50%; 
  z-index: -1;
}

.sub_head .txt_loop_wrap {
  position: static;
}

.sub_head .txt_loop_wrap div {
  font-size: 12.8rem;
  color: #fff;
}

.sub_head .txt_loop_wrap div:nth-child(odd) {
	animation: loop 80s linear infinite;
}

.sub_head .txt_loop_wrap div:nth-child(even) {
  animation: loop2 80s linear infinite;
}

.sub_head_txt_wrap {
  margin-top: 72px;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sub_head_txt_p_wrap {
  margin-top: 48px;
  text-align: center;
  letter-spacing: .1em;
  line-height: 2.4;
}

.sub_culture_slider {
  margin-top: 136px;
}

.sub_box_section {
  padding: 240px 0 40px;
  position: relative;
}

.sub_box_section .txt_loop_wrap {
  top: 100px;
}

.sub_box_section .strengths_box {
  max-width: 1540px;
  margin: 0 auto;
  padding: 56px;
  flex-direction: row;
  align-items: center;
  column-gap: 5%;
}

.sub_box_img {
  height: fit-content;
  overflow: hidden;
  border-radius: 40px;
  width: 100%;
  max-width: 600px;
}

.sub_box_txt_wrap {
  display: grid;
  place-content: center;
  width: 100%;
}

.sub_box_txt_wrap h3{
  margin-top: 0;
  font-size: 4rem;
  color: #EA706D;
}

.sub_box_p_wrap {
  margin-top: 40px;
  display: grid;
  row-gap: 28px;
  max-width: 620px;
}

.strengths_box .sub_box_p_wrap p {
  margin: 0;
  line-height: 1.75;
  letter-spacing: .1em;
}


.sub_head.what-we-do::before {
  background-color: #5988CB;
}

.top_what-we-do_slider.sub_what-we-do_slider {
  margin-top: 136px;
  width: 100%;
  border-radius: 0;
  margin-bottom: 136px;
}

.sub_what-we-do_slider .swiper-slide:nth-child(even) {
  margin-top: 60px;
}

.strengths_box.sub_what-we-do_box::before {
  background-image: url(img/triangle_blue.svg);
}

.sub_what-we-do_box .sub_box_txt_wrap h3 {
  color: #5988CB;
}


.sub_head.workplace::before {
  background-color: #F6BF43;
}

.strengths_box.sub_workplace_box::before {
  background-image: url(img/triangle_yellow.svg);
}

.sub_workplace_box .sub_box_txt_wrap h3 {
  color: #F6BF43;
}

.sub_workplace_slider_wrap {
  position: relative;
  padding: 136px 0 116px;
  overflow: hidden;
}

.sub_workplace_slider_wrap::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 80%;
  max-width: 1220px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  transform: translate(-50%, 64%);
  background-color: #F6BF43;
}

.sub_workplace_slider_wrap .slide-txt {
  color: #F6BF43;
  text-align: center;
  font-size: 3rem;
  margin-bottom: 48px;
  letter-spacing: .1em;
  white-space: nowrap;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
}

.sub_workplace_slider_wrap .slide-img {
  overflow: hidden;
  border-radius: 20px;
}


.sub_job-info_head {
  position: relative;
}

.sub_job-info_head .job-info_inner {
  padding: 90px 20px 96px;
}

.sub_job-info_head .heading_h2 > span:before {
  background-image: url(img/title_arrow_black.svg);
}

.sub_job-info_head_p {
  margin-top: 48px;
  line-height: 2.4;
  letter-spacing: .1em;
  text-align: center;
}

.sub_job-info_head .txt_loop_wrap div  {
  font-size: 12.8rem;
}

.img_marquee_wrap {
  display: flex;
  overflow: hidden;
  width: 100%;
}

.img_marquee_list {
  display: flex;
  flex: 0 0 auto;
  animation: loop 40s linear infinite;
}

.img_marquee_wrap.reverse .img_marquee_list {
  animation: loop-reverse 40s linear infinite;
}

.img_marquee_item {
  width: 360px;
  margin: 0 34px;
  border-radius: 20px;
  overflow: hidden;
}

.img_marquee_item img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

@keyframes loop {
  0% { transform: translateX(0); }
  to { transform: translateX(-100%); }
}
@keyframes loop-reverse {
  0% { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

.job-description,
.entry {
  padding: 0 20px;
}

.job-info_h3 {
  margin-bottom: 80px;
  width: fit-content;
  min-width: 460px;
  font-size: 4rem;
  padding: 10px 34px;
  line-height: 1.5;
  letter-spacing: .1em;
  background-color: #EA706D;
  border-radius: 20px;
  color: #fff;
  text-align: center;
  font-weight: 700;
}

.job-description .job-info_h3 {
  margin: 0 auto 80px;
}

.job-description_content {
  max-width: 1040px;
  margin: 0 auto;
}

.job-description_content dl {
  display: grid;
  padding: 32px 0;
  column-gap: 20px;
  grid-template-columns: 200px auto;
  border-bottom: 1px solid #BCBCBC;
}

.job-description_content dl dt {
  font-size: 2rem;
  line-height: 1.75;
  letter-spacing: .05em;
}

.job-description_content dl dd {
  line-height: 1.75;
  letter-spacing: .1em;
}

.entry {
  display: flex;
  column-gap: 50px;
  justify-content: space-between;
  max-width: 1680px;
  margin: 0 auto;
}

.entry_left {
  position: sticky;
  height: fit-content;
  top: 120px;
}

.entry_p_wrap {
  max-width: 620px;
  display: grid;
  row-gap: 28px;
  line-height: 2;
  letter-spacing: .05em;
}

.form-wrapper {
  width: 100%;
  max-width: 800px;
}

.form-group {
  margin-bottom: 40px;
}

.form-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 2rem;
  margin-bottom: 12px;
  line-height: 1;
  letter-spacing: .05em;
}

.badge {
  display: inline-block;
  padding: 4px 8px;
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
  border-radius: 4px;
}

.badge.req {
  background-color: #EA706D;
}

.badge.opt {
  background-color: #ACACAC;
}

.form-input input[type="text"],
.form-input input[type="email"],
.form-input input[type="tel"],
.form-input select,
.form-input textarea {
  width: 100%;
  padding: 20px;
  border: 1px solid #BCBCBC;
  border-radius: 4px;
  background-color: #fff;
}

.form-input input::placeholder,
.form-input textarea::placeholder {
  color: #BFBFBF;
}

.form-input textarea {
  height: 200px;
  resize: vertical;
}

.name-group {
  display: flex;
  gap: 20px;
}

.name-group input {
  width: 50%;
}

.select-wrap {
  position: relative;
}

.select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  width: 12px;
  height: 8px;
  background: url(img/arrow_down_gray.svg) no-repeat center / contain;
  pointer-events: none;
}

.form-input select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.form-footer {
  margin-top: 44px;
  text-align: center;
}

.privacy-text {
  line-height: 2;
  letter-spacing: .05em;
  margin-bottom: 36px;
}

.privacy-text a {
  display: inline;
  text-decoration: underline;
}

.privacy-check {
  margin-bottom: 40px;
}

.privacy-check label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.submit-btn {
  background-color: #EA706D;
  color: #fff;
  font-size: 2rem;
  padding: 20px;
  line-height: 1;
  border-radius: 50px;
  cursor: pointer;
  transition: .3s;
  width: 100%;
  max-width: 240px;
  letter-spacing: .05em;
}

.submit-btn:hover {
  opacity: 0.6;
}


.sub_privacy-policy_head {
  padding: 110px 0 24px;
}

.privacy-policy_top_p {
  line-height: 2;
  letter-spacing: .05em;
}

.privacy-policy_content {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 20px;
}

.privacy-policy_section_wrap {
  margin-top: 60px;
  display: grid;
  row-gap: 48px;
  line-height: 1.75;
  letter-spacing: .05em;
}

.privacy-policy_section_wrap h3 {
  font-size: 2.8rem;
  padding-bottom: 8px;
  border-bottom: 1px solid #BCBCBC;
  margin-bottom: 24px;
  font-weight: 700;
}

.privacy-policy_section_p_wrap {
  display: grid;
  row-gap: 24px;
}

.privacy-policy_section_wrap ul {
  list-style: disc;
  padding-left: 24px;
}


.company_body {
  font-family: var(--noto-font);
  color: #131313;
  background-color: #ECEDF0;
}

.company_body header {
  padding: 0;
}

.company_body .header_inner {
  padding: 25px 0 25px 28px;
  background-color: #06050B;
  color: #fff;
  border-radius: 0;
  box-shadow: none;
}

.company_body .logo_white {
  display: block;
}

.company_body .logo_black {
  display: none;
}

.company_body .has-dropdown::after {
  background: url(img/arrow_down_company.svg) no-repeat;
}

.company_body .sub_head::before {
  background-color: #06050B;
}

.company_body .dropdown-menu {
  left: auto;
  right: 0;
  transform: translateX(0);
  background-color: #06050B;
  min-width: 236px;
  border-radius: 0;
  box-shadow: 0 0 20px rgba(255, 255, 255, .5);
}

.company_body .dropdown-menu li a::after {
  background: url(img/arrow_right_white.svg) no-repeat;
}

.company_body .sub_head_txt_wrap {
  margin-top: 40px;
  margin-bottom: 36px;
}

.company_body .heading_h2 {text-align: center;}

.company_body .heading_h2 > span {
  padding-left: 0;
  font-family: var(--mont-font);
  font-weight: 600;
  font-size: 9.6rem;
}

.company_body .heading_h2 > span:before {
  display: none;
}

.company_body .heading_h2 h2 {
  font-size: 2.4rem;
  padding-top: 30px;
  letter-spacing: .1em;
  line-height: 1;
}

.company_body .news {
  margin: 120px 0;
}

.company_body .news .button_link {
  background: #06050B;
  border-radius: 10px;
  font-family: var(--mont-font);
}

.company_menu_section {
  position: relative;
  padding: 120px 0 160px;
}

.company_menu_section_inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 5%;
  row-gap: 80px;
  max-width: 1540px;
  margin: 0 auto;
  padding: 0 20px;
}

a.company_menu_section_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  padding: 0 116px 0 18%;
  background-color: #06050B;
  color: #fff;
  letter-spacing: .1em;
  font-size: 2rem;
  border-radius: 10px;
  transition: .3s;
  height: 132px;
}

.company_menu_section_btn:hover {
  opacity: .8;
}

.company_menu_section_btn .icon-wrap {
  position: absolute;
  right: 36px;
  width: 60px;
  height: 60px;
  background-color: #000;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(255, 255, 255, .5);
  display: flex;
  align-items: center;
  justify-content: center;
}

.company_menu_section_btn .icon-wrap::after {
  content: "";
  background: url(img/arrow_down_company.svg) no-repeat;
  background-size: contain;
  display: block;
  width: 16px;
  height: 8px;
}

.inline-block {
  display: inline-block;
}

.company_menu_section .txt_loop_wrap {
  top: 50%;
  transform: translateY(-50%);
}

.company_menu_section .txt_loop_wrap div,
.company-history .txt_loop_wrap div {
  font-family: var(--mont-font);
  font-size: 16rem;
  color: #fff;
  font-weight: 400;
  font-style: italic;
  padding-bottom: 20px;
}

.company_menu_section .txt_loop_wrap div:nth-child(odd),
.company-history .txt_loop_wrap div:nth-child(odd) {
	animation: loop 60s linear infinite;
}

.company_menu_section .txt_loop_wrap div:nth-child(even),
.company-history .txt_loop_wrap div:nth-child(even) {
  animation: loop2 60s linear infinite;
}

.company_tech-quality {
  position: relative;
  width: 100%;
  display: block;
}

.tech-quality_bg_wrap {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  z-index: -2;
}

.tech-quality_bg_video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tech-quality_bg_wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
}

.company_tech-quality_inner {
  display: flex;
  justify-content: space-between;
  max-width: 1740px;
  margin: -100dvh auto 0;
  padding: 0 20px;
  color: #fff;
  column-gap: 12%;
  position: relative;
  z-index: 1;
}

.company_tech-quality_left {
  width: 46%;
  height: fit-content;
  position: sticky;
  top: 50%;
  transform: translateY(-50%);
  margin-top: 50dvh;
  margin-bottom: 50dvh;
}

.company_tech-quality_right {
  width: 42%;
  padding: 100dvh 0;
}

.company_h3 span {
  font-family: var(--mont-font);
  font-weight: 600;
  font-size: 6.4rem;
  line-height: 1;
}

.company_h3 h3 {
  margin-top: 24px;
  line-height: 1;
  letter-spacing: .1em;
  font-weight: 700;
}

.company_tech-quality_big_txt {
  margin-top: 160px;
  font-size: 3.2rem;
  line-height: 1.75;
  letter-spacing: .05em;
}

.company_tech-quality_normal_txt {
  margin-top: 68px;
  line-height: 2.5;
  letter-spacing: .05em;
}

.company_our-tech {
  position: relative;
  background-color: #06050B;
  padding: 220px 0 360px;
  overflow: hidden;
}

.company_our-tech::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 100%;
  background: url(img/earth.jpg) no-repeat center bottom / cover;
  z-index: 0;
}

.company_our-tech::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 700px;
  background: linear-gradient(to bottom, rgba(6, 5, 11, 0) 0%, rgba(6, 5, 11, 1) 100%);
  z-index: 1;
}

.our-tech_inner {
  position: relative;
  z-index: 2;
  max-width: 1920px;
  margin: 0 auto;
  padding: 0 20px;
  color: #fff;
}

.company_our-tech .company_h3 {
  text-align: center;
  margin-bottom: 200px;
}

.our-tech_content {
  display: flex;
  justify-content: center;
  align-items: stretch;
}

.tech_box {
  flex: 1;
  padding: 70px 5% 26px;
  position: relative;
}

.tech_box:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: #fff;
}

.tech_box h4 {
  font-size: 9.6rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 88px;
  letter-spacing: .05em;
  line-height: 1;
}

.tech_box p {
  letter-spacing: .05em;
  line-height: 2.5;
  text-align: justify;
}

.company_equipment {
  position: relative;
  background-color: #06050B;
  padding: 140px 0 200px;
  color: #fff;
}

.company_equipment .company_h3 {
  padding: 0 20px;
  text-align: center;
}

.company_equipment_top_p {
  margin-top: 100px;
  padding: 0 20px;
  line-height: 2.5;
  letter-spacing: .05em;
  text-align: center;
  margin-bottom: 200px;
}

.equipment_content_wrap {
  display: flex;
  max-width: 1740px;
  margin: 0 auto;
  justify-content: space-between;
  padding-right: 20px;
  column-gap: 14%;
}

/* 画像をまとめる親グループ（固定を解除） */
.equipment_img_group {
  width: 45%;
  max-width: 670px;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 3枚の画像を縦に均等配置 */
}

/* 画像自体を個別に固定（追従）させて重ねる */
.company-equipment_img {
  position: sticky;
  top: 84px; /* 重なる位置（ヘッダーの高さなどに合わせて調整してください） */
  height: 70vh; /* ご希望の高さ */
  width: 100%;
  background-size: cover;
  background-position: center;
  border-radius: 10px;
}

.company-equipment_img.cei01 {
  background-image: url(img/equipment01.jpg);
}

.company-equipment_img.cei02 {
  background-image: url(img/equipment02.jpg);
}

.company-equipment_img.cei03 {
  background-image: url(img/equipment03.jpg);
}

.equipment_content_wrap .history_list_block:first-child {
  margin-top: 0;
}

.equipment_content_wrap .history_list dl {
  justify-content: space-between;
}

.equipment_content_wrap .history_list dt {
  width: auto;
}

.company-history {
  position: relative;
  width: 100%;
  display: block;
}

.company-history .txt_loop_wrap {
  position: static;
}

.history_bg_wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
}

.history_bg_sticky {
  position: sticky;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.history_bg_img {
  width: 100%;
  height: auto;
}

.history_bg_img.pc {
  display: block;
}

.history_bg_img.sp {
  display: none;
}

.company-history_inner {
  position: relative;
  z-index: 1;
  max-width: 1740px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  padding: 20px 20px 100dvh;
  column-gap: 14%;
}

.company-history_inner .company_h3 {
  height: fit-content;
  position: sticky;
  top: 200px;
}

.company-history_right {
  width: 55%;
  max-width: 770px;
}

.history_list_block {
  margin-top: 160px;
}

.history_list_block h4 {
  font-size: 2.4rem;
  border-bottom: 1px solid #B6B6B6;
  padding-bottom: 40px;
  margin-bottom: 40px;
  line-height: 1;
  font-weight: 700;
}

.history_list dl {
  display: flex;
  border-bottom: 1px solid #B6B6B6;
  padding: 20px 0;
  margin: 0 20px;
  line-height: 1.75;
}

.history_list dt {
  width: 200px;
}

.company_sustainability {
  position: relative;
  background-color: #fff;
  padding: 30px 0;
  overflow: hidden;
}

.css_marquee_wrap {
  display: flex;
  overflow: hidden;
  width: 100%;
}

.css_marquee_list {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  animation: loop 40s linear infinite; /* 既存の@keyframes loopを使用 */
}

.css_marquee_wrap.reverse .css_marquee_list {
  animation: loop-reverse 40s linear infinite;
}

.marquee_item.img {
  width: 220px;
  border-radius: 10px;
  overflow: hidden;
}

.marquee_item.txt {
  font-family: var(--mont-font);
  font-size: 18rem;
  font-weight: 400;
  font-style: italic;
  color: #ECEDF0;
  line-height: 1;
  margin: 0 60px 0 15px;
}

.sustainability_inner {
  position: relative;
  max-width: 1860px;
  margin: 160px auto;
  padding: 0 20px;
}

.sus_deco {
  position: absolute;
  border-radius: 10px;
  z-index: 0;
  pointer-events: none;
  height: auto;
}

.sus_deco.deco01 {
  width: 220px;
  top: 88px;
  left: 20px;
}

.sus_deco.deco02 {
  width: 300px;
  top: 528px;
  right: -15px;
}

.sus_deco.deco03 {
  width: 220px;
  bottom: 320px;
  left: 112px;
}

.sustainability_inner .company_h3 {
  text-align: center;
  position: relative;
  z-index: 1;
}

.sustainability_content {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.sus_title {
  font-size: 3.2rem;
  font-weight: 700;
  text-align: center;
  margin-top: 128px;
  margin-bottom: 52px;
  letter-spacing: .05em;
  line-height: 1.75;
}

.sus_date {
  text-align: center;
  line-height: 1.75;
  margin-bottom: 80px;
  letter-spacing: .05em;
}

.sus_lead {
  line-height: 2.5;
  margin-bottom: 80px;
  letter-spacing: .05em;
}

.sus_list {
  display: flex;
  flex-direction: column;
  row-gap: 60px;
  margin-bottom: 80px;
}

.sus_item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sus_num {
  background-color: #06050B;
  color: #fff;
  font-family: var(--mont-font);
  font-size: 2rem;
  font-weight: 600;
  padding: 4px 44px;
  border-radius: 24px;
  margin-bottom: 24px;
  line-height: 1;
}

.sus_item p {
  line-height: 1.75;
  text-align: justify;
  width: 100%;
}

.sus_sublist {
  margin-top: 24px;
  align-self: center; /* リスト全体を中央寄せ */
  line-height: 1.75;
}

.sus_footer_txt {
  text-align: center;
  line-height: 2.5;
  letter-spacing: .05em;
}

.company_locations {
  position: relative;
  width: 100%;
}

.loc_bg_wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  z-index: 0;
}

.loc_bg {
  width: 50%;
  height: 100%;
  position: relative;
}

.loc_bg.left {
  background: url(img/locations_tokyo.webp) no-repeat center / cover;
}
.loc_bg.right {
  background: url(img/locations_yamagata.webp) no-repeat center / cover;
}

.loc_bg::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}

.locations_inner {
  position: relative;
  z-index: 1;
  padding: 200px 20px 240px;
  color: #fff;
}

.company_locations .company_h3 {
  text-align: center;
  margin-bottom: 128px;
}

.loc_columns {
  display: flex;
  max-width: 1920px;
  margin: 0 auto;
}

.loc_col {
  width: 50%;
  padding: 0 8%;
  display: flex;
  flex-direction: column;
}

.loc_col h4 {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 40px;
  letter-spacing: .1em;
  line-height: 1;
}

.loc_info {
  border-top: 1px solid #fff;
  padding: 60px 20px 0;
  margin-bottom: 60px;
}

.loc_info p {
  line-height: 1.75;
  letter-spacing: .05em;
}

.loc_map {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  margin-top: auto;
}

.loc_map iframe {
  width: 100%;
  height: 100%;
  display: block;
}

.company_body footer {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.company_body .footer_deco {
  display: none;
}

.company_body .footer_inner {
  background-color: #1A1C22;
  color: #fff;
  border-radius: 0;
}

.sp_br {
  display: none;
}

/* スピナーを絶対配置にして、ボタンの位置を狂わせない */
.submit-btn-wrap {
  position: relative; /* 親要素を基準にする */
  display: inline-block; /* ボタンの幅に合わせる */
  width: 100%;
}

.wpcf7-spinner {
  display: none !important; /* ★くるくるを完全に非表示にする */
}


/* =========================================
   お知らせ一覧・詳細ページ (home.php / single.php)
========================================= */
/* 一覧ページのレイアウト調整 */
.sub_news_list {
  margin-top: 120px;
  margin-bottom: 240px;
}

.sub_news_list .news_inner {
  display: block; /* トップページのflexを解除 */
  max-width: 800px; /* 中央寄せにする */
  margin: 0 auto;
}

/* ページネーション（一覧のページ送り） */
.pagination {
  margin-top: 80px;
  text-align: center;
  display: flex;
  gap: 10px;
  justify-content: center;
}

.pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #fff;
  color: #342A18;
  font-family: var(--jost-font);
  font-weight: 700;
  transition: 0.3s;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
  background-color: #EA706D;
  color: #fff;
}

.pagination .next, .pagination .prev {
  width: auto;
  padding: 0 24px;
  border-radius: 24px;
  font-family: var(--zenkaku-font);
}

/* 詳細ページ */
.single_news_wrapper {
  padding: 120px 20px 240px;
}

.single_news_inner {
  max-width: 900px;
  margin: 0 auto;
  background-color: #fff;
  padding: 80px 50px;
  border-radius: 20px;
}

.single_news_head {
  border-bottom: 1px solid #BCBCBC;
  padding-bottom: 30px;
  margin-bottom: 40px;
}

.single_time {
  font-size: 1.6rem;
  letter-spacing: 0.05em;
  color: #EA706D; /* アイ・イー・シー様のメインカラー */
  font-weight: 700;
}

.single_title {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-top: 16px;
}

/* 記事本文（管理画面の入力内容） */
.single_news_content {
  line-height: 2.2;
  letter-spacing: 0.05em;
}

.single_news_content img {
  border-radius: 10px;
  margin: 20px 0;
  width: 100%;
  height: auto;
}

.single_news_content h2,
.single_news_content h3 {
  font-weight: 700;
  margin-top: 60px;
  margin-bottom: 20px;
  padding-bottom: 10px;
}

.single_news_content h2 {
  border-bottom: 2px solid #342A18;
  font-size: 2.4rem;
}

.single_news_content p {
  margin-bottom: 24px;
}

/* 戻るボタン */
.single_news_footer {
  margin-top: 80px;
  display: flex;
  justify-content: center;
}

a.return_btn {
  background-color: #EA706D;
  color: #fff;
  text-align: center;
  padding: 20px 0;
}

.company_body .pagination .page-numbers.current,
.company_body .pagination .page-numbers:hover {
  background-color: #1A1C22;
  color: #fff;
}

.company_body .single_news_inner {
  background-color: #1A1C22;
  color: #fff;
}

.company_body .single_news_head {
  border-color: #444;
}

.company_body .single_time {
  color: #BCBCBC;
}

.company_body .single_news_content h2 {
  border-bottom-color: #fff;
}

.company_body a.return_btn {
  background-color: #fff;
  color: #342A18;
}


/*リキャプチャ設定*/
.grecaptcha-badge { visibility: hidden; }


@media screen and (max-width: 1580px){

  .sub_box_section .strengths_box {
    margin: 0 20px;
  }

}


@media screen and (max-width: 1439px){

  .footer_flex {
    flex-direction: column;
    row-gap: 100px;
    align-items: center;
  }

  .footer_right {
    max-width: 100%;
  }

  .gnav_pc {
    display: none;
  }

  .toggle {
    position: fixed;
    z-index: 50;
    width: 40px;
    height: 14px;
    top: 52px;
    right: 56px;
  }

  .toggle span {
    display: inline-block;
    width: 100%;
    height: 3px;
    background: #EA706D;
    position: absolute;
    right: 0;
    transition: .3s;
  }

  .toggle span:first-child {
    top: 0;
  }

  .toggle span:nth-child(2) {
    top: 7px;
  }

  .toggle span:nth-child(3) {
    top: 14px;
  }

  .gnav_sp.open {
    opacity: 1;
    visibility: visible;
  }
  
  .toggle.open span:first-child {
    top: 7px;
    transform: rotate(30deg);
  }

  .toggle.open span:nth-child(2) {
    opacity: 0;
  }
  
  .toggle.open span:nth-child(3) {
    top: 7px;
    transform: rotate(-30deg);
  }

  .gnav_sp {
    width: 100%;
    height: 100%;
    min-height: 500px;
    display: block;
    position: fixed;
    top: 0;
    background: rgba(252, 248, 243, .95);
    z-index: 40;
    transition: .5s;
    overflow-y: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
    opacity: 0;
    visibility: hidden;
    overflow-y: scroll;
    padding: 100px 0 20px;
  }

  .gnav_sp li {
    padding: 16px 20px;
    border-bottom: 1px solid #EA706D;
  }

  .has-dropdown::after {
    right: 20px;
    top: 26px;
    transform: translateY(0);
    transition: transform 0.3s ease;
  }

  .has-dropdown.is-active::after {
    transform: translateY(-50%) rotate(180deg);
  }

  .gnav_sp .dropdown-menu {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible; 
    box-shadow: none;
    background-color: transparent;
    min-width: auto;
    padding: 0;
    display: none;
    margin: 10px 0;
  }

  .gnav_sp .dropdown-menu li {
    border-bottom: none;
    padding: 0;
    border-bottom: 1px solid #BCBCBC;
  }
  
  .gnav_sp .dropdown-menu li a {
    padding: 10px 0;
    font-size: 1.4rem;
    color: #666;
  }
  
  .gnav_sp .dropdown-menu li a::after {
    top: 50%;
    transform: translateY(-50%);
  }

  .mv {
    min-height: auto;
    padding: 120px 20px 60px;
  }

  .mv_inner {
    flex-direction: column;
    row-gap: 40px;
    height: auto;
  }

  .strengths_inner {
    grid-template-columns: 1fr;
    row-gap: 70px;
  }

  .strengths .heading_h2 {
    place-content: flex-start;
    padding: 0 30px;
  }

  .strengths_slider {
    padding-left: 30px;
  }

  .top_culture_txt-part, .top_workplace_txt-part {
    flex-direction: column;
    row-gap: 50px;
    align-items: flex-start;
  }

  .top_what-we-do_inner {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 50px;
  }

  .top_what-we-do_slider {
    width: 100%;
  }


  .sub_box_section .strengths_box {
    flex-direction: column;
    row-gap: 50px;
  }


  .sub_workplace_slider_wrap .slide-txt {
    font-size: 1.6rem;
    margin-bottom: 24px;
  }


  .entry {
    flex-direction: column;
    row-gap: 70px;
    align-items: center;
  }

  .entry_left {
    position: static;
  }

  .entry .job-info_h3 {
    margin: 0 auto 80px;
  }


  .company_body .toggle {
    top: 34px;
    right: 28px;
  }

  .company_body .toggle span {
    background: #fff;
  }

  .company_body .gnav_sp {
    background: rgba(00, 00, 00, .95);
    color: #fff;
  }

  .company_body .gnav_sp li {
    border-bottom: 1px solid #fff;
  }

  .company_body .gnav_sp .dropdown-menu li a {
    color: #fff;
    font-size: 1.2rem;
  }

  .sus_deco {
    opacity: .2;
  }

}

@media screen and (max-width: 1279px){

  .company_body {
    font-size: 1.4rem;
  }

  .company_body .sub_head_txt_wrap {
    margin-top: 20px;
    margin-bottom: 18px;
  }

  .company_body .heading_h2 > span {
    font-size: 5.2rem;
  }

  .company_body .heading_h2 h2 {
    font-size: 1.8rem;
  }

  .company_body .news {
    margin: 60px 0;
  }

  .company_menu_section_inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    row-gap: 40px;
  }

  .company_menu_section {
    padding: 60px 0 80px;
  }

  a.company_menu_section_btn {
    font-size: 1.6rem;
    height: 80px;
  }

  .company_menu_section_btn .icon-wrap {
    width: 40px;
    height: 40px;
  }

  .company_tech-quality_left {
    width: 40%;
  }

  .company_tech-quality_right {
    width: 48%;
  }

  .company_h3 span {
    font-size: 4rem;
  }

  .company_tech-quality_big_txt {
    font-size: 2.4rem;
  }

  .tech_box {
    padding: 70px 32px 26px;
  }

  .tech_box h4 {
    font-size: 7.6rem;
  }

  .history_list_block h4 {
    font-size: 2rem;
  }

  .marquee_item.img {
    width: 110px;
    border-radius: 5px;
  }

  .marquee_item.txt {
    font-size: 9rem;
    margin: 0 30px 0 8px;
  }

  .loc_col {
    padding: 0 52px;
  }

  .loc_col h4 {
    font-size: 2rem;
  }

}


@media screen and (max-width: 767px){

  body {
    font-size: 1.4rem;
  }

  header {
    padding: 10px 15px 0;
  }

  .header_inner {
    padding: 20px 15px;
    border-radius: 10px;
  }

  .logo {
    max-width: 150px;
  }

  .toggle {
    top: 34px;
    right: 30px;
  }

  .gnav_sp .dropdown-menu li a {
    font-size: 1.2rem;
  }

  .mv::before {
    height: 16px;
  }

  .mv_txt_box {
    border-radius: 25px;
    padding: 0 20px;
  }

  .mv_txt_box_inner {
    max-width: 296px;
    margin: 80px auto;
  }

  .mv_txt_box::before, .mv_txt_box::after {
    width: 70px;
    height: 70px;
  }

  .mv_txt_box_title_en {
    font-size: 1.6rem;
  }

  .mv_txt_box_title_jp {
    margin-top: 20px;
    font-size: 4rem;
    line-height: 1.4;
    letter-spacing: .05em;
  }

  .mv_txt_box_p {
    margin-top: 28px;
    font-size: 1.8rem;
    letter-spacing: .05em;
  }

  .bg-color {
    padding-top: 85px;
  }

  .news {
    margin-bottom: 120px;
  }

  .news_inner {
    flex-direction: column;
    row-gap: 20px;
  }

  .news .button_link {
    margin-top: 20px;
  }

  .post_wrap {
    flex-direction: column;
    align-items: flex-start;
  }

  a.news_li_link {
    padding: 24px 40px 24px 0;
  }

  .video_area {
    aspect-ratio: 375 / 278;
  }

  .strengths {
    margin: 120px 0 90px;
  }

  .heading_h2 > span {
    padding-left: 20px;
    font-size: 1.6rem;
  }

  .heading_h2 > span:before {
    width: 12px;
    height: 12px;
  }

  .heading_h2 h2 {
    font-size: 2.8rem;
    padding-top: 7px;
  }

  .strengths .heading_h2 {
    padding: 0 20px;
  }

  .strengths .heading_h2 h2 span {
    font-size: 1.6rem;
  }

  .strengths_slider {
    padding-left: 20px;
  }

  .strengths_box {
    border-radius: 20px;
    padding: 22px 15px;
  }

  .strengths_box::before {
    width: 95px;
    height: 95px;
  }

  .strengths_box::after {
    top: 10px;
    left: 10px;
    font-size: 3rem;
  }

  .strengths_box_img {
    max-width: 168px;
  }

  .strengths_box h3 {
    font-size: 2rem;
  }

  .strengths_box p {
    margin-top: 25px;
    margin-bottom: 15px;
  }

  .box-arrow {
    width: 40px;
  }

  .slider1 .controlls1_wrap {
    margin-top: 25px;
  }

  .slider1 .controlls1_wrap .swiper-pagination {
    gap: 15px;
  }

  .slider1 .swiper-pagination-bullet {
    width: 48px;
  }

  .txt_loop_wrap div {
    font-size: 10rem;
  }

  .txt_loop_wrap div:nth-child(odd) {
    animation: loop 60s linear infinite;
  }

  .txt_loop_wrap div:nth-child(even) {
    animation: loop2 60s linear infinite;
  }

  .top_color-box_wrap {
    row-gap: 90px;
  }

  .top_color-box_top {
    font-size: 6.4rem;
  }

  .top_color-box {
    margin-top: -10px;
    border-radius: 20px;
  }

  .culture .top_color-box {
    padding: 60px 0;
  }

  .top_culture_txt-part, .top_workplace_txt-part {
    row-gap: 25px;
    padding: 0 20px;
  }

  .top_color-box_p_wrap {
    margin-top: 40px;
    row-gap: 14px;
  }

  a.button_link {
    padding: 15px 30px;
    width: 180px;
  }

  .icon_arrow {
    right: 20px;
  }

  .top_culture_slider {
    margin-top: 48px;
  }

  .top_culture_slider .swiper-slide {
    border-radius: 10px;
    padding: 15px 15px 30px;
  }

  .culture_slide_img {
    border-radius: 8px;
  }

  .culture_slide_p {
    margin-top: 26px;
    font-size: 1.6rem;
  }

  .what-we-do .top_color-box {
    padding: 60px 20px;
  }

  .what-we-do a.button_link {
    margin-top: 30px;
  }

  .top_what-we-do_slider {
    border-radius: 15px;
  }

  .top_what-we-do_slider .swiper-slide {
    border-radius: 15px;
  }

  .workplace .top_color-box {
    padding: 60px 0 0;
  }

  .workplace .top_color-box_txt-wrap {
    flex-direction: column;
    row-gap: 40px;
  }

  .slider4 .swiper-slide {
    transform: translateY(50px);
    padding-top: 100px;
  }

  .slider4 .slide-txt {
    font-size: 1.6rem;
    margin-bottom: 24px;
  }

  .slider4 .slide-img img {
    border-radius: 15px;
  }

  .slider4 .swiper-slide-active {
    transform: translateY(-40px);
  }

  .job-info {
    margin-top: 100px;
  }

  .job-info h3 {
    margin-top: 75px;
    font-size: 1.8rem;
  }

  .job-info p {
    margin-top: 40px;
    text-align: left;
  }

  .job-info .button_link {
    margin-top: 45px;
  }
  
  footer {
    margin: 150px auto 0;
  }

  .footer_deco.left {
    top: -71px;
    left: 5px;
    width: 40px;
    height: 40px;
  }

  .footer_deco.right {
    top: -60px;
    right: 5px;
    width: 84px;
    height: 84px;
  }

  .footer_inner {
    border-radius: 40px 40px 0 0;
    padding: 60px 20px 40px;
  }

  .footer_flex {
    flex-direction: column;
    row-gap: 60px;
    align-items: flex-start;
  }

  .footer_logo {
    max-width: 200px;
  }

  .footer_com-info {
    margin-top: 40px;
    font-size: 1.4rem;
    row-gap: 20px;
  }

  .footer_nav {
    flex-direction: column;
    row-gap: 44px;
  }

  .footer_nav ul {
    font-size: 1.6rem;
  }

  .footer_nav_pp {
    font-size: 1.2rem;
  }

  .copy-right {
    margin-top: 60px;
    font-size: 1.2rem;
  }


  .sub_head {
    padding-top: 100px;
    padding-bottom: 70px;
  }

  .sub_head::before {
    width: 200vw;
  }

  .sub_head .txt_loop_wrap div {
    font-size: 6.4rem;
  }

  .sub_head_txt_wrap {
    margin-top: 36px;
  }

  .sub_head_txt_p_wrap {
    margin-top: 24px;
  }

  .sub_box_section {
    padding: 120px 0 20px;
  }

  .sub_box_section .txt_loop_wrap {
    top: 50px;
  }

  .sub_box_section .strengths_box {
    padding: 30px 20px;
    row-gap: 25px;
  }

  .sub_box_img {
    border-radius: 20px;
  }

  .sub_box_p_wrap {
    margin-top: 20px;
    row-gap: 14px;
  }

  .sub_box_p_wrap p {
    margin-top: 25px;
    margin-bottom: 15px;
  }


  .top_what-we-do_slider.sub_what-we-do_slider {
    margin-top: 48px;
  }

  .sub_what-we-do_slider .swiper-slide:nth-child(even) {
    margin-top: 30px;
  }

  .sub_workplace_slider_wrap {
    padding: 68px 0 58px;
  }

  .sub_workplace_slider_wrap .slide-txt {
    font-size: 1.4rem;
  }

  .sub_workplace_slider_wrap .slide-img {
    border-radius: 10px;
  }


  .img_marquee_item {
    width: 180px;
    margin: 0 17px;
    border-radius: 10px;
  }

  .sub_job-info_head .job-info_inner {
    padding: 45px 20px 48px;
  }

  .sub_job-info_head_p {
    margin-top: 24px;
  }

  .job-info_h3 {
    width: 100%;
    max-width: 290px;
    min-width: auto;
    font-size: 2.4rem;
    padding: 10px 24px;
    border-radius: 10px;
  }

  .job-description .job-info_h3 {
    margin: 0 auto 40px;
  }

  .job-description_content dl {
    grid-template-columns: 1fr;
    padding: 32px 0;
    row-gap: 20px;
  }

  .entry {
    row-gap: 50px;
  }

  .entry .job-info_h3 {
    margin: 0 auto 40px;
  }

  .entry_p_wrap {
    row-gap: 14px;
  }

  .form-group {
    margin-bottom: 20px;
  }

  .form-label {
    font-size: 1.6rem;
    gap: 6px;
  }

  .badge {
    font-size: 1.2rem;
  }

  .name-group {
    gap: 10px;
  }

  .form-input input[type="text"], .form-input input[type="email"], .form-input input[type="tel"], .form-input select, .form-input textarea {
    padding: 10px;
  }

  .form-footer {
    margin-top: 22px;
  }

  .privacy-text {
    margin-bottom: 18px;
  }

  .privacy-check {
    margin-bottom: 20px;
  }

  .submit-btn {
    font-size: 1.6rem;
  }


  .sub_privacy-policy_head {
    padding: 55px 0 12px;
  }

  .privacy-policy_section_wrap {
    margin-top: 30px;
    row-gap: 24px;
  }

  .privacy-policy_section_wrap h3 {
    font-size: 2rem;
    padding-bottom: 4px;
    margin-bottom: 12px;
  }

  .privacy-policy_section_p_wrap {
    display: grid;
    row-gap: 12px;
  }


  .company_body .header_inner {
    padding: 20px 15px;
  }

  .company_body .toggle {
    top: 24px;
    right: 15px;
  }
  
  .company_body .heading_h2 > span {
    font-size: 4.4rem;
  }

  .company_body .heading_h2 h2 {
    font-size: 1.6rem;
  }

  .company_menu_section_inner {
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  a.company_menu_section_btn {
    font-size: 1.4rem;
    padding: 20px 68px 20px 30px;
    height: auto;
    border-radius: 5px;
    width: 80%;
    margin: 0 auto;
  }

  .company_menu_section_btn .icon-wrap {
    border-radius: 5px;
    right: 18px;
    width: 36px;
    height: 36px;
  }

  .company_menu_section .txt_loop_wrap div, .company-history .txt_loop_wrap div {
    font-size: 8rem;
  }

  .company_tech-quality_inner {
    flex-direction: column;
  }

  .company_tech-quality_left {
    position: static;
    width: 100%;
  }

  .company_tech-quality_right {
    width: 100%;
  }

  .company_tech-quality_right {
    padding: 0 0 80px;
  }

  .company_tech-quality_big_txt {
    margin-top: 80px;
    font-size: 2rem;
  }

  .company_tech-quality_normal_txt {
    margin-top: 34px;
  }

  .company_our-tech {
    padding: 110px 0 122px;
  }

  .company_our-tech .company_h3 {
    margin-bottom: 42px;
  }

  .our-tech_content {
    flex-direction: column;
  }

  .company_our-tech::before {
    max-width: 860px;
  }

  .tech_box {
    padding: 58px 0;
  }

  .tech_box h4 {
    font-size: 5.6rem;
    margin-bottom: 44px;
  }

  .tech_box:not(:last-child)::after {
    top: auto;
    bottom: 0;
    right: auto;
    left: 0;
    width: 100%;
    height: 1px;
  }

  .company_equipment {
    padding: 70px 0 100px;
  }

  .company_equipment_top_p {
    margin-top: 50px;
    text-align: left;
    margin-bottom: 100px;
  }

  .equipment_content_wrap {
    flex-direction: column;
    padding: 0 20px;
    row-gap: 80px;
  }

  /* 追加（スマホでは固定を解除する） */
  .equipment_img_group {
    position: static;
    width: 100%;
    height: auto;
    gap: 20px; /* スマホ用に隙間を復活 */
  }

  .company-equipment_img {
    position: static; /* 追従（重なり）を解除 */
    height: 25vh; /* 縦に3つ並ぶので1つの高さを低くする */
    width: 100%;
    border-radius: 5px;
  }

  .company-history_right {
    width: 100%;
  }

  .history_list_block {
    margin-top: 80px;
  }

  .history_list_block h4 {
    font-size: 1.8rem;
    padding-bottom: 20px;
    margin-bottom: 20px;
  }

  .equipment_content_wrap:not(:first-child) {
    margin-top: 80px;
  }

  .equipment_content_wrap .history_list dl {
    flex-direction: row;
  }

  .equipment_content_wrap .history_list dt {
    margin-bottom: 0;
  }

  .company-history_inner {
    flex-direction: column;
  }

  .company-history_inner .company_h3 {
    position: static;
  }

  .history_bg_img.sp {
    display: block;
  }

  .history_bg_img.pc {
    display: none;
  }

  .history_list dl {
    flex-direction: column;
  }

  .history_list dt {
    width: auto;
    margin-bottom: 10px;
  }

  .company_sustainability {
    padding: 15px 0;
  }

  .marquee_item.img {
    width: 55px;
    border-radius: 2.5px;
  }

  .marquee_item.txt {
    font-size: 4.5rem;
    margin: 0 15px 0 4px;
  }

  .sustainability_inner {
    margin: 80px auto;
  }

  .sus_deco.deco01 {
    width: 110px;
  }

  .sus_deco.deco02 {
    width: 150px;
    right: 0;
  }

  .sus_deco.deco03 {
    width: 110px;
    left: 0;
  }

  .sus_title {
    font-size: 2.4rem;
    margin-top: 64px;
    margin-bottom: 26px;
  }

  .sus_date {
    margin-bottom: 40px;
  }

  .sp_br {
    display: block;
  }

  .sus_lead {
    margin-bottom: 40px;
  }

  .sus_list {
    row-gap: 30px;
    margin-bottom: 40px;
  }

  .sus_num {
    font-size: 1.6rem;
    padding: 4px 32px;
    border-radius: 12px;
    margin-bottom: 12px;
  }

  .sus_sublist {
    margin-top: 12px;
  }

  .loc_bg_wrap {
    flex-direction: column;
  }

  .loc_bg {
    width: 100%;
  }

  .locations_inner {
    padding: 100px 20px 120px;
  }

  .company_locations .company_h3 {
    margin-bottom: 64px;
  }

  .loc_columns {
    flex-direction: column;
    row-gap: 80px;
  }

  .loc_col {
    width: 100%;
    padding: 0;
  }

  .loc_col h4 {
    font-size: 1.8rem;
    margin-bottom: 20px;
  }

  .loc_info {
    padding: 30px 20px 0;
    margin-bottom: 30px;
  }


  .sub_news_list {
    margin-top: 80px;
    margin-bottom: 160px;
  }
  .single_news_wrapper {
    padding: 80px 20px 160px;
  }
  .single_news_inner {
    padding: 40px 20px;
    border-radius: 20px;
  }
  .single_title {
    font-size: 2.4rem;
  }

}