@charset "UTF-8";
/* CSS Information
---------------------------------------------------------------
Site URL:https://
File name:style.css
Summary:base styles
Created:2026-03-23
--------------------------------------------------------------- */
/* Link */
/* ------------------------------------------------------------ */
a {
  text-decoration: none;
}

a[href^="tel:"] {
  pointer-events: none;
  cursor: text;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  a[href^="tel:"] {
    pointer-events: auto;
    cursor: pointer;
  }
}

/* Animation */
/* ------------------------------------------------------------ */
a,
img {
  transition: all 0.5s ease;
}

.alpha:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}

/* Font */
/* ------------------------------------------------------------ */
sup {
  font-size: 66%;
  vertical-align: top;
}

sub {
  font-size: 66%;
  vertical-align: baseline;
}

/* インデント1文字分 */
/* ------------------------------------------------------------ */
.indent {
  text-indent: -1em;
  margin-left: 1em;
}

/* pc_mode / sp_mode */
/* ------------------------------------------------------------ */
.pc {
  display: inherit;
}

.sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
  .sp {
    display: inherit;
  }
}
/* Style */
/* ------------------------------------------------------------ */
html {
  scroll-behavior: smooth;
  font-size: 1.111111vw;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 3.684211vw;
  }
}
html body header {
  position: relative;
}
html body header .inner {
  background: rgb(255, 255, 255);
  border-bottom: 1px rgba(0, 0, 0, 0.06) solid;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin: 0;
  position: fixed;
  top: 0;
  transition: all 0.5s ease;
  z-index: 10;
}
html body header .inner #header_area {
  background: rgb(255, 255, 255);
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: min(4.861vw, 70px);
  padding: 0 min(2.778vw, 40px);
  z-index: 100;
}
@media screen and (max-width: 768px) {
  html body header .inner #header_area {
    width: 100%;
    height: 15.789vw;
    padding: 0 5.263vw;
  }
}
html body header .inner #header_area h1 {
  width: min(11.111vw, 160px);
}
@media screen and (max-width: 768px) {
  html body header .inner #header_area h1 {
    width: 36.842vw;
  }
}
html body header .inner #header_area #nav_toggle {
  display: none;
}
@media screen and (max-width: 768px) {
  html body header .inner #header_area #nav_toggle {
    display: block;
    cursor: pointer;
    position: relative;
    width: 7.895vw;
    height: 7.895vw;
  }
  html body header .inner #header_area #nav_toggle span {
    width: 5.263vw;
    height: 2px;
    display: block;
    background: #444;
    position: absolute;
    left: calc(50% - 2.632vw);
    transition: transform 0.3s ease-in-out, top 0.2s ease;
  }
  html body header .inner #header_area #nav_toggle span:nth-child(1) {
    top: calc(50% - 1px - 1.316vw);
  }
  html body header .inner #header_area #nav_toggle span:nth-child(2) {
    top: calc(50% - 1px);
  }
  html body header .inner #header_area #nav_toggle span:nth-child(3) {
    top: calc(50% - 1px + 1.316vw);
  }
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav {
    background: rgba(0, 0, 0, 0.7);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    visibility: hidden;
    opacity: 0;
    z-index: 3;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
}
html body header .inner #global_nav div {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.778vw, 40px);
  padding: 0 min(2.778vw, 40px);
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div {
    flex-direction: column;
    gap: 5.263vw;
    padding: 26.316vw 5.263vw 10.526vw;
    border-bottom: 1px rgba(0, 0, 0, 0.06) solid;
    background: rgb(255, 255, 255);
    width: 100%;
    opacity: 0;
    transform: translateY(-128.205vw);
    transition: transform 0.6s ease, opacity 0.1s ease;
  }
}
html body header .inner #global_nav div ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.778vw, 40px);
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 5.263vw;
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div ul li {
    width: 100%;
    border-bottom: 1px rgba(0, 0, 0, 0.06) solid;
  }
}
html body header .inner #global_nav div ul li a {
  display: block;
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div ul li a {
    padding: 1.316vw 0;
  }
}
html body header .inner #global_nav div ul li a span {
  display: block;
  color: #444444;
  text-transform: uppercase;
  font-size: min(0.75rem, 12px);
  font-weight: 600;
  white-space: nowrap;
  transition: all 0.5s ease;
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div ul li a span {
    font-size: 1rem;
  }
}
html body header .inner #global_nav div ul li a span:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}
html body header .inner #global_nav div button {
  display: block;
  background: #BF0008;
  width: min(9.722vw, 140px);
  height: min(2.778vw, 40px);
  color: #fff;
  text-transform: uppercase;
  font-size: min(0.75rem, 12px);
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  position: relative;
  transition: all 0.5s ease;
}
@media screen and (max-width: 768px) {
  html body header .inner #global_nav div button {
    width: 100%;
    height: 10.526vw;
    font-size: 0.857143rem;
  }
}
html body header .inner #global_nav div button:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}
@media screen and (max-width: 768px) {
  html body header.open #nav_toggle span:nth-child(1) {
    top: calc(50% - 1px) !important;
    transform: rotate(45deg);
  }
  html body header.open #nav_toggle span:nth-child(2) {
    width: 0 !important;
  }
  html body header.open #nav_toggle span:nth-child(3) {
    top: calc(50% - 1px) !important;
    transform: rotate(-45deg);
  }
  html body header.open #global_nav {
    visibility: visible;
    opacity: 1;
  }
  html body header.open #global_nav div {
    opacity: 1;
    transform: translateY(0);
  }
  html body header.open #global_nav div ul li {
    opacity: 1;
    transform: translateY(0);
  }
}
html body main {
  overflow: clip;
}
html body main section {
  width: 100%;
}
html body main section#mainvisual {
  height: calc(100dvh - min(4.861vw, 70px));
  position: relative;
  margin-top: min(4.861vw, 70px);
}
@media screen and (max-width: 768px) {
  html body main section#mainvisual {
    height: calc(100dvh - 15.789vw);
    margin-top: 15.789vw;
  }
}
html body main section#mainvisual video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#mainvisual .inner {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 768px) {
  html body main section#mainvisual .inner {
    padding: 0 5.263vw;
  }
}
html body main section#mainvisual .inner h2 {
  width: min(79.167vw, 1140px);
  color: #BF0008;
  font-size: min(4rem, 64px);
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  html body main section#mainvisual .inner h2 {
    width: 100%;
    font-size: 2.285714rem;
  }
}
html body main section:not(#mainvisual) .inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: min(83.455vw, 1140px);
  padding: min(10.417vw, 120px) 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  html body main section:not(#mainvisual) .inner {
    width: 100% !important;
    padding: 21.053vw 5.263vw;
  }
}
html body main section:not(#mainvisual) .inner h2 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: min(4rem, 64px);
  font-weight: 900;
  text-transform: uppercase;
  width: 100%;
  margin-bottom: min(4.167vw, 60px);
}
@media screen and (max-width: 768px) {
  html body main section:not(#mainvisual) .inner h2 {
    font-size: 1.857143rem;
    margin-bottom: 10.526vw;
  }
}
html body main section:not(#mainvisual) .inner h2::before {
  content: "";
  display: block;
  width: min(4.861vw, 70px);
  height: min(0.347vw, 5px);
  margin-right: min(0.694vw, 10px);
}
@media screen and (max-width: 768px) {
  html body main section:not(#mainvisual) .inner h2::before {
    width: 7.895vw;
    height: 2px;
    margin-right: 1.316vw;
  }
}
html body main section:not(#mainvisual) .inner hr {
  width: 100%;
  height: 1px;
  padding: 0;
  margin: min(4.167vw, 60px) 0;
  display: block;
  border: 0;
  background: #E8E8E8;
}
@media screen and (max-width: 768px) {
  html body main section:not(#mainvisual) .inner hr {
    margin: 7.895vw 0;
  }
}
html body main section#solutions {
  background: #BF0008;
}
html body main section#solutions .inner h2 {
  color: #fff;
}
html body main section#solutions .inner h2::before {
  background: #fff;
}
html body main section#solutions .inner .swiper {
  width: 100%;
  overflow: visible;
}
html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
}
html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption {
  background: rgba(0, 0, 0, 0.4);
  width: 100%;
  padding: min(1.389vw, 20px) min(0.694vw, 10px);
  position: absolute;
  left: 0;
  bottom: 0;
}
@media screen and (max-width: 768px) {
  html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption {
    padding: 2.632vw 2.632vw;
    position: initial;
  }
}
html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption strong {
  color: #fff;
  font-size: min(1.25rem, 20px);
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption strong {
    font-size: 1rem;
  }
}
html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption p {
  color: #fff;
  font-size: min(1rem, 16px);
  font-weight: 400;
  line-height: 1.4;
  margin-top: min(0.694vw, 10px);
}
@media screen and (max-width: 768px) {
  html body main section#solutions .inner .swiper .swiper-wrapper .swiper-slide figure figcaption p {
    font-size: 0.857143rem;
    margin-top: 1.316vw;
  }
}
html body main section#products {
  width: 100%;
}
html body main section#products .inner h2 {
  color: #BF0008;
}
html body main section#products .inner h2::before {
  background: #BF0008;
}
html body main section#products .inner > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}
html body main section#products .inner > div .youtube {
  width: min(48.611vw, 700px);
  aspect-ratio: 16/9;
  position: relative;
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div .youtube {
    width: 100%;
  }
}
html body main section#products .inner > div .youtube iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#products .inner > div .youtube .overlay {
  position: absolute;
  inset: 0;
  cursor: pointer;
}
html body main section#products .inner > div .youtube .overlay .thumbnail {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#products .inner > div .youtube .overlay .playback {
  width: min(4.861vw, 70px);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div .youtube .overlay .playback {
    width: 10.526vw;
  }
}
html body main section#products .inner > div h3 {
  text-align: center;
  color: #BF0008;
  font-size: min(2rem, 32px);
  font-weight: 900;
  line-height: 1.2;
  margin-top: min(1.389vw, 20px);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div h3 {
    font-size: 1.285714rem;
    margin-top: 5.263vw;
  }
}
html body main section#products .inner > div p {
  text-align: center;
  font-size: min(1.25rem, 20px);
  line-height: 1.4;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div p {
    font-size: 1rem;
    margin-top: 3.947vw;
  }
}
html body main section#products .inner > div strong {
  text-align: center;
  font-size: min(1.25rem, 20px);
  font-weight: 900;
  margin-top: min(2.083vw, 30px);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div strong {
    font-size: 1.142857rem;
    margin-top: 7.895vw;
  }
}
html body main section#products .inner > div ol {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.778vw, 40px);
  counter-reset: num;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div ol {
    flex-wrap: wrap;
    gap: 2.632vw;
    margin-top: 3.947vw;
  }
}
html body main section#products .inner > div ol li {
  display: flex;
  justify-content: center;
  align-items: center;
  counter-increment: num;
  font-size: min(1rem, 16px);
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div ol li {
    font-size: 1rem;
  }
}
html body main section#products .inner > div ol li::before {
  display: flex;
  justify-content: center;
  align-items: center;
  content: counter(num);
  width: min(1.389vw, 20px);
  height: min(1.389vw, 20px);
  line-height: min(1.389vw, 20px);
  background: #BF0008;
  border-radius: 50%;
  text-align: center;
  color: #fff;
  font-size: min(0.875rem, 14px);
  letter-spacing: 0;
  font-weight: 700;
  margin-right: min(0.347vw, 5px);
}
@media screen and (max-width: 768px) {
  html body main section#products .inner > div ol li::before {
    width: 3.947vw;
    height: 3.947vw;
    line-height: 3.947vw;
    font-size: 0.714286rem;
    margin-right: 1.316vw;
  }
}
html body main section#strengths {
  background: #BF0008;
}
html body main section#strengths .inner h2 {
  color: #fff;
}
html body main section#strengths .inner h2::before {
  background: #fff;
}
html body main section#strengths .inner > div {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #fff;
}
@media screen and (max-width: 768px) {
  html body main section#strengths .inner > div {
    grid-template-columns: repeat(1, 1fr);
  }
}
html body main section#strengths .inner > div > div {
  padding: min(2.778vw, 40px);
}
@media screen and (max-width: 768px) {
  html body main section#strengths .inner > div > div {
    padding: 5.263vw;
  }
}
html body main section#strengths .inner > div > div figure {
  width: min(3.889vw, 56px);
}
@media screen and (max-width: 768px) {
  html body main section#strengths .inner > div > div figure {
    width: 13.158vw;
  }
}
html body main section#strengths .inner > div > div h3 {
  color: #BF0008;
  font-size: min(1.5rem, 24px);
  font-weight: 900;
  line-height: 1.2;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#strengths .inner > div > div h3 {
    font-size: 1.285714rem;
    margin-top: 3.947vw;
  }
}
html body main section#strengths .inner > div > div p {
  color: #252627;
  font-size: min(1rem, 16px);
  line-height: 1.4;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#strengths .inner > div > div p {
    font-size: 1rem;
    margin-top: 3.947vw;
  }
}
html body main section#network {
  width: 100%;
}
html body main section#network .inner h2 {
  color: #BF0008;
}
html body main section#network .inner h2::before {
  background: #BF0008;
}
html body main section#network .inner > div {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 100%;
  border-top: 1px #E8E8E8 solid;
  border-bottom: 1px #E8E8E8 solid;
}
@media screen and (max-width: 768px) {
  html body main section#network .inner > div {
    grid-template-columns: repeat(1, 1fr);
  }
}
html body main section#network .inner > div dl {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: min(2.778vw, 40px) 0;
}
@media screen and (max-width: 768px) {
  html body main section#network .inner > div dl {
    justify-content: flex-start;
    padding: 3.947vw 0;
  }
}
html body main section#network .inner > div dl:nth-of-type(n+2) {
  border-left: 1px #E8E8E8 solid;
}
@media screen and (max-width: 768px) {
  html body main section#network .inner > div dl:nth-of-type(n+2) {
    border-left: none;
    border-top: 1px #E8E8E8 solid;
  }
}
html body main section#network .inner > div dl dt {
  flex-shrink: 0;
  color: #111;
  font-size: min(3.25rem, 52px);
  font-weight: 800;
}
@media screen and (max-width: 768px) {
  html body main section#network .inner > div dl dt {
    font-size: 1.857143rem;
  }
}
html body main section#network .inner > div dl dt span {
  color: #BF0008;
}
html body main section#network .inner > div dl dd {
  color: #252627;
  font-size: min(0.875rem, 14px);
  font-weight: 500;
  line-height: 1.4;
  margin-left: min(0.694vw, 10px);
}
@media screen and (max-width: 768px) {
  html body main section#network .inner > div dl dd {
    font-size: 0.857143rem;
    margin-left: 2.632vw;
  }
}
html body main section#network .inner figure {
  width: 100%;
  margin-top: min(2.083vw, 30px);
}
@media screen and (max-width: 768px) {
  html body main section#network .inner figure {
    margin-top: 5.263vw;
  }
}
html body main section#network .inner ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(0.694vw, 10px);
  margin-top: min(2.083vw, 30px);
}
@media screen and (max-width: 768px) {
  html body main section#network .inner ul {
    flex-wrap: wrap;
    gap: 2.632vw;
    margin-top: 5.263vw;
  }
}
html body main section#network .inner ul li {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px #E8E8E8 solid;
  border-radius: min(1.389vw, 20px);
  padding: min(0.694vw, 10px) min(1.389vw, 20px);
  color: #444;
  font-size: min(1rem, 16px);
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  html body main section#network .inner ul li {
    border-radius: 5.263vw;
    padding: 1.316vw 2.632vw;
    font-size: 0.857143rem;
  }
}
html body main section#network .inner ul li::before {
  content: "";
  width: min(0.347vw, 5px);
  height: min(0.347vw, 5px);
  background: #BF0008;
  border-radius: 50%;
  margin-right: min(0.347vw, 5px);
}
@media screen and (max-width: 768px) {
  html body main section#network .inner ul li::before {
    width: 1.316vw;
    height: 1.316vw;
    margin-right: 1.316vw;
  }
}
html body main section#history {
  background: #BF0008;
}
html body main section#history .inner h2 {
  color: #fff;
}
html body main section#history .inner h2::before {
  background: #fff;
}
html body main section#history .inner > div {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: min(2.431vw, 35px);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5.263vw;
  }
}
html body main section#history .inner > div .youtube {
  flex-shrink: 0;
  width: min(38.889vw, 560px);
  aspect-ratio: 16/9;
  position: relative;
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .youtube {
    width: 100%;
  }
}
html body main section#history .inner > div .youtube iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#history .inner > div .youtube .overlay {
  position: absolute;
  inset: 0;
  cursor: pointer;
}
html body main section#history .inner > div .youtube .overlay .thumbnail {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
html body main section#history .inner > div .youtube .overlay .playback {
  width: min(4.861vw, 70px);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .youtube .overlay .playback {
    width: 10.526vw;
  }
}
html body main section#history .inner > div .chronology {
  border-left: 1px #fff solid;
  width: 100%;
}
html body main section#history .inner > div .chronology ul {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: min(2.083vw, 30px);
  margin-left: min(2.083vw, 30px);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .chronology ul {
    gap: 3.947vw;
    margin-left: 5.263vw;
  }
}
html body main section#history .inner > div .chronology ul li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}
html body main section#history .inner > div .chronology ul li .circle {
  flex-shrink: 0;
  width: min(0.903vw, 13px);
  margin-right: min(0.347vw, 5px);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .chronology ul li .circle {
    width: 3.947vw;
    margin-right: 1.316vw;
  }
}
html body main section#history .inner > div .chronology ul li .timeline strong {
  color: #fff;
  font-size: min(1.5rem, 24px);
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .chronology ul li .timeline strong {
    font-size: 1.285714rem;
  }
}
html body main section#history .inner > div .chronology ul li .timeline strong small {
  display: block;
  color: #fff;
  font-size: min(1rem, 16px);
  font-weight: 700;
  margin-bottom: min(0.347vw, 5px);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .chronology ul li .timeline strong small {
    font-size: 0.857143rem;
    margin-bottom: 1.316vw;
  }
}
html body main section#history .inner > div .chronology ul li .timeline p {
  color: #fff;
  font-size: min(1.125rem, 18px);
  font-weight: 700;
  line-height: 1.4;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#history .inner > div .chronology ul li .timeline p {
    font-size: 1rem;
    margin-top: 1.316vw;
  }
}
html body main section#message {
  width: 100%;
}
html body main section#message .inner h2 {
  color: #BF0008;
}
html body main section#message .inner h2::before {
  background: #BF0008;
}
html body main section#message .inner figure {
  width: min(38.889vw, 560px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner figure {
    width: 100%;
  }
}
html body main section#message .inner figure div {
  width: 100%;
}
html body main section#message .inner figure figcaption {
  text-align: center;
}
html body main section#message .inner figure figcaption p {
  color: #111;
  font-size: min(1.5rem, 24px);
  margin-top: min(1.389vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner figure figcaption p {
    font-size: 1.285714rem;
    margin-top: 3.947vw;
  }
}
html body main section#message .inner figure figcaption p:nth-of-type(1) {
  font-weight: 500;
  line-height: 1.4;
}
html body main section#message .inner figure figcaption p:nth-of-type(2) {
  font-weight: 700;
}
html body main section#message .inner .scroll_area {
  width: 100%;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area {
    overflow-x: auto;
    padding-bottom: 1.316vw;
  }
}
html body main section#message .inner .scroll_area table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #E8E8E8;
  border-radius: min(0.347vw, 5px);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table {
    width: 210.526vw;
    border-radius: 1.316vw;
  }
}
html body main section#message .inner .scroll_area table caption {
  text-align: left;
  color: #444;
  font-size: min(1.5rem, 24px);
  font-weight: 700;
  white-space: nowrap;
  margin-bottom: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table caption {
    font-size: 1.285714rem;
    margin-bottom: 3.947vw;
  }
}
html body main section#message .inner .scroll_area table thead {
  background: #F7F7F7;
}
html body main section#message .inner .scroll_area table thead tr:nth-of-type(1) th {
  padding: min(1.389vw, 20px) 0 min(1.389vw, 20px) min(2.778vw, 40px);
  text-align: left;
  color: #666;
  font-size: min(1rem, 16px);
  font-weight: 700;
  white-space: nowrap;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table thead tr:nth-of-type(1) th {
    padding: 2.632vw 0 2.632vw 5.263vw;
    font-size: 1rem;
  }
}
html body main section#message .inner .scroll_area table thead tr:nth-of-type(1) th:nth-of-type(4) {
  padding: min(1.389vw, 20px) min(2.778vw, 40px) 0;
  text-align: center;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table thead tr:nth-of-type(1) th:nth-of-type(4) {
    padding: 2.632vw 5.263vw 0;
    font-size: 1rem;
  }
}
html body main section#message .inner .scroll_area table thead tr:nth-of-type(2) th {
  width: min(6.25vw, 90px);
  padding: min(1.389vw, 20px);
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table thead tr:nth-of-type(2) th {
    width: 13.158vw;
    padding: 2.632vw;
  }
}
html body main section#message .inner .scroll_area table thead tr:nth-of-type(2) th img {
  display: block;
  width: min(3.472vw, 50px);
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table thead tr:nth-of-type(2) th img {
    width: 7.895vw;
  }
}
html body main section#message .inner .scroll_area table tbody tr:nth-of-type(1) td {
  border-top: 2px solid #E8E8E8;
}
html body main section#message .inner .scroll_area table tbody tr td {
  border-top: 1px solid #E8E8E8;
  padding: min(1.389vw, 20px) 0 min(1.389vw, 20px) min(2.778vw, 40px);
  color: #111;
  font-size: min(0.875rem, 14px);
  font-weight: 600;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table tbody tr td {
    padding: 2.632vw 0 2.632vw 5.263vw;
    font-size: 0.857143rem;
  }
}
html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(1) {
  color: #BF0008;
}
html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(3) {
  color: #666;
  font-weight: 400;
}
html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(n+4) {
  padding: min(1.389vw, 20px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(n+4) {
    padding: 2.632vw;
  }
}
html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(n+4) .circle {
  width: min(0.694vw, 10px);
  height: min(0.694vw, 10px);
  border-radius: 50%;
  background: #111;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  html body main section#message .inner .scroll_area table tbody tr td:nth-of-type(n+4) .circle {
    width: 1.316vw;
    height: 1.316vw;
  }
}
html body main section#message .inner ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: min(2.778vw, 40px);
  width: 100%;
  margin-top: min(1.042vw, 15px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner ul {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 2.632vw;
    margin-top: 5.263vw;
  }
}
html body main section#message .inner ul li {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  color: #353535;
  font-size: min(0.875rem, 14px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner ul li {
    font-size: 0.857143rem;
  }
}
html body main section#message .inner ul li img {
  display: block;
  width: min(3.472vw, 50px);
  margin-right: min(0.347vw, 5px);
}
@media screen and (max-width: 768px) {
  html body main section#message .inner ul li img {
    width: 7.895vw;
    margin-right: 1.316vw;
  }
}
html body main section#cta {
  background: #BF0008;
}
html body main section#cta .inner h2 {
  justify-content: center;
  text-align: center;
  color: #fff;
  font-size: min(3.25rem, 52px);
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
  width: 100%;
  margin-bottom: min(4.167vw, 60px);
}
@media screen and (max-width: 768px) {
  html body main section#cta .inner h2 {
    font-size: 1.857143rem;
    margin-bottom: 7.895vw;
  }
}
html body main section#cta .inner h2::before {
  content: none;
}
html body main section#cta .inner ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(1.389vw, 20px);
}
@media screen and (max-width: 768px) {
  html body main section#cta .inner ul {
    flex-direction: column;
    gap: 5.263vw;
    width: 100%;
  }
}
html body main section#cta .inner ul li {
  width: 100%;
}
html body main section#cta .inner ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(21.528vw, 310px);
  height: min(4.167vw, 60px);
  text-transform: uppercase;
  font-size: min(0.875rem, 14px);
  font-weight: 800;
  border-radius: min(0.347vw, 5px);
  transition: all 0.5s ease;
}
@media screen and (max-width: 768px) {
  html body main section#cta .inner ul li a {
    width: 100%;
    height: 15.789vw;
    font-size: 0.857143rem;
    border-radius: 1.316vw;
  }
}
html body main section#cta .inner ul li a:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}
html body main section#cta .inner ul li:nth-of-type(1) a {
  color: #BF0008;
  background: #fff;
  border: 1px rgb(255, 255, 255) solid;
}
html body main section#cta .inner ul li:nth-of-type(2) a {
  color: #fff;
  background: #BF0008;
  border: 1px rgba(255, 255, 255, 0.4) solid;
}
html body footer {
  background: #111;
}
html body footer .inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: min(79.167vw, 1140px);
  padding: min(6.944vw, 100px) 0 min(2.778vw, 40px);
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  html body footer .inner {
    align-items: center;
    width: 100%;
    padding: 10.526vw 5.263vw;
  }
}
html body footer .inner h1 a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  width: min(15.972vw, 230px);
  height: min(6.25vw, 90px);
  transition: all 0.5s ease;
}
html body footer .inner h1 a:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}
html body footer .inner h1 a img {
  width: min(11.111vw, 160px);
}
@media screen and (max-width: 768px) {
  html body footer .inner h1 a {
    width: 60.526vw;
    height: 23.684vw;
  }
  html body footer .inner h1 a img {
    width: 42.105vw;
  }
}
html body footer .inner ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: min(2.778vw, 40px);
  width: 100%;
  margin-top: min(2.083vw, 30px);
}
@media screen and (max-width: 768px) {
  html body footer .inner ul {
    flex-wrap: wrap;
    gap: 5.263vw;
    width: 100%;
    margin-top: 5.263vw;
  }
}
html body footer .inner ul li a {
  color: #fff;
  text-transform: uppercase;
  font-size: min(1rem, 16px);
  font-weight: 500;
  transition: all 0.5s ease;
}
@media screen and (max-width: 768px) {
  html body footer .inner ul li a {
    font-size: 1rem;
  }
}
html body footer .inner ul li a:hover {
  filter: alpha(opacity=60);
  opacity: 0.6;
}
html body footer .inner hr {
  width: 100%;
  height: 1px;
  padding: 0;
  margin: min(2.778vw, 40px) 0;
  display: block;
  border: 0;
  background: #454545;
}
@media screen and (max-width: 768px) {
  html body footer .inner hr {
    margin: 5.263vw 0;
  }
}
html body footer .inner small {
  display: block;
  width: 100%;
  color: #fff;
  text-align: center;
  font-size: min(0.75rem, 12px);
}
@media screen and (max-width: 768px) {
  html body footer .inner small {
    font-size: 0.714286rem;
  }
}

#solutions {
  position: relative;
  height: 400svh;
  view-timeline-name: --section-pin-tl;
  view-timeline-axis: block;
}
@media screen and (max-width: 768px) {
  #solutions {
    height: auto;
  }
}
#solutions .inner {
  height: 100svh;
  position: sticky;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  top: 0;
}
@media screen and (max-width: 768px) {
  #solutions .inner {
    height: auto;
    position: static;
    display: block;
  }
}
#solutions .inner .mySwiper {
  will-change: transform;
  animation: linear serviceMove forwards;
  animation-timeline: --section-pin-tl;
  animation-range: contain 0% contain 100%;
}
@media screen and (max-width: 768px) {
  #solutions .inner .mySwiper {
    animation: none;
  }
}
#solutions .inner .mySwiper .swiper-wrapper {
  display: flex;
  gap: 5%;
  width: auto;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}
#solutions .inner .mySwiper .swiper-wrapper .swiper-slide {
  /*width: auto;
  margin-right: 20px;*/
  /*aspect-ratio: 16 / 9;*/
  width: 66%;
}
@media screen and (max-width: 768px) {
  #solutions .inner .mySwiper .swiper-wrapper .swiper-slide {
    margin-right: 0;
    margin-bottom: 20px;
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #solutions .inner .mySwiper .swiper-wrapper .swiper-slide .card {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #solutions .inner .mySwiper .swiper-wrapper {
    display: block;
  }
}

@supports (animation-timeline: view()) {
  @keyframes serviceMove {
    to {
      transform: translateX(-108%);
    }
  }
}/*# sourceMappingURL=style.css.map */