@charset "utf-8";

/* CSS Document */
a.more {
  display: none;
}

/*==================================================
02: common
==================================================*/
:root {
  --height_header: 0px;
  --height_fix_footer: 0px;
  --section: min(200px, 20vh);
  --max_width: 70%;

  --base_width: 1330px;
  --base_color: #4d4d4d;
  --base_bg: #f5f5f5;

  --c_main: #1e8296;
  --c_sub: #0a2846;
  --c_acc: #0082d2;

  --c_gry01: #eee;
  --c_gry02: #b3b3b3;

  --font_Outfit: "Outfit";
  --font_Roboto: "Roboto";
  --icons: "Material Symbols Outlined";

  --transition: 0.5s;
  --transform_arrow: 5px;
}
@media (max-width: 1200px) {
  :root {
    --section: 80px;
    --max_width: 90%;
    --base_width: 100%;
  }
}

[lang="ja"] {
  --font_base: "Noto Sans JP";
}
[lang="en"] {
  --font_base: "Noto Sans";
}
[lang="ko"] {
  --font_base: "Noto Sans KR";
}

a[href=""] {
  pointer-events: all;
}

/*----------------------------------------
common
----------------------------------------*/
body {
  padding-top: var(--height_header);
}
@media (max-width: 1200px) {
  body {
    padding-bottom: var(--height_fix_footer);
  }
}

.w450 {
  width: min(var(--max_width), 450px);
  margin-inline: auto;
}
.w750 {
  width: min(var(--max_width), 750px);
  margin-inline: auto;
}
.w840 {
  width: min(var(--max_width), 840px);
  margin-inline: auto;
}
.w1080 {
  width: min(var(--max_width), 1080px);
  margin-inline: auto;
}
.w1450 {
  width: min(var(--max_width), 1450px);
  margin-inline: auto;
}

.sec_margin {
  margin: var(--section) auto;
}
.sec_padding {
  padding: var(--section) 0;
}

/* figure,img */
img {
  object-fit: cover;
}
.of_cont img,
img.of_cont {
  object-fit: contain;
}

/* [class*="grid_"] 等分 */
[class*="grid_"] {
  --gap: clamp(20px, 3vw, 50px);
  display: grid;
  grid-template-columns: repeat(var(--grid), 1fr);
  gap: var(--gap);
}
.grid_2c {
  --grid: 2;
}
.grid_3c {
  --grid: 3;
}
.grid_4c {
  --grid: 4;
}
@media (max-width: 1200px) {
  [class*="grid_"] {
    --gap: 30px;
    --grid: 1;
  }
  [class*="grid_"].sp_2c {
    --grid: 2;
  }
}

/* .box_2c 按分 */
.box_2c {
  --gap: clamp(20px, 3vw, 50px);
  --box: 30% 1fr;
  display: grid;
  grid-template-columns: var(--box);
  align-items: flex-start;
  gap: var(--gap);
}
@media (min-width: 1201px) {
  .box_2c.reverse > *:first-child {
    order: 1;
  }
}
@media (max-width: 1200px) {
  .box_2c {
    --gap: 30px;
    grid-template-columns: 1fr;
  }
}

/* .tereco */
@media (min-width: 1201px) {
  .tereco > *:nth-child(even) .box_2c {
    --box: 1fr 30%;
  }
  .tereco > *:nth-child(even) .box_2c > *:first-child {
    order: 1;
  }
}

/* .dist_ */
[class*="dist_"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--distance);
}
.dist_10 {
  --distance: 10px;
}
.dist_20 {
  --distance: var(--margin20);
}
.dist_30 {
  --distance: var(--margin30);
}
.dist_40 {
  --distance: var(--margin40);
}
.dist_50 {
  --distance: var(--margin50);
}
.dist_100 {
  --distance: var(--margin100);
}

/*----------------------------------------
font
----------------------------------------*/
body .fs10 {
  font-size: 1rem;
}
body .fs12 {
  font-size: 1.2rem;
}
body .fs14 {
  font-size: 1.4rem;
}
body .fs16 {
  font-size: 1.6rem;
}
body .fs18 {
  font-size: 1.8rem;
}
body .fs20 {
  font-size: 2rem;
}
body .fs22 {
  font-size: 2.2rem;
}
body .fs24 {
  font-size: 2.4rem;
}
body .fs26 {
  font-size: 2.6rem;
}
body .fs28 {
  font-size: 2.8rem;
}
body .fs30 {
  font-size: 3rem;
}
body .fs32 {
  font-size: 3.2rem;
}
body .fs34 {
  font-size: 3.4rem;
}
body .fs35 {
  font-size: 3.5rem;
}
body .fs38 {
  font-size: min(2vw, 3.8rem);
}
body .fs40 {
  font-size: min(2.1vw, 4rem);
}
body .fs45 {
  font-size: min(2.4vw, 4.5rem);
}
body .fs48 {
  font-size: min(2.5vw, 4.8rem);
}
body .fs50 {
  font-size: 5rem;
}
@media (max-width: 1200px) {
  body .fs16,
  body .fs18 {
    font-size: 1.4rem;
  }
  body .fs20,
  body .fs22 {
    font-size: 1.6rem;
  }
  body .fs24,
  body .fs26 {
    font-size: 1.8rem;
  }
  body .fs28,
  body .fs30,
  body .fs32 {
    font-size: 2rem;
  }
  body .fs34,
  body .fs35 {
    font-size: 2.2rem;
  }
  body .fs38,
  body .fs40 {
    font-size: 2.4rem;
  }
  body .fs45 {
    font-size: 2.6rem;
  }
  body .fs48 {
    font-size: 2.8rem;
  }
  body .fs50 {
    font-size: 3rem;
  }
}

/* .ff_ */
.ff_en01 {
  font-family: var(--font_Outfit);
}

/* color */
.fc_wht {
  color: #fff;
}
.fc_main {
  color: var(--c_main);
}
.fc_gry02 {
  color: var(--c_gry02);
}

/*----------------------------------------
background
----------------------------------------*/
.bg_wht {
  background-color: #fff;
}
.bg_main_10 {
  background-color: color-mix(in srgb, var(--c_main) 10%, #fff);
}
.bg_sub {
  background-color: var(--c_sub);
}

/* .bg_img */
*:has(> .bg_img),
*:has(> .bg_movie) {
  position: relative;
}
.bg_img,
.bg_movie {
  position: absolute;
  z-index: -1;
  inset: 0;
}
.bg_movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*----------------------------------------
[class*="btn_"]
----------------------------------------*/
[class*="btn_"] {
  -webkit-appearance: none;
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-width: 360px;
  width: fit-content;
  min-height: 50px;
  margin: 0px auto;
  padding: 20px;
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
  color: var(--btn_color);
  background-color: var(--btn_bg);
  transition: var(--transition);
  overflow: hidden;
}
[lang="en"] [class*="btn_"] {
  font-size: 1.6rem;
}

[class*="btn_"]:hover {
  opacity: 1;
  color: var(--btn_bg);
}
[class*="btn_"]::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: var(--btn_color);
  transform-origin: 0% 50%;
  transform: scaleX(0);
  transition: var(--transition);
}
[class*="btn_"]:hover::before {
  transform: scaleX(1);
}

[class*="btn_"] > * {
  flex: 1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}
@media (max-width: 1200px) {
  [class*="btn_"] {
    min-width: auto;
    width: 90%;
    font-size: 1.6rem;
  }
  [class*="btn_"].ml0 {
    margin-left: auto;
  }
}

/* [class*="btn_"].L.R */
[class*="btn_"].L::before,
[class*="btn_"].R::after {
  --size: 1.8em;
  --mask: url(../images/btn_arrow.svg) center center / contain no-repeat;
  content: "";
  aspect-ratio: 31 / 18;
  display: block;
  width: var(--size);
  height: auto;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}
[class*="btn_"].R:hover::after {
  transition: var(--transition);
  translate: var(--transform_arrow) 0;
}

/* [class*="btn_"] > * */
[class*="btn_"] > *::before,
[class*="btn_"] > *::after {
  display: block;
  width: var(--size);
  height: auto;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}

/* .btn_A */
.btn_A {
  --btn_color: var(--c_main);
  --btn_bg: #fff;
  min-width: 180px;
  min-height: 36px;
  padding: 5px 10px;
  border: 2px solid var(--btn_color);
}
.btn_A p {
  justify-content: flex-start;
}

/* .btn_B */
.btn_B {
  --btn_color: #fff;
  --btn_bg: var(--c_acc);
  min-height: 54px;
  padding: 10px 20px;
  background: linear-gradient(
    90deg,
    rgba(0, 130, 210, 1) 0%,
    rgba(0, 80, 195, 1) 100%
  );
  border-radius: 1000px;
  filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.3));
}
.btn_B p {
  justify-content: center;
}
.btn_B p::before {
  --size: 1.5em;
  content: "";
  aspect-ratio: 18 / 18;
}
.btn_B[data-icon="consult"] {
  --mask: url(../images/cta_consult.svg) center center / contain no-repeat;
}
.btn_B[data-icon="document"] {
  --mask: url(../images/cta_document.svg) center center / contain no-repeat;
}

/* .cta_wrap */
.cta_wrap.box_2c {
  --gap: 30px;
  --box: repeat(auto-fit, minmax(300px, 1fr));
}
.cta_wrap .btn_B {
  min-width: auto;
  width: 100%;
}
@media (max-width: 1200px) {
  .cta_wrap.box_2c {
    --gap: 10px;
  }
}

.more {
  display: inline-grid;
  grid-auto-flow: column;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 5px 10px;
  color: #fff;
  border: 1px solid #fff;
}
.more::after {
  --size: 2em;
  --mask: url(../images/btn_arrow.svg) center center / contain no-repeat;
  content: "";
  aspect-ratio: 31 / 18;
  display: block;
  width: var(--size);
  height: auto;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}
.more:hover {
  background-color: var(--c_sub);
  border-color: var(--c_sub);
}

/*----------------------------------------
.tit
----------------------------------------*/
/* .titX */
.titX {
  font-weight: bold;
}
.titX span.en {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 0.8em;
  text-transform: uppercase;
  color: var(--c_main);
}
.titX span.en::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 1px;
  background-color: currentColor;
}

/* .titY */
.titY {
  position: relative;
  padding-bottom: 5px;
  font-weight: bold;
}
.titY::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 100%;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(
    to right,
    var(--c_main) 20%,
    color-mix(in srgb, var(--c_main) 10%, #fff) 20%
  );
  mix-blend-mode: multiply;
}

/* .titA */
.titA {
  font-weight: bold;
  font-family: var(--font_Outfit);
  line-height: 1.4;
}
.titA span.sub {
  display: block;
  font-size: 2rem;
}

/*----------------------------------------
.richtext
----------------------------------------*/
.richtext {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
.richtext a:not([href^="tel"]) {
  text-decoration: underline;
  color: var(--c_main);
}
.richtext a:not([href^="tel"]):hover {
  text-decoration: none;
}
.richtext em {
  color: var(--c_main);
}

/*----------------------------------------
.splide
----------------------------------------*/
/* .splide__arrow */
.splide__arrow {
  background: transparent;
}
.splide__arrow svg {
  fill: var(--c_main);
}

/* .splide__pagination */
.splide__pagination {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  margin-top: 10px;
}
.splide__pagination__page {
  background: color-mix(in srgb, var(--c_main) 50%, #fff);
}
.splide__pagination__page.is-active {
  background: var(--c_main);
}

/* isNavigation: true, */
.splide__track--nav > .splide__list > .splide__slide,
.splide__track--nav > .splide__list > .splide__slide.is-active {
  border: none;
}

/* .overflow_splide */
.overflow_splide {
  overflow: hidden;
}
.overflow_splide .splide {
  width: min(var(--max_width), var(--base_width));
  margin-inline: auto;
}
.overflow_splide .splide__track {
  overflow: visible;
}
.overflow_splide .splide__arrow {
  position: relative;
  top: auto;
  transform: none;
}
.overflow_splide .splide__arrow--prev {
  left: auto;
}
.overflow_splide .splide__arrow--next {
  right: auto;
}
.overflow_splide .splide__arrows {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

/*----------------------------------------
.parallax
----------------------------------------*/
.parallax + * {
  position: relative;
  z-index: 0;
}
.parallax {
  --parallax: 100%;
  min-height: var(--parallax);
  height: var(--parallax);
}
.parallax div {
  position: absolute;
  inset: 0;
  clip-path: inset(0);
}
.parallax span {
  position: fixed;
  inset: 0px;
  width: 100vw;
  height: 100vh;
}

/*----------------------------------------
.scroll_wrap
----------------------------------------*/
@media (max-width: 750px) {
  .scroll_wrap > * {
    width: calc(1px + 100%);
    pointer-events: none;
    overflow-x: scroll;
    overflow-y: hidden;
  }
  .scroll_wrap::-webkit-scrollbar,
  .scroll_wrap > *::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Edge */
  }
  .scroll_wrap > * > * {
    pointer-events: auto;
  }
}

/*----------------------------------------
header
----------------------------------------*/
header .sp {
  display: none;
}
@media (max-width: 1200px) {
  header .pc {
    display: none;
  }
  header .sp {
    display: block;
  }
}

header input[type="checkbox"] {
  display: none;
}
body:has(header input:checked) {
  overflow: hidden;
}
@media (max-width: 1200px) {
  body:has(header input:checked) header h1 .logo {
    background: url(../images/logo_wht.png) center center / contain no-repeat;
  }
  body:has(header input:checked) header .icon_language i::before {
    background-color: #fff;
  }
  body:has(header input:checked) header #hamburger ~ label span {
    background-color: #fff;
  }
}

header a {
  display: block;
}
header {
  position: fixed;
  z-index: 10;
  top: 0px;
  width: 100%;
  background-color: #fff;
}
header .header_wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  width: 98%;
  margin-inline: auto;
  padding: 15px 20px 10px;
}
body:has(header input#hamburger:checked) .header_wrap {
  background-color: var(--c_sub);
}
header .logo {
  width: 250px;
  height: auto;
  aspect-ratio: 980 / 184;
  background: url(../images/logo_blk.png) center center / contain no-repeat;
}
@media (max-width: 1200px) {
  header .header_wrap {
    padding: 10px;
  }
  header .logo {
    width: 150px;
  }
}

/* [class*="icon_"] */
[class*="icon_"] {
  position: relative;
  cursor: pointer;
}
[class*="icon_"] i {
  display: block;
  padding: 0 10px;
}
[class*="icon_"] i::before {
  content: "";
  display: block;
  width: auto;
  height: 15px;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: var(--c_main);
}
.icon_mail i::before {
  --mask: url(../images/icon_mailaddress.svg) center center / contain no-repeat;
  aspect-ratio: 219 / 17;
}
.icon_search i::before {
  --mask: url(../images/icon_search.svg) center center / contain no-repeat;
  aspect-ratio: 15 / 14;
}
.icon_language i::before {
  --mask: url(../images/icon_multilingual.svg) center center / contain no-repeat;
  aspect-ratio: 15 / 15;
}

/* .nav_main */
header .nav_main {
  display: grid;
  grid-auto-flow: column;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
  font-size: 1.4rem;
  font-weight: bold;
  color: var(--base_color);
}
header .nav_main li > a:not(.btn_contact) {
  margin-bottom: -4px;
  border-bottom: 4px solid transparent;
}
header .nav_main li > a:not(.btn_contact):hover {
  opacity: 1;
  border-bottom-color: var(--c_main);
}
.btn_contact {
  --btn_color: #fff;
  --btn_bg: var(--c_main);
  min-width: 165px;
  min-height: 40px;
  padding: 5px 10px;
  font-size: 1.6rem;
  line-height: 1;
  transition: none;
  border: 1px solid var(--btn_bg);
  border-radius: 1000px;
}
@media (max-width: 1200px) {
  header a {
    padding: 10px 0;
  }
  header .nav_main {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    justify-content: flex-start;
    gap: 0px;
    color: #fff;
  }
  header .nav_main li > a:not(.btn_contact) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid color-mix(in srgb, #fff 50%, transparent);
  }
  header .nav_main li > a:not(.btn_contact)::after {
    content: "keyboard_arrow_right";
    font-family: var(--icons);
    font-variation-settings: "wght" 300;
    font-size: 2em;
    line-height: 1;
  }
  .btn_contact {
    width: 100%;
    margin-top: 20px;
    padding: 15px;
  }
}

/* .nav_sub */
header .nav_sub {
  position: relative;
  display: grid;
  grid-auto-flow: column;
  justify-content: flex-end;
  align-items: center;
  gap: 0px;
  margin-bottom: 10px;
}
header .nav_sub > *:not(:first-child) {
  border-left: 2px solid var(--c_main);
}
@media (max-width: 1200px) {
  header nav {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  header .nav_sub {
    margin-bottom: 0px;
  }
  header .nav_sub > *:not(:first-child) {
    border-left: none;
  }
  header .nav_sub .icon_mail,
  header .nav_sub .icon_search {
    display: none;
  }
}

/* header .search_wrap */
header .search_wrap form {
  --distance: var(--margin20);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--distance);
}
header .search_wrap input[type="text"] {
  padding: 5px;
  background-color: #fff;
  border: 1px solid;
}
header .search_wrap .feas_action input {
  min-width: auto;
  min-height: auto;
  padding: 5px 20px;
}
@media (min-width: 1201px) {
  header .search_wrap {
    display: none;
    position: fixed;
    top: var(--height_header);
    right: 20px;
    padding: 20px;
    background: #fff;
  }
  header .search_wrap.show {
    display: block;
  }
}
@media (max-width: 1200px) {
  header .search_wrap {
    margin-top: 20px;
    color: #fff;
  }
  header .search_wrap input[type="text"] {
    width: 100%;
    color: var(--base_color);
  }
}

/* header .icon_language */
#language ~ .language_wrap {
  visibility: hidden;
}
#language:checked ~ .language_wrap {
  visibility: visible;
}
#language ~ .language_wrap {
  position: fixed;
  z-index: -1;
  top: var(--height_header);
  right: 20px;
}
header .language_wrap .inner {
  padding: 5px 0;
  white-space: nowrap;
  color: var(--base_color);
  background-color: #fff;
  border-radius: 5px;
}
header .language_wrap .inner a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  padding: 5px 20px;
}
header .language_wrap .inner a::after {
  content: "keyboard_arrow_right";
  font-family: var(--icons);
  line-height: 1;
  color: var(--c_main);
}
header .language_wrap .inner a:hover {
  opacity: 1;
  background-color: var(--c_gry01);
}
@media (max-width: 1200px) {
  header .icon_language i {
    padding: 0;
  }
  header .icon_language i::before {
    height: 26px;
  }
  #language ~ .language_wrap {
    top: 0px;
    right: 0px;
    width: 100%;
    height: auto;
    padding: calc(var(--height_header) + 20px) 20px 20px;
    background-color: var(--c_sub);
    filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.3));
  }
  header .language_wrap .inner {
    color: #fff;
    background-color: var(--c_cub);
  }
  header .language_wrap .inner a {
    justify-content: center;
    border-bottom: 1px solid #fff;
  }
  header .language_wrap .inner a::after {
    display: none;
  }
}

/* #hamburger */
#hamburger ~ label,
header .toggle_nav .icon_mail {
  display: none;
}
@media (max-width: 1200px) {
  #hamburger ~ label {
    position: relative;
    display: grid;
    justify-content: center;
    align-items: center;
    width: 30px;
    aspect-ratio: 1 / 1;
    margin-left: auto;
  }
  #hamburger ~ label span {
    position: absolute;
    left: 50%;
    translate: -50% -50%;
    width: 100%;
    height: 2px;
    display: inline-block;
    background-color: var(--c_main);
  }
  #hamburger ~ label span:nth-of-type(1) {
    top: 20%;
  }
  #hamburger ~ label span:nth-of-type(2) {
    top: 50%;
  }
  #hamburger ~ label span:nth-of-type(3) {
    top: 80%;
  }
  #hamburger:checked ~ label span {
    translate: -50% -50%;
  }
  #hamburger:checked ~ label span:nth-of-type(1) {
    top: 50%;
    left: 50%;
    rotate: -45deg;
  }
  #hamburger:checked ~ label span:nth-of-type(2) {
    display: none;
  }
  #hamburger:checked ~ label span:nth-of-type(3) {
    top: 50%;
    left: 50%;
    rotate: 45deg;
  }
  /* .toggle_nav */
  #hamburger ~ .toggle_nav {
    visibility: hidden;
  }
  #hamburger:checked ~ .toggle_nav {
    visibility: visible;
  }
  #hamburger ~ .toggle_nav {
    position: fixed;
    z-index: -1;
    top: 0px;
    right: 0px;
    width: 100%;
    height: 100dvh;
    padding: calc(var(--height_header) + 20px) 20px 20px;
    background-color: var(--c_sub);
    filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.3));
    overflow-y: scroll;
  }
  header .toggle_nav .icon_mail {
    display: block;
  }
  header .toggle_nav .icon_mail i::before {
    width: 65%;
    margin: 0 auto;
  }
}

/* body:has([data-page])  */
body:has([data-page]) {
  padding-top: 0;
}
body:has([data-page]):not(.scroll) header {
  background-color: transparent;
}
body:has([data-page]):not(.scroll) header .logo {
  background: url(../images/logo_wht.png) center center / contain no-repeat;
}
body:has([data-page]):not(.scroll) header .nav_main {
  color: #fff;
}
body:has([data-page]):not(.scroll) header .nav_sub > *:not(:first-child) {
  border-color: #fff;
}
body:has([data-page]):not(.scroll) [class*="icon_"] i::before {
  background-color: #fff;
}
@media (max-width: 1200px) {
  body:has([data-page]):not(.scroll) #hamburger ~ label span {
    background-color: #fff;
  }
}

/*----------------------------------------
.fix_footer
----------------------------------------*/
.fix_footer {
  display: none;
}
@media (max-width: 1200px) {
  .fix_footer {
    bottom: calc(-1 * 100%);
    transition: var(--transition);
  }
  .scroll_footer .fix_footer {
    bottom: 0;
  }
  .fix_footer {
    display: block;
    position: fixed;
    z-index: 10;
    width: 100%;
    background-color: color-mix(in srgb, #fff 80%, transparent);
    backdrop-filter: blur(10px);
  }
  body:has(header input#hamburger:checked) .fix_footer {
    display: none;
  }

  .fix_footer .wrap {
    display: grid;
    grid-auto-flow: column;
    width: 60%;
    margin: 0 auto;
    padding: 8px 0;
  }
  .fix_footer .btn_contact {
    margin-top: 0px;
  }
}

/*----------------------------------------
.fix_pagetop
----------------------------------------*/
.fix_pagetop {
  position: fixed;
  right: min(100px, 6vw);
  bottom: min(200px, 11vw);
  z-index: 1000;
}
.fix_pagetop .figure {
  width: 50px;
}
.fix_pagetop a:hover .figure img {
  scale: 1;
}

/*----------------------------------------
footer
----------------------------------------*/
footer .catch {
  font-size: 5rem;
}
footer .logo {
  width: min(380px, 80%);
}
footer .wrap {
  --box: auto auto;
  --gap: 0px;
}
footer .wrap > * {
  height: 100%;
}
footer .wrap > *:first-child {
  margin-right: min(160px, 9vw);
  padding-right: 50px;
  border-right: 1px solid color-mix(in srgb, #fff 50%, transparent);
}
[lang="en"] footer .wrap > *:first-child {
  margin-right: min(130px, 7vw);
}
footer .sitemap {
  column-count: 2;
  gap: 20px;
}
footer .sitemap a,
footer .sitemap p {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 5px;
  padding: 5px 0;
  font-size: 1.6rem;
}
footer .sitemap a::after {
  content: "keyboard_arrow_right";
  font-family: var(--icons);
  font-size: 1.5em;
  line-height: 1;
  color: var(--c_main);
}
footer .sitemap .child_wrap {
  padding-left: 20px;
}
footer .sitemap .child_wrap a {
  font-size: 1.4rem;
  color: var(--c_gry02);
}
footer address {
  --gap: 10px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--gap);
}
footer address [class*="link_"] {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 2;
  align-items: center;
  line-height: 1;
}
footer address [class*="link_"] dt {
  display: flex;
  align-items: center;
  gap: 5px;
  padding-right: var(--gap);
  border-right: 1px solid;
}
footer address [class*="link_"] dt::before {
  --size: 1em;
  content: "";
  display: block;
  width: var(--size);
  height: auto;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}
footer address .link_tel dt::before {
  --mask: url(../images/icon_tel.svg) center center / contain no-repeat;
  aspect-ratio: 16 / 16;
}
footer address .link_tel dd {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
}
footer address .link_mail dt::before {
  --mask: url(../images/icon_mail.svg) center center / contain no-repeat;
  aspect-ratio: 16 / 12;
}
footer .copy {
  font-weight: 200;
}

@media (max-width: 1200px) {
  footer .catch {
    font-size: 3.5rem;
  }
  footer .wrap > *:first-child {
    margin-right: 0;
    padding-right: 0;
    border-right: none;
  }
}

/*--------------------------------------------------------------------------------
TOP
--------------------------------------------------------------------------------*/
/*----------------------------------------
.mv
----------------------------------------*/
.mv {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: calc(var(--height_header) + 50px) 0 50px;
  aspect-ratio: 1920 / 780;
}
.mv_splide {
  height: 80%;
  max-height: 330px;
}
.mv_splide * {
  height: 100%;
}
.mv_splide .figure img {
  object-fit: contain;
  object-position: left top;
}
@media (max-width: 1200px) {
  .mv {
    height: 90vh;
    padding: calc(var(--height_header) + 20px) 0 20px;
    aspect-ratio: auto;
  }
}

/*----------------------------------------
.info_splide
----------------------------------------*/
.info_splide .titA {
  font-size: 5.5rem;
}
.info_splide .figure img {
  aspect-ratio: 350 / 220;
}
.info_splide .post_infoA {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
}
.info_splide .post_infoA::after {
  content: "keyboard_arrow_right";
  font-family: var(--icons);
  font-size: 2em;
  line-height: 1;
  color: var(--c_main);
}
.info_splide a:hover .post_infoA::after {
  transition: var(--transition);
  translate: var(--transform_arrow) 0;
}
.info_splide .post_infoA span {
  font-weight: bold;
  color: var(--c_main);
}

.info_splide .splide__arrows {
  display: flex;
  align-items: center;
  font-size: 2.5rem;
}
.info_splide .splide__arrow--prev,
.info_splide .splide__arrow--next {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  transform: none;
  width: auto;
  height: auto;
  opacity: 1;
}
.info_splide .splide__arrow--prev {
  order: -1;
}
.info_splide .splide__arrow--prev:hover svg {
  transition: var(--transition);
  translate: calc(-1 * var(--transform_arrow)) 0;
}
.info_splide .splide__arrow--next:hover svg {
  transition: var(--transition);
  translate: var(--transform_arrow) 0;
}
.info_splide .splide__pagination-number {
  display: flex;
  align-items: center;
  font-size: 1.2em;
  font-weight: bold;
  font-family: var(--font_Roboto);
  line-height: 1;
  color: var(--c_main);
}
.info_splide .splide__pagination-number span {
  padding: 0 10px;
}
.info_splide .splide__pagination-number span:first-child {
  border-right: 3px solid;
}
@media (max-width: 1200px) {
  .info_splide .tit_wrap {
    --distance: 30px;
    grid-template-columns: auto 1fr;
  }
  .info_splide .titA {
    font-size: 4rem;
  }
  .info_splide .splide__arrows {
    font-size: 2rem;
  }
}

/*----------------------------------------
.intro
----------------------------------------*/
.intro .wrap::before,
.intro .wrap::after {
  content: "";
  position: absolute;
  display: block;
  height: auto;
  z-index: -1;
}
.intro .wrap::before {
  top: 60px;
  left: -290px;
  width: 336px;
  aspect-ratio: 336 / 425;
  background: url(../images/intro_img01.png) center center / contain no-repeat;
}
.intro .wrap::after {
  top: 70px;
  right: -220px;
  width: 180px;
  aspect-ratio: 180 / 430;
  background: url(../images/intro_img02.png) center center / contain no-repeat;
}
@media (max-width: 1200px) {
  .intro .wrap::before,
  .intro .wrap::after {
    display: none;
  }
}

/*----------------------------------------
.product_splide
----------------------------------------*/
.product::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: calc(var(--product_tit) / 2);
  left: max(10%, calc((100vw - var(--base_width)) / 2 - 50px));
  right: max(10%, calc((100vw - var(--base_width)) / 2 - 50px));
  bottom: calc(var(--product_thumb) / 2);
  border: 1px solid var(--c_main);
}
.product_tit {
  display: flex;
  justify-content: center;
  align-items: center;
}
.product_tit .inner {
  display: inline-block;
  padding: 0 50px;
  background-color: var(--base_bg);
}

.product_splide {
  color: #fff;
}
.product_splide .w450 {
  margin-left: 0;
}
.product_splide h3::before {
  --mask: var(--img) center center / contain no-repeat;
  content: "";
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 450 / 110;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background: linear-gradient(to bottom, #fff, #e5e5e6 100%);
}
.product_splide h3 span {
  --border: 1px solid #fff;
  display: block;
  margin-top: 20px;
  padding: 10px;
  text-align: center;
  border-top: var(--border);
  border-bottom: var(--border);
}

.product_splide .splide__arrow,
.solution_splide .splide__arrow {
  width: 30px;
  height: auto;
  aspect-ratio: 29 / 90;
  background: url(../images/splide_arrow.svg) center center / contain no-repeat;
  opacity: 1;
}
.product_splide .splide__arrow--next,
.solution_splide .splide__arrow--next {
  transform-origin: center;
  transform: translateY(-50%) scale(-1, 1);
}
.product_splide .splide__pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.5em;
}
.product_thumb li {
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  color: var(--c_main);
  background-color: #fff;
  border: 1px solid var(--c_main);
  transition: var(--transition);
}
.product_thumb li:hover,
.product_thumb li.is-active {
  color: #fff;
  transform: translateY(-3px);
}
.product_thumb li.is-active {
  background-color: var(--c_main);
}
.product_thumb li::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--c_main);
  transform-origin: 0% 50%;
  transform: scaleX(0);
  transition: var(--transition);
}
.product_thumb li:hover::before {
  transform: scaleX(1);
}

.product_thumb li::after {
  --mask: var(--img) center center / contain no-repeat;
  content: "";
  display: block;
  width: 100%;
  height: 50px;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}
[lang="en"] .product_thumb li::after {
  height: 70px;
}

@media (max-width: 750px) {
  .product::before {
    display: none;
  }
  .product_splide {
    color: var(--base_color);
  }
  .product_splide .splide__arrow {
    top: calc((100% * (180 / 375)) / 2);
  }
  .product_splide h3::before {
    background: var(--c_main);
  }
  .product_splide h3 span {
    --border: 1px solid var(--base_color);
  }
  .product_splide [class*="bg_"] {
    position: relative;
    inset: auto;
    aspect-ratio: 375 / 180;
  }
  .product_splide .w450 {
    margin-left: auto;
  }
  .product_thumb {
    display: none;
  }
}

/*----------------------------------------
.esg
----------------------------------------*/
.esg .inner {
  padding: 50px 0;
  background: url(../images/esg_bg02.png) right center / contain no-repeat
    color-mix(in srgb, var(--c_sub) 90%, transparent);
}
@media (min-width: 751px) {
  .esg_splide .splide__list {
    --gap: 10px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap);
  }
  .esg_splide .splide {
    visibility: visible;
  }
}
@media (min-width: 1201px) {
  .esg_splide .splide__list {
    grid-template-columns: repeat(4, 1fr);
  }
}
.esg_splide .splide__slide {
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.esg_splide .splide__slide:nth-child(odd) {
  --color: color-mix(in srgb, var(--c_sub) 80%, transparent);
}
.esg_splide .splide__slide:nth-child(even) {
  --color: color-mix(in srgb, var(--c_sub) 50%, transparent);
}
.esg_splide .splide__slide::after {
  content: "";
  width: 50px;
  height: auto;
  aspect-ratio: 3 / 2;
  margin: -1px auto 0;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  background-color: var(--color);
}
.esg_splide .wrap {
  min-height: 250px;
  padding: 20px;
  background-color: var(--color);
}
@media (max-width: 750px) {
  .esg .inner {
    padding: 20px 0;
    background: color-mix(in srgb, var(--c_sub) 90%, transparent);
  }
  .esg_splide .splide__slide {
    padding: 0 20px;
  }
  .esg_splide .splide__arrow {
    width: 15px;
  }
  .esg_splide .splide__arrow--prev {
    left: 0;
  }
  .esg_splide .splide__arrow--next {
    right: 0;
  }
  .esg_splide .splide__arrow svg {
    fill: #fff;
  }
}

/*----------------------------------------
.solution_
----------------------------------------*/
/* .solution_bg */
*:has(> .solution_bg) {
  position: relative;
}
.solution_bg {
  position: absolute;
  inset: 0;
  bottom: 40%;
  z-index: -1;
}
.solution_bg * {
  height: 100%;
}
@media (max-width: 1200px) {
  .solution_bg {
    display: none;
  }
}

/* .solution_splide */
.solution_splide {
  padding-top: 30px;
}
.solution_splide .splide__arrow--prev {
  left: -50px;
}
.solution_splide .splide__arrow--next {
  right: -50px;
}

.solution_splide .wrap,
.solution_splide .wrap > *,
.solution_splide .inner {
  position: relative;
  height: 100%;
}
.solution_splide .wrap.box_2c {
  --gap: 0px;
  --box: 50% 1fr;
  color: #fff;
  background: var(--img) center center / cover no-repeat;
}
.solution_splide .wrap > * {
  background: var(--img) left center / cover no-repeat;
}
.solution_splide .wrap > *::after {
  content: var(--label);
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 8px 20px;
  font-weight: bold;
  text-align: center;
  background-color: color-mix(in srgb, var(--c_main) 90%, transparent);
}
.solution_splide .inner {
  opacity: 0;
  padding: 50px;
  background-color: color-mix(in srgb, var(--c_main) 90%, transparent);
}
.solution_splide .inner h3::before {
  content: var(--label);
}

/* .is-visible */
.solution_splide .splide__slide.is-visible .wrap > * {
  background: none;
}
.solution_splide .splide__slide.is-visible .wrap > *::after {
  display: none;
}
.solution_splide .splide__slide.is-visible .inner {
  opacity: 1;
}

@media (max-width: 1200px) {
  .solution_splide {
    padding-top: 0px;
  }
  .solution_splide .splide {
    display: none;
  }
}

/* .solution_thumb */
.solution_thumb {
  margin-top: 50px;
}
.solution_thumb .grid_6c {
  --grid: 6;
  --gap: 10px;
}
.solution_thumb li {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  padding: 5px 10px;
  font-size: 1.4rem;
  color: var(--c_main);
  background-color: #fff;
  transition: var(--transition);
}
.solution_thumb li:hover,
.solution_thumb li.is-active {
  color: #fff;
  transform: translateY(-3px);
}
.solution_thumb li.is-active {
  background-color: var(--c_main);
}
.solution_thumb li::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--c_main);
  transform-origin: 0% 50%;
  transform: scaleX(0);
  transition: var(--transition);
}
.solution_thumb li:hover::before {
  transform: scaleX(1);
}
@media (max-width: 1200px) {
  .solution_thumb {
    margin-top: 0px;
  }
  .solution_thumb .grid_6c {
    --grid: 2;
  }
  .solution_thumb li {
    padding: 5px;
  }
}

/*----------------------------------------
.solution_splide .modal
----------------------------------------*/
.solution_splide .modal {
  display: none;
}
@media (max-width: 1200px) {
  section:has(.solution_bg) {
    z-index: 1;
  }
  .solution_splide .modal {
    display: none;
    justify-content: center;
    align-items: center;
    position: fixed;
    inset: 0;
    padding: 20px;
    background: rgba(0, 0, 0, 0.5);
  }
  .solution_splide .modal_wrap {
    position: relative;
    max-height: 80dvh;
    overflow-y: auto;
  }
  .solution_splide .modal_close {
    cursor: pointer;
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 5px;
    font-size: 40px;
    font-weight: 100;
    line-height: 1;
    color: #fff;
    background-color: var(--c_main);
    aspect-ratio: 1 / 1;
    z-index: 1;
  }

  .solution_splide .wrap.box_2c {
    background: none;
  }
  .solution_splide .wrap > *:first-child {
    aspect-ratio: 3 / 2;
  }
  .solution_splide .wrap > *:last-child {
    background: none;
  }
  .solution_splide .wrap > *::after {
    display: none;
  }
  .solution_splide .inner {
    opacity: 1;
    padding: 30px;
    font-size: 1.4rem;
  }
  .solution_thumb li div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 5px;
    width: 100%;
  }
  .solution_thumb li div::after {
    content: "keyboard_arrow_right";
    font-family: var(--icons);
  }
}

/*----------------------------------------
.lead_contact
----------------------------------------*/
.lead_contact {
  --radius: 20px;
  padding: 80px 0;
  border-radius: var(--radius);
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
}
.lead_contact .bg_img {
  clip-path: inset(0px round var(--radius));
}
.lead_contact .bg_img img {
  object-position: 80% center;
}
.list_check li::before {
  content: "check";
  font-family: var(--icons);
  font-size: 1.5em;
  line-height: 1;
  color: var(--c_main);
}
.list_check li {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 2.5rem;
}
@media (max-width: 1200px) {
  .lead_contact {
    padding: 30px 0;
  }
  .lead_contact .bg_img {
    display: none;
  }
  .lead_contact .w450 {
    width: 100%;
  }
  .list_check li {
    font-size: 1.6rem;
  }
}

/*----------------------------------------
.about_splide
----------------------------------------*/
.about_splide,
.about_bg ~ * {
  position: relative;
  z-index: 0;
}
.about_bg * {
  height: 100%;
}
.about_bg .splide {
  position: absolute;
  inset: -1px;
  clip-path: inset(0);
}
.about_bg .splide .splide__track {
  position: fixed;
  inset: 0px;
  width: 100vw;
  height: 100vh;
}
.blur-slide .figure {
  position: relative;
  overflow: hidden;
}
.blur-slide .figure::before {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(var(--blur));
}

/*----------------------------------------
.list_partners
----------------------------------------*/
.list_partners {
  margin-left: 20px;
  padding-left: 20px;
  border-left: 1px solid #fff;
}
@media (min-width: 1201px) {
  .list_partners {
    column-count: 2;
    column-gap: 40px;
  }
  .list_partners li {
    break-inside: avoid;
  }
}

/*----------------------------------------
.about
----------------------------------------*/
.about_wrap {
  padding-left: max(15%, calc((100vw - var(--base_width)) / 2));
}
@media (max-width: 1200px) {
  .about_wrap {
    padding-left: 5%;
  }
  .about_wrap > *:not(.box_2c),
  .about .about_thumb {
    padding-right: 5%;
  }
  .about .box_2c > *:last-child {
    order: -1;
  }
}

/* .btn_about */
.btn_about {
  --btn_color: var(--c_sub);
  --btn_bg: #fff;
  width: 100%;
  min-height: 110px;
  padding: 15px 30px;
  text-align: left;
  color: #fff;
  background-color: transparent;
  border: 1px solid #fff;
}
.btn_about:hover {
  border-color: var(--btn_color);
}
.btn_about .inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
}
.btn_about .inner::before {
  --size: 3.5em;
  --mask: var(--img) center center / contain no-repeat;
  content: "";
  aspect-ratio: 1 / 1;
  display: block;
  width: var(--size);
  height: auto;
  -webkit-mask: var(--mask);
  mask: var(--mask);
  background-color: currentColor;
}
.btn_about p {
  font-family: var(--font_Roboto);
  line-height: 1.2;
}
.btn_about p span.sub {
  font-size: 1.4rem;
}
.btn_about p span.main {
  display: block;
  font-size: 2rem;
}
@media (max-width: 1200px) {
  .btn_about {
    min-height: 90px;
    padding: 20px;
  }
  .btn_about .inner::before {
    --size: 2.5em;
  }
  .btn_about p span.sub {
    font-size: 1.2rem;
  }
  .btn_about p span.main {
    display: block;
    font-size: 1.6rem;
  }
}

/* .about_thumb */
.about_thumb .is-active .btn_about {
  background-color: var(--btn_color);
  border-color: var(--btn_color);
}
@media (max-width: 1200px) {
  .about_thumb .is-active {
    display: none;
  }
}

/* .about_main */
.about_main .wrap {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid #fff;
}
.about_main .wrap h3 {
  line-height: 1.4;
}
.about_main .figure {
  width: var(--width);
}
@media (max-width: 1200px) {
  .about_main .w840 {
    width: 95%;
  }
  .about_main .btn_about {
    background-color: var(--btn_color);
    border-color: var(--btn_color);
  }
}

/*--------------------------------------------------------------------------------
下層
--------------------------------------------------------------------------------*/
.page_header {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 330px;
  padding: 20px;
}
.page_header.cat-news {
  background: url(../images/info_news_bg.jpg) center center / cover no-repeat;
}
.page_header.cat-case {
  background: url(../images/info_case_bg.jpg) right center / cover no-repeat;
}
.page_header.cat-technical {
  background: url(../images/info_technical_bg.jpg) right center / cover
    no-repeat;
}
@media (max-width: 1200px) {
  .page_header {
    min-height: 150px;
  }
}

/*----------------------------------------
article
----------------------------------------*/
/* time */
time {
  font-size: 1.7rem;
  font-weight: 500;
  font-family: var(--font_Roboto);
  color: var(--c_gry02);
}

/* .post_ */
.post_infoB {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
}
.post_infoB::before {
  content: "";
  width: 1em;
  height: auto;
  aspect-ratio: 1 / 1;
  background: url(../images/icon_tag.svg) center center / contain no-repeat;
}
.post_infoB span {
  font-size: 0.8em;
  font-weight: bold;
  color: var(--c_main);
  border-bottom: 2px solid var(--c_main);
}
.post_cat {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* .archive_wrap */
[lang="ja"] .archive_wrap .wbase:not(:has(.archive_list))::before {
  content: "検索結果はありません";
}
[lang="en"] .archive_wrap .wbase:not(:has(.archive_list))::before {
  content: "No search results found.";
}
[lang="ko"] .archive_wrap .wbase:not(:has(.archive_list))::before {
  content: "검색결과 없음";
}

/* .archive_list */
.archive_list .figure img {
  aspect-ratio: 350 / 220;
}

/* .single_post */
.single_post .richtext {
  font-size: 1.8rem;
  line-height: 2;
}

/* .nav-links */
.nav-links,
.nav-links span,
.nav-links a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.nav-links {
  flex-wrap: wrap;
  gap: 10px;
}
.nav-links span,
.nav-links a {
  --size: 40px;
  width: var(--size);
  height: var(--size);
  color: var(--c_main);
  border: 1px solid var(--c_main);
}
.nav-links span.current,
.nav-links a:hover {
  color: #fff;
  background-color: var(--c_main);
}
.nav-links span.dots {
  background-color: transparent;
  border: none;
}

/*----------------------------------------
.archive_nav
----------------------------------------*/
.archive_nav a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 15px;
  font-size: 2.4rem;
  font-weight: bold;
  text-align: center;
}
.archive_nav a.current {
  color: #fff;
  background-color: var(--c_main);
}
.archive_nav a.current p {
  border-bottom: 5px solid #fff;
}
.archive_nav li {
  position: relative;
}
.archive_nav li:not(:first-child)::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 50%;
  background-color: var(--c_gry02);
}
@media (max-width: 1200px) {
  .archive_nav .wbase {
    width: 100%;
  }

  .archive_nav li:not(:first-child)::before {
    display: none;
  }
}

/*----------------------------------------
.feas_form
----------------------------------------*/
.feas_form form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 50px;
}
.feas_area,
.feas_area ul {
  display: flex;
  flex-flow: wrap;
  gap: 10px;
}
.feas_area p {
  width: 100%;
  font-size: 2.8rem;
  font-weight: bold;
}
.feas_area a,
.feas_area label {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 280px;
  min-height: 40px;
  padding: 2px 20px;
  font-size: 2rem;
  font-weight: bold;
  color: var(--c_main);
  background-color: #fff;
  border: 1px solid var(--c_gry01);
  border-radius: 1000px;
}
.feas_area a[aria-current="page"],
.feas_area label:has(input:checked) {
  color: #fff;
  background-color: var(--c_main);
}
.feas_area label input {
  display: none;
}
.feas_action {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}
.feas_action input {
  --btn_color: #fff;
  --btn_bg: var(--c_main);
  -webkit-appearance: none;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  min-width: 300px;
  width: fit-content;
  min-height: 50px;
  padding: 10px;
  text-align: center;
  color: var(--btn_color);
  background-color: var(--btn_bg);
  border: 2px solid var(--btn_bg);
}
@media (max-width: 1200px) {
  .feas_form form {
    gap: 30px;
  }
  .feas_area p {
    font-size: 2rem;
  }
  .feas_area a,
  .feas_area label {
    min-width: auto;
    font-size: 1.4rem;
  }
  .feas_action {
    flex-flow: column-reverse;
    gap: 10px;
  }
}

/*----------------------------------------
.wp-block-
----------------------------------------*/
.wp-block-heading {
  position: relative;
  margin: 100px 0 25px;
  padding-left: 20px;
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1.2;
  border-left: 5px solid var(--c_main);
}
.wp-block-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -20px;
  width: 100%;
  height: 0.5px;
  background-color: var(--c_gry02);
}
.wp-block-separator {
  border-top: 1px solid var(--c_gry02);
}
.wp-block-image {
  margin: 25px 0;
}
.wp-block-buttons {
  margin: 50px 0;
}

/*----------------------------------------
.related
----------------------------------------*/
.related .wrap {
  position: relative;
}
.related .wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--c_gry02);
}

/*----------------------------------------
.contact
----------------------------------------*/
.contact .wrap {
  position: relative;
  padding: var(--section) 50px;
}
.contact .wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--c_gry02);
}
.contact .cta_wrap.box_2c {
  --box: 1fr 1fr;
  --gap: 60px;
}
.contact .btn_B {
  min-height: 120px;
  padding: 20px;
  font-size: min(1.5vw, 3rem);
}
@media (max-width: 1200px) {
  .contact .wrap {
    padding: var(--section) 0;
  }
  .contact .cta_wrap.box_2c {
    --gap: 20px;
  }
  .contact .btn_B {
    min-width: auto;
    min-height: 60px;
    font-size: 1.6rem;
  }
}

/*----------------------------------------
.search
----------------------------------------*/
.search-list li {
  padding: 20px;
}
.search-list li:not(:first-child) {
  border-top: 1px solid;
}
.search-item-title {
  font-size: 2rem;
  font-weight: bold;
  color: var(--c_main);
}

/* ----------------------------------------
form
---------------------------------------- */
#form iframe {
  height: var(--iframe_pc);
}
@media (max-width: 520px) {
  #form iframe {
    height: var(--iframe_sp);
  }
}
