html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #333333;
}

img {
  vertical-align: top;
  max-width: 100%;
  height: auto;
}

.breadcrumb{
  font-size: 13px;
}

.pc{
  display: block;
}
.sp{
  display: none;
}

.floata {
  margin-top: 10px;
}

.header {
  width: 100%;
  height: 70px;
  padding-left: 30px;
  position: fixed; /* ← 固定表示 */
  top: 0;
  left: 0;
  z-index: 1000; /* コンテンツより前に出す */
  background-color: #fff; /* 背景をつけて下の要素が透けないように */
}

.header-inner {
  max-width: 1440px;
  height: 70px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}

.header-nav {}

.header-nav__list {
  display: flex;
  gap: 35px;
  list-style: none;
}

.header-nav__item {
  display: flex;
  align-items: center;
}

.header-nav__item a {
  text-decoration: none;
  color: #333;
  font-weight: 500;
}

.header-nav__item a:hover {
  opacity: 0.8;
}

.header-nav__item--contact a {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 163px;
  height: 70px;
  background: #C60302;
  color: #ffffff;
  padding-left: 20px;
  padding-right: 20px;
}

.header-nav__item--contact a:hover {
  opacity: 0.8;
}



.footer {
  background: #333333;
  color: #ffffff;
  padding-top: 50px;
  padding-bottom: 30px;
}

.footer-inner {
  max-width: 1000px;
  margin: 0 auto;
  margin-bottom: 60px;
  display: flex;
  gap: 136px;
  align-items: flex-start;
}

.footer-logo {
  margin-bottom: 25px;
}

.footer-name {
  font-weight: 700;
  margin-bottom: 20px;
}

.footer-address {
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
}

.footer-nav {
  display: flex;
  gap: 122px;
}

.footer-nav-list {
  display: block;
  list-style: none;
  font-weight: 700;
}

.footer-nav-item {
  margin-bottom: 20px;
}

.footer-nav-item-last {
  margin-bottom: 0px;
}

.footer-nav-list a {
  color: #fff;
  text-decoration: none;
}

.footer-sns-list {
  display: flex;
  gap: 22px;
  justify-content: center;
}

.footer-sns-item {
  display: block;
  width: 40px;
  height: 40px;
}

.footer-sns-text {
  color: #ffffff;
  font-weight: 700;
  margin-bottom: 24px;
}

.footer-sns img {
  width: 40px;
  height: 40px;
}

.footer-bottom {
  text-align: center;
  font-size: 14px;
  font-family: Montserrat;
  line-height: 160%;
}

.l-container {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.l-section {
  padding-left: 20px;
  padding-right: 20px;
}

.c-title__label {
  font-family: Montserrat;
  color: #393232;
  font-size: 70px;
  font-weight: 700;
}

.c-title__main {
  color: #333333;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1.2px;
  margin-bottom: 22px;
}

.c-title__hr {
  position: relative;
  display: block;
  width: 100%;
  max-width: 70px;
  height: 3px;
  background-color: #C60302;
}

.c-title__hr::before {
  position: absolute;
  right: 0px;
  content: "";
  display: block;
  width: 100%;
  max-width: 16px;
  height: 3px;
  background-color: #0766BB;
}

.c-btn {
  width: 100%;
  max-width: 320px;
  height: 60px;
  overflow: hidden;
  padding-top: 19px;
  padding-bottom: 19px;
  color: #fff;
  border-radius: 0;
  background: #C60302;
  color: #FFF;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.72px;
  position: relative;
  display: inline-block;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
}
.c-btn-decoration-left{
  position: absolute;
  top: 0px;
  left: 0px;
}

.c-btn span {
  position: relative;
}

.c-btn svg {
  position: absolute;
  right: 20px;
  top: 26px;
}

.c-btn:before {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 98px;
  width: 150%;
  height: 500%;
  content: '';
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
  -webkit-transform: translateX(-98%) translateY(-70%) rotate(135deg);
  transform: translateX(-98%) translateY(-70%) rotate(135deg);
  background: #940100;
}

.c-btn:hover:before {
  left: -70px;
  -webkit-transform: translateX(-9%) translateY(-25%) rotate(135deg);
  transform: translateX(-9%) translateY(-25%) rotate(135deg);
}

.c-contact {
  background-image: url(../images/c-contact.svg);
  background-size: cover;
  background-repeat: no-repeat;
  padding-top: 60px;
  padding-bottom: 60px;
}

.c-contact .c-title {
  text-align: center;
  margin-bottom: 25px;
}

.c-contact .c-title__label {
  color: #ffffff;
}

.c-contact .c-title__main {
  color: #ffffff;
}

.c-contact .c-title__hr {
  margin: 0 auto;
  background-color: #ffffff;
}

.c-contact__text {
  color: #ffffff;
  font-size: 24px;
  font-weight: 500;
  line-height: 180%;
  margin-bottom: 25px;
  text-align: center;
}

.c-contact__body {
  display: flex;
  gap: 109px;
  align-items: center;
}

.c-contact__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 480px;
  height: 100px;
  background-color: #ffffff;
  color: #C60302;
  text-align: center;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 1.2px;
  position: relative;
}

.c-contact__btn:hover {
  background-color: initial;
  border: solid 3px #ffffff;
  color: #ffffff;
}

.c-contact__btn-icon {
  color: #C60302;
  margin-right: 20px;
}

.c-contact__btn:hover .c-contact__btn-icon {
  color: #ffffff;
}

.c-contact__btn-arrow {
  position: absolute;
  right: 33px;
}

.c-contact__tell {}

.c-contact__tell-number {
  color: #ffffff;
  font-family: Montserrat;
  font-size: 42px;
  font-weight: 600;
  letter-spacing: 1.68px;
  display: flex;
  gap: 4px;
  align-items: center;
  margin-bottom: 2px;
}

.c-contact__tell-text {
  color: #ffffff;
  font-weight: 500;
  text-align: center;
}


.top-mv {
  position: relative;
  width: 100%;
  height: calc(100svh - 70px);
  /* ← ヘッダー分を引く！ */
  background-image: url(../images/top-mv.jpg);
  /* 背景画像パス */
  background-size: cover;
  /* 画像を縦横比を保って拡大縮小 */
  background-position: center;
  /* 中央に配置 */
  background-repeat: no-repeat;
  margin-top: 70px;
}
.top-mv__decoration_left{
  position: absolute;
  top: 0px;
  left: 0px;
  height: calc(100svh - 70px);

}
.top-mv__decoration_left--sp{
  display: none;
}
.top-mv__decoration_right{
  position: absolute;
  bottom: 0px;
  right: 0px;
}

.top-mv__inner {
  position: absolute;
  z-index: 1;
  bottom: 90px;
  left: 60px;
}

.top-mv__catch {
  color: #ffffff;
  font-family: Montserrat;
  font-size: 82px;
  font-weight: 400;
  line-height: 120%;
  margin-bottom: 20px;
  padding-right: 20px;
}
.top-mv__catch span{
  font-weight: 700;
}

.top-mv__sub-catch {
  color: #ffffff;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 1.8px;
}



.top-news {
  position: relative;
  overflow: hidden;
  padding-top: 80px;
  padding-bottom: 100px;
}

.top-news__gradation {
  position: absolute;
  z-index: -1;
  top: 0px;
  left: 0px;
}

a.top-news__link:hover {
  opacity: 0.7;
}

.top-news__main {
  display: flex;
  gap: 72px;
}

.top-news__list {
  width: 100%;
  max-width: 700px;
  border-top: solid 1px #BCBCBC;
  margin-top: 28px;
}

.top-news__item {
  border-bottom: solid 1px #BCBCBC;
}

.top-news__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 38px;
  padding-top: 25px;
  padding-bottom: 25px;
}

.top-news__link::after {
  position: absolute;
  right: 19px;
  content: "";
  background-image: url("../images/arrow.svg");
  display: block;
  width: 22px;
  height: 6px;
}

.top-news__nolink::after {
  display: none !important;
}

.top-news__day {
  color: #BCBCBC;
  font-family: Montserrat;
  font-weight: 600;
  line-height: 180%;
}

.top-news__text {
  font-weight: 400;
  line-height: 28.8px;
}


.top-works {
  overflow: hidden;
  padding-top: 90px;
  padding-bottom: 100px;
  background-image: url(../images/top-works.png);
  background-position: top center;
  background-repeat: no-repeat;
}

.top-works .c-title {
  text-align: center;
  margin-bottom: 40px;
}

.top-works .c-title__label {
  color: #ffffff;
}

.top-works .c-title__main {
  color: #ffffff;
}

.top-works .c-title__hr {
  margin: 0 auto;
}

.top-works__catch {
  color: #ffffff;
  font-size: 32px;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 1.92px;
  margin-bottom: 20px;
  text-align: center;
}

.top-works__text {
  color: #ffffff;
  line-height: 180%;
  text-align: center;
  margin-bottom: 50px;
}

.top-works__list {
  display: flex;
  justify-content: center;
}

.top-works__item {
  width: 100%;
  max-width: 720px;
  aspect-ratio: 3 / 2;
  /* ← 縦横比を指定 */
  position: relative;
  overflow: hidden;
  /* 拡大時に画像がはみ出さないようにする */
  color: #ffffff;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 1.92px;
  padding-top: 50px;
  padding-left: 40px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  z-index: 0;
}

/* 擬似要素で背景画像を設定（transformアニメ用） */
.top-works__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.6s ease;
  z-index: -1;
  transform: scale(1);
}

.top-works__item:hover::before {
  transform: scale(1.1);
}

.top-works__item--shooting {
  background-image: url(../images/top-works__item--shooting.jpg);
}

.top-works__item--shooting::before {
  background-image: url(../images/top-works__item--shooting.jpg);
}

.top-works__item--cm {
  background-image: url(../images/top-works__item--cm.jpg);
}

.top-works__item--cm::before {
  background-image: url(../images/top-works__item--cm.jpg);
}

.top-works__decoration1 {
  position: absolute;
  top: 0px;
  left: 0px;
}

.top-works__decoration2 {
  position: absolute;
  bottom: 0px;
  right: 0px;
}



.top-company {
  position: relative;
  overflow: hidden;
  padding-top: 120px;
  padding-bottom: 120px;
}

.top-company__gradation {
  position: absolute;
  z-index: -1;
  top: 0px;
  right: 0px;
}

.top-company__main {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 71px;
}

.top-company__body {
  margin-top: 70px;
}

.top-company__body .c-title {
  margin-bottom: 30px;
}

.top-company__text {
  color: #333333;
  font-size: 32px;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 1.28px;
  margin-bottom: 40px;
}


.top-recruit {
  padding-bottom: 90px;
}

.top-recruit__main {
  display: block;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  background-image: url(../images/top-recruit__main.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  padding-top: 50px;
  padding-bottom: 60px;
  padding-left: 24px;
  padding-right: 24px;
  position: relative;
}

.top-recruit__main:hover {
  opacity: 0.8;
}

.top-recruit__decoration {
  position: absolute;
  top: 0px;
  left: 0px;
}

.top-recruit__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.top-recruit__main .c-title {
  margin-bottom: 30px;
}

.top-recruit__main .c-title__label {
  color: #ffffff;
}

.top-recruit__main .c-title__main {
  color: #ffffff;
}

.top-recruit__catch {
  color: #ffffff;
  font-size: 32px;
  line-height: 180%;
  letter-spacing: 1.28px;
  margin-bottom: 20px;
}

.top-recruit__text {
  color: #ffffff;
  line-height: 180%;
}



.sub-mv {
  width: 100%;
  height: 360px;
  padding-top: 124px;
  margin-top: 70px;
}

.sub-mv-company {
  width: 100%;
  background-image: url(../images/sub-mv-company.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv-works {
  width: 100%;
  background-image: url(../images/sub-mv-works.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv-news {
  width: 100%;
  background-image: url(../images/sub-mv-news.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv-company {
  width: 100%;
  background-image: url(../images/sub-mv-company.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv-recruit {
  width: 100%;
  background-image: url(../images/sub-mv-recruit.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv-contact {
  width: 100%;
  background-image: url(../images/sub-mv-contact.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.sub-mv__inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.sub-mv__decoration1 {
  position: absolute;
  top: 0px;
  left: 0px;
}

.sub-mv__decoration2 {
  position: absolute;
  bottom: 0px;
  right: 0px;
}

.sub-top-mv__catch {
  color: #ffffff;
  font-family: Montserrat;
  font-size: 72px;
  font-weight: 700;
  position: relative;
  z-index: 1;
}

.sub-top-mv__sub-catch {
  color: #ffffff;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1.2px;
  position: relative;
  z-index: 1;
}

.breadcrumb__list {
  display: flex;
  gap: 7px;
  margin-bottom: 50px;
}

.company-overview {
  padding-top: 20px;
  padding-bottom: 100px;
  background-color: #E7E3E3;
}

.company-overview__main .c-title {
  text-align: center;
  margin-bottom: 40px;
}

.company-overview__main .c-title__hr {
  margin: 0 auto;
}

.company-overview__list {
  background-color: #ffffff;
  padding-top: 40px;
  padding-right: 50px;
  padding-left: 50px;
  padding-bottom: 60px;
}

.company-overview__item {
  display: flex;
  padding-top: 25px;
  padding-bottom: 25px;
  border-bottom: solid 1px #BCBCBC;
}

.company-overview__title {
  width: 150px;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
}

.company-overview__text {
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
}

.company-access {
  padding-top: 100px;
  padding-bottom: 140px;
}

.company-access .c-title {
  text-align: center;
  margin-bottom: 30px;
}

.company-access .c-title__hr {
  margin: 0 auto;
}

.company-access__text {
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
  margin-bottom: 25px;
}

.company-access__iframe {
  width: 100%;
  height: 500px;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

.news {
  padding-top: 20px;
  padding-bottom: 140px;
}

.news__body {
  margin-bottom: 70px;
}

.news__main .c-btn {
  display: block;
  margin: 0 auto;
}

.news__title {
  font-size: 32px;
  line-height: 160%;
  letter-spacing: 1.92px;
  margin-bottom: 15px;
}
.news__title2{
font-size: 24px;
line-height: 160%; /* 38.4px */
margin-bottom: 20px;
}

.news__title-hr {
  position: relative;
  display: block;
  width: 100%;
  height: 1px;
  background-color: #BCBCBC;
  margin-bottom: 20px;
}

.news__day {
  font-family: Montserrat;
  font-weight: 600;
  text-align: right;
  margin-bottom: 25px;
  color: #BCBCBC;
}

.news__title-hr::before {
  position: absolute;
  left: 0px;
  content: "";
  display: block;
  width: 100%;
  max-width: 40px;
  height: 1px;
  background-color: #C60302;
}

.news__text {
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
}

.news__link {
  display: block;
  color: #C60302;
  font-size: 18px;
  line-height: 160%;
  /* 28.8px */
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: none;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
}

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

.mb30 {
  margin-bottom: 30px;
}

.mb40 {
  margin-bottom: 40px;
}


.works {
  padding-top: 20px;
  padding-bottom: 100px;
  background-color: #E7E3E3;
}

.works__text {
  text-align: center;
  font-size: 20px;
  font-weight: 500;
  line-height: 180%;
  /* 36px */
  margin-bottom: 60px;
}

.works__btn-list {
  display: flex;
  gap: 20px;
  margin-bottom: 60px;
}
.works__btn-list .c-btn{
  display: flex;
    justify-content: center;
    align-items: center;
  height: 70px;
}
.works__btn-list .c-btn:before{
  left: 79px;
}
.works__btn-list a:hover.c-btn::before{
  height: 900% !important;
}

.works__contents {
  padding: 50px;
  background-color: #ffffff;
  margin-bottom: 60px;
}

.works__contents:last-child {
  margin-bottom: 0px;
}

.works__title {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  margin-bottom: 30px;
}

.works__title-main {
  font-size: 32px;
  line-height: 40px;
  /* 125% */
  margin-bottom: 22px;
}

.works__title-hr {
  position: relative;
  display: block;
  width: 100%;
  max-width: 70px;
  height: 3px;
  background-color: #C60302;
}

.works__title-hr::before {
  position: absolute;
  right: 0px;
  content: "";
  display: block;
  width: 100%;
  max-width: 16px;
  height: 3px;
  background-color: #C60302;
}

.works__contents-text {
  text-align: center;
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
  margin-bottom: 30px;
}

.works__contents-btn-list {
  width: 100%;
  max-width: 900px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
}

.works__contents-btn-list-item {
  width: 100%;
  max-width: 210px;
  height: 50px;
}

.works__contents-btn-list-item {
  width: 100%;
  max-width: 210px;
  height: 50px;
  color: #C60302;
  text-align: center;
  border: solid 1px #C60302;
  display: flex;
  align-items: center;
  justify-content: center;
}

.works__title--level3 {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}

.works__title--level3 .works__title-hr {
  display: block;
  width: 100%;
  max-width: 12px;
  height: 2px;
  background-color: #C60302;
}

.works__title--level3 .works__title-main {
  text-align: center;
  font-size: 24px;
  line-height: 40px;
  /* 166.667% */
  margin-bottom: 0px;
}

.works__contents-list {
  margin-bottom: 40px;
}

.works__contents-list:last-child {
  margin-bottom: 0px;
}

.works__contents-item {
  font-weight: 400;
  margin-bottom: 12px;
}

.works__contents-item:last-child {
  margin-bottom: 0px;
}

.works-photo-gallery {
  padding-top: 100px;
  padding-bottom: 100px;
}

.works-photo-gallery__main {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.works-photo-gallery__main .c-title {
  margin-bottom: 50px;
  text-align: center;
}

.works-photo-gallery__main .c-title__hr {
  margin: 0 auto;
}

.works-photo-gallery__list {
  display: flex;
  gap: 2.4166666666666665%;
  flex-wrap: wrap;
}

.works-photo-gallery__item {
  width: 31.666666666666664%;
  margin-bottom: 40px;
}

.works-photo-gallery__img {
  margin-bottom: 20px;
}

.works-photo-gallery__text {
  font-weight: 400;
}

.works__contents-list{
  list-style: none; /* デフォルトの点を消す */
  padding-left: 1em; /* 全体を右に寄せる */
}
.works__contents-item{
  margin-bottom: 8px;
  text-indent: -1em; /* 1行目だけ戻す（点が左に出る） */
  position: relative;
  line-height: 160%; /* 25.6px */
}
.works__contents-item::before{
  content: "・";
}

.recruit-job {
  padding-top: 20px;
  padding-bottom: 120px;
}

.recruit-job__btn-list {
  display: flex;
  gap: 20px;
}

.recruit-job__btn-list .c-btn {
  max-width: 490px;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.recruit-job__btn-list .c-btn:before {
  width: 150%;
  height: 100%;
  left: 201px;
}
.recruit-job__btn-list a:hover.c-btn::before{
  width: 150%;
  height: 900%;
  left: -14px;
}

.recruit-job__introduction {
  padding-top: 80px;
}

.recruit-job__main .c-title {
  text-align: center;
  margin-bottom: 50px;
}

.recruit-job__main .c-title__hr {
  margin: 0 auto;
}

.recruit-job__contents {
  position: relative;
  margin-bottom: 100px;
}

.recruit-job__contents:last-child {
  margin-bottom: 0px;
}

.recruit-job__contents--cameraman {
  margin-bottom: 273px;
}

.recruit-job__contents-box {
  position: absolute;
  top: 0px;
  right: 0px;
}

.recruit-job__contents-img {
  width: 100%;
  max-width: 550px;
  position: relative;
}

.recruit-job__contents-title {
  position: absolute;
  top: -20px;
  left: -20px;
  z-index: 1;
  width: 100%;
  max-width: 250px;
  height: 80px;
  background-image: url(../images/recruit-job__contents-title-bg.svg);
  background-size: cover;
  background-repeat: no-repeat;
}

.recruit-job__contents-title span {
  color: #ffffff;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.96px;
  text-align: center;
  display: block;
  margin-top: 15px;
}

.recruit-job__contents-body {
  width: 100%;
  max-width: 550px;
  background-image: url(../images/recruit-job__contents-body-bg.svg);
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  margin-top: 60px;
  padding-top: 40px;
  padding-left: 50px;
  padding-right: 50px;
  padding-bottom: 50px;
}

.recruit-job__contents-body-decoration {
  position: absolute;
  top: 0px;
  left: 0px;
}

.recruit-job__contents-text {
  color: #ffffff;
  font-size: 32px;
  line-height: 160%;
  /* 51.2px */
  margin-bottom: 20px;
}

.recruit-job__contents-sub-text {
  color: #ffffff;
  font-size: 18px;
  line-height: 35px;
}
.recruit-job__contents-sub-text-slash{
  display: none;
}
.recruit-job__contents-sub-text-span {
  color: #ffffff;
  font-weight: 700;
}

.recruit-job__contents-r {}

.recruit-job__contents-r .recruit-job__contents-title {
  right: -20px;
  left: initial;
}

.recruit-job__contents-r .recruit-job__contents-img {
  position: absolute;
  top: -60px;
  right: 0px;
  z-index: -1;
}

.recruit-job__contents-r .recruit-job__contents-box {
  width: 100%;
  max-width: 550px;
  position: initial;
}

.recruit-job__contents-r .recruit-job__contents-title {
  right: -20px;
  left: initial;
  background-image: url(../images/recruit-job__contents-title-bg-r.svg);
}


.recruit-recruitment {
  padding-top: 100px;
  padding-bottom: 140px;
}

.recruit-recruitment__main .c-title {
  text-align: center;
  margin-bottom: 30px;
}

.recruit-recruitment__main .c-title__hr {
  margin: 0 auto;
}

.recruit-recruitment__list {}

.recruit-recruitment__list-body {}

.recruit-recruitment__list-item {
  display: flex;
  padding-top: 25px;
  padding-bottom: 25px;
  border-bottom: solid 1px #BCBCBC;
}

.recruit-recruitment__list-item:first-child {
  border-top: solid 1px #BCBCBC;
}

.recruit-recruitment__list-title {
  width: 150px;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
}

.recruit-recruitment__list-text {
  max-width: 850px;
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
}

.readmore {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  transition: all 0.3s ease;
  margin-top: 40px;
}

/* 隠し部分（初期状態） */
.readmore__hidden {
  display: block;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.5s ease, opacity 0.4s ease;
}

/* 開いた状態 */
.readmore.is-open .readmore__hidden {
  max-height: 1000px;
  /* 十分大きくしておく */
  opacity: 1;
}

.readmore__btn {
  width: 100%;
  max-width: 900px;
  height: 40px;
  text-align: center;
  letter-spacing: 0.64px;
  border: 1px solid #BCBCBC;
  background-color: #EFEFEF;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
}

.readmore__btn-icon {
  margin-top: -1px;
}

.readmore__hidden .works__contents-list:last-child {
  margin-bottom: 40px;
}

.slide-gallery {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin-top: 120px;
}

.slide-gallery__track {
  display: flex;
  gap: 20px; /* 画像の間隔 */
  width: max-content;
  animation: slideLoop 70s linear infinite;
}

.slide-gallery__item {
  flex: 0 0 auto;
  width: 336px; /* 画像の幅 */
}

.slide-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
}

/* 無限ループアニメーション */
@keyframes slideLoop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}


/* 無限ループアニメーション */
@keyframes slideLoop {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}



.contact {
  padding-top: 20px;
  padding-bottom: 140px;
}

.contact__text {
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
  text-align: center;
  margin-bottom: 40px;
}

.contact__form {}

.contact__form-group {
  margin-bottom: 28px;
}

.contact__form-group label {
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.96px;
  margin-bottom: 8px;
}

.contact__required {
  width: 35px;
  height: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  line-height: 100%;
  /* 12px */
  letter-spacing: 0.72px;
  background-color: #C60302;
}

.contact__form-group input {
  border: 1px solid #BCBCBC;
  width: 100%;
  height: 60px;
  background: #EFEFEF;
  font-feature-settings: 'palt' on;
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
  padding-top: 15px;
  padding-bottom: 16px;
  padding-left: 15px;
  padding-right: 15px;
}

.contact__form-group textarea {
  border: 1px solid #BCBCBC;
  width: 100%;
  height: 200px;
  background: #EFEFEF;
  font-feature-settings: 'palt' on;
  font-weight: 400;
  line-height: 180%;
  /* 28.8px */
  letter-spacing: 0.64px;
  padding-top: 15px;
  padding-bottom: 16px;
  padding-left: 15px;
  padding-right: 15px;
}
::placeholder {
  color: #999;
}

.contact__form-textarea {
  margin-bottom: 40px;
}

.contact__form-group input[type="checkbox"] {
  margin-right: 10px;
  max-width: 25px;
  height: 25px;
}

.contact__form-privacy {
  margin-bottom: 32px;
}
.contact__form-privacy a{
  text-decoration: underline;
}

.contact__form-privacy label {
  margin-bottom: 0px;
  gap: 0px;
  justify-content: center;
}

.contact__form-btn {
  text-align: center;
}


.privacy__text{
  margin-bottom: 40px;
  line-height: 1.8;
  font-weight: 400;
}
.privacy__item{
  margin-bottom: 32px;
}
.privacy__title{
  font-size: 24px;
  margin-bottom: 8px;
}
.privacy__item-text{
  line-height: 1.8;
  font-weight: 400;
}
.contact__form-btns{
  display: flex;
  gap: 20px;
      justify-content: center;
}
.c-btn--back{
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.contact__form-group-item{
  font-weight: 400;
}



@media screen and (max-width: 1000px) {
  .pc{
  display: none;
  }
  .sp{
    display: block;
  }

  .sub-mv {
    height: 200px;
    padding-top: 52px;
    margin-top: 60px;
  }

  .sub-top-mv__catch {
    font-size: 60px;
  }
    .sub-top-mv__catch--privacy {
    font-size: 40px;
  }

  .sub-top-mv__sub-catch {
    font-size: 18px;
  }

  .sub-mv__decoration1 {
    height: 200px;
  }

  .sub-mv__decoration2 {
    height: 142px;
  }


  .footer {}

  .footer-inner {
    flex-direction: column;
    gap: 30px;
    margin-bottom: 40px;
  }

  .footer-nav {
    width: 100%;
    flex-direction: column;
    gap: 40px;
  }

  .footer-nav-list {
    display: flex;
    gap: 15px;
  }

  .footer-nav-sp-item {
    width: 100%;
  }

  .footer-sns-list {
    justify-content: center;
  }

  .footer-sns-text {
    text-align: center;
  }


  .breadcrumb__list {
    margin-bottom: 20px;
  }


  .c-title__label {
    font-size: 60px;
  }

  .c-title__main {
    margin-bottom: 20px;
  }

  .c-contact {
    padding-top: 50px;
    background-image: url(../images/c-contact--sp.svg);
  }

  .c-contact__text {
    font-size: 20px;
  }

  .c-contact__body {
    gap: 20px;
    flex-direction: column;
  }

  .c-contact__btn {
    font-size: 26px;
    letter-spacing: 1.04px;
    text-align: initial;
    display: block;
    padding-top: 35px;
    padding-left: 52px;
  }

  .c-contact__btn-arrow {
    top: 47px;
    right: 20px;
  }

  .c-contact__tell-number {
    margin-bottom: 7px;
  }


  .news {
    padding-bottom: 100px;
  }


  .company-overview__list {
    padding-top: 15px;
    padding-right: 25px;
    padding-left: 25px;
  }

  .company-overview__item {
    flex-direction: column;
    gap: 5px;
  }


  .recruit-job{
    padding-bottom: 0px;
  }
  .recruit-job__btn-list {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .recruit-job__introduction {
    padding-top: 50px;
  }

  .recruit-job__contents {
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
  }

  .recruit-job__contents-box {
    position: initial;
    padding-left: 10px;
    padding-right: 10px;
  }

  .recruit-job__contents-body{
    margin-top: -40px;
  }

  .recruit-job__contents--cameraman{
    margin-bottom: 60px;
  }

  .recruit-job__contents-r .recruit-job__contents-img{
    position: initial;
  }

  .recruit-job__contents{
    margin-bottom: 60px;
  }

  .recruit-job__contents-r{
    display: flex;
    flex-direction: column-reverse;
  }


  .slide-gallery{
    margin-top: 80px;
  }


  .recruit-recruitment{
    padding-top: 60px;
    padding-bottom: 100px;
  }

  .recruit-recruitment__main .c-title__label{
    font-size: 45px;
  }
  .recruit-recruitment__list-item{
        flex-direction: column;
  }
  .recruit-recruitment__list-title{
    margin-bottom: 5px;
  }
  .recruit-job__contents-text{
        font-size: 28px;
  }
  .recruit-job__contents-body{
    padding-top: 30px;
    padding-bottom: 40px;
    padding-left: 25px;
    padding-right: 25px;
  }
  .recruit-job__contents-sub-text-slash{
    display: inline-block;
  }
  .recruit-recruitment__list-item{
    padding-top: 22px;
    padding-bottom: 22px;
  }

  
  .works{
    padding-bottom: 80px;
  }
  .works__btn-list{
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px;
  }
  .works__title-main{
    font-size: 28px;
    text-align: center;
    margin-bottom: 20px;
  }
  .works__contents{
    padding-top: 32px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 58px;
  }
  .works__contents-btn-list{
    gap: 2.5316455696202533%;
  }
  .works__contents-btn-list-item{
    width: 48.734177215189874%;
    max-width: initial;
  }
  .works__contents-btn-list-item{
    margin-bottom: 10px;
  }
    .works__contents-btn-list-last{
    margin-bottom: initial;
  }
  .readmore{
    margin-top: 30px;
  }
  .works__contents-list{
    margin-bottom: 30px;
  }
  .works__title--level3 .works__title-main{
    font-size: 20px;
  }







  .top-news{
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .top-news__main{
    flex-direction: column;
    gap: 40px;
  }
  .top-news__link{
    flex-direction: column;
    align-items: initial;
    gap: 5px;
  }
  .top-news__link::after{
    top: 50px;
  }
  .top-news__list{
    margin-top: 28px;
  }
  .top-works{
    padding-top: 60px;
    background-size: cover;
  }
  .top-works .c-title{
    margin-bottom: 30px;
  }
  .top-works__catch{
    font-size: 28px;
    padding-left: 20px;
    padding-right: 20px;
    text-align: initial;
    margin-bottom: 10px;
  }
  .top-works__text{
    margin-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
    text-align: initial;
  }
  .top-works__list{
    flex-direction: column;
    align-items: center;
  }
  .top-works__item{
    padding-top: 30px;
    padding-left: 20px;
    font-size: 24px;
  }
  .top-company{
    padding-top: 60px;
    padding-bottom: 80px;
  }
  .top-company__main{
    flex-direction: column;
    gap: 30px;
  }
  .top-company__img .c-title{
    margin-bottom: 10px;
  }
  .top-company__body{
        margin-top: 30px;
  }
  .top-company__text{
    font-size: 28px;
  }
  .top-recruit{
    padding-bottom: 100px;
  }
  .top-recruit__main{
    background-image: url(../images/top-recruit__main--sp.jpg);
  }
  .top-recruit__main .c-title{
    margin-bottom: 20px;
  }
  .top-recruit__catch{
    font-size: 28px;
        margin-bottom: 10px;
  }
  .top-recruit__text{
    font-weight: 400;
  }
  .c-contact__tell-number{
    font-size: 38px;
  }
  .footer-bottom{
    font-size: 14px;
  }
  .company-overview__main .c-title__label{
    font-size: 54px;
  }


  /* ========== Header ========== */
.sp-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background: #fff;
  z-index: 1000;
}

.sp-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  padding-left: 20px;
}

/* ========== Hamburger ========== */
.hamburger-box{
  width: 60px;
  height: 60px;
  background-color: #C60302;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hamburger {
  position: relative;
  width: 32px;
  height: 20px;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 1100;
}

.hamburger__line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #ffffff;
  transition: transform 0.3s, opacity 0.3s;
}

.hamburger__line:nth-child(1) { top: 0; }
.hamburger__line:nth-child(2) { top: 50%; transform: translateY(-50%); }
.hamburger__line:nth-child(3) { bottom: 0px; }

.hamburger.is-active .hamburger__line:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.hamburger.is-active .hamburger__line:nth-child(2) {
  opacity: 0;
}
.hamburger.is-active .hamburger__line:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}

/* ========== Overlay Menu ========== */
.sp-header__overlay {
  position: fixed;
  top: 60px;
  left: 0;
  width: 100%;
  height: calc(100vh - 60px);
  background: #fff;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 40px;
}

.sp-header__overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* メニューの中身 */
.sp-header__menu {
  width: 100%;
}

.sp-header__menu-list {
  list-style: none;
  margin: 0 0 40px 0;
  padding: 0;
    padding-left: 20px;
  padding-right: 20px;
}

.sp-header__menu-list li {
  border-bottom: solid 1px #BCBCBC;
}
.sp-header__menu-list li:last-child{
  border-bottom: initial;
}

.sp-header__menu-list a {
  display: block;
color: #333333;
padding-bottom: 25px;
padding-top: 25px;
}

.sp-header__contact-btn {
  background-color: #C60302;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-top: 20px;
  padding-bottom: 20px;
  text-decoration: none;
  font-size: 16px;
  border-radius: 0;
  width: 100%;
}

/* スクロールロック */
body.no-scroll {
  overflow: hidden;
}
.sp-header__logo{
  width: 100%;
  max-width: 133.18px;
}
.top-mv {
  height: calc(100svh - 60px); /* 新ブラウザで安定 */
  margin-top: 60px;
}

.top-news__list{
  max-width: initial;
}
.company-access{
  padding-top: 60px;
  padding-bottom: 100px;
}
.works__text{
  text-align: initial;
  margin-bottom: 30px;
}
.works__contents-text{
  text-align: initial;
}
.works-photo-gallery{
  padding-top: 60px;
  padding-bottom: 100px;
}
.works-photo-gallery__text{
  line-height: 160%;
}
.recruit-job__contents-r .recruit-job__contents-title{
  left: -20px;
  background-image: url(../images/recruit-job__contents-title-bg.svg);
}
.news__title{
  font-size: 28px;
}
.news__title2{
  font-size: 20px;
}
.contact__text{
  text-align: initial;
}
.contact{
  padding-bottom: 100px;
}
.contact__form-btns{
    flex-direction: column;
    align-items: center;
}
.company-overview{
  padding-bottom: 80px;
}
.privacy__title{
  font-size: 20px;
  line-height: 160%;
}
}

@media screen and (max-width: 768px) {
.top-mv__inner{
    left: 20px;
  }
  .top-mv__catch{
    font-size: 50px;
  }
  .top-mv__sub-catch{
    font-size: 20px;
  }
  .top-mv{
    background-image: url(../images/top-mv--sp.jpg);
  }
  .top-mv__decoration_left{
    display: none;
}
  .top-mv__decoration_right{
    width: 99px;
  }
  .top-mv__decoration_left--sp{
    height: calc(100svh - 60px); /* 新ブラウザで安定 */
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
  }
}
@media screen and (max-width: 490px) {
.top-mv__inner{
    left: 20px;
  }
  .top-mv__catch{
    font-size: 50px;
  }
  .top-mv__sub-catch{
    font-size: 20px;
  }
  .top-mv{
    background-image: url(../images/top-mv--sp.jpg);
  }
  .top-mv__decoration_left{
    display: none;
}
  .top-mv__decoration_right{
    width: 99px;
  }
  .top-mv__decoration_left--sp{
    height: calc(100svh - 60px); /* 新ブラウザで安定 */
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
  }

  .works-photo-gallery__list{
  gap: 2.857142857142857%;
}
.works-photo-gallery__item{
  width: 48.57142857142857%;
  margin-bottom: 20px;
}
.works-photo-gallery__item:last-child{
  margin-bottom: 0px;
}
.recruit-job__btn-list .c-btn:before{
    height: 100%;
    left: 0px;
}
.footer-bottom{
    text-align: initial;
  }
}