@charset "UTF-8";
:root{
  --inner:68.75rem;
  --padding-inline:1.25rem;
}
:root{
  --header-height:4.25rem;
}
:root{
  --font-family-base:"Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  --font-family-en:Arial, sans-serif;
}

:root{
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
}

:root{
  --black:#02070c;
  --white:#fff;
  --black-rgb:2 7 12;
  --white-rgb:255 255 255;
  --error:#ff9a9a;
  --shade-rgb:0 0 0;
  --text:var(--white);
  --body-bg:var(--black);
  --accent-blue:#60a5fa;
  --accent-blue-rgb:96 165 250;
  --glow-blue-rgb:59 130 246;
  --glow-sky-rgb:56 189 248;
  --opening-dark:#010b0a;
  --opening-mid:#04231f;
  --opening-deep:#021714;
  --opening-glow-rgb:18 122 102;
  --opening-grid-rgb:120 214 190;
  --opening-scan-rgb:40 170 142;
  --opening-logo-glow-rgb:45 180 150;
  --opening-line:#1f9c81;
  --opening-line-rgb:31 156 129;
  --opening-progress-from:#0d7d66;
  --opening-progress-via:#35b596;
}

:root{
  --z-index-header:100;
  --z-index-to-top:200;
  --z-index-drawer:1000;
  --z-index-hamburger:10000;
  --z-index-opening:99999;
  --z-index-modal:100000;
}

:root{
  --cq-ref-mobile:375;
  --cq-ref:1440;
  --fluid-basis-mobile:(100vw - 320px) / (375 - 320);
  --fluid-basis:(100vw - 768px) / (1440 - 768);
  --fluid-basis-2:(100vw - 1440px) / (1800 - 1440);
}

:root{
  --duration-short:0.2s;
  --duration-base:0.3s;
  --duration-long:0.5s;
  --duration-extra-long:0.7s;
  --duration-scroll-short:0.5s;
  --duration-scroll:0.7s;
  --duration-scroll-long:0.9s;
  --duration-image-scale:0.8s;
  --ease-smooth-bounce:cubic-bezier(.48, .07, .33, .79);
}

html{
  overflow-y:scroll;
  scroll-padding-top:calc(var(--header-height) + 1rem);
  scrollbar-gutter:stable;
}

body{
  background-color:var(--body-bg);
  color:var(--text);
  display:flex;
  flex-direction:column;
  font-family:var(--font-family-base);
  font-weight:var(--font-weight-regular);
  min-height:100svh;
  overflow-x:clip;
}

main{
  flex:1;
}

body:not(.is-front){
  padding-top:var(--header-height);
}

.u-desktop{
  display:none;
}

.u-desktop-inline{
  display:none;
}

.u-mobile-inline{
  display:inline;
}

html{
  font-size:4.2666666667vw;
}

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

html{
  -webkit-text-size-adjust:100%;
  -moz-text-size-adjust:100%;
       text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  word-wrap:anywhere;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-break:strict;
  line-height:1.5;
  margin:0;
  overflow-wrap:anywhere;
  text-rendering:optimizeLegibility;
  word-break:normal;
}

ul,
ol,
button,
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
time,
small{
  margin:0;
  padding:0;
}

ul,
ol{
  list-style:none;
}

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

a,
span,
button{
  display:inline-block;
}

small,
time,
figure{
  border:0;
  font:inherit;
  font-size:100%;
  vertical-align:baseline;
}

address{
  font-style:normal;
}

img{
  display:block;
  max-width:100%;
  width:100%;
}

article > * + *{
  margin-top:1em;
}

input,
button,
textarea,
select{
  font:inherit;
}

input,
button,
select,
textarea{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background:transparent;
  border:none;
  border-radius:0;
  outline:none;
}

textarea{
  resize:vertical;
}

input[type=checkbox],
input[type=radio]{
  border:0;
  clip-path:polygon(0 0, 0 0, 0 0, 0 0);
  height:1px;
  margin:-1px;
  padding:0;
  position:absolute;
  width:1px;
}

input[type=submit],
input[type=button],
label,
button,
select{
  cursor:pointer;
}

a{
  -webkit-text-decoration:none;
  color:inherit;
  text-decoration:none;
  transition:0.3s;
}

button{
  color:inherit;
}
a{
  -webkit-tap-highlight-color:transparent;
}

button{
  -webkit-tap-highlight-color:transparent;
}

.blog-archive{
  padding-block:3.75rem 5rem;
}

.blog-archive__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.blog-archive__head{
  margin-bottom:2rem;
}

.blog-archive__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.blog-archive__tabs{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  margin-bottom:2rem;
}

.blog-archive__tab{
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:calc(infinity * 1px);
  display:inline-block;
  font-size:0.8125rem;
  letter-spacing:0.04em;
  line-height:1.4;
  padding:0.5625rem 1.25rem;
  transition:color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.blog-archive__tab.is-active{
  background:var(--white);
  border-color:var(--white);
  color:var(--black);
}

.blog-archive__list{
  display:grid;
  gap:1rem;
}

.blog-archive__pagination{
  margin-top:3rem;
}

.blog-archive__empty{
  border-block:1px solid rgb(var(--white-rgb)/0.16);
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.9375rem;
  padding-block:1.75rem;
}

.blog-single{
  padding-block:3.75rem 5rem;
}

.blog-single__inner{
  margin-inline:auto;
  max-width:calc(56.25rem + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.blog-single__head{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
  padding-bottom:1.75rem;
}

.blog-single__meta{
  align-items:center;
  display:flex;
  gap:0.875rem;
  margin-bottom:1rem;
}

.blog-single__date{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.8125rem;
  letter-spacing:0.08em;
}

.blog-single__cat{
  border:1px solid rgb(var(--white-rgb)/0.4);
  border-radius:calc(infinity * 1px);
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.6875rem;
  letter-spacing:0.06em;
  line-height:1;
  padding:0.3125rem 0.875rem;
  transition:border-color 0.25s ease;
}

.blog-single__title{
  font-size:1.375rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.blog-demo{
  aspect-ratio:4/3;
  background:var(--black);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  margin-top:2rem;
  overflow:hidden;
}

.blog-demo__frame{
  border:0;
  height:100%;
  width:100%;
}

.blog-single__content{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.9375rem;
  letter-spacing:0.03em;
  line-height:2;
  padding-block:2rem;
}

.blog-single__content p,
.blog-single__content ul,
.blog-single__content ol,
.blog-single__content figure,
.blog-single__content pre,
.blog-single__content video{
  margin-top:1.6em;
}

.blog-single__content > :first-child{
  margin-top:0;
}

.blog-single__content h2{
  border-left:3px solid var(--white);
  font-size:1.25em;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:2.4em;
  padding-left:0.875rem;
}

.blog-single__content h3{
  font-size:1.1em;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:2em;
}

.blog-single__content ul{
  list-style:disc;
  padding-left:1.4em;
}

.blog-single__content ol{
  list-style:decimal;
  padding-left:1.4em;
}

.blog-single__content a{
  -webkit-text-decoration:underline;
  text-decoration:underline;
  text-underline-offset:0.25em;
}

.blog-single__content img,
.blog-single__content video{
  border-radius:0.75rem;
}

.blog-single__content video{
  display:block;
  height:auto;
  width:100%;
}

.blog-single__content figcaption{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.85em;
  margin-top:0.625rem;
}

.blog-single__content code{
  background:rgb(var(--white-rgb)/0.1);
  border-radius:0.25rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:0.9em;
  padding:0.15em 0.4em;
}

.blog-single__content pre{
  background:rgb(var(--white-rgb)/0.04);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:0.75rem;
  line-height:1.8;
  overflow-x:auto;
  padding:1.25rem 1.5rem;
}

.blog-single__content pre code{
  background:none;
  font-size:0.85em;
  padding:0;
}

.blog-single__back{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
  padding-top:2rem;
}
.blog-single__content strong{
  background:linear-gradient(transparent 62%, rgb(var(--accent-blue-rgb)/0.3) 0);
  font-weight:var(--font-weight-bold);
}

.blog-single__content li{
  margin-top:0.5em;
}

.blog-single__content .ix-note{
  background:rgb(var(--accent-blue-rgb)/0.08);
  border:1px solid rgb(var(--accent-blue-rgb)/0.45);
  border-radius:0.75rem;
  margin-top:1.6em;
  padding:1rem 1.25rem;
}
.blog-single__content .ix-note > :first-child{
  margin-top:0;
}
.blog-single__content .ix-note ul{
  margin-top:0.4em;
}

.blog-single__content .ix-note__label{
  color:var(--accent-blue);
  display:block;
  font-size:0.6875rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.14em;
  margin-bottom:0.25rem;
}

.blog-single__content .ix-steps,
.blog-single__content .ix-check{
  list-style:none;
  padding-left:0;
}
.blog-single__content .ix-steps li,
.blog-single__content .ix-check li{
  padding-left:2.4em;
  position:relative;
}

.blog-single__content .ix-steps{
  counter-reset:ix-step;
}
.blog-single__content .ix-steps li{
  counter-increment:ix-step;
}
.blog-single__content .ix-steps li::before{
  align-items:center;
  background:var(--accent-blue);
  border-radius:50%;
  color:var(--black);
  content:counter(ix-step);
  display:grid;
  font-size:0.8em;
  font-weight:var(--font-weight-bold);
  height:1.7em;
  justify-items:center;
  left:0;
  line-height:1;
  place-items:center;
  position:absolute;
  top:0.2em;
  width:1.7em;
}

.blog-single__content .ix-check li::before{
  color:var(--accent-blue);
  content:"✓";
  font-weight:var(--font-weight-bold);
  left:0.2em;
  position:absolute;
  top:0;
}

.blog-single__content .ix-credit{
  color:rgb(var(--white-rgb)/0.6);
  font-size:0.8em;
  line-height:1.8;
}

.blog-top{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.blog-top__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.blog-top__head{
  margin-bottom:2.5rem;
}

.blog-top__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.blog-top__list{
  display:grid;
  gap:1rem;
}

.blog-top__empty{
  border-block:1px solid rgb(var(--white-rgb)/0.16);
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.9375rem;
  padding-block:1.75rem;
}

.blog-top__more{
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.contact-form{
  padding-block:3.75rem 5rem;
}

.contact-form__inner{
  margin-inline:auto;
  max-width:calc(53.75rem + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.contact-form__head{
  margin-bottom:2rem;
}

.contact-form__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.contact-form__lead-text + .contact-form__lead-text{
  margin-top:0.5rem;
}

.contact-form__panel{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  color-scheme:dark;
  padding:1.75rem 1.25rem;
}

.contact-form__alert{
  border:1px solid var(--error);
  border-radius:0.5rem;
  color:var(--error);
  font-size:0.875rem;
  line-height:1.7;
  margin-bottom:1.5rem;
  padding:0.875rem 1rem;
}

.contact-form__honeypot{
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:clip;
  position:absolute;
  width:1px;
}

.contact-form__list{
  display:grid;
  gap:1.75rem;
}

.contact-form__item{
  display:grid;
  gap:0.625rem;
}

.contact-form__label{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  font-size:0.875rem;
  font-weight:var(--font-weight-bold);
  gap:0.25rem 0.625rem;
  letter-spacing:0.03em;
  line-height:1.5;
}

.contact-form__required,
.contact-form__optional{
  border-radius:0.25rem;
  font-size:0.6875rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.06em;
  line-height:1.4;
  padding:0.1875rem 0.5rem;
}

.contact-form__required{
  background:var(--white);
  color:var(--black);
}

.contact-form__optional{
  border:1px solid rgb(var(--white-rgb)/0.4);
  color:rgb(var(--white-rgb)/0.7);
}

.contact-form__note{
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.75rem;
  font-weight:var(--font-weight-regular);
}

.contact-form__input{
  background:rgb(var(--white-rgb)/0.04);
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:0.5rem;
  color:var(--white);
  font-size:max(16px, 1rem);
  line-height:1.6;
  padding:0.875rem 1rem;
  transition:border-color 0.25s ease, background-color 0.25s ease;
  width:100%;
}

.contact-form__input::-moz-placeholder{
  color:rgb(var(--white-rgb)/0.38);
}

.contact-form__input::placeholder{
  color:rgb(var(--white-rgb)/0.38);
}

.contact-form__input:focus{
  background:rgb(var(--white-rgb)/0.07);
  border-color:var(--white);
  box-shadow:0 0 0 3px rgb(var(--white-rgb)/0.16);
}

.contact-form__input:user-invalid{
  border-color:var(--error);
}

.contact-form__input--textarea{
  min-height:13.75rem;
}

.contact-form__select{
  position:relative;
}

.contact-form__select::after{
  border-bottom:1px solid var(--white);
  border-right:1px solid var(--white);
  content:"";
  height:0.5rem;
  pointer-events:none;
  position:absolute;
  right:1.125rem;
  top:50%;
  transform:translateY(-70%) rotate(45deg);
  width:0.5rem;
}

.contact-form__input--select{
  color-scheme:dark;
  padding-right:2.75rem;
}

.contact-form__input--select option{
  background-color:var(--black);
  color:var(--white);
}

.contact-form__error{
  color:var(--error);
  display:none;
  font-size:0.75rem;
  line-height:1.6;
  margin-top:0.5rem;
}

.contact-form__input:user-invalid + .contact-form__error,
.contact-form__error.is-visible{
  display:block;
}

.contact-form__choices{
  display:flex;
  flex-wrap:wrap;
  gap:0.625rem;
}

.contact-form__check-label{
  align-items:center;
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:calc(infinity * 1px);
  display:inline-flex;
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.4;
  padding:0.6875rem 1.125rem;
  transition:color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.contact-form__check:checked + .contact-form__check-label{
  background:var(--white);
  border-color:var(--white);
  color:var(--black);
}

.contact-form__check:focus-visible + .contact-form__check-label{
  box-shadow:0 0 0 3px rgb(var(--white-rgb)/0.4);
}

.contact-form__value{
  word-wrap:anywhere;
  font-size:0.9375rem;
  letter-spacing:0.03em;
  line-height:1.9;
  overflow-wrap:anywhere;
}

.contact-form__submit,
.contact-form__actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:center;
  margin-top:1.5rem;
}

.contact-form__actions,
.contact-form__complete-text + .contact-form__submit{
  margin-top:2.5rem;
}

.contact-form__complete-text{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.9375rem;
  letter-spacing:0.03em;
  line-height:2;
}

.contact-form__complete-text + .contact-form__complete-text{
  margin-top:1rem;
}

.contact-form__privacy{
  color:rgb(var(--white-rgb)/0.68);
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:1.8;
  margin-top:2.5rem;
  text-align:center;
}

.contact-form__privacy-link{
  -webkit-text-decoration:underline;
  text-decoration:underline;
  text-underline-offset:0.25em;
}

.contact-cta{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.contact-cta__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.contact-cta__panel{
  background:radial-gradient(circle at 88% 6%, rgb(var(--glow-blue-rgb)/0.16), transparent 42%), radial-gradient(circle at 8% 94%, rgb(var(--glow-sky-rgb)/0.08), transparent 38%), rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.2);
  border-radius:1.25rem;
  padding:2.5rem 1.5rem;
  text-align:center;
}

.contact-cta__lead{
  font-size:1.125rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:2rem;
}

.contact-cta__text{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:2;
  margin-top:0.5rem;
}

.contact-cta__btn{
  display:flex;
  justify-content:center;
  margin-top:1.5rem;
}

.contact-cta__points{
  color:rgb(var(--white-rgb)/0.68);
  display:grid;
  font-size:0.75rem;
  gap:0.5rem;
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:1.5rem;
}

.contact-cta__point{
  padding-left:1rem;
  position:relative;
  text-align:left;
}

.contact-cta__point::before{
  background:rgb(var(--white-rgb)/0.7);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:0.95em;
  width:0.5rem;
}

.contact-cta__phrase{
  display:inline-block;
}

.contact-cta__guide{
  margin-inline:auto;
  margin-top:1.25rem;
  max-width:43.75rem;
}

.contact-cta__guide-main{
  color:rgb(var(--white-rgb)/0.92);
  font-size:0.875rem;
  letter-spacing:0.02em;
  line-height:1.9;
}

.contact-cta__reply{
  margin-top:1.75rem;
}

.contact-cta__reply-main{
  font-size:0.9375rem;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0.02em;
  line-height:1.7;
}

.contact-cta__reply-note{
  color:rgb(var(--white-rgb)/0.76);
  font-size:0.75rem;
  letter-spacing:0.02em;
  line-height:1.8;
  margin-top:0.375rem;
}

.faq{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.faq__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.faq__head{
  margin-bottom:2.5rem;
}

.faq__list{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
}

.faq__item{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
}

.faq__question{
  align-items:center;
  cursor:pointer;
  display:grid;
  gap:0.875rem;
  grid-template-columns:1.75rem 1fr 1.5rem;
  list-style:none;
  padding-block:1.375rem;
  transition:background-color 0.25s ease;
}

.faq__question::-webkit-details-marker{
  display:none;
}

.faq__question:focus-visible{
  outline:2px solid rgb(var(--white-rgb)/0.6);
  outline-offset:-2px;
}

.faq__q{
  color:rgb(var(--white-rgb)/0.5);
  font-size:1.25rem;
  font-weight:var(--font-weight-bold);
  line-height:1;
}

.faq__q-text{
  font-size:0.9375rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.6;
}

.faq__icon{
  height:1.125rem;
  justify-self:end;
  position:relative;
  width:1.125rem;
}

.faq__icon::before,
.faq__icon::after{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:50%;
  transition:transform 0.3s ease;
  width:100%;
}

.faq__icon::after{
  transform:rotate(90deg);
}

.faq__item[open] .faq__icon::after{
  transform:rotate(0);
}

.faq__answer{
  color:rgb(var(--white-rgb)/0.84);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
  padding:0 2.375rem 1.5rem 2.625rem;
}

.flow{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.flow__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.flow__head{
  margin-bottom:2rem;
}

.flow__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.flow__item{
  display:grid;
  gap:1.25rem;
  grid-template-columns:2.75rem 1fr;
  padding-bottom:1.125rem;
  position:relative;
}

.flow__item:not(:last-child)::before{
  background:rgb(var(--white-rgb)/0.2);
  bottom:0.5rem;
  content:"";
  left:1.375rem;
  position:absolute;
  top:3.25rem;
  width:1px;
}

.flow__no{
  align-items:center;
  border:1px solid rgb(var(--white-rgb)/0.5);
  border-radius:calc(infinity * 1px);
  display:flex;
  font-size:0.8125rem;
  height:2.75rem;
  justify-content:center;
  letter-spacing:0.1em;
  line-height:1;
  width:2.75rem;
}

.flow__body{
  max-width:47.5rem;
  padding-top:0.25rem;
}

.flow__title{
  font-size:1.125rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.flow__text{
  color:rgb(var(--white-rgb)/0.84);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.85;
  margin-top:0.375rem;
}

.flow__facts{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  margin-top:2rem;
  padding:1.75rem 1.5rem;
}

.flow__facts-title{
  font-size:1.0625rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.flow__facts-list{
  display:grid;
  margin-top:1.25rem;
}

.flow__fact{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:1.25rem;
}

.flow__fact-label{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.75rem;
  letter-spacing:0.2em;
  line-height:1.5;
}

.flow__fact-text{
  color:rgb(var(--white-rgb)/0.9);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:0.625rem;
}

.flow__fact-note{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.75rem;
  letter-spacing:0.03em;
  line-height:1.8;
  margin-top:0.625rem;
}

.flow__expand{
  margin-top:1rem;
}

.flow__toggle{
  align-items:center;
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
  border-top:1px solid rgb(var(--white-rgb)/0.16);
  cursor:pointer;
  display:flex;
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  gap:1rem;
  justify-content:space-between;
  line-height:1.7;
  list-style:none;
  padding-block:0.875rem;
}

.flow__toggle::-webkit-details-marker{
  display:none;
}

.flow__toggle::after{
  color:rgb(var(--opening-grid-rgb));
  content:"＋";
  font-size:1.125rem;
}

.flow__expand[open] .flow__toggle::after{
  content:"−";
}

.flow__toggle:focus-visible{
  outline:2px solid var(--white);
  outline-offset:4px;
}

.flow__detail-list{
  display:grid;
  gap:1.25rem;
  list-style:decimal;
  padding-left:1.5rem;
  padding-top:1.25rem;
}

.flow__detail-title{
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  line-height:1.7;
  margin-top:1rem;
}

.flow__detail-text{
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.8125rem;
  line-height:1.9;
  margin-top:0.5rem;
}

.flow__expanded{
  padding-top:0.5rem;
}

.inner{
  margin-left:auto;
  margin-right:auto;
  max-width:500px;
  padding-left:20px;
  padding-right:20px;
  width:100%;
}

.mv{
  --reveal-offset:0.18s;
  display:flex;
  flex-direction:column;
  isolation:isolate;
  min-height:100svh;
  padding-top:var(--header-height);
  position:relative;
  transition:transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

body.is-opening .mv{
  transform:scale(1.035);
}

.mv__bg{
  display:block;
  inset:0;
  position:absolute;
  z-index:-2;
}

.mv__bg-img{
  height:100%;
  object-fit:cover;
  object-position:center;
  width:100%;
}

.mv__shade{
  background:linear-gradient(180deg, rgb(var(--black-rgb)/0.58) 0%, rgb(var(--black-rgb)/0.7) 34%, rgb(var(--black-rgb)/0.92) 72%, rgb(var(--black-rgb)/0.98) 100%), linear-gradient(90deg, rgb(var(--black-rgb)/0.7) 0%, rgb(var(--black-rgb)/0.38) 65%, rgb(var(--black-rgb)/0.32) 100%);
  inset:0;
  opacity:0.8;
  position:absolute;
  z-index:-1;
}

.mv__main{
  align-items:flex-end;
  display:flex;
  flex:1;
  padding-bottom:6rem;
  padding-top:2.5rem;
}

.mv__inner{
  margin-inline:auto;
  max-width:99.75rem;
  padding-inline:var(--padding-inline);
  width:100%;
}

.mv__content{
  width:100%;
}

.mv__eyebrow{
  display:flex;
  flex-direction:column;
  gap:0.625rem;
  line-height:1.5;
  margin-bottom:1.25rem;
  transition:opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.mv__audience{
  color:rgb(var(--white-rgb)/0.9);
  font-size:0.8125rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.06em;
}

.mv__eyebrow-en{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.625rem;
  letter-spacing:0.26em;
}

.mv__title{
  text-wrap:initial;
  font-size:2rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.018em;
  line-height:1.35;
  max-width:35rem;
}

.mv__title-line{
  display:inline-block;
  white-space:nowrap;
}

.mv__char{
  display:inline-block;
  transition:opacity 0.55s cubic-bezier(0.33, 1, 0.68, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
  white-space:pre;
}

.mv__lead{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.875rem;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.025em;
  line-height:1.9;
  margin-top:1.375rem;
  max-width:38.75rem;
  transition:opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1), transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

.mv__lead-strong{
  color:var(--white);
  font-weight:var(--font-weight-bold);
}

.mv__actions{
  display:grid;
  gap:0.75rem;
  margin-top:1.75rem;
  max-width:16.25rem;
  transition:opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  width:100%;
}

.mv__proof{
  display:flex;
  flex-wrap:wrap;
  gap:0.375rem 1rem;
  margin-top:1.25rem;
  transition:opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.mv__proof-item{
  color:rgb(var(--white-rgb)/0.72);
  font-size:0.6875rem;
  letter-spacing:0.04em;
  line-height:1.5;
  padding-left:0.875rem;
  position:relative;
}

.mv__proof-item::before{
  background:rgb(var(--white-rgb)/0.72);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:0.75em;
  width:0.5rem;
}

.mv__foot{
  padding-bottom:2.125rem;
}

.mv__foot-content{
  align-items:flex-end;
  display:flex;
  justify-content:space-between;
}

.mv__guide{
  display:none;
  transition:opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.mv__scroll{
  align-items:center;
  display:flex;
  gap:1.625rem;
}

.mv__scroll-line{
  background:rgb(var(--white-rgb)/0.9);
  display:block;
  height:4.875rem;
  width:1px;
}

.mv__scroll-text{
  color:rgb(var(--white-rgb)/0.72);
  font-size:0.75rem;
  letter-spacing:0.34em;
}

.mv__tagline{
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.625rem;
  letter-spacing:0.31em;
  line-height:1;
}

.mv__skills{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem 1.125rem;
  transition:opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.mv__skill{
  color:rgb(var(--white-rgb)/0.66);
  font-size:0.6875rem;
  letter-spacing:0.05em;
  line-height:1;
}

body.is-opening .mv__char{
  opacity:0;
  transform:translateX(1.875rem);
}

body.is-opening .mv__lead{
  opacity:0;
  transform:translateX(3rem);
}

body.is-opening .mv__eyebrow,
body.is-opening .mv__actions,
body.is-opening .mv__proof,
body.is-opening .mv__guide,
body.is-opening .mv__skills{
  opacity:0;
  transform:translateY(1rem);
}

body.is-ready .mv__char{
  transition-delay:calc(var(--reveal-offset) + var(--i, 0) * 0.032s);
}

body.is-ready .mv__lead{
  transition-delay:calc(var(--reveal-offset) + 0.36s);
}

body.is-ready .mv__eyebrow{
  transition-delay:calc(var(--reveal-offset) + 0.5s);
}

body.is-ready .mv__actions,
body.is-ready .mv__proof{
  transition-delay:calc(var(--reveal-offset) + 0.56s);
}

body.is-ready .mv__guide,
body.is-ready .mv__skills{
  transition-delay:calc(var(--reveal-offset) + 0.65s);
}
.news{
  padding-block:5rem;
}

.news__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.news__content{
  display:grid;
  gap:2rem;
  grid-template-areas:"head" "body" "more";
}

.news__head{
  grid-area:head;
}

.news__body{
  grid-area:body;
}

.news__more{
  grid-area:more;
}

.news-archive{
  padding-block:3.75rem 5rem;
}

.news-archive__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.news-archive__head{
  margin-bottom:2rem;
}

.news-archive__pagination{
  margin-top:3rem;
}

.news-single{
  padding-block:3.75rem 5rem;
}

.news-single__inner{
  margin-inline:auto;
  max-width:calc(53.75rem + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.news-single__head{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
  padding-bottom:1.75rem;
}

.news-single__meta{
  align-items:center;
  display:flex;
  gap:0.875rem;
  margin-bottom:1rem;
}

.news-single__date{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.8125rem;
  letter-spacing:0.08em;
}

.news-single__cat{
  border:1px solid rgb(var(--white-rgb)/0.4);
  border-radius:calc(infinity * 1px);
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.6875rem;
  letter-spacing:0.06em;
  line-height:1;
  padding:0.3125rem 0.875rem;
}

.news-single__title{
  font-size:1.375rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.news-single__content{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.9375rem;
  letter-spacing:0.03em;
  line-height:2;
  padding-block:2rem;
}

.news-single__content p,
.news-single__content ul,
.news-single__content ol,
.news-single__content figure{
  margin-top:1.6em;
}

.news-single__content > :first-child{
  margin-top:0;
}

.news-single__content h2{
  border-left:3px solid var(--white);
  font-size:1.25em;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:2.4em;
  padding-left:0.875rem;
}

.news-single__content h3{
  font-size:1.1em;
  font-weight:var(--font-weight-bold);
  line-height:1.5;
  margin-top:2em;
}

.news-single__content ul{
  list-style:disc;
  padding-left:1.4em;
}

.news-single__content ol{
  list-style:decimal;
  padding-left:1.4em;
}

.news-single__content a{
  -webkit-text-decoration:underline;
  text-decoration:underline;
  text-underline-offset:0.25em;
}

.news-single__back{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
  padding-top:2rem;
}

.not-found{
  padding-block:6.25rem 7.5rem;
}

.not-found__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.not-found__content{
  text-align:center;
}

.not-found__code{
  font-size:4.5rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.08em;
  line-height:1;
}

.not-found__title{
  font-size:1.25rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
  margin-top:1.5rem;
}

.not-found__text{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1rem;
}

.not-found__btn{
  margin-top:2.5rem;
}

.policy{
  padding-block:3.75rem 5rem;
}

.policy__inner{
  margin-inline:auto;
  max-width:calc(53.75rem + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.policy__head{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
  padding-bottom:1.75rem;
}

.policy__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.policy__body{
  padding-top:0.5rem;
}

.policy__section{
  margin-top:2.25rem;
}

.policy__title{
  border-left:3px solid var(--white);
  font-size:1.0625rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
  padding-left:0.875rem;
}

.policy__text{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
  margin-top:1rem;
}

.policy__list{
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
  list-style:disc;
  margin-top:0.75rem;
  padding-left:1.4em;
}

.policy__link{
  -webkit-text-decoration:underline;
  text-decoration:underline;
  text-underline-offset:0.25em;
}

.policy__date{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.8125rem;
  letter-spacing:0.06em;
  margin-top:3rem;
  padding-top:1.5rem;
  text-align:right;
}

.price{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.price__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.price__head{
  margin-bottom:2.5rem;
}

.price__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.price__lead-note{
  color:rgb(var(--white-rgb)/0.76);
  font-size:0.75rem;
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:0.5rem;
}

.price__name{
  font-size:1.0625rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.02em;
  line-height:1.6;
}

.price__volume{
  font-size:1.125rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.01em;
  line-height:1.6;
  margin-top:1rem;
}

.price__volume-note{
  color:rgb(var(--opening-grid-rgb));
  display:block;
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  margin-top:0.25rem;
}

.price__desc{
  color:rgb(var(--white-rgb)/0.76);
  font-size:0.8125rem;
  letter-spacing:0.02em;
  line-height:1.85;
  margin-top:0.75rem;
}

.price__value{
  align-items:baseline;
  display:flex;
  gap:0.125rem;
  margin-top:1rem;
}

.price__num{
  font-size:1.875rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.01em;
  line-height:1.2;
  white-space:nowrap;
}

.price__unit{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.75rem;
  letter-spacing:0.03em;
  line-height:1.2;
}

.price__info{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  display:grid;
  gap:2rem;
  margin-top:2.5rem;
  padding:1.75rem 1.5rem;
}

.price__info-title{
  font-size:0.9375rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.price__info-list{
  margin-top:0.75rem;
}

.price__info-item{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  color:rgb(var(--white-rgb)/0.86);
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:1.8;
  padding:0.625rem 0 0.625rem 1.375rem;
  position:relative;
}

.price__info-item::before{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:calc(0.625rem + 0.9em);
  width:0.625rem;
}

.price__cta{
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.price__examples-title{
  font-size:1.125rem;
  font-weight:var(--font-weight-medium);
  line-height:1.5;
}

.price__examples-list{
  display:grid;
  gap:1rem;
  margin-top:1.25rem;
}

.price__example{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:0.75rem;
  border-top:2px solid var(--opening-line);
  padding:1.5rem;
}

.price__num--range{
  font-size:1.5625rem;
}

.price__estimate-note{
  color:rgb(var(--white-rgb)/0.85);
  font-size:0.875rem;
  letter-spacing:0.02em;
  line-height:1.9;
  margin-top:1.25rem;
}

.profile{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.profile__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.profile__head{
  margin-bottom:2.5rem;
}

.profile__content{
  display:grid;
  gap:2.5rem;
}

.profile__side{
  max-width:20rem;
}

.profile__photo{
  align-items:center;
  aspect-ratio:4/5;
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  display:flex;
  justify-content:center;
  overflow:hidden;
}

.profile__photo-img{
  height:100%;
  object-fit:cover;
  width:100%;
}

.profile__role{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.75rem;
  letter-spacing:0.2em;
  line-height:1.5;
  margin-top:1.5rem;
}

.profile__name{
  font-size:1.75rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.06em;
  line-height:1.3;
  margin-top:0.5rem;
}

.profile__kana{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.75rem;
  letter-spacing:0.12em;
  line-height:1.5;
  margin-top:0.375rem;
}

.profile__area{
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.8125rem;
  letter-spacing:0.08em;
  line-height:1.5;
  margin-top:1rem;
}

.profile__block + .profile__block{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  margin-top:3rem;
  padding-top:2.5rem;
}

.profile__title{
  font-size:1.125rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.profile__text{
  color:rgb(var(--white-rgb)/0.86);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
  margin-top:1rem;
}

.profile__history{
  border-bottom:1px solid rgb(var(--white-rgb)/0.12);
  margin-top:1.5rem;
}

.profile__history-row{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  display:grid;
  gap:0.25rem;
  padding-block:1rem;
}

.profile__history-year{
  color:rgb(var(--white-rgb)/0.68);
  font-size:0.8125rem;
  letter-spacing:0.12em;
  line-height:1.8;
}

.profile__history-text{
  color:rgb(var(--white-rgb)/0.9);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
}

.profile__history + .profile__text{
  margin-top:1.5rem;
}

.profile__hobbies{
  display:grid;
  gap:0.5rem;
  margin-top:1rem;
}

.profile__hobby{
  color:rgb(var(--white-rgb)/0.86);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
  padding-left:1.375rem;
  position:relative;
}

.profile__hobby::before{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:1em;
  width:0.625rem;
}

.profile__skills{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  margin-top:1.25rem;
}

.profile__skill{
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:calc(infinity * 1px);
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.8125rem;
  letter-spacing:0.04em;
  line-height:1.4;
  padding:0.5rem 1rem;
}

.service{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.service__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.service__head{
  margin-bottom:2rem;
}

.service__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.service__list{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
}

.service__item{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
}

.service__card{
  display:grid;
  gap:1rem;
  padding-block:1.5rem;
}

.service__no{
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.8125rem;
  letter-spacing:0.26em;
  line-height:1;
}

.service__en{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.6875rem;
  letter-spacing:0.26em;
  line-height:1;
  margin-top:0.875rem;
}

.service__title{
  font-size:1.625rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.4;
  margin-top:0.75rem;
}

.service__text{
  color:rgb(var(--white-rgb)/0.86);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
}

.service__points{
  display:grid;
  margin-top:1rem;
}

.service__point{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:1.7;
  padding:0.5rem 0 0.5rem 1.375rem;
  position:relative;
}

.service__point::before{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:calc(0.5rem + 0.85em);
  width:0.625rem;
}

.service__note{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.75rem;
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:1.25rem;
}

.service__more{
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.service__overview{
  font-size:1rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  line-height:1.8;
}

.service__expand{
  margin-top:1rem;
}

.service__toggle{
  align-items:center;
  border-bottom:1px solid rgb(var(--white-rgb)/0.2);
  cursor:pointer;
  display:flex;
  font-size:0.875rem;
  font-weight:var(--font-weight-medium);
  gap:1rem;
  justify-content:space-between;
  line-height:1.7;
  list-style:none;
  padding-block:0.75rem;
}

.service__toggle::-webkit-details-marker{
  display:none;
}

.service__toggle::after{
  color:rgb(var(--opening-grid-rgb));
  content:"＋";
  font-size:1.125rem;
}

.service__expand[open] .service__toggle::after{
  content:"−";
}

.service__toggle:focus-visible{
  outline:2px solid var(--white);
  outline-offset:4px;
}

.service__expanded{
  padding-top:1rem;
}

.service__extras{
  display:grid;
  gap:0.5rem;
  list-style:disc;
  margin-top:1rem;
  padding-left:1.25rem;
}

.service__extra-item{
  color:rgb(var(--white-rgb)/0.8);
  font-size:0.8125rem;
  line-height:1.8;
}

@property --strength-line{
  syntax:"<angle>";
  inherits:false;
  initial-value:0deg;
}
.strength{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.strength__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.strength__head{
  margin-bottom:2.5rem;
}

.strength__lead{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:1.25rem;
}

.strength__list{
  display:grid;
  gap:1rem;
}

.strength__card{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  display:flex;
  flex-direction:column;
  height:100%;
  padding:1.75rem 1.5rem;
  position:relative;
}

.strength__no{
  color:var(--white);
  font-size:1.5rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1;
}

.strength__en{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.6875rem;
  letter-spacing:0.26em;
  line-height:1;
  margin-top:0.75rem;
}

.strength__title{
  text-wrap:balance;
  font-size:1.3125rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
  margin-top:0.75rem;
}

.strength__summary{
  font-size:1rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  line-height:1.8;
  margin-top:1rem;
}

.strength__text{
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.95;
  margin-top:0.75rem;
}

.strength__points{
  margin-top:1rem;
}

.strength__detail{
  margin-top:0.5rem;
}

.strength__toggle{
  align-items:center;
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  cursor:pointer;
  display:flex;
  font-size:0.8125rem;
  gap:0.75rem;
  justify-content:space-between;
  line-height:1.7;
  list-style:none;
  min-height:2.75rem;
}

.strength__toggle::-webkit-details-marker{
  display:none;
}

.strength__toggle::after{
  color:var(--opening-line);
  content:"＋";
}

.strength__detail[open] .strength__toggle::after{
  content:"−";
}

.strength__toggle:focus-visible{
  outline:2px solid var(--white);
  outline-offset:3px;
}

.strength__point{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:1.7;
  padding:0.75rem 0 0.75rem 1.375rem;
  position:relative;
}

.strength__point::before{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:calc(0.75rem + 0.85em);
  width:0.625rem;
}

.strength__card::before{
  --strength-line:0deg;
  -webkit-mask:linear-gradient(#000 0, #000 0) content-box, linear-gradient(#000 0, #000 0);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  background:conic-gradient(from 0deg, var(--white) 0deg, var(--white) var(--strength-line), transparent calc(var(--strength-line) + 0.4deg));
  border-radius:inherit;
  content:"";
  inset:-1px;
          mask:linear-gradient(#000 0, #000 0) content-box, linear-gradient(#000 0, #000 0);
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  padding:1px;
  pointer-events:none;
  position:absolute;
}

.strength__item.is-active .strength__card::before{
  animation:strength-line 1.6s cubic-bezier(0.65, 0, 0.35, 1) 0.3s forwards;
}

.strength__item:nth-child(2).is-active .strength__card::before{
  animation-delay:0.5s;
}

.strength__item:nth-child(3).is-active .strength__card::before{
  animation-delay:0.7s;
}

@keyframes strength-line{
  to{
    --strength-line:360deg;
  }
}
.works{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  padding-block:5rem;
}

.works__inner{
  margin-inline:auto;
  max-width:calc(var(--inner) + var(--padding-inline) * 2);
  padding-inline:var(--padding-inline);
  width:100%;
}

.works__head{
  margin-bottom:2.5rem;
}

.works__total{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
  display:grid;
  gap:1.25rem;
  padding-bottom:1.75rem;
}

.works__total-figure{
  align-items:baseline;
  display:flex;
  gap:0.5rem;
  line-height:1;
}

.works__total-label{
  color:rgb(var(--white-rgb)/0.68);
  font-size:0.875rem;
  letter-spacing:0.2em;
}

.works__total-num{
  font-size:5rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.02em;
}

.works__total-unit{
  font-size:1.25rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
}

.works__total-copy{
  max-width:32.5rem;
}

.works__partner{
  font-size:1.0625rem;
  font-weight:var(--font-weight-semibold);
  letter-spacing:0.02em;
  line-height:1.7;
}

.works__total-text{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:0.75rem;
}

.works__stats{
  display:grid;
  grid-template-columns:1fr 1fr;
}

.works__stat{
  border-bottom:1px solid rgb(var(--white-rgb)/0.12);
  padding:1.5rem 0.5rem 1.5rem 0;
}

.works__stat-label{
  color:rgb(var(--white-rgb)/0.72);
  font-size:0.8125rem;
  letter-spacing:0.04em;
  line-height:1.6;
}

.works__stat-value{
  align-items:baseline;
  display:flex;
  gap:0.25rem;
  margin-top:0.625rem;
}

.works__stat-num{
  font-size:2.25rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.02em;
  line-height:1;
}

.works__stat-unit{
  color:rgb(var(--white-rgb)/0.78);
  font-size:0.8125rem;
  letter-spacing:0.04em;
  line-height:1;
}

.works__stats-note{
  color:rgb(var(--white-rgb)/0.7);
  font-size:0.75rem;
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:1rem;
}

.works__voice{
  margin-top:3.5rem;
}

.works__sub-title{
  font-size:1.25rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.5;
}

.works__voice-list{
  display:grid;
  gap:0.75rem;
  margin-top:1.25rem;
}

.works__voice-item{
  display:flex;
}

.works__quote{
  text-wrap:pretty;
  background:rgb(var(--white-rgb)/0.045);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:0.75rem;
  border-top:2px solid var(--opening-line);
  font-size:1.0625rem;
  font-weight:var(--font-weight-medium);
  letter-spacing:0.02em;
  line-height:1.85;
  padding:1.5rem;
  width:100%;
}

.works__quote::before{
  color:rgb(var(--opening-grid-rgb)/0.8);
  content:"“";
  display:block;
  font-size:2.25rem;
  line-height:0.8;
  margin-bottom:0.5rem;
}

.works__quote-phrase{
  display:inline-block;
}

.works__demos{
  margin-top:2.5rem;
}

.works__demo-note{
  color:rgb(var(--white-rgb)/0.74);
  font-size:0.8125rem;
  line-height:1.8;
  margin-top:0.75rem;
}

.works__demo-list{
  display:grid;
  gap:1.25rem;
  margin-top:1.5rem;
}

.works__demo-link{
  border-bottom:1px solid rgb(var(--white-rgb)/0.2);
  color:var(--white);
  display:flex;
  flex-direction:column;
  height:100%;
  transition:opacity 0.25s ease;
}

.works__demo-image{
  aspect-ratio:1.9;
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:0.75rem;
  overflow:hidden;
}

.works__demo-image img{
  aspect-ratio:1.9;
  height:auto;
  object-fit:cover;
  width:100%;
}

.works__demo-title{
  font-size:1rem;
  font-weight:var(--font-weight-medium);
  line-height:1.7;
  margin-top:1rem;
}

.works__demo-action{
  align-items:center;
  color:rgb(var(--opening-grid-rgb));
  display:flex;
  font-size:0.875rem;
  gap:1rem;
  justify-content:space-between;
  margin-top:auto;
  padding-block:1rem;
}

.works__quote-from{
  color:rgb(var(--white-rgb)/0.62);
  display:block;
  font-size:0.75rem;
  font-style:normal;
  font-weight:var(--font-weight-regular);
  letter-spacing:0.06em;
  line-height:1.6;
  margin-top:1rem;
}

.works__voice-note{
  color:rgb(var(--white-rgb)/0.68);
  font-size:0.8125rem;
  letter-spacing:0.04em;
  line-height:1.8;
  margin-top:1rem;
}

.works__process{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  display:grid;
  gap:1.25rem;
  margin-top:2.5rem;
  padding-top:1.75rem;
}

.works__sub-title--support{
  color:rgb(var(--white-rgb)/0.8);
  font-size:1.0625rem;
  font-weight:var(--font-weight-medium);
}

.works__process-list{
  margin-top:0;
}

.works__process-item{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  color:rgb(var(--white-rgb)/0.88);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:1.7;
  padding:0.875rem 0 0.875rem 1.375rem;
  position:relative;
}

.works__process-item:last-child{
  border-bottom:1px solid rgb(var(--white-rgb)/0.12);
}

.works__process-item::before{
  background:var(--white);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:calc(0.875rem + 0.85em);
  width:0.625rem;
}

.works__notice{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  display:grid;
  gap:1.25rem;
  margin-top:2rem;
  padding-top:1.75rem;
}

.works__notice-text{
  color:rgb(var(--white-rgb)/0.86);
  font-size:0.875rem;
  letter-spacing:0.03em;
  line-height:2;
}
.js-fade-in{
  opacity:0;
  transition:opacity var(--duration-scroll) ease;
}
.js-fade-in.is-active{
  opacity:1;
}
.js-fade-up{
  opacity:0;
  transition:opacity var(--duration-scroll) ease, translate var(--duration-scroll) ease;
  translate:0 20px;
}
.js-fade-up.is-active{
  opacity:1;
  translate:0 0;
}
.js-slide-left{
  opacity:0;
  transition:opacity var(--duration-scroll) ease, translate var(--duration-scroll) ease;
  translate:-20px 0;
}
.js-slide-left.is-active{
  opacity:1;
  translate:0 0;
}
.js-fade-down{
  opacity:0;
  transition:opacity var(--duration-scroll) ease, translate var(--duration-scroll) ease;
  translate:0 -20px;
}
.js-fade-down.is-active{
  opacity:1;
  translate:0 0;
}
.js-slide-right{
  opacity:0;
  transition:opacity var(--duration-scroll) ease, translate var(--duration-scroll) ease;
  translate:10px 0;
}
.js-slide-right.is-active{
  opacity:1;
  translate:0 0;
}

.js-scaleImg{
  overflow:hidden;
}
.js-scaleImg img{
  opacity:0;
  scale:1.2;
  transition:scale var(--duration-emphasis) ease, opacity var(--duration-emphasis) ease;
}
.js-scaleImg.is-active img{
  opacity:1;
  scale:1;
}
.js-clip-img{
  overflow:hidden;
}
.js-clip-img img{
  clip-path:inset(0 100% 0 0);
  scale:1.3;
  transition:scale 1s var(--ease-smooth-bounce), clip-path 1s var(--ease-smooth-bounce);
}
.js-clip-img.is-active img{
  clip-path:inset(0 0 0 0);
  scale:1;
}

:root{
  --delay-1:0.1s;
  --delay-2:0.2s;
  --delay-3:0.3s;
  --delay-4:0.4s;
  --delay-5:0.5s;
}

.--delay-1{
  transition-delay:var(--delay-1);
}

.--delay-2{
  transition-delay:var(--delay-2);
}

.--delay-3{
  transition-delay:var(--delay-3);
}

.--delay-4{
  transition-delay:var(--delay-4);
}

.--delay-5{
  transition-delay:var(--delay-5);
}
.blog-card{
  display:flex;
}

.blog-card__link{
  background:rgb(var(--white-rgb)/0.03);
  border:1px solid rgb(var(--white-rgb)/0.16);
  border-radius:1rem;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:border-color 0.3s ease, background-color 0.3s ease;
  width:100%;
}

.blog-card__thumb{
  align-items:center;
  aspect-ratio:16/9;
  background:rgb(var(--white-rgb)/0.04);
  display:flex;
  justify-content:center;
  overflow:hidden;
}

.blog-card__thumb-img{
  height:100%;
  object-fit:cover;
  transition:transform 0.6s ease;
  width:100%;
}

.blog-card__thumb-placeholder{
  height:auto;
  opacity:0.3;
  width:38%;
}

.blog-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:1.25rem 1.25rem 1.5rem;
}

.blog-card__meta{
  align-items:center;
  display:flex;
  gap:0.75rem;
}

.blog-card__date{
  color:rgb(var(--white-rgb)/0.62);
  font-size:0.75rem;
  letter-spacing:0.08em;
}

.blog-card__cat{
  border:1px solid rgb(var(--white-rgb)/0.4);
  border-radius:calc(infinity * 1px);
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.6875rem;
  letter-spacing:0.06em;
  line-height:1;
  padding:0.25rem 0.75rem;
}

.blog-card__badge{
  background:var(--white);
  border:1px solid var(--white);
  border-radius:calc(infinity * 1px);
  color:var(--black);
  font-size:0.6875rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.06em;
  line-height:1;
  padding:0.25rem 0.75rem;
}

.blog-card__title{
  font-size:1rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.6;
  margin-top:0.875rem;
}

.blog-card__excerpt{
  -webkit-box-orient:vertical;
  line-clamp:3;
  -webkit-line-clamp:3;
  color:rgb(var(--white-rgb)/0.7);
  display:-webkit-box;
  font-size:0.8125rem;
  letter-spacing:0.03em;
  line-height:1.9;
  margin-top:0.625rem;
  overflow:hidden;
}

button:focus-visible{
  outline:2px solid var(--white);
  outline-offset:3px;
}

.btn{
  align-items:center;
  background:var(--white);
  border:1px solid var(--white);
  border-radius:calc(infinity * 1px);
  color:var(--black);
  display:inline-flex;
  font-size:0.875rem;
  justify-content:space-between;
  letter-spacing:0.03em;
  min-height:3.5rem;
  padding:0 1.125rem 0 1.375rem;
  transition:background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.btn--secondary{
  backdrop-filter:blur(0.4375rem);
  background:rgb(var(--shade-rgb)/0.12);
  border-color:rgb(var(--white-rgb)/0.82);
  color:var(--white);
}

.btn--small{
  font-size:0.8125rem;
  min-height:2.875rem;
  padding:0 1rem 0 1.25rem;
}

.btn__arrow{
  border-right:1.5px solid currentColor;
  border-top:1.5px solid currentColor;
  display:block;
  flex:0 0 auto;
  height:0.5rem;
  margin-left:0.75rem;
  transform:rotate(45deg);
  width:0.5rem;
}

.btn--small .btn__arrow{
  margin-left:0.75rem;
}

.count{
  font-feature-settings:"tnum";
  display:inline-grid;
  font-variant-numeric:tabular-nums;
}

.count__value,
.count__ghost{
  grid-area:1/1;
}

.count__value{
  justify-self:end;
}

.count__ghost{
  visibility:hidden;
}

.footer{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
  padding-block:3.5rem 1.75rem;
}

.footer__inner{
  margin-inline:auto;
  max-width:99.75rem;
  padding-inline:var(--padding-inline);
  width:100%;
}

.footer__content{
  display:flex;
  flex-direction:column;
  gap:2.5rem;
}

.footer__logo{
  display:inline-flex;
  width:7.5rem;
}

.footer__logo-img{
  height:auto;
}

.footer__tagline{
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.625rem;
  letter-spacing:0.31em;
  line-height:1;
  margin-top:1rem;
}

.footer__nav-list{
  display:grid;
  gap:0.25rem 1.5rem;
  grid-template-columns:1fr 1fr;
}

.footer__nav-link{
  display:inline-block;
  font-size:0.875rem;
  letter-spacing:0.02em;
  line-height:1;
  padding-block:0.5rem;
  transition:opacity 0.25s ease;
}

.footer__bottom{
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-top:3rem;
  padding-top:1.5rem;
}

.footer__copy{
  color:rgb(var(--white-rgb)/0.58);
  display:block;
  font-size:0.6875rem;
  letter-spacing:0.1em;
  line-height:1.5;
}

.footer__privacy{
  color:rgb(var(--white-rgb)/0.58);
  font-size:0.75rem;
  letter-spacing:0.04em;
  line-height:1.5;
  transition:color 0.25s ease;
}

.skip-link{
  background:var(--white);
  color:var(--black);
  font-size:0.875rem;
  left:0;
  padding:0.75rem 1.25rem;
  position:fixed;
  top:0;
  transform:translateY(-100%);
  z-index:1000;
}
.skip-link:focus-visible{
  transform:translateY(0);
}

.header{
  border-bottom:1px solid transparent;
  left:0;
  position:fixed;
  top:0;
  transition:transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease;
  width:100%;
  z-index:var(--z-index-header);
}

.header.is-scrolled{
  backdrop-filter:blur(0.875rem);
  background:rgb(var(--black-rgb)/0.82);
  border-bottom-color:rgb(var(--white-rgb)/0.1);
}

.admin-bar .header{
  top:32px;
}

body.is-opening .header{
  transform:scale(1.035);
  transform-origin:50% 50svh;
}

.header__inner{
  margin-inline:auto;
  max-width:99.75rem;
  padding-inline:var(--padding-inline);
  width:100%;
}

.header__content{
  align-items:center;
  display:flex;
  justify-content:space-between;
  padding-top:1.125rem;
  transition:padding 0.3s ease;
}

.header.is-scrolled .header__content{
  padding-block:0.625rem;
}

.header__logo{
  display:inline-flex;
  flex:0 0 auto;
  width:8.25rem;
}

.header__logo-img{
  height:auto;
}

.header__nav{
  display:none;
  margin-left:auto;
}

.header__nav-list{
  align-items:center;
  display:flex;
  gap:2.75rem;
}

.header__nav-link{
  display:inline-block;
  font-size:0.9375rem;
  letter-spacing:0.02em;
  line-height:1;
  padding:0.625rem 0;
  position:relative;
  transition:opacity 0.25s ease;
}

.header__nav-link::after{
  background:currentColor;
  bottom:0;
  content:"";
  height:1px;
  left:0;
  position:absolute;
  right:0;
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform 0.25s ease;
}

.header__hamburger{
  background:rgb(var(--black-rgb)/0.24);
  border:1px solid rgb(var(--white-rgb)/0.76);
  border-radius:calc(infinity * 1px);
  color:var(--white);
  display:block;
  height:3.125rem;
  padding:0;
  position:relative;
  width:3.125rem;
}

.header__hamburger-line{
  background:currentColor;
  height:1px;
  left:50%;
  position:absolute;
  transform:translateX(-50%);
  transition:transform 0.3s ease, top 0.3s ease, opacity 0.3s ease;
  width:1.3125rem;
}

.header__hamburger-line:nth-child(1){
  top:1.125rem;
}

.header__hamburger-line:nth-child(2){
  top:1.5rem;
}

.header__hamburger-line:nth-child(3){
  top:1.875rem;
}

.header__hamburger.is-active .header__hamburger-line:nth-child(1){
  top:1.5rem;
  transform:translateX(-50%) rotate(45deg);
}

.header__hamburger.is-active .header__hamburger-line:nth-child(2){
  opacity:0;
}

.header__hamburger.is-active .header__hamburger-line:nth-child(3){
  top:1.5rem;
  transform:translateX(-50%) rotate(-45deg);
}

html.is-drawer-open{
  overflow:hidden;
}

.drawer{
  backdrop-filter:blur(1.375rem);
  background:radial-gradient(circle at 88% 10%, rgb(var(--glow-blue-rgb)/0.18), transparent 36%), radial-gradient(circle at 8% 88%, rgb(var(--glow-sky-rgb)/0.1), transparent 32%), rgb(var(--black-rgb)/0.96);
  display:block;
  inset:0;
  opacity:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  position:fixed;
  transition:opacity 0.36s ease, visibility 0s 0.36s;
  visibility:hidden;
  z-index:var(--z-index-drawer);
}

.drawer::before{
  -webkit-mask-image:linear-gradient(180deg, rgb(var(--shade-rgb)/0.75), transparent 88%);
  background-image:linear-gradient(rgb(var(--white-rgb)/0.045) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--white-rgb)/0.045) 1px, transparent 1px);
  background-size:2.625rem 2.625rem;
  content:"";
  inset:0;
          mask-image:linear-gradient(180deg, rgb(var(--shade-rgb)/0.75), transparent 88%);
  opacity:0.18;
  pointer-events:none;
  position:absolute;
}

.drawer.is-open{
  opacity:1;
  transition:opacity 0.36s ease, visibility 0s;
  visibility:visible;
}

.drawer__panel{
  display:flex;
  flex-direction:column;
  min-height:100%;
  opacity:0;
  padding:1.375rem 1.25rem 1.75rem;
  position:relative;
  transform:translateY(-1.125rem);
  transition:transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
  width:100%;
}

.drawer.is-open .drawer__panel{
  opacity:1;
  transform:translateY(0);
}

.drawer__head{
  align-items:center;
  border-bottom:1px solid rgb(var(--white-rgb)/0.12);
  display:flex;
  justify-content:space-between;
  padding-bottom:1.125rem;
}

.drawer__brand{
  max-width:10.625rem;
  width:100%;
}

.drawer__logo-img{
  height:auto;
  width:100%;
}

.drawer__close{
  background:rgb(var(--white-rgb)/0.045);
  border:1px solid rgb(var(--white-rgb)/0.22);
  border-radius:calc(infinity * 1px);
  color:var(--white);
  height:3rem;
  padding:0;
  position:relative;
  transition:color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
  width:3rem;
}

.drawer__close::before,
.drawer__close::after{
  background:currentColor;
  content:"";
  height:1px;
  left:50%;
  position:absolute;
  top:50%;
  width:1.125rem;
}

.drawer__close::before{
  transform:translate(-50%, -50%) rotate(45deg);
}

.drawer__close::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}

.drawer__body{
  align-items:center;
  display:flex;
  flex:1;
  padding:1.875rem 0;
}

.drawer__nav,
.drawer__list{
  width:100%;
}

.drawer__item{
  border-top:1px solid rgb(var(--white-rgb)/0.1);
}

.drawer__item:last-child{
  border-bottom:1px solid rgb(var(--white-rgb)/0.1);
}

.drawer__link{
  align-items:center;
  display:grid;
  gap:0.875rem;
  grid-template-columns:2.375rem 1fr auto;
  min-height:4.25rem;
  padding:0 0.5rem;
  transition:padding 0.28s ease, background-color 0.28s ease;
  width:100%;
}

.drawer__number{
  color:rgb(var(--white-rgb)/0.38);
  font-size:0.625rem;
  letter-spacing:0.18em;
}

.drawer__label{
  font-size:1.40625rem;
  letter-spacing:0.045em;
  line-height:1.2;
}

.drawer__arrow{
  border:1px solid rgb(var(--white-rgb)/0.18);
  border-radius:calc(infinity * 1px);
  height:1.75rem;
  position:relative;
  transition:color 0.28s ease, background-color 0.28s ease, border-color 0.28s ease, transform 0.28s ease;
  width:1.75rem;
}

.drawer__arrow::before{
  border-right:1px solid currentColor;
  border-top:1px solid currentColor;
  content:"";
  height:0.4375rem;
  left:50%;
  position:absolute;
  top:50%;
  transform:translate(-60%, -50%) rotate(45deg);
  width:0.4375rem;
}

.drawer__footer{
  align-items:flex-end;
  border-top:1px solid rgb(var(--white-rgb)/0.12);
  display:flex;
  gap:1.25rem;
  justify-content:space-between;
  padding-top:1.125rem;
}

.drawer__footer-text{
  color:rgb(var(--white-rgb)/0.42);
  font-size:0.5625rem;
  letter-spacing:0.24em;
  line-height:1.7;
}

.drawer__footer-code{
  align-items:center;
  color:rgb(var(--white-rgb)/0.62);
  display:inline-flex;
  font-size:0.625rem;
  gap:0.5rem;
  letter-spacing:0.18em;
}

.drawer__footer-code::before{
  background:var(--accent-blue);
  border-radius:calc(infinity * 1px);
  box-shadow:0 0 0.875rem rgb(var(--accent-blue-rgb)/0.75);
  content:"";
  height:0.375rem;
  width:0.375rem;
}

.news-list{
  border-top:1px solid rgb(var(--white-rgb)/0.16);
}

.news-list__item{
  border-bottom:1px solid rgb(var(--white-rgb)/0.16);
}

.news-list__link{
  grid-column-gap:0.875rem;
  -moz-column-gap:0.875rem;
  grid-row-gap:0.625rem;
  align-items:center;
       column-gap:0.875rem;
  display:grid;
  grid-template-areas:"date cat arrow" "title title arrow";
  grid-template-columns:auto 1fr auto;
  padding:1.25rem 0.25rem;
  row-gap:0.625rem;
  transition:padding 0.28s ease, background-color 0.28s ease;
}

.news-list__date{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.8125rem;
  grid-area:date;
  letter-spacing:0.08em;
}

.news-list__cat{
  border:1px solid rgb(var(--white-rgb)/0.4);
  border-radius:calc(infinity * 1px);
  color:rgb(var(--white-rgb)/0.82);
  font-size:0.6875rem;
  grid-area:cat;
  justify-self:start;
  letter-spacing:0.06em;
  line-height:1;
  padding:0.3125rem 0.875rem;
}

.news-list__title{
  font-size:0.9375rem;
  grid-area:title;
  letter-spacing:0.03em;
  line-height:1.6;
}

.news-list__arrow{
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:calc(infinity * 1px);
  grid-area:arrow;
  height:1.75rem;
  position:relative;
  transition:color 0.28s ease, background-color 0.28s ease, border-color 0.28s ease;
  width:1.75rem;
}

.news-list__arrow::before{
  border-right:1px solid currentColor;
  border-top:1px solid currentColor;
  content:"";
  height:0.4375rem;
  left:50%;
  position:absolute;
  top:50%;
  transform:translate(-60%, -50%) rotate(45deg);
  width:0.4375rem;
}

.news-list__empty{
  border-block:1px solid rgb(var(--white-rgb)/0.16);
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.9375rem;
  padding-block:1.75rem;
}

.opening{
  align-items:center;
  background:radial-gradient(circle at 50% 46%, rgb(var(--opening-glow-rgb)/0.18), transparent 32%), linear-gradient(135deg, var(--opening-dark) 0%, var(--opening-mid) 42%, var(--opening-deep) 64%, var(--opening-dark) 100%);
  color:var(--white);
  display:grid;
  inset:0;
  justify-items:center;
  overflow:clip;
  place-items:center;
  position:fixed;
  transition:opacity 0.65s cubic-bezier(0.65, 0, 0.35, 1), visibility 0.65s;
  z-index:var(--z-index-opening);
}

.opening::before{
  -webkit-mask-image:linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
  background-image:linear-gradient(rgb(var(--opening-grid-rgb)/0.05) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--opening-grid-rgb)/0.04) 1px, transparent 1px);
  background-size:4.5rem 4.5rem;
  content:"";
  inset:0;
          mask-image:linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent);
  opacity:0.22;
  pointer-events:none;
  position:absolute;
}

.opening::after{
  animation:opening-scan 1.25s 0.1s cubic-bezier(0.45, 0, 0.2, 1) both;
  background:linear-gradient(90deg, transparent, rgb(var(--opening-scan-rgb)/0.18), rgb(var(--white-rgb)/0.1), transparent);
  bottom:0;
  content:"";
  filter:blur(0.75rem);
  left:-18%;
  pointer-events:none;
  position:absolute;
  top:0;
  transform:skewX(-14deg);
  width:22%;
}

.opening--leave{
  opacity:0;
  pointer-events:none;
  visibility:hidden;
}

.opening__center{
  display:grid;
  justify-items:center;
  position:relative;
  text-align:center;
  width:min(26.25rem, 76vw);
}

.opening__logo-wrap{
  overflow:clip;
  padding:1.125rem 0;
  position:relative;
  width:min(14.375rem, 62vw);
}

.opening__logo-wrap::after{
  animation:opening-logo-line 0.8s 0.1s cubic-bezier(0.77, 0, 0.18, 1) forwards;
  background:linear-gradient(90deg, var(--opening-line), var(--white), rgb(var(--white-rgb)/0));
  box-shadow:0 0 1.25rem rgb(var(--opening-line-rgb)/0.65);
  content:"";
  height:1px;
  left:0;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:0;
}

.opening__logo-mask{
  animation:opening-logo-reveal 0.62s 0.25s cubic-bezier(0.77, 0, 0.18, 1) forwards;
  clip-path:inset(0 100% 0 0);
  overflow:clip;
}

.opening__logo-image{
  animation:opening-logo-slide 0.62s 0.25s cubic-bezier(0.77, 0, 0.18, 1) forwards;
  filter:drop-shadow(0 0 1.875rem rgb(var(--opening-logo-glow-rgb)/0.14));
  height:auto;
  opacity:0;
  transform:translateX(-1.125rem);
}

.opening__copy{
  animation:opening-fade-up 0.45s 0.75s ease forwards;
  color:rgb(var(--white-rgb)/0.48);
  font-family:var(--font-family-en);
  font-size:0.5rem;
  letter-spacing:0.34em;
  line-height:1;
  margin-top:1.125rem;
  opacity:0;
  transform:translateY(0.625rem);
}

.opening__progress{
  animation:opening-progress-appear 0.2s 0.68s ease forwards;
  background:rgb(var(--white-rgb)/0.1);
  height:1px;
  margin-top:1.75rem;
  max-width:15.625rem;
  opacity:0;
  overflow:clip;
  position:relative;
  width:100%;
}

.opening__progress::after{
  animation:opening-progress 0.75s 0.7s cubic-bezier(0.65, 0, 0.35, 1) forwards;
  background:linear-gradient(90deg, var(--opening-progress-from), var(--opening-progress-via) 68%, var(--white));
  box-shadow:0 0 1.125rem rgb(var(--opening-line-rgb)/0.6);
  content:"";
  inset:0 auto 0 0;
  position:absolute;
  transform:scaleX(0);
  transform-origin:left;
  width:100%;
}

@keyframes opening-scan{
  0%{
    opacity:0;
    transform:translateX(0) skewX(-14deg);
  }
  18%{
    opacity:1;
  }
  72%{
    opacity:1;
  }
  100%{
    opacity:0;
    transform:translateX(590.9%) skewX(-14deg);
  }
}
@keyframes opening-logo-reveal{
  to{
    clip-path:inset(0 0 0 0);
  }
}
@keyframes opening-logo-slide{
  0%{
    opacity:0;
    transform:translateX(-1.125rem);
  }
  35%{
    opacity:1;
  }
  100%{
    opacity:1;
    transform:translateX(0);
  }
}
@keyframes opening-logo-line{
  0%{
    left:0;
    opacity:0;
    width:0;
  }
  22%{
    opacity:1;
  }
  55%{
    left:0;
    opacity:1;
    width:100%;
  }
  100%{
    left:100%;
    opacity:0;
    width:0;
  }
}
@keyframes opening-fade-up{
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes opening-progress-appear{
  to{
    opacity:1;
  }
}
@keyframes opening-progress{
  to{
    transform:scaleX(1);
  }
}
.screen-reader-text{
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:clip;
  padding:0;
  position:absolute;
  white-space:nowrap;
  width:1px;
}

.nav-links{
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  justify-content:center;
}

.page-numbers{
  align-items:center;
  border:1px solid rgb(var(--white-rgb)/0.3);
  border-radius:calc(infinity * 1px);
  display:inline-flex;
  font-size:0.875rem;
  justify-content:center;
  line-height:1;
  min-height:2.75rem;
  min-width:2.75rem;
  padding-inline:0.5rem;
  position:relative;
  transition:color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.page-numbers.current{
  background:var(--white);
  border-color:var(--white);
  color:var(--black);
}

.page-numbers.dots{
  border-color:transparent;
}

.page-numbers.prev::before,
.page-numbers.next::before{
  border-right:1px solid currentColor;
  border-top:1px solid currentColor;
  content:"";
  height:0.4375rem;
  width:0.4375rem;
}

.page-numbers.prev::before{
  transform:translateX(0.125rem) rotate(-135deg);
}

.page-numbers.next::before{
  transform:translateX(-0.125rem) rotate(45deg);
}

.section-title__en{
  color:rgb(var(--white-rgb)/0.65);
  font-size:0.6875rem;
  letter-spacing:0.26em;
  line-height:1;
  margin-bottom:0.875rem;
}

.section-title__ja{
  font-size:1.625rem;
  font-weight:var(--font-weight-bold);
  letter-spacing:0.04em;
  line-height:1.3;
}

.to-top{
  --to-top-offset:1rem;
  align-items:center;
  backdrop-filter:blur(0.5rem);
  background:rgb(var(--black-rgb)/0.72);
  border-radius:calc(infinity * 1px);
  bottom:calc(var(--to-top-offset) + var(--to-top-lift, 0px));
  color:var(--white);
  display:flex;
  height:3.25rem;
  justify-content:center;
  opacity:0;
  padding:0;
  position:fixed;
  right:1rem;
  transform:translateY(0.75rem);
  transition:opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease, color 0.3s ease, background-color 0.3s ease;
  visibility:hidden;
  width:3.25rem;
  z-index:var(--z-index-to-top);
}

.to-top:focus-visible{
  outline:2px solid var(--white);
  outline-offset:3px;
}

.to-top.is-visible{
  opacity:1;
  transform:translateY(0);
  visibility:visible;
}

.to-top__ring{
  height:100%;
  inset:0;
  position:absolute;
  transform:rotate(-90deg);
  width:100%;
}

.to-top__track,
.to-top__bar{
  fill:none;
  stroke-width:1.5;
}

.to-top__track{
  stroke:rgb(var(--white-rgb)/0.3);
}

.to-top__bar{
  stroke:currentColor;
  stroke-dasharray:138.23;
  stroke-dashoffset:138.23;
  stroke-linecap:round;
}

.to-top__arrow{
  border-left:1.5px solid currentColor;
  border-top:1.5px solid currentColor;
  display:block;
  height:0.625rem;
  margin-top:0.25rem;
  transform:rotate(45deg);
  width:0.625rem;
}

@media (min-width: 600px){
  .mv__main{
    padding-bottom:6.875rem;
  }

  .mv__title{
    font-size:3.625rem;
  }

  .mv__actions{
    grid-template-columns:1fr 1fr;
    max-width:none;
  }

  .drawer__label{
    font-size:1.6875rem;
  }
}

@media (min-width: 768px){
  :root{
    --padding-inline:3rem;
  }

  :root{
    --header-height:4.5625rem;
  }

  .u-desktop{
    display:block;
  }

  .u-mobile{
    display:none;
  }

  .u-desktop-inline{
    display:inline;
  }

  .u-mobile-inline{
    display:none;
  }

  html{
    font-size:max(10px, min(1.1111111111vw, 19px));
    font-size:clamp(10px, 1.1111111111vw, 19px);
  }

  a[href*="tel:"]{
    -webkit-text-decoration:none;
    cursor:default;
    pointer-events:none;
    text-decoration:none;
  }

  .blog-archive{
    padding-block:6.25rem 7.5rem;
  }

  .blog-archive__head{
    margin-bottom:2.5rem;
  }

  .blog-archive__lead{
    font-size:1rem;
    margin-top:1.5rem;
  }

  .blog-archive__tabs{
    margin-bottom:3rem;
  }

  .blog-archive__list{
    gap:1.5rem;
    grid-template-columns:repeat(3, 1fr);
  }

  .blog-archive__pagination{
    margin-top:4rem;
  }

  .blog-single{
    padding-block:6.25rem 7.5rem;
  }

  .blog-single__head{
    padding-bottom:2.5rem;
  }

  .blog-single__date{
    font-size:0.9375rem;
  }

  .blog-single__title{
    font-size:1.875rem;
  }

  .blog-demo{
    aspect-ratio:16/9;
    border-radius:1.25rem;
    margin-top:3rem;
  }

  .blog-single__content{
    font-size:1rem;
    padding-block:3rem;
  }

  .blog-top{
    padding-block:7.5rem;
  }

  .blog-top__head{
    margin-bottom:3.5rem;
  }

  .blog-top__lead{
    font-size:1rem;
    margin-top:1.5rem;
  }

  .blog-top__list{
    gap:1.5rem;
    grid-template-columns:repeat(3, 1fr);
  }

  .blog-top__more{
    margin-top:3.5rem;
  }

  .contact-form{
    padding-block:6.25rem 7.5rem;
  }

  .contact-form__head{
    margin-bottom:3rem;
  }

  .contact-form__lead{
    font-size:1rem;
    margin-top:1.75rem;
  }

  .contact-form__panel{
    border-radius:1.25rem;
    padding:3.5rem 4rem;
  }

  .contact-form__item{
    align-items:start;
    gap:2rem;
    grid-template-columns:13.75rem 1fr;
  }

  .contact-form__label{
    font-size:0.9375rem;
    min-height:3.25rem;
  }

  .contact-form__value{
    font-size:1rem;
    padding-top:0.875rem;
  }

  .contact-form__submit,
  .contact-form__actions{
    margin-top:2rem;
  }

  .contact-form__actions,
  .contact-form__complete-text + .contact-form__submit{
    margin-top:3.5rem;
  }

  .contact-form__complete-text{
    font-size:1rem;
  }

  .contact-form__privacy{
    margin-top:3rem;
  }

  .contact-cta{
    padding-block:7.5rem;
  }

  .contact-cta__panel{
    border-radius:1.75rem;
    padding:4rem;
  }

  .contact-cta__lead{
    font-size:1.625rem;
    margin-top:1.75rem;
  }

  .contact-cta__text{
    font-size:0.9375rem;
    margin-inline:auto;
    max-width:47.5rem;
  }

  .contact-cta__btn{
    margin-top:1.75rem;
  }

  .contact-cta__points{
    font-size:0.8125rem;
    gap:2rem;
    grid-auto-flow:column;
    justify-content:center;
    margin-top:1.75rem;
  }

  .contact-cta__guide-main{
    font-size:1rem;
  }

  .contact-cta__reply-main{
    font-size:1.125rem;
  }

  .contact-cta__reply-note{
    font-size:0.8125rem;
  }

  .faq{
    padding-block:7.5rem;
  }

  .faq__head{
    margin-bottom:4rem;
  }

  .faq__question{
    gap:1.5rem;
    grid-template-columns:2.5rem 1fr 2rem;
    padding-block:2rem;
  }

  .faq__q{
    font-size:1.625rem;
  }

  .faq__q-text{
    font-size:1.125rem;
  }

  .faq__answer{
    font-size:1rem;
    padding:0 3.5rem 2.25rem 4rem;
  }

  .flow{
    padding-block:7.5rem;
  }

  .flow__head{
    margin-bottom:2.5rem;
  }

  .flow__lead{
    font-size:1rem;
    margin-top:1.5rem;
    max-width:47.5rem;
  }

  .flow__item{
    gap:1.75rem;
    grid-template-columns:3.5rem 1fr;
    padding-bottom:1.25rem;
  }

  .flow__item:not(:last-child)::before{
    left:1.75rem;
    top:4rem;
  }

  .flow__no{
    font-size:0.9375rem;
    height:3.5rem;
    width:3.5rem;
  }

  .flow__body{
    padding-top:0.375rem;
  }

  .flow__title{
    font-size:1.375rem;
  }

  .flow__text{
    font-size:1rem;
    margin-top:0.5rem;
  }

  .flow__facts{
    border-radius:1.25rem;
    margin-top:3rem;
    padding:2rem;
  }

  .flow__facts-title{
    font-size:1.25rem;
  }

  .flow__facts-list{
    -moz-column-gap:1.5rem;
         column-gap:1.5rem;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    margin-top:1.75rem;
  }

  .flow__fact{
    padding-block:1.25rem;
  }

  .flow__fact-label{
    font-size:0.8125rem;
  }

  .flow__fact-text{
    font-size:0.9375rem;
  }

  .flow__fact-note{
    font-size:0.8125rem;
  }

  .flow__detail-title{
    font-size:1rem;
  }

  .flow__detail-text{
    font-size:0.875rem;
  }

  .inner{
    max-width:1196px;
    padding-left:48px;
    padding-right:48px;
  }

  .mv__shade{
    background:linear-gradient(90deg, rgb(var(--black-rgb)/0.98) 0%, rgb(var(--black-rgb)/0.92) 25%, rgb(var(--black-rgb)/0.6) 48%, rgb(var(--black-rgb)/0.18) 72%, rgb(var(--black-rgb)/0.22) 100%), linear-gradient(180deg, rgb(var(--black-rgb)/0.1) 0%, rgb(var(--black-rgb)/0.08) 58%, rgb(var(--black-rgb)/0.58) 100%);
  }

  .mv__main{
    align-items:center;
    padding-bottom:0;
    padding-top:5.375rem;
  }

  .mv__content{
    max-width:47.5rem;
  }

  .mv__eyebrow{
    gap:0.75rem;
    margin-bottom:1.5rem;
  }

  .mv__audience{
    font-size:0.9375rem;
  }

  .mv__eyebrow-en{
    font-size:0.6875rem;
  }

  .mv__title{
    font-size:3.96875rem;
    letter-spacing:0.025em;
    line-height:1.22;
    max-width:none;
  }

  .mv__title-line{
    white-space:nowrap;
  }

  .mv__lead{
    font-size:1rem;
    letter-spacing:0.025em;
    line-height:1.9;
    margin-top:1.75rem;
    max-width:none;
  }

  .mv__actions{
    display:flex;
    gap:1.25rem;
    margin-top:2.375rem;
  }

  .mv__proof{
    gap:0.5rem 1.75rem;
    margin-top:1.75rem;
  }

  .mv__proof-item{
    font-size:0.8125rem;
    padding-left:1.125rem;
  }

  .mv__proof-item::before{
    width:0.625rem;
  }

  .mv__foot{
    padding-bottom:1.625rem;
  }

  .mv__guide{
    display:flex;
    flex-direction:column;
    gap:2.25rem;
  }

  .mv__skills{
    border-left:1px solid rgb(var(--white-rgb)/0.4);
    display:grid;
    gap:0.8125rem;
    margin-bottom:2.4375rem;
    margin-right:0.625rem;
    padding-left:1.25rem;
  }

  .mv__skill{
    color:rgb(var(--white-rgb)/0.78);
    font-size:0.9375rem;
    letter-spacing:0.025em;
  }

  .news{
    padding-block:7.5rem;
  }

  .news__content{
    -moz-column-gap:3.75rem;
         column-gap:3.75rem;
    grid-template-areas:"head body" "more body";
    grid-template-columns:16.25rem 1fr;
    grid-template-rows:auto 1fr;
    row-gap:2.5rem;
  }

  .news__more{
    align-self:start;
  }

  .news-archive{
    padding-block:6.25rem 7.5rem;
  }

  .news-archive__head{
    margin-bottom:3rem;
  }

  .news-archive__pagination{
    margin-top:4rem;
  }

  .news-single{
    padding-block:6.25rem 7.5rem;
  }

  .news-single__head{
    padding-bottom:2.5rem;
  }

  .news-single__date{
    font-size:0.9375rem;
  }

  .news-single__title{
    font-size:1.875rem;
  }

  .news-single__content{
    font-size:1rem;
    padding-block:3rem;
  }

  .not-found{
    padding-block:8.75rem 10rem;
  }

  .not-found__code{
    font-size:7rem;
  }

  .not-found__title{
    font-size:1.625rem;
    margin-top:2rem;
  }

  .not-found__text{
    font-size:1rem;
  }

  .not-found__btn{
    margin-top:3rem;
  }

  .policy{
    padding-block:6.25rem 7.5rem;
  }

  .policy__head{
    padding-bottom:2.5rem;
  }

  .policy__lead{
    font-size:1rem;
    margin-top:1.75rem;
  }

  .policy__section{
    margin-top:3rem;
  }

  .policy__title{
    font-size:1.25rem;
  }

  .policy__text{
    font-size:1rem;
  }

  .policy__list{
    font-size:1rem;
  }

  .price{
    padding-block:7.5rem;
  }

  .price__head{
    margin-bottom:4rem;
  }

  .price__lead{
    font-size:1rem;
    margin-top:1.5rem;
  }

  .price__lead-note{
    font-size:0.8125rem;
  }

  .price__name{
    font-size:1.125rem;
  }

  .price__volume{
    font-size:1.1875rem;
  }

  .price__desc{
    font-size:0.875rem;
  }

  .price__num{
    font-size:2.125rem;
  }

  .price__unit{
    font-size:0.875rem;
  }

  .price__info{
    border-radius:1.25rem;
    gap:3rem;
    grid-template-columns:1fr 1fr;
    margin-top:3.5rem;
    padding:2rem;
  }

  .price__info-title{
    font-size:1rem;
  }

  .price__info-item{
    font-size:0.875rem;
  }

  .price__cta{
    margin-top:3.5rem;
  }

  .price__examples-title{
    font-size:1.25rem;
  }

  .price__examples-list{
    gap:1.25rem;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    margin-top:1.5rem;
  }

  .price__num--range{
    font-size:1.625rem;
  }

  .profile{
    padding-block:7.5rem;
  }

  .profile__head{
    margin-bottom:4rem;
  }

  .profile__content{
    align-items:start;
    gap:5rem;
    grid-template-columns:21.25rem 1fr;
  }

  .profile__side{
    max-width:none;
    position:sticky;
    top:calc(var(--header-height) + 1.5rem);
  }

  .profile__photo{
    border-radius:1.25rem;
  }

  .profile__role{
    font-size:0.8125rem;
  }

  .profile__name{
    font-size:2.125rem;
  }

  .profile__block + .profile__block{
    margin-top:3.5rem;
    padding-top:3rem;
  }

  .profile__title{
    font-size:1.375rem;
  }

  .profile__text{
    font-size:1rem;
  }

  .profile__history-row{
    gap:1.5rem;
    grid-template-columns:7.5rem 1fr;
    padding-block:1.25rem;
  }

  .profile__history-year{
    font-size:0.875rem;
  }

  .profile__history-text{
    font-size:0.9375rem;
  }

  .profile__hobby{
    font-size:1rem;
  }

  .profile__skill{
    font-size:0.875rem;
  }

  .service{
    padding-block:7.5rem;
  }

  .service__head{
    margin-bottom:3rem;
  }

  .service__lead{
    font-size:1rem;
    margin-top:1.5rem;
    max-width:45rem;
  }

  .service__card{
    gap:3rem;
    grid-template-columns:17.5rem 1fr;
    padding-block:1.75rem;
  }

  .service__en{
    font-size:0.75rem;
  }

  .service__title{
    font-size:2rem;
  }

  .service__text{
    font-size:1rem;
  }

  .service__point{
    font-size:0.875rem;
  }

  .service__note{
    font-size:0.8125rem;
  }

  .service__more{
    margin-top:3.5rem;
  }

  .service__overview{
    font-size:1.125rem;
  }

  .service__extra-item{
    font-size:0.875rem;
  }

  .strength{
    padding-block:7.5rem;
  }

  .strength__head{
    margin-bottom:4rem;
  }

  .strength__lead{
    font-size:1rem;
    margin-top:1.5rem;
  }

  .strength__list{
    gap:1.5rem;
    grid-template-columns:repeat(3, 1fr);
  }

  .strength__card{
    border-radius:1.25rem;
    padding:2rem;
  }

  .strength__no{
    font-size:1.75rem;
  }

  .strength__en{
    font-size:0.75rem;
  }

  .strength__title{
    font-size:1.375rem;
  }

  .strength__summary{
    font-size:1rem;
  }

  .strength__text{
    font-size:0.9375rem;
  }

  .strength__point{
    font-size:0.875rem;
  }

  .works{
    padding-block:7.5rem;
  }

  .works__head{
    margin-bottom:3.5rem;
  }

  .works__total{
    align-items:center;
    gap:4rem;
    grid-template-columns:auto 1fr;
    padding-bottom:2.25rem;
  }

  .works__total-label{
    font-size:1rem;
  }

  .works__total-num{
    font-size:7.5rem;
  }

  .works__total-unit{
    font-size:1.75rem;
  }

  .works__partner{
    font-size:1.25rem;
  }

  .works__total-text{
    font-size:0.9375rem;
  }

  .works__stats{
    grid-template-columns:repeat(4, 1fr);
  }

  .works__stat{
    border-bottom:0;
    padding:1.5rem 1rem 1.5rem 0;
  }

  .works__stat-label{
    font-size:0.875rem;
  }

  .works__stat-num{
    font-size:2.5rem;
  }

  .works__stat-unit{
    font-size:0.9375rem;
  }

  .works__stats-note{
    border-top:1px solid rgb(var(--white-rgb)/0.12);
    font-size:0.8125rem;
    margin-top:0.5rem;
    padding-top:1.5rem;
  }

  .works__voice{
    margin-top:5rem;
  }

  .works__sub-title{
    font-size:1.5rem;
  }

  .works__voice-list{
    gap:1.5rem;
    grid-template-columns:repeat(3, 1fr);
    margin-top:1.75rem;
  }

  .works__quote{
    font-size:1.1875rem;
    padding:1.75rem 1.5rem;
  }

  .works__demos{
    margin-top:3.5rem;
  }

  .works__demo-list{
    gap:1.5rem;
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .works__quote-from{
    font-size:0.8125rem;
    margin-top:1.25rem;
  }

  .works__voice-note{
    font-size:0.875rem;
    margin-top:1.25rem;
  }

  .works__process{
    gap:2.5rem;
    grid-template-columns:15rem 1fr;
    margin-top:3rem;
    padding-top:2rem;
  }

  .works__sub-title--support{
    font-size:1.125rem;
  }

  .works__process-item{
    font-size:1rem;
    padding-block:1.125rem;
  }

  .works__process-item::before{
    top:calc(1.125rem + 0.85em);
  }

  .works__notice{
    align-items:center;
    gap:2.5rem;
    grid-template-columns:1fr auto;
    margin-top:2.5rem;
    padding-top:2rem;
  }

  .works__notice-text{
    font-size:0.9375rem;
  }

  .js-slide-right{
    translate:20px 0;
  }

  .js-clip-img img{
    transition:scale 1.2s var(--ease-smooth-bounce), clip-path 1.2s var(--ease-smooth-bounce);
  }

  .blog-card__link{
    border-radius:1.25rem;
  }

  .blog-card__body{
    padding:1.5rem 1.5rem 1.75rem;
  }

  .blog-card__date{
    font-size:0.8125rem;
  }

  .blog-card__title{
    font-size:1.125rem;
  }

  .blog-card__excerpt{
    font-size:0.875rem;
  }

  .btn{
    font-size:1.0625rem;
    min-height:4.375rem;
    min-width:17.375rem;
    padding:0 2.375rem 0 2.75rem;
  }

  .btn--small{
    font-size:0.9375rem;
    min-height:3.25rem;
    min-width:13.125rem;
    padding:0 1.5rem 0 1.875rem;
  }

  .btn__arrow{
    height:0.5625rem;
    margin-left:1.75rem;
    width:0.5625rem;
  }

  .btn--small .btn__arrow{
    margin-left:1.25rem;
  }

  .footer{
    padding-block:4.5rem 2rem;
  }

  .footer__content{
    align-items:flex-start;
    flex-direction:row;
    gap:3rem;
    justify-content:space-between;
  }

  .footer__logo{
    width:8.75rem;
  }

  .footer__nav-list{
    display:flex;
    flex-wrap:wrap;
    gap:0.75rem 2.5rem;
    justify-content:flex-end;
  }

  .footer__nav-link{
    font-size:0.9375rem;
  }

  .footer__bottom{
    align-items:center;
    flex-direction:row;
    justify-content:space-between;
    margin-top:4rem;
  }

  .footer__copy{
    font-size:0.75rem;
  }

  .header__content{
    padding-top:1.875rem;
  }

  .header.is-scrolled .header__content{
    padding-block:0.875rem;
  }

  .header__logo{
    width:10.625rem;
  }

  .header__nav{
    display:block;
  }

  .header__hamburger{
    display:none;
  }

  .drawer{
    display:none;
  }

  .news-list__link{
    -moz-column-gap:1.5rem;
         column-gap:1.5rem;
    grid-template-areas:"date cat title arrow";
    grid-template-columns:6rem 6.25rem 1fr auto;
    padding:1.75rem 0.5rem;
  }

  .news-list__date{
    font-size:0.9375rem;
  }

  .news-list__title{
    font-size:1rem;
  }

  .opening__logo-wrap{
    width:min(17.1875rem, 60vw);
  }

  .opening__copy{
    font-size:0.625rem;
    letter-spacing:0.42em;
  }

  .opening__progress{
    max-width:20rem;
  }

  .section-title__en{
    font-size:0.75rem;
    margin-bottom:1.125rem;
  }

  .section-title__ja{
    font-size:2rem;
  }

  .to-top{
    --to-top-offset:2rem;
    height:3.75rem;
    right:2rem;
    width:3.75rem;
  }
}

@media (max-width: 782px){
  .admin-bar .header{
    top:46px;
  }
}

@media (max-width: 768px){
  .--delay-1,
  .--delay-2,
  .--delay-3,
  .--delay-4{
    transition-delay:0s;
  }
}

@media (any-hover: hover){
  a:hover{
    cursor:pointer;
  }

  .blog-archive__tab:hover{
    border-color:var(--white);
  }

  .blog-single__cat:hover{
    border-color:var(--white);
  }

  .contact-form__input:hover{
    border-color:rgb(var(--white-rgb)/0.6);
  }

  .contact-form__check-label:hover{
    border-color:var(--white);
  }

  .faq__question:hover{
    background:rgb(var(--white-rgb)/0.03);
  }

  .works__demo-link:hover{
    opacity:0.76;
  }

  .blog-card__link:hover{
    background:rgb(var(--white-rgb)/0.05);
    border-color:rgb(var(--white-rgb)/0.5);
  }

  .blog-card__link:hover .blog-card__thumb-img{
    transform:scale(1.04);
  }

  .btn:hover{
    background:rgb(var(--shade-rgb)/0.2);
    color:var(--white);
  }

  .btn--secondary:hover{
    background:var(--white);
    border-color:var(--white);
    color:var(--black);
  }

  .footer__nav-link:hover{
    opacity:0.7;
  }

  .footer__privacy:hover{
    color:var(--white);
  }

  .header__nav-link:hover{
    opacity:0.78;
  }

  .header__nav-link:hover::after{
    transform:scaleX(1);
    transform-origin:left center;
  }

  .drawer__close:hover{
    background:var(--white);
    border-color:var(--white);
    color:var(--black);
    transform:rotate(90deg);
  }

  .drawer__link:hover{
    background:rgb(var(--white-rgb)/0.035);
    padding-left:0.875rem;
    padding-right:0.125rem;
  }

  .drawer__link:hover .drawer__arrow{
    background:var(--white);
    border-color:var(--white);
    color:var(--black);
    transform:translateX(0.1875rem);
  }

  .news-list__link:hover{
    background:rgb(var(--white-rgb)/0.035);
    padding-left:0.875rem;
  }

  .news-list__link:hover .news-list__arrow{
    background:var(--white);
    border-color:var(--white);
    color:var(--black);
  }

  .page-numbers:hover{
    background:var(--white);
    border-color:var(--white);
    color:var(--black);
  }

  .to-top:hover{
    background:var(--white);
    color:var(--black);
  }
}

@media (prefers-reduced-motion: reduce){
  body.is-opening .mv,
  body.is-opening .mv__char,
  body.is-opening .mv__lead,
  body.is-opening .mv__eyebrow,
  body.is-opening .mv__actions,
  body.is-opening .mv__proof,
  body.is-opening .mv__guide,
  body.is-opening .mv__skills{
    opacity:1;
    transform:none;
  }

  .strength__card::before{
    --strength-line:360deg;
    animation:none;
  }

  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }

  .opening{
    display:none;
  }
}