@charset "UTF-8";
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);
/* 共通スタイル */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
          text-size-adjust: none;
  scroll-behavior: none;
}

html {
  scroll-behavior: smooth;
  height: 100%;
}

html,
body {
  overscroll-behavior-x: none !important;
  touch-action: pan-y;
}

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

a {
  color: #333;
  text-decoration: none;
}

a[href^=tel] {
  text-decoration: none;
}

.anchor {
  display: block;
  padding-top: 75px;
  margin-top: -75px;
}
@media (max-width: 1024px) {
  .anchor {
    padding-top: 30px;
    margin-top: -30px;
  }
}
@media (max-width: 780px) {
  .anchor {
    padding-top: 30px;
    margin-top: -30px;
  }
}

li {
  list-style: none;
}
@media (max-width: 768px) {
  li {
    font-size: 15px;
  }
}

body {
  min-height: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
  scroll-behavior: smooth;
  font-feature-settings: "halt";
  text-align: justify;
  /* 両端揃え */
  text-justify: inter-ideograph;
  /* 両端揃えの種類 */
  word-break: break-all;
}

td {
  text-align: left;
}
@media (max-width: 768px) {
  td {
    font-size: 15px;
  }
}

h2,
h3,
h4,
h5 {
  font-weight: bold;
  font-feature-settings: "palt";
}

p {
  line-height: 1.7;
}
@media (max-width: 768px) {
  p {
    font-size: 15px;
  }
}

.no-tel {
  text-decoration: none !important;
  color: inherit;
  cursor: default;
  pointer-events: none;
}

.custom-sub {
  vertical-align: bottom;
  position: relative;
  bottom: 2px;
  font-size: 0.6em;
}

.en {
  color: #0047ab;
}

.palt {
  font-feature-settings: "palt";
  letter-spacing: 2px;
}

.wave-underline {
  -webkit-text-decoration: underline wavy red;
          text-decoration: underline wavy red;
  text-decoration-thickness: 1px;
  text-shadow: none;
}

/* 780px */
@media (min-width: 768px) {
  .pc {
    display: inline-block;
  }
}
@media (max-width: 768px) {
  .pc {
    display: none;
  }
}

@media (min-width: 768px) {
  .sp {
    display: none;
  }
}
@media (max-width: 768px) {
  .sp {
    display: inline-block;
  }
}

@media (max-width: 768px) {
  .sp-center {
    text-align: center;
  }
}

@media (min-width: 500px) {
  .sp-small {
    display: none;
  }
}
@media (max-width: 500px) {
  .sp-small {
    display: inline-block;
  }
}

/* spのみ表示 */
@media (min-width: 575px) {
  .for-sp {
    display: none;
  }
}
/* 詰め調整 */
@media (max-width: 680px) {
  .tsume {
    letter-spacing: -1.8px;
  }
}

/* youtube 2列 */
.youtube-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1em;
  margin-top: 1em;
  overflow: hidden;
}
@media (max-width: 768px) {
  .youtube-wrapper {
    grid-template-columns: 1fr;
  }
}
.youtube-wrapper .youtube {
  aspect-ratio: 16/9;
  box-sizing: border-box;
  position: relative;
}
.youtube-wrapper .youtube iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.youtube-wrapper .youtube-p {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.youtube-wrapper .youtube-p p {
  text-align: center;
}

/* youtube 3列 */
.youtube-wrapper-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1em;
  margin-top: 1em;
  overflow: hidden;
}
@media (max-width: 768px) {
  .youtube-wrapper-3 {
    grid-template-columns: 1fr;
  }
}
.youtube-wrapper-3 .youtube {
  aspect-ratio: 16/9;
  box-sizing: border-box;
  position: relative;
}
.youtube-wrapper-3 .youtube iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.youtube-wrapper-3 .youtube-p {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.youtube-wrapper-3 .youtube-p p {
  text-align: center;
}

/* ヘッダー */
.logo-layout {
  display: grid;
  -moz-column-gap: 10px;
       column-gap: 10px;
  row-gap: 0;
  grid-template-areas: "logo text01" "logo text02";
  grid-template-rows: 18px 23px;
  grid-template-columns: 55px 1fr;
}
.logo-layout #logo {
  grid-area: logo;
  display: flex;
  justify-content: center;
  align-items: center;
}
.logo-layout #logo img {
  height: 42px;
  width: 42px;
}
.logo-layout .text01 {
  grid-area: text01;
  display: flex;
  align-items: flex-end;
  font-size: 14px;
  line-height: 1;
}
.logo-layout .text01.white {
  color: #fff;
}
.logo-layout .text02 {
  grid-area: text02;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 1.5px;
  display: flex;
  align-items: flex-end;
}
.logo-layout .text02.white {
  color: #fff;
}

.top-navi {
  max-width: 1080px;
  min-height: 58px;
  margin: 0 auto;
  padding: 15px;
  display: flex;
  gap: 5px;
  background-color: #fff;
  box-shadow: 1000px 0 0 #fff, -1000px 0 0 #fff;
}
@media (max-width: 780px) {
  .top-navi {
    padding: 15px;
    margin: 0 auto;
    height: auto;
    min-height: 58px;
  }
}

.top-navi_container:nth-child(1) {
  width: 25%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 1024px) {
  .top-navi_container:nth-child(1) {
    justify-content: flex-start;
    width: 100%;
  }
}
.top-navi_container:nth-child(1) h1 {
  font-size: 0;
}
.top-navi_container:nth-child(1) h1 img {
  max-width: 220px;
  min-width: 220px;
}
@media (max-width: 780px) {
  .top-navi_container:nth-child(1) h1 img {
    max-width: 180px;
    min-width: 180px;
  }
}

.top-navi_container:nth-child(2),
.top-navi_container:nth-child(3) {
  display: block;
  width: 25%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 1024px) {
  .top-navi_container:nth-child(2),
  .top-navi_container:nth-child(3) {
    display: none;
  }
}

.top-navi_container:nth-child(2) {
  width: 27%;
}

.top-navi_container:nth-child(4) {
  width: 20%;
  display: flex;
  justify-content: right;
  align-items: center;
  margin-left: auto;
}
@media (max-width: 1024px) {
  .top-navi_container:nth-child(4) {
    width: 25%;
    margin-right: 60px;
  }
}
@media (max-width: 780px) {
  .top-navi_container:nth-child(4) {
    display: none;
  }
}

.contact_button {
  width: 80%;
  background-color: #0047ab;
  border: 1px solid #0047ab;
  border-radius: 60px;
  padding: 5px;
  text-align: center;
}
.contact_button a {
  color: #fff;
}
.contact_button:hover {
  background-color: #fff;
  color: #0047ab;
}
.contact_button:hover a {
  color: #0047ab;
}

p.address {
  font-size: 14px;
  line-height: 1.7;
  margin-left: auto;
}

/* g-navi */
.g-navi_container {
  display: block;
  width: 100%;
  background-color: #fff;
  position: sticky;
  top: 0;
  z-index: 100;
}
@media (max-width: 1024px) {
  .g-navi_container {
    display: none;
  }
}

.g-navi {
  display: flex;
  justify-content: space-between;
  max-width: 1080px;
  margin: 0 auto;
  z-index: 20;
}

.g-navi li {
  width: 20%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  font-size: 14.5px;
  line-height: 1.7;
  font-weight: 400;
  padding: 15px 0;
}

.g-navi li a {
  text-align: center;
}

.g-navi li a.underline {
  display: inline-block;
  position: relative;
  text-decoration: none;
}

.g-navi li a.underline::after {
  position: absolute;
  content: "";
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 3px;
  background: #3f51b5;
  transition: all 0.2s ease 0s;
}

.g-navi li a.underline:hover {
  cursor: pointer;
}

.g-navi li a.underline:hover::after {
  width: 100%;
}

/* 常に下線を表示するスタイル */
.g-navi li a.always-underline {
  text-decoration: none;
  position: relative;
}

.g-navi li a.always-underline::after {
  position: absolute;
  content: "";
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 3px;
  background: #3f51b5;
}

/* サブメニュー（各製品ページへのリンク） */
#sub-menu {
  position: absolute;
  top: 78px;
  left: 0%;
  width: 100%;
  height: auto;
  padding: 1.5% 1% 0.75%;
  background-color: #fff;
  border-radius: 5px;
  display: flex;
  row-gap: 8px;
  -moz-column-gap: 12px;
       column-gap: 12px;
  opacity: 0;
  justify-content: flex-start;
  flex-wrap: wrap;
  box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.3);
  transition: opacity 0.5s;
  pointer-events: none;
  /* リンクを無効化 */
}
#sub-menu li {
  width: calc(25% - 10px);
  margin-bottom: 10px;
  border: 1px solid #ccc;
  background-color: #fff;
  border-radius: 10px;
  padding: 0;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.3);
}
@media (max-width: 1280px) {
  #sub-menu li {
    width: calc(33% - 5px);
  }
}
#sub-menu li:hover {
  box-shadow: inset 0px 0px 1px 1px rgba(0, 0, 0, 0.3);
  background-color: #0047ab;
}
#sub-menu li:hover .p-name {
  color: #fff;
  font-weight: bold;
}
#sub-menu li:hover .c-name {
  color: #fff;
}
#sub-menu li a {
  width: 100%;
  height: 100px;
  text-align: left;
  display: grid;
}
#sub-menu li a .grid-container {
  display: grid;
  row-gap: 5px;
  grid-template-areas: "img p-name" "img c-name";
  grid-template-rows: 50px 2fr;
  grid-template-columns: 100px 2fr;
}
#sub-menu li a .img {
  grid-area: img;
  padding: 10px;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
}
#sub-menu li a .img img {
  -o-object-fit: contain;
     object-fit: contain;
  width: auto;
  height: 80px;
}
#sub-menu li a .p-name {
  grid-area: p-name;
  color: #333;
  font-size: 1em;
  display: flex;
  align-items: flex-end;
}
#sub-menu li a .c-name {
  grid-area: c-name;
  color: #3f51b5;
  font-size: 0.9em;
}

/* サブビジュアル */
.subvisual img {
  -o-object-fit: cover;
     object-fit: cover;
  min-height: 200px;
}

/* パンくずリスト */
#breadcrumb {
  max-width: 1080px;
  margin: 1em auto 2em;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  list-style: none;
  font-size: 15px;
  font-feature-settings: "palt";
}
#breadcrumb li {
  position: relative;
  display: flex;
  align-items: flex-start;
  line-height: 1.5;
  text-align: start;
}
#breadcrumb li::after {
  font-family: "Material Icons";
  content: "\e5cc";
  margin: 0 0.6em;
  color: #999;
  transform: translateY(1px);
}
#breadcrumb li:last-child a {
  color: #333;
}
#breadcrumb li:last-child::after {
  content: "";
  /* 最後の要素の記号を非表示にする */
}
#breadcrumb li a {
  color: #0047ab;
}
#breadcrumb li a.bread-home {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-home::before {
  font-family: "Material Icons";
  content: "\e88a";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-product {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-product::before {
  font-family: "Material Icons";
  content: "\e574";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-catalog {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-catalog::before {
  font-family: "Material Icons";
  content: "\e415";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-map {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-map::before {
  font-family: "Material Icons";
  content: "\e55b";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-privacy {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-privacy::before {
  font-family: "Material Icons";
  content: "\e8e8";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-compay {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-compay::before {
  font-family: "Material Icons";
  content: "\ea40";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}
#breadcrumb li a.bread-mail {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.1em;
}
#breadcrumb li a.bread-mail::before {
  font-family: "Material Icons";
  content: "\e158";
  position: absolute;
  left: -1.1em;
  vertical-align: middle;
  line-height: 1;
  transform: translateY(0.75px);
}

#latest-news {
  position: absolute;
  height: auto;
  display: flex;
  align-items: center;
  border-top: 1px solid #0047ad;
  border-bottom: 1px solid #0047ad;
  bottom: 0;
  right: 0;
  z-index: 10;
}
@media (max-width: 750px) {
  #latest-news {
    left: 0;
    bottom: -57px;
    width: 100%;
  }
}
@media (max-width: 575px) {
  #latest-news {
    flex-direction: column;
    justify-content: flex-start;
    bottom: -57px;
    width: 100%;
  }
}
#latest-news h2 {
  width: 20%;
  height: 56px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #0047ab;
  color: #fff;
  font-size: 16px;
  padding: 1em 10px;
}
@media (max-width: 575px) {
  #latest-news h2 {
    width: 100%;
    height: 16px;
    font-size: 14px;
    padding-top: 10px;
  }
}
#latest-news a {
  display: flex;
  width: 350px;
  height: 56px;
  background-color: #fff;
  padding: 0 1em;
  gap: 10px;
  color: #0047ab;
}
#latest-news a p {
  display: flex;
  align-items: center;
}
@media (max-width: 575px) {
  #latest-news a {
    width: 100%;
    align-items: center;
    justify-content: end;
    gap: 16px;
    height: 30px;
  }
  #latest-news a p {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #latest-news a p time {
    padding-left: 0.5em;
    /* 括弧の空き調整 */
  }
}
@media (max-width: 575px) {
  #latest-news a div {
    gap: 5px;
  }
}

.middle-title-toppage {
  width: 100%;
  margin: 0 auto;
  text-align: center;
  padding: 3em 0 1.75em;
  color: #333;
}
@media (max-width: 750px) {
  .middle-title-toppage {
    padding-top: 90px;
  }
}
@media (max-width: 575px) {
  .middle-title-toppage {
    padding-top: 80px;
    padding-bottom: 30px;
  }
}
.middle-title-toppage h2 {
  font-size: 24px;
  line-height: 1.8;
  margin-bottom: 0.2em;
  display: block;
  width: 100%;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1024px) {
  .middle-title-toppage h2 {
    font-size: 20px;
    line-height: 1.7;
  }
}
@media (max-width: 780px) {
  .middle-title-toppage h2 {
    font-size: 18px;
    line-height: 1.6;
  }
}
.middle-title-toppage h2 .en {
  font-size: 16px;
}
.middle-title-toppage p {
  font-size: 18px;
  line-height: 1.8;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1024px) {
  .middle-title-toppage p {
    font-size: 14px;
  }
}
@media (max-width: 600px) {
  .middle-title-toppage p {
    font-size: 14px;
  }
}

.middle-title {
  width: 100%;
  margin: 0 auto;
  text-align: center;
  padding: 1em 0 0.75em;
  color: #333;
}
@media (max-width: 980px) {
  .middle-title {
    padding: 1em;
  }
}
@media (max-width: 780px) {
  .middle-title {
    padding: 0;
  }
}
.middle-title h2 {
  font-size: 28px;
  line-height: 1.8;
  margin-bottom: 0.2em;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1024px) {
  .middle-title h2 {
    font-size: 24px;
  }
}
@media (max-width: 768px) {
  .middle-title h2 {
    font-size: 22px;
  }
}
@media (max-width: 680px) {
  .middle-title h2 {
    font-size: 20px;
  }
}
.middle-title h2 .en {
  font-size: 16px;
  position: relative;
  top: -5px;
}
@media (max-width: 768px) {
  .middle-title h2 .en {
    top: 0;
  }
}
.middle-title p {
  font-size: 18px;
  line-height: 1.8;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1024px) {
  .middle-title p {
    font-size: 14px;
  }
}
@media (max-width: 600px) {
  .middle-title p {
    font-size: 14px;
  }
}

.greeting-wrapper {
  display: flex;
  max-width: 1080px;
  margin: 0 auto;
  gap: 40px;
  padding: 1em;
  margin-top: 50px;
}
@media (max-width: 780px) {
  .greeting-wrapper {
    flex-direction: column;
    margin-top: 0;
  }
}
.greeting-wrapper .image-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40%;
}
@media (max-width: 780px) {
  .greeting-wrapper .image-wrapper {
    width: 100%;
  }
}
.greeting-wrapper .image-wrapper img {
  width: 395px;
  height: auto;
}
@media (max-width: 780px) {
  .greeting-wrapper .image-wrapper img {
    width: 100%;
  }
}
.greeting-wrapper .greeting-text-area {
  max-width: 550px;
  width: 60%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
@media (max-width: 780px) {
  .greeting-wrapper .greeting-text-area {
    margin: 0 auto;
    width: 100%;
  }
}
.greeting-wrapper .greeting-text-area .middle-title {
  padding-top: 0;
}
.greeting-wrapper .greeting-text-area p {
  width: 100%;
  margin-bottom: 2em;
  line-height: 1.8;
}
.greeting-wrapper .greeting-text-area p.right {
  width: 100%;
  text-align: right;
}

.profile-container {
  width: 100%;
  margin: 30px 0 0;
  background-color: #2b63ad;
  min-height: 100px;
  padding: 60px;
}
@media (max-width: 780px) {
  .profile-container {
    padding: 10px;
  }
}
.profile-container .table-wrapper {
  max-width: 1080px;
  margin: 0 auto;
  padding: 60px 50px;
  height: auto;
  background-color: #fff;
}
@media (max-width: 780px) {
  .profile-container .table-wrapper {
    padding: 20px 10px;
  }
}
.profile-container .table-wrapper table {
  width: 100%;
  border-collapse: collapse;
}
.profile-container .table-wrapper table td {
  text-align: left;
  padding: 10px;
  margin: 0;
  border-bottom: 1px solid #ddd;
  line-height: 1.8;
}
.profile-container .table-wrapper table td:nth-child(odd) {
  width: 20%;
  border-bottom: 1px solid #ddd;
}
@media (max-width: 780px) {
  .profile-container .table-wrapper table td:nth-child(odd) {
    width: 100%;
    display: block;
    background-color: #2b63ad;
    color: #fff;
  }
}
.profile-container .table-wrapper table td:nth-child(even) {
  width: 80%;
}
@media (max-width: 780px) {
  .profile-container .table-wrapper table td:nth-child(even) {
    width: 100%;
    display: block;
  }
}
.profile-container .table-wrapper table td ul {
  padding-left: 1.5em;
}
.profile-container .table-wrapper table td ul li {
  list-style: disc;
}

.company-product-index {
  padding: 250px 0;
  max-width: 1080px;
  margin: 0 auto;
}
.company-product-index:last-child {
  margin-bottom: 0;
}
.company-product-index h2.company-name {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #0047ab;
  font-size: 24px;
  text-align: center;
  margin-bottom: 15px;
}
.company-product-index h3 {
  font-size: 20px;
  font-weight: 700;
  padding: 15px 30px;
  margin-bottom: 25px;
  border-left: 5px solid #2589d0;
  border-bottom: 3px solid #d2d2d2;
  background-color: #f2f2f2;
  color: #333333;
}
@media (max-width: 680px) {
  .company-product-index h3 {
    font-size: 18px;
  }
}
.company-product-index h3.privacy-heading {
  background-color: #eee;
  font-size: 18px;
  color: #333;
}
.company-product-index h3.privacy-heading:nth-of-type(n + 2) {
  margin-top: 2em;
}
.company-product-index .privacy-p {
  width: 100%;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
.company-product-index .google-url {
  word-break: break-all;
}
.company-product-index .google-url p {
  margin-bottom: 0.5em;
}
.company-product-index .privacy-ul li {
  list-style: disc;
  margin-left: 2em;
  margin-bottom: 0.5em;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}

.main-container {
  background: linear-gradient(rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6)), url("../img/bg.webp");
  background-blend-mode: screen;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  margin: 0;
  padding: 0;
}
@media (max-width: 768px) {
  .main-container {
    background: none;
  }
}

.company-product-index {
  width: 100%;
  min-height: 100px;
  padding: 0 1em 1em;
  margin-top: 2em;
  margin-top: 0;
}
.company-product-index .rental-container {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.company-product-index .rental-container .dl-button {
  width: 255px;
}
@media (max-width: 1050px) {
  .company-product-index .rental-container {
    flex-direction: column;
    margin: 20px 0;
  }
  .company-product-index .rental-container .dl-button {
    margin: 0 !important;
    width: 100%;
  }
}
@media (max-width: 900px) {
  .company-product-index {
    padding-top: 1em;
  }
}
.company-product-index h2.company-name {
  font-size: 24px;
  line-height: 1.8;
  color: #333;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0.7em 0;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1024px) {
  .company-product-index h2.company-name {
    font-size: 20px;
  }
}
@media (max-width: 600px) {
  .company-product-index h2.company-name {
    font-size: 16px;
  }
}
.company-product-index p {
  margin-bottom: 1em;
}
.company-product-index .items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  /* 常に4列固定 */
  gap: 20px;
  margin-bottom: 3em;
}
@media (max-width: 1024px) {
  .company-product-index .items {
    grid-template-columns: repeat(3, 1fr);
    /* 中画面で3列固定 */
  }
}
@media (max-width: 768px) {
  .company-product-index .items {
    grid-template-columns: repeat(2, 1fr);
    /* 小画面で2列固定 */
    gap: 10px;
    margin-bottom: 1em;
  }
}
.company-product-index .item {
  padding: 10px;
  background-color: rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border: 2px rgba(255, 255, 255, 0.2) solid;
  border-bottom: 1px rgba(40, 40, 40, 0.35) solid;
  border-right: 1px rgba(40, 40, 40, 0.35) solid;
  box-shadow: 0 0 4px #ccc;
}
@media (max-width: 768px) {
  .company-product-index .item {
    padding: 8px;
  }
}
.company-product-index .item:hover {
  box-shadow: 0 0 6px #aaa;
}
.company-product-index a:hover h4 {
  color: #0047ab;
}
.company-product-index .img-wrapper {
  overflow: visible;
  background-color: #c0e5f6;
  margin-bottom: 8px;
  padding: 10px;
  width: auto;
  height: 230px;
}
@media (max-width: 768px) {
  .company-product-index .img-wrapper {
    height: 180px;
  }
}
@media (max-width: 640px) {
  .company-product-index .img-wrapper {
    height: 150px;
  }
}
@media (max-width: 480px) {
  .company-product-index .img-wrapper {
    height: 120px;
  }
}
.company-product-index .img-wrapper img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  transition: transform 0.3s ease;
  transform: scale(1);
}
.company-product-index .img-wrapper img:hover {
  transform: scale(1.05);
}
.company-product-index h4 {
  font-size: 16px;
  line-height: 1.4;
  font-weight: normal;
  text-align: left;
  font-feature-settings: "palt";
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 900px) {
  .company-product-index h4 {
    font-size: 15px;
  }
}
.company-product-index .catalog-items {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  padding: 0 10px;
  gap: 20px;
  margin-bottom: 2em;
}
@media (max-width: 650px) {
  .company-product-index .catalog-items {
    padding: 0;
  }
}
.company-product-index .catalog-items .catalog-item {
  width: calc(33% - 11px);
}
@media (max-width: 900px) {
  .company-product-index .catalog-items .catalog-item {
    width: calc(50% - 10px);
  }
}
@media (max-width: 650px) {
  .company-product-index .catalog-items .catalog-item {
    width: calc(100% - 5px);
  }
}
.company-product-index .catalog-items .catalog-item .button {
  padding: 10px;
  width: 100%;
  min-height: 75px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fcd700;
  border: 1px solid #fcd700;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: color 0.3s ease;
}
.company-product-index .catalog-items .catalog-item .button:hover {
  color: #fcd700;
}
.company-product-index .catalog-items .catalog-item .button:hover p {
  color: #0047ab;
  font-weight: 700;
}
.company-product-index .catalog-items .catalog-item .button:hover p::after {
  transform: translateX(3px);
  color: #0047ab;
  font-weight: 700;
}
.company-product-index .catalog-items .catalog-item .button:hover::before {
  transform: scaleX(1);
}
.company-product-index .catalog-items .catalog-item .button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.company-product-index .catalog-items .catalog-item .button p {
  display: inline-flex;
  align-items: center;
  text-align: center;
  gap: 0.5em;
  font-weight: bold;
  color: #333;
  margin-bottom: 0;
  z-index: 10;
  transition: transform 0.3s ease;
}
.company-product-index .catalog-items .catalog-item .button p::after {
  position: absolute;
  right: 20px;
  font-family: "Material Icons";
  content: "\e5e1";
  transition: transform 0.3s ease;
  font-size: 16px;
  color: #333;
  z-index: 10;
}

.product-index {
  padding: 30px 0 30px;
  background-color: #2b63ad;
}
@media (max-width: 480px) {
  .product-index {
    padding-bottom: 5px;
  }
}
.product-index h2.toppage-product-index {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  line-height: 1;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  font-size: 30px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 10px;
  text-shadow: 1px 1px 4px #333, 1px 1px 4px #333, 1px 1px 4px #333, 1px 1px 4px #333, 1px 1px 4px #333, 1px 1px 4px #333;
}
@media (max-width: 780px) {
  .product-index h2.toppage-product-index {
    font-size: 24px;
  }
}
.product-index p.en {
  color: #fcd700;
  text-align: center;
  margin-bottom: 20px;
  font-weight: bold;
}

/* canvas */
#particles-js {
  width: 100%;
  height: 100%;
  position: relative;
}
#particles-js canvas {
  position: absolute;
  background-color: #0047ab;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  z-index: 0;
}

.cards-container {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  max-width: 1024px;
  margin: 0 auto;
  padding: 10px;
  padding-top: 80px;
}
@media (max-width: 1024px) {
  .cards-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .cards-container {
    gap: 10px;
  }
}
.cards-container .link-to-all-products {
  width: 310px;
  position: absolute;
  left: 50%;
  top: -5px;
  transform: translateX(-50%);
  background-color: #fcd700;
  color: #333;
  font-size: 17px;
  text-align: center;
  font-weight: 500;
  line-height: 1.3;
  text-shadow: none;
  padding: 20px;
  animation: anime-big-small 1s ease 0s infinite alternate;
}
.cards-container .link-to-all-products:hover {
  color: #fcd700;
}
.cards-container .link-to-all-products:hover p {
  color: #0047ab;
  font-weight: 700;
}
.cards-container .link-to-all-products:hover p::after {
  transform: translateX(3px);
  color: #0047ab;
}
.cards-container .link-to-all-products:hover::before {
  transform: scaleX(1);
}
.cards-container .link-to-all-products::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.cards-container .link-to-all-products p {
  margin: 0;
  position: relative;
  transition: transform 0.3s ease;
  color: #333;
  font-size: 16px;
  font-weight: 600;
}
@media (max-width: 768px) {
  .cards-container .link-to-all-products p {
    font-size: 14px;
  }
}
.cards-container .link-to-all-products p::after {
  font-family: "Material Icons";
  content: "\e5e1";
  font-size: 16px;
  color: #333;
  transition: transform 0.3s ease;
  position: absolute;
  right: 10px;
}
@media (max-width: 768px) {
  .cards-container .link-to-all-products p::after {
    font-size: 14px;
  }
}
@keyframes anime-big-small {
  from {
    transform: translateX(-50%) scale(0.95, 0.95);
  }
  to {
    transform: translateX(-50%) scale(1, 1);
  }
}

.card {
  background-color: rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  border: 2px rgba(255, 255, 255, 0.5) solid;
  border-bottom: 2px rgba(40, 40, 40, 0.35) solid;
  border-right: 2px rgba(40, 40, 40, 0.35) solid;
  padding: 30px;
  transition: transform 0.3s ease;
  display: grid;
  grid-template: subgrid;
  border-radius: 0px;
}
@media (max-width: 1024px) {
  .card {
    padding: 30px;
  }
}
@media (max-width: 600px) {
  .card {
    padding: 10px;
  }
}
.card h3 {
  color: #333;
  font-weight: 800;
  text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}
.card p {
  color: #333;
  text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff;
}
.card .button p {
  color: #333;
  text-shadow: none;
}
.card .img-wrapper {
  margin-bottom: 1em;
  overflow: visible;
  height: 195px;
}
@media (max-width: 600px) {
  .card .img-wrapper {
    margin-bottom: 5px;
    height: 150px;
  }
}
.card .img-wrapper img {
  display: block;
  max-width: 100%;
  transition: transform 0.3s ease;
  transform: scale(1);
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}
.card .img-wrapper img:hover {
  transform: scale(1.1);
}
.card h3 {
  text-align: center;
  font-size: 18px;
  font-weight: 600;
}
@media (max-width: 680px) {
  .card h3 {
    font-size: 16px;
  }
}
.card p {
  text-align: center;
  font-size: 14px;
}
@media (max-width: 600px) {
  .card p {
    font-size: 12px;
  }
}
.card .button {
  display: grid;
  grid-template: subgrid;
  width: 100%;
  text-align: center;
  text-decoration: none;
  line-height: 60px;
  position: relative;
  background-color: #fcd700;
  border: 2px solid #fcd700;
  margin: 10px auto 0;
  padding: 12px 0;
  color: #fff;
  cursor: pointer;
  overflow: hidden;
  transition: color 0.3s ease;
}
.card .button:hover {
  color: #fcd700;
}
.card .button:hover p {
  color: #0047ab;
  font-weight: 700;
}
.card .button:hover p::after {
  transform: translateX(3px);
  color: #0047ab;
}
.card .button:hover::before {
  transform: scaleX(1);
}
.card .button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.card .button p {
  margin: 0;
  position: relative;
  transition: transform 0.3s ease;
  color: #333;
  font-size: 16px;
  font-weight: 600;
}
@media (max-width: 768px) {
  .card .button p {
    font-size: 14px;
  }
}
.card .button p::after {
  font-family: "Material Icons";
  content: "\e5e1";
  font-size: 16px;
  color: #333;
  transition: transform 0.3s ease;
  position: absolute;
  right: 10px;
}
@media (max-width: 768px) {
  .card .button p::after {
    font-size: 14px;
  }
}

/* ボタン */
.button {
  display: block;
  width: 230px;
  text-align: center;
  text-decoration: none;
  line-height: 60px;
  position: relative;
  background-color: #fcd700;
  border: 2px solid #fcd700;
  margin: 10px auto 0;
  padding: 8px 0;
  color: #fff;
  cursor: pointer;
  overflow: hidden;
  transition: color 0.3s ease;
}
.button:hover {
  color: #fcd700;
}
.button:hover p {
  color: #0047ab;
  font-weight: 500;
  z-index: 100;
}
.button:hover p::after {
  transform: translateX(3px);
  color: #0047ab;
  font-weight: 500;
}
.button:hover::before {
  transform: scaleX(1);
}
.button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.button p {
  margin: 0;
  transition: transform 0.3s ease;
}
.button p::after {
  font-family: "Material Icons";
  content: "\e5e1";
  font-size: 16px;
  color: #333;
  transition: transform 0.3s ease;
  position: absolute;
  right: 20px;
}

#news {
  display: flex;
  max-width: 1024px;
  margin: 0 auto;
  padding: 1em 0 1em;
}
@media (max-width: 780px) {
  #news {
    flex-direction: column;
  }
}
#news .news-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0;
}
#news .news-title h2 {
  min-width: 300px;
  flex-grow: 0;
  font-size: 30px;
  color: #333;
  text-align: center;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 768px) {
  #news .news-title h2 {
    font-size: 24px;
  }
}
#news .news-title p {
  text-align: center;
  color: #0047ab;
  font-weight: bold;
}
#news #news-more {
  flex-grow: 1;
}
#news .news-list {
  flex-grow: 1;
  padding: 10px 15px 10px 15px;
}
@media (max-width: 1000px) {
  #news .news-list {
    padding: 10px 30px 10px 30px;
  }
}
#news .news-list li {
  border-bottom: 1px solid #ccc;
  padding: 10px 0;
  display: none;
}
#news .news-list li:nth-child(-n+5) {
  display: block;
}
#news .news-list li a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #333;
  font-size: 16px;
}
#news .news-list li a:hover::after {
  position: absolute;
  right: 0;
  color: #0047ab;
  font-weight: bold;
}
#news .news-list li a:hover p:nth-of-type(2) {
  color: #0047ab;
  text-decoration: underline;
  font-weight: bold;
}
#news .news-list li a::after {
  position: absolute;
  right: 10px;
  top: 5px;
  font-family: "Material Icons";
  content: "\e5e1";
  /* アイコンコード */
  transition: all 0.2s ease-in-out;
}
@media (max-width: 1000px) {
  #news .news-list li a::after {
    top: 22px;
    right: 10px;
  }
}
#news .news-list li a img {
  max-width: 200px;
}
@media (max-width: 1000px) {
  #news .news-list li a {
    flex-direction: column;
    align-items: flex-start;
  }
}
#news .news-list li a p:nth-of-type(1) {
  display: flex;
  align-items: center;
}
#news .news-list li a p:nth-of-type(2) {
  border-left: 1px solid #ccc;
  padding-left: 10px;
  margin: 0;
  font-feature-settings: "palt";
}
@media (max-width: 1000px) {
  #news .news-list li a p:nth-of-type(2) {
    border-left: none;
    padding-left: 0;
  }
}
#news .news-list li a .cat {
  display: inline-flex;
  background-color: #0047ab;
  color: #fff;
  font-size: 11px;
  padding: 1px 5px 2px;
  margin-left: 10px;
}

.show-more {
  color: #0047ab;
  font-size: 0.9em;
  border: none;
  cursor: pointer;
  text-align: center;
}
.show-more::before {
  content: "▼ ";
}
.show-more:hover {
  text-decoration: underline;
}

.contact {
  width: 100%;
  padding: 0 20px;
  min-height: 350px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1em;
  background-image: url("../img/product_bg.webp");
  background-size: cover;
  background-position: bottom;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.2);
  background-blend-mode: overlay;
}
.contact h2 {
  font-size: 26px;
  font-weight: 400;
  text-align: center;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1000px) {
  .contact h2 {
    font-size: 20px;
  }
}
.contact .contact-button {
  background-color: #0047ab;
  font-size: 20px;
  font-weight: 500;
  padding: 1em 2em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  position: relative;
  overflow: hidden;
  color: #fff;
  border: 2px solid #fff;
  cursor: pointer;
  transition: color 0.3s ease;
}
@media (max-width: 1000px) {
  .contact .contact-button {
    font-size: 16px;
    padding: 1em;
  }
}
.contact .contact-button:hover {
  color: #0047ab;
}
.contact .contact-button:hover a {
  color: #0047ab !important;
  font-weight: 700;
  z-index: 10;
}
.contact .contact-button:hover::before {
  transform: scaleX(1);
}
.contact .contact-button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.contact .contact-button a {
  color: #fff;
}
.contact .contact-button p {
  position: relative;
  z-index: 1;
  margin: 0;
}
.contact .contact-button::after {
  font-family: "Material Icons";
  content: "\e5e1";
  font-size: 16px;
  color: #fff;
  font-weight: bold;
  transition: transform 0.3s ease;
  position: relative;
  z-index: 1;
}
.contact .contact-button:hover::after {
  transform: translateX(0.3em);
  color: #0047ab;
}

.contact-contactpage {
  width: 100%;
  padding: 0 20px;
  min-height: 350px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 1em;
  margin: 1em 0 0;
  background-image: url("../img/product_bg.webp");
  background-size: cover;
  background-position: 50%;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.2);
  position: relative;
}
.contact-contactpage::after {
  content: "";
  background-color: rgba(255, 255, 255, 0.5);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.contact-contactpage h2 {
  z-index: 2;
  font-size: 26px;
  font-weight: 500;
  text-align: center;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1000px) {
  .contact-contactpage h2 {
    font-size: 22px;
  }
}
.contact-contactpage p {
  z-index: 2;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1000px) {
  .contact-contactpage p {
    font-size: 16px;
    text-align: center;
  }
}
.contact-contactpage p.telephone {
  font-size: 27px;
  color: #2b63ad;
  text-align: center;
  line-height: 2;
  font-weight: bold;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 1000px) {
  .contact-contactpage p.telephone {
    font-size: 20px;
  }
}

/* 個別製品ページ */
.dl-button {
  padding: 10px;
  width: 355px;
  min-height: 75px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fcd700;
  border: 1px solid #fcd700;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-left: auto;
  margin-bottom: 1em;
  position: relative;
  /* ボタン内テキストとアイコンのスタイリング */
}
@media (max-width: 768px) {
  .dl-button {
    margin: 1em auto;
    min-height: 65px;
    width: 100%;
  }
}
.dl-button.rental {
  background-color: #DF1312;
  border: 1px solid #DF1312;
}
.dl-button.rental p {
  color: #fff;
}
.dl-button.rental p::after {
  color: #fff;
}
.dl-button::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
  z-index: 0;
}
.dl-button:hover {
  background-color: #fff;
  color: #0047ab;
}
.dl-button:hover::before {
  transform: scaleX(1);
}
.dl-button:hover p {
  color: #0047ab;
}
.dl-button a {
  color: #333 !important;
}
.dl-button p {
  color: #333;
  display: inline-flex;
  align-items: center;
  text-align: center;
  gap: 0.5em;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .dl-button p {
    font-size: 17px;
  }
}
.dl-button p::after {
  position: absolute;
  right: 20px;
  font-family: "Material Icons";
  content: "\e5e1";
  transition: transform 0.3s ease;
  font-size: 16px;
  color: #333;
  z-index: 1;
}
.dl-button:hover p::after {
  transform: translateX(0.3em);
  color: #0047ab;
}

.dl-button-center {
  margin: 0 auto 30px;
}
@media (max-width: 768px) {
  .dl-button-center {
    width: calc(100% - 2em);
  }
}

/* 個別製品ページ　*/
.product-intro {
  display: flex;
  align-items: center;
  gap: 3%;
  position: relative;
}
@media (max-width: 780px) {
  .product-intro {
    flex-direction: column;
  }
}
.product-intro .discon {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #222;
  color: #fff;
  border: 2px solid #fff;
  font-weight: 800;
  letter-spacing: 3px;
  padding: 0.5em 1em;
  z-index: 10;
}
.product-intro .new {
  position: absolute;
  top: 0;
  left: 0;
  background-color: red;
  color: #fff;
  border: 2px solid #fff;
  font-weight: 800;
  letter-spacing: 3px;
  padding: 0.5em 1em;
  z-index: 10;
}

.thumbs {
  width: 47%;
}
@media (max-width: 780px) {
  .thumbs {
    width: 100%;
  }
}

.lead {
  width: 50%;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 50px;
}
.lead.relevant {
  grid-template-rows: 1fr;
}
@media (max-width: 992px) {
  .lead {
    width: 100%;
    margin-top: 20px;
  }
}
.lead h2 {
  font-size: 22px;
  line-height: 1.7;
  font-weight: 500;
  margin-bottom: 0.4em;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 992px) {
  .lead h2 {
    font-size: 20px;
    width: 100%;
  }
}
@media (max-width: 768px) {
  .lead h2 {
    font-size: 16px;
    margin-bottom: 0.5em;
  }
}
.lead .br-span {
  display: block;
  margin-top: 0.3em;
}
.lead ul {
  margin-top: 0.5em;
}
.lead ul li {
  margin-left: 2em;
  list-style: disc;
  font-weight: normal;
  font-size: 16px;
}
@media (max-width: 768px) {
  .lead ul li {
    font-size: 14px;
  }
}
.lead ul.kome li {
  list-style-type: "※";
  margin-left: 1em;
  padding-left: 0.3em;
  font-size: 16px;
}
@media (max-width: 768px) {
  .lead ul.kome li {
    font-size: 14px;
  }
}
.lead p {
  font-size: 16px;
  margin-top: 0.75em;
  margin-bottom: 0.75em;
  border-left: 5px solid #2589d0;
  padding: 1em;
  background-color: #e9f2ff;
}
@media (max-width: 768px) {
  .lead p {
    font-size: 0.9em;
    margin-top: 0.5em;
  }
}
.lead .successor {
  font-size: 16px;
  margin-top: 1em;
  background-color: #fcd700;
  padding: 0.5em;
  color: #333;
  border: none;
}
.lead .successor h3 {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font-size: 16px;
}
.lead .successor p {
  background: none;
  border: none;
  padding: 0.5em;
}
.lead .successor p::before {
  content: "▶";
}
.lead .successor p a {
  color: #0047ab;
  text-decoration: underline;
}
.lead .img-wrapper {
  width: 100%;
  display: flex;
  justify-content: center;
}
.lead .img-wrapper img {
  width: 70%;
}
.lead .select-box {
  display: inline-flex;
  align-items: center;
  position: relative;
  width: 100%;
  margin-top: 0.5em;
}
.lead .select-box::after {
  position: absolute;
  right: 15px;
  width: 10px;
  height: 7px;
  background-color: #535353;
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
  pointer-events: none;
}
.lead .select-box select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 100%;
  justify-self: end;
  height: 50px;
  padding: 0.4em calc(0.8em + 30px) 0.4em 0.8em;
  border: 2px solid #0047ab;
  border-radius: 3px;
  background-color: #fff;
  color: #333333;
  font-size: 1em;
  cursor: pointer;
}
@media (max-width: 768px) {
  .lead .select-box select {
    font-size: 0.9em;
  }
}
@media (max-width: 768px) {
  .lead .select-box select option {
    font-size: 0.9em;
  }
}

article {
  margin-top: 30px;
}

.img-wrapper-1 {
  margin-top: 1em;
  display: flex;
  justify-content: flex-start;
}

/* 比較スライダー */
article .comparison-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 780px) {
  article .comparison-wrapper {
    grid-template-columns: 1fr;
  }
}
article .comparison-explanation {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
article .comparison-explanation ul li {
  list-style: disc;
  margin-left: 1.5em;
  margin-top: 0.75em;
}
article .comparison-explanation ul li::first-line {
  font-weight: bold;
}

/* 特長、仕様などのタイトル */
.company-product-index .product-h3 {
  display: flex;
  align-items: center;
  text-align: center;
  margin-bottom: 10px;
  background-color: #fff;
  font-weight: bold;
  background-color: transparent;
  padding: 15px 30px;
  margin-bottom: 15px;
  border-left: 5px solid #2589d0;
  border-bottom: 3px solid #d2d2d2;
  background-color: #f2f2f2;
  color: #333;
  gap: 10px;
}
@media (max-width: 780px) {
  .company-product-index .product-h3 {
    padding: 16px;
    font-size: 18px;
  }
}

.three-words {
  letter-spacing: 1em;
}

/* グレー領域 */
.glay-back {
  background-color: #f9f9f9;
  box-shadow: 0 3px 5px rgba(6, 5, 5, 0.14);
  padding: 30px;
}
.glay-back h4 {
  font-size: 1.1em;
  border-bottom: solid 3px #cce4ff;
  position: relative;
  margin-bottom: 1.5em;
  margin-top: 2em;
}
.glay-back h4::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #5472cd;
  bottom: -3px;
  width: 20%;
}
.glay-back.quote {
  padding: 50px 30px;
  background-color: #e7f4fa;
  position: relative;
}
.glay-back.quote:before {
  font-family: "Material Icons";
  content: "\e244";
  position: absolute;
  top: 10px;
  left: 10px;
  font-size: 2.5em;
  color: #aaa;
  transform: rotate(180deg);
}
.glay-back.quote:after {
  font-family: "Material Icons";
  content: "\e244";
  position: absolute;
  bottom: 10px;
  right: 10px;
  font-size: 2.5em;
  color: #aaa;
  transform: rotate(0deg);
}
@media (max-width: 780px) {
  .glay-back {
    padding: 10px;
  }
}
.glay-back .img-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: auto;
  margin: 2em 0;
}
.glay-back ul {
  padding-left: 1.5em;
}
.glay-back ul li {
  list-style: disc;
  line-height: 1.7;
  margin-bottom: 0.3em;
}
.glay-back ul li:nth-last-child(1) {
  margin-bottom: 0;
}
.glay-back ul li dd {
  margin-left: 1em;
}
.glay-back ul.caution {
  margin-top: 1em;
  transform: translateX(-0.2em);
}
.glay-back ul.caution li:nth-child(1) {
  list-style: "注1";
  padding-left: 0.5em;
}
.glay-back ul.caution li:nth-child(2) {
  list-style: "注2";
  padding-left: 0.5em;
}
.glay-back ol {
  padding-left: 1.5em;
}
.glay-back ol li {
  list-style: decimal;
  line-height: 1.7;
  margin-bottom: 0.5em;
}
.glay-back ol li:last-child {
  margin-bottom: 0;
}
.glay-back dl.sub-bullet {
  margin-left: 1em;
}
.glay-back dl.sub-bullet dt {
  position: relative;
}
.glay-back dl.sub-bullet dt:nth-child(1) {
  margin-top: 0.3em;
}
.glay-back dl.sub-bullet dt::before {
  font-family: "Material Icons";
  content: "\e037";
  position: absolute;
  left: -1.25em;
}
.glay-back dl.sub-bullet dd {
  margin-bottom: 0.4em;
  margin-left: 0;
}
.glay-back h4:first-of-type {
  margin-top: 1em;
}
.glay-back p {
  margin-bottom: 0.5em;
}
.glay-back p:last-child {
  margin-bottom: 0;
}

.two-column {
  display: grid;
  grid-template-areas: "img title" "img text";
  -moz-column-gap: 1em;
       column-gap: 1em;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
}
@media (max-width: 768px) {
  .two-column {
    grid-template-areas: "title" "img" "text";
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 1fr;
    row-gap: 1em;
  }
}
.two-column .text {
  grid-area: text;
}
.two-column .img {
  grid-area: img;
  display: grid;
  place-content: center;
}

p.kome {
  margin-left: 1.2em;
  text-indent: -1em;
  margin-top: 5px;
  line-height: 1.4;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}
@media (max-width: 768px) {
  p.kome {
    font-size: 14px;
  }
}
p.kome.red::before {
  color: red;
}
p.kome.no-shadow {
  text-shadow: none;
  margin-bottom: 0;
}
p.kome.no-shadow::before {
  text-shadow: none;
}
p.kome::before {
  content: "※";
  padding-right: 0;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}

/* 使用例の写真 */
span.lb-caption {
  color: #fff;
  /* lightbox2の写真キャプション用 */
}

.usage-images-wrapper {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 10px;
  width: 100%;
}

.usage-images-wrapper > div {
  display: grid;
  grid-template-rows: auto 1fr;
  /* 画像とテキストのスペース */
  align-items: stretch;
}

.usage-images-wrapper img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  /* 高さ揃え */
  display: block;
}

.usage-image-four {
  grid-column: span 3;
}
@media (max-width: 992px) {
  .usage-image-four {
    grid-column: span 3;
  }
}
@media (max-width: 760px) {
  .usage-image-four {
    grid-column: span 6;
  }
  .usage-image-four img {
    max-height: 250px;
  }
}

.usage-image-three {
  grid-column: span 4;
}
@media (max-width: 992px) {
  .usage-image-three {
    grid-column: span 4;
  }
}
@media (max-width: 760px) {
  .usage-image-three {
    grid-column: span 6;
  }
}

.usage-image-two {
  grid-column: span 6;
}

.usage-image-one {
  grid-column: span 4;
}

.img-caption {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.img-caption img {
  height: 200px;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 480px) {
  .img-caption img {
    height: 150px;
  }
}
@media (max-width: 400px) {
  .img-caption img {
    height: 100px;
  }
}
.img-caption p {
  text-align: center;
  font-size: 0.9em;
  margin: 0;
  text-shadow: 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff, 1px 1px 4px #fff;
}

.img-caption-wrapper {
  display: flex;
  gap: 20px !important;
}
@media (max-width: 768px) {
  .img-caption-wrapper {
    flex-direction: column;
    gap: 0;
  }
}
.img-caption-wrapper .img-wrapper {
  display: flex;
  gap: 1em;
  justify-content: center;
  align-items: center;
  width: calc(50% - 10px);
  margin: 1em 0;
}
@media (max-width: 768px) {
  .img-caption-wrapper .img-wrapper {
    width: 100%;
  }
}
.img-caption-wrapper .img-wrapper2 {
  display: flex;
  align-items: center;
  gap: 1em;
  margin: 1em 0;
  width: calc(50% - 10px);
}
.img-caption-wrapper .img-wrapper2 div {
  width: calc(50% - 10px);
}
@media (max-width: 768px) {
  .img-caption-wrapper .img-wrapper2 {
    width: 100%;
    margin: 0;
  }
}
.img-caption-wrapper .caption-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: calc(50% - 10px);
  padding: 1em 0;
  text-align: center;
}
@media (max-width: 768px) {
  .img-caption-wrapper .caption-wrapper {
    width: 100%;
  }
}
.img-caption-wrapper .caption-wrapper h3 {
  text-align: left;
  background: none;
  padding: 0 0 0 35px;
  color: #333;
  font-weight: bold;
  font-size: 20px;
  position: relative;
  border-left: none;
  border-bottom: 0;
}
.img-caption-wrapper .caption-wrapper h3::before {
  content: "";
  background: #333;
  display: block;
  width: 25px;
  height: 2px;
  position: absolute;
  top: 50%;
  transform: translateY(2px);
  left: 0;
}
.img-caption-wrapper .caption-wrapper h4 {
  font-weight: normal;
  margin-bottom: 0.3em;
}
.img-caption-wrapper .caption-wrapper ul {
  margin-bottom: 0.5em;
  margin-left: 1.5em;
}
.img-caption-wrapper .caption-wrapper ul li {
  list-style: disc;
  text-align: left;
}
.img-caption-wrapper .caption-wrapper ul.li-kome {
  padding: 0;
  margin-left: 0;
}
.img-caption-wrapper .caption-wrapper ul.li-kome li {
  list-style: none;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
.img-caption-wrapper .caption-wrapper ul.li-kome li::before {
  content: "※";
  margin-right: 0.5em;
}
.img-caption-wrapper .caption-wrapper p {
  text-align: left;
}

/* swiper */
div.swiper.swiperMain {
  height: 100%;
  width: 100%;
}

.h-adjust {
  height: 350px;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .h-adjust {
    height: auto;
    margin: 0;
  }
}

.swiper-slide {
  position: relative;
}

.swiper-slide img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  width: 100%;
  height: 100%;
}

.swiper-slide video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.swiper-slide .text {
  color: #333;
  font-size: 0.9em;
  z-index: 100;
  position: absolute;
  top: 0;
  left: 0;
}

.swiper-slide .text-right {
  color: #333;
  font-size: 0.9em;
  z-index: 100;
  position: absolute;
  top: 0;
  right: 0;
}

.swiper-slide .text-bottom {
  color: #333;
  font-size: 0.9em;
  z-index: 100;
  position: absolute;
  bottom: 0;
  left: 0;
  writing-mode: vertical-rl;
}

.swiperThumbnail {
  margin-top: 10px;
}

.swiperThumbnail img {
  opacity: 0.5;
}

.swiperThumbnail .swiper-slide-thumb-active img {
  opacity: 1;
}

.swiper-button-prev:after,
.swiper-button-next:after {
  display: none;
}

/* 流れるswiperの画像設定 */
.swiper-container {
  position: relative;
  width: 100%;
}

.my-swiper-flow.swiper-initialized.swiper-horizontal {
  background-color: #2b63ad;
  z-index: 20;
  position: relative;
  padding: 8px 0 16px;
}

.my-swiper-flow {
  margin-top: 1px;
  width: 100%;
  height: 188px;
  overflow: hidden;
  background-color: #333;
  position: relative;
}

.my-swiper-flow .swiper-wrapper {
  transition-timing-function: linear !important;
}

.my-swiper-flow .swiper-slide {
  display: flex;
  width: auto;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

@media (min-width: 768px) {
  .my-swiper-flow:hover .swiper-slide {
    opacity: 0.3;
    transition: all 0.5s ease;
  }
}

.my-swiper-flow .swiper-slide:hover {
  opacity: 1;
}

.swiper-slide a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
  height: 100%;
  pointer-events: auto;
}

@media (min-width: 768px) {
  .swiper-slide a:hover p {
    font-weight: bold;
    transition: all 0.5s ease;
  }
}

@media (min-width: 768px) {
  .swiper-slide a:hover img {
    filter: drop-shadow(0 0 2px #fff);
    transition: all 0.5s ease;
  }
}

.my-swiper-flow img {
  width: 50%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.my-swiper-flow p {
  font-size: 0.75em;
  width: 180px;
  margin: 0;
  padding: 0;
  line-height: 1.3;
  text-align: center;
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 400;
}

.swiper-scrollbar-horizontal {
  width: 100% !important;
  height: 12px !important;
  background-color: #333 !important;
  bottom: -10px !important;
  left: 50% !important;
  transform: translateX(-50%);
}
@media (max-width: 768px) {
  .swiper-scrollbar-horizontal {
    width: 90% !important;
  }
}

.swiper-scrollbar-drag {
  background-color: #fcd700 !important;
}

/* MRエルゴの組写真*/
.photo2-text-wrapper {
  display: grid;
  grid-template: "image image kome kome" 1fr/1fr 1fr 1fr 1fr;
  gap: 10px;
  align-items: center;
  margin-top: 1em;
}
@media (max-width: 980px) {
  .photo2-text-wrapper {
    grid-template: "image image  kome" 1fr/1fr 1fr 250px;
  }
}
@media (max-width: 480px) {
  .photo2-text-wrapper {
    grid-template: "image image" 1fr "kome kome" 0.1fr/1fr 1fr;
    gap: 5px 10px;
  }
}
.photo2-text-wrapper .image {
  grid-area: image;
}
.photo2-text-wrapper .kome {
  grid-area: kome;
  margin: 0;
  line-height: 1.4;
  text-shadow: none;
}
.photo2-text-wrapper .kome::before {
  text-shadow: none;
}

/* MRエルゴのペダル種類 */
.mr-method-container {
  display: flex;
  gap: 20px;
  width: 100%;
  flex-wrap: wrap;
}
@media (max-width: 780px) {
  .mr-method-container {
    flex-direction: column;
  }
}

.mr-method {
  display: grid;
  width: calc(50% - 10px);
  height: auto;
  gap: 10px;
  padding: 10px 20px;
  border-radius: 5px;
  border: 1px solid #ccc;
  background-color: #fff;
  justify-content: center;
  grid-template: "method method" 40px "image segment" 30px "image explanation" 1fr/1fr 1fr;
}
@media (max-width: 780px) {
  .mr-method {
    width: 100%;
    grid-template: "method method" 30px "image segment" 30px "image explanation" 1fr/1fr 1fr;
  }
}
.mr-method .image {
  grid-area: image;
  grid-row: span 2;
  /* 写真を3行分占有 */
  display: flex;
  align-items: center;
  justify-content: center;
}
.mr-method .method {
  grid-area: method;
  align-self: end;
  background: none;
  color: #0047ab;
  border: 0;
  font-weight: bold;
  margin: 0;
  padding: 0;
}
.mr-method .segment {
  grid-area: segment;
  justify-self: center;
  align-self: end;
  font-weight: 500;
}
.mr-method .explanation {
  grid-area: explanation;
}

/* オービットKカフ */
.orbit-k-cuff {
  display: grid;
  -moz-column-gap: 1em;
       column-gap: 1em;
  grid-template-areas: "img-wrapper explanation";
  grid-template-columns: 1fr 1fr;
  align-items: center;
  justify-content: center;
}
.orbit-k-cuff .img-wrapper {
  grid-area: img-wrapper;
  margin: 0;
}
.orbit-k-cuff .explanation {
  grid-area: explanation;
  align-self: center;
}
.orbit-k-cuff .table-cuff-size {
  border-collapse: collapse;
  width: 100%;
  width: 100%;
}
.orbit-k-cuff .table-cuff-size th {
  border: 1px solid #333;
  background-color: #F5F7F7;
  padding: 0.25em 1em;
  text-align: center;
}
.orbit-k-cuff .table-cuff-size td {
  border: 1px solid #333;
  background-color: #fff;
  padding: 0.25em 1em;
  text-align: center;
}
@media (max-width: 980px) {
  .orbit-k-cuff {
    row-gap: 1em;
    grid-template-areas: "img-wrapper" "explanation";
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
  }
}

/* オプション 写真とタイトルとP説 */
.option-guide-container {
  display: flex;
  gap: 20px;
  width: 100%;
  flex-wrap: wrap;
}
@media (max-width: 480px) {
  .option-guide-container {
    flex-direction: column;
  }
}

.option-guide {
  display: grid;
  align-items: center;
  width: calc(50% - 10px);
  height: auto;
  gap: 10px 20px;
  padding: 20px;
  border-radius: 5px;
  border: 1px solid #ccc;
  background-color: #fff;
  justify-content: center;
  grid-template: "option-title option-title" 60px "image option-p" 1fr "caution caution" auto "button button" auto/1fr 1fr;
}
@media (max-width: 980px) {
  .option-guide {
    grid-template: "option-title" auto "image" 150px "option-p" 1fr "caution" auto "button" auto/1fr;
  }
}
@media (max-width: 680px) {
  .option-guide {
    width: 100%;
    gap: 10px;
    grid-template: "option-title" 50px "image" auto "option-p" 1fr "caution" auto "button" auto/1fr;
  }
}
.option-guide.without-button {
  grid-template: "option-title option-title" 60px "image option-p" 1fr "caution caution" auto/1fr 1fr;
}
@media (max-width: 980px) {
  .option-guide.without-button {
    grid-template: "option-title" auto "image" 150px "option-p" 1fr "caution" auto/1fr;
  }
}
@media (max-width: 680px) {
  .option-guide.without-button {
    width: 100%;
    gap: 10px;
    grid-template: "option-title" 50px "image" auto "option-p" 1fr "caution" auto/1fr;
  }
}
.option-guide.without-button.without-caution {
  grid-template: "option-title option-title" 60px "image option-p" 1fr/1fr 1fr;
}
@media (max-width: 980px) {
  .option-guide.without-button.without-caution {
    grid-template: "option-title" auto "image" 150px "option-p" 1fr/1fr;
  }
}
@media (max-width: 680px) {
  .option-guide.without-button.without-caution {
    width: 100%;
    gap: 10px;
    grid-template: "option-title" 50px "image" auto "option-p" 1fr/1fr;
  }
}
.option-guide.height300 {
  grid-template: "option-title option-title" 50px "image option-p" auto/1fr 1fr;
}
@media (max-width: 980px) {
  .option-guide.height300 {
    grid-template: "option-title" auto "image" auto "option-p" auto/1fr;
  }
}
@media (max-width: 680px) {
  .option-guide.height300 {
    width: 100%;
    gap: 10px;
    grid-template: "option-title" auto "image" auto "option-p" auto "caution" auto "button" auto/1fr;
  }
}
.option-guide .option-title {
  grid-area: option-title;
  background: none;
  color: #0047ab;
  font-weight: bold;
  margin-bottom: 10px;
  background-color: #fff;
  font-weight: bold;
  background-color: transparent;
  margin-bottom: 10px;
  border-left: none;
  border-bottom: none;
  background-color: none;
  gap: 10px;
  padding: 0;
  text-align: center;
}
.option-guide .option-title span {
  color: #0047ab;
}
.option-guide .image {
  grid-area: image;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.option-guide .image a {
  width: 100%;
  height: 100%;
  display: flex;
}
.option-guide .image a img {
  width: 100%;
  height: 100%;
  max-height: 300px;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
}
.option-guide .option-p {
  grid-area: option-p;
  display: flex;
  flex-direction: column;
}
.option-guide .option-p p {
  margin-bottom: 0;
}
.option-guide .option-p ul {
  margin: 0.5em 0 0 1em;
}
.option-guide .option-p ul li {
  margin-bottom: 0.3em;
  list-style: disc;
}
.option-guide .caution {
  grid-area: caution;
  font-size: 0.9em;
  align-self: end;
}
.option-guide .caution ul {
  margin-left: 2em;
}
.option-guide .caution ul li {
  padding-left: 0.1em;
  list-style: disc;
}
.option-guide .button {
  grid-area: button;
  margin: 0 auto;
}

/* タイトル、写真、p説を上下に分けるタイプ */
.option-guide3 {
  display: grid;
  align-items: center;
  width: calc(50% - 10px);
  gap: 10px;
  padding: 10px 20px;
  border-radius: 5px;
  border: 1px solid #ccc;
  background-color: #fff;
  justify-content: center;
  grid-template: "option-title" 50px "image" 250px "option-p" auto/1fr;
}
@media (max-width: 680px) {
  .option-guide3 {
    width: 100%;
    grid-template: "option-title" 50px "image" 150px "option-p" 1fr/1fr;
  }
}
.option-guide3 .option-title {
  grid-area: option-title;
  color: #0047ab;
  background: none;
  text-align: center;
  border: none;
  padding: 0;
  margin-bottom: 0;
}
.option-guide3 .image {
  grid-area: image;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.option-guide3 .image a {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
}
.option-guide3 .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.option-guide3 .image .option-p {
  grid-area: option-p;
  text-align: left;
}

/* p説を上と右に分けるタイプ */
.option-guide2 {
  display: grid;
  align-items: center;
  width: calc(50% - 10px);
  height: auto;
  gap: 0 10px;
  padding: 10px 20px;
  border-radius: 5px;
  border: 1px solid #ccc;
  background-color: #fff;
  justify-content: center;
  grid-template: "option-title option-title" 50px "option-p-top option-p-top" auto "image option-p" auto "caution caution" auto/1fr 1fr;
}
@media (max-width: 980px) {
  .option-guide2 {
    grid-template: "option-title" 50px "option-p-top" auto "image" auto "option-p" auto "caution" auto/1fr;
  }
}
@media (max-width: 680px) {
  .option-guide2 {
    width: 100%;
    gap: 10px;
    grid-template: "option-title" auto "option-p-top" auto "image" auto "option-p" auto "caution" auto/1fr;
  }
}
.option-guide2 .option-title {
  grid-area: option-title;
  background: none;
  color: #0047ab;
  font-weight: bold;
  margin: 0;
  padding: 0;
  text-align: center;
  border-left: none;
  border: 0;
}
@media (max-width: 980px) {
  .option-guide2 .option-title {
    padding: 10px 0;
  }
}
.option-guide2 .image {
  grid-area: image;
  display: flex;
  align-items: center;
  justify-content: center;
  display: flex;
}
.option-guide2 .option-p-top {
  grid-area: option-p-top;
}
.option-guide2 .option-p {
  grid-area: option-p;
}
.option-guide2 .option-p p {
  margin-bottom: 0;
}
.option-guide2 .option-p ul {
  margin: 0.5em 0 0 1em;
}
.option-guide2 .option-p ul li {
  list-style: disc;
}
.option-guide2 .caution {
  grid-area: caution;
  align-self: end;
}
.option-guide2 .caution ul {
  margin-left: 2em;
}
.option-guide2 .caution ul li {
  padding-left: 0.1em;
  list-style: disc;
}

/* 2画像、各P説付き */
.two-images-wrapper {
  display: grid;
  grid-template-areas: "img-wrapper-01 img-wrapper-02";
  -moz-column-gap: 20px;
       column-gap: 20px;
  margin-top: 1em;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 600px) {
  .two-images-wrapper {
    grid-template-areas: "img-wrapper-01" "img-wrapper-02";
    grid-template-columns: 1fr;
    row-gap: 20px;
  }
}
.two-images-wrapper .img-wrapper-01 {
  grid-area: img-wrapper-01;
}
.two-images-wrapper .img-wrapper-02 {
  grid-area: img-wrapper-02;
}
.two-images-wrapper .img-wrapper-01,
.two-images-wrapper .img-wrapper-02 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}
.two-images-wrapper .img-wrapper-01 img,
.two-images-wrapper .img-wrapper-02 img {
  width: 80%;
  height: auto;
}
@media (max-width: 480px) {
  .two-images-wrapper .img-wrapper-01 img,
  .two-images-wrapper .img-wrapper-02 img {
    width: 90%;
  }
}
.two-images-wrapper .img-wrapper-01 p,
.two-images-wrapper .img-wrapper-02 p {
  margin-bottom: 0;
}

/* 横スクロールする表 */
.scroll-hint-text {
  margin-top: 0;
}

.table-area {
  max-width: 100%;
  margin: 0;
  overflow: auto;
}
.table-area table {
  width: 100%;
  background-color: #fff;
  border-collapse: collapse;
}
.table-area table th,
.table-area table td {
  padding: 0.7em;
  border: 1px solid #ccc;
  white-space: nowrap;
  text-align: center;
}
.table-area table th:nth-of-type(1),
.table-area table td:nth-of-type(1) {
  background-color: #f5f7f7;
}
.table-area table th img,
.table-area table td img {
  max-height: 150px;
  width: auto;
}
.table-area table th {
  background-color: #f5f7f7;
  text-align: center;
  font-weight: normal;
}

/* レスポンシブテーブル */
table.spec-table {
  width: 100%;
  background-color: #fff;
  border-collapse: collapse;
}
table.spec-table.two-eight td:nth-of-type(1) {
  width: 20%;
}
@media (max-width: 768px) {
  table.spec-table.two-eight td:nth-of-type(1) {
    width: 100%;
  }
}
table.spec-table.two-eight td:nth-of-type(2) {
  width: 80%;
}
@media (max-width: 768px) {
  table.spec-table.two-eight td:nth-of-type(2) {
    width: 100%;
  }
}
table.spec-table th,
table.spec-table td {
  padding: 0.7em;
  border: 1px solid #ccc;
  white-space: normal;
  word-wrap: break-word;
  /* 長い単語を途中で改行 */
}
@media (max-width: 768px) {
  table.spec-table th,
  table.spec-table td {
    display: block;
    width: 100%;
  }
}
table.spec-table td:nth-of-type(1) {
  background-color: #f5f7f7;
  text-align: center;
}
@media (max-width: 768px) {
  table.spec-table td:nth-of-type(1) {
    display: block;
    width: 100%;
  }
}

.spec-ul li {
  margin-bottom: 0.3em;
  list-style: disc;
  margin-left: 1.2em;
}

/* トップに戻る */
.pagetop {
  opacity: 0;
  /* 初期状態で非表示 */
  pointer-events: none;
  /* クリックできないようにする */
  transition: opacity 0.3s ease;
  /* フェードイン/アウトのトランジション */
  height: 40px;
  width: 40px;
  position: fixed;
  right: 10px;
  bottom: 30px;
  background: #fff;
  border: solid 2px #000;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  box-shadow: 0 2px 2px #777;
}
@media (max-width: 574px) {
  .pagetop {
    bottom: 70px;
  }
}

.pagetop__arrow {
  height: 10px;
  width: 10px;
  border-top: 3px solid #000;
  border-right: 3px solid #000;
  transform: translateY(20%) rotate(-45deg);
  transition: all 0.5s;
}

/* フッター */
.footer {
  width: 100%;
  height: auto;
  padding: 20px 0 20px;
  background-color: #222;
}
@media (max-width: 550px) {
  .footer {
    padding-bottom: 80px;
  }
}
.footer .footer-inner-container {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 40px;
  justify-content: space-around;
  padding: 40px;
}
@media (max-width: 780px) {
  .footer .footer-inner-container {
    width: 100%;
    flex-direction: column;
    gap: 20px;
    padding: 10px;
  }
}
.footer .footer-inner-container .logo-address {
  width: 30%;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media (max-width: 1000px) {
  .footer .footer-inner-container .logo-address {
    width: 50%;
  }
}
@media (max-width: 780px) {
  .footer .footer-inner-container .logo-address {
    justify-content: center;
    width: 100%;
  }
}
.footer .footer-inner-container .logo-address .img-wrapper {
  width: 100%;
  display: flex;
  justify-content: flex-start;
}
@media (max-width: 780px) {
  .footer .footer-inner-container .logo-address .img-wrapper {
    justify-content: center;
  }
}
.footer .footer-inner-container .logo-address .img-wrapper img {
  margin-bottom: 1.5em;
  width: 220px;
}
@media (max-width: 780px) {
  .footer .footer-inner-container .logo-address .img-wrapper img {
    margin: 0 atuo;
  }
}
.footer .footer-inner-container .logo-address .footer-address {
  color: #fff;
  display: flex;
  width: 100%;
  justify-content: flex-start;
  flex-direction: column;
  text-decoration: none;
  pointer-events: none;
}
@media (max-width: 780px) {
  .footer .footer-inner-container .logo-address .footer-address {
    flex-direction: column;
    justify-content: center;
    text-align: center;
    text-decoration: none;
  }
}
.footer .footer-inner-container .logo-address .footer-address p {
  width: 100%;
  text-decoration: none;
}
.footer .footer-inner-container .footer-right-menu {
  display: flex;
  flex-direction: column;
  width: 70%;
}
@media (max-width: 1024px) {
  .footer .footer-inner-container .footer-right-menu {
    width: 100%;
  }
}
.footer .footer-inner-container .footer-right-menu .footer-page-menu {
  width: 100%;
  margin-bottom: 2em;
  display: flex;
  flex-wrap: wrap;
}
@media (max-width: 1024px) {
  .footer .footer-inner-container .footer-right-menu .footer-page-menu {
    display: none;
  }
}
.footer .footer-inner-container .footer-right-menu .footer-page-menu li {
  width: 25%;
  line-height: 2em;
}
.footer .footer-inner-container .footer-right-menu .footer-page-menu li a {
  color: #fff;
}
.footer .footer-inner-container .footer-right-menu .footer-page-menu li:before {
  content: "ー";
  color: #fff;
  margin-right: 5px;
}
.footer .footer-inner-container .footer-right-menu .footer-privacy-sitemap {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  gap: 20px;
  margin-bottom: 1em;
}
@media (max-width: 780px) {
  .footer .footer-inner-container .footer-right-menu .footer-privacy-sitemap {
    justify-content: center;
  }
}
.footer .footer-inner-container .footer-right-menu .footer-privacy-sitemap li a {
  color: #fff;
}
.footer .footer-inner-container .footer-right-menu .copy-mark {
  display: flex;
  justify-content: flex-end;
  color: #fff;
  font-size: 0.8em;
}
@media (max-width: 780px) {
  .footer .footer-inner-container .footer-right-menu .copy-mark {
    justify-content: center;
  }
}

/* tips */
.tippy {
  -webkit-text-decoration: underline double;
          text-decoration: underline double;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 0.08em;
  text-decoration-color: rgba(90, 90, 90, 0.8);
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  display: inline;
}

.tippy-title {
  text-align: center;
  margin-top: 0.3em;
}

.tippy-content {
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}

.tippy-text {
  font-size: 16px;
  margin-bottom: 0.3em;
}

.tippy-image-container {
  display: grid;
  place-content: center;
}
.tippy-image-container img {
  max-height: 200px;
}

.catalog-lead {
  width: 100%;
  max-width: 1048px;
  margin: 0 auto;
  text-align: center;
}
.catalog-lead h2 {
  line-height: 1.4;
  margin-bottom: 0.75em;
}
.catalog-lead h2 span {
  color: #0047ad;
  font-size: 0.7em;
}
@media (max-width: 768px) {
  .catalog-lead p {
    text-align: left;
    padding: 0 1em;
  }
}/*# sourceMappingURL=style.css.map */
@charset "UTF-8";
/*メニューをページ下部に固定*/
#sp-fixed-menu {
  position: fixed;
  width: 100%;
  max-width: 100vw;
  height: 60px;
  bottom: 0px;
  font-size: 0;
  opacity: 1;
  z-index: 200;
}

/*メニューを横並びにする*/
#sp-fixed-menu ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 各メニュー */
#sp-fixed-menu li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 25%;
  height: 60px;
  padding: 0;
  margin: 0;
  font-size: 12px;
  background: #2B63AD;
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
}
#sp-fixed-menu li a {
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 0;
}
#sp-fixed-menu li:first-child {
  background-color: #222;
}
#sp-fixed-menu li:last-child {
  border-right: 0;
}/*# sourceMappingURL=sp_menu.css.map */