@charset "UTF-8";
:root {
  --font: "Zen Kaku Gothic New", "Yu Gothic Medium", "Yu Gothic", "Hiragino Kaku Gothic Pro", meiryo, sans-serif;
  --font-en: "Lato", sans-serif;
  --color-text: 13,27,42;
  --color-red: 155,31,36;
  --color-monitoring: #ff5a73;
  --color-support: #ff7823;
}

* {
  margin: 0;
  padding: 0;
}

*,
::before,
::after {
  box-sizing: border-box;
}

*:where(:not(fieldset, progress, meter)) {
  border-width: 0;
  border-style: solid;
  background-origin: border-box;
  background-repeat: no-repeat;
}

html {
  block-size: 100%;
  -webkit-text-size-adjust: none;
  font-size: 2.5641025641vw;
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

@media (min-width: 768px) {
  html {
    font-size: 62.5%;
    scroll-padding-top: 14rem;
  }
}
@media (prefers-reduced-motion: no-preference) {
  html:focus-within {
    scroll-behavior: smooth;
  }
}
body {
  text-rendering: optimizeSpeed;
  min-block-size: 100%;
  font-family: var(--font);
  font-size: 1rem;
  color: var(--color-text);
  line-height: 1.7;
  letter-spacing: 0.05em;
}

:where(video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, svg, video) {
  block-size: auto;
  max-inline-size: 100%;
  vertical-align: middle;
}

:where(svg) {
  stroke: none;
  fill: currentColor;
}

:where(svg):where(:not([width])) {
  inline-size: 5rem;
}

:where(input, button, textarea, select, address),
:where(input[type=file])::-webkit-file-upload-button {
  color: inherit;
  font: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
}

:where(button) {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

:where(textarea) {
  resize: vertical;
}

@supports (resize: block) {
  :where(textarea) {
    resize: block;
  }
}
:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(h2) {
  font-size: 2.2rem;
}

:where(h3) {
  font-size: 2rem;
}

:where(h4) {
  font-size: 1.8rem;
}

:where(h5) {
  font-size: 1.6rem;
}

:where(p) {
  font-size: 1.6rem;
}

:where(ul, ol) {
  list-style: none;
  font-size: 1.6rem;
}

:where(dl) {
  font-size: 1.6rem;
}

:where(table) {
  border-collapse: collapse;
}

:where(th, td) {
  padding: 2rem;
  font-size: 1.6rem;
  line-height: 2;
}

:where(dl) {
  font-size: 1.6rem;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

:where(a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*="-"])) {
  cursor: pointer;
  touch-action: manipulation;
}

:where(input[type=file]) {
  cursor: auto;
}

:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  cursor: pointer;
}

@media (prefers-reduced-motion: no-preference) {
  :focus-visible {
    transition: outline-offset 145ms cubic-bezier(0.25, 0, 0.4, 1);
  }
  :where(:not(:active)):focus-visible {
    transition-duration: 0.25s;
  }
}
:where(:not(:active)):focus-visible {
  outline-offset: 5px;
}

:where(button, button[type], input[type=button], input[type=submit], input[type=reset]),
:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  user-select: none;
  text-align: center;
}

:where(button, button[type], input[type=button], input[type=submit], input[type=reset])[disabled] {
  cursor: not-allowed;
}

body {
  background-color: #F8F6F1;
}
body:has(.header.is-active) {
  overflow: clip;
  overscroll-behavior: none;
}

/*---------------
common
-----------------*/
.red {
  color: rgb(var(--color-red));
}

.pink {
  color: var(--color-monitoring);
}

.sec-white {
  background-color: #fff;
  padding-block: 4rem;
}
@media screen and (min-width: 768px) {
  .sec-white {
    padding-block: 5rem;
  }
}
@media screen and (min-width: 1000px) {
  .sec-white {
    padding-block: 7.5rem;
  }
}

@media screen and (min-width: 768px) {
  .show_sp {
    display: none !important;
  }
}

@media screen and (min-width: 1000px) {
  .show_tabsp {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .show_tab {
    display: none !important;
  }
}
@media screen and (min-width: 1000px) {
  .show_tab {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .show_tabpc {
    display: none !important;
  }
}

.show_pc {
  display: none !important;
}
@media screen and (min-width: 1000px) {
  .show_pc {
    display: block !important;
  }
}

.show_xl {
  display: none !important;
}
@media screen and (min-width: 1200px) {
  .show_xl {
    display: block !important;
  }
}

@media screen and (min-width: 1200px) {
  .hide_xl {
    display: none !important;
  }
}

.aligh-right {
  text-align: right;
}
.aligh-center {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .aligh-center-tabpc {
    text-align: center;
  }
}

.box-right {
  margin-left: auto;
}
.box-center {
  margin-inline: auto;
}

.note-txt {
  width: fit-content;
}
.note-txt-small p {
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .note-txt-small p {
    font-size: 1.4rem;
  }
}
.note-txt p {
  font-size: 1.4rem;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.5rem;
}
@media screen and (min-width: 768px) {
  .note-txt p {
    font-size: 1.6rem;
  }
}
.note-txt p::before {
  content: "※";
}

.link-txt {
  width: fit-content;
}
.link-txt-right {
  margin-left: auto;
}
.link-txt-center {
  margin-inline: auto;
}
.link-txt a {
  color: currentColor;
  text-underline-offset: 0.3em;
  display: flex;
  align-items: center;
  column-gap: 1rem;
  transition: 0.3s ease;
}
.link-txt a:after {
  content: "";
  width: 1.8rem;
  height: 1.8rem;
  background: url(../img/circle_arrow.svg) no-repeat center/cover;
  transition: 0.3s ease;
}
@media (hover) {
  .link-txt a:hover {
    color: rgb(var(--color-red));
    text-decoration: none;
  }
  .link-txt a:hover:after {
    filter: brightness(0) saturate(100%) invert(16%) sepia(91%) saturate(4729%) hue-rotate(350deg) brightness(63%) contrast(85%);
  }
}

main {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

article.under {
  padding-top: 6rem;
}
@media screen and (min-width: 768px) {
  article.under {
    padding-top: 7rem;
  }
}
@media screen and (min-width: 1000px) {
  article.under {
    padding-top: 9rem;
  }
}

.inner {
  padding-inline: 2rem;
  box-sizing: content-box;
}
@media screen and (min-width: 1000px) {
  .inner {
    max-width: 120rem;
    margin-inline: auto;
  }
}
.inner-narrow {
  padding-inline: 2rem;
  box-sizing: content-box;
}
@media screen and (min-width: 1000px) {
  .inner-narrow {
    max-width: 100rem;
    margin-inline: auto;
  }
}
.inner .inner-narrow:not(.sec-white) {
  padding-inline: 0;
}

section {
  padding-block: 4rem;
}
@media screen and (min-width: 768px) {
  section {
    padding-block: 5rem;
  }
}
@media screen and (min-width: 1000px) {
  section {
    padding-block: 7.5rem;
  }
}
section:first-child {
  padding-top: 0;
}

.sec_ttl {
  font-family: var(--font-en);
  letter-spacing: 0.06em;
  font-size: 3rem;
  font-weight: 700;
  color: rgb(var(--color-text));
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .sec_ttl {
    font-size: 3.6rem;
  }
}
@media screen and (min-width: 1000px) {
  .sec_ttl {
    font-size: 4.5rem;
  }
}

.page_ttl {
  font-family: "Lato", var(-font);
  letter-spacing: 0.06em;
  font-size: 3rem;
  font-weight: 700;
  color: rgb(var(--color-text));
  margin-bottom: 3rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .page_ttl {
    font-size: 3.6rem;
  }
}
@media screen and (min-width: 1000px) {
  .page_ttl {
    font-size: 4.5rem;
  }
}

.sec_lead {
  font-size: 1.6rem;
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .sec_lead {
    font-size: 1.8rem;
  }
}
.sec_lead strong {
  font-size: 1.7rem;
}
@media screen and (min-width: 768px) {
  .sec_lead strong {
    font-size: 2rem;
  }
}

.splide__arrow {
  width: 4rem;
  height: 4rem;
  opacity: 1;
  background: transparent;
  border-radius: 0;
}
@media screen and (min-width: 768px) {
  .splide__arrow {
    width: 6rem;
    height: 6rem;
  }
}
.splide__arrow svg {
  width: 4rem;
  height: 4rem;
  fill: #333;
}
@media screen and (min-width: 768px) {
  .splide__arrow svg {
    width: 6rem;
    height: 6rem;
  }
}
.splide__arrow--prev {
  left: 0;
}
.splide__arrow--next {
  right: 0;
}

.fadein, .scrollIn {
  opacity: 0;
  transform: translateY(0.5rem);
  transition: 0.5s ease-in;
}

.js-text.show + .fadein,
.js-text.show + .fadein-list .fadein,
.anime.show .scrollIn {
  opacity: 1;
  transform: translateY(0);
}

.js-line {
  overflow: hidden;
  display: inline-flex;
  flex-wrap: wrap;
}

.txtIn {
  transform: translateY(110%);
  clip-path: polygon(0 100%, 0 100%, 100% 100%, 100% 100%);
}

.anime.show .txtIn {
  animation: textIn 0.5s cubic-bezier(0.77, 0, 0.175, 1) both;
}

.visuallyHidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@keyframes textIn {
  0% {
    transform: translateY(110%);
    clip-path: polygon(0 100%, 0 100%, 100% 100%, 100% 100%);
  }
  100% {
    transform: translateY(0);
    clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0);
  }
}
.btn-outline {
  font-size: 1.6rem;
  font-weight: 500;
  height: 6rem;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  text-decoration: none;
  width: 31rem;
  border: 2px solid rgb(var(--color-text));
  color: rgb(var(--color-text));
  border-radius: 3rem;
  letter-spacing: 0.1em;
  transition: 0.3s ease;
}
@media (hover) {
  .btn-outline:hover {
    background-color: rgb(var(--color-text));
    color: #fff;
  }
}
.btn-solid {
  font-size: 1.6rem;
  font-weight: 500;
  height: 6rem;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  text-decoration: none;
  width: 31rem;
  background-color: rgb(var(--color-text));
  border: 2px solid rgb(var(--color-text));
  color: #fff;
  border-radius: 3rem;
  letter-spacing: 0.1em;
  transition: 0.3s ease;
}
@media (hover) {
  .btn-solid:hover {
    background-color: #fff;
    color: rgb(var(--color-text));
  }
}
.btn_box {
  display: flex;
  justify-content: center;
  margin-top: 5rem;
}
.btn-riacame {
  background-color: #4cc083;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  text-decoration: none;
  padding: 1rem 5rem;
  border-radius: 5rem;
  position: relative;
  display: block;
  transition: 0.3s ease;
  border: 2px solid #4cc083;
}
.btn-riacame:after {
  content: "";
  width: 4rem;
  aspect-ratio: 1;
  background: url(../img/icon_riacamekun.svg) no-repeat center/cover;
  position: absolute;
  right: -1rem;
  top: calc(50% - 2rem);
  z-index: 1;
  transition: 0.3s ease;
}
@media (hover) {
  .btn-riacame:hover {
    color: #4cc083;
    background-color: #fff;
  }
  .btn-riacame:hover:after {
    transform: scale(-1, 1) translateX(-1rem);
  }
}
.btn-contact {
  font-size: 1.8rem;
  background-color: rgb(var(--color-text));
  color: #fff;
  font-weight: 500;
  text-decoration: none;
  width: 100%;
  text-align: center;
  padding: 2rem 1rem;
  display: flex;
  justify-content: center;
  column-gap: 2rem;
  align-items: center;
  max-width: 50rem;
  border: 2px solid rgb(var(--color-text));
  transition: 0.3s ease;
}
.btn-contact::before {
  content: "";
  width: 4rem;
  aspect-ratio: 1;
  background: url(../img/icon_mail.svg) no-repeat center/cover;
  display: block;
}
@media (hover) {
  .btn-contact:hover {
    background-color: #fff;
    color: rgb(var(--color-text));
  }
  .btn-contact:hover:before {
    filter: brightness(0) saturate(100%) invert(9%) sepia(38%) saturate(747%) hue-rotate(170deg) brightness(99%) contrast(100%);
  }
}
.btn_ig a {
  column-gap: 2rem;
}
.btn_ig a:before {
  content: "";
  width: 2.8rem;
  height: 2.8rem;
  background: url(../img/sns_ig.svg) no-repeat center/cover;
  transition: 0.3s ease;
}
@media (hover) {
  .btn_ig a:hover:before {
    filter: brightness(0) saturate(100%) invert(7%) sepia(11%) saturate(5305%) hue-rotate(179deg) brightness(100%) contrast(94%);
  }
}

.wp-block-buttons.is-layout-flex {
  display: flex;
}
.wp-block-buttons.is-content-justification-center {
  justify-content: center;
}
.wp-block-buttons .wp-block-button__link {
  display: block;
  font-size: 1.6rem;
  font-weight: 500;
  height: 6rem;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  text-decoration: none;
  width: 31rem;
  background-color: rgb(var(--color-text));
  border: 2px solid rgb(var(--color-text));
  color: #fff;
  border-radius: 3rem;
  letter-spacing: 0.1em;
  transition: 0.3s ease;
}
@media (hover) {
  .wp-block-buttons .wp-block-button__link:hover {
    background-color: #fff;
    color: rgb(var(--color-text));
  }
}

/*---------------
header
-----------------*/
.header {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(5px);
  transition: opacity 0.5s ease, visibility 0.5s ease;
}
@media screen and (max-width: 767px) {
  .header:not(.is-active) {
    overflow-x: clip;
  }
}
.header {
  /*
  &:before {
    content: "";
    width: 100%;
    height: 8rem;
    background: url(../img/header.svg) no-repeat right -2rem bottom/auto 100%;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    @include mq() {
      height: auto;
      min-height: 12rem;
      max-height: 16rem;
      aspect-ratio: 140/14;
      background-position: center bottom;
      background-size: cover;
    }
  }
    */
}
.header.is-active .header_logo {
  z-index: 11;
}
.header.is-active .header_logo img {
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7486%) hue-rotate(1deg) brightness(105%) contrast(103%);
}
.header.is-active .header_btn:after, .header.is-active .header_btn:before {
  background-color: #fff;
}
.header.is-active .header_btn:before {
  transform: translateY(0) rotate(30deg);
  box-shadow: none;
}
.header.is-active .header_btn:after {
  transform: translateY(0) rotate(-30deg);
}
.header.is-active .header_nav {
  transform: translateX(0);
  visibility: visible;
  pointer-events: visible;
}
.header.is-active .header_nav_item {
  transform: translateX(0);
  visibility: visible;
  transition-delay: 0.2s;
}
.header_wrap {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 7rem;
}
@media screen and (min-width: 768px) {
  .header_wrap {
    height: auto;
    padding-block: 2rem;
  }
}
@media screen and (min-width: 1000px) {
  .header_wrap {
    max-width: 120rem;
    margin-inline: auto;
  }
}
.header_logo a {
  display: block;
  padding: 1.5rem;
}
.header_logo a img {
  width: 20rem;
}
@media screen and (min-width: 768px) {
  .header_logo a img {
    width: 25rem;
  }
}
.header_btn {
  position: absolute;
  right: 0;
  top: 0;
  width: 7rem;
  height: 7rem;
  background: none;
  border: none;
  -webkit-appearance: none;
  appearance: none;
  padding: 0;
  outline: none;
  z-index: 11;
  pointer-events: visible;
}
@media screen and (min-width: 768px) {
  .header_btn {
    display: none !important;
  }
}
.header_btn:after, .header_btn:before {
  content: "";
  width: 4rem;
  height: 1px;
  background: rgb(var(--color-red));
  position: absolute;
  top: calc(50% - 1px);
  left: 1.5rem;
  transition: transform 0.3s;
}
.header_btn:before {
  transform: translateY(-0.8rem);
  box-shadow: 0 0.8rem 0 rgb(var(--color-red));
}
.header_btn:after {
  transform: translateY(0.8rem);
}
.header_nav {
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s ease-in;
}
@media screen and (max-width: 767px) {
  .header_nav {
    position: fixed;
    top: 0;
    right: 0;
    overflow: hidden;
    width: 100%;
    height: 100dvh;
    background-color: rgba(34, 34, 34, 0.85);
    padding-bottom: 3.125rem;
    z-index: 10;
  }
}
@media screen and (min-width: 768px) {
  .header_nav {
    transform: none !important;
    visibility: visible !important;
    pointer-events: visible !important;
  }
}
@media screen and (max-width: 767px) {
  .header_nav_inner {
    width: 100%;
    height: 100dvh;
    overflow: auto;
    padding-top: 10rem;
  }
}
.header_nav_item {
  transform: translateX(100%);
  visibility: hidden;
  transition: 0.3s ease-in;
}
@media screen and (min-width: 768px) {
  .header_nav_item {
    transform: none !important;
    visibility: visible !important;
    display: flex;
    align-items: flex-end;
  }
}
@media screen and (min-width: 768px) {
  .header_nav_item > li {
    position: relative;
  }
}
.header_nav_item > li a, .header_nav_item > li span {
  color: #fff;
  display: block;
  line-height: 1;
  font-size: 2rem;
  text-decoration: none;
  padding: 2.5rem 2rem;
  transition: 0.3s ease-in;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .header_nav_item > li a, .header_nav_item > li span {
    color: rgb(var(--color-text));
    font-size: 1.6rem;
  }
}
@media screen and (hover) and (min-width: 768px) {
  .header_nav_item > li a:hover, .header_nav_item > li span:hover {
    color: rgb(var(--color-red));
  }
}
.header_nav_item > li > span {
  display: grid;
  grid-template-columns: 1fr 1.2rem;
  column-gap: 0.8rem;
  align-items: center;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .header_nav_item > li > span {
    column-gap: 1rem;
  }
}
.header_nav_item > li > span:after {
  content: "";
  width: 1rem;
  height: 1rem;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-0.3rem) rotate(45deg);
  transition: 0.3s ease;
}
@media screen and (min-width: 768px) {
  .header_nav_item > li > span:after {
    border-color: currentColor;
    width: 0.6rem;
    height: 0.6rem;
    transform: translateY(0) rotate(45deg);
  }
}
.header_nav_item > li > span.is-open::after {
  transform: translateY(0.3rem) rotate(-135deg);
}
.header_nav_sub {
  background-color: rgba(255, 255, 255, 0.3);
  display: grid;
  grid-template-rows: 0fr;
  transition: 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}
@media screen and (min-width: 768px) {
  .header_nav_sub {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: transparent;
  }
}
.header_nav_sub.is-open {
  padding-block: 2rem;
  grid-template-rows: 1fr;
}
@media screen and (min-width: 768px) {
  .header_nav_sub.is-open {
    padding-block: 0;
  }
}
.header_nav_sub ul {
  overflow-y: clip;
  overflow-x: auto;
}
@media screen and (min-width: 768px) {
  .header_nav_sub ul {
    width: fit-content;
    white-space: nowrap;
    background-color: transparent;
    position: relative;
    z-index: 0;
  }
  .header_nav_sub ul:before {
    content: "";
    width: 100%;
    height: 100%;
    border: 1px solid rgba(var(--color-text), 0.2);
    background-color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: -1;
    border-radius: 1rem;
  }
}
@media screen and (min-width: 768px) {
  .header_nav_sub ul li {
    padding-inline: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .header_nav_sub ul li + li a {
    border-top: 1px solid rgba(var(--color-text), 0.2);
  }
}
.header_nav_sub ul a {
  font-size: 1.6rem;
  transition: 0.3s ease;
}
@media screen and (min-width: 768px) {
  .header_nav_sub ul a {
    color: #000;
    padding: 2rem 0 2rem 1rem;
    display: grid;
    grid-template-columns: 1fr 1.2rem;
    column-gap: 1.5rem;
    align-items: center;
  }
  .header_nav_sub ul a:after {
    content: "";
    width: 0.6rem;
    height: 0.6rem;
    border-top: 1px solid rgba(var(--color-red), 0.6);
    border-right: 1px solid rgba(var(--color-red), 0.6);
    transform: translateY(0.1rem) translateX(-0.3rem) rotate(45deg);
    opacity: 0;
    transition: 0.3s ease;
  }
}
@media (hover) {
  .header_nav_sub ul a:hover {
    color: rgb(var(--color-red));
  }
  .header_nav_sub ul a:hover:after {
    opacity: 1;
    transform: translateY(0.1rem) translateX(0) rotate(45deg);
  }
}

/*---------------
footer
-----------------*/
footer {
  margin-top: auto;
  padding-top: 8rem;
}
@media screen and (min-width: 768px) {
  footer {
    padding-top: 13rem;
  }
}
@media screen and (min-width: 1000px) {
  footer {
    padding-top: 15rem;
  }
}

.footer {
  position: relative;
  background-color: rgb(var(--color-text));
  color: #fff;
  position: relative;
  z-index: 0;
  padding-bottom: 2rem;
}
.footer:before {
  content: "";
  width: 100%;
  aspect-ratio: 140/18;
  max-height: 8rem;
  background: url(../img/footer.svg) no-repeat center top/100% auto;
  position: absolute;
  bottom: calc(100% - 1px);
  left: 0;
  pointer-events: none;
  z-index: -1;
}
@media screen and (min-width: 1000px) {
  .footer:before {
    max-height: 10rem;
  }
}
.footer .inner {
  display: grid;
  row-gap: 3rem;
}
@media screen and (min-width: 768px) {
  .footer .inner {
    grid-template-columns: 1fr 1fr;
    gap: 5rem 3rem;
  }
}
@media screen and (min-width: 1000px) {
  .footer .inner {
    grid-template-columns: repeat(3, 1fr);
    align-items: flex-end;
  }
}
@media screen and (min-width: 768px) {
  .footer_col:last-child {
    grid-area: 2/1/3/3;
  }
}
@media screen and (min-width: 1000px) {
  .footer_col:last-child {
    grid-area: auto;
  }
}
.footer h2 {
  font-size: 2.4rem;
  margin-bottom: 2rem;
}
@media screen and (min-width: 1000px) {
  .footer h2 {
    font-size: 2.6rem;
  }
}
.footer address {
  font-size: 1.6rem;
}
@media screen and (min-width: 1000px) {
  .footer address {
    font-size: 1.8rem;
  }
}
.footer dl dt {
  font-size: 1.4rem;
  margin-bottom: 1rem;
}
@media screen and (min-width: 1000px) {
  .footer dl dt {
    font-size: 1.6rem;
  }
}
.footer dl dd {
  display: grid;
  row-gap: 1rem;
}
.footer dl dd p {
  font-size: 2.2rem;
  display: grid;
  grid-template-columns: 3rem 1fr;
  column-gap: 2rem;
  align-items: center;
  font-family: var(--font-en);
  font-weight: 400;
}
.footer dl dd p::before {
  content: "";
  width: 100%;
  aspect-ratio: 1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transform: translateY(0.1em);
}
.footer dl dd p a {
  color: currentColor;
  text-decoration: none;
}
.footer dl dd p.mail:before {
  background-image: url(../img/icon_mail.svg);
}
.footer dl dd p.tel:before {
  background-image: url(../img/icon_contact.svg);
}
.footer .teamviewer {
  text-align: center;
}
@media screen and (min-width: 1000px) {
  .footer .teamviewer {
    text-align: right;
  }
}
.footer .teamviewer img {
  width: 23rem;
}
.footer .teamviewer a {
  transition: 0.3s ease;
}
@media (hover) {
  .footer .teamviewer a:hover {
    opacity: 0.7;
  }
}
.footer .copyright {
  text-align: center;
  font-family: var(--font-en);
  font-size: 1.2rem;
  margin-top: 3rem;
}
@media screen and (min-width: 1000px) {
  .footer .copyright {
    text-align: right;
    margin-top: 2rem;
  }
}

.floater {
  position: fixed;
  right: 0;
  bottom: 2rem;
  z-index: 99;
  display: grid;
  row-gap: 1rem;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s ease;
}
@media screen and (min-width: 768px) {
  .floater {
    bottom: 5rem;
  }
}
.floater.active {
  opacity: 1;
  visibility: visible;
}
.floater_item a, .floater_item span {
  width: 6rem;
  display: block;
  transition: 0.3s ease;
  box-sizing: content-box;
  padding-right: 1rem;
  transform: translateX(1rem);
  border-top-left-radius: 0.8rem;
  border-bottom-left-radius: 0.8rem;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .floater_item a, .floater_item span {
    width: 7rem;
  }
}
@media (hover) {
  .floater_item a:hover, .floater_item span:hover {
    transform: translateX(0);
  }
}
.floater_item img {
  width: 100%;
}
.floater_item .pagetop {
  cursor: pointer;
  background-color: rgb(var(--color-text));
}
.floater_item .riacame {
  background-color: #4cc083;
}

/*---------------
top
-----------------*/
.top_kv {
  overflow: hidden;
}
.top_kv_slide {
  max-width: 140rem;
  margin-inline: auto;
}
.top_kv_slide .splide__track {
  overflow: visible;
}
.top_kv_slide figure {
  position: relative;
  margin: 0;
}
.top_kv_slide figure a {
  display: block;
  text-decoration: none;
  color: currentColor;
}
.top_kv_slide figure figcaption {
  position: absolute;
  top: 2rem;
  left: 0;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 600;
  padding: 1rem 2rem 1rem 1rem;
  background: linear-gradient(90deg, rgba(var(--r), var(--g), var(--b), 0.4) 0%, rgba(var(--r), var(--g), var(--b), 0.23) 80%, rgba(var(--r), var(--g), var(--b), 0) 100%);
}
@media screen and (min-width: 768px) {
  .top_kv_slide figure figcaption {
    font-size: 2.4rem;
    padding: 2rem 5rem 2rem 3rem;
  }
}
@media screen and (min-width: 1200px) {
  .top_kv_slide figure figcaption {
    font-size: 3rem;
    top: 5rem;
  }
}
.top_kv_slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}
.top_lead {
  text-align: center;
}
.top_lead h2 {
  font-size: 3rem;
  margin-bottom: 3rem;
  color: rgb(var(--color-text));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .top_lead h2 {
    font-size: 3.6rem;
    margin-bottom: 4rem;
  }
}
.top_lead p {
  font-size: 1.7rem;
  line-height: 2;
}
@media screen and (min-width: 768px) {
  .top_lead p {
    font-size: 2rem;
    line-height: 2.4;
  }
}
.top_news {
  display: grid;
}
@media screen and (max-width: 999px) {
  .top_news {
    row-gap: 3rem;
  }
}
@media screen and (min-width: 768px) {
  .top_news {
    grid-template-columns: auto 1fr;
    column-gap: 5rem;
  }
}
@media screen and (min-width: 1000px) {
  .top_news {
    column-gap: 10rem;
  }
}
@media screen and (max-width: 999px) {
  .top_news_heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@media screen and (max-width: 999px) {
  .top_news_heading .sec_ttl {
    margin-bottom: 0;
  }
}
.top_service_list {
  display: grid;
  gap: 2rem 0;
}
@media screen and (min-width: 768px) {
  .top_service_list {
    grid-template-columns: 1fr 1fr;
    gap: 2rem 2rem;
  }
}
.top_service_list li a {
  display: block;
  text-decoration: none;
  color: currentColor;
  background-color: #fff;
  height: 100%;
  border-radius: 1rem;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .top_service_list li a {
    display: grid;
    grid-template-rows: auto 1fr;
  }
}
@media screen and (min-width: 1000px) {
  .top_service_list li a {
    grid-template-columns: 18rem 1fr;
    grid-template-rows: 1fr;
  }
}
@media screen and (min-width: 1200px) {
  .top_service_list li a {
    grid-template-columns: 25rem 1fr;
  }
}
@media (hover) {
  .top_service_list li a:hover .top_service_detail h3, .top_service_list li a:hover .top_service_detail span, .top_service_list li a:hover .top_service_detail p {
    color: rgb(var(--color-red));
  }
  .top_service_list li a:hover .top_service_detail span:after {
    filter: brightness(0) saturate(100%) invert(16%) sepia(91%) saturate(4729%) hue-rotate(350deg) brightness(63%) contrast(85%);
  }
  .top_service_list li a:hover .top_service_img img {
    transform: scale(1.1);
  }
}
.top_service_img {
  overflow: hidden;
  height: 20rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .top_service_img {
    height: 25rem;
  }
}
@media screen and (min-width: 1000px) {
  .top_service_img {
    height: 100%;
  }
}
.top_service_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 2s ease;
}
.top_service_img span {
  background-color: rgb(var(--color-red));
  color: #fff;
  font-size: 1.2rem;
  padding: 0.3rem 0.8rem;
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 1;
}
.top_service_detail {
  display: flex;
  flex-direction: column;
  row-gap: 0.5rem;
  padding-bottom: 1.5rem;
  padding: 2rem;
}
.top_service_detail h3 {
  font-size: 1.6rem;
  margin-bottom: 1rem;
  position: relative;
  transition: color 0.3s ease;
}
@media screen and (min-width: 1000px) {
  .top_service_detail h3 {
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 1200px) {
  .top_service_detail h3 {
    font-size: 2rem;
  }
}
.top_service_detail p {
  font-size: 1.4rem;
  line-height: 1.6;
  position: relative;
  padding-left: 1.4rem;
  transition: color 0.3s ease;
}
@media screen and (min-width: 1200px) {
  .top_service_detail p {
    font-size: 1.6rem;
  }
}
.top_service_detail p:before {
  content: "";
  width: 0.5rem;
  height: 0.1rem;
  background-color: rgb(var(--color-red));
  position: absolute;
  top: 1rem;
  left: 0;
}
@media screen and (min-width: 1200px) {
  .top_service_detail p:before {
    top: 1.1rem;
  }
}
.top_service_detail p small {
  display: block;
  font-size: 1.2rem;
  padding-top: 0.5em;
}
.top_service_detail p strong {
  font-weight: 500;
}
.top_service_detail span {
  color: currentColor;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  column-gap: 1rem;
  font-size: 1.2rem;
  padding-top: 2rem;
  margin-top: auto;
  color: rgb(var(--color-text));
  transition: color 0.3s ease;
}
.top_service_detail span:after {
  content: "";
  width: 1.8rem;
  height: 1.8rem;
  background: url(../img/circle_arrow.svg) no-repeat center/cover;
  transition: 0.3s ease;
}

.accordion {
  border-top: 1px solid #e1e1e1;
}
.accordion li {
  border-bottom: 1px solid #e1e1e1;
}
.accordion li dl dt {
  display: grid;
  grid-template-columns: 1fr 2rem;
  align-items: center;
  column-gap: 1.5rem;
  padding: 2rem 1.5rem;
  cursor: pointer;
  font-size: 1.6rem;
}
@media screen and (min-width: 768px) {
  .accordion li dl dt {
    font-size: 1.8rem;
    padding: 2rem 1.5rem 2rem 3rem;
  }
}
.accordion li dl dt strong {
  font-weight: 500;
  display: block;
  transition: 0.3s ease;
}
@media screen and (min-width: 768px) {
  .accordion li dl dt strong {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 3rem;
  }
}
@media screen and (min-width: 1000px) {
  .accordion li dl dt strong {
    column-gap: 5rem;
  }
}
.accordion li dl dt time {
  font-size: 1.4rem;
  font-family: var(--font-en);
  display: block;
  font-weight: 400;
  padding-bottom: 0.8rem;
  color: #8F8F8F;
}
@media screen and (min-width: 768px) {
  .accordion li dl dt time {
    padding-bottom: 0;
    transform: translateY(0.4em);
  }
}
.accordion li dl dt span {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  width: 100%;
  height: 2rem;
}
.accordion li dl dt svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
  opacity: 0.5;
}
.accordion li dl dt.is-active svg rect:nth-child(2) {
  opacity: 0;
}
@media (hover) {
  .accordion li dl dt:hover strong {
    color: rgb(var(--color-red));
  }
  .accordion li dl dt:hover svg {
    fill: rgb(var(--color-red));
  }
}
.accordion li dl dd {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease;
}
.accordion_detail {
  padding: 0 1.5rem 3rem;
  font-size: 1.6rem;
  line-height: 1.7;
}
@media screen and (min-width: 768px) {
  .accordion_detail {
    padding: 1rem 3rem 3rem;
  }
}
.accordion_detail a {
  color: currentColor;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  column-gap: 1rem;
  font-size: 1.4rem;
  margin-top: 3rem;
  color: rgb(var(--color-text));
  transition: 0.3s ease;
}
.accordion_detail a:after {
  content: "";
  width: 2rem;
  height: 2rem;
  background: url(../img/circle_arrow.svg) no-repeat center/cover;
  transition: 0.3s ease;
}
@media (hover) {
  .accordion_detail a:hover {
    color: rgb(var(--color-red));
  }
  .accordion_detail a:hover:after {
    filter: brightness(0) saturate(100%) invert(16%) sepia(91%) saturate(4729%) hue-rotate(350deg) brightness(63%) contrast(85%);
  }
}

.more_btn a {
  color: currentColor;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  column-gap: 1rem;
  font-size: 1.6rem;
  color: rgb(var(--color-text));
  transition: 0.3s ease;
}
.more_btn a:after {
  content: "";
  width: 2.2rem;
  height: 2.2rem;
  background: url(../img/circle_arrow.svg) no-repeat center/cover;
  transition: 0.3s ease;
}
@media (hover) {
  .more_btn a:hover {
    color: rgb(var(--color-red));
  }
  .more_btn a:hover:after {
    filter: brightness(0) saturate(100%) invert(16%) sepia(91%) saturate(4729%) hue-rotate(350deg) brightness(63%) contrast(85%);
  }
}

/*---------------
single archive
-----------------*/
.sec_breadcrumb {
  text-align: right;
}

#breadcrumbs {
  margin-bottom: 3rem;
  color: #a5a5a5;
}
#breadcrumbs > span {
  font-size: 1.2rem;
  line-height: 1.8;
}
#breadcrumbs > span span {
  color: rgb(var(--color-text));
}
#breadcrumbs a {
  color: rgb(var(--color-text));
  text-underline-offset: 0.3em;
  text-decoration-color: #ccc;
}

.pagination {
  margin-top: 5rem;
}
.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
  font-size: 1.4rem;
}
.pagination .nav-links .page-numbers {
  width: 3rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
  text-decoration: none;
  line-height: 1;
  font-family: var(--font-en);
}
.pagination .nav-links .page-numbers.current {
  color: rgb(var(--color-red));
  font-weight: 500;
}
.pagination .nav-links a:not(.prev):not(.next) {
  transition: 0.3s ease;
}
@media (hover) {
  .pagination .nav-links a:not(.prev):not(.next):hover {
    background-color: rgb(var(--color-red));
    border-color: rgb(var(--color-red));
    color: #fff;
  }
}
.pagination .nav-links .prev img {
  transform: scale(-1, 1);
}

.article_ttl {
  letter-spacing: 0.06em;
  font-size: 2.4rem;
  font-weight: 700;
  color: rgb(var(--color-text));
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .article_ttl {
    font-size: 3rem;
  }
}
.article_data {
  font-size: 1.4rem;
  font-family: var(--font-en);
  color: #8F8F8F;
}
.article_catch {
  margin: 5rem 0 0;
  text-align: center;
}
.article_catch img {
  width: 100%;
  max-width: max-content;
}
.article_main {
  margin: 5rem 0 0;
  padding-bottom: 5rem;
  border-bottom: 1px solid #ccc;
}
.article_main > :where(*) {
  margin-bottom: 2rem;
}

.share {
  margin-top: 5rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .share {
    width: fit-content;
    margin-left: auto;
  }
}
.share_ttl {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  column-gap: 1rem;
  font-size: 1.4rem;
}
.share_ttl:before {
  content: "";
  width: 1px;
  height: 1.5rem;
  background: rgb(var(--color-text));
  transform: rotate(-25deg);
}
.share_ttl:after {
  content: "";
  width: 1px;
  height: 1.5rem;
  background: rgb(var(--color-text));
  transform: rotate(25deg);
}
.share_btn {
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .share_btn {
    justify-content: flex-end;
  }
}
.share_btn a {
  display: block;
  padding: 2rem;
}
.share_btn img {
  border-radius: 0;
}

.btn_col {
  display: grid;
  justify-content: center;
  row-gap: 2rem;
  margin-top: 5rem;
}
@media screen and (min-width: 768px) {
  .btn_col {
    grid-template-columns: auto auto;
    gap: 0 3.5rem;
  }
}

/*---------------
pages
-----------------*/
.pages_kv {
  position: relative;
}
.pages_kv figure {
  margin: 0;
}
.pages_kv figure img {
  width: 100%;
}
.pages_kv h1 {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
  position: absolute;
  top: 3rem;
  left: 1rem;
}
@media screen and (min-width: 768px) {
  .pages_kv h1 {
    top: 7.1428571429vw;
    left: 7.1428571429vw;
  }
}
.pages_kv h1 span {
  font-size: 1.2rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .pages_kv h1 span {
    font-size: 1.4285714286vw;
  }
}
.pages_kv h1 strong {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .pages_kv h1 strong {
    font-size: 2.8571428571vw;
  }
}
.pages_sec_ttl {
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .pages_sec_ttl {
    font-size: 3.6rem;
  }
}
@media screen and (min-width: 1000px) {
  .pages_sec_ttl {
    font-size: 4.5rem;
  }
}
.pages_sec_subttl {
  font-size: 2.1rem;
  font-weight: 500;
  margin-top: 4rem;
  margin-bottom: 3rem;
  border-left: 5px solid rgb(var(--color-red));
  padding-left: 1.6rem;
  line-height: 1.3;
}
@media screen and (min-width: 768px) {
  .pages_sec_subttl {
    font-size: 2.5rem;
    border-left-width: 8px;
    padding-left: 2rem;
  }
}
@media screen and (min-width: 1000px) {
  .pages_sec_subttl {
    font-size: 3.1rem;
    margin-top: 6rem;
  }
}

/*---------------
monitoring
-----------------*/
.card_list {
  position: relative;
}
.card_list-arrow {
  margin-bottom: 8rem;
}
@media screen and (min-width: 768px) {
  .card_list-arrow {
    margin-bottom: 10rem;
  }
}
@media screen and (min-width: 1000px) {
  .card_list-arrow {
    margin-bottom: 12rem;
  }
}
.card_list-arrow:after {
  content: "";
  width: 10rem;
  aspect-ratio: 100/35;
  background: url(../img/arrow_down_blue.svg) no-repeat center/cover;
  position: absolute;
  top: calc(100% + 2rem);
  left: calc(50% - 5rem);
}
@media screen and (min-width: 768px) {
  .card_list-arrow:after {
    top: calc(100% + 4rem);
  }
}
.card_list-blue {
  background-color: rgba(50, 70, 145, 0.75);
  border-radius: 1rem;
  padding: 3rem 1.5rem;
}
.card_list-white li {
  filter: drop-shadow(0 2px 2px rgba(var(--color-text), 0.1));
}
.card_list_ttl {
  color: #fff;
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .card_list_ttl {
    font-size: 3rem;
  }
}
.card_list_item {
  display: grid;
  row-gap: 2rem;
}
@media screen and (min-width: 768px) {
  .card_list_item {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
}
.card_list_item li {
  background-color: #fff;
  padding: 1rem;
  border-radius: 1rem;
}
@media screen and (min-width: 768px) {
  .card_list_item li {
    padding: 2rem 1rem;
  }
}
.card_list_item li h3 {
  font-size: 1.6rem;
  margin-bottom: 1rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .card_list_item li h3 {
    margin-bottom: 2rem;
  }
}
@media screen and (min-width: 1000px) {
  .card_list_item li h3 {
    font-size: 1.8rem;
  }
}
.card_list_item.col-4 {
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .card_list_item.col-4 {
    grid-template-columns: repeat(4, 1fr);
    gap: 0 1rem;
  }
}
@media screen and (min-width: 1200px) {
  .card_list_item.col-4 {
    gap: 0 2rem;
  }
}

.check_ttl {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  text-align: center;
  margin-bottom: 3rem;
}
.check_ttl span {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.8;
  position: relative;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .check_ttl span {
    font-size: 1.6rem;
  }
}
.check_ttl span::before {
  content: "";
  width: 1px;
  height: 80%;
  background-color: #999;
  transform: rotate(-20deg);
  position: absolute;
  right: calc(100% + 1.5rem);
  bottom: 0;
}
.check_ttl span::after {
  content: "";
  width: 1px;
  height: 80%;
  background-color: #999;
  transform: rotate(20deg);
  position: absolute;
  left: calc(100% + 1.5rem);
  bottom: 0;
}
.check_ttl strong {
  font-size: 2rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .check_ttl strong {
    font-size: 2.6rem;
  }
}
@media screen and (min-width: 1000px) {
  .check_ttl strong {
    font-size: 3rem;
  }
}
.check_ttl strong b {
  font-weight: 700;
  font-size: 2.6rem;
  padding-inline: 0.2em;
}
@media screen and (min-width: 768px) {
  .check_ttl strong b {
    font-size: 3.4rem;
  }
}
@media screen and (min-width: 1000px) {
  .check_ttl strong b {
    font-size: 4rem;
  }
}
.check_list {
  display: grid;
  row-gap: 1.5rem;
  padding-block: 1rem;
  width: fit-content;
  margin-inline: auto;
  background-color: #fff;
  padding: 3rem 2rem;
}
@media screen and (min-width: 768px) {
  .check_list {
    padding: 3rem 5rem;
    row-gap: 2rem;
    display: flex;
    justify-content: center;
    gap: 0 3rem;
  }
}
@media screen and (min-width: 1000px) {
  .check_list {
    padding: 3rem 5rem;
    gap: 0 5rem;
  }
}
.check_list li {
  display: grid;
  grid-template-columns: 2.4rem 1fr;
  column-gap: 1rem;
  font-weight: 500;
}
.check_list li p {
  font-size: 1.6rem;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .check_list li p {
    font-size: 2rem;
    line-height: 1.3;
  }
}
@media screen and (min-width: 1000px) {
  .check_list li p {
    font-size: 2.4rem;
  }
}
.check_list li small {
  font-size: 1.4rem;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .check_list li small {
    font-size: 1.6rem;
  }
}
.check_list li::before {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  background: url(../img/check.svg) no-repeat center/cover var(--color-monitoring);
  border-radius: 50%;
  transform: translateY(0.3rem);
}
@media screen and (min-width: 1000px) {
  .check_list li::before {
    transform: translateY(0.5rem);
  }
}
.check_catch {
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.7;
  position: relative;
  margin-top: 8rem;
}
@media screen and (min-width: 768px) {
  .check_catch {
    font-size: 2.6rem;
    margin-top: 10rem;
  }
}
@media screen and (min-width: 1000px) {
  .check_catch {
    font-size: 3rem;
    margin-top: 12rem;
  }
}
.check_catch:after {
  content: "";
  width: 10rem;
  aspect-ratio: 100/35;
  background: url(../img/arrow_down_pink.svg) no-repeat center/cover;
  position: absolute;
  bottom: calc(100% + 2rem);
  left: calc(50% - 5rem);
}
@media screen and (min-width: 768px) {
  .check_catch:after {
    bottom: calc(100% + 4rem);
  }
}
.check_catch b {
  font-weight: 700;
  font-size: 2.6rem;
  padding-inline: 0.2em;
}
@media screen and (min-width: 768px) {
  .check_catch b {
    font-size: 3.4rem;
  }
}
@media screen and (min-width: 1000px) {
  .check_catch b {
    font-size: 4rem;
  }
}

.price {
  border: 1px solid rgba(var(--color-text), 0.8);
  padding: 3rem 2rem;
}
@media screen and (min-width: 768px) {
  .price {
    padding: 5rem 3rem;
  }
}
.price dt {
  display: flex;
  flex-direction: column;
  row-gap: 0.6rem;
  justify-content: center;
  text-align: center;
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(var(--color-text), 0.3);
}
@media screen and (min-width: 768px) {
  .price dt {
    margin-bottom: 5rem;
  }
}
.price dt span {
  font-size: 1.6rem;
  color: rgba(var(--color-text), 0.8);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .price dt span {
    font-size: 1.8rem;
  }
}
.price dt strong {
  font-size: 2.4rem;
}
@media screen and (min-width: 768px) {
  .price dt strong {
    font-size: 3rem;
  }
}
.price_main {
  margin-bottom: 2rem;
  padding-bottom: 3rem;
  border-bottom: 1px dashed rgba(var(--color-text), 0.3);
}
@media screen and (min-width: 768px) {
  .price_main {
    padding-bottom: 5rem;
    margin-bottom: 3rem;
  }
}
@media screen and (min-width: 768px) {
  .price_main {
    display: flex;
    justify-content: center;
    column-gap: 5rem;
    align-items: center;
  }
}
.price_main h3 {
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 2rem;
  font-size: 1.6rem;
  text-align: center;
  background-color: rgba(50, 70, 145, 0.75);
  color: #fff;
  padding: 0.5rem 2rem;
  border-radius: 5rem;
}
@media screen and (min-width: 768px) {
  .price_main h3 {
    font-size: 2rem;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    width: 14rem;
    border-radius: 50%;
  }
}
.price_main ul {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .price_main ul {
    margin-inline: 0;
  }
}
.price_main ul li {
  display: flex;
  justify-content: center;
  align-items: baseline;
}
.price_main ul li:nth-child(2) {
  margin-top: 6rem;
  position: relative;
}
@media screen and (min-width: 768px) {
  .price_main ul li:nth-child(2) {
    margin-top: 8rem;
  }
}
.price_main ul li:nth-child(2):before {
  content: "";
  width: 3rem;
  height: 3rem;
  background: url(../img/add_white.svg) no-repeat center/2.6rem auto rgba(var(--color-text), 0.5);
  border-radius: 50%;
  position: absolute;
  bottom: calc(100% + 1rem);
  left: calc(50% - 1.5rem);
}
@media screen and (min-width: 768px) {
  .price_main ul li:nth-child(2):before {
    bottom: calc(100% + 1.8rem);
  }
}
.price_main ul li:nth-child(2) b {
  font-size: 4.2rem;
  font-weight: 800;
}
@media screen and (min-width: 768px) {
  .price_main ul li:nth-child(2) b {
    font-size: 6.2rem;
  }
}
.price_main ul span {
  font-size: 1.6rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .price_main ul span {
    font-size: 2rem;
  }
}
.price_main ul span:first-child {
  text-align: right;
}
.price_main ul b {
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  font-family: var(--font-en);
  padding-left: 1rem;
  padding-right: 0.2rem;
  line-height: 1;
  transform: translateY(0.1em);
}
@media screen and (min-width: 768px) {
  .price_main ul b {
    font-size: 5rem;
  }
}
.price_main ul small {
  font-size: 1.2rem;
}
@media screen and (min-width: 768px) {
  .price_main ul small {
    font-size: 1.4rem;
  }
}
.price_include {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 0.8rem;
  margin-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .price_include {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
  }
}
.price_include li {
  font-size: 1.6rem;
  display: grid;
  grid-template-columns: 2rem 1fr;
  column-gap: 0.8rem;
  align-items: center;
  font-weight: 500;
}
.price_include li:before {
  content: "";
  width: 100%;
  aspect-ratio: 1;
  background: url(../img/check.svg) no-repeat center/cover rgba(50, 70, 145, 0.75);
  transform: translateY(0.1rem);
  border-radius: 50%;
}

@media screen and (min-width: 768px) {
  .option {
    display: flex;
    flex-direction: row-reverse;
    column-gap: 3rem;
  }
}
.option dt {
  text-align: center;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .option dt {
    width: 30rem;
    margin-bottom: 0;
  }
}
@media screen and (min-width: 1000px) {
  .option dt {
    width: 28.4%;
  }
}
.option dt img {
  width: 20rem;
}
@media screen and (min-width: 768px) {
  .option dt img {
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .option dd {
    flex: 1;
  }
}
.option dd .note-txt {
  margin-top: 0.8em;
}
.option dd ul {
  margin-top: 2rem;
  display: grid;
  row-gap: 1rem;
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .option dd ul {
    width: fit-content;
  }
}
.option dd ul li {
  background-color: rgba(50, 70, 145, 0.75);
  color: #fff;
  padding: 0.3rem 2rem;
  font-weight: 500;
  border-radius: 5rem;
}
@media screen and (min-width: 768px) {
  .option dd ul li {
    padding-inline: 5rem;
  }
}
@media screen and (min-width: 768px) {
  .option dd .link-txt {
    margin-left: 0;
  }
}

.place {
  display: grid;
  row-gap: 2rem;
}
@media screen and (min-width: 768px) {
  .place {
    grid-template-columns: 55% 1fr;
    gap: 0 5rem;
  }
}
.place dt {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1rem;
}
.place dt img {
  width: 100%;
}

/*---------------
support
-----------------*/
@media screen and (min-width: 768px) {
  .support_price {
    display: grid;
    grid-template-columns: 1fr 18rem;
    align-items: center;
    column-gap: 3rem;
    padding-right: 2rem;
  }
}
@media screen and (min-width: 1000px) {
  .support_price {
    grid-template-columns: 1fr 22rem;
    column-gap: 5rem;
  }
}
@media screen and (min-width: 768px) {
  .support_price .price_main {
    column-gap: 3rem;
  }
}
@media screen and (min-width: 1000px) {
  .support_price .price_main {
    column-gap: 5rem;
  }
}
.support_price_corporation a {
  display: block;
  position: relative;
  width: 20rem;
  margin: 3rem auto 0;
  z-index: 0;
}
@media screen and (min-width: 768px) {
  .support_price_corporation a {
    width: 100%;
  }
}
@media (hover) {
  .support_price_corporation a:hover:before {
    background-color: rgba(var(--color-red), 0.5);
  }
}
.support_price_corporation a:before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(45, 100, 140, 0.4);
  border-radius: 50%;
  animation: circle 1s ease infinite;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.support_price_corporation a img {
  width: 100%;
}

@keyframes circle {
  0% {
    transform: scale(0.9);
    opacity: 1;
  }
  100% {
    transform: scale(1.2);
    opacity: 0;
  }
}
@media screen and (min-width: 768px) {
  .flow {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 3rem;
  }
}
@media screen and (min-width: 1000px) {
  .flow {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (min-width: 1200px) {
  .flow {
    grid-template-columns: repeat(5, 1fr);
    margin-right: -5rem;
  }
}
@media screen and (min-width: 1200px) {
  .flow_wrap {
    overflow: hidden;
    padding-bottom: 1rem;
  }
}
.flow li {
  counter-increment: num;
  border-radius: 1rem;
  position: relative;
  filter: drop-shadow(0 2px 2px rgba(var(--color-text), 0.1));
}
@media screen and (max-width: 767px) {
  .flow li + li {
    margin-top: 5rem;
  }
  .flow li + li:before {
    content: "";
    width: 7rem;
    height: 2rem;
    background-color: rgba(50, 70, 145, 0.75);
    clip-path: polygon(50% 2rem, 0% 0%, 7rem 0%);
    position: absolute;
    bottom: calc(100% + 1.5rem);
    left: calc(50% - 3.5rem);
  }
}
@media screen and (min-width: 768px) {
  .flow li {
    display: grid;
    grid-template-rows: auto 1fr;
    margin-right: 5rem;
    position: relative;
  }
  .flow li:not(:last-child):after {
    content: "";
    width: 2rem;
    height: 7rem;
    background-color: rgba(50, 70, 145, 0.75);
    clip-path: polygon(2rem 50%, 0% 0%, 0% 7rem);
    position: absolute;
    left: calc(100% + 1.5rem);
    top: calc(50% - 3.5rem);
  }
}
.flow li figure {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  overflow: hidden;
}
.flow li figure img {
  width: 100%;
}
.flow_detail {
  background-color: #fff;
  padding: 2rem;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}
@media screen and (min-width: 768px) {
  .flow_detail {
    height: 100%;
  }
}
.flow_detail h3 {
  font-size: 2rem;
  font-weight: 700;
  display: grid;
  grid-template-columns: 3rem 1fr;
  column-gap: 1rem;
  align-items: center;
  margin-bottom: 1.5rem;
}
.flow_detail h3::before {
  content: counter(num);
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  color: #fff;
  line-height: 3rem;
  background-color: rgba(50, 70, 145, 0.75);
  text-align: center;
}
.flow_detail h4 {
  margin-top: 2rem;
  text-align: center;
  background-color: var(--color-monitoring);
  color: #fff;
  padding: 0.5rem 1rem;
  border-radius: 3rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.3;
  max-width: 26rem;
  margin-inline: auto;
}

.case {
  overflow: hidden;
}
.case_slider.is-initialized:not(.is-active) .splide__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 2rem;
}
@media screen and (min-width: 1000px) {
  .case_slider.is-initialized:not(.is-active) .splide__list {
    column-gap: 3rem;
  }
}
.case_slider.is-active .case_item {
  width: 28rem !important;
}
.case .splide__track {
  overflow: visible;
}
.case_item {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.case_item figure img {
  width: 100%;
}
.case_item h3 span {
  font-size: 1.8rem;
}
.case_item h3 strong {
  font-size: 1.6rem;
}
.case .splide__arrow {
  top: 14rem;
}
.case .splide__arrow--prev {
  left: -2rem;
}
.case .splide__arrow--next {
  right: -2rem;
}
.case .splide__arrow:disabled {
  opacity: 0;
}

.splide__pagination {
  position: static;
  margin-top: 2rem;
  column-gap: 1.5rem;
}
.splide__pagination__page {
  width: 1rem;
  height: 1rem;
  margin: 0;
}
.splide__pagination__page.is-active {
  background-color: rgb(var(--color-red));
  transform: none;
}

/*---------------
404
-----------------*/
.notfound {
  text-align: center;
}
@media screen and (min-width: 1000px) {
  .notfound {
    padding-top: 5rem !important;
  }
}
.notfound h1 {
  font-family: var(--font-en);
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.notfound h2 {
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 3rem;
}

/*---------------
contact
-----------------*/
.contact {
  background-color: #fff;
  padding: 3rem 2rem 5rem;
}
@media screen and (min-width: 768px) {
  .contact {
    max-width: 80rem;
    margin-inline: auto;
    padding: 3rem 3rem 5rem;
  }
}
@media screen and (min-width: 768px) {
  .contact dl {
    display: grid;
    grid-template-columns: auto 1fr;
  }
}
.contact dt {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .contact dt {
    padding-block: 2rem;
    padding-right: 3rem;
  }
}
.contact dt small {
  font-size: 1.2rem;
  color: #fff;
  background-color: #dc143c;
  line-height: 1;
  padding: 0.3rem 0.5rem;
}
@media screen and (min-width: 768px) {
  .contact dt:not(:last-of-type) {
    border-bottom: 1px solid #ddd;
  }
}
.contact dd {
  padding-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
}
@media screen and (min-width: 768px) {
  .contact dd {
    padding-block: 2rem;
    gap: 1rem 2rem;
  }
}
.contact dd p {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 1rem;
  align-items: center;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .contact dd p.pc_col2 {
    width: calc(50% - 1rem);
  }
}
.contact dd input[type=text] {
  width: 100%;
  border: 1px solid #ccc;
  padding: 1rem;
}
.contact dd label {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
}
.contact dd textarea {
  border: 1px solid #ccc;
  padding: 1rem;
  width: 100%;
}
.contact dd:not(:last-child) {
  border-bottom: 1px solid #ddd;
}
@media screen and (max-width: 767px) {
  .contact dd:not(:last-child) {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
  }
}

.powered {
  margin-top: 1rem;
  font-size: 1rem;
  text-align: right;
}
@media screen and (min-width: 768px) {
  .powered {
    max-width: 80rem;
    margin-inline: auto;
  }
}
.powered a {
  text-decoration: none;
  color: #a1a1a1;
}

.wp-block-group__inner-container > :where(*) {
  margin-bottom: 2rem;
}

@media screen and (min-width: 768px) {
  .thanks_wrap {
    max-width: 80rem;
    margin-inline: auto;
  }
}

.thanks-tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.thanks-tel a {
  color: currentColor;
  text-decoration: none;
  font-size: 2.4rem;
  font-family: var(--font-en);
}

.company td, .company th {
  border: 1px solid #ddd !important;
  padding: 2rem !important;
}

/*coming soon*/
.comingsoon {
  overflow: hidden;
  position: relative;
  padding-block: 10rem;
}
.comingsoon_img {
  margin: 0;
  width: fit-content;
  transform: translateX(12rem);
  animation: coming_sp 3s steps(10, end) forwards;
}
@media screen and (min-width: 768px) {
  .comingsoon_img {
    margin-inline: auto;
    transform: translateX(20rem);
    animation: coming_pc 5s steps(20, end) forwards;
  }
}
.comingsoon_img img {
  width: 33.5rem;
  max-width: none;
}
@media screen and (min-width: 768px) {
  .comingsoon_img img {
    width: 60rem;
  }
}

@keyframes coming_sp {
  0% {
    transform: translateX(12rem);
  }
  100% {
    transform: translateX(3rem);
  }
}
@keyframes coming_pc {
  0% {
    transform: translateX(20rem);
  }
  100% {
    transform: translateX(0);
  }
}/*# sourceMappingURL=style.css.map */