@charset "UTF-8";
/*---------------------------------------------

Style CSS

coded by d-spica at 2025-07-28

---------------------------------------------*/
/*---------------------------------------------

Set CSS

coded by d-spica at 2025-07-28
imported to "style.scss"

---------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
/* Reset */
body, header, hgroup, main, section, article, aside, nav, footer, main, figure, figcaption, picture, div,
h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, hr,
blockquote, pre, table, caption, th, td, address,
form, fieldset, legend, object {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6, pre, table, code, kbd, samp, acronym, time, input, textarea, select {
  font-size: 100%;
}

a, ins, u {
  text-decoration: none;
}

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

address, em, i, b, cite, dfn, var {
  font-style: normal;
}

fieldset {
  border: none;
}

input, textarea {
  font-family: inherit;
  font-weight: normal;
}

input, button {
  margin: 0;
  vertical-align: middle;
}

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

picture, video {
  vertical-align: bottom;
}

mark {
  background: none;
}

a, input, button, textarea {
  outline: none;
}

[type=text], [type=email], [type=tel], [type=submit], [type=button], select, textarea, button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  outline: none;
  background: none;
  font-size: 100%;
}

/* Setting */
ul {
  list-style-position: outside;
  list-style-type: none;
}

ol {
  list-style-position: outside;
}

table {
  border-collapse: collapse;
}

/* Set Var */
:root {
  --serif-font: "Noto Sans JP", sans-serif;
  --font-color: #333;
  --key-color: #106EE8;
  --point-color: #FF7C8B;
  --light-key-color: #d4e7ff;
  --light-point-color: #ffeef0;
  --border-color: #9B9FA5;
  --speed: 0.5s;
  --h-margin: max(2rem, calc(50vw - 58rem));
  --key-filter: brightness(0) saturate(100%) invert(22%) sepia(42%) saturate(7111%) hue-rotate(206deg) brightness(107%) contrast(87%);
  --point-filter: brightness(0) saturate(100%) invert(60%) sepia(7%) saturate(3472%) hue-rotate(305deg) brightness(101%) contrast(101%);
  /* https://angel-rs.github.io/css-color-filter-generator/ */
}

/*---------------------------------------------

Common CSS

coded by d-spica at 2025-07-28
imported to "style.scss"

---------------------------------------------*/
html {
  background-color: #FFF;
  line-height: 1.4;
  font-family: var(--serif-font);
  font-size: 10px;
  font-weight: 300;
  color: var(--font-color);
  scroll-behavior: smooth;
}

body {
  -webkit-text-size-adjust: 100%;
}

#page {
  position: relative;
}

hr {
  visibility: hidden;
  height: 0;
  clear: both;
}

a {
  color: inherit;
}

[src*=".svg"] {
  width: 100%;
}

.obp-S,
.obp-M,
.obp-L {
  display: none;
}

header.header {
  display: flex;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9;
  box-sizing: border-box;
  background-color: #FFF;
  padding: 0 1.6rem;
  width: 100%;
  height: 8rem;
}
header.header .logo {
  display: flex;
  flex-direction: column;
  gap: 0 2rem;
}
header.header .logo a {
  display: block;
  width: 16rem;
}
header.header .logo span {
  display: block;
  margin-top: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
}

nav.nav dt {
  position: fixed;
  top: 1.7rem;
  right: 2rem;
  z-index: 9;
  padding-top: 2.92rem;
  width: 4.4rem;
  height: 1.68rem;
  cursor: pointer;
}
nav.nav dt span {
  display: block;
  position: absolute;
  top: calc(50% - 1.1rem);
  left: 0;
  background-color: var(--font-color);
  width: 100%;
  height: 0.2rem;
  transition: transform var(--speed);
}
nav.nav dt span:nth-of-type(1) {
  transform: translateY(-1.1rem);
}
nav.nav dt span:nth-of-type(3) {
  transform: translateY(1.1rem);
}
nav.nav dt em {
  display: block;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 600;
}
nav.nav dt em.close {
  display: none;
}
nav.nav dd {
  position: fixed;
  top: 8rem;
  left: 0;
  z-index: 9;
  overflow: auto;
  box-sizing: border-box;
  padding: 2rem 3rem 3rem;
  width: 100%;
  height: calc(100dvh - 8rem);
  background-color: #FFF;
  transform-origin: 0 0;
  transform: scaleY(0);
  transition: transform var(--speed);
}
nav.nav dd p {
  display: none;
}
nav.nav dd > ul {
  display: flex;
  flex-direction: column;
  gap: 0 7rem;
}
nav.nav dd > ul > li {
  padding: 2rem 0;
}
nav.nav dd > ul > li:not([class]) {
  border-bottom: solid 1px var(--border-color);
}
nav.nav dd > ul > li:not([class]) > a {
  font-size: 2rem;
  font-weight: 600;
}
nav.nav dd > ul > li:not([class]) > ul {
  display: flex;
  gap: 0.75em 3em;
  margin-top: 1.5rem;
  font-size: 1.3rem;
}
nav.nav dd > ul > li:not([class]) > ul:not([class]) {
  flex-wrap: wrap;
}
nav.nav dd > ul > li:not([class]) > ul:not([class]) li {
  position: relative;
}
nav.nav dd > ul > li:not([class]) > ul:not([class]) li:nth-last-of-type(n+2)::after {
  content: "／";
  position: absolute;
  top: 0;
  right: -2em;
}
nav.nav dd > ul > li:not([class]) > ul.case {
  flex-direction: column;
}
nav.nav dd > ul > li:not([class]) > ul.case a::before {
  content: "▶︎";
  margin-right: 0.5em;
  vertical-align: 0.1em;
  font-size: 0.8em;
}
nav.nav dd > ul > li.sub {
  margin: 1rem 0;
  font-size: 1.3rem;
  font-weight: 300;
}
nav.nav dd > ul > li.sns {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem 3rem;
  margin: 1rem 0;
}
nav.nav dd > ul > li.sns em {
  display: block;
  width: 100%;
  font-size: 1.6rem;
  font-weight: 600;
}
nav.nav dd > ul > li.sns img {
  width: 3.2rem;
  transition: var(--speed);
}
nav.nav dd > ul > li.sns a:hover img {
  filter: var(--key-filter);
}
nav.nav dd > ul > li:not(.sns) a {
  position: relative;
}
nav.nav dd > ul > li:not(.sns) a::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -0.1em;
  left: 0;
  background-color: var(--font-color);
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: 100% 0;
  transition: transform var(--speed);
}
nav.nav dd > ul > li:not(.sns) a:hover::after {
  transform: scaleX(1);
  transform-origin: 0 0;
}
nav.nav.is-opened dt span:nth-of-type(1) {
  transform: translateY(0) rotate(150deg);
}
nav.nav.is-opened dt span:nth-of-type(2) {
  transform: scaleX(0);
}
nav.nav.is-opened dt span:nth-of-type(3) {
  transform: translateY(0) rotate(-150deg);
}
nav.nav.is-opened dt em.menu {
  display: none;
}
nav.nav.is-opened dt em.close {
  display: block;
}
nav.nav.is-opened dd {
  transform: scaleY(1);
}

main.main {
  margin: 0 var(--h-margin);
  padding-top: 8rem;
}

footer.footer {
  display: flex;
  flex-wrap: wrap;
  gap: 6rem 12rem;
  margin: 0 var(--h-margin);
  padding: 3rem 0;
}
footer.footer ul {
  display: none;
}
footer.footer dt {
  font-size: 1.6rem;
  font-weight: 600;
}
footer.footer dd {
  margin-top: 1.5rem;
  line-height: 1.5;
  font-size: 1.3rem;
}
footer.footer dd a.map {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
footer.footer dd a.map:hover {
  color: var(--key-color);
}
footer.footer p.sns {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 3rem;
  align-self: start;
}
footer.footer p.sns em {
  display: block;
  width: 100%;
  font-size: 1.6rem;
  font-weight: 600;
}
footer.footer p.sns img {
  width: 3.2rem;
  transition: var(--speed);
}
footer.footer p.sns a:hover img {
  filter: var(--key-filter);
}
footer.footer p.copyright {
  width: 100%;
  font-size: 1.2rem;
}
footer.footer button {
  display: none;
}

.is-scrolled header.header {
  box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.2);
}
.is-scrolled footer.footer button {
  opacity: 1;
}

section:has(span[id]) {
  position: relative;
}

span[id] {
  position: absolute;
  top: -8em;
  left: 0;
  display: block;
}

.button-B {
  display: inline-block;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  border: solid 1px;
  border-radius: 0.8rem;
  padding: 2em 2em;
  width: min(36rem, 88%);
  text-align: center;
  line-height: 1.4;
  font-size: 1.6rem;
  font-weight: 600;
  transition: var(--speed);
}
.button-B::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--key-color);
  width: 100%;
  height: 100%;
  transform-origin: 100% 0;
  transform: scaleX(0);
  transition: transform var(--speed);
}
.button-B:hover {
  border-color: var(--key-color);
  color: #FFF;
}
.button-B:hover::before {
  transform-origin: 0 0;
  transform: scaleX(1);
}

@media (min-width: 640px) {
  .obp-S {
    display: inline-block;
  }
  .ubp-S {
    display: none;
  }
}
@media (min-width: 800px) {
  .obp-M {
    display: inline-block;
  }
  .ubp-M {
    display: none;
  }
  header.header .logo {
    flex-direction: row;
    align-items: center;
  }
  header.header .logo a {
    width: 20rem;
  }
  header.header .logo span {
    font-size: 1.2rem;
  }
  nav.nav dd {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 15rem;
  }
  nav.nav dd > ul {
    flex-wrap: wrap;
    max-width: 78rem;
    max-height: 50rem;
    width: 100%;
  }
  nav.nav dd > ul > li {
    padding: 1.5rem 0;
    width: calc(50% - 3.5rem);
  }
  nav.nav dd > ul > li:not([class]) {
    border-bottom: none;
  }
  nav.nav dd > ul > li:not([class]) > ul:not([class]) {
    margin-top: 0.75rem;
    border-top: solid 1px var(--border-color);
    padding-top: 0.75rem;
  }
  footer.footer ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2.5rem 3.5rem;
    max-width: 104rem;
  }
  footer.footer li:not([class]) {
    font-size: 1.6rem;
    font-weight: 600;
  }
  footer.footer li.sub {
    font-size: 1.3rem;
  }
  footer.footer li a {
    position: relative;
  }
  footer.footer li a::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -0.1em;
    left: 0;
    background-color: var(--font-color);
    width: 100%;
    height: 1px;
    transform: scaleX(0);
    transform-origin: 100% 0;
    transition: transform var(--speed);
  }
  footer.footer li a:hover::after {
    transform: scaleX(1);
    transform-origin: 0 0;
  }
  footer.footer button {
    bottom: 14rem;
    width: 4.8rem;
  }
  .button-S {
    font-size: min(2.2rem, 3.7vw);
  }
  p.nav-voice a {
    font-size: 2.2rem;
  }
  p.nav-entry a {
    font-size: 1.8rem;
  }
  p.nav-entry a:nth-of-type(1) {
    font-size: 2.2rem;
  }
  p.nav-lists {
    text-align: center;
    font-size: 1.8rem;
  }
}
@media (min-width: 1200px) {
  .obp-L {
    display: inline-block;
  }
  .ubp-L {
    display: none;
  }
  nav.nav dd p {
    display: block;
    margin-top: -15rem;
  }
  nav.nav dd p a {
    display: block;
    width: 13.4rem;
  }
  nav.nav dd p span {
    display: block;
    margin-top: 2em;
    line-height: 2;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 600;
  }
  nav.nav dd > ul {
    width: calc(100% - 30rem);
  }
}
/*---------------------------------------------

Common Sections CSS

coded by d-spica at 2025-08-06
imported to "style.scss"

---------------------------------------------*/
header.title {
  padding: 4rem 0;
}
header.title p {
  display: none;
}
header.title h1 {
  line-height: 1.25;
  font-size: 3rem;
  font-weight: 600;
}

header.error {
  padding: 16rem 0 24rem;
  text-align: center;
}
header.error h1 {
  margin-bottom: 4rem;
  line-height: 1.25;
  font-size: 3.2rem;
  font-weight: 600;
}
header.error p {
  font-size: 1.6rem;
}

nav.nav-section ul.box, nav.nav-section ul.box-text {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}
nav.nav-section ul.box li, nav.nav-section ul.box-text li {
  width: calc(50% - 0.35rem);
}
nav.nav-section ul.box li a, nav.nav-section ul.box-text li a {
  display: block;
  position: relative;
  overflow: hidden;
  border: solid 1px var(--border-color);
  border-radius: 0.4rem;
  padding: 1.2em 1em;
  font-size: min(1.6rem, 3.8vw);
  font-weight: 600;
  transition: var(--speed);
}
nav.nav-section ul.box li a em, nav.nav-section ul.box-text li a em {
  display: inline-block;
  margin-left: 0.5em;
  font-size: 80%;
  font-weight: 300;
}
nav.nav-section ul.box li a em::before, nav.nav-section ul.box-text li a em::before {
  content: "／";
}
nav.nav-section ul.box li a::before, nav.nav-section ul.box-text li a::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--key-color);
  width: 100%;
  height: 100%;
  transform-origin: 100% 0;
  transform: scaleX(0);
  transition: transform var(--speed);
}
nav.nav-section ul.box li a:hover, nav.nav-section ul.box-text li a:hover {
  border-color: var(--key-color);
  color: #FFF;
}
nav.nav-section ul.box li a:hover::before, nav.nav-section ul.box-text li a:hover::before {
  transform-origin: 0 0;
  transform: scaleX(1);
}
nav.nav-section ul.text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem 3rem;
  border-bottom: solid 1px var(--border-color);
  padding: 2rem 0 3.5rem;
}
nav.nav-section ul.text li a {
  display: inline-block;
  position: relative;
  font-size: 1.4rem;
}
nav.nav-section ul.text li a::before {
  content: "▶︎";
  margin-right: 0.5em;
  vertical-align: 0.1em;
  font-size: 0.8em;
}
nav.nav-section ul.text li a::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -0.1em;
  left: 0;
  background-color: var(--font-color);
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: 100% 0;
  transition: transform var(--speed);
}
nav.nav-section ul.text li a:hover::after {
  transform: scaleX(1);
  transform-origin: 0 0;
}
nav.nav-section dl.tags {
  margin-top: 4rem;
}
nav.nav-section dl.tags dt {
  margin-bottom: 0.6em;
  font-size: 1.6rem;
  font-weight: 600;
}
nav.nav-section dl.tags dd {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  overflow: hidden;
  font-size: 1.2rem;
  transition: var(--speed);
}
nav.nav-section dl.tags dd a {
  display: block;
  border: solid 1px var(--border-color);
  border-radius: 0.4rem;
  padding: 0.3em 1em;
  transition: var(--speed);
}
nav.nav-section dl.tags dd a:hover {
  background-color: var(--border-color);
  color: #FFF;
}
nav.nav-section dl.tags span {
  display: inline-block;
  margin-top: 0.6em;
  font-size: 1.2rem;
  font-weight: 600;
  cursor: pointer;
}

.page-system nav.nav-section ul.box-text li a {
  font-size: min(1.6rem, 3.3vw);
}

div.content {
  margin: 0 auto;
  max-width: 86rem;
}
div.content > figure {
  margin-bottom: 3rem;
  aspect-ratio: 16/9;
  background-color: #EEE;
}

section div.image-left {
  display: flex;
  flex-direction: column;
  gap: 0 4rem;
}
section div.image-left picture {
  margin: 0 auto 3.24rem;
  max-width: 40rem;
}
section div.image-left p {
  flex: 1;
}
section div.image-right {
  display: flex;
  flex-direction: column;
  gap: 0 4rem;
}
section div.image-right picture {
  margin: 0 auto 3.24rem;
  max-width: 40rem;
}
section div.image-right p {
  flex: 1;
}

section.recommend {
  padding: 10rem 0;
}
section.recommend ul {
  display: flex;
  flex-direction: column;
  gap: 1rem 4rem;
  text-align: center;
}
section.recommend a {
  display: inline-block;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  border: solid 1px var(--font-color);
  border-radius: 0.8rem;
  padding: 0.6em 1em;
  width: clamp(31rem, 88%, 36rem);
  font-size: 1.6rem;
  font-weight: 600;
  transition: var(--speed);
}
section.recommend a::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--key-color);
  width: 100%;
  height: 100%;
  transform-origin: 100% 0;
  transform: scaleX(0);
  transition: transform var(--speed);
}
section.recommend a:hover {
  border-color: var(--key-color);
  color: #FFF;
}
section.recommend a:hover::before {
  transform-origin: 0 0;
  transform: scaleX(1);
}

section.contact {
  border-top: solid 1px var(--border-color);
  padding: 10rem 0;
}
section.contact h2 {
  margin-bottom: 6rem;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 600;
}
section.contact p {
  text-align: center;
  font-size: min(1.3rem, 3.3vw);
}
section.contact p em {
  display: block;
  margin-bottom: 0.3em;
  font-size: 1.6rem;
  font-weight: 600;
}
section.contact p + p {
  margin-top: 2rem;
}

.page-top section.contact {
  border-top: none;
  padding-top: 6rem;
}

.page-recruit section.contact {
  border-top: none;
}
.page-recruit section.contact h2, .page-recruit section.contact p em {
  display: none;
}

section.links {
  border-top: solid 1px var(--border-color);
  border-bottom: solid 1px var(--border-color);
  padding: 4rem 0;
}
section.links ul {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem 2rem;
}
section.links li {
  width: calc(50% - 1rem);
}
section.links li a {
  display: block;
}
section.links li picture {
  display: block;
}
section.links li em {
  display: block;
  position: relative;
  margin-top: 0.5em;
  font-size: 1.3rem;
}
section.links li a[target] em {
  padding-right: 2em;
}
section.links li a[target] em::after {
  content: "";
  display: block;
  position: absolute;
  top: 0.2em;
  right: 0;
  background: url("../img/mk-newtab.svg") no-repeat 50% 50%/contain;
  width: 1em;
  height: 1em;
}

#layer {
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9;
  box-sizing: border-box;
  padding: 4%;
  width: 100%;
  height: 100dvh;
  background-color: rgba(0, 0, 0, 0.85);
  opacity: 0;
  transition: calc(2 * var(--speed)) var(--speed);
}
#layer section.modal {
  overflow: auto;
  box-sizing: border-box;
  background-color: #FFF;
  padding: min(4%, 3rem);
  max-width: 100%;
  max-height: 100%;
  transform: scale(0);
  transition: var(--speed);
}
#layer button {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 4rem;
  height: 4rem;
  cursor: pointer;
}
#layer button span {
  display: block;
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  background-color: #FFF;
  width: 100%;
  height: 2px;
}
#layer button span:nth-of-type(1) {
  transform: rotate(45deg);
}
#layer button span:nth-of-type(2) {
  transform: rotate(-45deg);
}
#layer.is-opened {
  opacity: 1;
  transition: calc(2 * var(--speed));
}
#layer.is-opened section.modal {
  transform: scale(1);
  transition: var(--speed) calc(2 * var(--speed));
}

@media (min-width: 640px) {
  header.title {
    padding-top: 1.5rem;
  }
  header.title p {
    display: block;
    margin-bottom: 4rem;
    font-size: 1.2rem;
  }
  header.title p a {
    display: inline-block;
    color: var(--border-color);
  }
  header.title p a:hover {
    color: #000;
    transition: color var(--speed);
  }
  header.title p i {
    display: inline-block;
    margin: 0 0.5em 0.2em 0.3em;
    border-top: solid 1px var(--border-color);
    border-right: solid 1px var(--border-color);
    width: 0.4em;
    height: 0.4em;
    transform: rotate(45deg);
  }
  nav.nav-section ul.text li a {
    font-size: 1.6rem;
  }
  section.links li {
    width: calc(33.333% - 1.3333rem);
  }
}
@media (min-width: 800px) {
  nav.nav-section ul.box li, nav.nav-section ul.box-text li {
    flex: 1;
    width: auto;
  }
  nav.nav-section ul.text {
    flex-direction: row;
    border-bottom: none;
    padding-left: 1em;
  }
  .page-system nav.nav-section ul.box-text li {
    width: calc(33.333% - 0.46666rem);
  }
  section div.image-left {
    flex-direction: row;
  }
  section div.image-right {
    flex-direction: row-reverse;
  }
  section.recommend ul {
    flex-direction: row;
  }
  section.recommend li {
    flex: 1;
  }
  section.recommend a {
    padding: 2em 1em;
    width: 100%;
    white-space: nowrap;
  }
}
@media (min-width: 960px) {
  section.links ul {
    gap: 4rem;
  }
  section.links li {
    width: calc(25% - 3rem);
  }
}
@media (min-width: 1200px) {
  header.title {
    padding-bottom: 8rem;
  }
  header.title p {
    margin-bottom: 6rem;
    margin-left: min(63rem - 50vw, 0rem);
  }
  div.columns {
    display: flex;
    gap: 0 6rem;
  }
  div.columns nav.nav-section {
    width: 24rem;
  }
  div.columns nav.nav-section > div {
    position: sticky;
    top: 12rem;
    margin-bottom: 4rem;
  }
  div.columns nav.nav-section ul.box {
    flex-direction: column;
  }
  div.columns nav.nav-section ul.box li {
    width: 100%;
  }
  div.columns nav.nav-section ul.box-text {
    display: block;
  }
  div.columns nav.nav-section ul.box-text li {
    margin-bottom: 2.5rem;
    width: 100%;
  }
  div.columns nav.nav-section ul.box-text li a {
    display: inline-block;
    overflow: visible;
    border: none;
    padding: 0;
  }
  div.columns nav.nav-section ul.box-text li a::before {
    top: auto;
    bottom: -0.1em;
    left: 0;
    z-index: -1;
    background-color: var(--font-color);
    width: 100%;
    height: 1px;
    transform-origin: 100% 0;
    transform: scaleX(0);
    transition: transform var(--speed);
  }
  div.columns nav.nav-section ul.box-text li a:hover {
    color: inherit;
  }
  div.columns nav.nav-section ul.box-text li a:hover::before {
    transform: scaleX(1);
    transform-origin: 0 0;
  }
  div.columns div.content {
    width: 86rem;
  }
  nav.nav-section ul.text {
    flex-direction: column;
    padding-top: 0;
  }
  section.links li {
    width: calc(25% - 3rem);
  }
}
/*---------------------------------------------

Top Page Sections CSS

coded by d-spica at 2025-08-04
imported to "style.scss"

---------------------------------------------*/
header.hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4em min(25rem, 12vw);
  position: relative;
  margin: 0 calc(-1 * var(--h-margin));
  padding: 3rem 0;
  min-height: calc(100dvh - 14rem);
  text-align: center;
  font-size: min(0.4848485vw + 14.1818182px, 24px);
  font-weight: 600;
}
header.hero .copy p {
  margin: 2em 0;
  line-height: 2;
}
header.hero .copy p i {
  display: inline-block;
}
header.hero .copy p span {
  display: block;
  opacity: 0;
}
header.hero .copy strong {
  font-size: 140%;
}
header.hero .image figure {
  margin: 0 auto;
  width: 9.6em;
}
header.hero .image p {
  margin-top: 1.5em;
  color: var(--border-color);
  font-size: 72%;
}
header.hero p.scroll {
  position: absolute;
  bottom: -1.4em;
  right: min(3vw, 5rem);
  font-size: 1.2rem;
  transform-origin: 100% 0;
  transform: rotate(90deg);
}
header.hero p.scroll::after {
  content: "";
  display: inline-block;
  margin-left: 0.6em;
  border-top: solid 1px;
  width: 6em;
  height: 0;
  vertical-align: 0.4em;
  animation: liner 2.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes liner {
  0% {
    transform: scaleX(0);
    transform-origin: 0 0;
  }
  30% {
    transform: scaleX(1);
    transform-origin: 0 0;
  }
  70% {
    transform: scaleX(1);
    transform-origin: 100% 0;
  }
  100% {
    transform: scaleX(0);
    transform-origin: 100% 0;
  }
}

section.pages {
  padding-bottom: 6rem;
}
section.pages ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 32rem;
}
section.pages li {
  border-bottom: solid 1px var(--border-color);
  width: 32rem;
  max-width: 100%;
}
section.pages li a {
  display: block;
  padding: 8rem 0 7rem;
  text-align: center;
}
section.pages li figure {
  margin: 0 auto;
  width: 20rem;
}
section.pages li em {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 1.5rem;
  height: 2.8em;
  font-size: 2.4rem;
  font-weight: 600;
}
section.pages li span {
  display: block;
  margin-top: 1.5rem;
  height: 3em;
  line-height: 1.5;
  font-size: 1.6rem;
}
section.pages li u {
  display: inline-block;
  position: relative;
  overflow: hidden;
  margin-top: 3.5rem;
  box-sizing: border-box;
  border: solid 1px;
  border-radius: 0.8rem;
  padding: 0.7em 1em;
  width: 16rem;
  font-size: 1.3rem;
  transition: var(--speed);
}
section.pages li u::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--key-color);
  width: 100%;
  height: 100%;
  transform-origin: 100% 0;
  transform: scaleX(0);
  transition: transform var(--speed);
}
section.pages li a:hover u {
  border-color: var(--key-color);
  color: #FFF;
}
section.pages li a:hover u::before {
  transform-origin: 0 0;
  transform: scaleX(1);
}

section.works-T {
  padding: 6rem 0;
}
section.works-T h2 {
  margin-bottom: 6rem;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 600;
}
section.works-T ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  margin: 0 auto;
  max-width: 28rem;
}
section.works-T li {
  width: 28rem;
  max-width: 100%;
}
section.works-T li a {
  display: block;
}
section.works-T li picture {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
}
section.works-T li picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.works-T li span {
  display: block;
  padding: 0.5em 0 1em;
  line-height: 1.6;
  font-size: 1.4rem;
}
section.works-T p {
  margin-top: 8rem;
  text-align: center;
}
section.works-T p.none {
  margin: 12rem 0;
  text-align: center;
  font-size: 1.6rem;
}

section.information {
  padding: 6rem 0;
}
section.information h2 {
  margin-bottom: 6rem;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 600;
}
section.information ul {
  margin: 0 auto;
  border-top: solid 1px var(--border-color);
  max-width: 96rem;
}
section.information li {
  border-bottom: solid 1px var(--border-color);
  padding: 3rem 0;
  line-height: 1.5;
  font-size: 1.3rem;
  /*
  u, a {
  	display: block;
  	padding: 3rem 0;
  }
  */
}
section.information li time {
  display: block;
  margin-bottom: 1em;
}
section.information li em {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.6rem;
  font-weight: 600;
}
section.information li span, section.information li div {
  display: block;
  margin-top: 0.5em;
}
section.information li span p, section.information li div p {
  margin-bottom: 0.5em;
}
section.information li span a, section.information li div a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.information li span a:hover, section.information li div a:hover {
  color: #000;
}
section.information a em {
  position: relative;
}
section.information a em::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -0.1em;
  left: 0;
  background-color: var(--font-color);
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: 100% 0;
  transition: transform var(--speed);
}
section.information a:hover em::after {
  transform: scaleX(1);
  transform-origin: 0 0;
}
section.information p.none {
  margin: 12rem 0;
  text-align: center;
  font-size: 1.6rem;
}

@media (min-width: 730px) {
  section.pages ul {
    gap: 0 5rem;
    max-width: 69rem;
  }
  section.works-T ul {
    max-width: 60rem;
  }
}
@media (min-width: 800px) {
  section.information li {
    position: relative;
    padding-left: 15rem;
    /*
    u, a {
    	position: relative;
    	padding-left: 15rem;
    }
    */
  }
  section.information li time {
    position: absolute;
    top: 3.2rem;
    left: 0;
  }
}
@media (min-width: 960px) {
  section.works-T ul {
    margin: 0;
    max-width: none;
    width: 86rem;
  }
  section.works-T li {
    width: 26rem;
  }
  section.pages ul {
    gap: 0 min(10rem, 8%);
    max-width: 116rem;
  }
  section.pages li {
    width: min(32rem, 28%);
  }
}
@media (min-width: 1200px) {
  header.hero {
    flex-direction: row;
  }
  header.hero .copy {
    text-align: left;
  }
  header.hero .image figure {
    width: 12.6em;
  }
  header.hero .image p {
    font-size: 90%;
  }
  section.works-T ul {
    width: 116rem;
  }
  section.works-T li {
    position: relative;
  }
  section.works-T li span {
    position: absolute;
    bottom: 0;
    left: 0;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 0.5em 1em;
    width: 100%;
    opacity: 0;
    transition: opacity calc(1.5 * var(--speed));
  }
  section.works-T li a:hover span {
    opacity: 1;
  }
}
/*---------------------------------------------

Service Page Sections CSS

coded by d-spica at 2025-08-06
imported to "style.scss"

---------------------------------------------*/
section.about {
  padding: 7rem 0;
}
section.about:nth-of-type(n+2) {
  border-top: solid 1px var(--border-color);
}
section.about h2 {
  margin-bottom: 3.5rem;
}
section.about h2 span {
  display: block;
  font-size: 2.4rem;
  font-weight: 600;
}
section.about h2 em {
  display: block;
  margin-top: 1em;
  font-size: 1.6rem;
  color: var(--border-color);
}
section.about p {
  line-height: 2;
  font-size: 1.8rem;
}
section.about p.copy {
  margin-bottom: 3rem;
  line-height: 1.6;
  font-size: 2.4rem;
  font-weight: 600;
}
section.about:has(#mission) p {
  font-size: 2rem;
}
section.about:has(#mission) .copy {
  font-size: 3.2rem;
}
section.about section {
  position: relative;
  padding-top: 1rem;
  padding-left: 8rem;
}
section.about section:nth-of-type(n+2) {
  margin-top: 6rem;
}
section.about section h3 {
  margin-bottom: 3rem;
  line-height: 1.6;
  font-size: 2.4rem;
  font-weight: 600;
}
section.about section h3 b {
  position: absolute;
  top: -0.2em;
  left: 0;
  font-size: 5rem;
  color: #CFD8DE;
}
section.about section ol {
  display: flex;
  flex-direction: column;
  gap: 4rem 7rem;
  margin: 3rem 0;
  list-style: none;
}
section.about section ol li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: solid 1px;
  border-radius: 9999rem;
  width: 20rem;
  height: 20rem;
}
section.about section ol li em {
  display: block;
  font-size: 2.4rem;
  font-weight: 600;
}
section.about section ol li span {
  display: block;
  margin-top: 1.5em;
  font-size: 1.5rem;
}
section.about section ol li:nth-of-type(n+2) {
  position: relative;
}
section.about section ol li:nth-of-type(n+2)::before {
  content: "";
  display: block;
  position: absolute;
  top: -3.1rem;
  left: calc(50% - 1.1rem);
  background: url("../img/ar.svg") no-repeat 50% 50%/contain;
  width: 2.2rem;
  height: 2.2rem;
  transform: rotate(90deg);
}

section.flow {
  padding-top: 5.5rem;
}
section.flow hgroup {
  margin-bottom: 6rem;
  border-bottom: solid 1px var(--border-color);
  padding-bottom: 6rem;
}
section.flow hgroup h2 {
  line-height: 1.6;
  font-size: 2.4rem;
  font-weight: 600;
}
section.flow hgroup p {
  margin-top: 1.5em;
  line-height: 2;
  font-size: 1.8rem;
}
section.flow section {
  position: relative;
  margin-left: 2.4rem;
  border-left: solid 1px var(--border-color);
  padding-left: 4.2rem;
  padding-bottom: 6rem;
}
section.flow section:nth-last-of-type(1) {
  border-left-color: transparent;
}
section.flow section h3 {
  margin-bottom: 0.8em;
  font-size: 2.4rem;
  font-weight: 600;
}
section.flow section h3 b {
  display: block;
  top: -0.4em;
  left: -2.4rem;
  position: absolute;
  border: solid 1px var(--border-color);
  border-radius: 9999rem;
  background-color: #FFF;
  width: 2em;
  height: 2em;
  line-height: 2em;
  text-align: center;
}
section.flow section p {
  margin-bottom: 1.8em;
  line-height: 1.8;
  font-size: 1.6rem;
}
section.flow section strong {
  font-weight: 600;
}

section.system {
  padding: 7rem 0;
}
section.system:nth-of-type(n+2) {
  border-top: solid 1px var(--border-color);
}
section.system h2 {
  margin-bottom: 1.2em;
  font-size: 2.4rem;
  font-weight: 600;
}
section.system p {
  margin-bottom: 1.8em;
  line-height: 1.8;
  font-size: 1.8rem;
}
section.system p.copy {
  margin-bottom: 1em;
  font-size: 2rem;
  font-weight: 600;
}
section.system > :last-child {
  margin-bottom: 0;
}
section.system strong {
  font-weight: 600;
}
section.system > p a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.system > p a:hover {
  color: var(--key-color);
}
section.system section.team {
  display: flex;
  flex-direction: column;
  gap: 2.5rem 5rem;
  border-top: solid 1px var(--border-color);
  padding: 4rem 0;
}
section.system section.team:nth-of-type(1) {
  margin-top: 7rem;
}
section.system section.team h3 {
  font-size: 2rem;
  font-weight: 600;
}
section.system section.team picture {
  display: block;
  position: relative;
  margin: 0 auto;
  width: 20rem;
  aspect-ratio: 1/1;
  align-self: start;
}
section.system section.team picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.system section.team p {
  margin-bottom: 0;
  line-height: 1.8;
  font-size: 1.6rem;
}
section.system section.case {
  display: flex;
  flex-direction: column;
  gap: 3rem 4rem;
  margin-top: 2rem;
  border: solid 1px #666;
  padding: 3rem min(4rem, 5.5vw);
}
section.system section.case h3 {
  font-size: 2rem;
  font-weight: 600;
}
section.system section.case picture {
  display: block;
  position: relative;
  margin: 0 auto;
  width: 20rem;
  aspect-ratio: 1/1;
  align-self: start;
}
section.system section.case picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.system section.case p {
  line-height: 1.8;
  font-size: 1.4rem;
}
section.system section.case p span {
  display: block;
}
section.system section.case p em {
  display: block;
  margin: 1em 0;
  font-size: 1.6rem;
}
section.system section.case p em b {
  font-weight: 600;
}
section.system section.case p a {
  display: inline-block;
  position: relative;
  overflow: hidden;
  border: solid 1px var(--border-color);
  border-radius: 0.8rem;
  padding: 0.5em 1em;
  width: 16.5em;
  text-align: center;
  font-size: min(1.3rem, 3.8vw);
  font-weight: 600;
  transition: var(--speed);
}
section.system section.case p a::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-color: var(--key-color);
  width: 100%;
  height: 100%;
  transform-origin: 100% 0;
  transform: scaleX(0);
  transition: transform var(--speed);
}
section.system section.case p a:hover {
  border-color: var(--key-color);
  color: #FFF;
}
section.system section.case p a:hover::before {
  transform-origin: 0 0;
  transform: scaleX(1);
}
section.system section.consult {
  padding: 6rem 0;
}
section.system section.consult picture {
  display: block;
  position: relative;
  margin: 0 auto;
  width: 20rem;
}
section.system section.consult p {
  margin-top: 1.8em;
  margin-bottom: 0;
  text-align: center;
  line-height: 1.8;
  font-size: 1.6rem;
}
section.system ul.links {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-top: 2rem;
}
section.system ul.links li a {
  display: flex;
  align-items: center;
  gap: min(4rem, 5.5vw);
  position: relative;
  border: solid 1px #666;
  padding: 1.5rem min(4rem, 5.5vw);
  font-size: min(2rem, 4.5vw);
  font-weight: 600;
  transition: var(--speed);
}
section.system ul.links li a i {
  display: block;
  width: min(12rem, 15vw);
  aspect-ratio: 1/1;
}
section.system ul.links li a em {
  flex: 1;
}
section.system ul.links li a::after {
  content: "";
  display: block;
  background: url("../img/ar-s.svg") no-repeat 50% 50%/contain;
  width: min(4rem, 5.5vw);
  aspect-ratio: 1/1;
  transition: var(--speed);
}
section.system ul.links li a:hover {
  background-color: var(--light-key-color);
}
section.system ul.links li a:hover::after {
  transform: translateX(1rem);
}

.page-system section.system:nth-of-type(1) {
  padding-bottom: 0;
}

@media (min-width: 640px) {
  section.system section.team {
    flex-direction: row;
    flex-wrap: wrap;
  }
  section.system section.team h3 {
    width: 100%;
  }
  section.system section.team p {
    flex: 1;
  }
  section.system section.case {
    flex-direction: row;
    flex-wrap: wrap;
  }
  section.system section.case h3 {
    width: 100%;
  }
  section.system section.case p {
    flex: 1;
  }
}
@media (min-width: 800px) {
  section.flow hgroup h2 {
    font-size: 3.2rem;
  }
  section.flow hgroup p {
    font-size: 2rem;
  }
  section.flow section {
    padding-left: 5rem;
  }
  section.flow section h2 {
    font-size: 3.2rem;
  }
  section.flow section p {
    font-size: 1.8rem;
  }
  section.system h2 {
    font-size: 3rem;
  }
  section.system p.copy {
    font-size: 2.4rem;
  }
  section.system section.team h3 {
    font-size: 2.4rem;
  }
  section.system section.team p {
    font-size: 1.8rem;
  }
  section.system section.case h3 {
    font-size: 2.4rem;
  }
}
@media (min-width: 900px) {
  section.about section ol {
    flex-direction: row;
  }
  section.about section ol li:nth-of-type(n+2)::before {
    top: calc(50% - 1.1rem);
    left: -4.6rem;
    transform: rotate(0);
  }
}
@media (min-width: 1200px) {
  section.about:nth-of-type(1) {
    padding-top: 0;
  }
  section.flow {
    padding-top: 0;
  }
  section.system:nth-of-type(1) {
    padding-top: 0;
  }
}
/*---------------------------------------------

Works Page Sections CSS

coded by d-spica at 2025-08-07
imported to "style.scss"

---------------------------------------------*/
section.works {
  padding: 6rem 0 8rem;
}
section.works h2 {
  margin-bottom: 4rem;
  text-align: center;
  font-size: 2.4rem;
  font-weight: 600;
}
section.works ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  margin: 0 auto;
  max-width: 28rem;
}
section.works li {
  width: 28rem;
  max-width: 100%;
}
section.works li a {
  display: block;
}
section.works li picture {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
}
section.works li picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.works li span {
  display: block;
  padding: 0.5em 0 1em;
  line-height: 1.6;
  font-size: 1.4rem;
}
section.works p.none {
  margin: 12rem 0;
  text-align: center;
  font-size: 1.6rem;
}

.wp-pagenavi {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin: 7rem auto 0;
  width: 20rem;
  height: 4.8rem;
  text-align: center;
}
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  display: block;
  position: absolute;
  top: 0;
  border: solid 1px;
  border-radius: 9999rem;
  width: 4.8rem;
  height: 4.8rem;
  text-indent: -9999rem;
  transition: var(--speed);
}
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .nextpostslink::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 0.8rem);
  border-top: solid 1px;
  border-right: solid 1px;
  width: 1.2rem;
  height: 1.2rem;
  transition: color var(--speed);
}
.wp-pagenavi .previouspostslink:hover,
.wp-pagenavi .nextpostslink:hover {
  background-color: var(--font-color);
}
.wp-pagenavi .previouspostslink:hover::before,
.wp-pagenavi .nextpostslink:hover::before {
  color: #FFF;
}
.wp-pagenavi .previouspostslink {
  left: 0;
}
.wp-pagenavi .previouspostslink::before {
  left: calc(50% - 0.4rem);
  transform: rotate(-135deg);
}
.wp-pagenavi .nextpostslink {
  right: 0;
}
.wp-pagenavi .nextpostslink::before {
  right: calc(50% - 0.4rem);
  transform: rotate(45deg);
}
.wp-pagenavi .pages {
  font-size: 2rem;
}

section.gallery h2 {
  margin-bottom: 0.8em;
  font-size: 3.2rem;
  font-weight: 600;
}
section.gallery figure {
  width: 100%;
}
section.gallery figure ul.slick-slider {
  width: 100%;
}
section.gallery figure ul.slick-slider li picture {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
}
section.gallery figure ul.slick-slider li picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-user-drag: none;
}
section.gallery figure ul.slick-dots {
  display: flex;
  gap: 1rem;
  overflow: auto;
  margin-top: 2rem;
  padding-bottom: 1rem;
  scroll-snap-type: x mandatory;
}
section.gallery figure ul.slick-dots li {
  display: block;
  flex: 0 0 6rem;
  position: relative;
  aspect-ratio: 1/1;
  scroll-snap-align: start;
  filter: brightness(0.7);
  transition: filter var(--speed);
}
section.gallery figure ul.slick-dots li.slick-active {
  filter: brightness(1.05);
}
section.gallery figure ul.slick-dots li img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

dl.share {
  position: relative;
  margin: 2rem 0 2.5rem auto;
  width: 12.1rem;
  font-size: 1.3rem;
}
dl.share dt {
  border-radius: 9999rem;
  background-color: #106EE8;
  padding: 0.4em 2em;
  width: -moz-fit-content;
  width: fit-content;
  letter-spacing: 0.05em;
  color: #FFF;
  cursor: pointer;
}
dl.share dd {
  position: absolute;
  top: 2.86rem;
  right: 0;
  box-shadow: 0.2rem 0.2rem 0.4rem rgba(0, 0, 0, 0.15);
  border-radius: 0.8rem;
  background-color: #FFF;
  padding: 0.5rem 0;
  width: 17rem;
  transform: scaleY(0);
  transform-origin: 0 0;
  transition: transform var(--speed);
}
dl.share dd li:nth-of-type(1) {
  margin-bottom: 0.5em;
  border-bottom: solid 1px var(--border-color);
}
dl.share dd button {
  padding: 0.8em 1.5em;
  cursor: pointer;
}
dl.share dd button img {
  margin-right: 1em;
  width: 1.6rem;
  vertical-align: -0.2em;
}
dl.share dd a {
  display: block;
  padding: 0.5em 1.5em;
}
dl.share dd a img {
  margin-right: 1em;
  width: 1.6rem;
  vertical-align: -0.2em;
}
dl.share.is-opened dd {
  transform: scaleY(1);
}

section.work {
  padding-bottom: 6rem;
}
section.work h3 {
  border-bottom: solid 1px var(--border-color);
  padding-bottom: 0.4em;
  line-height: 1.6;
  font-size: 2.4rem;
  font-weight: 600;
}
section.work section {
  padding: 7rem 0;
}
section.work section h4 {
  margin: 0 auto 3rem;
  width: 3em;
  text-align: center;
  font-size: 2rem;
  font-weight: 600;
}
section.work section h4::after {
  content: "";
  display: block;
  margin-top: 0.3em;
  background-color: #CCC;
  width: 100%;
  height: 0.4rem;
}
section.work section p, section.work section ul, section.work section ol, section.work section blockquote {
  margin-bottom: 1em;
  line-height: 2;
  font-size: 1.6rem;
}
section.work section ul li {
  position: relative;
  padding-left: 1em;
}
section.work section ul li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}
section.work section ol {
  padding-left: 1.5em;
}
section.work section blockquote {
  border-left: solid 1px var(--border-color);
  border-right: solid 1px var(--border-color);
  padding: 0.5em 1.5em 0;
}
section.work section > :last-child {
  margin-bottom: 0;
}
section.work section a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.work section a:hover {
  color: var(--key-color);
}
section.work section.omoi h4::after {
  background-color: #FF7C8B;
}
section.work section.katachi {
  position: relative;
  margin-top: 4rem;
}
section.work section.katachi::before {
  content: "";
  display: block;
  position: absolute;
  top: -4rem;
  left: calc(50% - 2.4rem);
  background: url("../img/ar-d2.svg") no-repeat 50% 50%/contain;
  width: 4.8rem;
  height: 4rem;
}
section.work section.katachi h4::after {
  background-color: #106EE8;
}
section.work ul.data {
  border: solid 1px var(--border-color);
  padding: 1.5rem;
  font-size: 1.3rem;
}
section.work ul.data li {
  display: flex;
}
section.work ul.data li:nth-of-type(n+2) {
  margin-top: 1em;
}
section.work ul.data li em {
  display: block;
  width: 10em;
  color: var(--border-color);
}
section.work ul.data li span {
  display: block;
  flex: 1;
}
section.work ul.data li a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.work ul.data li a:hover {
  color: var(--key-color);
}
section.work p.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.5rem;
  font-size: 1.3rem;
}
section.work p.tags a {
  display: block;
  border: solid 1px var(--border-color);
  border-radius: 0.4rem;
  padding: 0.3em 1.5em;
  transition: var(--speed);
}
section.work p.tags a:hover {
  background-color: var(--border-color);
  color: #FFF;
}
section.work p.pager {
  margin-top: 10rem;
  position: relative;
  border-top: solid 1px var(--border-color);
  padding: 3rem 0;
  text-align: center;
  font-size: 1.6rem;
}
section.work p.pager a {
  display: inline-block;
}
section.work p.pager a i {
  display: inline-block;
  position: relative;
  border: solid 1px;
  border-radius: 9999rem;
  width: 4.8rem;
  height: 4.8rem;
  vertical-align: middle;
  transition: var(--speed);
}
section.work p.pager a i::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 0.8rem);
  border-top: solid 1px;
  border-right: solid 1px;
  width: 1.2rem;
  height: 1.2rem;
  transition: color var(--speed);
}
section.work p.pager a:hover i {
  background-color: var(--font-color);
}
section.work p.pager a:hover i::before {
  color: #FFF;
}
section.work p.pager .index {
  padding: 1.2rem;
  width: 2.4rem;
}
section.work p.pager .index img {
  transition: var(--speed);
}
section.work p.pager .index:hover img {
  filter: var(--key-filter);
}
section.work p.pager .prev {
  position: absolute;
  top: 3rem;
  left: 0;
}
section.work p.pager .prev i {
  margin-right: 1em;
}
section.work p.pager .prev i::before {
  left: calc(50% - 0.4rem);
  transform: rotate(-135deg);
}
section.work p.pager .next {
  position: absolute;
  top: 3rem;
  right: 0;
}
section.work p.pager .next i {
  margin-left: 1em;
}
section.work p.pager .next i::before {
  right: calc(50% - 0.4rem);
  transform: rotate(45deg);
}

section.relations {
  padding: 8rem 0;
}
section.relations h3 {
  margin-bottom: 1em;
  text-align: center;
  font-size: 2.4rem;
  font-weight: 600;
}
section.relations ul {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  margin: 0 auto;
  max-width: 28rem;
}
section.relations li {
  width: 28rem;
  max-width: 100%;
}
section.relations li a {
  display: block;
  font-weight: 300;
}
section.relations li picture {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
}
section.relations li picture img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
section.relations li span {
  display: block;
  padding: 0.5em 0 1em;
  line-height: 1.6;
  font-size: 1.4rem;
}

@media (min-width: 640px) {
  section.gallery figure ul.slick-slider li picture {
    aspect-ratio: 16/9;
  }
  section.gallery figure ul.slick-dots li {
    flex: 0 0 10.8rem;
    aspect-ratio: 16/9;
  }
}
@media (min-width: 730px) {
  section.works ul {
    max-width: 60rem;
  }
  section.relations ul {
    max-width: 60rem;
  }
}
@media (min-width: 800px) {
  section.work ul.data {
    padding: 2.5rem;
  }
  section.work ul.data li em {
    width: 12em;
  }
}
@media (min-width: 960px) {
  section.works h2 {
    text-align: left;
  }
  section.works ul {
    margin: 0;
    max-width: none;
    width: 86rem;
  }
  section.works li {
    width: 26rem;
  }
  section.relations h3 {
    text-align: left;
  }
  section.relations ul {
    max-width: 86rem;
  }
  section.relations li {
    width: 26rem;
  }
}
@media (min-width: 1200px) {
  section.works {
    padding-top: 0;
  }
  section.works h2 {
    text-align: left;
  }
  section.works li {
    position: relative;
  }
  section.works li span {
    position: absolute;
    bottom: 0;
    left: 0;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 0.5em 1em;
    width: 100%;
    opacity: 0;
    transition: opacity calc(1.5 * var(--speed));
  }
  section.works li a:hover span {
    opacity: 1;
  }
  section.gallery figure {
    height: 55.8rem;
  }
  section.gallery figure ul.slick-slider {
    display: flex;
    gap: 0 2.4rem;
    height: inherit;
  }
  section.gallery figure ul.slick-slider div.slick-list {
    width: 99.2rem;
  }
  section.gallery figure ul.slick-dots {
    flex-direction: column;
    margin-top: 0;
    margin-right: -1rem;
    padding-bottom: 0;
    padding-right: 1rem;
    width: 14.4rem;
    height: inherit;
    scroll-snap-type: y mandatory;
  }
  section.gallery figure ul.slick-dots li {
    flex: 0 0 8rem;
  }
  dl.share {
    margin-left: 87.1rem;
  }
  dl.share dd {
    right: auto;
    left: 0;
  }
  section.relations {
    padding-top: 0;
  }
  section.relations li {
    position: relative;
  }
  section.relations li span {
    position: absolute;
    bottom: 0;
    left: 0;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 0.5em 1em;
    width: 100%;
    opacity: 0;
    transition: opacity calc(1.5 * var(--speed));
  }
  section.relations li a:hover span {
    opacity: 1;
  }
}
/*---------------------------------------------

Company Page Sections CSS

coded by d-spica at 2025-08-16
imported to "style.scss"

---------------------------------------------*/
section.company {
  padding: 7rem 0;
}
section.company:nth-of-type(n+2) {
  border-top: solid 1px var(--border-color);
}
section.company:nth-last-of-type(1) {
  padding-bottom: 3.5rem;
}
section.company h2 {
  margin-bottom: 1.2em;
  font-size: 2.4rem;
  font-weight: 600;
}
section.company h2 span {
  font-size: 80%;
}
section.company h2 em::before {
  display: inline-block;
  margin-left: 0.2em;
  content: "／";
}
section.company p {
  margin-bottom: 1.8em;
  line-height: 1.8;
  font-size: 1.8rem;
}
section.company > :last-child {
  margin-bottom: 0;
}
section.company ul.copy {
  margin-bottom: 1em;
  padding-top: 1rem;
  font-size: min(2.4rem, 5.7vw);
  font-weight: 600;
}
section.company ul.copy li {
  position: relative;
  margin-bottom: 1.6em;
  padding-left: 2.5em;
}
section.company ul.copy li b {
  position: absolute;
  top: -0.25em;
  left: 0;
  font-size: 150%;
  font-weight: 600;
  color: #CFD8DE;
}
section.company ul.copy li span {
  display: block;
  margin-top: 1em;
  font-size: 1.8rem;
  font-weight: 300;
}
section.company ul.data {
  line-height: 1.8;
  font-size: 1.6rem;
}
section.company ul.data li {
  padding: 1.5em 0;
}
section.company ul.data li:nth-last-of-type(n+2) {
  border-bottom: solid 1px var(--border-color);
}
section.company ul.data li em {
  display: block;
  font-weight: 600;
}
section.company ul.data li span {
  display: block;
  padding-left: 1em;
}
section.company ul.data li a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.company ul.data li a:hover {
  color: var(--key-color);
}
section.company figure.map {
  position: relative;
  margin-bottom: 4rem;
  width: 100%;
  aspect-ratio: 1/1;
}
section.company figure.map iframe {
  width: 100%;
  height: 100%;
}

section.member {
  margin-bottom: 4rem;
  border: solid 1px var(--border-color);
  padding: min(5rem, 5vw) 5vw;
}
section.member:nth-of-type(1) {
  margin-top: 5.5rem;
}
section.member:nth-last-of-type(1) {
  margin-bottom: 7rem;
}
section.member > * {
  margin-left: auto;
  margin-right: auto;
  max-width: 86rem;
}
section.member a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.member a:hover {
  color: var(--key-color);
}
section.member header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin-bottom: 3.2rem;
  border-bottom: solid 1px var(--border-color);
}
section.member header > picture {
  width: min(32rem, 100%);
}
section.member header hgroup {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2rem;
  width: min(32rem, 100%);
}
section.member header hgroup picture {
  width: 12rem;
}
section.member header hgroup h2 {
  flex: 1;
  white-space: nowrap;
  font-size: 2.8rem;
  font-weight: 600;
}
section.member header hgroup h2 span {
  display: block;
  font-size: 50%;
}
section.member header hgroup p {
  width: 100%;
  line-height: 1.5;
  font-size: 1.6rem;
  color: var(--border-color);
}
section.member p {
  margin-bottom: 2em;
  line-height: 2;
  font-size: 1.6rem;
}
section.member ul.links {
  border-top: solid 1px var(--border-color);
  padding-top: 3.2rem;
  line-height: 2.4;
  font-size: 1.3rem;
}
section.member ul.links li {
  display: inline-block;
}
section.member ul.links li:nth-last-of-type(n+2)::after {
  content: "／";
  display: inline-block;
  margin: 0 1em;
}
section.member ul.links li a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: var(--speed);
}
section.member ul.links li a:hover {
  color: var(--key-color);
}
section.member > :last-child {
  margin-bottom: 0;
}

section.recruit {
  padding: 7rem 0;
}
section.recruit:nth-of-type(1) {
  padding-top: 5.5rem;
}
section.recruit:nth-last-of-type(1) {
  padding-bottom: 0;
}
section.recruit:nth-of-type(n+2) {
  border-top: solid 1px var(--border-color);
  padding-top: 5.5rem;
}
section.recruit h2 {
  margin-bottom: 1em;
  line-height: 1.6;
  font-size: 2.4rem;
  font-weight: 600;
}
section.recruit p {
  line-height: 1.8;
  font-size: 1.6rem;
}
section.recruit dl {
  border-bottom: solid 1px var(--border-color);
  padding: 3rem 0;
  line-height: 1.8;
  font-size: 1.6rem;
}
section.recruit dl:nth-of-type(1) {
  padding-top: 1.5rem;
}
section.recruit dl dt {
  font-weight: 600;
}
section.recruit dl dd {
  padding-left: 1em;
}
section.recruit ul.note li {
  position: relative;
  padding-left: 1em;
}
section.recruit ul.note li i {
  position: absolute;
  top: 0;
  left: 0;
}

section.terms {
  padding: 7rem 0;
}
section.terms:nth-of-type(1) {
  padding-top: 5.5rem;
}
section.terms section {
  margin: 5rem 0;
}
section.terms section h3 {
  margin-bottom: 0.8em;
  font-size: 2.4rem;
  font-weight: 600;
}
section.terms p, section.terms ul {
  margin-bottom: 1em;
  line-height: 2;
  font-size: 1.6rem;
}
section.terms ul li {
  position: relative;
  padding-left: 1em;
}
section.terms ul li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}
section.terms .box {
  border: solid 1px var(--border-color);
  padding: 1em 1.5em;
  width: -moz-fit-content;
  width: fit-content;
}

@media (min-width: 640px) {
  section.company ul.data li {
    display: flex;
    gap: 0 min(7.5rem, 8.5vw);
  }
  section.company ul.data li em {
    width: 6em;
  }
  section.company ul.data li span {
    flex: 1;
    padding-left: 0;
  }
  section.member header {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
  section.member header > picture {
    width: min(32rem, 50% - 1rem);
  }
  section.member header hgroup {
    width: min(66rem, 100%);
  }
  section.recruit dl {
    display: flex;
    gap: 0 5%;
  }
  section.recruit dl dt {
    width: 6em;
  }
  section.recruit dl dd {
    flex: 1;
  }
}
@media (min-width: 800px) {
  section.company h2 {
    font-size: 3rem;
  }
  section.company ul.copy {
    font-size: 3.2rem;
  }
  section.company figure.map {
    aspect-ratio: 16/9;
  }
  section.member header hgroup h2 {
    font-size: 3.2rem;
  }
}
@media (min-width: 1200px) {
  section.company:nth-of-type(1) {
    padding-top: 0;
  }
  section.member:nth-of-type(1) {
    margin-top: 0;
  }
  section.member header {
    flex-wrap: nowrap;
    align-items: start;
    padding-bottom: 3.2rem;
  }
  section.member header > picture {
    width: 24rem;
  }
  section.member header hgroup {
    width: auto;
    flex: 1;
  }
  section.recruit:nth-of-type(1) {
    padding-top: 0;
  }
}
/*---------------------------------------------

Animation CSS

coded by d-spica at 2025-08-10
imported to "style.scss"

---------------------------------------------*/
figure.cloudbox {
  position: relative;
  aspect-ratio: 768/817;
}
figure.cloudbox [src*="box.png"] {
  width: 100%;
}
figure.cloudbox div {
  position: absolute;
  top: -16%;
  left: 0;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 3/2;
  clip-path: polygon(81% 0, 100% 0, 100% 64%, 50% 101%, 0 65%);
}
figure.cloudbox [src*="cloud1.png"] {
  position: absolute;
  top: 95%;
  left: -38.3%;
  width: 37.5%;
  animation: 22s cloud 0s linear infinite;
}
figure.cloudbox [src*="cloud2.png"] {
  position: absolute;
  top: 95%;
  left: -38.3%;
  width: 35.9%;
  animation: cloud 22s linear 7s infinite;
}
figure.cloudbox [src*="cloud3.png"] {
  position: absolute;
  top: 95%;
  left: -38.3%;
  width: 39.6%;
  transform: translateY(7%);
  animation: cloud 44s linear 22s infinite;
}

@keyframes cloud {
  0% {
    top: 95%;
    left: -38.3%;
  }
  100% {
    top: -9%;
    left: 100%;
  }
}
figure.about {
  position: relative;
  border-radius: 9999rem;
  background-color: #FFF;
  aspect-ratio: 1/1;
}
figure.about [src*="heart.png"] {
  position: absolute;
  top: 47%;
  left: 34.6%;
  width: 31.2%;
  animation: heart 5s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}
figure.about [src*="box.png"] {
  position: absolute;
  top: 42.8%;
  left: 21.3%;
  width: 57.8%;
}

@keyframes heart {
  0% {
    opacity: 0;
    transform: translateY(-120%) scale(1.02);
  }
  15% {
    opacity: 1;
    transform: translateY(-135%) scale(1);
  }
  60% {
    transform: translateY(0) scale(0.97); /* 箱の中に入る地点 */
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(3%) scale(0.95); /* 更に沈んで見えなくなる */
  }
}
figure.flow {
  position: relative;
  border-radius: 9999rem;
  background-color: #FFF;
  aspect-ratio: 1/1;
}
figure.flow [src*="arrow1.png"] {
  position: absolute;
  top: 28.7%;
  left: 17.5%;
  width: 23.1%;
  animation: arrow 3s ease-in-out 0s infinite;
}
figure.flow [src*="arrow2.png"] {
  position: absolute;
  top: 28.7%;
  left: 40.6%;
  width: 23.1%;
  animation: arrow 3s ease-in-out 0.25s infinite;
}
figure.flow [src*="arrow3.png"] {
  position: absolute;
  top: 28.7%;
  left: 63.7%;
  width: 23.1%;
  animation: arrow 3s ease-in-out 0.5s infinite;
}

@keyframes arrow {
  0% {
    opacity: 0;
    transform: translateX(-35%) scale(0.9);
  }
  12% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
  80% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
  92% {
    opacity: 0;
    transform: translateX(35%) scale(0.9);
  }
  100% {
    opacity: 0;
  }
}
figure.system {
  position: relative;
  border-radius: 9999rem;
  aspect-ratio: 1/1;
  perspective: 40rem;
}
figure.system div {
  width: 21.3%;
  aspect-ratio: 1/1;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
figure.system .left {
  position: absolute;
  top: 39.3%;
  left: 18%;
  background-color: #007BFF;
  transform-origin: 100% 50%;
  animation: left 6s ease-in-out 0s infinite backwards;
}
figure.system .top {
  position: absolute;
  top: 18%;
  left: 39.3%;
  background-color: #E6EEF5;
  transform-origin: 50% 100%;
  animation: top 6s ease-in-out 0.5s infinite backwards;
}
figure.system .bottom {
  position: absolute;
  top: 60.6%;
  left: 39.3%;
  background-color: #FFD600;
  transform-origin: 50% 0%;
  animation: bottom 6s ease-in-out 1s infinite backwards;
}
figure.system .right {
  position: absolute;
  top: 39.3%;
  left: 60.6%;
  background-color: #FF6F8F;
  transform-origin: 0% 50%;
  animation: right 6s ease-in-out 1.5s infinite backwards;
}

@keyframes left {
  0% {
    transform: rotateY(-90deg);
  }
  15% {
    transform: rotateY(0deg);
  }
  50% {
    transform: rotateY(0deg);
  }
  60% {
    transform: rotateY(-90deg);
  }
  100% {
    transform: rotateY(-90deg);
  }
}
@keyframes top {
  0% {
    transform: rotateX(90deg);
  }
  15% {
    transform: rotateX(0deg);
  }
  50% {
    transform: rotateX(0deg);
  }
  60% {
    transform: rotateX(90deg);
  }
  100% {
    transform: rotateX(90deg);
  }
}
@keyframes bottom {
  0% {
    transform: rotateX(-90deg);
  }
  15% {
    transform: rotateX(0deg);
  }
  50% {
    transform: rotateX(0deg);
  }
  60% {
    transform: rotateX(-90deg);
  }
  100% {
    transform: rotateX(-90deg);
  }
}
@keyframes right {
  0% {
    transform: rotateY(90deg);
  }
  15% {
    transform: rotateY(0deg);
  }
  50% {
    transform: rotateY(0deg);
  }
  60% {
    transform: rotateY(90deg);
  }
  100% {
    transform: rotateY(90deg);
  }
}
figure.company {
  position: relative;
  border-radius: 9999rem;
  background-color: #FFF;
  aspect-ratio: 1/1;
}
figure.company [src*="house.png"] {
  position: absolute;
  top: 14.3%;
  left: 17%;
  width: 58.3%;
}
figure.company [src*="loupe.png"] {
  position: absolute;
  top: 41%;
  left: 38.9%;
  width: 44%;
  animation: loupe 3.2s ease-in-out infinite;
}

@keyframes loupe {
  0% {
    transform: translate(0, 0) scale(1);
  }
  25% {
    transform: translate(-12%, -12%) scale(1.3);
  }
  65% {
    transform: translate(-12%, -12%) scale(1.3); /* 少し静止 */
  }
  100% {
    transform: translate(0, 0) scale(1);
  }
}
figure.member {
  position: relative;
  border-radius: 9999rem;
  background-color: #FFF;
  width: 200px;
  aspect-ratio: 1/1;
}
figure.member [src*="card1.png"] {
  position: absolute;
  top: 15%;
  left: 15.5%;
  width: 41.5%;
}
figure.member div {
  position: absolute;
  top: 34.3%;
  left: 43.2%;
  width: 41.5%;
  transform-style: preserve-3d;
  animation: card 7.6s linear infinite;
}
figure.member [src*="card2.png"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: rotateY(180deg);
  backface-visibility: hidden;
}
figure.member [src*="card3.png"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  backface-visibility: hidden;
}

@keyframes card {
  0% {
    transform: rotateY(0deg);
  }
  10.53% {
    transform: rotateY(180deg);
  }
  50.00% {
    transform: rotateY(180deg);
  }
  60.53% {
    transform: rotateY(360deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}
.animate01 {
  transform: translateY(4rem) scale(0.96);
  opacity: 0;
  transition: transform 0.6s ease-in-out, opacity 0.6s ease-in-out;
}
.animate01.arrived {
  transform: translateY(0) scale(1);
  opacity: 1;
}/*# sourceMappingURL=style.css.map */