@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Noto+Sans+JP:wght@100..900&display=swap");
*,
::before,
::after {
 box-sizing: border-box;
 border-style: solid;
 border-width: 0;
}
html {
 line-height: 1.15;
 -webkit-text-size-adjust: 100%;
 -webkit-tap-highlight-color: transparent;
}
body {
 margin: 0;
}
main {
 display: block;
}
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
 margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
 font-size: inherit;
 font-weight: inherit;
 margin: 0;
}
ul,
ol {
 margin: 0;
 padding: 0;
 list-style: none;
}
dt {
 font-weight: 700;
}
dd {
 margin-left: 0;
}
hr {
 box-sizing: content-box;
 height: 0;
 overflow: visible;
 border-top-width: 1px;
 margin: 0;
 clear: both;
 color: inherit;
}
pre {
 font-family: monospace, monospace;
 font-size: inherit;
}
address {
 font-style: inherit;
}
a {
 background-color: transparent;
 text-decoration: none;
 color: inherit;
}
abbr[title] {
 text-decoration: underline dotted;
}
b,
strong {
 font-weight: bolder;
}
code,
kbd,
samp {
 font-family: monospace, monospace;
 font-size: inherit;
}
small {
 font-size: 80%;
}
sub,
sup {
 font-size: 75%;
 line-height: 0;
 position: relative;
 vertical-align: baseline;
}
sub {
 bottom: -0.25em;
}
sup {
 top: -0.5em;
}
svg,
img,
embed,
object,
iframe {
 vertical-align: bottom;
}
button,
input,
optgroup,
select,
textarea {
 -webkit-appearance: none;
 appearance: none;
 vertical-align: middle;
 color: inherit;
 font: inherit;
 background: transparent;
 padding: 0;
 margin: 0;
 border-radius: 0;
 text-align: inherit;
 text-transform: inherit;
}
[type="checkbox"] {
 -webkit-appearance: checkbox;
 appearance: checkbox;
}
[type="radio"] {
 -webkit-appearance: radio;
 appearance: radio;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
 cursor: pointer;
}
button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
 cursor: default;
}
:-moz-focusring {
 outline: auto;
}
select:disabled {
 opacity: inherit;
}
option {
 padding: 0;
}
fieldset {
 margin: 0;
 padding: 0;
 min-width: 0;
}
legend {
 padding: 0;
}
progress {
 vertical-align: baseline;
}
textarea {
 overflow: auto;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
 height: auto;
}
[type="search"] {
 outline-offset: -2px;
}
[type="search"]::-webkit-search-decoration {
 -webkit-appearance: none;
}
::-webkit-file-upload-button {
 -webkit-appearance: button;
 font: inherit;
}
label[for] {
 cursor: pointer;
}
details {
 display: block;
}
summary {
 display: list-item;
}
[contenteditable]:focus {
 outline: auto;
}
table {
 border-color: inherit;
}
caption {
 text-align: left;
}
td,
th {
 vertical-align: top;
 padding: 0;
}
th {
 text-align: left;
 font-weight: 700;
}
a {
 outline: none;
 color: inherit;
 text-decoration: none;
 transition: all 0.1s ease-in-out;
}
a:active,
a:hover {
 text-decoration: none;
}
a:focus,
*:focus {
 outline: none;
}
a:hover img {
 transition: all 0.5s ease-in-out;
}
i,
em {
 font-style: normal;
}
strong {
 font-weight: bold;
}
img {
 max-width: 100%;
 height: auto;
 vertical-align: middle;
 -ms-interpolation-mode: bicubic;
}
ul li {
 list-style-type: none;
}
table {
 border-collapse: collapse;
}
.object-fit {
 object-fit: cover;
 font-family: "object-fit: cover;";
 min-height: 100%;
}
.ind {
 text-indent: 1em;
}
.object-fit {
 display: block;
 object-fit: cover;
 object-position: 50% 50%;
 font-family: "object-fit: cover;";
 width: 100%;
 height: 100%;
}
.txhd {
 display: block;
 height: 0;
 overflow: hidden;
 font-size: 1rem;
 line-height: 2;
}
.ofyh {
 overflow-y: hidden;
}
.center {
 text-align: center;
}
.left {
 text-align: left;
}
.right {
 text-align: right;
}
.center_left {
 text-align: center;
}
.pc,
.is_pc {
 display: block;
}
.sp,
.is_sp,
.is_tb {
 display: none;
}
@-ms-viewport {
 width: auto !important;
 initial-scale: 1;
}
@media only screen and (max-width: 820px) {
 .is_tb {
  display: block;
 }
}
@media only screen and (max-width: 600px) {
 .pc {
  display: none;
 }
 .sp {
  display: block;
 }
 .is_pc {
  display: none;
 }
 .is_sp {
  display: block;
 }
 .is_tb {
  display: none;
 }
 .center_left {
  text-align: left;
 }
}
.en {
 font-family: "Inter", "Open Sans", "Helvetica Neue", Helvetica, Arial, Verdana, Roboto, "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif !important;
}
.min {
 font-family: "Times New Roman", "游明朝", YuMincho, "ヒラギノ明朝 Pr6 W6", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", "ＭＳ Ｐ明朝", "MS PMincho", Meiryo, serif;
}
.inter {
 font-family: "Inter" !important;
}
:root {
 /* Colors: */
 --color-blk: #000000;
 --color-wht: #ffffff;
 --color-base: #212121;
 --color-blu: #34e6ed;
 --color-blu2: #21cfd6;
 --color-blu3: #22f6ff;
 --color-ylw: #ffeb0a;
 --color-grn: #a1f000;
 --color-ft: #fafafa;
 --color-line: #d3d5d8;
 --color-gy1: #dbdbdb;
 --color-gy2: #f0f0f0;
 --ff-int: "Inter", sans-serif;
}

/* ==========================================================================
    Global
========================================================================== */
html {
 font-size: 10px;
 font-size: 62.5%;
 overflow-y: scroll;
 height: 100%;
 line-height: 1;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 -ms-text-size-adjust: 100%;
 -webkit-text-size-adjust: 100%;
}
body {
 color: var(--color-base);
 font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
 font-optical-sizing: auto;
 font-weight: 400;
 font-size: 1.6rem;
 line-height: 1;
 letter-spacing: 0.02em;
 width: 100%;
 -moz-text-size-adjust: 100%;
 -webkit-text-size-adjust: 100%;
 -o-text-size-adjust: 100%;
 -ms-text-size-adjust: 100%;
 text-size-adjust: 100%;
 -ms-width: calc(100% - (100vw - 100%));
 position: relative;
 background: var(--color-wht);
}
.c-svg-sprite {
 display: none;
 width: 0;
 height: 0;
 opacity: 0;
 overflow: hidden;
}
.l-wrapper {
 display: flex;
 flex-direction: column;
 position: relative;
 min-height: 100vh;
 overflow: hidden;
}

@media screen and (max-width: 820px) {
 body {
  min-width: unset;
  font-size: clamp(1.3rem, 3.73vw, 1.4rem);
 }
}

/* header
---------------------------------------------------------------------------------*/
.l-header {
 display: flex;
 justify-content: flex-end;
 position: relative;
 top: 0;
 left: 0;
 width: 100%;
 height: 110px;
 transition: all 0.4s ease-in-out;
}
.backlayer {
 display: block;
 position: fixed;
 top: 0;
 left: 0;
 width: 0;
 height: 100vh;
 background-color: var(--color-blu);
 transition: 0.6s cubic-bezier(0.08, 0.8, 0.315, 1);
 z-index: 4;
}
.hdlogo {
 position: absolute;
 top: 23px;
 left: 30px;
 z-index: 20;
 transition: all 0.6s ease;
 z-index: 3;
}
.hdlogo a {
 display: block;
 width: 76px;
 aspect-ratio: 76/60;
 transition: all 0.6s ease;
}
.hdlogo a span {
 display: block;
 width: 100%;
 height: 100%;
}
.hdlogo a span svg {
 width: 100%;
 height: 100%;
 fill: var(--color-blu);
}
.hdmenu {
 position: relative;
 display: flex;
 align-items: center;
 gap: 40px;
 height: 100%;
 padding-inline: 30px;
 z-index: 3;
 padding-block: 30px;
}
.hdmenu_list {
 display: flex;
 gap: 22px;
 height: 100%;
}
.hdmenu_item {
 display: flex;
 align-items: center;
 height: 100%;
 position: relative;
}
.hdmenu_item a {
 display: flex;
 align-items: center;
 position: relative;
 height: 100%;
 font-size: 1.5rem;
 font-family: var(--ff-int);
 font-weight: 600;
}
.hdmenu_item a:before {
 content: " ";
 position: absolute;
 height: 1px;
 width: 0;
 left: auto;
 right: 0;
 bottom: 10px;
 background-color: var(--color-base);
 transition-duration: 0.5s;
 transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
 pointer-events: none;
 z-index: 1;
}

/* hover */
@media screen and (min-width: 821px) {
 .hdmenu_item:hover > a:before {
  width: 100%;
  right: auto;
  left: 0;
 }
}

@media screen and (max-width: 820px) {
 .hdmenu {
  display: none;
 }
}

.hdnav {
 display: block;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 0;
 width: 100%;
 height: 100vh;
 overflow: hidden;
 transition: 120ms ease-in-out;
 z-index: 4;
 opacity: 0;
 pointer-events: none;
}
.hdnav-scroller {
 display: flex;
 align-items: center;
 justify-content: center;
 height: inherit;
 padding-block: 60px;
 padding-inline: 40px;
 min-height: 500px;
 height: 100vh;
 overflow-y: auto;
}
.hdnav_wrap {
 display: flex;
 gap: 140px;
 max-width: 1160px;
 opacity: 0;
 transform: translateY(50px);
 transition: 1.2s 1s ease;
}
.hdnav_sub {
 display: flex;
 flex-flow: column;
 gap: 30px;
 width: 50%;
}
.hdnav_logo {
 width: 160px;
}
.hdnav_logo .logo {
 display: block;
 width: 100%;
 aspect-ratio: 3 / 2;
 background: url(../images/common/logo.svg) no-repeat 0 0;
 background-size: contain;
}
.hdnav_main {
 display: flex;
 gap: 60px;
}
.hdnav_list {
 display: flex;
 flex-direction: column;
 gap: 20px;
}
.hdnav_item {
 display: block;
}
.hdnav_item a {
 display: flex;
 flex-direction: column;
 gap: 6px;
 color: var(--color-base);
 line-height: 1;
 transition: all 0.2s linear;
 white-space: nowrap;
}
.hdnav_item a .en {
 font-size: min(4.8rem, 5.1vw);
 font-weight: 700;
}
.hdnav_item a .jp {
 font-size: min(1.4rem, 1.49vw);
 font-weight: 600;
}
.hdnav_item.other {
 margin-top: 20px;
}
.hdnav_item.other a .en {
 font-size: 2.2rem;
}
.hdnav_item.other a .jp {
 font-size: 1.2rem;
}

.hdbtn {
 display: flex;
 align-items: center;
 justify-content: center;
 position: fixed;
 top: -160px;
 right: 20px;
 width: 120px;
 height: 120px;
 transition: all 0.8s ease;
 z-index: 20;
}
.hdbtn::after {
 content: "";
 display: flex;
 align-items: center;
 justify-content: center;
 position: absolute;
 top: 0;
 left: 0;
 width: 120px;
 height: 120px;
 border-radius: 100%;
 background-color: var(--color-base);
 transition: all 0.3s ease;
 z-index: 0;
}
.hdbtn_icon {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 40px;
 height: 40px;
 position: relative;
 z-index: 2;
}
.hdbtn_icon .hdbtn_text {
 color: var(--color-wht);
 font-size: 1.2rem;
 font-family: var(--ff-int);
 font-weight: 600;
 transition: all 0.6s ease;
}
.hdbtn_icon span {
 position: absolute;
 top: 10px;
 left: 10px;
 width: 20px;
 height: 2px;
 background: var(--color-wht);
 transition: all 0.6s ease;
 opacity: 0;
}

/* -scroll */
.l-header.-scroll .hdbtn {
 top: 20px;
}

/* -open */
.l-header.-open .backlayer {
 width: 100%;
 transition: 0.6s cubic-bezier(0.08, 0.8, 0.315, 1);
}
.hdbtn.-open .hdbtn_icon span {
 top: 19px;
 opacity: 1;
}
.hdbtn.-open .hdbtn_icon .hdbtn_text {
 transform: translateY(20px);
 opacity: 0;
}
.l-header.-open .hdnav {
 opacity: 1;
 pointer-events: initial;
}
.l-header.-open .hdnav_wrap {
 opacity: 1;
 transform: translateY(0);
 transition: 0.6s cubic-bezier(0.08, 0.8, 0.315, 1) 0.5s;
}

/* hover */
@media screen and (min-width: 821px) {
 .hdnav_item > a:hover em:before {
  right: auto;
  left: 0;
  width: 100%;
 }
 .hdnav_item a:hover {
  opacity: 0.5;
 }
 .hdbtn:hover::after {
  transition: all 0.2s ease;
  -webkit-transform: scale(1.1, 1.1);
  transform: scale(1.1, 1.1);
 }
}

@media screen and (max-width: 820px) {
 .hdnav-scroller {
  align-items: flex-start;
  padding-top: 220px;
  padding-bottom: 120px;
 }
 .hdnav_wrap {
  flex-flow: column-reverse;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 75px;
  max-width: unset;
 }
 .hdnav_logo {
  width: min(240px, 29.26vw);
 }
 .hdnav_list {
  gap: 30px;
 }
 .hdnav_item a {
  gap: min(10px, 1.21vw);
 }
 .hdnav_item a .en {
  font-size: min(5.6rem, 6.82vw);
 }
 .hdnav_item a .jp {
  font-size: min(1.8rem, 2.19vw);
 }
 .hdnav_item.other {
  margin-top: 20px;
 }
 .hdnav_item.other a .en {
  font-size: min(3rem, 3.65vw);
 }
 .hdnav_item.other a .jp {
  font-size: min(1.3rem, 1.58vw);
 }
 .hdbtn {
  top: 20px;
 }
}

@media screen and (max-width: 600px) {
 .l-header {
  height: 66px;
 }
 .hdlogo {
  top: min(16px, 4.26vw);
  left: 5.33vw;
  z-index: 4;
 }
 .hdlogo a {
  width: min(44px, 11.73vw);
 }
 .hdnav-scroller {
  padding-block: 24vw;
  padding-inline: 8vw;
  justify-content: flex-start;
 }
 .hdnav_wrap {
  gap: min(70px, 18.66vw);
 }
 .hdnav_sub {
  width: 66.66%;
 }
 .hdnav_logo {
  width: 100%;
 }
 .hdnav_main {
  flex-direction: column;
  gap: min(15px, 4vw);
 }
 .hdnav_list {
  gap: min(15px, 4vw);
 }
 .hdnav_item a {
  gap: min(5px, 1.33vw);
 }
 .hdnav_item a .en {
  font-size: min(4.2rem, 11.2vw);
 }
 .hdnav_item a .jp {
  font-size: min(1.3rem, 3.46vw);
 }
 .hdnav_item.other {
  margin-top: 20px;
 }
 .hdnav_item.other a .en {
  font-size: min(2rem, 5.33vw);
 }
 .hdnav_item.other a .jp {
  font-size: min(1.2rem, 3.2vw);
 }
 .hdbtn {
  top: 8px;
  right: 6px;
  width: min(19.2vw, 72px);
  height: min(19.2vw, 72px);
 }
 /* -scroll */
 .l-header.-scroll .hdbtn {
  top: 8px;
 }
 .hdbtn::after {
  width: 100%;
  height: 100%;
 }
 .hdbtn_icon {
  width: min(10.66vw, 40px);
  height: min(10.66vw, 40px);
 }
 .hdbtn_icon .hdbtn_text {
  font-size: min(2.93vw, 1.1rem);
  font-weight: 500;
 }
 .hdbtn_icon span {
  top: min(2.66vw, 10px);
  left: min(2.66vw, 10px);
  width: min(5.33vw, 20px);
  height: 1px;
 }
 /* -open */
 .hdbtn.-open .hdbtn_icon span:nth-child(1) {
  top: min(5.33vw, 20px);
 }
}

/* Layout
---------------------------------------------------------------------------------*/
.c-red {
 color: var(--color-blu);
}
.c-base {
 color: var(--color-base);
}
.c-wht {
 color: var(--color-wht);
}
.c-base1:first-letter {
 color: var(--color-base);
}
.c-wht1:first-letter {
 color: var(--color-base);
}
.bg_red {
 background-color: var(--color-blu) !important;
}
.bg_wht {
 background-color: var(--color-wht) !important;
}
.br_lb {
 border-bottom-left-radius: 120px;
}
.br_rt {
 border-top-right-radius: 120px;
}
.pt0 {
 padding-top: 0 !important;
}
.mt1 {
 margin-top: 1em;
}
.mb1 {
 margin-bottom: 1em;
}
.l-container {
 width: auto;
 margin-inline: auto;
 padding-inline: 7.35cqw;
 position: relative;
}
.l-content {
 max-width: 960px;
 margin-inline: auto;
}
.l-section + .l-section {
 margin-top: 80px;
}
.more_btn {
 display: flex;
 justify-content: flex-end;
 margin-top: 30px;
}
.more_btn_center {
 display: flex;
 justify-content: center;
 margin-top: 30px;
}
@keyframes btn-in {
 0% {
  transform: scale(1);
 }
 100% {
  transform: scale(40);
 }
}
@keyframes btn-out {
 0% {
  transform: scale(40);
 }
 30% {
  transform: scale(1);
 }
 40% {
  transform: scale(2);
 }
 50% {
  transform: scale(1);
 }
 100% {
  transform: scale(1);
 }
}
@keyframes btn-in-large {
 0% {
  transform: scale(1);
 }
 100% {
  transform: scale(60);
 }
}
.a-button {
 display: inline-block;
 min-width: 240px;
 height: 80px;
}
.a-button a {
 display: flex;
 align-items: center;
 justify-content: space-between;
 z-index: 1;
 width: 100%;
 height: 100%;
 overflow: hidden;
 padding-inline: 35px 30px;
 color: var(--color-wht);
 background-color: var(--color-base);
 font-size: 1.8rem;
 font-weight: 500;
 line-height: 1.2;
 letter-spacing: 0.08em;
 border-radius: 9999rem;
 transition: all 0.2s ease;
 position: relative;
 cursor: pointer;
}
.a-button a em {
 display: block;
 position: relative;
 transition: all 0.2s ease;
 z-index: 2;
}
.a-button a span {
 width: 22px;
 height: 22px;
 margin-left: 20px;
 display: flex;
 justify-content: center;
 align-items: center;
 border-radius: 100%;
 background-color: var(--color-wht);
}
.a-button svg {
 width: 10px;
 height: 7.5px;
 fill: var(--color-base);
 transition: all 0.4s ease;
}
.a-button.s-button {
 min-width: 180px;
 height: 60px;
}
.a-button.s-button a {
 padding-inline: 30px 20px;
 font-size: 1.5rem;
 border-radius: 30px;
}
.b-button {
 display: inline-block;
 min-width: 170px;
 height: 50px;
}
.b-button a {
 display: flex;
 align-items: center;
 justify-content: space-between;
 z-index: 1;
 width: 100%;
 height: 100%;
 overflow: hidden;
 padding-inline: 28px 14px;
 color: var(--color-base);
 border: 1px solid var(--color-base);
 font-size: 1.3rem;
 font-weight: 500;
 line-height: 1.2;
 letter-spacing: 0.02em;
 border-radius: 9999rem;
 transition: all 0.2s ease;
 position: relative;
 cursor: pointer;
}
.b-button a em {
 display: block;
 position: relative;
 transition: all 0.2s ease;
 z-index: 2;
}
.b-button a span {
 width: 18px;
 height: 18px;
 margin-left: 20px;
 display: flex;
 justify-content: center;
 align-items: center;
 border-radius: 100%;
 background-color: var(--color-base);
}
.b-button svg {
 width: 8px;
 height: 6px;
 fill: var(--color-wht);
 transform: rotate(90deg);
 transition: all 0.4s ease;
}
.dot {
 display: block;
 padding: 0.25em 0 0.25em 1em;
 text-indent: -1em;
}

@media screen and (min-width: 821px) {
 .a-button a:hover {
  background-color: var(--color-blu2);
 }
 .a-button a:hover em {
  transition: all 0.4s ease;
  transform: translateX(-6px);
 }
 .a-button a:hover span {
  transition: all 0.4s ease;
  transform: translateX(6px);
 }
 .b-button a:hover {
  color: var(--color-wht);
  background-color: var(--color-base);
 }
 .b-button a:hover span {
  background-color: var(--color-wht);
 }
 .b-button a:hover svg {
  fill: var(--color-base);
 }
}

@media screen and (max-width: 820px) {
 .l-container {
  width: auto;
  padding: 0 5.33vw;
 }
 .a-button {
  min-width: 180px;
  height: 60px;
 }
 .a-button a {
  padding-inline: 30px 20px;
  font-size: 1.5rem;
 }
 .b-button {
  min-width: 140px;
  height: 40px;
 }
 .b-button a {
  padding-inline: 20px 10px;
  font-size: 1.25rem;
 }
 .b-button a span {
  margin-left: 10px;
 }
}

@media screen and (max-width: 600px) {
 .br_lb {
  border-bottom-left-radius: 60px;
 }
 .br_rt {
  border-top-right-radius: 60px;
 }
 .b-button {
  min-width: 100px;
  height: min(40px, 10.66cqw);
 }
 .b-button a {
  padding-inline: 20px 10px;
  font-size: min(1.2rem, 3.2cqw);
 }
 .b-button a span {
  margin-left: 10px;
 }
}

@media screen and (max-width: 340px) {
 .l-container {
  padding: 0 4vw;
 }
}

/* p-contents
---------------------------------------------------------------------------------*/
.p-contents {
 padding-block: 14.7cqw 160px;
 position: relative;
}
.p-contents::before,
.p-contents::after {
 content: "";
 position: absolute;
 top: 0;
 right: 0;
 width: 13cqw;
 height: 13cqw;
 background-color: var(--color-gy1);
 z-index: 1;
}
.p-contents::before {
 right: 13cqw;
 background-color: var(--color-blu);
}
.p-contents + .p-contents {
 margin-top: 0;
}
.p-section {
 max-width: 1160px;
 margin-inline: auto;
 container: psection / inline-size;
}
.p-section + .p-section {
 margin-top: 120px;
}
.p-section_middle {
 max-width: 1080px;
 margin-inline: auto;
 container: psectionm / inline-size;
}
.p-section_single {
 max-width: 880px;
 margin-inline: auto;
 container: psections / inline-size;
}
.p-section_single .block + .block {
 margin-top: 60px;
}
.p-section_narrow {
 max-width: 800px;
 margin-inline: auto;
 container: psectionn / inline-size;
}
.p-section_slim {
 max-width: 740px;
 margin-inline: auto;
 container: psectionn / inline-size;
}
a.txt_link {
 color: var(--color-blu2);
 text-decoration: underline;
}
.heading {
 display: flex;
 flex-flow: column;
 align-items: flex-start;
 gap: 60px;
}
.heading_en {
 color: var(--color-base);
 font-size: max(10rem, 7.35cqw);
 font-family: var(--ff-int);
 font-weight: 500;
 line-height: 0.9;
 position: relative;
 display: flex;
 flex-flow: column;
 gap: 0;
}
.heading_en.page {
 font-size: 5rem;
 font-weight: 600;
}
.heading_jp {
 color: var(--color-base);
 font-size: max(2.2rem, 1.61cqw);
 font-weight: 600;
 line-height: 1.0715;
 letter-spacing: 0.08em;
}
.block + .block {
 margin-top: 100px;
}
.block p {
 line-height: 1.8;
}
.block p.small {
 font-size: 0.9em;
}
.block .mds {
 display: block;
 font-size: 2.4rem;
 font-weight: 600;
 margin-bottom: 26px;
}
.line_txt {
 display: block;
 margin-bottom: 40px;
}
.line_txt strong {
 font-size: 2.2rem;
 font-weight: 700;
 line-height: 1.7;
 display: inline;
 background: linear-gradient(transparent 94%, #000000 6%);
}
.read_txt {
 display: block;
 margin-bottom: 60px;
 font-size: 1.6rem;
 line-height: 2;
}
.block_item {
 margin-top: 50px;
}
.block_item2 {
 margin-top: 80px;
}
.block_large {
 max-width: 920px;
 margin-top: 50px;
 margin-left: -180px;
 position: relative;
}

.p-table {
 width: 100%;
 border-top: 1px solid var(--color-line);
 position: relative;
}
.p-table th {
 width: 150px;
 padding-block: 20px;
 font-size: 1.5rem;
 font-weight: 500;
 line-height: 1.8;
 border-bottom: 1px solid var(--color-line);
 position: relative;
}
.p-table td {
 padding-block: 20px;
 padding-left: 50px;
 font-size: 1.5rem;
 font-weight: normal;
 border-bottom: 1px solid var(--color-line);
 line-height: 1.8;
}
.p-table p {
 line-height: 1.8;
}
.p-table_s {
 width: 100%;
 border-top: 1px solid var(--color-line);
}
.p-table_s th {
 width: 120px;
 font-weight: 600;
 padding: 20px 0 20px 15px;
 border-bottom: 1px solid var(--color-line);
 line-height: 1.6;
}
.p-table_s td {
 padding: 20px 0 20px 30px;
 font-weight: normal;
 border-bottom: 1px solid var(--color-line);
 line-height: 1.6;
}

@media screen and (min-width: 821px) {
 a.txt_link:hover {
  text-decoration: none;
 }
}

@media screen and (max-width: 820px) {
 .heading {
  gap: 40px;
 }
 .heading_en {
  font-size: 8rem;
 }
 .heading_jp {
  color: var(--color-base);
  font-size: max(1.61cqw, 1.6rem);
  font-weight: 600;
  line-height: 1.0715;
  letter-spacing: 0.08em;
 }
 .p-section {
  max-width: unset;
 }
 .block_item {
  margin-top: 30px;
 }
 .block p {
  line-height: 1.8;
 }
 .p-section .h-img {
  float: none;
  width: 100%;
  margin-left: 0;
  margin-bottom: 20px;
 }
 .p-section_single {
  max-width: unset;
 }
 .p-section_single .block + .block {
  margin-top: 40px;
 }
 .p-section_narrow {
  max-width: unset;
 }
}

@media screen and (max-width: 600px) {
 .p-contents {
  padding-block: 18cqw 40px;
 }
 .heading_en {
  font-size: min(7rem, 18.6cqw);
 }
 .heading_en.page {
  font-size: clamp(3rem, 8.8vw, 3.3rem);
  font-weight: 600;
 }
 .heading_jp {
  font-size: min(1.7rem, 4.53cqw);
 }
 .p-section + .p-section {
  margin-top: 60px;
 }
 .block .mds {
  font-size: 2rem;
 }
 .block .line_txt {
  margin-bottom: 30px;
 }
 .block .line_txt strong {
  font-size: 1.8rem;
 }
 .read_txt {
  margin-bottom: 30px;
 }
 .block_item {
  margin-top: 30px;
 }
 .block_item2 {
  margin-top: 50px;
 }
 .p-table::after {
  width: 90px;
 }
 .p-table th {
  width: 26.8cqw;
  padding-block: 12px;
  font-size: min(1.4rem, 4.17cqw);
  line-height: 1.6;
 }
 .p-table td {
  padding-block: 12px;
  padding-left: 10px;
  font-size: min(1.4rem, 4.17cqw);
  line-height: 1.6;
 }
}

/* p_header
---------------------------------------------------------------------------------*/
.p_header {
 display: flex;
 background-color: var(--color-blu);
}
.ph_wrap {
 width: 55.9%;
 padding-block: 6.9cqw 6.9cqw;
 padding-inline: 4.41cqw;
 display: flex;
 flex-direction: column;
 justify-content: space-between;
}
.ph_wrap .heading {
 gap: 30px;
}
.ph_wrap .heading_jp {
 font-size: max(1.8rem, 1.32cqw);
}
.ph_photo {
 width: 44.1%;
 aspect-ratio: 6 / 5;
 position: relative;
}
.ph_photo figure {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 0;
 transition: all 0.4s ease;
}
.ph_nav {
 display: flex;
 gap: 10px;
}
.ph_nav li {
 display: block;
}
.ph_title {
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.5;
}
.ph_title br {
 display: none;
}

/* -start */
.ph_title .heading_en,
.ph_title .heading_jp,
.ph_nav {
 opacity: 0;
}
body.-start .ph_wrap .heading_en,
body.-start .ph_wrap .heading_jp {
 animation: ani_title 2s cubic-bezier(0.075, 0.82, 0.165, 1) 0.1s both;
}
body.-start .ph_wrap .heading_jp {
 animation-delay: 0.3s;
}
body.-start .ph_nav {
 animation: ani_title 2s cubic-bezier(0.075, 0.82, 0.165, 1) 0.5s both;
}

@media screen and (max-width: 1200px) {
 .ph_wrap .heading_en {
  font-size: min(10rem, 7.35cqw);
 }
}

@media screen and (max-width: 820px) {
 .ph_title {
  font-size: min(2.4rem, 5.2cqw);
 }
}

@media screen and (max-width: 600px) {
 .p_header {
  flex-direction: column-reverse;
 }
 .ph_wrap {
  width: 100%;
  padding-block: 14cqw;
  padding-inline: 5.33vw;
  gap: 10cqw;
 }
 .ph_wrap .heading {
  gap: 20px;
 }
 .ph_wrap .heading_en {
  font-size: min(5rem, 13.3cqw);
 }
 .ph_wrap .heading_jp {
  font-size: min(1.7rem, 4.53cqw);
 }
 .ph_photo {
  width: 100%;
  aspect-ratio: 5 / 3;
 }
 .ph_title {
  font-size: min(2rem, 5.97cqw);
 }
}

/* bread-crumb
---------------------------------------------------------------------------------*/
.bread-crumb {
 padding-block: 36px;
}
.p-bread-crumb {
 display: flex;
 align-items: center;
 font-size: 1.2rem;
 line-height: 1.715;
}
.p-bread-crumb > li {
 position: relative;
 display: block;
}
.p-bread-crumb > li a {
 color: var(--color-base);
 transition: 0.2s;
 position: relative;
}
.p-bread-crumb > li span {
 opacity: 0.6;
}
.p-bread-crumb > li br {
 display: none;
}
.p-bread-crumb > li:nth-child(n + 2) {
 margin-left: 28px;
}
.p-bread-crumb > li:nth-child(n + 2):before {
 content: "";
 position: absolute;
 top: 0px;
 left: -14px;
 display: block;
 width: 1px;
 height: 20px;
 background-color: var(--color-line);
}

@media screen and (min-width: 821px) {
 .p-bread-crumb > li a:hover {
  opacity: 0.6;
 }
}

@media screen and (max-width: 600px) {
 .bread-crumb {
  padding-block: 30px;
 }
 .p-bread-crumb {
  font-size: min(1.2rem, 3.2vw);
 }
}

/* under
---------------------------------------------------------------------------------*/
.under {
 width: 100%;
 display: flex;
}
.under .item {
 width: 50%;
 aspect-ratio: 100/58;
 display: flex;
 align-items: center;
 justify-content: center;
 background-color: var(--color-gy1);
 position: relative;
 overflow: hidden;
}
.under .item figure {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 0;
 transition: all 0.4s ease;
}
.item_downloads figure {
 background: url(../images/thums_downloads.jpg) no-repeat 50% 50%;
 background-size: cover;
}
.item_contact figure {
 background: url(../images/thums_contact.jpg) no-repeat 50% 50%;
 background-size: cover;
}
.und_wrap {
 display: flex;
 flex-direction: column;
 position: relative;
 z-index: 2;
}
.under .heading {
 align-items: center;
 gap: 20px;
}
.under .heading_en {
 color: var(--color-wht);
 font-size: 4.41cqw;
}
.under .heading_jp {
 color: var(--color-wht);
 font-size: 1.32cqw;
}
.under .more_btn_center {
 margin-top: 4.41cqw;
}

@media screen and (min-width: 821px) {
 .under .item:hover figure {
  transform: scale(1.1);
 }
}

@media screen and (max-width: 600px) {
 .under {
  flex-direction: column;
 }
 .under .item {
  width: 100%;
  aspect-ratio: 100/74;
 }
 .under .heading {
  align-items: center;
  gap: 20px;
 }
 .under .heading_en {
  font-size: min(5rem, 13.3cqw);
 }
 .under .heading_jp {
  font-size: min(1.7rem, 4.53cqw);
 }
 .under .more_btn_center {
  margin-top: 30px;
 }
}

/* Footer
---------------------------------------------------------------------------------*/
.l-footer {
 position: relative;
 background-color: var(--color-ft);
}
.l-footer__pagetop {
 position: absolute;
 top: 0;
 right: 0;
 cursor: pointer;
 z-index: 2;
}
.l-footer__pagetop a {
 display: flex;
 justify-content: center;
 align-items: center;
 width: 100px;
 height: 100px;
 position: relative;
 background-color: var(--color-wht);
}
.l-footer__pagetop a:after,
.l-footer__pagetop a:before {
 content: "";
 display: block;
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
}
.l-footer__pagetop a:before {
 width: 22px;
 height: 2px;
 margin-top: -10px;
 background-color: var(--color-blu);
 transition: all 0.4s linear;
}
.l-footer__pagetop a:after {
 width: 13px;
 height: 13px;
 -webkit-transform: rotate(-45deg);
 transform: rotate(-45deg);
 -webkit-transform-origin: bottom;
 transform-origin: bottom;
 margin-left: -2px;
 border-top: 2px solid var(--color-blu);
 border-right: 2px solid var(--color-blu);
 transition: all 0.4s linear;
}
.l-footer .p-section {
 padding-block: 126px 60px;
}
.ft_wrap {
 display: flex;
}
.ft_sub {
 display: flex;
 flex-flow: column;
 gap: 30px;
 width: 50%;
}
.ft_logo {
 width: 160px;
}
.ft_logo .logo {
 display: block;
 width: 100%;
 aspect-ratio: 3/2;
 background: url(../images/common/logo.svg) no-repeat 0 0;
 background-size: contain;
}
.ft_sub address {
 display: block;
 font-size: 1.3rem;
 line-height: 1.8;
}
.ft_main {
 display: flex;
 gap: 120px;
}
.ft_main .ftnav_list {
 display: flex;
 flex-direction: column;
 gap: 24px;
}
.ft_main .ftnav_item {
 display: block;
}
.ftnav_item a {
 color: var(--color-base);
 font-size: min(1.45rem, 4vw);
 font-weight: 500;
 line-height: 1;
}
.ftnav-bottom {
 border-top: 1px solid var(--color-line);
 position: relative;
}
.ftnav-bottom-main {
 display: flex;
 justify-content: space-between;
 align-items: center;
 max-width: 100%;
 margin: auto;
 padding-block: 40px;
 padding-inline: 30px;
}
.ftnav-bottom_list {
 display: flex;
}
.ftnb_item {
 margin-right: 28px;
}
.ftnb_item a {
 font-size: min(1.3rem, 3.46vw);
}
.ft_copyright {
 display: flex;
 align-items: center;
 justify-content: center;
 color: #a7a7a7;
 font-size: 1.2rem;
 letter-spacing: 0.02em;
}

@media screen and (min-width: 821px) {
 .l-footer__pagetop a:hover:before {
  background-color: var(--color-base);
 }
 .l-footer__pagetop a:hover:after {
  border-top: 2px solid var(--color-base);
  border-right: 2px solid var(--color-base);
 }
 .ftnav_item a:hover,
 .ftnb_item a:hover {
  opacity: 0.6;
 }
}

@media screen and (max-width: 820px) {
 .ft_main {
  gap: 60px;
 }
}

@media screen and (max-width: 600px) {
 .l-footer__pagetop a {
  width: 90px;
  height: 90px;
 }
 .l-footer__pagetop a:after,
 .l-footer__pagetop a:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
 }
 .l-footer__pagetop a:before {
  width: 22px;
  height: 2px;
  margin-top: -10px;
  background-color: var(--color-blu);
  transition: all 0.4s linear;
 }
 .l-footer__pagetop a:after {
  width: 13px;
  height: 13px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  -webkit-transform-origin: bottom;
  transform-origin: bottom;
  margin-left: -2px;
  border-top: 2px solid var(--color-blu);
  border-right: 2px solid var(--color-blu);
  transition: all 0.4s linear;
 }
 .l-footer .p-section {
  padding-block: 70px 60px;
 }
 .ft_wrap {
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 60px;
 }
 .ft_sub {
  width: 100%;
  gap: 25px;
 }
 .ft_sub address {
  font-size: min(1.2rem, 3.2vw);
  font-weight: 500;
  line-height: 1.8;
 }
 .ft_main {
  width: 100%;
  gap: unset;
 }
 .ft_main .ftnav_list {
  width: 50%;
  gap: 28px;
 }
 .ft_main .ftnav_item a {
  font-size: min(1.4rem, 3.73vw);
 }
 .ftnav-bottom-main {
  display: flex;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 28px;
  max-width: unset;
  padding-block: 40px;
  padding-inline: 5.33vw;
 }
 .ftnav-bottom_list {
  flex-flow: column;
  gap: 20px;
 }
 .ftnb_item {
  margin-right: 0;
 }
 .ftnb_item a {
  font-size: min(1.2rem, 3.2vw);
 }
 .ft_copyright {
  font-size: min(1.1rem, 2.93vw);
 }
}

/* home
---------------------------------------------------------------------------------*/
.top_header {
 display: block;
 width: 100%;
 padding-bottom: 110px;
 margin-bottom: 11.76cqw;
 position: relative;
 container: top_header / inline-size;
 z-index: 1;
}
.top_header:before {
 content: "";
 position: absolute;
 top: -110px;
 bottom: 0;
 right: 0;
 width: 50%;
 background: var(--color-blu);
 z-index: 0;
}
.th_inner {
 display: flex;
 align-items: center;
 justify-content: space-between;
 position: relative;
 height: calc(100vh - 110px);
 min-height: 700px;
 z-index: 1;
}
.top_header .left {
 width: 32.36cqw;
 padding-left: 4.85cqw;
 padding-top: 4.41cqw;
 position: relative;
}
.top_header .main_logo {
 position: relative;
 width: 35.73cqw;
 z-index: 2;
}
.th_enttl {
 font-size: 2.5cqw;
 font-weight: 500;
 letter-spacing: 0.01em;
 line-height: 1.4;
 margin-top: 2cqw;
 color: var(--color-blu2);
 white-space: nowrap;
 position: relative;
 z-index: 2;
}
.th_tagline {
 font-size: 2.25cqw;
 font-weight: 700;
 font-feature-settings: "palt";
 letter-spacing: 0.3em;
 line-height: 1.5;
 white-space: nowrap;
 margin-top: 2cqw;
 position: relative;
 display: flex;
 flex-direction: column;
 z-index: 2;
}
.th_copy {
 margin-top: 2cqw;
 font-size: 1.1cqw;
 letter-spacing: 0.08em;
 line-height: 2;
}
.top_header .right {
 width: 67.64cqw;
 height: 100%;
}
.mv_wrap {
 width: 100%;
 height: 100%;
 overflow: hidden;
 position: relative;
 background-color: var(--color-gy1);
}
.th_mv {
 position: absolute;
 top: 0;
 bottom: 0;
 left: 0;
 right: 0;
 min-width: 100%;
 min-height: 100%;
 height: auto;
 width: auto;
 text-align: center;
 overflow: hidden;
 z-index: 0;
}
.th_mv figure {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
}
.th_mv figure img {
 display: block;
 position: relative;
}
.th_mv figure img.object-fit {
 object-position: 50% 50%;
}
.scroll_item {
 position: absolute;
 right: 40px;
 bottom: -30px;
 display: flex;
 align-items: center;
 gap: 10px;
 writing-mode: vertical-rl;
 z-index: 2;
}
.scroll_item .word {
 color: var(--color-base);
 font-size: 1.4rem;
 font-weight: 500;
 font-family: var(--ff-int);
 line-height: 1.4;
 right: -1px;
 position: relative;
}
.scroll_item .bar {
 display: block;
 position: relative;
 width: 1px;
 height: 40px;
 background: var(--color-base);
 margin-bottom: 12px;
 animation: sc_ani 2s infinite;
 animation-iteration-count: 20;
}
@keyframes sc_ani {
 0% {
  transform: scaleY(1);
  transform-origin: center bottom;
 }
 50% {
  transform: scaleY(0);
  transform-origin: center bottom;
 }
 51% {
  transform: scaleY(0);
  transform-origin: center top;
 }
 100% {
  transform: scaleY(1);
  transform-origin: center top;
 }
}

/* -start */
.top_header .main_logo,
.th_enttl,
.th_tagline,
.th_copy {
 opacity: 0;
}
.th_mv figure img {
 transform: scale(1);
}
body.-start .th_mv figure img {
 animation-name: obizoom2;
 animation-duration: 12s;
 animation-timing-function: cubic-bezier(0.08, 0.8, 0.315, 1);
 animation-delay: 2.2s;
 animation-fill-mode: both;
}
body.-start .top_header .main_logo {
 animation-name: obizoom;
 animation-duration: 0.8s;
 animation-timing-function: cubic-bezier(0, 0.68, 0.76, 1);
 animation-delay: 0.8s;
 animation-fill-mode: both;
}
body.-start .th_enttl,
body.-start .th_tagline,
body.-start .th_copy {
 animation-name: obileft;
 animation-duration: 1.8s;
 animation-timing-function: cubic-bezier(0.08, 0.8, 0.315, 1);
 animation-delay: 1.8s;
 animation-fill-mode: both;
}
body.-start .th_tagline {
 animation-delay: 2s;
}
body.-start .th_copy {
 animation-delay: 2.2s;
}
@keyframes obizoom {
 0% {
  opacity: 0;
  transform: scale(1.1, 1.1);
 }
 100% {
  opacity: 1;
  transform: scale(1, 1);
 }
}
@keyframes obizoom2 {
 0% {
  transform: scale(1.1, 1.1);
 }
 100% {
  transform: scale(1, 1);
 }
}
@keyframes obileft {
 0% {
  opacity: 0;
  transform: translateX(-50px);
 }
 100% {
  opacity: 1;
  transform: translateX(0);
 }
}
.top_header:before {
 width: 0;
 transition: all 1s cubic-bezier(0.08, 0.8, 0.315, 1);
 transition-delay: 0.2s;
}
.top_header .right .mv_wrap {
 width: 0;
 transition: all 0.8s cubic-bezier(0.08, 0.8, 0.315, 1);
 transition-delay: 0.8s;
}
.top_header .right .mv_wrap::after {
 content: "";
 position: absolute;
 top: 0;
 right: 0;
 width: 100%;
 height: 100%;
 background-color: #f6f7fa;
 transition: all 1.2s cubic-bezier(0.08, 0.8, 0.315, 1);
 transition-delay: 2.8s;
}
body.-start .top_header:before {
 width: 50%;
}
body.-start .top_header .right .mv_wrap {
 width: 100%;
}
body.-start .top_header .right .mv_wrap::after {
 width: 0;
}

@media screen and (max-width: 820px) {
 .top_header:before {
  width: 15.46cqw;
 }
 .th_inner {
  flex-direction: column-reverse;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 14cqw;
  padding-left: 5.33cqw;
  height: unset;
  min-height: unset;
 }
 .top_header .left {
  width: 100%;
  padding-top: unset;
  padding-right: 5.33cqw;
 }
 .top_header .main_logo {
  width: min(82.66cqw, 520px);
 }
 .th_enttl {
  font-size: min(5.46cqw, 3.6rem);
  margin-top: min(7.46cqw, 30px);
 }
 .th_tagline {
  font-size: min(5.46cqw, 3.4rem);
  font-weight: 800;
  margin-top: min(7.46cqw, 30px);
 }
 .th_copy {
  margin-top: min(7.46cqw, 30px);
  font-size: min(2.93cqw, 1.8rem);
 }
 .top_header .right {
  flex: unset;
  width: 100%;
  height: 87.2cqw;
 }

 /* -start */
 .top_header:before {
  width: 0;
 }
 body.-start .top_header:before {
  width: 15.46cqw;
 }
}

@media screen and (max-width: 600px) {
 .top_header {
  padding-bottom: unset;
  margin-bottom: 100px;
 }
 .th_inner {
  gap: 20cqw;
 }
 .top_header .left {
  padding-left: 2.66cqw;
 }
 .th_enttl {
  font-size: min(5.86cqw, 2.2rem);
  margin-top: min(5.33cqw, 20px);
 }
 .th_tagline {
  margin-top: 5cqw;
 }
 .th_copy {
  margin-top: 5cqw;
  padding-right: 10cqw;
  font-size: min(3.86cqw, 1.45rem);
 }
 .th_copy br {
  display: none;
 }
 .top_header .right {
  width: 100%;
  height: 87.2cqw;
 }
 .scroll_item {
  right: 4.26cqw;
  bottom: -30px;
  gap: 8px;
 }
 .scroll_item .word {
  font-size: min(2.93cqw, 1.1rem);
 }

 /* -start */
 body.-start .top_header:before {
  width: 15.46cqw;
 }
}

/* t_vision
---------------------------------------------------------------------------------*/
.t_vision {
 width: 100%;
 position: relative;
 container: vision / inline-size;
}
.t_vision::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 18.8cqw;
 background-color: var(--color-ylw);
 z-index: 0;
}
.t_vision::after {
 content: "";
 position: absolute;
 top: 0;
 right: 0;
 width: 18.8cqw;
 height: 18.8cqw;
 background-color: var(--color-gy1);
 z-index: 0;
}
.vision_wrap {
 display: flex;
}
.vision_photo {
 width: 41.17cqw;
 aspect-ratio: 560/740;
 position: relative;
 overflow: hidden;
 z-index: 1;
}
.vision_photo .photo {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 overflow: hidden;
}
.vision_main {
 width: 58.83cqw;
 padding-block: 14.7cqw 4.41cqw;
 padding-inline: 11.7cqw;
 position: relative;
}
.vision_meta {
 width: 100%;
 margin-top: 4.7cqw;
}
.vision_meta .copy {
 font-size: 1.61cqw;
 font-weight: 700;
 letter-spacing: 0.08em;
 line-height: 1.8;
}
.vision_meta p {
 font-size: max(1.02cqw, 1.3rem);
 font-weight: 400;
 line-height: 2.2;
 margin-top: 3.5cqw;
}

@media screen and (max-width: 820px) {
 .vision_wrap {
  align-items: flex-start;
 }
 .vision_main {
  padding-inline: 8cqw;
 }
 .vision_meta .copy {
  font-size: max(1.61cqw, 1.65rem);
 }
}

@media screen and (max-width: 600px) {
 .t_vision {
  width: 100%;
  position: relative;
  container: vision / inline-size;
 }
 .t_vision::before {
  top: 80vw;
  height: 100px;
 }
 .t_vision::after {
  top: 80vw;
  width: 100px;
  height: 100px;
 }
 .vision_wrap {
  flex-direction: column;
 }
 .vision_photo {
  width: 100%;
  aspect-ratio: 100/80;
 }
 .vision_photo .object-fit {
  object-position: 50% 20%;
 }
 .vision_main {
  width: 100%;
  padding-block: 60px 86px;
  padding-inline: 5.33cqw;
 }
 .vision_meta {
  width: 100%;
  margin-top: 60px;
 }
 .vision_meta .copy {
  font-size: min(4.53cqw, 1.7rem);
 }
 .vision_meta p {
  font-size: min(3.86cqw, 1.45rem);
  line-height: 2;
  margin-top: 30px;
 }
}

/* t_mission
---------------------------------------------------------------------------------*/
.t_mission {
 width: 100%;
 position: relative;
 container: mission / inline-size;
}
.mission_photo {
 position: absolute;
 top: 1.6cqw;
 right: 0;
 width: 21.32cqw;
 aspect-ratio: 290/180;
 z-index: 1;
}
.mission_photo .photo {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 overflow: hidden;
}
.mission_wrap {
 display: flex;
 padding-block: 17.64cqw 4.41cqw;
}
.mission_ill {
 width: 33cqw;
 margin-left: 6.91cqw;
 margin-top: 9.26cqw;
 position: relative;
 z-index: 1;
}
.mission_main {
 width: 50cqw;
 padding-inline: 7.35cqw 0;
 position: relative;
}
.mission_meta {
 width: 100%;
 margin-top: 4.7cqw;
}
.mission_meta .copy {
 font-size: 1.61cqw;
 font-weight: 700;
 letter-spacing: 0.08em;
 line-height: 1.8;
}
.mission_meta p {
 font-size: max(1.02cqw, 1.3rem);
 font-weight: 400;
 line-height: 2.2;
 margin-top: 3.5cqw;
 padding-right: 6.3cqw;
}

@media screen and (max-width: 820px) {
 .mission_wrap {
  padding-block: 17.64cqw;
 }
 .mission_meta .copy {
  font-size: max(1.61cqw, 1.65rem);
 }
}

@media screen and (max-width: 600px) {
 .mission_photo {
  top: 0;
  width: 48cqw;
 }
 .mission_wrap {
  flex-direction: column;
  padding-block: 56cqw 4.41cqw;
 }
 .mission_ill {
  width: 72cqw;
  max-width: 360px;
  margin-inline: auto;
  margin-top: 40px;
 }
 .mission_main {
  width: 100%;
  padding-inline: 5.33cqw;
 }
 .mission_meta {
  width: 100%;
  margin-top: 60px;
 }
 .mission_meta .copy {
  font-size: min(4.53cqw, 1.7rem);
 }
 .mission_meta p {
  font-size: min(3.86cqw, 1.45rem);
  line-height: 2;
  margin-top: 30px;
  padding-right: unset;
 }
}

/* t_business
---------------------------------------------------------------------------------*/
.t_business {
 width: 100%;
 position: relative;
 padding-block: 6.61cqw 18.83cqw;
 container: business / inline-size;
}
.t_business::after {
 content: "";
 position: absolute;
 top: 0;
 right: 0;
 width: 8cqw;
 height: 8cqw;
 background-color: var(--color-ylw);
 z-index: 0;
}
.busi_flex_wrap {
 margin-top: 7.35cqw;
 display: flex;
 flex-flow: row wrap;
 gap: 3.23cqw 0;
}
.busi_item {
 width: 50%;
 display: flex;
 flex-direction: column;
 padding-top: 3.79cqw;
 position: relative;
}
.busi_item .num {
 position: absolute;
 top: 0;
 left: 0;
 width: 10cqw;
 height: 10cqw;
 background-color: var(--color-blu);
 border-radius: 100%;
 display: flex;
 align-items: center;
 justify-content: center;
 color: var(--color-wht);
 font-size: 3.44cqw;
 font-weight: 600;
 font-family: var(--ff-int);
 line-height: 1;
 z-index: 2;
}
.busi_h3 {
 font-size: 1.89cqw;
 line-height: 1.5;
 font-weight: 600;
 text-align: center;
 padding-inline: 12cqw;
}
.busi_ill {
 width: 62%;
 margin-inline: auto;
 margin-top: 2cqw;
}
.busi_item p {
 font-size: max(1.2cqw, 1.35rem);
 font-weight: 400;
 line-height: 1.9;
 margin-top: 2.58cqw;
 width: 70%;
 margin-inline: auto;
}

@media screen and (max-width: 820px) {
 .busi_h3 {
  font-size: max(1.89cqw, 1.6rem);
  padding-inline: 10.5cqw;
 }
}

@media screen and (max-width: 600px) {
 .t_business {
  overflow: hidden;
  padding-block: 120px;
 }
 .t_business::after {
  width: 60px;
  height: 60px;
 }
 .busi_flex_wrap {
  margin-top: 40px;
  gap: 80px;
 }
 .busi_item {
  width: 100%;
  padding-top: 10cqw;
 }
 .busi_item .num {
  left: -8vw;
  width: 26cqw;
  height: 26cqw;
  font-size: min(8.95cqw, 3rem);
 }
 .busi_item:nth-child(2n) .num {
  left: unset;
  right: -8vw;
 }
 .busi_h3 {
  font-size: min(5cqw, 1.7rem);
  padding-inline: 12cqw;
 }
 .busi_ill {
  width: 80%;
  max-width: 360px;
  margin-inline: auto;
  margin-top: 30px;
 }
 .busi_item p {
  font-size: min(4.32cqw, 1.45rem);
  margin-top: 25px;
  width: 90%;
 }
}

/* t_photo_wide
---------------------------------------------------------------------------------*/
.t_photo_wide {
 margin-bottom: -11.7cqw;
 margin-left: 7.3cqw;
 background-color: var(--color-gy2);
 position: relative;
 z-index: 1;
}
.t_photo_wide::before,
.t_photo_wide::after {
 content: "";
 position: absolute;
 bottom: -13cqw;
 right: 0;
 width: 13cqw;
 height: 13cqw;
 background-color: var(--color-gy1);
 z-index: 1;
}
.t_photo_wide::before {
 right: 13cqw;
 background-color: var(--color-ylw);
}
.photo_wide {
 width: 100%;
 aspect-ratio: 1260/460;
 overflow: hidden;
}
.photo_wide .photo {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 overflow: hidden;
}

@media screen and (max-width: 600px) {
 .t_photo_wide {
  margin-bottom: unset;
  margin-left: unset;
 }
 .t_photo_wide::before,
 .t_photo_wide::after {
  bottom: -80px;
  width: 80px;
  height: 80px;
 }
 .t_photo_wide::before {
  right: 80px;
 }
 .photo_wide {
  aspect-ratio: 10/7;
 }
}

/* t_service
---------------------------------------------------------------------------------*/
.t_service {
 width: 100%;
 padding-block: 27.2cqw 260px;
 position: relative;
 background-color: var(--color-gy2);
}
.ts_flex_wrap {
 margin-top: 80px;
 display: flex;
 justify-content: center;
 gap: 3.44%;
}
.ts_flex_wrap .item {
 width: 100%;
 display: flex;
 flex-direction: column;
 position: relative;
}
.ts_flex_wrap .item figure {
 position: relative;
 overflow: hidden;
 width: 100%;
 display: block;
 aspect-ratio: 1 / 1;
 border: 10px solid var(--color-wht);
 filter: drop-shadow(15px 15px #34e6ed);
 transform: translateZ(0);
}
.item.se_02 figure {
 filter: drop-shadow(15px 15px #fcea0d);
}
.item.se_03 figure {
 filter: drop-shadow(15px 15px #9cdb16);
}
.ts_under {
 display: flex;
 flex-direction: column;
 flex-grow: 1;
 margin-top: 30px;
}
.ts_word {
 flex-grow: 1;
 display: flex;
 flex-direction: column;
 align-items: center;
}
.ts_word .ts_h3 {
 font-size: 1.89cqw;
 line-height: 1.5;
 font-weight: 600;
 text-align: center;
}
.ts_word .ts_h3::after {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 2;
}
.ts_word p {
 font-size: max(1.2cqw, 1.35rem);
 font-weight: 400;
 line-height: 1.8;
 margin-top: 15px;
}

@media screen and (min-width: 821px) {
 .ts_flex_wrap .item .photo img {
  transition: transform 0.3s ease-in-out;
 }
 .ts_flex_wrap .item:hover .photo img {
  transform: scale(1.05);
  transition: transform 0.3s ease-in-out;
 }
 .ts_flex_wrap .item:hover .a-button a {
  background-color: var(--color-blu2);
 }
 .ts_flex_wrap .item:hover .a-button a em {
  transition: all 0.4s ease;
  transform: translateX(-6px);
 }
 .ts_flex_wrap .item:hover .a-button a span {
  transition: all 0.4s ease;
  transform: translateX(6px);
 }
}

@media screen and (max-width: 820px) {
 .t_service {
  padding-block: 140px 260px;
 }
 .ts_flex_wrap .item figure {
  border: 8px solid var(--color-wht);
  filter: drop-shadow(10px 10px #34e6ed);
 }
 .item.se_02 figure {
  filter: drop-shadow(10px 10px #fcea0d);
 }
 .item.se_03 figure {
  filter: drop-shadow(10px 10px #9cdb16);
 }
 .ts_word .ts_h3 {
  font-size: max(1.89cqw, 1.6rem);
  line-height: 1.5;
  font-weight: 600;
  text-align: center;
 }
}

@media screen and (max-width: 600px) {
 .t_service {
  width: 100%;
  padding-block: 140px 120px;
 }
 .ts_flex_wrap {
  margin-top: 60px;
  flex-direction: column;
  gap: min(26.6cqw, 100px);
 }
 .ts_flex_wrap .item {
  max-width: 400px;
  margin-inline: auto;
 }
 .ts_flex_wrap .item figure {
  width: calc(100% - 15px);
 }
 .ts_word .ts_h3 {
  font-size: min(5.97cqw, 2rem);
 }
 .ts_word p {
  font-size: min(4.17cqw, 1.4rem);
  line-height: 1.9;
 }
}

/* t_case
---------------------------------------------------------------------------------*/
.t_case {
 width: 100%;
 padding-block: 160px 200px;
 position: relative;
 overflow: hidden;
}
.t_case .swiper-container {
 overflow: unset;
 margin-top: 60px;
 position: relative;
}
.t_case .swiper-wrapper {
 position: relative;
 width: 1000vw;
 height: 100%;
 z-index: 1;
 display: flex;
 transition-property: transform;
 box-sizing: content-box;
}
.case_wrap .item {
 width: 360px;
 display: flex;
 flex-direction: column;
 gap: 26px;
}
.case_wrap .photo {
 aspect-ratio: 3/2;
 border: 1px solid var(--color-gy1);
 position: relative;
 overflow: hidden;
}
.case_wrap .case_h3 {
 font-size: 1.46cqw;
 line-height: 1.5;
 font-weight: 600;
}
.case_wrap .item p {
 font-size: max(1.2cqw, 1.35rem);
 font-weight: 400;
 line-height: 1.7;
 margin-top: 20px;
}
.t_case .swiper-nav {
 position: absolute;
 top: -140px;
 right: 0;
 display: flex;
 justify-content: flex-end;
 align-items: center;
 width: 180px;
 height: 90px;
}
.swiper-button-prev,
.swiper-rtl .swiper-button-next,
.swiper-button-next,
.swiper-rtl .swiper-button-prev {
 left: unset;
 right: unset;
}
.swiper-button-next,
.swiper-button-prev {
 position: relative;
 top: unset;
 margin-top: unset;
}
.t_case .swiper-nav .btn_prev,
.t_case .swiper-nav .btn_next {
 width: 90px;
 height: 90px;
 color: var(--color-wht);
 font-size: 1.6rem;
 font-weight: 500;
 display: flex;
 align-items: center;
 justify-content: center;
 position: relative;
 overflow: hidden;
 transition: all 0.25s ease-in-out;
 background-color: var(--color-gy1);
 cursor: pointer;
 z-index: 2;
}
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after,
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
 content: none;
}
.swiper-button-prev::before,
.swiper-rtl .swiper-button-prev:before,
.swiper-rtl .swiper-button-next:before,
.swiper-button-next:before {
 content: "";
 width: 13px;
 height: 13px;
 transform: rotate(-45deg);
 margin-left: -2px;
 border: solid var(--color-blk);
 border-width: 2px 0 0 2px;
 transition: all 0.4s linear;
}
.swiper-rtl .swiper-button-next:before,
.swiper-button-next:before {
 transform: rotate(45deg);
 border-width: 2px 2px 0 0;
}
.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
 opacity: 0.1;
}
.t_case .swiper-nav .btn_next {
 background-color: var(--color-blu);
}

@media screen and (max-width: 820px) {
 .case_wrap .case_h3 {
  font-size: max(1.46cqw, 1.5rem);
 }
}

@media screen and (max-width: 600px) {
 .t_case {
  padding-block: 120px;
 }
 .case_wrap .case_h3 {
  font-size: min(4.77cqw, 1.6rem);
 }
 .case_wrap .item p {
  font-size: min(4.17cqw, 1.4rem);
  line-height: 1.9;
  margin-top: 20px;
 }
 .t_case .swiper-nav {
  top: -100px;
  width: 100px;
  height: 50px;
  right: -5.33vw;
 }
 .t_case .swiper-nav .btn_prev,
 .t_case .swiper-nav .btn_next {
  width: 50px;
  height: 50px;
 }
 .swiper-button-prev::before,
 .swiper-rtl .swiper-button-prev:before,
 .swiper-rtl .swiper-button-next:before,
 .swiper-button-next:before {
  content: "";
  width: 8px;
  height: 8px;
  transform: rotate(-45deg);
  margin-left: -1px;
  border-width: 1px 0 0 1px;
 }
 .swiper-rtl .swiper-button-next:before,
 .swiper-button-next:before {
  transform: rotate(45deg);
  border-width: 1px 1px 0 0;
 }
}

/* t_aboutus
---------------------------------------------------------------------------------*/
.t_aboutus {
 margin-bottom: 10px;
 display: flex;
 background-color: var(--color-blu);
}
.tabo_wrap {
 width: 50%;
 padding-block: 6.9cqw;
 padding-inline: 7.35cqw;
 display: flex;
 flex-direction: column;
 justify-content: space-between;
}
.tabo_wrap .heading {
 gap: 20px;
}
.tabo_wrap .heading_en {
 font-size: 4.41cqw;
}
.tabo_wrap .heading_jp {
 font-size: 1.32cqw;
}
.t_aboutus figure {
 width: 50%;
}

@media screen and (min-width: 821px) {
 .t_aboutus .a-button a:hover {
  color: var(--color-base);
  background-color: var(--color-wht);
 }
 .t_aboutus .a-button a:hover span {
  background-color: var(--color-base);
 }
 .t_aboutus .a-button a:hover svg {
  fill: var(--color-wht);
 }
}

@media screen and (max-width: 600px) {
 .t_aboutus {
  flex-direction: column-reverse;
 }
 .tabo_wrap {
  width: 100%;
  padding-block: 54px;
  padding-inline: 5.33vw;
  align-items: center;
  gap: 10px;
 }
 .tabo_wrap .heading {
  gap: 20px;
  align-items: center;
 }
 .tabo_wrap .heading_en {
  font-size: min(5rem, 13.3cqw);
 }
 .tabo_wrap .heading_jp {
  font-size: min(1.7rem, 4.53cqw);
 }
 .t_aboutus figure {
  width: 100%;
  height: 60vw;
 }
}

/* service
---------------------------------------------------------------------------------*/
#service .p_header {
 background-color: var(--color-gy2);
}
#service .ph_photo .object-fit {
 object-position: 50% 20%;
}
.se_read {
 margin-top: 40px;
}
.se_read h2 {
 font-size: 3rem;
 font-weight: 700;
 line-height: 1.5;
 padding-bottom: 25px;
 display: inline-block;
 position: relative;
}
.se_read h2::after {
 content: "";
 position: absolute;
 bottom: 0;
 left: 0;
 width: 100%;
 height: 10px;
 display: block;
 background-color: var(--color-blu3);
}
.se_read p {
 font-size: 2.4rem;
 font-weight: 500;
 line-height: 1.8;
 margin-top: 35px;
}
.se_block {
 margin-top: 90px;
}
.se_block + .se_block {
 margin-top: 140px;
}
.se_block figure {
 width: 250px;
 display: flex;
 justify-content: center;
 align-items: center;
 aspect-ratio: 1/1;
 margin-inline: auto;
 border-radius: 100%;
 position: relative;
 background-color: var(--color-blu3);
}
.se_block figure::before {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: url(../images/common/logo_white.svg) no-repeat 100% 50%;
 background-size: 84%;
 opacity: 0.3;
}
.se_block figure img {
 width: auto;
 height: 25%;
 position: relative;
 z-index: 2;
}
.se_block.se_01_a figure {
 background-color: var(--color-blu3);
}
.se_block.se_01_b figure {
 background-color: #65fffc;
}
.se_block.se_01_c figure {
 background-color: #71ffdf;
}
.se_block h3 {
 display: flex;
 justify-content: center;
 margin-block: 30px 60px;
 font-size: 2.4rem;
 font-weight: 600;
 line-height: 1.5;
}
.se_block h3 span {
 text-align: center;
 display: inline-block;
 padding-bottom: 10px;
 border-bottom: 2px solid var(--color-base);
}
.se_block p {
 font-size: 1.6rem;
 line-height: 1.9;
}
.se_block p + p {
 margin-top: 2em;
}
#service .ts_flex_wrap {
 margin-top: 240px;
}
#service .ts_flex_wrap .item {
 width: 31%;
}
#service .ts_flex_wrap .item.current {
 display: none;
}
#service .ts_flex_wrap .item figure {
 border: none;
}
#service.service_02 .p-contents::before {
 background-color: var(--color-ylw);
}
#service.service_02 .se_read h2::after {
 background-color: var(--color-ylw);
}
.se_block.se_02_a figure {
 background-color: var(--color-ylw);
}
.se_block.se_02_b figure {
 background-color: #ffe673;
}
.se_block.se_02_c figure {
 background-color: #ffdcb0;
}
#service.service_03 .p-contents::before {
 background-color: var(--color-grn);
}
#service.service_03 .se_read h2::after {
 background-color: var(--color-grn);
}
.se_block.se_03_a figure {
 background-color: var(--color-grn);
}
.se_block.se_03_b figure {
 background-color: #cafe00;
}
.se_block.se_03_c figure {
 background-color: #e8f700;
}

@media screen and (max-width: 820px) {
 .se_read {
  margin-top: 40px;
 }
 .se_read h2 {
  font-size: min(2.6rem, 35.5cqw);
 }
 .se_read p {
  font-size: min(2.2rem, 30cqw);
 }
}

@media screen and (max-width: 600px) {
 .se_read {
  margin-top: 20px;
 }
 .se_read h2 {
  font-size: min(1.8rem, 5.37cqw);
  font-weight: 600;
 }
 .se_read p {
  font-size: min(1.6rem, 4.77cqw);
  margin-top: 20px;
 }
 .se_block {
  margin-top: 60px;
 }
 .se_block + .se_block {
  margin-top: 60px;
 }
 .se_block figure {
  width: 50%;
 }
 .se_block figure img {
  width: auto;
  height: 30%;
 }
 .se_block h3 {
  margin-block: 20px 30px;
  font-size: min(1.8rem, 5.37cqw);
 }
 .se_block h3 span {
  padding-bottom: 8px;
 }
 .se_block p {
  font-size: min(1.45rem, 4.32cqw);
  line-height: 1.8;
 }
 .se_block p + p {
  margin-top: 2em;
 }
 #service .ts_flex_wrap {
  margin-top: 100px;
  flex-flow: row wrap;
  gap: 4%;
 }
 #service .ts_flex_wrap .item {
  width: 48%;
 }
 #service .ts_under {
  margin-top: 20px;
 }
 #service .ts_word .ts_h3 {
  font-size: min(1.5rem, 4.47cqw);
 }
}

/* About Us
---------------------------------------------------------------------------------*/
.overview .heading,
.profile .heading {
 gap: 30px;
}
.overview .heading_en,
.profile .heading_en {
 font-size: min(6rem, 4.41cqw);
}
.overview .heading_jp,
.profile .heading_jp {
 font-size: 1.4rem;
}
.overview_block {
 margin-top: 70px;
 max-width: 680px;
 margin-right: auto;
}
.profile {
 margin-top: 200px;
}
.profile_meta {
 display: flex;
 flex-direction: column;
 margin-block: 70px;
}
.profile_meta .position {
 font-size: 1.6rem;
 font-weight: 500;
 line-height: 2;
}
.profile_meta .name {
 font-size: 3rem;
 font-weight: 600;
 margin-top: 20px;
}
.profile_wrap {
 display: flex;
}
.profile_left {
 width: 50%;
 padding-top: 60px;
 border-top: 1px solid var(--color-line);
}
.profile_left .block + .block {
 margin-top: 60px;
}
.profile_left .block .mds {
 font-size: 1.8rem;
 line-height: 1;
 padding-bottom: 18px;
 display: inline-block;
 position: relative;
}
.profile_left .block .mds:after {
 content: "";
 position: absolute;
 bottom: 0;
 left: 0;
 width: 100%;
 height: 8px;
 display: block;
 background-color: var(--color-blu);
}
.profile_left .block p {
 font-size: 1.5rem;
 line-height: 1.9;
}
.profile_left .block p.dot {
 font-size: 1.45rem;
 line-height: 1.8;
}
.profile_right {
 padding-left: 8.62cqw;
 padding-top: 5.17cqw;
 width: 50%;
}

@media screen and (min-width: 821px) {
 .tabs li a:hover h2,
 .tabs li a:hover span {
  opacity: 0.6;
 }
}

@media screen and (max-width: 600px) {
 .overview .heading,
 .profile .heading {
  gap: 20px;
 }
 .overview .heading_en,
 .profile .heading_en {
  font-size: min(2.8rem, 8cqw);
 }
 .overview .heading_jp,
 .profile .heading_jp {
  font-size: min(1.4rem, 4cqw);
 }
 .overview_block {
  margin-top: 40px;
  max-width: unset;
 }
 .profile {
  margin-top: 140px;
 }
 .profile_meta {
  margin-block: 40px;
 }
 .profile_meta .position {
  font-size: min(1.6rem, 4.77cqw);
 }
 .profile_meta .name {
  font-size: min(2.4rem, 7.16cqw);
  margin-top: 20px;
 }
 .profile_wrap {
  flex-direction: column-reverse;
 }
 .profile_left {
  width: 100%;
  padding-top: 40px;
  border-top: unset;
 }
 .profile_left .block + .block {
  margin-top: 40px;
 }
 .profile_left .block .mds {
  font-size: 1.8rem;
 }
 .profile_left .block p {
  font-size: min(1.4rem, 4.17cqw);
  line-height: 1.8;
 }
 .profile_left .block p.dot {
  font-size: min(1.4rem, 4.17cqw);
  line-height: 1.8;
 }
 .profile_right {
  padding-left: unset;
  padding-top: 10px;
  width: 86%;
  margin-inline: auto;
 }
}

/* Downloads
---------------------------------------------------------------------------------*/
#downloads .p_header {
 background-color: #ccd8db;
}

@media screen and (max-width: 600px) {
}

/* Contact
---------------------------------------------------------------------------------*/
#contact .p_header {
 background-color: var(--color-ylw);
}
#contact .p-contents::before {
 background-color: var(--color-ylw);
}
#contact .ph_photo .object-fit {
 object-position: 50% 20%;
}
.form-input .read_txt .mds {
 font-size: 2.8rem;
 font-weight: 700;
 margin-bottom: 1em;
}
.form-input .read_txt p + p {
 margin-top: 1.5em;
}
.form-input .read_txt .dot {
 font-size: 1.3rem;
 line-height: 1.7;
}
.form-body {
 display: flex;
 flex-flow: column;
 border-top: 1px solid var(--color-line);
 margin-top: 70px;
}
#form .form-body > dt {
 width: 100%;
 position: relative;
 padding-block: 50px 0;
 font-size: 1.6rem;
 font-weight: 400;
 line-height: 1.8;
}
#form .form-body > dt.required:after {
 font-size: 1.2rem;
 line-height: 1;
 color: var(--color-wht-wht);
 background: var(--color-blu);
 content: "必須";
 display: inline-block;
 padding: 4px 10px;
 position: relative;
 word-break: break-all;
 border-radius: 2px;
 margin-left: 10px;
}
#form .form-body > dd {
 width: 100%;
 padding-block: 20px 0;
 font-weight: normal;
 line-height: 1.8;
}
#form .form-body > dt.blt {
 padding-block: 40px 0;
}
#form .form-body > dd.blb {
 padding-block: 30px 30px;
 border-bottom: 1px solid var(--color-line);
}
.form-body input[type="text"],
.form-body input[type="email"],
.form-body input[type="tel"],
.form-body input[type="date"],
.form-body select {
 font-size: 1.6rem;
 height: 54px;
 width: 100%;
 padding: 0 1em;
 border: 1px solid var(--color-line);
 position: relative;
 border-radius: 4px;
}
.form-body input[type="text"]:focus,
.form-body input[type="email"]:focus {
 outline: 0;
}
.form-body input[type="text"].-size01,
.form-body input[type="email"].-size01 {
 width: 224px;
}
.form-body input[type="text"].-size02,
.form-body input[type="email"].-size02 {
 width: 140px;
}
.form-body input[type="text"].-error,
.form-body input[type="email"].-error {
 background: #ffe8e5;
 border-color: var(--color-blu);
}
.form-body textarea {
 height: 220px;
 width: 100%;
 font-size: 1.6rem;
 padding: 0.5em 1em;
 border: 1px solid var(--color-line);
 border-radius: 4px;
}
.form-input input[type="checkbox"] {
 -webkit-appearance: none;
 -moz-appearance: none;
 appearance: none;
 width: 0;
 height: 0;
 margin-right: 0;
}
.checkbox-field {
 display: inline-block;
 margin-right: 30px;
 margin-bottom: 20px;
}
.mwform-checkbox-field input[type="checkbox"] {
 -webkit-appearance: none;
 -moz-appearance: none;
 appearance: none;
 width: 0;
 height: 0;
 margin-right: 0;
}
.mwform-checkbox-field-text {
 font-size: 1.5rem;
 position: relative;
 padding-left: 45px;
 cursor: pointer;
}
.mwform-checkbox-field-text::before {
 content: "";
 position: absolute;
 top: 50%;
 left: 0;
 transform: translateY(-50%);
 width: 30px;
 height: 30px;
 border-radius: 2px;
 background: var(--color-wht);
 border: 1px solid var(--color-line);
}
.mwform-checkbox-field-text::after {
 content: "";
 position: absolute;
 top: 50%;
 left: 8px;
 transform: translateY(-7px) rotate(-45deg);
 width: 14px;
 height: 9px;
 border-left: 2px solid var(--color-wht);
 border-bottom: 2px solid var(--color-wht);
 opacity: 0;
}
:checked + .mwform-checkbox-field-text::before {
 background: var(--color-base);
 border: 1px solid var(--color-base);
}
:checked + .mwform-checkbox-field-text::after {
 opacity: 1;
}
.p-form__button-wrap {
 display: flex;
 justify-content: center;
 margin-top: 36px;
}
.p-form__button02 input {
 display: block;
 width: 260px;
 height: 80px;
 padding-inline: 35px;
 margin: 0 20px;
 background: var(--color-base);
 color: #fff;
 font-size: 1.8rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 text-align: center;
 border-radius: 40px;
 transition: 120ms linear;
 cursor: pointer;
}
.p-form__button02 input:hover {
 background: var(--color-blu2);
}
.p-form__button02 input:disabled {
 pointer-events: none;
 background: #999;
 border: 1px solid #999;
}
.p-form__button03 input,
.p-form__button03 button,
.p-form__button03 a {
 display: flex;
 justify-content: center;
 align-items: center;
 width: 260px;
 height: 80px;
 margin: 0 20px;
 background: var(--color-wht);
 border: 2px solid var(--color-base);
 color: var(--color-base);
 font-size: 1.8rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 text-align: center;
 border-radius: 40px;
 transition: 120ms linear;
}
.p-form__button03 input:hover,
.p-form__button03 button:hover,
.p-form__button03 a:hover {
 background-color: var(--color-gy3);
}

.form-body input::placeholder,
.form-body textarea::placeholder {
 color: #aaa;
}
.form-body input:focus::-webkit-input-placeholder,
.form-body textarea:focus::-webkit-input-placeholder {
 color: transparent;
}
.form-body input:focus::-moz-placeholder,
.form-body textarea:focus::-moz-placeholder {
 color: transparent;
}
.form-body input:focus::-ms-input-placeholder,
.form-body textarea:focus::-ms-input-placeholder {
 color: transparent;
}
.form-body input:focus::placeholder,
.form-body textarea:focus::placeholder {
 color: transparent;
}
.form-body textarea:focus {
 outline: 0;
}
#form .privecy {
 margin-top: 80px;
 text-align: center;
 line-height: 1.6;
}
#form .p-form__agree {
 margin-top: 30px;
 text-align: center;
}
#form .p-form__button-wrap {
 margin-top: 50px;
 display: flex;
 justify-content: center;
}
#form .last-msg {
 color: var(--color-blu);
 line-height: 1.6;
 margin-bottom: 1em;
}
.error_message {
 font-size: 1.6rem;
 font-weight: 600;
 color: #00568f;
 line-height: 1.6;
 margin-bottom: 2em;
}
#form .error {
 display: block;
 color: var(--color-blk);
 font-size: 1.6rem;
 font-weight: 600;
 line-height: 1.6;
 margin-top: 1em;
 padding: 0.5em;
 background-color: var(--color-ylw);
}
.p-form_field {
 font-size: 1.5rem;
 line-height: 1.8;
 padding: 1.5em;
 margin-top: 0.5em;
}
.p-form_button {
 margin-top: 20px;
 display: flex;
 justify-content: center;
 gap: 30px;
}
.p-form_button input {
 display: block;
 width: 260px;
 height: 80px;
 background: var(--color-base);
 color: #fff;
 font-size: 1.6rem;
 font-weight: bold;
 letter-spacing: 0.02em;
 text-align: center;
 border-radius: 40px;
 transition: 120ms linear;
}
.p-form_button input.back-btn {
 background: #999;
}
.p-form_button input:disabled {
 pointer-events: none;
 background: #999;
 border: 1px solid #999;
}

/* confirm */
.mw_wp_form_confirm .confirm-hidden {
 display: none;
}
:not(.mw_wp_form_confirm) .confirm-show {
 display: none;
}
.mw_wp_form_confirm .confirm-show {
 display: block;
}
.mw_wp_form_confirm .p-form-block01,
.mw_wp_form_confirm .p-form__agree,
#form .mw_wp_form_confirm .privecy {
 display: none;
}
#form .mw_wp_form_confirm .form-body > dt {
 padding-block: 40px 0;
}
#form .mw_wp_form_confirm .form-body > dd {
 font-size: 1.8rem;
 font-weight: 700;
 padding-bottom: 40px;
 border-bottom: 1px solid var(--color-line);
}
#form .mw_wp_form_confirm .p-form__button-wrap {
 margin-top: 80px;
}

.complete_wrap {
 width: 380px;
 margin-inline: auto;
}
.complete_wrap h2 {
 font-size: 1.8rem;
 font-weight: 600;
 margin-bottom: 40px;
 text-align: center;
}
.complete_wrap a {
 display: flex;
 justify-content: center;
 align-items: center;
 margin-inline: auto;
 width: 260px;
 height: 60px;
 background: #999;
 color: var(--color-wht);
 font-size: 1.5rem;
 font-weight: 400;
 letter-spacing: 0.02em;
 text-align: center;
 border-radius: 30px;
 transition: 120ms linear;
}
.pdf-button {
 display: flex;
 justify-content: center;
 align-items: center;
 gap: 30px;
 padding-block: 10px;
 padding-inline: 30px;
 border-radius: 10px;
 border: 2px solid var(--color-blk);
 background-color: var(--color-base);
}
.pdf-button span {
 display: flex;
 justify-content: center;
 align-items: center;
 width: 40px;
 height: 60px;
 background: url(../images/common/pdf_icon.png) no-repeat 50% 50%;
 background-size: contain;
}
.pdf-button em {
 color: var(--color-wht);
 font-size: 1.6rem;
 font-weight: 800;
}

@media screen and (min-width: 821px) {
 .p-form_button input:hover {
  background-color: var(--color-blu);
 }
 .complete_wrap a:hover {
  background-color: var(--color-gy1);
 }
 .pdf-button:hover {
  border: 2px solid var(--color-blu2);
  background-color: var(--color-blu2);
 }
}

@media screen and (max-width: 600px) {
 .form-input .read_txt {
  margin-bottom: 30px;
  font-size: min(1.45rem, 4.32cqw);
  line-height: 1.8;
 }
 .form-input .read_txt .mds {
  font-size: min(2.4rem, 6.95cqw);
 }
 .form-input .read_txt .dot {
  font-size: min(1.3rem, 3.88cqw);
  line-height: 1.7;
 }
 .form-body {
  margin-top: 30px;
 }
 #form .form-body > dt {
  width: 100%;
  padding-block: 30px 0;
  font-size: min(1.45rem, 4.32cqw);
 }
 #form .form-body > dd {
  padding-block: 15px 0;
 }
 #form .form-body > dt.blt {
  padding-block: 30px 0;
 }
 #form .form-body > dd.blb {
  padding-block: 30px 20px;
 }
 .form-body textarea {
  height: 400px;
 }
 .checkbox-field {
  display: block;
  margin-right: 0;
  margin-bottom: 20px;
 }
 .checkbox-text {
  font-size: min(1.45rem, 4.32cqw);
  padding-left: 35px;
 }
 .checkbox-text::before {
  width: 25px;
  height: 25px;
 }
 #form .privecy {
  margin-top: 50px;
  text-align: left;
  font-size: min(1.45rem, 4.32cqw);
  line-height: 1.8;
 }
 #form .confirm {
  margin-top: 20px;
 }
 #form .send {
  margin-top: 30px;
  flex-flow: column;
  align-items: center;
  gap: 0;
 }
 #form .confirm + .send {
  margin-top: 0;
 }
 #form .last-msg {
  color: var(--color-blu);
  line-height: 1.6;
  margin-bottom: 1em;
 }
 .p-form_field {
  font-size: min(1.45rem, 4.32cqw);
 }
 .error_message {
  font-size: 1.6rem;
  font-weight: 600;
  color: #00568f;
  line-height: 1.6;
  margin-bottom: 2em;
 }
 #form .error {
  font-size: min(1.45rem, 4.32cqw);
  font-weight: 600;
  line-height: 1.6;
 }
 .p-form_button {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  gap: 30px;
 }
 .p-form_button input {
  display: block;
  width: 260px;
  height: 72px;
  margin: 0 20px;
  background: var(--color-blu);
  color: #fff;
  font-size: 1.6rem;
  font-weight: bold;
  letter-spacing: 0.08em;
  text-align: center;
  border-radius: 36px;
  transition: 120ms linear;
 }
 .p-form__button02 input {
  display: block;
  width: 260px;
  height: 72px;
  padding-inline: 35px;
  margin: 0 20px;
  font-size: min(1.8rem, 5.21cqw);
  border-radius: 36px;
 }
 .p-form__button03 input,
 .p-form__button03 button,
 .p-form__button03 a {
  width: 260px;
  height: 72px;
  margin: 0 20px;
  font-size: min(1.8rem, 5.21cqw);
  border-radius: 36px;
 }
 .p-form_button input:disabled {
  pointer-events: none;
  background: #999;
  border: 1px solid #999;
 }
 #form .p-form__button-wrap {
  flex-direction: column;
  align-items: center;
  gap: 20px;
 }

 /* confirm */
 #form .mw_wp_form_confirm .form-body > dt {
  padding-block: 30px 0;
 }
 #form .mw_wp_form_confirm .form-body > dd {
  font-size: min(1.6rem, 4.63cqw);
  padding-bottom: 30px;
 }
 #form .mw_wp_form_confirm .p-form__button-wrap {
  margin-top: 40px;
 }

 .complete_wrap {
  width: 100%;
 }
 .complete_wrap h2 {
  font-size: clamp(1.5rem, 4.77cqw, 1.6rem);
 }
 .complete_wrap a {
  width: 240px;
  font-size: clamp(1.3rem, 4.17cqw, 1.4rem);
 }
}

/* Policy
---------------------------------------------------------------------------------*/
#other .p_header {
 background-color: var(--color-gy1);
}
#other .p-contents::after {
 background-color: var(--color-ylw);
}
#other .ph_wrap .heading_en {
 font-size: min(8rem, 5.88cqw);
}
.p-other .block + .block {
 margin-top: 60px;
}
.p-other p {
 font-size: 1.35rem;
 line-height: 2;
}
.p-other p + p {
 margin-top: 1em;
}
.p-other h2 {
 font-size: 2.2rem;
 font-weight: 600;
 line-height: 1.5;
 margin-bottom: 30px;
}
.p-other h3 {
 font-size: 1.7rem;
 font-weight: 600;
 line-height: 1.5;
 margin-bottom: 20px;
}
.ot_list_01 > li + li {
 margin-top: 1em;
}
.ot_list_01 {
 margin-top: 20px;
 padding-left: 10px;
}
.ot_list_01 > li {
 position: relative;
 padding-left: 1.3em;
 text-indent: -1em;
 font-size: 1.35rem;
 line-height: 1.8;
}
.ot_list_02 {
 margin-top: 20px;
 margin-bottom: 40px;
 margin-left: 40px;
}
.ot_list_02 > li {
 position: relative;
 padding-left: 0;
 font-size: 1.35rem;
 line-height: 1.8;
}
.ot_list_02 > li + li {
 margin-top: 1em;
}
.ot_list_03 {
 margin-top: 20px;
 margin-bottom: 40px;
 margin-left: 20px;
}
.ot_list_03 > li {
 position: relative;
 padding-left: 0;
 font-size: 1.35rem;
 line-height: 1.8;
}
.ot_list_03 > li + li {
 margin-top: 1em;
}
.ot_dot {
 display: block;
 margin-left: 0.25em;
 padding-left: 1.3em;
 text-indent: -1.3em;
}
.ot_dot2 {
 display: block;
 padding-left: 1.3em;
 text-indent: -1.3em;
}
.ot_dot.ot_small {
 font-size: 1.25rem;
 line-height: 1.7;
}
.p_mark {
 float: right;
 width: 150px;
 margin-left: 20px;
 margin-bottom: 20px;
}

@media screen and (min-width: 821px) {
 .sm_item a:hover,
 .other_item a:hover {
  color: var(--color-blu);
 }
}

@media screen and (max-width: 600px) {
 #other .ph_wrap .heading_en {
  font-size: min(4rem, 10.66cqw);
 }
 .p-other .block + .block {
  margin-top: 40px;
 }
 .p-other p {
  font-size: clamp(1.2rem, 3.88cqw, 1.3rem);
  line-height: 1.8;
 }
 .p-other h2 {
  font-size: min(1.8rem, 5.37cqw);
  margin-bottom: 40px;
 }
 .p-other h3 {
  font-size: min(1.6rem, 4.77cqw);
  margin-bottom: 12px;
 }
 .ot_list_01 {
  margin-top: 15px;
  padding-left: 0;
 }
 .ot_list_01 > li {
  font-size: clamp(1.2rem, 3.88cqw, 1.3rem);
 }
 .ot_list_02 {
  margin-top: 20px;
  margin-bottom: 20px;
  margin-left: 0;
 }
 .ot_list_02 > li {
  font-size: clamp(1.2rem, 3.88cqw, 1.3rem);
 }
 .ot_dot {
  display: block;
  margin-left: 0.25em;
  padding-left: 1.3em;
  text-indent: -1.3em;
 }
 .ot_dot2 {
  display: block;
  padding-left: 1.3em;
  text-indent: -1.3em;
 }
 .ot_dot.ot_small {
  font-size: 1.25rem;
  line-height: 1.7;
 }
 .p_mark {
  float: right;
  width: 30%;
  margin-left: 20px;
  margin-bottom: 20px;
 }
}

/* Not Found
---------------------------------------------------------------------------------*/
#notfound .p-contents {
 padding-block: 6cqw 160px;
}
#notfound .p-contents::before,
#notfound .p-contents::after {
 content: none;
}
.notfound_img {
 max-width: 260px;
 margin-inline: auto;
}
.notfound_txt {
 margin-top: 40px;
 text-align: center;
}
.notfound_txt strong {
 font-size: 2.4rem;
 font-weight: 700;
 line-height: 1.6;
}
.notfound_txt p {
 font-size: 1.45rem;
 font-weight: 400;
 margin-top: 20px;
}
.notfound_btn {
 margin-top: 60px;
 text-align: center;
}

@media screen and (max-width: 600px) {
 #notfound .p-contents {
  padding-block: 16cqw 80px;
 }
 .notfound_img {
  max-width: unset;
  width: min(160px, 47.7cqw);
 }
 .notfound_txt {
  margin-top: 40px;
  text-align: left;
 }
 .notfound_txt strong {
  font-size: min(1.8rem, 5.33cqw);
 }
 .notfound_txt p {
  font-size: min(1.3rem, 3.88cqw);
  margin-top: 20px;
 }
 .notfound_btn {
  margin-top: 40px;
 }
}

/* animation
---------------------------------------------------------------------------------*/
.p-show-elem {
 opacity: 0;
 transform: translateY(50px);
 transition: all 2s cubic-bezier(0.08, 0.8, 0.315, 1);
}
.p-show-elem.p-rev {
 opacity: 0;
 transform: translateY(-50px);
 transition: all 2s cubic-bezier(0.08, 0.8, 0.315, 1);
}
.p-show-elem.p-left {
 opacity: 0;
 transform: translateX(-100px);
 transition: all 3s cubic-bezier(0.08, 0.8, 0.315, 1);
}
.p-show-elem.p-right {
 opacity: 0;
 transform: translateX(100px);
 transition: all 3s cubic-bezier(0.08, 0.8, 0.315, 1);
}
.p-show-elem.is-show,
.p-show-elem.p-rev.is-show,
.p-show-elem.p-left.is-show,
.p-show-elem.p-right.is-show {
 opacity: 1;
 transform: translate(0, 0);
}
.p-show-elem.del2 {
 transition-delay: 0.2s;
}
.p-show-elem.del3 {
 transition-delay: 0.4s;
}
.p-show-elem.del4 {
 transition-delay: 0.6s;
}
.p-show-elem.del5 {
 transition-delay: 0.8s;
}
.p-show-elem.del6 {
 transition-delay: 1s;
}
.ts_flex_wrap .item.se_02.p-show-elem {
 transition-delay: 0.2s;
}
.ts_flex_wrap .item.se_03.p-show-elem {
 transition-delay: 0.4s;
}

@media only screen and (max-width: 820px) {
 .p-show-elem.del2,
 .p-show-elem.del3,
 .p-show-elem.del4,
 .p-show-elem.del5,
 .p-show-elem.del6 {
  transition-delay: 0s;
 }
 .ts_flex_wrap .item.se_02.p-show-elem,
 .ts_flex_wrap .item.se_03.p-show-elem {
  transition-delay: 0s;
 }
}

/* p-clip */
.p-clip {
 clip-path: inset(0 100% 0 0);
 transition: all 1.4s cubic-bezier(0.76, 0, 0.24, 1) 0.1s;
 transition: opacity 1.5s ease, clip-path 1.4s cubic-bezier(0.76, 0, 0.24, 1) 0.1s, -webkit-clip-path 1.4s cubic-bezier(0.76, 0, 0.24, 1) 0.1s;
 opacity: 0;
}
.p-clip.is-show {
 clip-path: inset(0 0 0 0);
 opacity: 1;
}
.s_photo .p-clip {
 clip-path: inset(10% round 100px);
 transition: opacity 1.5s ease, clip-path 1s cubic-bezier(0.5, 1, 0.89, 1), -webkit-clip-path 1s cubic-bezier(0.5, 1, 0.89, 1);
 opacity: 0;
}
.s_photo .p-clip.is-show {
 clip-path: inset(0 round 0);
 opacity: 1;
}

@keyframes photo_pop {
 0% {
  opacity: 0;
  transform: scale(0.8);
 }
 10% {
  opacity: 1;
  transform: scale(0.8);
 }
 100% {
  opacity: 1;
  transform: scale(1);
 }
}
@-webkit-keyframes moveArrow {
 50% {
  transform: translateX(3px);
 }
 100% {
  transform: translateX(0);
 }
}
@keyframes moveArrow {
 50% {
  transform: translateX(3px);
 }
 100% {
  transform: translateX(0);
 }
}
@-webkit-keyframes moveArrowReverse {
 50% {
  transform: translateX(-3px) rotate(180deg);
 }
 100% {
  transform: translateX(0) rotate(180deg);
 }
}
@keyframes moveArrowReverse {
 50% {
  transform: translateX(-3px) rotate(180deg);
 }
 100% {
  transform: translateX(0) rotate(180deg);
 }
}
@keyframes moveArrowReverseCenter {
 50% {
  transform: translate(-3px, -50%) rotate(180deg);
 }
 100% {
  transform: translate(0, -50%) rotate(180deg);
 }
}
@keyframes ani_pop {
 0% {
  opacity: 0;
  transform: scale(2, 2);
 }
 100% {
  opacity: 1;
  transform: scale(1, 1);
 }
}
@keyframes ani_opa {
 0% {
  opacity: 0;
 }
 100% {
  opacity: 1;
 }
}
@keyframes ani_title {
 0% {
  opacity: 0;
  transform: translate(-50px, 0);
 }
 100% {
  transform: translate(0, 0);
  opacity: 1;
 }
}
@keyframes ani_nav {
 0% {
  opacity: 0;
  transform: translate(50px, 0);
 }
 100% {
  transform: translate(0, 0);
  opacity: 1;
 }
}
@media screen and (max-width: 600px) {
 @keyframes ani_nav {
  0% {
   opacity: 0;
   transform: translate(-50px, 0);
  }
  100% {
   transform: translate(0, 0);
   opacity: 1;
  }
 }
}
@keyframes t_photo_swiper {
 0% {
  transform: translateX(0);
 }
 100% {
  transform: translateX(calc(-100% - 16px));
 }
}
@keyframes t_photo_swiper_en {
 0% {
  transform: translateX(0);
 }
 100% {
  transform: translateX(calc(100% + 16px));
 }
}

@media screen and (max-width: 600px) {
 @keyframes t_photo_swiper {
  0% {
   transform: translateX(0);
  }
  100% {
   transform: translateX(calc(-100% - 8px));
  }
 }
 @keyframes t_photo_swiper_en {
  0% {
   transform: translateX(0);
  }
  100% {
   transform: translateX(calc(100% + 8px));
  }
 }
}

/* p-show-img */
.p-show-img .photo {
 opacity: 0;
 transform: scale(1.2);
}
.p-show-img.is-show .photo {
 opacity: 1;
 transform: scale(1);
 transition: all 0.6s cubic-bezier(0.295, 0.03, 0.115, 1);
}

/* p-show-item */
.heading.p-show-item .heading_en,
.heading.p-show-item .heading_jp {
 opacity: 0;
}
.heading.p-show-item.is-show .heading_en,
.heading.p-show-item.is-show .heading_jp {
 animation: ani_title 2s cubic-bezier(0.075, 0.82, 0.165, 1) 0.1s both;
}
.heading.p-show-item.is-show .heading_jp {
 animation-delay: 0.3s;
}

.busi_item.p-show-item .num {
 opacity: 0;
}
.busi_item.p-show-item.is-show .num {
 animation: ani_pop 0.4s cubic-bezier(0.64, 0, 1, 1) 0.1s both;
}
.busi_item.p-show-item.is-show:nth-child(2n) .num {
 animation-delay: 0.3s;
}
