@charset "UTF-8"; /* ベース設定 */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: initial;
}

body {
  color: #111111;
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  animation: fade 1s;
  font-weight: 500;
  line-height: 1.5;
  overflow-x: hidden;
}

p {
  text-align: justify
}

a {
  transition: 0.2s;
}

a:hover {
  opacity: 0.7;
}

.hidden {
  display: none;
}

@keyframes fade {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@media screen and (max-width: 1200px) {
  section .inner {
    width: 94% !important;
  }
}

/* ヘッダー */
header {
  position: fixed;
  top: 0;
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  width: 100%;
  height: 70px;
  transition: 0.2s;
}

header .inner {
  display: flex;
  align-items: center;
  height: 70px;
  padding: 0px 0em;
}

header .inner .header-logo {
  overflow: hidden;
  margin: 0 1em;
  max-width: 200px;
}

header .inner .header-logo a h1 {
  height: 0;
}

/* ヘッダーナビゲーション */
header .header-logo + nav {
  margin-left: auto;
  margin-right: 2em;
  display: none;
}

header .header-logo + nav ul {
  display: flex;
  gap: 2em;
}

header .header-logo + nav ul li a {
  font-weight: bold;
  color: #111111;
}

/* ハンバーガーメニュー */
header .menu-wrap {
  position: relative;
  width: 70px;
  height: 70px;
  cursor: pointer;
  background: #111111;
  display: grid;
  place-content: center;
  display: grid;
  place-items: center;
  margin-left: auto;
}

header .menu-trigger {
  position: relative;
  width: 34px;
  height: 34px;
  cursor: pointer;
  background: #111111;
}

header .menu-trigger span {
  position: absolute;
  transform: translateY(-50%);
  display: block;
  width: 34px;
  height: 2px;
  background-color: #FFF;
  transition: 0.5s;
}

header .menu-trigger span:nth-of-type(1) {
  top: 50%;
}

header .menu-trigger span:nth-of-type(2) {
  top: 20%;
}

header .menu-trigger span:nth-of-type(3) {
  top: 80%;
}

header .menu-trigger.active span {
  transition: 0.5s;
}

header .menu-trigger.active span:nth-of-type(1) {
  opacity: 0;
}

header .menu-trigger.active span:nth-of-type(2) {
  top: 50%;
  transform: rotate(40deg);
}

header .menu-trigger.active span:nth-of-type(3) {
  top: 50%;
  transform: rotate(-40deg);
}

.overlay {
  display: none;
  height: calc(100vh - 70px);
  width: 100%;
  background: #111111;
  background-size: cover;
  background-repeat: no-repeat;
  background-blend-mode: overlay;
}

.overlay.active {
  display: block;
}

header nav {
  height: 100%;
}

header nav .main-menu {
  padding: 30px;
  height: 100%;
  display: grid;
  flex-direction: column;
  gap: 20px;
  place-content: center;
}

header nav .main-menu li {
}

header nav .main-menu li a {
  color: #fff;
  font-weight: bold;
  text-align: center;
}

/* ヘッダーお問い合わせボタン */
header .pc-header-contact a {
  display: flex;
  place-items: center;
  place-content: center;
  gap: 1em;
  transition: 0.2s;
  position: relative;
  background: #ee2930;
  display: grid;
  place-content: center;
  padding: 10px 1em;
  border-radius: 30px;
  border: solid 1px #ee2930;
  display: none;
}

header .pc-header-contact a:hover {
  opacity: 1;
  background: #fff;
  border: solid 1px #ee2930;
}

header .pc-header-contact:hover p {
  color: #ee2930;
  transition: 0.2s;
}

header .pc-header-contact a p {
  color: #fff;
  font-weight: bold;
}

/* トップへ戻るボタン */
header .to-top {
  position: fixed;
  right: 5px;
  bottom: 5px;
  visibility: hidden;
}

header .to-top a {
  width: 65px;
  height: 65px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  background-color: #292f36;
  border: solid 1px #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

header .to-top.active {
  visibility: visible;
  animation: fade 1s forwards;
}

/* トップスライド */
.top-slide .inner {
  width: 100% !important;
}

.top-slide .swiper .swiper-slide img {
  width: 100%;
  height: 100vh;
  object-fit: cover;
}

.top-slide .swiper .swiper-slide.first .slide-catch {
  position: absolute;
  top: 27%;
  left: 5%;
}

.top-slide .swiper .swiper-slide.first img {
  animation: zoomUp1 15s linear 0s 2 normal both;
  transform-origin: 80% right;
}

.top-slide .swiper .swiper-slide.second .slide-catch {
  position: absolute;
  top: 41%;
  right: 5%;
}

.top-slide .swiper .swiper-slide.second img {
  animation: zoomUp2 15s linear 0s 2 normal both;
  transform-origin: 20% left;
}

.top-slide .swiper .swiper-slide.third .slide-catch {
  position: absolute;
  bottom: 30%;
  right: 10%;
}

.top-slide .swiper .swiper-slide.third img {
  animation: zoomUp3 15s linear 0s 2 normal both;
  transform-origin: 80% left;
}

@keyframes zoomUp1 {
  0% {
    transform: scale(1.2) rotate(-3deg);
  }

  100% {
    transform: scale(1.5) rotate(0deg);
  }
}

@keyframes zoomUp2 {
  0% {
    transform: scale(1.2) rotate(3deg);
  }

  100% {
    transform: scale(1.5) rotate(0deg);
  }
}

@keyframes zoomUp3 {
  0% {
    transform: scale(1.2) rotate(-1.5deg);
  }

  100% {
    transform: scale(1.5) rotate(1.5deg);
  }
}

/* スライダーページネーション */
.top-slide .swiper .swiper-pagination-bullet {
  width: 12px !important;
  height: 12px !important;
  border: solid 1px #fff;
  background: #ee2930 !important;
  margin: 0 15px !important;
}

.top-slide .swiper .swiper-pagination-bullet-active {
  border: solid 1px #fff;
  background: #fff !important;
}

.top-slide .swiper .slide-catch-title {
  font-size: 15vw;
  font-weight: bold;
  font-family: 'Oswald', serif;
  color: #4d4d4d;
  line-height: 1.2;
}

.top-slide .swiper .slide-catch-sentence {
  font-size: 5vw;
}

.top-slide .swiper .swiper-pagination {
  background: #ee2930;
  bottom: 0 !important;
  width: 250px !important;
  height: 80px;
  margin: auto;
  left: 0 !important;
  right: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 1em;
}

/* トップページ about */
.top-about {
  background: #fff;
  padding: 70px 0;
}

.top-about .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.sec-title {
  font-size: 30px;
  font-weight: bold;
  font-feature-settings: 'palt';
  letter-spacing: 0.03em;
}

.sec-unit {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}

.top-about .sec-unit {
  margin-top: 70px;
}

.sec-unit hgroup h2 {
  font-size: 72px;
  font-family: 'Oswald', serif;
  color: #333;
  line-height: 1;
  margin-top: 15px;
  letter-spacing: 0;
  word-wrap: break-word;
}

.sec-unit hgroup p {
  font-size: 20px;
  color: #666;
  font-weight: bold;
}

.sec-unit dt {
  width: 100%;
}

.sec-unit dd {
  /* padding-top: 40px; */
  flex: 1;
}

.sec-unit dd h3 {
  font-size: 24px;
  color: #333;
}

.sec-unit dd p {
  margin-top: 10px;
  text-align: justify;
}

.sec-unit dd p + a {
  margin-top: 60px;
}

/* リンクボタン共通 */
a.link-btn {
  width: 100%;
  max-width: 400px;
  background: #333;
  margin-left: auto;
  text-align: center;
  padding: 13px;
  border-radius: 25px;
  display: grid;
  place-items: center;
  place-content: center;
  transition: 0.2s;
}

a.link-btn.short {
  max-width: 200px;
  background: #015fc1;
  margin-inline: auto; margin-top: 30px;
}

a.link-btn.white {
  background: #fff;
  border-radius: 40px;
}

a.link-btn.white span {
  color: #ce0936;
  font-weight: bold;
  display: flex;
  align-items: center;
}

a.link-btn span {
  color: #fff;
  display: block;
  position: relative;
  transition: 0.3s;
}

a.link-btn span::after {
  position: absolute;
  right: -2em;
  top: 5px;
  display: block;
  content: "";
  width: 10px;
  height: 10px;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  transform: rotate(45deg);
  transition: 0.3s;
}

a.link-btn.white span::after {
  display: none;
}

a.link-btn.white span::before {
  content: url(../img/mitsumori.png);
  position: relative;
  left: 0em;
  right: 1em;
  top: 0px;
  display: block;
  width: 30px;
  height: 32px;
  border-right: none;
  border-top: none;
  transform: none;
  transition: 0.3s;
  margin-right: 1em;
}

.sec-unit dd a.link-btn:nth-child(1) {
  margin-top: 0px;
}

/* トップページ製品 */
.top-products {
  background: #f5f5f5;
  padding: 70px 0;
}

.top-products .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.sec-products {
  display: flex;
  gap: 30px 4%;
  margin-top: 50px;
  flex-direction: column;
}

.sec-products.only {
  margin-top: 0px;
}

.sec-products.reverse {
  flex-direction: row-reverse;
  flex-direction: column;
}

.sec-products-text {
  width: 100%;
}

.sec-products-image {
  width: 100%;
  border: solid 1px #ccc;
}

.sec-products-image img {
  height: 100%;
  object-fit: cover;
}

.sec-products-text hgroup h3 {
  font-size: 24px;
  color: #111;
  border-bottom: solid 1px #015fc1;
  padding-bottom: 10px;
}

.sec-products-text hgroup p {
  color: #015fc1;
  font-weight: bold;
}

.sec-products .products-introduction {
  margin-top: 30px;
  line-height: 1.7;
  text-align: justify;
}

.sec-products-lineup-heading {
  margin-top: 30px;
  text-align: center;
}

.sec-products-lineup {
  display: flex;
  gap: 50px 4%;
  margin-top: 50px;
  flex-wrap: wrap;
}

.sec-products-lineup-unit {
  width: 100%;
}

.sec-products-lineup-unit a figure {
  border: solid 1px #ccc;
}

.sec-products-lineup-unit a p {
  border: solid 1px #ccc;
  padding: 4px;
  color: #111;
  text-align: center;
  /* height: calc(2lh + 8px); */
  display: grid;
  place-items: center;
  border-radius: 30px;
  margin-top: 10px;
  font-size: 14px;
}

/* トップページ業界 */
.top-industry {
  padding: 70px 0;
}

.top-industry .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.sec-top-industry {
  display: flex;
  gap: 50px 4%;
  margin-top: 70px;
  flex-wrap: wrap;
}

.sec-industry-text {
  width: 100%;
  max-width: 500px;
}

.sec-industry-image {
  width: 100%;
}

.sec-industry-text hgroup h3 {
  font-size: 30px;
  color: #333;
}

.industry-introduction {
  margin-top: 20px;
  text-align: justify;
}

/* スライドレール */
.wrap {
  overflow: hidden;
  display: flex;
  align-items: center;
  height: 200px;
  margin: 0;
}

.slideshow {
  display: flex;
  animation: loop-slide 90s infinite linear 1s both;
}

@keyframes loop-slide {
  from {
    transform: translateX(0);
  }

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

.content {
  width: 300px;
  height: 450px;
}

.slide-paused:hover .slideshow {
  animation-play-state: paused;
}

.content-hover {
  transition: all 0.2s;
  margin-right: 20px;
}

.content-hover:hover {
  opacity: 0.7;
  cursor: pointer;
}

/* トップページニュース */
.top-news {
  padding: 70px 0;
}

.top-news .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

#top .news-list {
  display: flex;
  gap: 30px 4%;
  margin-top: 50px;
  flex-wrap: wrap;
}

#top .news-list li {
  width: 48%;
}

#top .news-list li a figure {
  border: solid 1px #ccc;
}

#top .news-list li a p {
  color: #666;
  font-weight: bold;
  margin-top: 20px;
}

#top .news-list li a h3 {
  font-size: 16px;
  font-weight: normal;
  color: #111;
  text-decoration: underline;
  margin-top: 10px;
}

/* フッター */
.footer-top {
  background: #731115;
  padding: 50px 0;
}

.footer-top .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.footer-top .sec-unit {
  justify-content: space-between;
  flex-wrap: wrap;
}

.footer-top .sec-unit dt hgroup h2 {
  color: #fff;
}

.footer-top .sec-unit dt hgroup p {
  color: #fff;
}

.footer-top .sec-unit dt > p {
  color: #fff;
  margin-top: 30px;
}

.footer-top .sec-unit dd {
  max-width: 500px;
  padding: 0;
  margin-top: 0px;
}

.footer-top .sec-unit dd ul li {
  border-top: solid 1px #fff;
}

.footer-top .sec-unit dd ul li:nth-of-type(2) {
  border-bottom: solid 1px #fff;
}

.footer-top .sec-unit dd ul li a {
  display: flex;
  align-items: center;
  gap: 1em;
}

.footer-top .sec-unit dd ul li a div {
  display: flex;
  padding: 1em 0;
  align-items: center;
  gap: 1em;
  width: 320px;
  margin: auto;
}

.footer-top .sec-unit dd ul li a:hover {
  background: #451518;
  opacity: 1;
}

.footer-top .sec-unit dd ul li a img {
  width: auto;
}

.footer-top .sec-unit dd ul li a p {
  margin: 0;
  color: #fff;
  display: grid;
}

.footer-top .sec-unit dd ul li a p .text {
  font-size: 18px;
}

.footer-top .sec-unit dd ul li a p .tel {
  font-size: 34px;
  font-weight: bold;
  letter-spacing: 0.03em;
}

.footer-bottom {
  padding: 50px 0;
  margin: 0 !important;
}

.footer-bottom .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.footer-bottom .inner .header-logo {
  overflow: hidden;
  margin-right: 0;
  max-width: max-content;
}

.footer-bottom .inner .header-logo a h1 {
  height: 0;
}

.footer_main-navi {
  width: 100%;
  max-width: 1000px;
  margin: 40px auto 0;
}

.footer_main-navi ul {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  gap: 15px;
}

.footer_main-navi ul li {
  /* border-left: solid 1px #aaa; */
  padding: 0 1em;
  flex-grow: 1;
  width: 100%;
}

.footer_main-navi ul li:last-child {
  /* border-right: solid 1px #aaa; */
}

.footer_main-navi .main-menu {
  font-weight: bold;
  color: #111111;
}

.footer_main-navi .main-menu + .main-menu {
  margin-top: 5px;
}

.footer_main-navi .sub-menu {
  padding-left: 0em;
  /* margin-top: 0.7em; */
  color: #111;
  font-size: 14px;
}

.footer_main-navi .sub-menu::before {
  content: "－";
}

.footer_main-navi .grand-menu {
  padding-left: 1em;
  color: #111;
  font-size: 14px;
  font-feature-settings: "palt";
}

.footer_main-navi .grand-menu::before {
  content: "・";
}

.footer-sns {
  display: flex;
  margin-top: 20px;
  justify-content: center;
  gap: 2%;
}

.footer-sns a {
  display: flex;
  align-items: center;
}

.footer-sns a img {
  width: auto;
}

.footer-sns a p {
  color: #222;
  margin-left: 0.5em;
  font-weight: bold;
}

small {
  background: #f5f5f5;
  padding: 8px;
  text-align: center;
  font-size: 12px;
  width: 100%;
  display: block;
}

/* Swiperページネーション共通 */
.swiper-pagination {
  position: relative;
  text-align: center;
  margin-top: 20px;
}

.active-slide-name {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 16px;
  color: #fff;
  white-space: nowrap;
  margin-bottom: 15px;
}

.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0 5px;
  background: #999;
  opacity: 1;
}

.swiper-pagination-bullet-active {
  background: #E31E24;
}

/* 下層ページ共通 */
.under main {
  padding-top: 70px;
}

.page-head {
  padding: 50px 0 50px;
}

.page-head .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

.page-head hgroup h2 {
  font-size: 72px;
  font-family: 'Oswald', serif;
  color: #333;
  line-height: 1;
  margin-top: 15px;
  letter-spacing: 0;
}

.page-head hgroup p {
  font-size: 20px;
  color: #666;
  font-weight: bold;
}

.breadcrumb {
  display: flex;
  margin: 0 auto;
  width: 100%;
  max-width: 1400px;
  padding: 3rem 0 0;
  flex-wrap: wrap;
}

.breadcrumb li + li {
  margin-left: 1em;
}

.breadcrumb li::after {
  content: ">";
  margin-left: 12px;
}

.breadcrumb li:last-child::after {
  content: none;
}

.breadcrumb li a {
  color: #111;
  border-bottom: solid 1px #fff;
  transition: 0.5s;
  display: inline-block;
}

.breadcrumb li a:hover {
  opacity: 0.5;
  transition: 0.5s;
  border-bottom: solid 1px #1A1A1A;
}

hgroup.page-title {
  border-bottom: solid 1px #111;
}

hgroup.page-title h3 {
  font-size: 24px;
  margin-bottom: 10px;
  line-height: 1.2;
}

.under section:last-child {
  margin-bottom: 70px;
}

.under section + section {
  margin-top: 70px;
  margin-bottom: 70px;
}

.under section .inner {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

/* 主要製品ページ */
#category-list {
  background: #f5f5f5;
  margin-top: 0;
  padding: 70px 0;
}

#category-list .inner {
  margin: 0px auto;
}

#category-list .sec-products-lineup {
  margin-top: 50px;
}

#category-list .sec-category-tab {
  display: flex;
  justify-content: space-between;
  gap: 15px 4%;
  flex-wrap: wrap;
}

#category-list .sec-category-tab li {
  width: 100%;
  flex: inherit;
  margin: 0;
}

#category-list .sec-category-tab li a {
  padding: 15px 10px;
  background: #015fc1;
  color: #fff;
  font-weight: bold;
  text-align: center;
  font-size: clamp(15px, 1.5vw, 16px);
  font-feature-settings: "palt";
}

#products-title {
  background: #015fc1;
  margin-top: 0;
}

#products-title .inner {
  padding: 40px 0;
}

#products-title dl {
  display: flex;
  gap: 30px;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
}

#products-title dl dt {
  width: 100%;
}

#products-title dl dt hgroup {
  border-bottom: solid 1px #fff;
  padding-bottom: 0.5em;
}

#products-title dl dt hgroup p {
  color: #fff;
}

#products-title dl dt hgroup h2 {
  color: #fff;
  font-size: 24px;
}

#products-title dl dt ul {
  display: flex;
  gap: 1em;
  margin-top: 1em;
}

#products-title dl dt ul li {
  color: #fff;
  font-weight: bold;
}

#products-title dl dt ul li a {
  color: #fff;
}

#products-title dl dd {
  width: 100%;
  flex-grow: 1;
}

/* 製品メインページ */
.products-main-top dl {
  display: flex;
  gap: 50px 4%;
  flex-direction: column-reverse;
}

.products-main-top dl dt {
  width: 100%;
}

.products-main-top dl dt h3 {
  font-size: 24px;
  line-height: 1.3;
}

.products-main-top dl dt h4 {
  font-size: 18px;
  color: #fff;
  background: #111;
  display: inline-block;
  padding: 0.2em 2em;
  margin-top: 30px;
  margin-bottom: 15px;
}

.products-main-top dl dt p {
  /* padding-left: 1em;
  text-indent: -1em; */
  text-align: justify;
  line-height: 1.6;
  font-size: 14px;
}

.products-main-top dl dd {
  width: 100%;
  position: relative;
}

.products-main-top-swiper2 {
  overflow: hidden;
}

.products-main-top-swiper {
  overflow: hidden;
  width: 90%;
  margin: 20px 5% 0px;
  position: relative;
}

.products-swiper-button-next, .products-swiper-button-prev {
  font-family: swiper-icons;
  font-size: 24px;
  text-transform: none !important;
  letter-spacing: 0;
  font-variant: initial;
  line-height: 1;
  position: absolute;
  bottom: 6.5%;
  z-index: 10;
  cursor: pointer;
  color: #555;
}

.products-swiper-button-next {
  right: 0%;
}

.products-swiper-button-prev {
  left: 0%;
}

.products-swiper-button-next:after {
  content: 'next';
}

.products-swiper-button-prev:after {
  content: 'prev';
}

.products-main-bottom h4 {
  font-size: 18px;
  color: #fff;
  background: #111;
  display: inline-block;
  padding: 0.2em 2em;
  margin-top: 80px;
  margin-bottom: 20px;
}

.products-main-bottom p {
  padding-left: 1em;
  text-indent: -1em;
  text-align: justify;
  line-height: 1.6;
}

/* マーキー（横スクロール）要素 */
.marquee-wrapper {
  width: 100vw;
  margin: 40px calc(50% - 50vw) 0;
}

.marquee {
  display: flex;
  animation: scroll 20s linear infinite;
  gap: 0;
}

.marquee-content {
  display: flex;
  padding: 0;
  margin: 0;
  gap: 10px;
  list-style: none;
  flex-shrink: 0;
}

.marquee-content + .marquee-content {
  margin-left: 10px;
}

.marquee-content li {
  flex-shrink: 0;
  width: 300px;
}

.marquee-content figure {
  margin: 0;
  padding: 0;
}

.marquee-content img {
  width: 100%;
  height: auto;
  display: block;
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }

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

/* 製品リスト */
.products-list {
  display: flex;
  flex-wrap: wrap;
  gap: 50px 4%;
  margin-top: 30px;
}

.products-list li {
  width: 48%;
}

.products-list li a {
}

.products-list li a:hover {
  opacity: 1;
}

.products-list li a figure {
  border: solid 1px #ddd
}

.products-list li a h4 {
  font-size: 16px;
  color: #111;
  margin: 20px 0 10px;
  display: grid;
  place-items: center left;
  /* min-height: 2lh; */
}

.products-list li a p {
  color: #111;
  /* padding-left: 1em;
  text-indent: -1em; */
  text-align: justify;
  font-size: 14px;
}

.products-related-wrap {
  position: relative;
}

.products-related {
  display: flex;
  flex-wrap: wrap;
  margin: 80px auto 0;
  width: 90%;
  height: 100%;
  overflow: hidden;
}

.products-related li a {
  width: 100%;
}

.products-related li a figure {
  border: solid 1px #ccc;
  border-bottom: none;
}

.products-related li a figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.products-related li a h4 {
  font-size: 16px;
  color: #fff;
  background: #111;
  display: grid;
  place-items: center;
  height: calc(2lh + 1lh);
  padding: 0.5lh 1lh;
}

/* 会社概要ページ */
#company #profile {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#company #profile .profile-wrap {
  margin: 30px 0 0;
}

#company #profile .profile-wrap figure {
  margin-top: 30px;
}

#company #profile .profile-wrap h4 {
  font-size: clamp(18px, 2.1vw, 21px);
  margin-bottom: 10px;
}

#company #profile .profile-wrap p {
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.7;
  text-align: justify;
}

#company #profile .profile-wrap p + p {
  margin-top: 1em;
}

#company #profile .profile-wrap p + h4 {
  margin-top: 40px;
  margin-bottom: 10px;
}

#company #profile .profile-wrap .comapny-detail {
  margin: 40px 0 0;
  border-top: solid 1px #aaa;
  border-bottom: solid 1px #aaa;
  padding: 40px;
}

#company #profile .profile-wrap .comapny-detail b {
  font-size: clamp(16px, 1.6vw, 18px);
}

#company #profile .profile-wrap .comapny-detail p {
  font-size: clamp(14px, 1.5vw, 16px);
}

.about-us_inner {
  margin-top: 50px;
}

.about-us_inner dl {
  display: flex;
  flex-wrap: wrap;
}

.about-us_inner dl dt {
  width: 100%;
  background: #015fc1;
  padding: 0.5em 1em;
  color: #fff;
  border-bottom: solid 1px #fff;
  line-height: 1.7;
  font-weight: bold;
}

.about-us_inner dl dd {
  width: 100%;
  background: #fff;
  padding: 0.5em 1em;
  border-bottom: solid 1px #ccc;
  line-height: 1.7;
  font-size: 14px;
}

.about-us_inner dl dd figure {
  display: flex;
  align-items: center;
  /* gap: 1em; */
  flex-direction: column;
}

.about-us_inner dl dd figure img {
  max-width: 280px;
}

/* 会社沿革 */
#company #history dl {
  display: flex;
  flex-wrap: wrap;
  margin: 30px 0 0;
}

#company #history dl dt {
  width: 100%;
  padding: 0.5em;
  background: #015fc1;
  border-bottom: solid 1px #fff;
  color: #fff;
  font-weight: bold;
  display: grid;
  place-items: center;
}

#company #history dl dd {
  width: 100%;
  padding: 0.5em 1em;
  border-bottom: solid 1px #ccc;
  line-height: 1.7;
  font-size: 14px;
}

/* 工場紹介 */
#company #factory {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#company #factory .factory-wrap {
  margin: 30px 0 0;
}

#company #factory .factory-wrap h4 {
  font-size: clamp(20px, 1.6vw, 20px);
  display: flex;
  align-items: center;
  position: relative;
}

#company #factory .factory-wrap h4::before {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: #015fc1;
  margin-right: 1em;
}

#company #factory .factory-wrap p {
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.7;
  text-align: justify;
}

#company #factory .factory-wrap h4 + p {
  margin-top: 1em;
}

#company #factory .factory-wrap p + p {
  margin-top: 1em;
}

#company #factory .factory-wrap p + h4 {
  margin-top: 50px;
}

#company #factory .factory-wrap .factory-img {
  display: flex;
  gap: 30px 4%;
  margin-top: 40px;
  flex-direction: column;
}

/* Q&A */
#qanda .qanda-inner {
  max-width: 1200px;
  margin: auto;
}

#qanda .qanda-wrap {
  margin: 80px 0;
}

#qanda .qanda-wrap p.head-catch {
  font-size: 20px;
  font-weight: bold;
  color: #333;
  margin-bottom: 20px;
  text-align: center;
}

/* お問い合わせフォーム */
#contact-form {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#contact-form .inner {
  max-width: 1200px;
  margin: auto;
}

#contact-form .inner hgroup + p {
  font-size: clamp(14px, 1.6vw, 18px);
  line-height: 1.7;
  text-align: justify;
  margin-top: 1em;
}

#contact-form .inner h3 + p span {
  color: #ee2930;
}

#contact-form .inner dl {
  display: flex;
  flex-wrap: wrap;
  border-top: solid 1px #aaa;
  margin-top: 50px;
}

#contact-form .inner dl dt {
  padding: 0.5rem 1rem;
  width: 100%;
  border-bottom: solid 1px #aaa;
  background: #e6ebf1;
  font-weight: bold;
  display: flex;
  align-items: center;
}

#contact-form .inner dl dt p {
  font-weight: bold;
  line-height: 1.5;
  width: 100%;
}

#contact-form .inner dl dt.required p::after {
  content: "＊";
  color: #ee2930;
  float: right;
}

#contact-form .inner dl dd {
  width: 100%;
  border-bottom: solid 1px #aaa;
  line-height: 1.5;
}

#contact-form.confirmed .inner dl dd {
  padding: 20px;
  background: #fff;
}

#contact-form .inner dl dd.radio-block {
  display: flex;
  gap: 10px;
  padding: 0.5rem 1rem;
  background: #fff;
  width: 100%;
  flex-direction: column;
}

#contact-form .inner dl dd.radio-block label {
  display: flex;
  align-items: center;
  gap: 5px;
}

#contact-form .inner dl dd.radio-block label input {
  display: flex;
  align-items: center;
  gap: 5px;
  width: auto;
}

#contact-form .inner dl dd input {
  display: block;
  line-height: 1.5;
  width: 100%;
  border: none;
  padding: 0.5rem 1rem;
}

#contact-form .inner dl dd textarea {
  display: block;
  line-height: 1.5;
  width: 100%;
  border: none;
  padding: 20px;
}

/* プライバシーボックス */
.privacy-box {
  width: 100%;
  margin: 20px auto 0;
  padding: 20px;
  background-color: #ececec;
  text-align: center;
  margin-top: 30px;
}

.privacy-box p {
  line-height: 1.5;
  font-size: 14px;
}

.privacy-box p a {
  display: inline;
  color: #2e4057;
  font-weight: bold;
}

.privacy-box label {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: 10px;
  cursor: pointer;
  font-size: 14px;
}

/* コンタクトボタンエリア */
.contact-btn-area {
  width: 100%;
  display: flex;
  justify-content: center;
  margin: 30px auto 0;
  gap: 20px;
}

.contact-btn-area input.btn-back {
  display: block;
  width: 47.5%;
  color: #333;
  background-color: #aaa;
  cursor: pointer;
  padding: 20px 0;
  max-width: 320px;
  font-size: 18px;
  font-weight: bold;
  border: none;
}

#contact .contact-btn-area input.btn-send {
  display: block;
  width: 47.5%;
  color: #FFF;
  background-color: #015fc1;
  cursor: pointer;
  padding: 20px 0;
  max-width: 320px;
  font-size: 18px;
  font-weight: bold;
  border: none;
}

.contact-form.thanks .inner a {
  color: #fff;
  background: #015fc1;
  display: grid;
  place-items: center;
  place-content: center;
  height: 60px;
  font-weight: bold;
  max-width: 320px;
  margin: 40px auto 0;
  width: 100%;
}

.contact-form.thanks .inner a span {
  display: block;
  position: relative;
  padding-right: 2em;
  transition: 0.3s;
}

.contact-form.thanks .inner a span:before {
  position: absolute;
  right: 0px;
  top: 8.5px;
  display: block;
  content: "";
  width: 20px;
  height: 1px;
  background: #fff;
  transition: 0.3s;
}

.contact-form.thanks .inner a span:after {
  position: absolute;
  right: 0px;
  top: 5px;
  display: block;
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  transform: rotate(45deg);
  transition: 0.3s;
}

.contact-form.thanks .inner a:hover span:before {
  transform: translateX(5px);
  transition: 0.3s;
}

.contact-form.thanks .inner a:hover span:after {
  transform: translateX(5px) rotate(45deg);
  transition: 0.3s;
}

#contact .page-head .inner figure {
  height: 250px;
  overflow: hidden;
}

/* ニュースページ */
#news #news-list {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#news #news-list .inner {
  margin: auto;
  padding: 0px 0;
  background: #f5f5f5;
}

#news .news-list {
  display: flex;
  flex-direction: column;
  gap: 50px 3%;
  margin-top: 50px;
}

#news .news-list li {
  border-bottom: solid 1px #ccc;
  padding-bottom: 50px;
}

#news .news-list li > div {
  display: flex;
  gap: 30px 5%;
  cursor: inherit;
  flex-direction: column;
}

#news .news-list li > div:hover {
  opacity: 1;
}

#news .news-list li > div .text-wrap {
  width: 100%;
}

#news .news-list li > div figure {
  border: solid 1px #ccc;
  width: 100%;
}

#news .news-list li > div p.date {
  color: #666;
  font-weight: bold;
  margin-top: 0px;
  font-size: 20px;
  line-height: 1;
}

#news .news-list li > div h3 {
  font-size: 16px;
  font-weight: bold;
  color: #111;
  margin-top: 15px;
}

#news .news-list li > div p.sentence {
  font-size: 14px;
  font-weight: normal;
  color: #111;
  margin-top: 5px;
}

#news .news-list li > div a {
  font-size: 16px;
  font-weight: normal;
  color: #ee2930;
  text-decoration: underline;
  margin-top: 0px;
  word-break: break-word;
}

/* 業界ページ */
#industry #industry_example {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

.industry_example-wrap {
  margin-top: 50px;
  background: #fff;
  padding: 30px;
}

.industry_example-wrap + .industry_example-wrap {
  margin-top: 80px;
}

.industry_example-wrap h4 {
  font-size: 32px;
  padding: 0.1em 0.3em;
  background: #ee2930;
  color: #fff;
  width: max-content;
  font-weight: 900;
  display: grid;
  place-items: center;
  max-height: 90px;
  min-height: 90px;
}

.industry_example-wrap p {
  margin-top: 20px;
  line-height: 1.7;
}

.industry_example-wrap ul {
  display: flex;
  gap: 30px 2%;
  margin-top: 25px;
  justify-content: flex-end;
  flex-direction: column;
}

.industry_example-wrap li {
  width: 100%;
}

/* サイトマップ */
#sitemap-menu {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#sitemap-menu .sitemap-menu-wrap {
  width: 94%;
  max-width: 1000px;
  margin: auto;
}

#sitemap-menu .sitemap-menu-wrap ul {
  display: flex;
  flex-wrap: wrap;
  border-radius: 4px;
  gap: 20px 4%;
  justify-content: space-between;
}

#sitemap-menu .sitemap-menu-wrap li {
  width: 100%;
}

#sitemap-menu .sitemap-menu-wrap .main-menu {
  line-height: 1.7;
  font-weight: bold;
  display: inline-block;
  padding-left: 0;
  font-size: 17px;
  color: #222;
  border-bottom: solid 1px #222;
  width: 100%;
  margin-bottom: 5px;
}

#sitemap-menu .sitemap-menu-wrap .main-menu + .main-menu {
  margin-top: 20px;
}

#sitemap-menu .sitemap-menu-wrap .sub-menu {
  padding-left: 1em;
  font-size: 14px;
  color: #222;
  margin: 5px 0;
}

#sitemap-menu .sitemap-menu-wrap .grand-menu {
  padding-left: 2em;
  font-size: 14px;
  color: #222;
  margin: 5px 0;
}

/* プライバシーポリシー */
#privacy-main {
  margin: 0px 0;
  padding: 70px 0;
  background: #f5f5f5;
}

#privacy-main .privacy-main-inner {
  width: 94%;
  max-width: 1000px;
  margin: 0px auto 0px;
}

#privacy-main .privacy-main-inner p.head_text {
  border-bottom: solid 1px #ccc;
  margin-top: 30px;
  line-height: 1.5;
  font-weight: normal;
  padding-bottom: 20px;
  font-size: 14px;
}

#privacy-main .privacy-main-wrap {
  margin-top: 50px;
}

#privacy-main .privacy-main-wrap h4 {
  margin-top: 1em;
  font-size: 16px;
  font-weight: bold;
}

#privacy-main .privacy-main-wrap p {
  margin-left: 1em;
  margin-top: 5px;
  font-size: 14px;
}

#privacy-contact {
  margin: 70px auto 70px;
  text-align: center;
}

#privacy-contact .privacy_inner {
  width: 94%;
  margin: 0px auto;
  max-width: 1000px;
}

#privacy-contact p {
  margin-top: 0px;
  font-size: 14px;
}

#privacy-contact a.link-btn {
  margin: 40px auto 0;
}

/* FAQ */
.qanda-wrap h4 {
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  margin: 80px 0 40px;
  background: #333;
  padding: 5px 1em;
  text-align: center;
}

.faq_list:nth-last-of-type(1) {
  /* border-bottom: solid 1px #666; */
}

.faq_title {
  position: relative;
  cursor: pointer;
  border-top: solid 1px #666;
  padding: 30px 70px 30px 30px;
}

.faq_title p.question {
  margin: 0;
  color: #000;
  font-size: clamp(14px, 1.6vw, 18px);
  display: flex;
  align-items: center;
  gap: 1em;
  font-weight: bold;
}

.faq_title p.question::before {
  content: "Ｑ";
  background: #ee2930;
  /* border-radius: 4px; */
  color: #fff;
  width: 30px;
  height: 30px;
  min-width: 30px;
  display: grid;
  place-items: center;
}

.faq_title.active {
  border-bottom: none;
}

.faq_title::after {
  content: "";
  display: block;
  width: 27px;
  height: 27px;
  background-image: url(../img/about/qanda_open.webp);
  background-size: contain;
  position: absolute;
  background-repeat: no-repeat;
  bottom: 0px;
  top: 0;
  right: 1em;
  margin: auto;
}

.faq_title.active::after {
  content: "";
  display: block;
  width: 27px;
  height: 27px;
  background-image: url(../img/about/qanda_close.webp);
  background-size: contain;
  position: absolute;
  background-repeat: no-repeat;
  bottom: 0px;
  top: 0;
  right: 1em;
  margin: auto;
}

.faq_detail {
  display: none;
  border-top: none;
  padding: 30px 70px 30px 30px;
}

.faq_detail p.answer {
  font-size: clamp(14px, 1.6vw, 18px);
  display: flex;
  /* align-items: center; */
  gap: 1em;
}

.faq_detail p.answer::before {
  content: "Ａ";
  background: #015fc1;
  /* border-radius: 4px; */
  color: #fff;
  width: 30px;
  height: 30px;
  min-width: 30px;
  display: grid;
  place-items: center;
}

.faq_detail.active {
  display: block;
}

/*-自動倉庫-*/
#industry_automation {
}

#industry_automation .inner {
}

.industry_automation-wrap {
}

.industry_automation-wrap h3 {
  font-size: clamp(22px, 2.5vw, 40px);
  /* margin-top: 70px; */
  padding: 0.5em 1em;
  background: #ee2930;
  color: #fff;
  width: 100%;
  font-weight: 900;
  display: grid;
  /* place-items: center; */
  text-align: left;
  z-index: 5;
  position: relative;
  filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, .2));
}

.industry_automation-wrap dl {
  display: flex;
  margin: 0px 0 30px;
  flex-direction: column;
}

.industry_automation-wrap dl dt {
  width: 100%;
}

.industry_automation-wrap dl dt figure {
  margin-top: 0px;
}

.industry_automation-wrap dl dd {
  width: 100%;
}

.industry_automation-wrap dl dd figure {
  margin-left: -120px;
  position: relative;
  z-index: 4;
}

.industry_automation-wrap ul {
  margin: 20px 0 40px;
  /* width: max-content; */
  margin-inline: auto; }

.industry_automation-wrap ul li {
  background: #015fc1;
  color: #fff;
  margin-top: 10px;
  padding: 0.5rem 1rem;
  font-size: 16px;
  font-weight: bold;
  width: 100%;
}

.industry_automation-wrap h4 {
  font-size: clamp(20px, 1.9vw, 24px);
  margin: 40px 0 0;
  text-align: center;
  /* border-bottom: solid 1px #015fc1; */
  /* padding-bottom: 10px; */
}

.industry_automation-wrap p {
  font-size: clamp(14px, 1.6vw, 18px);
}

.sec-category-tab {
  display: flex;
  justify-content: space-between;
  /* margin-bottom: 30px; */
}

.sec-category-tab li {
  flex: 1;
  text-align: center;
  margin: 0 5px;
}

.sec-category-tab li a {
  display: block;
  padding: 15px 10px;
  background-color: #f5f5f5;
  text-decoration: none;
  color: #333;
  transition: all 0.3s ease;
}

.sec-category-tab li.active a, .sec-category-tab li a:hover {
  background-color: #007bff;
  color: white;
}

/* 必要に応じて既存のスタイルを調整 */
.sec-category-tab + .category-content {
  margin-top: 50px;
}

.category-content {
  transition: all 0.3s ease;
}

.only-upper768 {
  display: none;
}

/* お見積もりボタン */
.to-estimate {
  display: none;
}
#products header .to-estimate {
  position: fixed;
  left: 5px;
  bottom: 5px;
  visibility: hidden;
  display: block;
}

#products header .to-estimate a {
  /* width: 65px; */
  height: 65px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  background-color: #ee2930;
  border: solid 1px #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1em 2em;
  border-radius: 40px;
}

#products header .to-estimate.active {
  visibility: visible;
  animation: fade 1s forwards;
}