@charset "UTF-8";
:root {
  scroll-behavior: smooth;
  --color-text: #333;
  --color-red: #d70a17;
  --color-red-hover: #ff4a47;
}

.home main {
  position: relative;
  margin-top: 0;
}

.thk_top_slider {
  position: relative;
  width: 100%;
  height: clamp(550px, 50vw, 880px);
  overflow: hidden;
  background-color: var(--color-red);
}
.thk_top_slider h1.site_title {
  position: relative;
  z-index: 0;
  font-size: 12px;
  color: #fff;
  opacity: 0;
}
.thk_top_slider {
  /*
   * Swiper標準の横移動を見た目上も完全に無効化
   */
}
.thk_top_slider .swiper-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none !important;
}
.thk_top_slider {
  /*
   * 全スライドを同じ位置に重ねる
   */
}
.thk_top_slider .swiper-slide {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100%;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  clip-path: inset(0);
  /*
   * 初期表示時に一瞬消えることを防ぐ
   */
}
.thk_top_slider .swiper-slide:first-child {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
}
.thk_top_slider .swiper-slide:first-child .slide_content > * {
  opacity: 1;
}
.thk_top_slider .slide_visual {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.thk_top_slider .slide_visual img,
.thk_top_slider .slide_visual video {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
}
.thk_top_slider .slide_visual video {
  filter: brightness(80%);
}
.thk_top_slider .swiper-slide-active .slide_visual img {
  animation: slide-visual-zoom 5s linear forwards;
}
.thk_top_slider .slide_content {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  color: #fff;
}
.thk_top_slider .slide_content > * {
  opacity: 0;
}
.thk_top_slider .slide_content_inner {
  max-width: 1000px;
  height: 100%;
  margin-inline: auto;
  display: flex;
  align-items: center;
  padding: 0 clamp(30px, 4vw, 40px);
}
@media screen and (max-width: 767px) {
  .thk_top_slider .slide_content_inner {
    align-items: center;
  }
}
.thk_top_slider .slide_title {
  margin: 0 0 clamp(15px, 4vw, 40px);
  font-size: clamp(26px, 4vw, 40px);
  line-height: 1.8;
}
.thk_top_slider .slide_title span {
  display: inline-block;
}
.thk_top_slider .slide_viewmore {
  margin: 0;
}
.thk_top_slider .slide_viewmore a {
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 1.8;
  font-weight: 700;
  text-decoration: none;
  color: #fff;
  background-image: url(../img/top/arrow_more.svg);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: clamp(60px, 8vw, 80px);
  padding-left: clamp(70px, 9.5vw, 95px);
  transition: 0.2s;
}
@media (hover: hover) and (pointer: fine) {
  .thk_top_slider .slide_viewmore a:hover, .thk_top_slider .slide_viewmore a:focus-visible {
    background-color: #d70a17;
  }
}
.thk_top_slider .swiper_controls_block {
  position: relative;
  max-width: 1240px;
  height: 100%;
  width: 100%;
  margin-inline: auto;
  z-index: 3;
  pointer-events: none;
}
.thk_top_slider .swiper_controls {
  position: absolute;
  z-index: 3;
  bottom: clamp(70px, 7vw, 120px);
  left: clamp(20px, 4vw, 40px);
  display: flex;
  align-items: center;
  gap: 4px;
  pointer-events: auto;
}
.thk_top_slider .swiper_control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: clamp(20px, 4vw, 40px);
  padding: clamp(2px, 1vw, 9px) clamp(5px, 1.2vw, 12px);
  font: inherit;
  white-space: nowrap;
  color: #D80C18;
  background-color: #fff;
  border: 0;
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .thk_top_slider .swiper_control:hover, .thk_top_slider .swiper_control:focus-visible {
    color: #fff;
    background-color: #D80C18;
  }
}
.thk_top_slider .swiper_control svg {
  flex: 0 0 auto;
}
.thk_top_slider .swiper_control-icon {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
}
.thk_top_slider .swiper_control-icon svg {
  grid-area: 1/1;
}
.thk_top_slider {
  /*
   * 再生アイコンは初期状態では非表示
   */
}
.thk_top_slider .icon-play {
  display: none;
}
.thk_top_slider {
  /*
   * 一時停止中
   */
}
.thk_top_slider .swiper_control-toggle.is-paused .icon-pause {
  display: none;
}
.thk_top_slider .swiper_control-toggle.is-paused .icon-play {
  display: block;
}
@media (prefers-reduced-motion: reduce) {
  .thk_top_slider .swiper_control {
    transition: none;
  }
}
@keyframes slide-visual-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .thk_top_slider .swiper-slide-active .slide_visual img {
    animation: none;
  }
}

.top_slider_bgcolor {
  background-color: var(--color-red);
}

a.top_link_btn {
  text-decoration: none;
  color: #fff;
  display: block;
  border: solid 1px #E3DEDE;
  text-align: center;
  font-weight: 700;
  border-radius: 500px;
  padding: clamp(10px, 2.3vw, 23px) 0;
  transition: 0.2s;
}
a.top_link_btn span {
  display: inline-block;
  padding: 0 clamp(20px, 3.5vw, 35px);
  background-image: url(../img/arrow_next_w.svg);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: clamp(15px, 2.3vw, 23px);
}
@media (hover: hover) and (pointer: fine) {
  a.top_link_btn:hover, a.top_link_btn:focus-visible {
    color: var(--color-red);
    background-color: #fff;
  }
  a.top_link_btn:hover span, a.top_link_btn:focus-visible span {
    background-image: url(../img/arrow_next.svg);
  }
}

.top_strength {
  --top-lead-cut: min(10vw, 200px);
  position: relative;
  pointer-events: none;
  z-index: 10;
  margin-top: max(-10vw, -200px);
  padding: calc(var(--top-lead-cut)) 30px clamp(50px, 13vw, 130px);
  color: #fff;
}
@media screen and (max-width: 767px) {
  .top_strength {
    --top-lead-cut: 48px;
    margin-top: -48px;
    padding: calc(48px + var(--top-lead-cut)) 20px clamp(50px, 8vw, 80px);
  }
}
.top_strength::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background-color: var(--color-red);
  clip-path: polygon(0 var(--top-lead-cut), 100% 0, 100% 100%, 0 100%);
  content: "";
  background-image: url(/assets/img/top/top_lead_bg.webp);
  background-repeat: no-repeat;
  background-position: right top;
  background-size: cover;
}
.top_strength .top_strength_inner {
  max-width: 770px;
  margin-inline: auto;
  pointer-events: auto;
  padding-top: clamp(20px, 4vw, 40px);
}
@media screen and (max-width: 767px) {
  .top_strength .top_strength_inner {
    max-width: 500px;
    padding: 0;
  }
}
.top_strength .top_strength_inner h2 {
  text-align: center;
  padding-bottom: clamp(15px, 2vw, 20px);
  margin-bottom: clamp(15px, 3vw, 30px);
  border-bottom: solid 1px #ccc;
  letter-spacing: 0.05em;
}
.top_strength a.top_link_btn {
  margin-top: clamp(25px, 5vw, 50px);
}

.top_business {
  color: #fff;
  margin-top: -1px;
  padding: clamp(50px, 8vw, 80px) 0;
  background-color: #414141;
  background-image: url(../img/top/top_business_bg.png);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}
.top_business h2 {
  text-align: center;
  background-color: rgba(0, 0, 0, 0.15);
  padding: 10px;
}
.top_business .top_business_text h3 {
  text-align: center;
  line-height: 1.2;
  padding-bottom: clamp(10px, 1.8vw, 20px);
  margin-bottom: clamp(15px, 1.8vw, 20px);
  border-bottom: solid 1px #818181;
}
.top_business .top_business_text h3 span {
  font-weight: 400;
  color: var(--color-red);
}
.top_business .top_business_text a.top_link_btn {
  margin-top: clamp(20px, 3vw, 30px);
}
.top_business .top_business_unit_grid {
  padding-top: clamp(30px, 8vw, 80px);
  gap: clamp(20px, 8vw, 100px);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: row-reverse;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .top_business .top_business_unit_grid {
    display: block;
    max-width: 500px;
    margin-inline: auto;
  }
}
.top_business .top_business_unit_grid .top_business_unit_grid_item1 {
  width: min(50%, 580px);
}
@media screen and (max-width: 767px) {
  .top_business .top_business_unit_grid .top_business_unit_grid_item1 {
    width: 100%;
  }
}
.top_business .top_business_unit_grid .top_business_unit_grid_item2 {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .top_business .top_business_unit_grid .top_business_unit_grid_item2 {
    padding-top: clamp(30px, 4vw, 40px);
  }
}
.top_business .top_business_unit_case {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  max-width: 1740px;
  margin-inline: auto;
  gap: clamp(10px, 2vw, 20px);
  padding: clamp(40px, 8vw, 100px) clamp(20px, 3vw, 40px);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .top_business .top_business_unit_case {
    grid-template-columns: repeat(3, 1fr);
  }
  .top_business .top_business_unit_case figure:nth-child(7) {
    grid-column: 2;
  }
}
.top_business .top_business_unit_case figcaption {
  line-height: 1.4;
  font-feature-settings: "palt";
  color: #A0A0A0;
}
.top_business .top_business_robot_grid {
  padding-top: clamp(40px, 8vw, 100px);
  border-top: solid 1px #818181;
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 10fr) minmax(0, 11fr) minmax(0, 10fr);
  gap: clamp(10px, 3vw, 20px);
}
@media screen and (max-width: 767px) {
  .top_business .top_business_robot_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.top_business .top_business_robot_grid .top_business_robot_grid_item1 {
  width: min(360px, 100%);
}
@media screen and (max-width: 767px) {
  .top_business .top_business_robot_grid .top_business_robot_grid_item1 {
    width: 100%;
    grid-column: 1;
    grid-row: 1;
  }
}
.top_business .top_business_robot_grid .top_business_robot_grid_item2 {
  width: auto;
}
@media screen and (max-width: 767px) {
  .top_business .top_business_robot_grid .top_business_robot_grid_item2 {
    grid-column: 1/-1;
    grid-row: 2;
  }
}
.top_business .top_business_robot_grid .top_business_robot_grid_item3 {
  width: min(360px, 100%);
}
@media screen and (max-width: 767px) {
  .top_business .top_business_robot_grid .top_business_robot_grid_item3 {
    width: 100%;
    grid-column: 2;
    grid-row: 1;
  }
}
.top_business .top_business_textile {
  margin-top: clamp(40px, 10vw, 100px);
}
.top_business .top_business_textile a {
  text-decoration: none;
  display: block;
  color: #fff;
  background-color: rgba(245, 244, 240, 0.06);
  text-align: center;
  border-radius: 500px;
  padding: clamp(10px, 2.3vw, 23px) 0;
  transition: 0.2s;
}
.top_business .top_business_textile a span {
  position: relative;
  display: inline-block;
  line-height: 1;
  font-weight: 700;
  padding: 0 clamp(25px, 3.4vw, 40px);
}
.top_business .top_business_textile a span::after {
  content: "";
  width: clamp(16px, 2.5vw, 28px);
  height: clamp(16px, 2.5vw, 28px);
  position: absolute;
  top: 0;
  right: 0;
  background-image: url(../img/arrow_next.svg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: clamp(12px, 1.5vw, 16px);
  background-color: #fff;
  border-radius: 3px;
}
@media screen and (max-width: 767px) {
  .top_business .top_business_textile a span::after {
    top: 1px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .top_business .top_business_textile a:hover, .top_business .top_business_textile a:focus-visible {
    color: var(--color-red);
    background-color: #fff;
  }
  .top_business .top_business_textile a:hover span::after, .top_business .top_business_textile a:focus-visible span::after {
    background-image: url(../img/arrow_next_w.svg);
    background-color: var(--color-red);
  }
}

.top_strength_link {
  display: flex;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .top_strength_link {
    display: block;
  }
}
.top_strength_link a {
  display: block;
  flex: 1;
  position: relative;
}
@media (hover: hover) and (pointer: fine) {
  .top_strength_link a:hover .top_strength_img img, .top_strength_link a:focus-visible .top_strength_img img {
    transform: scale(1.1);
  }
}
.top_strength_link .top_strength_img {
  overflow: hidden;
}
.top_strength_link .top_strength_img img {
  display: block;
  transition: transform 0.4s ease;
}
.top_strength_link .top_strength_text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.top_strength_link .top_strength_text h3 {
  line-height: 1.8;
  padding-bottom: 20px;
}
@media screen and (max-width: 960px) {
  .top_strength_link .top_strength_text h3 {
    line-height: 1.5;
  }
}
@media screen and (max-width: 767px) {
  .top_strength_link .top_strength_text h3 {
    padding-bottom: 10px;
  }
}
.top_strength_link .top_strength_text p {
  color: #fff;
  display: inline-block;
  padding: 0 clamp(10px, 2vw, 20px);
  background-color: var(--color-red);
  margin-bottom: clamp(5px, 2vw, 15px);
}
@media screen and (max-width: 960px) {
  .top_strength_link .top_strength_text p {
    margin-bottom: clamp(5px, 1vw, 10px);
  }
}
.top_strength_link .top_strength_text .arrow {
  position: absolute;
  display: block;
  right: clamp(25px, 4vw, 50px);
  bottom: clamp(25px, 3vw, 40px);
  width: clamp(25px, 4vw, 60px);
  height: clamp(25px, 4vw, 60px);
  background-color: #fff;
  border-radius: 100px;
  background-image: url(../img/arrow_next.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: clamp(12px, 1.8vw, 24px);
  transition: background-color 0.2s;
}
@media screen and (max-width: 767px) {
  .top_strength_link .top_strength_text .arrow {
    right: clamp(20px, 4vw, 50px);
    bottom: clamp(20px, 3vw, 40px);
    width: clamp(30px, 6vw, 60px);
    height: clamp(30px, 6vw, 60px);
  }
}
@media (hover: hover) and (pointer: fine) {
  .top_strength_link .top_strength_text:hover .arrow, .top_strength_link .top_strength_text:focus-visible .arrow {
    background-color: var(--color-red);
    background-image: url(../img/arrow_next_w.svg);
  }
}

.top_corporate {
  margin-top: -1px;
  padding: clamp(60px, 16vw, 180px) 0 clamp(40px, 12vw, 140px);
  background-color: #f5f4f0;
  background-image: url(../img/top/top_corporate_bg.svg);
  background-position: left top;
  background-repeat: no-repeat;
  background-size: 90%;
}
@media screen and (max-width: 767px) {
  .top_corporate {
    background-size: 90% 12vw;
  }
}
.top_corporate h2 {
  text-align: center;
  margin-bottom: clamp(20px, 4vw, 40px);
}
.top_corporate .top_corporate_links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 2.5vw, 30px);
}
@media screen and (max-width: 767px) {
  .top_corporate .top_corporate_links {
    grid-template-columns: repeat(2, 1fr);
  }
}
.top_corporate .top_corporate_links a {
  padding: 20px clamp(20px, 3.2vw, 32px);
  text-decoration: none;
  font-size: clamp(15px, 1.88vw, 22px);
  background-color: #fff;
  border: solid 1px #fff;
  display: flex;
  align-items: center;
  position: relative;
  transition: background-color 0.2s;
}
.top_corporate .top_corporate_links a::after {
  content: "";
  width: 24px;
  height: 24px;
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  background-image: url(../img/arrow_next.svg);
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;
  transition: border 0.2s ease;
}
@media screen and (max-width: 767px) {
  .top_corporate .top_corporate_links a::after {
    width: 16px;
    height: 16px;
    right: 16px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .top_corporate .top_corporate_links a:hover, .top_corporate .top_corporate_links a:focus-visible {
    color: var(--color-red);
    background-color: #fff;
    border: solid 1px var(--color-red);
    transition: 0.2s ease;
  }
}

.top_info {
  background-image: url(../img/top/top_info_bg.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #8dd0f8;
  padding: clamp(40px, 10vw, 100px) clamp(20px, 3vw, 30px) clamp(50px, 13vw, 130px);
}
.top_info .top_info_box {
  background-color: #fff;
  max-width: 1180px;
  margin-inline: auto;
  padding: clamp(40px, 6vw, 60px) clamp(30px, 6vw, 60px) clamp(30px, 8vw, 80px);
}
.top_info .top_info_box h2 {
  text-align: center;
  color: var(--color-red);
  letter-spacing: 0.1em;
}
.top_info .top_info_box ul {
  margin-top: clamp(30px, 4vw, 40px);
  margin-bottom: clamp(15px, 3vw, 40px);
  max-width: 960px;
  margin-inline: auto;
}
.top_info .top_info_box ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px clamp(10px, 3vw, 30px);
}
@media screen and (max-width: 767px) {
  .top_info .top_info_box ul li {
    flex-wrap: wrap;
    align-items: center;
  }
}
.top_info .top_info_box ul li + li {
  margin-top: clamp(25px, 3.5vw, 35px);
}
.top_info .top_info_box ul .category {
  color: var(--color-red);
  font-size: clamp(12px, 1.54vw, 18px);
  line-height: 1.5;
  display: inline-block;
  border: solid 1px var(--color-red);
  padding: 2px 5px;
  min-width: 8.5em;
  text-align: center;
  font-feature-settings: "palt";
}
.top_info .top_info_box ul .date {
  line-height: 1.5;
  margin-right: auto;
  font-size: clamp(15px, 1.88vw, 22px);
}
.top_info .top_info_box ul a {
  font-size: clamp(15px, 1.88vw, 22px);
  line-height: 1.5;
  text-decoration: none;
  width: 100%;
}
@media (hover: hover) and (pointer: fine) {
  .top_info .top_info_box ul a:hover, .top_info .top_info_box ul a:focus-visible {
    text-decoration: underline;
  }
}
.top_info .top_info_box .info_list {
  max-width: 960px;
  margin-inline: auto;
  text-align: right;
}
.top_info .top_info_box .info_list a {
  font-size: clamp(15px, 1.88vw, 22px);
  line-height: 1;
  text-decoration: none;
  background-image: url(../img/arrow_next.svg);
  background-position: right top clamp(3px, 0.6vw, 8px);
  background-repeat: no-repeat;
  background-size: clamp(12px, 1.8vw, 20px);
  padding-right: clamp(12px, 2.3vw, 28px);
}
@media (hover: hover) and (pointer: fine) {
  .top_info .top_info_box .info_list a:hover, .top_info .top_info_box .info_list a:focus-visible {
    text-decoration: underline;
  }
}

.top_etc {
  padding: clamp(25px, 6vw, 80px);
}
.top_etc .top_etc_inner {
  max-width: 1680px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 1.7vw, 30px);
}
@media screen and (max-width: 767px) {
  .top_etc .top_etc_inner {
    grid-template-columns: 1fr;
  }
}
.top_etc .top_etc_inner > a {
  padding: clamp(25px, 4vw, 50px) 0 clamp(25px, 5vw, 70px);
  border: clamp(2px, 0.5vw, 4px) solid var(--color-red);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  text-align: center;
  text-decoration: none;
  background-color: #fff;
}
.top_etc .top_etc_inner > a .logo1 {
  width: clamp(24px, 4.5vw, 66px);
}
.top_etc .top_etc_inner > a .logo1 img {
  width: 100%;
  height: auto;
}
.top_etc .top_etc_inner > a .logo2 {
  width: clamp(24px, 4.5vw, 59px);
}
.top_etc .top_etc_inner > a .logo2 img {
  width: 100%;
  height: auto;
}
.top_etc .top_etc_inner > a::before {
  content: "";
  width: clamp(56px, 6.8vw, 90px);
  aspect-ratio: 1;
  position: absolute;
  right: -1px;
  bottom: -1px;
  background-color: var(--color-red);
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
}
.top_etc .top_etc_inner > a::after {
  content: "";
  width: clamp(15px, 2vw, 24px);
  height: clamp(15px, 2vw, 24px);
  position: absolute;
  right: clamp(6px, 0.8vw, 13px);
  bottom: clamp(6px, 0.8vw, 13px);
  background-image: url(../img/arrow_next_w.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: clamp(15px, 1.8vw, 24px);
}
.top_etc .top_etc_inner > a p {
  position: relative;
  z-index: 1;
  line-height: 1;
}
.top_etc .top_etc_inner > a p:first-child {
  display: flex;
  align-items: center;
}
.top_etc .top_etc_inner > a p:nth-child(2) {
  padding-top: clamp(10px, 2vw, 25px);
  font-weight: 700;
}
.top_etc .top_etc_inner > a p:last-child {
  padding-top: clamp(10px, 2vw, 25px);
  font-weight: 700;
}
@media (hover: hover) and (pointer: fine) {
  .top_etc .top_etc_inner > a:hover, .top_etc .top_etc_inner > a:focus-visible {
    color: var(--color-red);
    background-color: #fff5f5;
  }
}