@charset "UTF-8";
*,
*::after,
*::before {
  box-sizing: border-box;
}

body,
button,
input,
select,
textarea {
  font-family: "Noto Sans JP", sans-serif;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary,
div,
span,
p,
ul,
ol,
li,
dl,
dt,
dd,
table,
tr,
th,
td,
a,
img,
label,
form,
input,
textarea {
  margin: 0;
  padding: 0;
}

ol,
ul {
  list-style: none;
}

b,
strong,
h1,
h2,
h3,
h4,
h5 {
  font-weight: 700;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

img {
  border: 0;
  height: auto;
  line-height: 1;
  vertical-align: bottom;
  max-width: 100%;
}

a {
  background: transparent;
  cursor: pointer;
  outline: 0 none;
}

html {
  display: flex;
  flex-direction: column;
}

body {
  color: #000;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  line-height: 1.6;
}

main {
  flex: 1 1 auto;
}

.clearfix {
  display: block;
}
.clearfix::before, .clearfix::after {
  clear: both;
  content: "";
  display: block;
}

@media (min-width: 769px), print {
  .pc_hide {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .sp_hide {
    display: none !important;
  }
}

html {
  scroll-behavior: smooth;
}
body {
  font-size: 1rem;
  overflow-x: hidden;
}
@media (max-width: 768px) {
  body {
    font-size: 0.875rem;
  }
}
body.fixed {
  overflow: hidden;
}

::placeholder {
  color: #ccc;
}

a,
button {
  color: #2764db;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  transition: 0.3s background ease, 0.3s border-color ease, 0.3s color ease;
}
@media (hover: hover) {
  a:hover,
  button:hover {
    color: #28acec;
    text-decoration: none;
  }
}
@media (hover: none) {
  a:active,
  button:active {
    color: #28acec;
    text-decoration: none;
  }
}
@media (min-width: 769px), print {
  a[href^="tel:"],
  button[href^="tel:"] {
    pointer-events: none;
  }
}
a[target=_blank]:not(:has(img))::after,
button[target=_blank]:not(:has(img))::after {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: currentColor;
  content: "";
  display: inline-block;
  height: 1em;
  margin-left: 0.2em;
  mask-image: url("../images/icon/ico-blank.svg");
  width: 1em;
}

button {
  border: none;
  border-radius: 0;
  background: none;
  cursor: pointer;
  transition: 0.3s background-color ease, 0.3s border-color ease, 0.3s color ease;
}

input {
  background: none;
  border: none;
  border-radius: 0;
}

.boxlink {
  cursor: pointer;
}

.wrap {
  container-type: inline-size;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  width: 100%;
  max-width: 1200px;
}

.wrap_min {
  container-type: inline-size;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  width: 100%;
  max-width: 1000px;
}

@media (min-width: 769px), print {
  .pc_br {
    display: block;
  }
}

@media (max-width: 768px) {
  .sp_br {
    display: block;
  }
}

.a_alpha {
  transition: 0.3s opacity ease;
}
@media (hover: hover) {
  .a_alpha:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .a_alpha:active {
    opacity: 0.7;
  }
}

.aligncenter,
.alignleft,
.alignright {
  display: block;
  margin-bottom: 2em;
  width: fit-content;
}
@media (max-width: 768px) {
  .aligncenter,
  .alignleft,
  .alignright {
    margin-left: auto;
    margin-right: auto;
  }
  .aligncenter img,
  .alignleft img,
  .alignright img {
    max-width: 100%;
  }
}

@media (min-width: 769px), print {
  .alignleft {
    float: left;
    margin-right: 2em;
  }
}

@media (min-width: 769px), print {
  .alignright {
    float: right;
    margin-left: 2em;
  }
}

@media (min-width: 769px), print {
  .aligncenter {
    margin-left: auto;
    margin-right: auto;
  }
}

header {
  display: flex;
  justify-content: space-between;
  padding: 20px 120px 0 20px;
  z-index: 10;
}
@media (max-width: 1201px) {
  header {
    padding-right: 100px;
  }
}
@media (max-width: 768px) {
  header {
    padding: 8px 56px 0 8px;
  }
}
header.home_header {
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.hd_logo {
  display: flex;
  gap: 30px;
}
@media (min-width: 769px), print {
  .hd_logo {
    align-items: center;
  }
}
@media (max-width: 1201px) {
  .hd_logo {
    gap: 20px;
  }
}
@media (max-width: 768px) {
  .hd_logo {
    flex-direction: column-reverse;
    gap: 4px;
  }
}
.hd_logo_img {
  display: block;
  height: 67.5px;
  overflow: hidden;
  width: 410px;
}
@media (max-width: 1201px) {
  .hd_logo_img {
    height: 51px;
    width: 300px;
  }
}
@media (max-width: 768px) {
  .hd_logo_img {
    height: 27px;
    width: 164px;
  }
}
.hd_logo_img img {
  height: 100%;
  object-fit: cover;
  width: 100%;
  display: block;
  object-position: left center;
}
.home_header .hd_logo_img img {
  object-position: right center;
}
.hd_logo_txt {
  font-size: 0.875rem;
}
@media (max-width: 1201px) {
  .hd_logo_txt {
    font-size: 0.75rem;
  }
}
@media (max-width: 768px) {
  .hd_logo_txt {
    font-size: 0.625rem;
  }
  .hd_logo_txt br {
    display: none;
  }
}
.home_header .hd_logo_txt {
  color: #fff;
}
.hd_contact {
  width: 210px;
}
@media (max-width: 850px) {
  .hd_contact {
    display: none;
  }
}
.hd_contact a {
  font-size: 1rem;
  height: 52px;
}
.hd_contact a::after {
  height: 10px;
  margin-left: 10px;
  width: 6px;
}
.hd_btn {
  background-color: #2764db;
  border-radius: 10px;
  position: fixed;
  right: 20px;
  top: 20px;
  height: 60px;
  width: 60px;
  z-index: 10;
}
@media (max-width: 768px) {
  .hd_btn {
    border-radius: 8px;
    height: 40px;
    right: 8px;
    top: 8px;
    width: 40px;
  }
}
@media (hover: hover) {
  .hd_btn:hover {
    background-color: #28acec;
  }
}
@media (hover: none) {
  .hd_btn:active {
    background-color: #28acec;
  }
}
.hd_btn span {
  top: 29px;
}
.hd_btn span, .hd_btn span::before, .hd_btn span::after {
  background-color: #fff;
  border-radius: 2px;
  display: block;
  height: 2px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  transition: 0.3s ease transform, 0.3s ease bottom, 0.3s ease top;
  width: 22px;
}
@media (max-width: 768px) {
  .hd_btn span {
    top: 19px;
  }
}
.hd_btn span::before, .hd_btn span::after {
  content: "";
}
.hd_btn span::before {
  top: -8px;
}
.hd_btn span::after {
  bottom: -8px;
}
.hd_btn.active span {
  background-color: transparent;
}
.hd_btn.active span::before, .hd_btn.active span::after {
  bottom: auto;
  top: 50%;
}
.hd_btn.active span::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.hd_btn.active span::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.nav_bg {
  background-color: rgba(0, 0, 0, 0.4);
  bottom: 0;
  display: none;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 8;
}
.nav_bg.active {
  display: block;
}
.nav_wrap {
  align-items: center;
  background-color: #fff;
  bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  pointer-events: none;
  position: fixed;
  right: -600px;
  top: 0;
  transition: 0.3s ease right;
  width: 600px;
  z-index: 9;
}
@media (min-width: 769px), print {
  .nav_wrap {
    border-radius: 50px 0 0 50px;
  }
}
@media (max-width: 768px) {
  .nav_wrap {
    right: -100vw;
    width: 100vw;
  }
}
.nav_wrap.active {
  pointer-events: auto;
  right: 0;
}
.nav_wrap_inner {
  overflow-y: auto;
  padding: 50px 30px;
  width: 100%;
}
@media (max-width: 768px) {
  .nav_wrap_inner {
    padding: 50px 16px;
  }
}
.nav_list {
  margin: 0 auto 60px;
  width: fit-content;
}
@media (max-width: 768px) {
  .nav_list {
    margin-bottom: 40px;
  }
}
.nav_list li {
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .nav_list li {
    margin-bottom: 15px;
  }
}
.nav_list li a {
  font-size: 1.125rem;
  color: #000;
  font-weight: 700;
  text-decoration: none;
}
@media (max-width: 768px) {
  .nav_list li a {
    font-size: 1rem;
  }
}
.nav_sns {
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 30px;
}
@media (max-width: 768px) {
  .nav_sns {
    gap: 20px;
  }
}
.nav_sns li {
  height: 60px;
  width: 60px;
}
@media (max-width: 768px) {
  .nav_sns li {
    height: 40px;
    width: 40px;
  }
}
.nav_sns li img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}
.nav_sns li a {
  transition: 0.3s opacity ease;
}
@media (hover: hover) {
  .nav_sns li a:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .nav_sns li a:active {
    opacity: 0.7;
  }
}
.nav_btn {
  margin: 60px auto 0;
  max-width: 500px;
}
@media (max-width: 768px) {
  .nav_btn {
    margin-top: 40px;
  }
}
.nav_btn a {
  max-width: 100%;
}

.ft_contact {
  padding: 100px 16px;
  background: #fff url("../images/common/bg-com-map.svg") center -430px/4430px auto no-repeat;
}
@media (max-width: 768px) {
  .ft_contact {
    padding: 40px 16px;
  }
}
@media (max-width: 768px) {
  .ft_contact {
    background-position: 45% -355px;
    background-size: 3700px auto;
    padding-bottom: 60px;
    padding-top: 60px;
  }
}
.ft_contact_info {
  margin: 0 auto 40px;
}
@media (min-width: 769px), print {
  .ft_contact_info {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(2, 1fr);
    max-width: 960px;
  }
}
.ft_contact_info_box {
  text-align: center;
  min-width: 0;
}
@media (max-width: 768px) {
  .ft_contact_info_box {
    margin-top: 40px;
  }
}
.ft_contact_info_vn {
  --ccolor: #28acec;
}
.ft_contact_info_jp {
  --ccolor: #ff9100;
}
.ft_contact_info_ttl {
  font-size: 1rem;
  background-color: var(--ccolor);
  border-radius: 30px;
  color: #fff;
  margin: 0 auto 10px;
  padding: 5px 20px;
  text-align: center;
  width: fit-content;
  min-width: 200px;
}
.ft_contact_info_tel {
  font-size: 2.5rem;
  color: var(--ccolor);
  font-weight: 700;
  margin: 0 auto 10px;
  padding-left: 46px;
  position: relative;
  text-decoration: none;
  width: fit-content;
}
.ft_contact_info_tel::before {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: currentColor;
  content: "";
  height: 36px;
  left: 0;
  mask-image: url("../images/icon/ico-phone.svg");
  position: absolute;
  top: 16px;
  width: 36px;
}
.ft_copyright {
  font-size: 0.875rem;
  background-color: #f5f5f9;
  padding: 12px;
  text-align: center;
}
@media (max-width: 768px) {
  .ft_copyright {
    font-size: 0.625rem;
    padding: 10px;
  }
}

.btn a,
.btn button {
  align-items: center;
  border-radius: 100px;
  display: flex;
  justify-content: center;
  font-weight: 700;
  overflow: hidden;
  padding: 10px;
  position: relative;
  text-align: center;
  text-decoration: none;
  width: 100%;
  z-index: 1;
}
.btn a::after,
.btn button::after {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  content: "";
  mask-image: url("../images/icon/ico-arrow-r.svg");
}
@media (min-width: 769px), print {
  .btn_l {
    width: 500px;
  }
}
@media (max-width: 768px) {
  .btn_l {
    width: 100%;
    max-width: 350px;
  }
}
.btn_l a,
.btn_l button {
  font-size: 1.5rem;
  height: 83px;
  width: 100%;
}
@media (max-width: 768px) {
  .btn_l a,
  .btn_l button {
    font-size: 1rem;
    height: 52px;
  }
}
.btn_l a::after,
.btn_l button::after {
  height: 15px;
  margin-left: 20px;
  width: 15px;
}
.btn_type01 a,
.btn_type01 button {
  background: linear-gradient(to right, #ff9100 0%, #ee5633 50%, #ff9100 100%);
  background-size: 200% 100%;
  color: #fff;
}
.btn_type01 a::after,
.btn_type01 button::after {
  background-color: #fff;
}
@media (hover: hover) {
  .btn_type01 a:hover,
  .btn_type01 button:hover {
    background-position: 100% 0;
  }
}
@media (hover: none) {
  .btn_type01 a:active,
  .btn_type01 button:active {
    background-position: 100% 0;
  }
}
.btn_type02 a,
.btn_type02 button {
  background: linear-gradient(to right, #28acec 0%, #2764db 50%, #28acec 100%);
  background-size: 200% 100%;
  color: #fff;
}
.btn_type02 a::after,
.btn_type02 button::after {
  background-color: #fff;
}
@media (hover: hover) {
  .btn_type02 a:hover,
  .btn_type02 button:hover {
    background-position: 100% 0;
  }
}
@media (hover: none) {
  .btn_type02 a:active,
  .btn_type02 button:active {
    background-position: 100% 0;
  }
}
.btn_type03 a,
.btn_type03 button {
  background: #000;
  color: #fff;
}
.btn_type03 a::after,
.btn_type03 button::after {
  background-color: #fff;
}
@media (hover: hover) {
  .btn_type03 a:hover,
  .btn_type03 button:hover {
    background: #2764db;
  }
}
@media (hover: none) {
  .btn_type03 a:active,
  .btn_type03 button:active {
    background: #2764db;
  }
}
.btn_intxt {
  background-color: #fff;
  border-radius: 50px;
  color: #000;
  font-size: 75%;
  margin-right: 10px;
  padding: 5px 15px;
}
@media (max-width: 768px) {
  .btn_intxt {
    font-size: 0.875rem;
  }
}
.btn_wrap_center, .btn_wrap_left, .btn_wrap_right {
  display: flex;
  gap: 20px;
}
.btn_wrap_center {
  justify-content: center;
}
.btn_wrap_left {
  justify-content: flex-start;
}
.btn_wrap_right {
  justify-content: flex-end;
}

.ttl {
  font-size: 2.5rem;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 768px) {
  .ttl {
    font-size: 1.25rem;
    margin-bottom: 20px;
  }
}
.ttl strong {
  color: #2764db;
}
.ttl strong.big {
  font-size: 3.75rem;
}
@media (max-width: 768px) {
  .ttl strong.big {
    font-size: 2.5rem;
  }
}

.ttl_min {
  font-size: 1.125rem;
  color: #2764db;
  font-weight: 700;
  margin-bottom: 0.5em;
  padding-left: 1.5em;
  position: relative;
}
@media (max-width: 768px) {
  .ttl_min {
    font-size: 1rem;
  }
}
.ttl_min::before {
  background-color: currentColor;
  border-radius: 100%;
  content: "";
  height: 1em;
  left: 0;
  position: absolute;
  top: 0.35em;
  width: 1em;
}

.com_contact {
  background: linear-gradient(to right, rgba(40, 172, 236, 0.8), rgba(39, 100, 219, 0.8)), url("../images/common/bg-com-contact01.webp") center/cover no-repeat, url("../images/common/bg-com-contact02.webp") center/cover no-repeat;
  color: #fff;
  font-weight: 700;
  padding: 80px 16px;
  text-align: center;
}
@media (max-width: 768px) {
  .com_contact {
    padding-bottom: 60px;
    padding-top: 60px;
  }
}
.com_contact_sttl {
  font-size: 1.125rem;
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 0.5em;
  margin-bottom: 35px;
}
@media (max-width: 768px) {
  .com_contact_sttl {
    font-size: 1rem;
    align-items: flex-end;
    margin-bottom: 20px;
  }
}
.com_contact_sttl::before, .com_contact_sttl::after {
  background-color: currentColor;
  content: "";
  height: 1px;
  width: 20px;
}
@media (max-width: 768px) {
  .com_contact_sttl::before, .com_contact_sttl::after {
    margin-bottom: 12px;
  }
}
.com_contact_sttl::before {
  transform: rotate(45deg);
}
.com_contact_sttl::after {
  transform: rotate(-45deg);
}
.com_contact_ttl {
  font-size: 2.5rem;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .com_contact_ttl {
    font-size: 1.5rem;
    margin-bottom: 20px;
  }
}

.body_sub {
  background: #ebf8ff;
}

.subpage {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  overflow: inherit;
}
.subpage::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .subpage::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .subpage {
    padding: 40px 16px;
  }
}
.subpage::before {
  right: 0;
  top: -90px;
}
@media (max-width: 768px) {
  .subpage::before {
    top: -10px;
  }
}

.breadcrumbs {
  padding: 20px 40px 0;
}
@media (max-width: 768px) {
  .breadcrumbs {
    padding: 6px 10px;
  }
}
.breadcrumbs_list {
  font-size: 0.875rem;
  color: #888;
}
@media (max-width: 768px) {
  .breadcrumbs_list {
    font-size: 0.75rem;
  }
}
.breadcrumbs_list a {
  color: #888;
}

.wp-pagenavi {
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .wp-pagenavi {
    gap: 10px;
    margin-top: 30px;
  }
}
.wp-pagenavi > span.current, .wp-pagenavi > a.current {
  background-color: #2764db;
  color: #fff;
  font-weight: 700;
}
.wp-pagenavi > span, .wp-pagenavi > a {
  font-size: 1.125rem;
  align-items: center;
  background-color: #fff;
  border: none;
  border-radius: 50%;
  color: #888;
  display: flex;
  height: 60px;
  justify-content: center;
  text-decoration: none;
  width: 60px;
}
@media (max-width: 768px) {
  .wp-pagenavi > span, .wp-pagenavi > a {
    font-size: 1rem;
    height: 40px;
    width: 40px;
  }
}

.single_main {
  margin-top: 40px;
}
@media (max-width: 768px) {
  .single_main {
    margin-top: 20px;
  }
}
.single_main_thumbnail {
  border-radius: 20px;
  margin-bottom: 40px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .single_main_thumbnail {
    margin-bottom: 20px;
  }
}
.single_main h2 {
  font-size: 2rem;
  border-bottom: 1px solid #2764db;
  margin: 40px 0 20px;
  padding-bottom: 6px;
}
@media (max-width: 768px) {
  .single_main h2 {
    font-size: 1.125rem;
    margin: 20px 0 10px;
    padding-bottom: 6px;
  }
}
.single_main h3 {
  font-size: 1.5rem;
  border-left: 4px solid #2764db;
  margin: 40px 0 20px;
  padding-left: 14px;
}
@media (max-width: 768px) {
  .single_main h3 {
    font-size: 1rem;
    margin: 20px 0 10px;
    padding-bottom: 6px;
  }
}
.single_main h3 h4 {
  font-size: 1.125rem;
  margin: 40px 0 20px;
}
@media (max-width: 768px) {
  .single_main h3 h4 {
    font-size: 0.875rem;
    margin: 20px 0 10px;
  }
}
.single_main p,
.single_main ul,
.single_main ol {
  margin: 20px 0;
}
@media (max-width: 768px) {
  .single_main p,
  .single_main ul,
  .single_main ol {
    margin: 10px 0;
  }
}
.single_main ul li {
  line-height: 1.8;
  padding-left: 1.2em;
  position: relative;
}
.single_main ul li::before {
  background-color: #2764db;
  border-radius: 100%;
  content: "";
  height: 0.75em;
  left: 0;
  top: 0.6em;
  position: absolute;
  width: 0.75em;
}
.single_main ol {
  counter-reset: number;
}
.single_main ol li {
  line-height: 1.8;
  padding-left: 1.2em;
  position: relative;
}
.single_main ol li::before {
  counter-increment: number;
  content: counter(number) ".";
  left: 0;
  text-align: right;
  position: absolute;
}
.single_main strong {
  background: #FFED95;
  padding: 0 2px;
}
.single_main h2 strong,
.single_main h3 strong,
.single_main h4 strong,
.single_main h5 strong,
.single_main h6 strong {
  background-color: unset;
  padding: unset;
}

.page404::before {
  content: "404";
}

.modal {
  display: none;
  height: 100%;
  left: 0;
  overflow-y: auto;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
}
.modal_wrap {
  background-color: rgba(0, 0, 0, 0.4);
  display: grid;
  min-height: 100dvh;
  padding: 20px;
  place-items: center;
  width: 100%;
}
.modal_bg {
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
}
.modal_content {
  background-color: #fff;
  border-radius: 20px;
  margin-left: auto;
  margin-right: auto;
  padding: 80px;
  position: relative;
  max-width: 980px;
  z-index: 2;
}
@media (max-width: 768px) {
  .modal_content {
    padding: 40px 20px 20px;
  }
}
.modal_close {
  transition: 0.3s opacity ease;
  height: 60px;
  position: absolute;
  right: 20px;
  top: 20px;
  width: 60px;
}
@media (hover: hover) {
  .modal_close:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .modal_close:active {
    opacity: 0.7;
  }
}
@media (max-width: 768px) {
  .modal_close {
    height: 40px;
    right: 0;
    top: 0;
    width: 40px;
  }
}
.modal_close::before, .modal_close::after {
  background-color: #000;
  border-radius: 2px;
  content: "";
  height: 3px;
  left: 50%;
  position: absolute;
  top: 50%;
  width: 28px;
}
@media (max-width: 768px) {
  .modal_close::before, .modal_close::after {
    height: 2px;
    width: 20px;
  }
}
.modal_close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.modal_close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.home_main {
  padding: 100px 16px;
  background: linear-gradient(to right, #2764db 0%, #28acec 33%, rgba(40, 172, 236, 0.2) 66%, transparent 100%), url("../images/home/bg-home-main.webp") right center/cover no-repeat;
  color: #fff;
  display: grid;
  height: 900px;
  place-items: center;
  position: relative;
}
@media (max-width: 768px) {
  .home_main {
    padding: 40px 16px;
  }
}
@media (max-width: 768px) {
  .home_main {
    background: linear-gradient(to right, rgba(39, 100, 219, 0.8), rgba(40, 172, 236, 0.8)), url("../images/home/bg-home-main.webp") right center/cover no-repeat;
    height: 530px;
    padding-top: 95px;
  }
}
.home_main::before {
  background: url("../images/home/img-home-main-earth.svg") center bottom/contain no-repeat;
  bottom: 0;
  content: "";
  height: 480px;
  opacity: 0.15;
  position: absolute;
  right: calc(50vw + 150px);
  width: 790px;
}
@media (max-width: 768px) {
  .home_main::before {
    height: 216px;
    left: -75px;
    right: auto;
    width: 360px;
  }
}
.home_main_intro {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .home_main_intro {
    font-size: 1rem;
    text-align: center;
  }
}
.home_main_cp {
  font-size: 2.5rem;
  color: #2764db;
  line-height: 2.45;
}
@media (max-width: 768px) {
  .home_main_cp {
    font-size: 1.25rem;
    text-align: center;
  }
}
.home_main_cp strong {
  background-color: #fff;
  box-decoration-break: clone;
  display: inline;
  padding: 10px 20px;
}
@media (max-width: 768px) {
  .home_main_cp strong {
    padding: 4px 10px;
  }
}
.home_main_txt {
  margin-top: 10px;
}
@media (max-width: 768px) {
  .home_main_txt {
    font-size: 0.875rem;
    text-align: center;
  }
}
.home_main_btn {
  margin-top: 40px;
}
@media (max-width: 768px) {
  .home_main_btn {
    margin: 20px auto 0;
  }
}

.home_probrem {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  background-color: #f5f5f9;
  overflow: inherit;
}
.home_probrem::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_probrem::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_probrem {
    padding: 40px 16px;
  }
}
.home_probrem::before {
  content: "Problem";
  left: 0;
}
.home_probrem_list {
  display: grid;
  gap: 1.6666666667cqw;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
  .home_probrem_list {
    gap: 8px;
    grid-template-columns: repeat(2, 1fr);
  }
}
.home_probrem_list_item {
  font-size: 1.125rem;
  background-color: #fff;
  border-radius: 20px;
  padding: 2.5cqw;
}
@media (min-width: 769px), print {
  .home_probrem_list_item {
    font-weight: 700;
  }
}
@media (max-width: 768px) {
  .home_probrem_list_item {
    font-size: 0.875rem;
    border-radius: 10px;
    padding: 10px;
  }
}
.home_probrem_list_img {
  margin-bottom: 10px;
}
.home_probrem_arrow {
  background: url("../images/home/bg-home-problem-triangle.svg") center top/contain no-repeat;
  bottom: -140px;
  color: #fff;
  height: 80px;
  left: 50%;
  padding-top: 15px;
  position: absolute;
  text-align: center;
  transform: translateX(-50%);
  width: 192px;
}
@media (max-width: 768px) {
  .home_probrem_arrow {
    font-size: 0.625rem;
    bottom: -65px;
    height: 50px;
    padding-top: 8px;
    width: 120px;
  }
}

@media (min-width: 769px), print {
  .home_bgmap {
    background: url("../images/common/bg-com-map.svg") center 214px/4430px auto no-repeat;
  }
}

.home_solution {
  padding: 60px 16px 0;
}
@media (max-width: 768px) {
  .home_solution {
    background: url("../images/common/bg-com-map.svg") right 55% bottom -380px/2190px auto no-repeat;
    padding-top: 40px;
  }
}
@media (max-width: 768px) {
  .home_solution_ttl {
    font-size: 1.5rem;
  }
}
.home_solution_ttl strong {
  background: linear-gradient(to bottom, transparent 50%, #f4e935 50%);
  color: #000;
}
.home_solution_ttl_logo {
  font-size: 1.5rem;
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 10px;
}
@media (max-width: 768px) {
  .home_solution_ttl_logo {
    font-size: 0.875rem;
  }
}
.home_solution_ttl_logo img {
  display: block;
  width: 600px;
}
@media (max-width: 768px) {
  .home_solution_ttl_logo img {
    width: 250px;
  }
}
@media (min-width: 769px), print {
  .home_solution_list {
    display: grid;
    column-gap: 1.6666666667cqw;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 100px;
  }
}
.home_solution_list_item {
  background-color: #fff;
  border: 3px solid #2764db;
  border-radius: 20px;
  padding: 27px;
}
@media (min-width: 769px), print {
  .home_solution_list_item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
  }
}
@media (max-width: 768px) {
  .home_solution_list_item {
    margin-top: 16px;
    padding: 16px;
  }
}
.home_solution_list_ttl {
  font-size: 1.5rem;
  color: #2764db;
  margin-bottom: 15px;
  text-align: center;
}
@media (max-width: 768px) {
  .home_solution_list_ttl {
    font-size: 1.125rem;
    margin-bottom: 10px;
  }
}
.home_solution_list_btn {
  margin: 20px auto 0;
  width: min(210px, 100%);
}
@media (max-width: 768px) {
  .home_solution_list_btn {
    margin-top: 10px;
  }
}
.home_solution_list_btn a {
  font-size: 1rem;
}
.home_solution_list_btn a::after {
  height: 10px;
  margin-left: 10px;
  mask-image: url("../images/icon/ico-arrow-b.svg");
  width: 10px;
}
.home_solution_resource {
  font-size: 1.125rem;
  background: url("../images/home/img-home-solution.webp") right bottom/50cqw auto no-repeat;
  padding-bottom: 100px;
}
@media (max-width: 768px) {
  .home_solution_resource {
    font-size: 1rem;
    background-position: center bottom;
    background-size: 295px auto;
    padding-bottom: 240px;
    padding-top: 40px;
  }
}
@media (min-width: 769px), print {
  .home_solution_resource_inner {
    width: min(640px, 80%);
  }
}
.home_solution_resource_ttl {
  font-size: 2rem;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .home_solution_resource_ttl {
    font-size: 1.25rem;
    margin-bottom: 20px;
    text-align: center;
  }
}
.home_solution_resource_ttl strong {
  color: #2764db;
}
.home_solution_resource_sttl {
  margin-top: 2em;
}
@media (max-width: 768px) {
  .home_solution_resource_sttl {
    margin-top: 1.5em;
  }
}

.home_feature {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.home_feature::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_feature::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .home_feature {
    padding: 40px 16px;
  }
}
.home_feature::before {
  content: "Feature";
  right: 0;
}
.home_feature_list {
  display: grid;
  gap: 80px;
  grid-template-columns: 1fr;
}
@media (max-width: 768px) {
  .home_feature_list {
    gap: 20px;
  }
}
@media (min-width: 769px), print {
  .home_feature_item {
    align-items: start;
    display: grid;
    gap: 5cqw;
    grid-template-areas: "img content";
    grid-template-columns: 50% 1fr;
  }
}
@media (max-width: 768px) {
  .home_feature_item:nth-of-type(odd) .home_feature_item_img {
    padding-right: 16px;
  }
}
.home_feature_item:nth-of-type(odd) .home_feature_item_img::before {
  left: 100px;
}
@media (max-width: 768px) {
  .home_feature_item:nth-of-type(odd) .home_feature_item_img::before {
    left: 16px;
  }
}
@media (min-width: 769px), print {
  .home_feature_item:nth-of-type(even) {
    grid-template-areas: "content img";
    grid-template-columns: 1fr 50%;
  }
}
@media (max-width: 768px) {
  .home_feature_item:nth-of-type(even) .home_feature_item_img {
    padding-left: 16px;
  }
}
.home_feature_item:nth-of-type(even) .home_feature_item_img::before {
  right: 100px;
}
@media (max-width: 768px) {
  .home_feature_item:nth-of-type(even) .home_feature_item_img::before {
    right: 16px;
  }
}
.home_feature_item_img {
  grid-area: img;
  padding-bottom: 40px;
  position: relative;
  min-width: 0;
}
@media (max-width: 768px) {
  .home_feature_item_img {
    margin-bottom: 10px;
    padding-bottom: 16px;
  }
}
.home_feature_item_img::before {
  aspect-ratio: 30/19;
  background-color: #f5f5f9;
  border-radius: 20px;
  bottom: 0;
  content: "";
  position: absolute;
  width: 100%;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_feature_item_img::before {
    width: calc(100% - 16px);
  }
}
.home_feature_item_img img {
  border-radius: 20px;
  aspect-ratio: 30/19;
  display: block;
}
@media (min-width: 769px), print {
  .home_feature_item_content {
    grid-area: content;
    min-width: 0;
    padding-top: 60px;
  }
}
.home_feature_item_ttl {
  font-size: 2rem;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .home_feature_item_ttl {
    font-size: 1.125rem;
    margin-bottom: 10px;
  }
}
.home_feature_item_txt h4 {
  font-size: 1rem;
  color: #2764db;
}
@media (max-width: 768px) {
  .home_feature_item_txt h4 {
    font-size: 0.875rem;
  }
}
.home_feature_item_txt p {
  margin-bottom: 1lh;
}
@media (max-width: 768px) {
  .home_feature_item_txt p {
    margin-bottom: 1em;
  }
}
.home_feature_item_txt p:last-child {
  margin-bottom: 0;
}

.home_engineer {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  background-color: #ebf8ff;
}
.home_engineer::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_engineer::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_engineer {
    padding: 40px 16px;
  }
}
.home_engineer::before {
  content: "Engineers";
  left: 0;
}
.home_engineer_ttl {
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 768px) {
  .home_engineer_ttl {
    font-size: 1rem;
    margin-bottom: 20px;
  }
}
.home_engineer_ttl strong {
  font-size: 2.5rem;
  display: block;
  font-weight: 700;
}
@media (max-width: 768px) {
  .home_engineer_ttl strong {
    font-size: 1.5rem;
  }
}
@media (min-width: 769px), print {
  .home_engineer_inner {
    align-items: center;
    display: grid;
    gap: 5cqw;
    grid-template-columns: 50% 1fr;
    margin-bottom: 60px;
  }
}
@media (max-width: 768px) {
  .home_engineer_inner {
    margin-bottom: 20px;
  }
}
@media (max-width: 768px) {
  .home_engineer_img {
    margin-bottom: 10px;
  }
}
.home_engineer_img img {
  border-radius: 20px;
}
.home_engineer_cp {
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .home_engineer_cp {
    font-size: 1.125rem;
  }
}
.home_engineer_content p {
  margin-top: 20px;
}
@media (max-width: 768px) {
  .home_engineer_content p {
    margin-top: 12px;
  }
}
.home_engineer_pick {
  background-color: #fff;
  border-radius: 20px;
  overflow: hidden;
}
.home_engineer_pick_ttl {
  font-size: 2rem;
  background-color: #2764db;
  color: #fff;
  padding: 15px;
  text-align: center;
}
@media (max-width: 768px) {
  .home_engineer_pick_ttl {
    font-size: 1rem;
    padding: 10px;
  }
}
.home_engineer_pick_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6666666667cqw;
  padding: 20px;
}
@media (max-width: 768px) {
  .home_engineer_pick_list {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 10px;
  }
}
.home_engineer_pick_item {
  font-size: 0.875rem;
  background-color: #f5f5f9;
  border-radius: 10px;
  padding: 20px;
  text-align: center;
}
@media (max-width: 768px) {
  .home_engineer_pick_item {
    padding: 10px;
  }
}
.home_engineer_pick_name {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .home_engineer_pick_name {
    font-size: 1rem;
    margin-bottom: 10px;
  }
}
.home_engineer_pick_skill {
  align-items: center;
  color: #2764db;
  display: flex;
  font-weight: 700;
  justify-content: center;
  gap: 0.5em;
  margin-bottom: 10px;
}
.home_engineer_pick_skill::before, .home_engineer_pick_skill::after {
  content: "－";
}

.home_skill {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.home_skill::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_skill::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .home_skill {
    padding: 40px 16px;
  }
}
.home_skill::before {
  content: "Skill";
  right: 0;
}
@media (min-width: 769px), print {
  .home_skill_inner {
    align-items: center;
    display: grid;
    gap: 5cqw;
    grid-template-columns: 1fr 50cqw;
    margin-bottom: 60px;
    margin-right: 3.3333333333cqw;
  }
}
@media (max-width: 768px) {
  .home_skill_inner {
    margin-bottom: 20px;
  }
}
.home_skill_ttl {
  font-size: 2rem;
}
@media (max-width: 768px) {
  .home_skill_ttl {
    font-size: 1.25rem;
  }
}
@media (max-width: 768px) {
  .home_skill_content {
    margin-bottom: 20px;
  }
}
.home_skill_content strong {
  color: #2764db;
}
@media (min-width: 769px), print {
  .home_skill_content p {
    font-size: 1.125rem;
    line-height: 2;
    margin-top: 1lh;
  }
}
@media (max-width: 768px) {
  .home_skill_content p {
    font-size: 1rem;
    margin-top: 1em;
  }
  .home_skill_content p br {
    display: none;
  }
}
.home_skill_element {
  background-color: #ebf8ff;
  border-radius: 20px;
  padding: 60px 40px;
  position: relative;
}
@media (max-width: 768px) {
  .home_skill_element {
    padding: 16px 10px;
  }
}
@media (min-width: 769px), print {
  .home_skill_element::before {
    background: url("../images/home/img-home-skill02.webp") center/contain no-repeat;
    bottom: 20px;
    content: "";
    height: 296px;
    right: 30px;
    position: absolute;
    width: 300px;
  }
}
.home_skill_element_ttl {
  font-size: 2rem;
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 768px) {
  .home_skill_element_ttl {
    font-size: 1.25rem;
    margin-bottom: 10px;
  }
}
.home_skill_element_ttl strong {
  color: #2764db;
}
.home_skill_element_inner {
  counter-reset: skill 0;
  display: grid;
  gap: 1.6666666667cqw;
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 768px) {
  .home_skill_element_inner {
    gap: 10px;
    grid-template-columns: 1fr;
  }
}
.home_skill_element_item {
  background-color: #fff;
  border-radius: 20px;
  padding: 2.5cqw;
  min-width: 0;
}
@media (max-width: 768px) {
  .home_skill_element_item {
    border-radius: 10px;
    padding: 10px;
  }
}
.home_skill_element_sttl {
  font-size: 1.125rem;
  color: #2764db;
  margin-bottom: 15px;
  padding-left: 41px;
  padding-top: 4px;
  position: relative;
}
@media (max-width: 768px) {
  .home_skill_element_sttl {
    font-size: 1rem;
    margin-bottom: 7px;
    padding-left: 35px;
    padding-top: 2px;
  }
}
.home_skill_element_sttl::before {
  background-color: #2764db;
  border-radius: 100%;
  color: #fff;
  content: counter(skill, decimal-leading-zero);
  counter-increment: skill 1;
  height: 36px;
  left: 0;
  line-height: 36px;
  position: absolute;
  text-align: center;
  top: 0;
  width: 36px;
}
@media (max-width: 768px) {
  .home_skill_element_sttl::before {
    height: 30px;
    line-height: 30px;
    width: 30px;
  }
}
.home_skill_element_list {
  font-size: 0.875rem;
  display: grid;
  gap: 10px;
  grid-template-columns: 100px 1fr;
  margin-top: 20px;
}
@media (max-width: 768px) {
  .home_skill_element_list {
    font-size: 0.75rem;
    grid-template-columns: 70px 1fr;
    margin-top: 10px;
  }
}
.home_skill_element_list_ttl {
  background-color: #f5f5f9;
  border-radius: 10px;
  display: grid;
  place-items: center;
}
@media (max-width: 768px) {
  .home_skill_element_list_ttl {
    font-size: 0.625rem;
    border-radius: 6px;
  }
}
.home_skill_element_list ul li {
  padding-left: 1em;
  position: relative;
}
.home_skill_element_list ul li::before {
  content: "・";
  left: 0;
  position: absolute;
}

.home_plan {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  background-color: #ebf8ff;
}
.home_plan::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_plan::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_plan {
    padding: 40px 16px;
  }
}
.home_plan::before {
  content: "Pricing plan";
  left: 0;
}
.home_plan_txt {
  text-align: center;
}
.home_plan_initial {
  font-size: 1.5rem;
  background-color: #fff;
  border-radius: 20px;
  font-weight: 700;
  margin: 40px auto 56px;
  padding: 10px 60px 15px;
  width: fit-content;
}
@media (max-width: 768px) {
  .home_plan_initial {
    font-size: 1.125rem;
    border-radius: 10px;
    margin-bottom: 10px;
    margin-top: 20px;
    padding: 10px 30px;
  }
}
.home_plan_initial strong {
  font-size: 2.5rem;
  color: #2764db;
}
@media (max-width: 768px) {
  .home_plan_initial strong {
    font-size: 2rem;
  }
}
@media (max-width: 768px) {
  .home_plan_scroll {
    overflow-x: auto;
    padding-top: 16px;
  }
}
.home_plan_tbl {
  table-layout: fixed;
}
@media (max-width: 768px) {
  .home_plan_tbl {
    min-width: 520px;
  }
}
.home_plan_tbl th {
  color: #fff;
}
.home_plan_tbl th,
.home_plan_tbl td {
  font-size: 1.125rem;
  font-weight: 700;
  height: 80px;
  padding: 10px;
  text-align: center;
  vertical-align: middle;
}
@media (max-width: 768px) {
  .home_plan_tbl th,
  .home_plan_tbl td {
    font-size: 0.875rem;
    padding: 5px;
  }
}
.home_plan_tbl thead th {
  border-left: 2px solid #ebf8ff;
  border-radius: 20px 20px 0 0;
  position: relative;
}
@media (max-width: 768px) {
  .home_plan_tbl thead td {
    width: 16%;
  }
}
.home_plan_tbl tbody th,
.home_plan_tbl tbody td {
  border-top: 2px solid #ebf8ff;
}
.home_plan_tbl tbody th {
  font-size: 1rem;
  background-color: #888;
}
@media (max-width: 768px) {
  .home_plan_tbl tbody th {
    font-size: 0.875rem;
  }
}
.home_plan_tbl tbody td {
  background-color: #fff;
  border-left: 2px solid #ebf8ff;
}
.home_plan_tbl tbody td strong {
  font-size: 2rem;
}
@media (max-width: 768px) {
  .home_plan_tbl tbody td strong {
    font-size: 1.25rem;
  }
}
.home_plan_tbl_type01 {
  background-color: #2764db;
}
.home_plan_tbl_type01 strong {
  font-size: 1rem;
  background-color: #fff;
  border: 2px solid #2764db;
  border-radius: 30px;
  color: #2764db;
  display: block;
  line-height: 26px;
  left: 50%;
  position: absolute;
  text-align: center;
  transform: translate(-50%);
  top: -15px;
  width: 110px;
}
@media (max-width: 768px) {
  .home_plan_tbl_type01 strong {
    font-size: 0.875rem;
  }
}
.home_plan_tbl_type02 {
  background-color: #28acec;
}
.home_plan_tbl_type03 {
  background-color: #19babf;
}

.home_flow {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.home_flow::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_flow::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .home_flow {
    padding: 40px 16px;
  }
}
.home_flow::before {
  content: "Flow";
  right: 0;
}
.home_flow_before {
  margin: 0 auto 60px;
  max-width: 800px;
}
@media (max-width: 768px) {
  .home_flow_before {
    margin-bottom: 40px;
  }
}
.home_flow_before_item {
  background-color: #f5f5f9;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-top: 20px;
  padding: 30px 30px 30px 160px;
  position: relative;
}
@media (min-width: 769px), print {
  .home_flow_before_item {
    min-height: 160px;
  }
}
@media (max-width: 768px) {
  .home_flow_before_item {
    border-radius: 10px;
    padding: 16px 10px 16px 100px;
  }
}
.home_flow_before_item::before, .home_flow_before_item::after {
  content: "";
  position: absolute;
}
.home_flow_before_item::before {
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 50px 50px;
  border-radius: 100%;
  height: 100px;
  left: 30px;
  top: 50%;
  transform: translateY(-50%);
  width: 100px;
}
@media (max-width: 768px) {
  .home_flow_before_item::before {
    height: 80px;
    left: 10px;
    width: 80px;
  }
}
.home_flow_before_item::after {
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #888;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
}
.home_flow_before_item:first-of-type {
  margin-top: 0;
}
.home_flow_before_item:first-of-type::after {
  display: none;
}
.home_flow_before_item01::before {
  background-image: url("../images/home/ico-home-flow01.svg");
}
.home_flow_before_item02::before {
  background-image: url("../images/home/ico-home-flow02.svg");
}
.home_flow_before_item03::before {
  background-image: url("../images/home/ico-home-flow03.svg");
}
.home_flow_before_item04::before {
  background-image: url("../images/home/ico-home-flow04.svg");
}
.home_flow_before_item05::before {
  background-image: url("../images/home/ico-home-flow05.svg");
}
.home_flow_before_txt {
  font-size: 1.125rem;
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  font-weight: 700;
  gap: 5px 1em;
}
@media (max-width: 768px) {
  .home_flow_before_txt {
    font-size: 1rem;
  }
}
.home_flow_before_sub {
  font-size: 1rem;
  font-weight: 500;
}
@media (max-width: 768px) {
  .home_flow_before_sub {
    font-size: 0.875rem;
  }
}
.home_flow_after {
  display: grid;
  counter-reset: flow 0;
  position: relative;
}
@media (min-width: 769px), print {
  .home_flow_after {
    column-gap: 20px;
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 768px) {
  .home_flow_after {
    row-gap: 16px;
    grid-template-columns: 1fr;
  }
}
.home_flow_after::before {
  background-color: #ebf8ff;
  content: "";
  height: 4px;
  position: absolute;
  width: 75%;
  z-index: 1;
}
@media (min-width: 769px), print {
  .home_flow_after::before {
    left: 50%;
    top: 43px;
    transform: translateX(-50%);
  }
}
@media (max-width: 768px) {
  .home_flow_after::before {
    height: calc(100% - 100px);
    left: 23px;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
  }
}
.home_flow_after_item {
  display: grid;
  position: relative;
}
@media (min-width: 769px), print {
  .home_flow_after_item {
    grid-template-rows: subgrid;
    grid-row: span 2;
    padding-top: 110px;
  }
}
@media (max-width: 768px) {
  .home_flow_after_item {
    align-items: center;
    gap: 10px;
    grid-template-columns: 1fr 100px;
    padding-left: 60px;
  }
}
.home_flow_after_item::before {
  font-size: 2rem;
  background-color: #2764db;
  border: 10px solid #ebf8ff;
  border-radius: 100%;
  color: #fff;
  content: counter(flow, decimal-leading-zero);
  counter-increment: flow 1;
  font-weight: 700;
  height: 90px;
  line-height: 70px;
  position: absolute;
  text-align: center;
  width: 90px;
  z-index: 2;
}
@media (min-width: 769px), print {
  .home_flow_after_item::before {
    left: 50%;
    top: 0;
    transform: translateX(-50%);
  }
}
@media (max-width: 768px) {
  .home_flow_after_item::before {
    font-size: 1.125rem;
    border-width: 5px;
    height: 50px;
    line-height: 40px;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
  }
}
.home_flow_after_txt {
  font-size: 1.125rem;
  font-weight: 700;
}
@media (min-width: 769px), print {
  .home_flow_after_txt {
    margin-bottom: 10px;
    text-align: center;
  }
}
@media (max-width: 768px) {
  .home_flow_after_txt {
    font-size: 1rem;
  }
}
@media (min-width: 769px), print {
  .home_flow_after_img {
    margin: auto;
    max-width: 200px;
  }
}
@media (max-width: 768px) {
  .home_flow_after_img {
    height: 100px;
    width: 100px;
  }
}

.home_interview {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  background-color: #ebf8ff;
}
.home_interview::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_interview::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_interview {
    padding: 40px 16px;
  }
}
.home_interview::before {
  content: "Interview";
  left: 0;
}
.home_interview_list {
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .home_interview_list {
    margin-bottom: 20px;
  }
}
.home_interview_list li {
  padding-left: 10px;
  padding-right: 10px;
}
@media (max-width: 768px) {
  .home_interview_list li {
    padding-left: 8px;
    padding-right: 8px;
  }
}
.home_interview_list .splide__track {
  overflow: visible;
}
.home_interview_list .splide__arrow {
  background-color: rgba(39, 100, 219, 0.9);
  border-radius: 100%;
  opacity: 1;
  height: 70px;
  width: 70px;
}
@media (max-width: 768px) {
  .home_interview_list .splide__arrow {
    height: 40px;
    width: 40px;
  }
}
@media (hover: hover) {
  .home_interview_list .splide__arrow:hover {
    background-color: rgba(40, 172, 236, 0.9);
    opacity: 1;
  }
}
@media (hover: none) {
  .home_interview_list .splide__arrow:active {
    background-color: rgba(40, 172, 236, 0.9);
    opacity: 1;
  }
}
.home_interview_list .splide__arrow::before {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: #fff;
  content: "";
  height: 15px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
}
.home_interview_list .splide__arrow svg {
  display: none;
}
.home_interview_list .splide__arrow--prev {
  left: -30px;
}
.home_interview_list .splide__arrow--prev::before {
  mask-image: url("../images/icon/ico-arrow-l.svg");
}
@media (max-width: 1201px) {
  .home_interview_list .splide__arrow--prev {
    left: -6px;
  }
}
.home_interview_list .splide__arrow--next {
  right: -30px;
}
.home_interview_list .splide__arrow--next::before {
  mask-image: url("../images/icon/ico-arrow-r.svg");
}
@media (max-width: 1201px) {
  .home_interview_list .splide__arrow--next {
    right: -6px;
  }
}
.home_interview_item {
  transition: 0.3s opacity ease;
  background-color: #fff;
  border-radius: 20px;
  color: #000 !important;
  display: block;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  width: 370px;
}
@media (hover: hover) {
  .home_interview_item:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .home_interview_item:active {
    opacity: 0.7;
  }
}
@media (max-width: 768px) {
  .home_interview_item {
    width: 310px;
  }
}
.home_interview_img {
  aspect-ratio: 3/2;
}
.home_interview_img img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.home_interview_content {
  padding: 20px 30px 30px;
}
@media (max-width: 768px) {
  .home_interview_content {
    padding: 16px;
  }
}
.home_interview_content h3 {
  font-size: 1.125rem;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .home_interview_content h3 {
    font-size: 1rem;
    margin-bottom: 5px;
  }
}
.home_interview_preliminary_item {
  background-color: #fff;
  border-radius: 20px;
  color: #000 !important;
  display: block;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  width: 370px;
}
@media (max-width: 768px) {
  .home_interview_preliminary_item {
    width: 310px;
  }
}
.home_interview_preliminary_content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
@media (min-width: 769px), print {
  .home_interview_preliminary_content {
    padding: 30px;
  }
}
.home_interview_preliminary_content h3 {
  color: #2764db;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .home_interview_preliminary_content h3 {
    margin-bottom: 10px;
  }
}
.home_interview_preliminary_txt {
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .home_interview_preliminary_txt {
    margin-bottom: 10px;
  }
}
.home_interview_preliminary_cat {
  font-size: 0.75rem;
  color: #888;
}

.home_faq {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.home_faq::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_faq::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .home_faq {
    padding: 40px 16px;
  }
}
.home_faq::before {
  content: "FAQ";
  right: 0;
}
.home_faq_list {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .home_faq_list {
    gap: 16px;
    margin-bottom: 20px;
  }
}
.home_faq_list li {
  background-color: #f5f5f9;
  border-radius: 20px;
  padding: 40px 30px 40px 10px;
  min-width: 0;
}
@media (max-width: 768px) {
  .home_faq_list li {
    padding: 22px 16px 16px 6px;
  }
}
.home_faq_question, .home_faq_answer {
  padding-left: 70px;
  position: relative;
}
@media (max-width: 768px) {
  .home_faq_question, .home_faq_answer {
    padding-left: 44px;
  }
}
.home_faq_question::before, .home_faq_answer::before {
  font-size: 2.5rem;
  font-weight: 700;
  left: 0;
  line-height: 1;
  position: absolute;
  text-align: center;
  top: -10px;
  width: 70px;
}
@media (max-width: 768px) {
  .home_faq_question::before, .home_faq_answer::before {
    font-size: 1.5rem;
    top: -2px;
    width: 38px;
  }
}
.home_faq_question {
  font-size: 1.125rem;
  font-weight: 700;
  padding-bottom: 30px;
}
@media (max-width: 768px) {
  .home_faq_question {
    font-size: 1rem;
    padding-bottom: 20px;
  }
}
.home_faq_question::before {
  color: #2764db;
  content: "Q";
}
.home_faq_answer::before {
  color: #ff9100;
  content: "A";
}

.home_column {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  background-color: #ebf8ff;
}
.home_column::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_column::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_column {
    padding: 40px 16px;
  }
}
.home_column::before {
  content: "Column";
  left: 0;
}
.home_column_list {
  display: grid;
  gap: 3.3333333333cqw;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .home_column_list {
    gap: 10px;
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 20px;
  }
  .home_column_list .home_interview_content {
    padding: 10px;
  }
}
.home_column_list a {
  transition: 0.3s opacity ease;
  background-color: #fff;
  border-radius: 20px;
  color: #000;
  display: block;
  overflow: hidden;
  text-decoration: none;
}
@media (hover: hover) {
  .home_column_list a:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .home_column_list a:active {
    opacity: 0.7;
  }
}
@media (max-width: 768px) {
  .home_column_list a {
    border-radius: 10px;
  }
}
.home_column_date {
  font-size: 0.875rem;
  color: #888;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .home_column_date {
    font-size: 0.75rem;
    margin-bottom: 5px;
  }
}
.home_column_ttl {
  font-size: 1.125rem;
  display: -webkit-box;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media (max-width: 768px) {
  .home_column_ttl {
    font-size: 0.875rem;
  }
}
.home_column_cat {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
@media (max-width: 768px) {
  .home_column_cat {
    margin-top: 5px;
    gap: 3px;
  }
}
.home_column_cat li {
  font-size: 0.875rem;
  background-color: #f5f5f9;
  border-radius: 4px;
  color: #888;
  padding: 2px 10px;
}
@media (max-width: 768px) {
  .home_column_cat li {
    font-size: 0.75rem;
    padding: 0 6px;
  }
}

.home_vision {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 190px 16px 0;
}
.home_vision::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_vision::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .home_vision {
    padding-top: 100px;
  }
}
.home_vision::before {
  content: "Vision";
  z-index: 3;
}
@media (min-width: 769px), print {
  .home_vision::before {
    right: 0;
  }
}
@media (max-width: 768px) {
  .home_vision::before {
    left: 0;
  }
}
.home_vision::after {
  background: linear-gradient(to left, rgba(39, 100, 219, 0.6), rgba(40, 172, 236, 0.6)), url("../images/home/bg-home-vision.webp") center/cover no-repeat;
  content: "";
  height: 600px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
}
.home_vision_wrap {
  padding-bottom: 100px;
  z-index: 2;
}
@media (min-width: 769px), print {
  .home_vision_wrap {
    padding-top: 110px;
  }
  .home_vision_wrap::before, .home_vision_wrap::after {
    background-color: #ebf8ff;
    bottom: 0;
    content: "";
    position: absolute;
    top: 0;
    z-index: -1;
  }
  .home_vision_wrap::before {
    right: 50%;
    width: 90vw;
  }
  .home_vision_wrap::after {
    border-radius: 0 50px 50px 0;
    left: 0;
    width: 75cqw;
  }
}
@media (max-width: 768px) {
  .home_vision_wrap {
    padding-bottom: 40px;
  }
}
.home_vision_inner {
  position: relative;
}
@media (min-width: 769px), print {
  .home_vision_inner {
    margin-bottom: 60px;
    width: 66.6666666667cqw;
  }
}
@media (max-width: 768px) {
  .home_vision_inner {
    padding: 40px 16px 40px 0;
  }
}
.home_vision_inner p {
  margin-top: 1lh;
}
@media (max-width: 768px) {
  .home_vision_inner p {
    margin-top: 1em;
  }
}
.home_vision_inner::before {
  content: "";
  position: absolute;
}
@media (min-width: 769px), print {
  .home_vision_inner::before {
    background: url("../images/home/img-home-vision01.webp") center/contain no-repeat;
    bottom: -7.5cqw;
    height: 33.3333333333cqw;
    left: 100%;
    width: 33.3333333333cqw;
  }
}
@media (max-width: 768px) {
  .home_vision_inner::before {
    background-color: #ebf8ff;
    border-radius: 0 30px 30px 0;
    bottom: 0;
    right: 0;
    top: 0;
    width: calc(100vw - 16px);
    z-index: -1;
  }
}
.home_vision_ttl {
  text-align: left;
}
.home_vision_sttl {
  font-size: 2rem;
  color: #2764db;
}
@media (min-width: 769px), print {
  .home_vision_sttl {
    margin-top: 40px;
  }
}
@media (max-width: 768px) {
  .home_vision_sttl {
    font-size: 1.125rem;
  }
  .home_vision_sttl br {
    display: none;
  }
}
.home_vision_list {
  counter-reset: vision 0;
  display: grid;
  gap: 1.6666666667cqw;
  grid-template-columns: repeat(5, 1fr);
}
@media (max-width: 768px) {
  .home_vision_list {
    grid-template-columns: repeat(2, 1fr);
    margin: 20px auto 0;
    width: fit-content;
  }
}
.home_vision_list_item button {
  font-size: 1.3333333333cqw;
  aspect-ratio: 1/1;
  background-color: #2764db;
  border-radius: 100%;
  color: #fff;
  font-weight: 700;
  position: relative;
  text-decoration: none;
  width: 100%;
}
@media (max-width: 768px) {
  .home_vision_list_item button {
    font-size: 0.875rem;
  }
}
@media (hover: hover) {
  .home_vision_list_item button:hover {
    background-color: #28acec;
  }
}
@media (hover: none) {
  .home_vision_list_item button:active {
    background-color: #28acec;
  }
}
.home_vision_list_item button::before, .home_vision_list_item button::after {
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
}
.home_vision_list_item button::before {
  color: #91d4f5;
  content: "Vision" counter(vision, decimal-leading-zero);
  counter-increment: vision 1;
  top: 20px;
}
@media (max-width: 768px) {
  .home_vision_list_item button::before {
    font-size: 0.625rem;
    top: 14px;
  }
}
.home_vision_list_item button::after {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: #fff;
  bottom: 20px;
  content: "";
  height: 2cqw;
  mask-image: url("../images/icon/ico-circleplus.svg");
  width: 2cqw;
}
.home_vision_modal {
  counter-reset: visionM 0;
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (max-width: 768px) {
  .home_vision_modal {
    gap: 10px;
  }
}
.home_vision_modal li {
  background-color: #ebf8ff;
  border-radius: 20px;
  padding: 25px 20px 25px 140px;
  position: relative;
}
@media (max-width: 768px) {
  .home_vision_modal li {
    border-radius: 10px;
    padding: 100px 16px 16px;
  }
}
.home_vision_modal li::before {
  background-color: #2764db;
  border-radius: 100px;
  color: #fff;
  content: "Vision" counter(visionM, decimal-leading-zero);
  counter-increment: visionM 1;
  font-weight: 700;
  display: grid;
  height: 100px;
  left: 20px;
  place-items: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100px;
}
@media (max-width: 768px) {
  .home_vision_modal li::before {
    font-size: 0.75rem;
    height: 70px;
    left: 50%;
    top: 16px;
    transform: translateX(-50%);
    width: 70px;
  }
}
.home_vision_modal_ttl {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .home_vision_modal_ttl {
    font-size: 1rem;
  }
}

.home_company {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.home_company::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .home_company::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .home_company {
    padding: 40px 16px;
  }
}
.home_company::before {
  content: "Company";
  right: 0;
}
@media (min-width: 769px), print {
  .home_company_list {
    display: grid;
    grid-template-columns: 27.5% 1fr;
    margin: auto;
    max-width: 800px;
  }
}
.home_company_list > dt,
.home_company_list > dd {
  min-width: 0;
}
@media (min-width: 769px), print {
  .home_company_list > dt,
  .home_company_list > dd {
    border-bottom: 1px solid #ced7db;
    margin-bottom: 20px;
    padding: 0 20px 20px 0;
  }
}
.home_company_list > dt {
  font-weight: 700;
}
@media (min-width: 769px), print {
  .home_company_list > dt {
    padding-left: 20px;
  }
}
@media (max-width: 768px) {
  .home_company_list > dt {
    margin-bottom: 10px;
  }
}
@media (max-width: 768px) {
  .home_company_list > dd {
    border-bottom: 1px solid #ced7db;
    margin-bottom: 16px;
    padding-bottom: 16px;
  }
  .home_company_list > dd:last-of-type {
    margin-bottom: 0;
  }
}
.home_company_list > dd p {
  margin-top: 1lh;
}
.home_company_list > dd p:first-child {
  margin-top: 0;
}
.home_company_business dt {
  font-weight: 700;
  margin-top: 1lh;
}
.home_company_business dt:first-of-type {
  margin-top: 0;
}
.home_company_business ol {
  counter-reset: business 0;
}
.home_company_business ol li {
  padding-left: 1.5em;
  position: relative;
}
.home_company_business ol li::before {
  content: counter(business) ".";
  counter-increment: business 1;
  left: 0;
  position: absolute;
}

.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 textarea {
  font-size: 1rem;
  background-color: #fff;
  border: none;
  border-radius: 4px;
  line-height: 1.6;
  padding: 10px 12px;
  width: 100%;
}
.wpcf7 textarea {
  display: block;
  height: 110px;
}

.contact {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
  overflow: inherit;
}
.contact::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #ebf8ff;
  z-index: -1;
}
@media (max-width: 768px) {
  .contact::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #ebf8ff;
  }
}
@media (max-width: 768px) {
  .contact {
    padding: 40px 16px;
  }
}
.contact::before {
  content: "Contact";
  right: 0;
  top: -90px;
}
@media (max-width: 768px) {
  .contact::before {
    top: -10px;
  }
}
.contact_intro {
  text-align: center;
}
.contact_intro p {
  margin-bottom: 20px;
}
.contact_form {
  background-color: #f5f5f9;
  border-radius: 20px;
  margin-top: 50px;
  padding: 80px 10cqw;
}
@media (max-width: 768px) {
  .contact_form {
    margin-top: 20px;
    padding: 30px 20px;
  }
}
.contact_form dl {
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .contact_form dl {
    margin-bottom: 20px;
  }
}
.contact_form dl dt {
  font-size: 0.875rem;
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}
.contact_form dl dd {
  margin-bottom: 20px;
}
.contact_form_pp {
  margin-bottom: 40px;
  text-align: center;
}
@media (max-width: 768px) {
  .contact_form_pp {
    margin-bottom: 20px;
  }
}
.contact_form .wpcf7-not-valid-tip {
  color: #ee5633;
  margin-top: 5px;
}
.contact_form_btn {
  margin: auto;
  position: relative;
  max-width: 500px;
}
.contact_form_btn input {
  font-size: 1.5rem;
  align-items: center;
  background: linear-gradient(to right, #ff9100 0%, #ee5633 50%, #ff9100 100%);
  background-size: 200% 100%;
  color: #fff;
  border-radius: 100px;
  display: flex;
  justify-content: center;
  font-weight: 700;
  height: 83px;
  overflow: hidden;
  padding: 10px;
  text-align: center;
  text-decoration: none;
  transition: 0.3s background ease;
  width: 100%;
}
@media (max-width: 768px) {
  .contact_form_btn input {
    font-size: 1rem;
    height: 52px;
  }
}
@media (hover: hover) {
  .contact_form_btn input:hover {
    background-position: 100% 0;
  }
}
@media (hover: none) {
  .contact_form_btn input:active {
    background-position: 100% 0;
  }
}
.contact_form_btn .wpcf7-spinner {
  left: 50%;
  margin: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.contact_sns {
  margin: 40px auto;
  text-align: center;
}
.contact_sns_ttl {
  align-items: center;
  display: flex;
  justify-content: center;
  gap: 0.5em;
  margin-bottom: 20px;
}
.contact_sns_ttl::before, .contact_sns_ttl::after {
  background-color: currentColor;
  content: "";
  height: 1px;
  width: 16px;
}
.contact_sns_ttl::before {
  transform: rotate(45deg);
}
.contact_sns_ttl::after {
  transform: rotate(-45deg);
}

.required {
  font-size: 0.75rem;
  background-color: #ee5633;
  border-radius: 4px;
  color: #fff;
  display: block;
  padding: 0 6px;
}

.column::before {
  content: "Column";
}
.column_catbox {
  align-items: center;
  background-color: #fff;
  border-radius: 20px;
  display: flex;
  gap: 40px;
  margin-bottom: 60px;
  padding: 40px;
}
@media (max-width: 768px) {
  .column_catbox {
    border-radius: 10px;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    margin-bottom: 20px;
  }
}
.column_catbox h3 {
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .column_catbox h3 {
    font-size: 1.125rem;
  }
}
.column_catbox_list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.column_catbox_list li a {
  font-size: 0.875rem;
  background-color: #f5f5f9;
  border-radius: 4px;
  color: #888;
  padding: 3px 10px;
  text-decoration: none;
  display: block;
}
@media (max-width: 768px) {
  .column_catbox_list li a {
    font-size: 0.75rem;
  }
}
@media (hover: hover) {
  .column_catbox_list li a:hover {
    background-color: #2764db;
    color: #fff;
  }
}
@media (hover: none) {
  .column_catbox_list li a:active {
    background-color: #2764db;
    color: #fff;
  }
}
.column_catbox_list li a.current {
  background-color: #2764db;
  color: #fff;
}

.column_content {
  background-color: #fff;
  border-radius: 20px;
  padding: 80px 100px;
}
@media (max-width: 768px) {
  .column_content {
    border-radius: 10px;
    padding: 20px;
  }
}
.column_content_datelist {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  margin-bottom: 15px;
}
@media (max-width: 768px) {
  .column_content_datelist {
    margin-bottom: 6px;
  }
}
.column_content_datelist li {
  font-size: 0.875rem;
  color: #888;
  padding-left: 24px;
  position: relative;
}
@media (max-width: 768px) {
  .column_content_datelist li {
    font-size: 0.75rem;
  }
}
.column_content_datelist li::before {
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: currentColor;
  content: "";
  height: 20px;
  left: 0;
  position: absolute;
  top: 2px;
  width: 20px;
}
.column_content_date::before {
  mask-image: url(../images/icon/ico-time.svg);
}
.column_content_update::before {
  mask-image: url(../images/icon/ico-update.svg);
}
.column_content h1 {
  font-size: 2.5rem;
  margin-bottom: 15px;
}
@media (max-width: 768px) {
  .column_content h1 {
    font-size: 1.25rem;
    margin-bottom: 6px;
  }
}

.column_others {
  overflow: hidden;
  position: relative;
  z-index: 2;
  padding: 100px 16px;
}
.column_others::before {
  font-size: 12.5rem;
  color: transparent;
  font-weight: 700;
  line-height: 1.4;
  position: absolute;
  top: 0;
  -webkit-text-stroke: 2px #fff;
  z-index: -1;
}
@media (max-width: 768px) {
  .column_others::before {
    font-size: 3.75rem;
    -webkit-text-stroke: 1px #fff;
  }
}
@media (max-width: 768px) {
  .column_others {
    padding: 40px 16px;
  }
}
.column_others::before {
  content: "Others";
  left: 0;
}