<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">@charset "UTF-8";
/* ==========================================================================
   Accordion component
   ========================================================================== */
/* accordion */
.c-accordion {
  --duration: 200ms;
  --list-margin: 2.5rem;
  margin-top: 2.5rem;
  margin-left: 0;
  list-style: none;
}

.c-accordion.-reha {
  --list-margin: 20px;
  margin-top: 20px;
}
@media (min-width: 48em) {
  .c-accordion.-reha {
    margin-top: 30px;
  }
}

/* btn */
.c-accordion__btn {
  display: flex;
  -moz-column-gap: 1.4375rem;
       column-gap: 1.4375rem;
  align-items: flex-start;
  width: 100%;
  padding: 1.25rem;
  font-family: var(--font-db);
  font-size: 1.0625rem;
  font-feature-settings: "palt";
  line-height: var(--lh-snug);
  color: var(--theme-color);
  letter-spacing: 0.02em;
  background-color: var(--color-bg-container);
  border: 0.0625rem solid var(--color-black-alpha-100);
  border-radius: 0.3125rem;
  transition-timing-function: ease-out;
  transition-duration: var(--duration);
  transition-property: background-color;
}
@media (min-width: 48em) {
  .c-accordion__btn {
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-accordion__btn {
    font-size: 1.4375rem;
  }
}
.c-accordion__btn:hover {
  background-color: var(--color-primary-alpha-100);
}
.c-accordion__btn::before {
  font-family: var(--font-t-b);
  font-weight: 600;
  line-height: 1lh;
  content: "Q";
}
.c-accordion__btn::after {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  align-self: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  margin-left: auto;
  content: "";
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDguMjY5NTNWMTUuODI5NSIgc3Ryb2tlPSIjMDBBQTAwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNS43Mjk1IDEySDguMjY5NTMiIHN0cm9rZT0iIzAwQUEwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTIuMDAwOSAyMS4xMjA5QzE3LjAzNzcgMjEuMTIwOSAyMS4xMjA5IDE3LjAzNzcgMjEuMTIwOSAxMi4wMDA5QzIxLjEyMDkgNi45NjQwMiAxNy4wMzc3IDIuODgwODYgMTIuMDAwOSAyLjg4MDg2QzYuOTY0MDIgMi44ODA4NiAyLjg4MDg2IDYuOTY0MDIgMi44ODA4NiAxMi4wMDA5QzIuODgwODYgMTcuMDM3NyA2Ljk2NDAyIDIxLjEyMDkgMTIuMDAwOSAyMS4xMjA5WiIgc3Ryb2tlPSIjMDBBQTAwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+Cjwvc3ZnPgo=");
  transition-timing-function: ease-out;
  transition-duration: var(--duration);
  transition-property: transform;
  transform: rotate(90deg);
}
.c-accordion.-reha .c-accordion__btn::after {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIwNDBfMzMzMzUpIj4KPHBhdGggZD0iTTEyIDguOTE0MDZWMTYuNDc0MSIgc3Ryb2tlPSIjMDBBNEI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNS43Mjk1IDEyLjY0NDVIOC4yNjk1MyIgc3Ryb2tlPSIjMDBBNEI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS45OTk5IDIxLjc2MzRDMTcuMDM2NyAyMS43NjM0IDIxLjExOTkgMTcuNjgwMyAyMS4xMTk5IDEyLjY0MzRDMjEuMTE5OSA3LjYwNjYgMTcuMDM2NyAzLjUyMzQ0IDExLjk5OTkgMy41MjM0NEM2Ljk2MzA1IDMuNTIzNDQgMi44Nzk4OCA3LjYwNjYgMi44Nzk4OCAxMi42NDM0QzIuODc5ODggMTcuNjgwMyA2Ljk2MzA1IDIxLjc2MzQgMTEuOTk5OSAyMS43NjM0WiIgc3Ryb2tlPSIjMDBBNEI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMjA0MF8zMzMzNSI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC42NDQ1MzEpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==");
}
.c-accordion__btn.is-open {
  background-color: var(--color-white);
  border-top-color: transparent;
  border-right-color: transparent;
  border-left-color: transparent;
  border-radius: 0;
}
.c-accordion__btn.is-open::after {
  content: "";
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjcyOTUgMTJIOC4yNjk1MyIgc3Ryb2tlPSIjMDBBQTAwIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMi4wMDA5IDIxLjEyMDlDMTcuMDM3NyAyMS4xMjA5IDIxLjEyMDkgMTcuMDM3NyAyMS4xMjA5IDEyLjAwMDlDMjEuMTIwOSA2Ljk2NDAyIDE3LjAzNzcgMi44ODA4NiAxMi4wMDA5IDIuODgwODZDNi45NjQwMiAyLjg4MDg2IDIuODgwODYgNi45NjQwMiAyLjg4MDg2IDEyLjAwMDlDMi44ODA4NiAxNy4wMzc3IDYuOTY0MDIgMjEuMTIwOSAxMi4wMDA5IDIxLjEyMDlaIiBzdHJva2U9IiMwMEFBMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPC9zdmc+Cg==");
  transform: rotate(0deg);
}
.c-accordion.-reha .c-accordion__btn.is-open::after {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIwNDBfMjY2NTUpIj4KPHBhdGggZD0iTTE1LjcyOTUgMTIuMTQ0NUg4LjI2OTUzIiBzdHJva2U9IiMwMEE0QjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTExLjk5OTkgMjEuMjYzNEMxNy4wMzY3IDIxLjI2MzQgMjEuMTE5OSAxNy4xODAzIDIxLjExOTkgMTIuMTQzNEMyMS4xMTk5IDcuMTA2NiAxNy4wMzY3IDMuMDIzNDQgMTEuOTk5OSAzLjAyMzQ0QzYuOTYzMDUgMy4wMjM0NCAyLjg3OTg4IDcuMTA2NiAyLjg3OTg4IDEyLjE0MzRDMi44Nzk4OCAxNy4xODAzIDYuOTYzMDUgMjEuMjYzNCAxMS45OTk5IDIxLjI2MzRaIiBzdHJva2U9IiMwMEE0QjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMDQwXzI2NjU1Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjE0NDUzMSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K");
}
.c-accordion__btn &gt; * {
  margin-top: 0;
}
.c-accordion.-reha .c-accordion__btn {
  padding-block: 10px;
  font-family: var(--font-db);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: var(--lh-normal);
  background-color: transparent;
  border-top: 0;
  border-right: 0;
  border-left: 0;
}

/* panel */
.c-accordion__panel {
  display: flex;
  flex-direction: row;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
  max-height: 0;
  padding-inline: 1.25rem;
  padding-top: 1.625rem;
  overflow-y: hidden;
  transition-timing-function: ease-in-out;
  transition-duration: var(--duration);
  transition-property: max-height;
}
.c-accordion.-reha .c-accordion__panel {
  padding-top: 13px;
}
.c-accordion__panel::before {
  font-size: 1.0625rem;
  line-height: 1lh;
  content: "A";
}
@media (min-width: 48em) {
  .c-accordion__panel::before {
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-accordion__panel::before {
    font-size: 1.4375rem;
  }
}
.c-accordion__panel p:first-child {
  margin-top: 0;
}
.c-accordion.-reha .c-accordion__panel::before {
  font-family: var(--font-t-b);
  font-size: 0.9375rem;
  font-weight: 600;
}

/* ==========================================================================
   Breadcrumb component
   ========================================================================== */
.c-breadcrumb {
  font-feature-settings: "palt";
  margin: 0 auto;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  color: var(--theme-color);
  font-weight: 600;
  font-size: 0.75rem;
  font-family: var(--font-db);
  padding-inline: 0.625rem;
}
@media (min-width: 48em) {
  .c-breadcrumb {
    padding-inline: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-breadcrumb {
    padding-inline: 2.5rem;
  }
}
.c-breadcrumb ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 0;
  margin-left: 0;
  row-gap: 0.375rem;
  list-style: none;
}
.c-breadcrumb li {
  padding-inline: 0.5rem;
}
@media (min-width: 33.75em) {
  .c-breadcrumb li {
    padding-inline: 0.9375rem;
  }
}
.c-breadcrumb li:not(:last-child) {
  position: relative;
  margin-top: 0;
}
.c-breadcrumb li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: 0;
  width: 0.0625rem;
  height: 0.875rem;
  font-weight: 400;
  font-family: var(--font-r);
  background-color: rgba(85, 85, 85, 0.2);
  transform: translateY(-50%) rotate(45deg);
  content: "";
}
@media (min-width: 48em) {
  .c-breadcrumb li:not(:last-child)::after {
    height: 1.0625rem;
  }
}
.c-breadcrumb a {
  text-decoration: none;
}
.c-breadcrumb p {
  margin-top: 0;
}

/* ==========================================================================
   Button component
   ========================================================================== */
/* basic */
.c-btn {
  display: flex;
  flex-direction: row;
  gap: 0.3125rem;
  align-items: center;
  justify-content: center;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 1.5rem;
  padding: 0.375rem 0.625rem;
  font-weight: 400;
  font-family: var(--font-r);
  line-height: 1.25em;
  letter-spacing: 0.02em;
  text-decoration: none;
  background-color: #fff;
  border: 0.0625rem solid currentColor;
  border-radius: 0.3125rem;
  transition: color 400ms cubic-bezier(0.33, 1, 0.68, 1), background-color 400ms cubic-bezier(0.33, 1, 0.68, 1), border-color 400ms cubic-bezier(0.33, 1, 0.68, 1);
  font-feature-settings: "palt";
  /* padding */
  /* font-weight */
}
@media (min-width: 48em) {
  .c-btn {
    padding: 0.375rem 0.8125rem;
    line-height: 1.375em;
  }
}
@media (min-width: 56.25em) {
  .c-btn {
    line-height: 1.5em;
  }
}
@media (min-width: 80em) {
  .c-btn {
    padding: 0.375rem 0.9375rem;
  }
}
.c-btn i {
  margin-top: -0.125rem;
}
.c-btn p {
  align-self: center;
  margin-top: 0;
}
.c-btn p.--en {
  display: var(--btn-text-en-display);
  font-weight: 400;
  font-size: 1.0625rem;
  font-family: var(--font-en);
}
.c-btn p.--ja {
  font-size: 0.875rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-btn p.--ja {
    font-size: 1.125rem;
  }
}
@media (min-width: 80em) {
  .c-btn p.--ja {
    font-size: 1.375rem;
  }
}
.c-btn.--fill {
  color: var(--color-white);
  background-color: var(--color-primary-mid);
  border-color: var(--color-primary-mid);
}
.c-btn.--fill:hover {
  color: var(--color-white);
  background-color: #070;
}
.c-btn.--primary {
  color: var(--theme-color, var(--color-primary-mid));
}
.c-btn.--secondary {
  color: var(--color-neutral-mid);
  background-color: var(--color-bg-container);
  border-color: var(--color-neutral-mid);
}
.c-btn.--transparent {
  background-color: transparent;
}
.c-btn.--w100p {
  width: 100%;
}
.c-btn.--radius-lg {
  border-radius: 0.375rem;
}
@media (min-width: 80em) {
  .c-btn.--radius-lg {
    border-radius: 0.625rem;
  }
}
.c-btn.--row {
  display: inline-flex;
  margin-top: 0;
  margin-right: 1rem;
  margin-bottom: 0.75rem;
}
.c-btn.--start {
  justify-content: flex-start;
}
.c-btn.--end {
  justify-content: flex-end;
}
.c-btn.--right {
  margin-left: auto;
}
.c-btn.--xs {
  padding: 0.1875rem 0.25rem;
}
@media (min-width: 48em) {
  .c-btn.--xs {
    padding: 0.1875rem 0.3125rem;
  }
}
@media (min-width: 80em) {
  .c-btn.--xs {
    padding: 0.1875rem 0.375rem;
  }
}
.c-btn.--sm {
  padding: 0.3125rem 0.375rem;
}
@media (min-width: 48em) {
  .c-btn.--sm {
    padding: 0.3125rem 0.4375rem;
  }
}
@media (min-width: 80em) {
  .c-btn.--sm {
    padding: 0.3125rem 0.5rem;
  }
}
.c-btn.--lg {
  padding: 0.625rem 1rem;
}
@media (min-width: 48em) {
  .c-btn.--lg {
    padding: 0.625rem 1.125rem;
  }
}
@media (min-width: 80em) {
  .c-btn.--lg {
    padding: 0.625rem 1.25rem;
  }
}
.c-btn.--xl {
  padding: 0.9375rem 1.1875rem;
}
@media (min-width: 48em) {
  .c-btn.--xl {
    padding: 0.9375rem 1.375rem;
  }
}
@media (min-width: 80em) {
  .c-btn.--xl {
    padding: 0.9375rem 1.5625rem;
  }
}
.c-btn.--2xl {
  padding: 1.25rem 1.375rem;
  font-size: 1.0625rem;
}
@media (min-width: 48em) {
  .c-btn.--2xl {
    padding: 1.25rem 1.625rem;
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-btn.--2xl {
    padding: 1.25rem 1.875rem;
    font-size: 1.4375rem;
  }
}
.c-btn.--w500 {
  margin-top: 1.875rem;
  font-weight: 500;
  font-family: var(--font-m);
}
.c-btn.--w500 i {
  stroke-width: 2;
}
.c-btn.--w600 {
  font-weight: 600;
  font-family: var(--font-db);
  border-width: 0.125rem;
}
.c-btn.--w600 i {
  stroke-width: 2.5;
}
.c-btn.--w700 {
  font-weight: 700;
  font-family: var(--font-b);
  border-width: 0.125rem;
}
.c-btn.--w700 i {
  stroke-width: 3;
}
.c-btn.--text {
  background-color: transparent;
  border: 0;
  padding-inline: 0;
}
.c-btn.--text:hover {
  background-color: transparent;
}
.c-btn.--text:nth-of-type(n+2) {
  margin-top: 0;
}
.c-btn.--mt-xs {
  margin-top: 0.75rem;
}
.c-btn.--mt-sm {
  margin-top: 1rem;
}
.c-btn:hover {
  color: var(--theme-color, var(--color-primary-mid));
  background-color: var(--theme-color-alpha, var(--color-primary-alpha-100));
  border-color: var(--theme-color, var(--color-primary-mid));
}
.c-btn[disabled] {
  color: var(--color-white);
  background-color: var(--color-txt-weak);
  border: 0;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.6;
  pointer-events: none;
}

/* ==========================================================================
Card component
========================================================================== */
/* base */
.c-card,
.p-cards &gt; li {
  display: flex;
  flex-direction: column;
  gap: var(--card-gap, 1rem);
  text-decoration: none;
}
@media (min-width: 48em) {
  .c-card,
.p-cards &gt; li {
    gap: var(--card-gap, 1.25rem);
  }
}
@media (min-width: 80em) {
  .c-card,
.p-cards &gt; li {
    gap: var(--card-gap, 1.375rem);
  }
}
.c-card::before,
.p-cards &gt; li::before {
  display: none;
}

.c-card.-narrow {
  row-gap: 10px;
}

.c-card.-sm {
  max-width: 280px;
}

/* media */
.c-card__media {
  position: relative;
  overflow: hidden;
  border-radius: 0.3125rem;
}
.c-card__media.--movie {
  display: block;
  overflow: hidden;
  position: relative;
  max-height: none;
}
.c-card__media.--movie:before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
.c-card__media.--movie iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

/* image */
.c-card__image {
  border-radius: 0.3125rem;
}

/* image hover */
a.c-card .c-card__image,
.c-card a .c-card__image {
  transition-timing-function: var(--ease-in);
  transition-duration: 300ms;
  transition-property: transform;
}

a.c-card:hover .c-card__image,
.c-card:hover a .c-card__image {
  transition-timing-function: var(--ease-out);
  transform: scale(1.05);
}

/* body */
.c-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--card-body-gap, 0.375rem);
}
@media (min-width: 48em) {
  .c-card__body {
    gap: var(--card-body-gap, 0.5rem);
  }
}
@media (min-width: 80em) {
  .c-card__body {
    gap: var(--card-body-gap, 0.625rem);
  }
}

/* title */
.c-card__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: 0;
  margin-top: 0;
  margin-left: 0;
  font-family: var(--font-db);
  font-size: var(--card-title-fs, 0.875rem);
  font-feature-settings: "palt";
  line-height: var(--lh-normal);
}
@media (min-width: 48em) {
  .c-card__title {
    font-size: var(--card-title-fs, 0.9375rem);
  }
}
@media (min-width: 80em) {
  .c-card__title {
    font-size: var(--card-title-fs, 1rem);
  }
}
.c-card__title p {
  margin-top: 0;
}
.c-card__title::before {
  display: none;
}

/* p */
.c-card__text {
  margin-top: 0;
  font-size: var(--card-text-fs, 0.8125rem);
  line-height: var(--lh-normal);
  letter-spacing: var(--card-text-ls, var(--ls-narrow));
}
@media (min-width: 48em) {
  .c-card__text {
    font-size: var(--card-text-fs, 0.875rem);
  }
}
@media (min-width: 80em) {
  .c-card__text {
    font-size: var(--card-text-fs, 0.9375rem);
    line-height: var(--lh-extra-relaxed);
  }
}

.c-card__caption {
  margin-top: 0;
  font-size: 0.75rem;
  line-height: 1.125rem;
  letter-spacing: 0.02em;
}

/* ==========================================================================
Contact component
========================================================================== */
.c-contact {
  width: 100%;
  margin-top: 4.0625rem;
  padding: 1.875rem 1.875rem 2.5rem;
  text-align: center;
  background-color: #fff;
  border: 0.0625rem solid rgba(85, 85, 85, 0.3);
  border-radius: 0.3125rem;
}
@media (min-width: 48em) {
  .c-contact {
    margin-top: 5rem;
  }
}
.c-contact .title {
  display: block;
  margin-top: 0;
  padding-left: 0;
  color: var(--color-gray);
  font-weight: 600;
  font-size: 0.9375rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-contact .title {
    font-size: 1.0625rem;
  }
}
@media (min-width: 80em) {
  .c-contact .title {
    font-size: 1.125rem;
  }
}
.c-contact .title::before, .c-contact .title::after {
  display: none;
}
.c-contact .number {
  margin-top: 0;
  font-size: 0.75rem;
}
@media (min-width: 80em) {
  .c-contact .number {
    font-size: 0.8125rem;
  }
}
.c-contact .text {
  margin-top: 1rem;
}
@media (min-width: 48em) {
  .c-contact .text {
    margin-top: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-contact .text {
    margin-top: 1.5rem;
  }
}
.c-contact .tel {
  margin-top: 0.5rem;
  font-weight: 700;
  font-size: 1.75rem;
  font-family: var(--font-en);
  letter-spacing: var(--ls-normal);
}
@media (min-width: 48em) {
  .c-contact .tel {
    font-size: 2rem;
  }
}
@media (min-width: 80em) {
  .c-contact .tel {
    font-size: 2.1875rem;
  }
}
.c-contact .tel a {
  text-decoration: none;
}
.c-contact .time {
  margin-top: -0.375rem;
  font-size: 0.75rem;
  letter-spacing: var(--ls-normal);
}
@media (min-width: 80em) {
  .c-contact .time {
    font-size: 0.8125rem;
  }
}
.c-contact .address {
  margin-top: 0;
  font-size: 0.75rem;
  letter-spacing: var(--ls-normal);
}
@media (min-width: 80em) {
  .c-contact .address {
    font-size: 0.8125rem;
  }
}
.c-contact .fax {
  margin-top: 0.125rem;
  font-size: 0.75rem;
}
@media (min-width: 80em) {
  .c-contact .fax {
    font-size: 0.8125rem;
    letter-spacing: var(--ls-normal);
  }
}
.c-contact .mail {
  margin-top: 1.375rem;
}

/* ==========================================================================
Copy component
========================================================================== */
.copy {
  font-family: var(--font-t-b);
  font-size: 1.375rem;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
@media (min-width: 33.75em) {
  .copy {
    font-size: 1.5rem;
  }
}
@media (min-width: 48em) {
  .copy {
    font-size: 1.75rem;
  }
}
@media (min-width: 80em) {
  .copy {
    font-size: 2rem;
  }
}
@media (min-width: 90em) {
  .copy {
    font-size: 2.25rem;
  }
}

/* ==========================================================================
Cursor component
========================================================================== */
.c-cursor {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  visibility: hidden;
  cursor: pointer;
  opacity: 0;
  transition: opacity 200ms var(--ease-out-quint), visibility 200ms var(--ease-out-quint);
  pointer-events: none;
}
.c-cursor::before, .c-cursor::after {
  position: absolute;
  width: 1.5rem;
  height: 0.0625rem;
  background-color: #000;
  transform-origin: center center;
  content: "";
}
.c-cursor::before {
  transform: rotate(45deg);
}
.c-cursor::after {
  transform: rotate(-45deg);
}
.c-cursor.is-show {
  visibility: visible;
  opacity: 1;
  transition: transform 500ms var(--ease-out-circular), opacity 200ms var(--ease-out-circular);
}

/* ==========================================================================
Description card component
========================================================================== */
.c-desc-card {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1.25rem;
  gap: 1.25rem;
  margin-top: 2.5rem;
  border-top: 0;
  border-bottom: 0;
}
@media (min-width: 56.25em) {
  .c-desc-card {
    grid-template-columns: 1fr 1fr;
  }
}
.c-desc-card &gt; div {
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
  padding: 1.25rem;
  background-color: var(--color-bg-container);
  border-radius: 0.625rem;
}
.c-desc-card &gt; div:nth-of-type(n+2) {
  border-top: 0;
}
.c-desc-card dt {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  font-size: 0.9375rem;
  font-family: var(--font-db);
}
@media (min-width: 80em) {
  .c-desc-card dt {
    font-size: 1.0625rem;
  }
}
@media (min-width: 48em) {
  .c-desc-card dt {
    font-size: 1rem;
  }
}
.c-desc-card dt::after {
  position: relative;
  width: 100%;
  height: 0.0625rem;
  background-color: var(--color-black-alpha-100);
  content: "";
}
.c-desc-card dd {
  font-size: 0.75rem;
}
@media (min-width: 48em) {
  .c-desc-card dd {
    font-size: 0.8125rem;
  }
}
.c-desc-card ul {
  --list-margin: 0.25rem;
  margin-top: 0.5rem;
}
.c-desc-card li {
  font-size: 0.8125rem;
  letter-spacing: var(--ls-narrow);
}
@media (min-width: 48em) {
  .c-desc-card li {
    font-size: 0.875rem;
  }
}
@media (min-width: 80em) {
  .c-desc-card li {
    font-size: 0.9375rem;
  }
}

/* ==========================================================================
   doctor card component
   ========================================================================== */
.c-doctor {
  display: grid;
  grid-template-areas: "name" "description";
  grid-template-rows: repeat(2, auto);
  grid-template-columns: repeat(1, 1fr);
  width: 100%;
  grid-row-gap: 2rem;
  row-gap: 2rem;
}
@media (min-width: 80em) {
  .c-doctor {
    grid-template-areas: "name description";
    grid-template-rows: repeat(1, auto);
    grid-template-columns: 1fr 4fr;
  }
}
.c-doctor.--media {
  grid-template-areas: "media name" "media description";
  grid-template-rows: repeat(2, auto);
  grid-template-columns: 1fr 2fr;
  -moz-column-gap: 1.875rem;
       column-gap: 1.875rem;
}
@media (min-width: 80em) {
  .c-doctor.--media {
    grid-template-areas: "media name description";
    grid-template-rows: repeat(1, auto);
    grid-template-columns: 120fr 166fr 712fr;
  }
}

.c-doctor__name {
  padding-left: 0;
  margin-top: 0;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  grid-area: name;
  margin-top: 0;
  padding-left: 0;
  font-size: 1rem;
}
.c-doctor__name::before {
  display: none;
}
@media (min-width: 48em) {
  .c-doctor__name {
    font-size: 1.125rem;
  }
}
@media (min-width: 80em) {
  .c-doctor__name {
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-doctor.--media .c-doctor__name {
    margin-left: 1.25rem;
  }
}
.c-doctor__name ruby {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.c-doctor__name rt {
  font-size: 0.6875rem;
}

.c-doctor__post {
  font-size: 0.8125rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-doctor__post {
    font-size: 0.75rem;
  }
}

.c-doctor__media {
  display: block;
  overflow: hidden;
  position: relative;
  grid-area: media;
  width: 100%;
  height: -moz-max-content;
  height: max-content;
}
.c-doctor__media:before {
  content: "";
  display: block;
  padding-top: 133.3333333333%;
}

.c-doctor__image {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.c-doctor__career {
  display: grid;
  grid-area: description;
  grid-template-rows: max-content;
  grid-template-columns: 1fr;
  grid-gap: 2rem;
  gap: 2rem;
  margin-top: 0;
  border-top: 0;
  border-bottom: 0;
}
@media (min-width: 48em) {
  .c-doctor__career {
    gap: 2.1875rem;
  }
}
@media (min-width: 80em) {
  .c-doctor__career {
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-left: 3.75rem;
  }
}
.c-doctor__career &gt; div {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
  -moz-column-gap: 0;
       column-gap: 0;
  border-top: 0;
}
.c-doctor__career &gt; div &gt; dt,
.c-doctor__career &gt; div dd {
  font-size: 0.84375rem;
}
@media (min-width: 48em) {
  .c-doctor__career &gt; div &gt; dt,
.c-doctor__career &gt; div dd {
    font-size: 0.875rem;
  }
}
@media (min-width: 80em) {
  .c-doctor__career &gt; div &gt; dt,
.c-doctor__career &gt; div dd {
    font-size: 0.9375rem;
  }
}
.c-doctor__career &gt; div &gt; dt {
  display: flex;
  flex-direction: column;
}
.c-doctor__career &gt; div &gt; dt::after {
  width: 2.5rem;
  height: 0.0625rem;
  margin-top: 0.5rem;
  background-color: var(--color-black-alpha-200);
  content: "";
}
.c-doctor__career &gt; div &gt; dd {
  margin-top: 0.625rem;
}

/* ==========================================================================
Ellipse list component
========================================================================== */
ol.ellipse-list {
  margin-top: 0;
  margin-left: 0;
  list-style: none;
}
ol.ellipse-list &gt; li &gt; *:first-child {
  position: relative;
  padding-left: 2.25em;
}
.p-amano-reha ol.ellipse-list &gt; li &gt; *:first-child {
  font-weight: 700;
  font-family: var(--font-t-b);
}
ol.ellipse-list &gt; li &gt; *:first-child::before {
  position: absolute;
  top: -0.2em;
  left: 0;
  width: 1.375em;
  height: 2.25em;
  background-color: var(--theme-color);
  border-radius: 0.6875em/1.125em;
  transform: rotate(45deg);
  content: "";
}
.p-amano-reha ol.ellipse-list &gt; li &gt; *:first-child::before {
  top: -0.1em;
}
ol.ellipse-list &gt; li &gt; *:first-child::after {
  position: absolute;
  top: 0.32em;
  left: 0.5em;
  width: 0.875em;
  height: 1.625em;
  color: var(--color-white);
  font-weight: 700;
  font-size: 0.82352em;
  font-family: var(--font-en);
  content: counter(list-item);
}
.p-amano-reha ol.ellipse-list &gt; li &gt; *:first-child::after {
  top: 0.4em;
}

/* ==========================================================================
Flow component
========================================================================== */
.c-flow {
  position: relative;
  display: grid;
  grid-template-columns: var(--flows-gtc, 1fr);
  padding: 1.875rem;
  background-color: var(--color-bg-container);
  border-radius: 0.625rem;
  grid-row-gap: 1.25rem;
  row-gap: 1.25rem;
  counter-increment: count;
}
@media (min-width: 48em) {
  .c-flow {
    row-gap: 1.5625rem;
    padding: 2.1875rem;
  }
}
@media (min-width: 80em) {
  .c-flow {
    grid-template-columns: var(--flows-gtc, 230fr 660fr);
    row-gap: 1.875rem;
    padding: 2.5rem;
    -moz-column-gap: 1.875rem;
         column-gap: 1.875rem;
  }
}
ul.p-flows .c-flow {
  padding: 1.25rem;
}
.p-flows.narrow .c-flow {
  padding: 0.9375rem;
  row-gap: 0.625rem;
}
@media (min-width: 48em) {
  .p-flows.narrow .c-flow {
    row-gap: 0.9375rem;
    grid-template-columns: 230fr 660fr;
    padding: 1.09375rem;
    -moz-column-gap: 1.875rem;
         column-gap: 1.875rem;
  }
}
@media (min-width: 80em) {
  .p-flows.narrow .c-flow {
    row-gap: 1.25rem;
    padding: 1.25rem;
  }
}
.c-flow::before {
  position: absolute;
  top: 0.5625rem;
  left: 1.125rem;
  font-weight: 700;
  font-size: 0.8125rem;
  font-family: var(--font-en);
  opacity: 0.2;
  content: counter(count, decimal-leading-zero);
}
@media (min-width: 80em) {
  .c-flow::before {
    font-size: 0.875rem;
  }
}
.c-flow &gt; *:first-child {
  position: relative;
  gap: 1.875rem;
  margin-top: 0;
  padding-bottom: 0.625rem;
  padding-left: 0;
  font-weight: 600;
  font-size: 0.9375rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-flow &gt; *:first-child {
    font-size: 1rem;
  }
}
@media (min-width: 80em) {
  .c-flow &gt; *:first-child {
    padding-right: 1.875rem;
    padding-bottom: 0;
    font-size: 1.0625rem;
  }
}
@media (min-width: 48em) {
  .p-flows.narrow .c-flow &gt; *:first-child {
    padding-right: 1.875rem;
    padding-bottom: 0;
  }
}
.c-flow &gt; *:first-child::before {
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.0625rem;
  background-color: var(--color-black-alpha-100);
  transform: rotate(0);
  content: "";
}
@media (min-width: 80em) {
  .c-flow &gt; *:first-child::before {
    top: 0;
    right: 0;
    left: auto;
    width: 0.0625rem;
    height: 100%;
  }
}
@media (min-width: 48em) {
  .p-flows.narrow .c-flow &gt; *:first-child::before {
    top: 0;
    right: 0;
    left: auto;
    width: 0.0625rem;
    height: 100%;
  }
}
.c-flow &gt; *:last-child h2,
.c-flow &gt; *:last-child h3,
.c-flow &gt; *:last-child h4 {
  margin-top: 0;
}
.c-flow p {
  align-self: center;
  margin-top: 0;
}

ul.p-flows &gt; .c-flow::before {
  display: none;
}

/* ==========================================================================
Flow component
========================================================================== */
.c-flow2 {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  padding: 0.625rem 1.25rem;
  grid-column-gap: 0.9375rem;
  -moz-column-gap: 0.9375rem;
       column-gap: 0.9375rem;
  background-color: var(--color-bg-container);
  border-radius: 0.625rem;
  counter-increment: count;
}
@media (min-width: 48em) {
  .c-flow2 {
    padding: 0.9375rem 1.5625rem;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-flow2 {
    width: calc(100% + 20px);
    padding: 1.25rem 1.875rem;
    -moz-column-gap: 1.5625rem;
         column-gap: 1.5625rem;
  }
}
.c-flow2 p {
  margin-top: 0;
}
.c-flow2::before {
  font-weight: 700;
  font-size: 1.125rem;
  font-family: var(--font-en);
  content: counter(count) ".";
}
@media (min-width: 80em) {
  .c-flow2::before {
    font-size: 1.25rem;
  }
}

/* ==========================================================================
Footnote component
========================================================================== */
ul.footnote {
  margin-left: 1.2em;
}

ol.footnote {
  margin-left: 2.4em;
}

ol.footnote,
ul.footnote {
  font-size: 0.75rem;
  font-feature-settings: "palt";
  list-style: none;
  opacity: 0.75;
}
ol.footnote li,
ul.footnote li {
  position: relative;
}
ol.footnote li::before,
ul.footnote li::before {
  position: absolute;
  left: 0;
}
ol.footnote li + li,
ul.footnote li + li {
  margin-top: 0;
}
ol.footnote.--lg,
ul.footnote.--lg {
  font-size: 0.8125rem;
}

ul.footnote.no-disc {
  margin-left: 0;
}

ul.footnote li::before {
  display: inline-block;
  width: 1.2em;
  margin-left: -1.2em;
  content: "※";
}

ol.footnote li::before {
  display: inline-block;
  width: 2.4em;
  margin-left: -2.4em;
  content: "※" counter(list-item) ".";
}

ul.footnote.no-disc li::before {
  display: none;
}

/* ==========================================================================
   Globan navigation accordion component
   ========================================================================== */
/* mobile layout */
@media (max-width: 79.99em) {
  /* accordion layout */
  .c-gnav-accordion {
    position: relative;
    border-top: 0.0625rem solid var(--color-black-alpha-100);
  }

  .c-gnav-accordion:last-of-type {
    border-bottom: 0.0625rem solid var(--color-black-alpha-100);
  }

  .c-gnav-accordion &gt; button {
    position: absolute;
    top: 2.875rem;
    right: 0;
    width: 4.625rem;
    height: 100%;
    transform: translateY(-50%);
  }

  .c-gnav-accordion &gt; button:hover circle {
    animation: 200ms var(--ease-out-cubic) 0s circle-move-right both;
  }

  .c-gnav-accordion &gt; button [data-icon=icon_chevron] {
    color: var(--color-neutral-lightest);
    transition: transform 200ms var(--ease-out-cubic), color 200ms var(--ease-out-cubic), fill 200ms var(--ease-out-cubic);
  }

  .c-gnav-accordion &gt; button [data-icon=icon_chevron] circle {
    fill: var(--color-primary-mid);
  }

  .c-gnav-accordion &gt; button.is-open [data-icon=icon_chevron] {
    color: var(--color-primary-mid);
    transform: rotate(-180deg);
  }

  .c-gnav-accordion circle {
    animation: 200ms var(--ease-out-cubic) 0s circle-move-left both;
  }

  /* panel */
  .c-gnav-accordion__panel {
    max-height: 0;
    margin-left: 1.875rem;
    overflow-y: hidden;
    border-top: 1px solid rgba(0, 0, 0, 0);
    transition-timing-function: var(--ease-in-out-cubic);
    transition-duration: 500ms;
    transition-property: max-height;
  }

  .c-gnav-accordion__panel.is-open {
    border-color: rgba(0, 0, 0, 0.1);
  }

  /* panel head */
  .c-gnav-accordion__head {
    display: none;
  }
}
/* desktop layout */
@media (min-width: 80em) {
  /* accordion */
  .c-gnav-accordion {
    position: relative;
  }

  /* panel */
  .c-gnav-accordion__panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 12.5rem;
    display: flex;
    flex-direction: row-reverse;
    background-color: white;
    visibility: hidden;
    opacity: 0;
    transition: opacity 200ms var(--ease-in-cubic), visibility 200ms var(--ease-in-cubic);
    pointer-events: none;
  }

  .c-gnav-accordion__panel.is-open {
    visibility: visible;
    cursor: pointer;
    opacity: 1;
    transition: opacity 200ms var(--ease-out-cubic), visibility 200ms var(--ease-out-cubic);
    pointer-events: auto;
  }

  /* head */
  .c-gnav-accordion__head {
    position: relative;
    flex-basis: 30%;
    background-color: #ddd;
  }

  .c-gnav-accordion__head .c-gnav-accordion__image {
    position: absolute;
    height: 100%;
    font-family: "object-fit:cover";
    -o-object-fit: cover;
       object-fit: cover;
    visibility: hidden;
    opacity: 0;
    transition: opacity 200ms var(--ease-out-quint), visibility 200ms var(--ease-out-quint);
  }

  .c-gnav-accordion__head .c-gnav-accordion__image#image_handicap-person {
    -o-object-position: 53% center;
       object-position: 53% center;
  }

  .c-gnav-accordion__head .c-gnav-accordion__image.is-hover {
    visibility: visible;
    opacity: 1;
    transition: opacity 200ms var(--ease-out-cubic), visibility 200ms var(--ease-out-cubic);
  }

  /* body */
  .c-gnav-accordion__body {
    display: flex;
    flex-basis: 70%;
    flex-direction: row;
    flex-grow: 1;
    overflow-y: auto;
  }

  /* icon layout */
  .c-gnav-accordion__icon {
    margin-left: auto;
  }
}
/* ==========================================================================
   Globa navigation layout
   ========================================================================== */
/* mobile layout */
@media (max-width: 79.99em) {
  /* base */
  .c-gnav ul {
    margin-top: 0;
    margin-left: 0;
    list-style: none;
  }

  .c-gnav ul li + li {
    margin-top: 0;
  }

  .c-gnav a {
    text-decoration: none;
  }

  .c-gnav p {
    margin-top: 0;
    line-height: 1.67;
    letter-spacing: 0;
  }

  /* list layout */
  .c-gnav__list {
    margin-top: 1.875rem;
  }

  /* item */
  .c-gnav__item {
    margin-top: 0;
  }

  .c-gnav__item:not(.c-gnav-accordion) {
    padding: 0 1.875rem;
  }

  /* toggle button */
  .c-gnav__list.--main &gt; li.--depth-1 &gt; .c-toggle-btn {
    position: relative;
    width: 100%;
    padding: 1.875rem 1.75rem;
    font-size: 0.9375rem;
  }

  .c-gnav__list.--main &gt; li.--depth-1 &gt; .c-toggle-btn .c-toggle-btn__icon {
    display: none;
  }

  /* sns button */
  .c-gnav__list.--sns .c-sns-btn {
    flex-direction: row-reverse;
    justify-content: flex-end;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: -0.25rem;
  }

  /* business list depth-2 */
  .c-gnav__list.--business.--depth-2 {
    padding-bottom: 1.25rem;
  }

  .c-gnav__list.--business.--depth-2 .c-toggle-btn {
    --toggle-btn-width: 0.9375rem;
    font-size: 0.9375rem;
  }

  .c-gnav__list.--business.--depth-2 .c-toggle-btn__icon::before {
    background-color: var(--theme-color);
  }

  .c-gnav__list.--business.--depth-2 .c-gnav__list.--depth-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-column-gap: 3rem;
    -moz-column-gap: 3rem;
         column-gap: 3rem;
    margin-top: 1.25rem;
  }

  /* company &amp; recruit */

  /* company list */

  /* sub list */

  /* sns list */
}
@media (max-width: 79.99em) and (min-width: 33.75em) {
  .c-gnav__list.--business.--depth-2 .c-gnav__list.--depth-3 {
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--business.--depth-2 .c-gnav__list.--depth-3 &gt; li {
    padding-block: 0.5rem;
    border-top: 0.0625rem solid rgba(0, 0, 0, 0.1);
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--business.--depth-2 &gt; li {
    padding: 1.25rem 1.875rem 0 1.25rem;
    border-top: 0.0625rem solid var(--color-black-alpha-100);
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--business.--depth-2 &gt; li + li {
    margin-top: 1.5rem;
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--depth-2.--company,
.c-gnav__list.--depth-2.--recruit {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-column-gap: 3rem;
    -moz-column-gap: 3rem;
         column-gap: 3rem;
    padding-right: 1.875rem;
    padding-left: 1.25rem;
  }
}
@media (max-width: 79.99em) and (min-width: 33.75em) {
  .c-gnav__list.--depth-2.--company,
.c-gnav__list.--depth-2.--recruit {
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--depth-2.--company &gt; li,
.c-gnav__list.--depth-2.--recruit &gt; li {
    padding-block: 0.5rem;
    border-top: 0.0625rem solid rgba(0, 0, 0, 0.1);
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--depth-2.--company li:last-of-type,
.c-gnav__list.--depth-2.--recruit li:last-of-type {
    margin-bottom: 1.25rem;
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--depth-2.--company .c-toggle-btn,
.c-gnav__list.--depth-2.--recruit .c-toggle-btn {
    font-size: 0.9375rem;
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--depth-2.--company .c-gnav__media {
    display: none;
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--sub {
    margin-top: 1.875rem;
  }
}
@media (max-width: 79.99em) {
  .c-gnav__list.--sns {
    display: grid;
    grid-row-gap: 4px;
    row-gap: 4px;
    margin-top: 1.875rem;
  }
}
/* desktop layout */
@media (min-width: 80em) {
  /* base */
  .c-gnav &gt; ul:nth-of-type(n + 2) {
    padding-top: 2.5rem;
  }

  .c-gnav &gt; ul:last-of-type {
    display: grid;
    grid-row-gap: 4px;
    row-gap: 4px;
    padding-bottom: 2.5rem;
  }

  .c-gnav &gt; ul &gt; li &gt; button,
.c-gnav &gt; ul &gt; li &gt; a {
    padding-inline: 2.5rem;
  }

  .c-gnav ul {
    margin-top: 0;
    margin-left: 0;
    list-style: none;
  }

  .c-gnav ul li + li {
    margin-top: 0;
  }

  .c-gnav a {
    text-decoration: none;
  }

  .c-gnav p {
    margin-top: 0;
    line-height: 1.67;
    letter-spacing: 0;
  }

  /* main */
  .c-gnav__list.--main .c-gnav__item.--depth-1 &gt; .c-toggle-btn {
    position: relative;
    font-size: 0.9375rem;
    /* triangle */
  }

  .c-gnav__list.--main .c-gnav__item.--depth-1 &gt; .c-toggle-btn::after {
    height: 0;
    width: 0;
    border-bottom: 10px solid transparent;
    border-left-width: 0;
    border-right: 10px solid #fff;
    border-top: 10px solid transparent;
    position: absolute;
    top: 50%;
    right: -2.5rem;
    visibility: hidden;
    content: "";
    opacity: 0;
    transition: opacity 300ms var(--ease-in-cubic), visibility 300ms var(--ease-in-cubic);
    transform: translateY(-50%);
  }

  .c-gnav__list.--main .c-gnav__item.--depth-1 &gt; .c-toggle-btn.is-open {
    color: #0a0;
    /* triangle */
  }

  .c-gnav__list.--main .c-gnav__item.--depth-1 &gt; .c-toggle-btn.is-open .c-toggle-btn__icon::before {
    transform: translateX(100%);
  }

  .c-gnav__list.--main .c-gnav__item.--depth-1 &gt; .c-toggle-btn.is-open::after {
    visibility: visible;
    opacity: 1;
    transition: opacity 300ms var(--ease-in-cubic), visibility 300ms var(--ease-in-cubic);
  }

  .c-gnav__list.--main [data-icon=icon_chevron] {
    display: none;
  }

  /* ul depth-2 */
  .c-gnav__list.--depth-2 {
    flex-grow: 1;
    align-self: flex-end;
    padding-inline: clamp(24px, 20px + 1.8vmin, 40px);
    padding-bottom: 1.875rem;
  }

  /* business */

  /* company */

  /* media */

  /* recruit */

  /* card */

  /* interaction */
}
@media (min-width: 80em) and (min-width: 90em) {
  .c-gnav__list.--depth-2 {
    padding-bottom: 1.875rem;
  }
}
@media (min-width: 80em) and (min-width: 100em) {
  .c-gnav__list.--depth-2 {
    padding-bottom: 2.5rem;
  }
}
@media (min-width: 80em) and (width &gt;= 900px) and (height &lt;= 800px) {
  .c-gnav__list.--depth-2 {
    padding-bottom: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business {
    --column-gap: 3.25rem;
    display: flex;
    flex-wrap: wrap;
    -moz-column-gap: var(--column-gap);
         column-gap: var(--column-gap);
    overflow-x: hidden;
    overflow-y: auto;
    /* li depth-3 */
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2 {
    position: relative;
    flex-basis: calc((100% - var(--column-gap)) / 2);
    padding-top: 0.75rem;
    /* theme color */
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2:nth-of-type(n + 3) {
    margin-top: 2rem;
  }
}
@media (min-width: 80em) and (height &lt;= 650px) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2:nth-of-type(n + 3) {
    margin-top: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0.0625rem;
    content: "";
    background-color: rgba(0, 0, 0, 0.1);
    transition: background-color 200ms var(--ease-out-cubic);
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2:hover::before {
    background-color: var(--theme-color);
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2.--medical {
    --theme-color: #739aff;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2.--care-medical {
    --theme-color: #f9a11e;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2.--handicap-person {
    --theme-color: #6fc600;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2.--senior-housing {
    --theme-color: #4bc2ba;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2.--childcare {
    --theme-color: #ff6b6f;
  }
}
@media (min-width: 80em) and (height &lt;= 650px) {
  .c-gnav__list.--depth-2.--business &gt; li.--depth-2 &gt; .c-picto-btn {
    font-size: 1rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business .c-gnav__list.--depth-3 {
    margin-top: 0.625rem;
  }
}
@media (min-width: 80em) and (min-width: 90em) {
  .c-gnav__list.--depth-2.--business .c-gnav__list.--depth-3 {
    margin-top: 0.75rem;
  }
}
@media (min-width: 80em) and (min-width: 100em) {
  .c-gnav__list.--depth-2.--business .c-gnav__list.--depth-3 {
    margin-top: 0.875rem;
  }
}
@media (min-width: 80em) and (height &lt;= 650px) {
  .c-gnav__list.--depth-2.--business .c-gnav__list.--depth-3 .c-toggle-btn {
    font-size: 0.75rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business .c-gnav__list.--depth-3 .c-toggle-btn__icon {
    margin-right: 0.0625rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business .c-toggle-btn {
    padding-block: 0.3125rem;
    border-top: 0.0625rem solid rgba(0, 0, 0, 0.05);
  }
}
@media (min-width: 80em) and (min-width: 90em) {
  .c-gnav__list.--depth-2.--business .c-toggle-btn {
    padding-block: 0.4375rem;
  }
}
@media (min-width: 80em) and (min-width: 100em) {
  .c-gnav__list.--depth-2.--business .c-toggle-btn {
    padding-block: 0.5rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--business .c-toggle-btn__icon::before {
    background-color: var(--theme-color);
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--company {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 2.5rem;
    gap: 2.5rem;
  }
}
@media (min-width: 80em) and (height &lt;= 650px) {
  .c-gnav__list.--depth-2.--company &gt; li .c-toggle-btn {
    font-size: 0.75rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__media {
    overflow: hidden;
    border-radius: 0.3125rem;
    /* image */
  }
}
@media (min-width: 80em) {
  .c-gnav__media img {
    border-radius: 0.3125rem;
    transition: transform 300ms var(--ease-in-out-cubic), filter 300ms var(--ease-in-out-cubic);
  }
}
@media (min-width: 80em) {
  .c-gnav__card:hover img {
    filter: brightness(1.05);
  }
}
@media (min-width: 80em) {
  .c-gnav__list.--depth-2.--recruit &gt; li &gt; a {
    padding-block: 0.3125rem;
    border-top: 0.0625rem solid rgba(0, 0, 0, 0.05);
  }
}
@media (min-width: 80em) and (min-width: 90em) {
  .c-gnav__list.--depth-2.--recruit &gt; li &gt; a {
    padding-block: 0.5rem;
  }
}
@media (min-width: 80em) and (min-width: 100em) {
  .c-gnav__list.--depth-2.--recruit &gt; li &gt; a {
    padding-block: 0.625rem;
  }
}
@media (min-width: 80em) and (height &lt;= 650px) {
  .c-gnav__list.--depth-2.--recruit &gt; li &gt; a {
    font-size: 0.75rem;
  }
}
@media (min-width: 80em) {
  .c-gnav__card {
    display: flex;
    flex-direction: column;
    row-gap: 0.9375rem;
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel .c-gnav__list &gt; li {
    opacity: 0;
    transition: opacity 300ms var(--ease-out-cubic), transform 300ms var(--ease-out-cubic);
    transform: translateX(6px);
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li {
    opacity: 1;
    transform: translateX(0);
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(1) {
    transition-delay: calc(50ms * (1 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(2) {
    transition-delay: calc(50ms * (2 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(3) {
    transition-delay: calc(50ms * (3 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(4) {
    transition-delay: calc(50ms * (4 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(5) {
    transition-delay: calc(50ms * (5 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(6) {
    transition-delay: calc(50ms * (6 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(7) {
    transition-delay: calc(50ms * (7 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(8) {
    transition-delay: calc(50ms * (8 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(9) {
    transition-delay: calc(50ms * (9 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(10) {
    transition-delay: calc(50ms * (10 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(11) {
    transition-delay: calc(50ms * (11 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(12) {
    transition-delay: calc(50ms * (12 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(13) {
    transition-delay: calc(50ms * (13 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(14) {
    transition-delay: calc(50ms * (14 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(15) {
    transition-delay: calc(50ms * (15 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(16) {
    transition-delay: calc(50ms * (16 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(17) {
    transition-delay: calc(50ms * (17 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(18) {
    transition-delay: calc(50ms * (18 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(19) {
    transition-delay: calc(50ms * (19 - 1));
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-gnav__list &gt; li:nth-child(20) {
    transition-delay: calc(50ms * (20 - 1));
  }
}
/* ==========================================================================
   Icon component
   ========================================================================== */
.--color[data-icon=icon_business_hospital] path {
  stroke: #739aff;
}
.--color[data-icon=icon_business_hospital] path:first-child {
  stroke: #efc531;
}
.--color[data-icon=icon_business_heart-hand] path {
  stroke: #f9a11e;
}
.--color[data-icon=icon_business_heart-hand] path:not(:last-child) {
  stroke: #facc56;
}
.--color[data-icon=icon_business_wheelchair] path {
  stroke: #6fc600;
}
.--color[data-icon=icon_business_wheelchair] path:nth-child(1),
.--color[data-icon=icon_business_wheelchair] path:nth-child(4),
.--color[data-icon=icon_business_wheelchair] path:nth-child(5) {
  stroke: #b5dd5f;
}
.--color[data-icon=icon_business_home] path {
  stroke: #4bc2ba;
}
.--color[data-icon=icon_business_home] path:first-child {
  stroke: #828ad0;
}
.--color[data-icon=icon_business_child] path {
  stroke: #ff8095;
}
.--color[data-icon=icon_business_child] path:last-child {
  stroke: #ffbfbf;
}

/* ==========================================================================
   Image-frame component
   ========================================================================== */
.c-image-frame {
  width: 100%;
  padding: 4% 12%;
  margin-top: 1.875rem;
  overflow: hidden;
  border: 0.0625rem solid var(--color-black-alpha-200);
  border-radius: 0.625rem;
}

.c-image-frame.-half-padding {
  padding: 0;
}
@media (min-width: 48em) {
  .c-image-frame.-half-padding {
    padding: 2% 6%;
  }
}

.c-image-frame.-no-padding {
  padding: 0;
}

.c-image-frame &gt; .-caption {
  margin: 0 0 15px 20px;
  font-size: 0.8125rem;
  line-height: 28px;
  letter-spacing: 0;
}

/* ==========================================================================
   Job-table component
   ========================================================================== */
/* job-table */
.c-job-table {
  width: 100%;
  padding: 2.5rem;
  background-color: var(--color-bg-container);
  border: 0;
  border-radius: 0.625rem;
}

/* row */
.c-job-table__row {
  display: flex;
  flex-direction: column;
  margin-inline: 1rem;
}
@media (min-width: 48em) {
  .c-job-table__row {
    flex-direction: row;
    border-bottom: 0.0625rem solid var(--color-black-alpha-100);
    margin-inline: 1.5rem;
  }
}
.c-job-table__row:first-child {
  margin-top: 1.5rem;
}
.c-job-table__row:last-child {
  margin-bottom: 1.5rem;
}
@media (min-width: 48em) {
  .c-job-table__row:last-child {
    border-bottom: 0;
  }
}
.c-job-table__row + .c-job-table__row {
  margin-top: 1.5rem;
}
@media (min-width: 48em) {
  .c-job-table__row + .c-job-table__row {
    margin-top: 0;
  }
}
.c-job-table.--aside .c-job-table__row + .c-job-table__row {
  margin-top: 1.5rem;
}
.c-job-table.--aside .c-job-table__row {
  flex-direction: column;
  border-bottom: 0;
}

/* head, data */
.c-job-table__head,
.c-job-table__data {
  font-size: 0.8125rem;
  border-top: 0;
}
@media (min-width: 48em) {
  .c-job-table__head,
.c-job-table__data {
    font-size: 0.875rem;
  }
}
@media (min-width: 80em) {
  .c-job-table__head,
.c-job-table__data {
    font-size: 0.9375rem;
  }
}

/* head */
.c-job-table__head {
  width: 100%;
  color: var(--theme-color);
  font-size: 0.875rem;
  padding-block: 0;
}
@media (min-width: 48em) {
  .c-job-table__head {
    width: 11.25rem;
    color: var(--color-gray);
    font-size: 0.9375rem;
    padding-block: 1rem;
  }
}
@media (min-width: 80em) {
  .c-job-table__head {
    width: 15rem;
  }
}
.c-job-table__row:first-child .c-job-table__head {
  padding-block: 0;
}
@media (min-width: 48em) {
  .c-job-table__row:first-child .c-job-table__head {
    padding-block: 0 1rem;
  }
}
@media (min-width: 48em) {
  .c-job-table__row:last-child .c-job-table__head {
    padding-block: 1rem 0;
  }
}
.c-job-table__row:only-child .c-job-table__head {
  padding-block: 0;
}
.c-job-table.--aside .c-job-table__head {
  color: var(--theme-color);
  font-size: 0.875rem;
  padding-block: 0;
}
.c-job-table.--aside .c-job-table__row:first-child .c-job-table__head {
  padding-block: 0;
}

/* data */
.c-job-table__data {
  padding-block: 0;
  margin-inline: 0;
  flex-grow: 1;
  margin-top: 0.75rem;
}
@media (min-width: 48em) {
  .c-job-table__data {
    margin-top: 0;
  }
}
.c-job-table.--aside .c-job-table__data {
  margin-top: 0.75rem;
}

/* block */
.c-job-table__block {
  border-top: 0.0625rem solid var(--color-black-alpha-100);
}
@media (min-width: 48em) {
  .c-job-table__block {
    border-top: 0;
  }
  .c-job-table__block + .c-job-table__block {
    border-top: 0.0625rem solid var(--color-black-alpha-100);
  }
}
.c-job-table.--aside .c-job-table__block {
  border-top: 0.0625rem solid var(--color-black-alpha-100);
}

/* anchor */
.c-job-table__anchor {
  display: grid;
  grid-template: "type icon" auto "facility facility" auto/1fr auto;
  align-items: center;
  text-decoration: none;
  padding-block: 1rem;
}
@media (min-width: 48em) {
  .c-job-table__anchor {
    grid-template: "type facility icon" auto/0.4fr 0.6fr auto;
    -moz-column-gap: 1rem;
         column-gap: 1rem;
  }
}
@media (min-width: 90em) {
  .c-job-table__anchor {
    grid-template: "type facility icon" auto/0.35fr 0.65fr auto;
  }
}
.c-job-table__anchor i {
  transition: transform 200ms var(--ease-out-cubic);
}
.c-job-table__anchor:hover i {
  transform: translateX(4px);
}
@media (min-width: 48em) {
  .c-job-table__row:first-child .c-job-table__block:first-child .c-job-table__anchor {
    padding-block: 0 1rem;
  }
}
.c-job-table__row:last-child .c-job-table__block:last-child .c-job-table__anchor {
  padding-block: 1rem 0;
}
@media (min-width: 48em) {
  .c-job-table__row:only-child .c-job-table__block:first-child .c-job-table__anchor {
    padding-block: 0 1rem;
  }
}
.c-job-table__row:only-child .c-job-table__block:last-child .c-job-table__anchor {
  padding-block: 1rem 0;
}
@media (min-width: 48em) {
  .c-job-table__row:only-child .c-job-table__block:only-child .c-job-table__anchor {
    padding-block: 0;
  }
}
.c-job-table.--aside .c-job-table__anchor {
  grid-template: "type icon" auto "facility facility" auto/1fr auto;
}
@media (min-width: 48em) {
  .c-job-table.--aside .c-job-table__row:first-child .c-job-table__block:first-child .c-job-table__anchor {
    padding-block: 1rem;
  }
}

/* type, facility, icon */
.c-job-table__type,
.c-job-table__facility,
.c-job-table__icon {
  margin-top: 0;
}

/* type */
.c-job-table__type {
  grid-area: type;
  font-size: 0.875rem;
  text-align: left;
}
@media (min-width: 48em) {
  .c-job-table__type {
    font-size: 0.9375rem;
  }
}
.c-job-table.--aside .c-job-table__type {
  font-size: 0.875rem;
}

/* facility */
.c-job-table__facility {
  grid-area: facility;
  color: var(--color-gray-alpha-600);
  font-size: 0.75rem;
  text-align: left;
  transition: color 200ms var(--ease-out-cubic);
}
a:hover .c-job-table__facility {
  color: var(--theme-color);
}

/* icon */
.c-job-table__icon {
  grid-area: icon;
  place-self: flex-end;
  align-self: center;
}
.c-job-table.--aside .c-job-table__icon {
  font-size: 0.75rem;
}

/* ==========================================================================
   Map component
   ========================================================================== */
.c-map {
  width: 100%;
  height: 25rem;
  margin-top: 2.5rem;
}
@media (min-width: 33.75em) {
  .c-map {
    height: 34.375rem;
  }
}
@media (min-width: 80em) {
  .c-map {
    height: 37.5rem;
  }
}

.c-map iframe {
  width: 100%;
  height: 100%;
  font-family: "object-fit:fill";
  -o-object-fit: fill;
     object-fit: fill;
}

/* ==========================================================================
   Movie component
   ========================================================================== */
.c-movie {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.c-movie:before {
  content: "";
  display: block;
  padding-top: 61.8556701031%;
}

.c-movie iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

/* ==========================================================================
   Nesting-list component
   ========================================================================== */
.c-nesting-list &gt; li + li {
  margin-top: 1.25rem;
}
.c-nesting-list &gt; li &gt; p,
.c-nesting-list &gt; li &gt; ul {
  margin-top: 0;
}

/* ==========================================================================
Note component
========================================================================== */
.note {
  font-size: 0.75rem;
}

/* ==========================================================================
   Notification component
   ========================================================================== */
.c-notification {
  display: grid;
  grid-template: "icon title" auto "body body" auto/auto 1fr;
  grid-row-gap: 15px;
  row-gap: 15px;
  grid-column-gap: 0.625rem;
  -moz-column-gap: 0.625rem;
       column-gap: 0.625rem;
  align-items: center;
  padding: 1.25rem;
  margin-top: 1.25rem;
  background-color: var(--color-bg-container);
  border-radius: 0.625rem;
}
@media (min-width: 48em) {
  .c-notification {
    padding: 1.875rem;
  }
}
.c-notification i {
  grid-area: icon;
  stroke-width: 2;
}
.c-notification i.-start {
  place-self: flex-start;
}
.c-notification i.-md {
  width: 26px;
  height: 26px;
  stroke-width: 1.8;
}
@media (min-width: 80em) {
  .c-notification i.-md {
    width: 30px;
    height: 30px;
  }
}
.c-notification i.-lg {
  width: 32px;
  height: 32px;
  stroke-width: 1.6;
}
@media (min-width: 80em) {
  .c-notification i.-lg {
    width: 36px;
    height: 36px;
  }
}
.c-notification :is(h2, h3, h4, h5) {
  grid-area: title;
  margin-top: 0;
}
.c-notification :is(h2, h3, h4, h5) + * {
  margin-top: 0;
}
.c-notification ol {
  grid-area: body;
  margin-left: 1.5625rem;
  list-style-type: upper-roman;
}
.c-notification p {
  grid-area: body;
}

/* ==========================================================================
   Overlay component
   ========================================================================== */
@media (min-width: 80em) {
  .c-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -10;
    background-color: rgba(0, 0, 0, 0.1);
    visibility: hidden;
    cursor: pointer;
    opacity: 0;
    transition: opacity 200ms var(--ease-out-quint), visibility 200ms var(--ease-out-quint);
  }
  .c-overlay.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity 200ms var(--ease-out-cubic), visibility 200ms var(--ease-out-cubic);
  }
  .c-overlay.--reha {
    z-index: 0;
    background-color: rgba(0, 164, 180, 0.05);
  }
  .c-overlay.--reha.is-hover {
    visibility: visible;
    opacity: 1;
    transition: opacity 200ms var(--ease-out-cubic), visibility 200ms var(--ease-out-cubic);
  }
}
/* ==========================================================================
Panel component
========================================================================== */
.c-panel__inner {
  display: grid;
  grid-row-gap: 20px;
  row-gap: 20px;
  padding-block: 20px 10px;
  padding-inline: 20px 0;
  -webkit-border-before: 1px solid var(--color-gray-alpha-200);
          border-block-start: 1px solid var(--color-gray-alpha-200);
  -webkit-border-start: 1px solid var(--color-gray-alpha-200);
          border-inline-start: 1px solid var(--color-gray-alpha-200);
  border-top-left-radius: 10px;
}
@media (min-width: 48em) {
  .c-panel__inner {
    padding-block: 30px 10px;
    padding-inline: 30px 0;
  }
}

.c-panel__inner:has(&gt; .c-panel__head) {
  grid-template: "body" auto "head" auto/1fr;
}
@media (min-width: 48em) {
  .c-panel__inner:has(&gt; .c-panel__head) {
    grid-template: "body head" auto/1fr 340px;
    -moz-column-gap: 40px;
         column-gap: 40px;
  }
}

.c-panel__inner:not(:has(&gt; .c-panel__head)) {
  grid-template: "body" auto/1fr;
}

.c-panel__head {
  display: grid;
  grid-area: head;
  grid-row-gap: 10px;
  row-gap: 10px;
}

.c-panel__media {
  overflow: hidden;
  border-radius: 5px;
}

.c-panel__body {
  display: grid;
  grid-area: body;
  grid-row-gap: 10px;
  row-gap: 10px;
  height: -moz-max-content;
  height: max-content;
}

.c-panel__title {
  margin-top: 0;
  font-family: var(--font-db);
  font-weight: 600;
}

.c-panel__title::before {
  content: counter(panel-counter) ". ";
}

.c-panel__contents {
  display: grid;
  grid-row-gap: 10px;
  row-gap: 10px;
}

.c-panel__anchor[target=_blank]::after {
  display: inline-block !important;
}

/* ==========================================================================
   Pickup component
   ========================================================================== */
/* pickup */
.c-pickup {
  width: 100%;
}

/* anchor */
.c-pickup__anchor {
  text-decoration: none;
}

/* inner */
.c-pickup__inner {
  display: grid;
  grid-template: "icon text" auto ". btn" auto/auto 1fr;
  align-items: center;
  padding: 0.625rem 1.25rem;
  grid-column-gap: 0.625rem;
  -moz-column-gap: 0.625rem;
       column-gap: 0.625rem;
  border-radius: 0.625rem;
  transition: color 400ms cubic-bezier(0.33, 1, 0.68, 1), background-color 400ms cubic-bezier(0.33, 1, 0.68, 1), border-color 400ms cubic-bezier(0.33, 1, 0.68, 1);
}
@media (min-width: 48em) {
  .c-pickup__inner {
    grid-template: "icon text btn" auto/auto 1fr auto;
    padding: 1rem 1.25rem;
  }
}
.c-pickup.--primary .c-pickup__inner {
  color: var(--color-primary-mid);
  background-color: var(--color-primary-alpha-50);
  border: 0.0625rem solid var(--color-primary-mid);
}
.c-pickup.--primary .c-pickup__anchor:hover .c-pickup__inner {
  color: var(--theme-color, var(--color-primary-mid));
  background-color: var(--theme-color-alpha, var(--color-primary-alpha-100));
  border-color: var(--theme-color, var(--color-primary-mid));
}

/* icon */
.c-pickup__icon {
  grid-area: icon;
}
.c-pickup__icon i {
  display: block;
}

/* text */
.c-pickup__text {
  grid-area: text;
}
.c-pickup__text p {
  margin-top: 0;
}

/* btn */
.c-pickup__btn {
  grid-area: btn;
}
.c-pickup__btn .c-btn {
  margin-top: 0.75rem;
}
@media (min-width: 48em) {
  .c-pickup__btn .c-btn {
    margin-top: 0;
  }
}
.c-pickup__btn .c-btn:hover {
  background-color: transparent;
}

/* ==========================================================================
   Picto component
   ========================================================================== */
/* header */
.c-picto__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  text-decoration: none;
}

/* icon */
.c-picto__icon {
  margin-left: -0.4375rem;
}
@media (min-width: 80em) {
  .c-picto__icon {
    margin-left: -0.6875rem;
  }
}
.c-picto__icon i {
  stroke-width: 2.5;
}

/* heading */
.c-picto__heading {
  padding-left: 0;
  margin-top: 0;
  margin-left: 0;
  color: var(--color-neutral-mid);
  font-size: clamp(1.6875rem, 20px + 1.8vw, 3rem);
  font-family: var(--font-uc-r);
  letter-spacing: var(--ls-normal);
  transition-timing-function: var(--ease-in);
  transition-duration: 300ms;
  transition-property: color;
}
.c-picto__heading::before {
  display: none;
}
.c-picto__header:hover .c-picto__heading {
  color: var(--theme-color);
  transition-timing-function: var(--ease-out);
}

/* body */
.c-picto__body {
  margin-top: 0.625rem;
}
@media (min-width: 80em) {
  .c-picto__body {
    margin-top: 0.9375rem;
  }
}

/* text */
.c-picto__text {
  margin-top: 0;
  font-size: clamp(13px, 10px + 0.4vw, 15px);
}

/* divider */
.c-picto__divider {
  width: 100%;
  height: 0.0625rem;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  background-color: var(--color-black-alpha-100);
}

/* btn */
.c-picto__btns .c-toggle-btn {
  --toggle-btn-width: 2.5rem;
  justify-content: space-between;
  width: 100%;
  font-size: clamp(14px, 10px + 0.4vw, 16px);
}

/* ==========================================================================
   Picto-button component
   ========================================================================== */
.c-picto-btn {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-family: var(--font-uc-r);
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  transform: translateX(-1px);
}
@media (min-width: 48em) {
  .c-picto-btn {
    font-size: 1.125rem;
  }
}
@media (min-width: 80em) {
  .c-picto-btn {
    font-size: 1.1875rem;
    transform: translateX(-2px);
    row-gap: 0.625rem;
  }
}
@media (min-width: 90em) {
  .c-picto-btn {
    font-size: 1.25rem;
  }
}

.c-picto-btn__icon {
  stroke-width: 5;
  width: 1.5rem;
  height: 1.5rem;
}
@media (min-width: 80em) {
  .c-picto-btn__icon {
    stroke-width: 3.5;
    width: 1.75rem;
    height: 1.75rem;
  }
}
@media (min-width: 90em) {
  .c-picto-btn__icon {
    width: 2rem;
    height: 2rem;
  }
}

.c-picto-btn__text {
  color: #999;
  transition: color 200ms var(--ease-out-cubic);
}
.c-picto-btn:hover .c-picto-btn__text {
  color: var(--theme-color);
}

/* ==========================================================================
   Profile-card component
   ========================================================================== */
.c-profile-card {
  display: grid;
  display: flex;
  align-items: center;
  grid-column-gap: 1.25rem;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
@media (min-width: 48em) {
  .c-profile-card {
    -moz-column-gap: 1.5625rem;
         column-gap: 1.5625rem;
  }
}
@media (min-width: 80em) {
  .c-profile-card {
    -moz-column-gap: 1.875rem;
         column-gap: 1.875rem;
  }
}
.c-profile-card img {
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 100%;
}
@media (min-width: 48em) {
  .c-profile-card img {
    width: 5rem;
    height: 5rem;
  }
}
@media (min-width: 80em) {
  .c-profile-card img {
    width: 6.25rem;
    height: 6.25rem;
  }
}
.c-profile-card p {
  margin-top: 0;
  font-size: 1.125rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-profile-card p {
    font-size: 1.25rem;
  }
}
.c-profile-card span {
  font-size: 0.8125rem;
  letter-spacing: var(--ls-narrow);
}

/* ==========================================================================
   Progress component
   ========================================================================== */
.progress {
  --progressbar-height: 0.3125rem;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  width: 100%;
  transition: all 250ms var(--ease-out-cubic) 500ms;
}
.progress.progress-complete {
  top: calc(var(--progressbar-height) * -1);
}

.progress--inner {
  display: block;
  width: 0;
  height: var(--progressbar-height);
  background-color: var(--color-primary-mid);
  transition: all 3000ms var(--ease-out-cubic);
}
.progress.progress-complete .progress--inner {
  transition-duration: 500ms;
}

/* ==========================================================================
   SBS(side-by-side) component
   ========================================================================== */
.c-sbs {
  display: grid;
  grid-template-areas: "media" "title" "body";
  grid-template-rows: auto auto auto;
  grid-template-columns: var(--sbs-gtc, 1fr);
  grid-row-gap: 1rem;
  row-gap: 1rem;
  margin-top: var(--sbs-mt);
  line-height: var(--lh-extra-relaxed);
}
@media (min-width: 56.25em) {
  .c-sbs {
    grid-template-areas: "title ." "body media";
    grid-template-rows: auto auto;
    grid-template-columns: var(--sbs-gtc, 1fr 0.46789fr);
    row-gap: 0;
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }
}
@media (min-width: 80em) {
  .c-sbs {
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }
}
@media (min-width: 56.25em) {
  .c-sbs.--reverse {
    grid-template-areas: "media body";
    grid-template-columns: var(--sbs-gtc, 0.46789fr 1fr);
  }
}
h1 + .c-sbs {
  margin-top: 2.5rem;
}
@media (min-width: 48em) {
  h1 + .c-sbs {
    margin-top: 3.75rem;
  }
}
@media (min-width: 80em) {
  h1 + .c-sbs {
    margin-top: 5rem;
  }
}
h2 + .c-sbs {
  margin-top: 1.875rem;
}
@media (min-width: 48em) {
  h2 + .c-sbs {
    margin-top: 2.1875rem;
  }
}
@media (min-width: 80em) {
  h2 + .c-sbs {
    margin-top: 2.5rem;
  }
}
.c-sbs + .c-sbs {
  margin-top: 3.75rem;
}
@media (min-width: 48em) {
  .c-sbs + .c-sbs {
    margin-top: 5rem;
  }
}
@media (min-width: 80em) {
  .c-sbs + .c-sbs {
    margin-top: 2.5rem;
  }
}

.c-sbs__title {
  grid-area: title;
}
@media (min-width: 56.25em) {
  .c-sbs__title {
    margin-bottom: 2.1875rem;
  }
}
@media (min-width: 80em) {
  .c-sbs__title {
    margin-bottom: 2.5rem;
  }
}

.c-sbs__body {
  grid-area: body;
}

.c-sbs__media {
  grid-area: media;
  overflow: hidden;
  border-radius: 0.3125rem;
}

.c-sbs__image {
  height: auto;
  border-radius: 0.3125rem;
}

.c-sbs figcaption {
  margin-top: 0.625rem;
  color: rgba(85, 85, 85, 0.75);
  font-size: 0.75rem;
  border-radius: 0.3125rem;
}

.c-sbs p {
  margin-top: 0;
  letter-spacing: var(--ls-narrow);
}
.c-sbs p + p {
  margin-top: var(--sbs-paragraph-mt, 1.375rem);
}
@media (min-width: 48em) {
  .c-sbs p + p {
    margin-top: var(--sbs-paragraph-mt, 1.5rem);
  }
}
@media (min-width: 80em) {
  .c-sbs p + p {
    margin-top: var(--sbs-paragraph-mt, 1.625rem);
  }
}

/* h2 */
.c-sbs h2 {
  margin-top: 0;
  padding-left: 0;
  color: var(--theme-color);
  font-size: 1.5rem;
  font-family: var(--font-r);
  line-height: var(--lh-tight);
}
@media (min-width: 33.75em) {
  .c-sbs h2 {
    font-size: 1.875rem;
  }
}
@media (min-width: 48em) {
  .c-sbs h2 {
    font-size: 2.1875rem;
  }
}
@media (min-width: 80em) {
  .c-sbs h2 {
    font-size: 2.5rem;
  }
}
.c-sbs h2::before {
  display: none;
}
.c-sbs h2.reset-sbs-style {
  padding-left: 1.5625rem;
  font-weight: 600;
  font-size: 1.1875rem;
  font-family: var(--font-db);
  line-height: var(--lh-normal);
}
@media (min-width: 48em) {
  .c-sbs h2.reset-sbs-style {
    font-size: 1.3125rem;
  }
}
@media (min-width: 80em) {
  .c-sbs h2.reset-sbs-style {
    font-size: 1.4375rem;
  }
}
.c-sbs h2.reset-sbs-style::before {
  display: block;
}
.c-sbs h2 + p {
  margin-top: 1.875rem;
}
@media (min-width: 48em) {
  .c-sbs h2 + p {
    margin-top: 2.1875rem;
  }
}
@media (min-width: 80em) {
  .c-sbs h2 + p {
    margin-top: 2.5rem;
  }
}

/* h3 */
.c-sbs h3 {
  margin-top: 0;
  margin-left: 0;
  padding-left: 0;
  color: var(--theme-color);
}
.c-sbs h3::before {
  display: none;
}
.c-sbs h3 + p {
  margin-top: var(--sbs-h3-paragraph-mt, 1.375rem);
}
@media (min-width: 48em) {
  .c-sbs h3 + p {
    margin-top: var(--sbs-h3-paragraph-mt, 1.5rem);
  }
}
@media (min-width: 80em) {
  .c-sbs h3 + p {
    margin-top: var(--sbs-h3-paragraph-mt, 1.625rem);
  }
}

/* h4 */
.c-sbs h4 {
  position: relative;
  margin-top: 1.25rem;
  padding-left: 2em;
  font-size: 0.9375rem;
}
@media (min-width: 48em) {
  .c-sbs h4 {
    margin-top: 1.875rem;
    font-size: 1rem;
  }
}
@media (min-width: 80em) {
  .c-sbs h4 {
    margin-top: 2.5rem;
    font-size: 1.0625rem;
  }
}
.c-sbs h4::before {
  position: absolute;
  top: -0.1em;
  left: 0;
  width: 1em;
  height: 1.75em;
  background-color: var(--theme-color, currentColor);
  border-radius: 0.5em/0.875em;
  transform: rotate(45deg);
  content: "";
}

/* ol */
.c-sbs ol {
  margin-top: 2rem;
}
.c-sbs ol li + li {
  margin-top: 0;
}

/* list modifier */
.c-sbs.--list {
  grid-template-areas: "title" "media" "body";
  grid-template-rows: auto max-content;
  align-items: flex-start;
  row-gap: 1.25rem;
}
@media (min-width: 56.25em) {
  .c-sbs.--list {
    grid-template-areas: "title media" "body  media";
    row-gap: 1.25rem;
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }
}
.c-sbs.--list h3 {
  grid-area: title;
  margin-top: -0.25rem;
  padding-left: 2em;
  font-size: 0.9375rem;
  font-family: var(--font-db);
}
@media (min-width: 48em) {
  .c-sbs.--list h3 {
    font-size: 1rem;
  }
}
@media (min-width: 80em) {
  .c-sbs.--list h3 {
    font-size: 1.0625rem;
  }
}
.c-sbs.--list h3::before {
  display: block;
}
@media (min-width: 48em) {
  .c-sbs.--list ul {
    margin-top: 0;
  }
}

/* ==========================================================================
Simple list component
========================================================================== */
.c-simple-list {
  width: 100%;
  margin-top: 0;
  border-top: 0;
  border-bottom: 0;
}

/* ==========================================================================
Toggle btn component
========================================================================== */
.c-sns-btn {
  display: flex;
  flex-direction: row;
  -moz-column-gap: 0.9375rem;
       column-gap: 0.9375rem;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding-top: 0.0625rem;
  padding-bottom: 0.0625rem;
  text-decoration: none;
}

.c-sns-btn__text {
  margin-top: 0;
  font-family: var(--font-en);
  font-size: 0.75rem;
  line-height: var(--lh-normal);
  letter-spacing: var(--ls-normal);
}

/* ==========================================================================
Text component
========================================================================== */
.c-text__feature--palt {
  font-feature-settings: "palt";
}

.c-text__underline--tech1 {
  text-decoration: underline;
}

.c-text__underline--tech2 {
  display: inline-block;
  background: linear-gradient(transparent 70%, var(--color-link) 70%);
}

.c-text__uppercase {
  text-transform: uppercase;
}

.c-text__outline {
  color: var(--color-neutral-darken);
  text-shadow: 1px 1px var(--color-neutral-extra-lighter), -1px 1px var(--color-neutral-extra-lighter), -1px -1px var(--color-neutral-extra-lighter), 1px -1px var(--color-neutral-extra-lighter), 1px 0 var(--color-neutral-extra-lighter), 0 1px var(--color-neutral-extra-lighter), -1px 0 var(--color-neutral-extra-lighter), 0 -1px var(--color-neutral-extra-lighter);
}

.c-text__shadow {
  text-shadow: 0.0625rem 0.0625rem 0 var(--color-neutral-lightest-alpha-middle);
}

.c-text__vertical {
  writing-mode: vertical-rl;
}

.c-text__animation__hover-tech2 {
  position: relative;
  overflow: hidden;
  color: var(--color-link);
  vertical-align: bottom;
  transition: -webkit-clip-path 200ms var(--ease-in-out-cubic);
  transition: clip-path 200ms var(--ease-in-out-cubic);
  transition: clip-path 200ms var(--ease-in-out-cubic), -webkit-clip-path 200ms var(--ease-in-out-cubic);
}

.c-text__animation__hover-tech2::before {
  position: absolute;
  color: var(--color-link-hover);
  text-decoration: underline;
  transition: -webkit-clip-path 200ms var(--ease-in-out-cubic);
  transition: clip-path 200ms var(--ease-in-out-cubic);
  transition: clip-path 200ms var(--ease-in-out-cubic), -webkit-clip-path 200ms var(--ease-in-out-cubic);
  content: attr(data-content);
  -webkit-clip-path: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg"%3E%3Cdefs%3E%3CclipPath id="p" clipPathUnits="objectBoundingBox"%3E%3Cpolygon points="0 0, 0 0, 0 1, 0 1"/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E#p');
          clip-path: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg"%3E%3Cdefs%3E%3CclipPath id="p" clipPathUnits="objectBoundingBox"%3E%3Cpolygon points="0 0, 0 0, 0 1, 0 1"/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E#p');
  -webkit-clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
          clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
  -webkit-text-decoration-color: var(--color-link-hover);
          text-decoration-color: var(--color-link-hover);
}

/* ==========================================================================
   Text-card component
   ========================================================================== */
.c-text-card {
  -webkit-padding-start: 20px;
          padding-inline-start: 20px;
  -webkit-border-start: 1px solid var(--color-black-alpha-200);
          border-inline-start: 1px solid var(--color-black-alpha-200);
}
@media (min-width: 48em) {
  .c-text-card {
    -webkit-padding-start: 30px;
            padding-inline-start: 30px;
  }
}

.c-text-card &gt; .c-text-card__title {
  padding-left: 0;
  margin-top: 0;
  margin-left: 0;
  font-family: var(--font-t-b);
  font-size: 0.84375rem;
  font-weight: bold;
  line-height: 1.7777777778;
  color: var(--theme-color);
}
@media (min-width: 48em) {
  .c-text-card &gt; .c-text-card__title {
    font-size: 0.875rem;
  }
}
@media (min-width: 80em) {
  .c-text-card &gt; .c-text-card__title {
    font-size: 0.9375rem;
    line-height: 1.8666666667;
  }
}
.c-text-card &gt; .c-text-card__title::before {
  display: none;
}

.c-text-card &gt; .c-text-card__detail {
  margin-top: 5px;
  font-size: 0.875rem;
}

/* ==========================================================================
   Text-frame component
   ========================================================================== */
.c-text-frame {
  width: 100%;
  margin-top: 2.5rem;
  padding: 1.25rem;
  border: 0.0625rem solid var(--color-black-alpha-200);
  border-radius: 0.3125rem;
}
@media (min-width: 48em) {
  .c-text-frame {
    padding: 1.875rem;
    border-radius: 0.4375rem;
  }
}
@media (min-width: 80em) {
  .c-text-frame {
    padding: 2.5rem;
    border-radius: 0.625rem;
  }
}
.c-text-frame &gt; h2,
.c-text-frame &gt; h3 {
  margin-top: 0;
}

/* ==========================================================================
   Title-button component
   ========================================================================== */
/* btn */
.c-title-btn {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  padding-top: 1.5625rem;
  padding-bottom: 1.5625rem;
  letter-spacing: 0;
  -moz-column-gap: 0.9375rem;
       column-gap: 0.9375rem;
}
@media (min-width: 80em) {
  .c-title-btn {
    position: relative;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
    transform: translateX(10%);
    opacity: 0;
    transition: opacity 300ms var(--ease-out-cubic), transform 300ms var(--ease-out-cubic), color 300ms var(--ease-out-cubic);
    padding-inline: clamp(24px, 20px + 1.8vmin, 40px);
    padding-block: clamp(24px, 20px + 1.8vmin, 40px);
  }
  .c-title-btn::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.1);
    transition: background-color 300ms var(--ease-out-cubic);
    content: "";
  }
  .c-title-btn:hover::after {
    background-color: rgba(0, 0, 0, 0.2);
  }
}
@media (min-width: 80em) {
  .c-gnav-accordion__panel.is-open .c-title-btn {
    transform: translateX(0);
    opacity: 1;
  }
}

/* icon */
.c-title-btn__icon {
  flex-shrink: 0;
  color: #555;
  transform: translate(0, 5px);
  transition: transform 300ms var(--ease-out-cubic), color 300ms var(--ease-out-cubic);
  stroke: currentColor;
  stroke-width: 2;
}
@media (min-width: 80em) {
  .c-title-btn__icon {
    order: 4;
    margin-top: 1rem;
    color: #999;
    stroke-width: 1;
  }
}
.c-title-btn:hover .c-title-btn__icon {
  color: #777;
  transform: translate(6px, 5px);
}

/* text */
.c-title-btn__text.--ja,
.c-title-btn__text.--en {
  line-height: 1;
  transition: color 250ms var(--ease-out-cubic);
}
@media (min-width: 80em) {
  .c-title-btn__text.--ja,
.c-title-btn__text.--en {
    writing-mode: vertical-rl;
  }
  .c-title-btn:hover .c-title-btn__text.--ja,
.c-title-btn:hover .c-title-btn__text.--en {
    color: #777;
  }
}

/* text japanese */
.c-title-btn__text.--ja {
  color: #555;
  font-size: 1rem;
  font-family: var(--font-uc-r);
}
@media (min-width: 48em) {
  .c-title-btn__text.--ja {
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-title-btn__text.--ja {
    order: 1;
    margin-bottom: auto;
    color: #999;
    font-size: clamp(20px, 16px + 1.2vmin, 26px);
  }
  .c-title-btn__text.--ja span.char:nth-child(n+2) {
    margin-top: 0.1875rem;
  }
}

/* text english */
.c-title-btn__text.--en {
  display: none;
}
@media (min-width: 80em) {
  .c-title-btn__text.--en {
    display: block;
    order: 3;
    color: #999;
    font-size: clamp(15px, 10px + 0.8vmin, 17px);
    font-family: var(--font-en);
  }
  .c-title-btn__text.--en span.char:nth-child(n+2) {
    margin-top: 0.09375rem;
  }
}
@media (min-width: 90em) {
  .c-title-btn__text.--en {
    font-size: 1.0625rem;
  }
}

/* ==========================================================================
Table of contents list component
========================================================================== */
.c-toc-list {
  width: 100%;
  margin-top: 0;
  margin-left: 0;
  list-style: none;
  border-top: 0.0625rem solid var(--color-black-alpha-100);
  border-bottom: 0.0625rem solid var(--color-black-alpha-100);
}
.c-toc-list li + li {
  border-top: 0.0625rem solid var(--color-black-alpha-100);
}
.c-toc-list a {
  display: grid;
  grid-template: "icon title switch" auto ". text text" auto/auto 1fr auto;
  align-items: center;
  width: 100%;
  margin: 1.5rem 0;
  padding: 1rem 0;
  text-decoration: none;
  grid-column-gap: 1.25rem;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
  border: 0;
  grid-row-gap: 0.3125rem;
  row-gap: 0.3125rem;
  padding-inline: 0;
}
@media (min-width: 80em) {
  .c-toc-list a {
    grid-template: "icon title text switch" auto/auto 15.3125rem 1fr auto;
    margin: 1.875rem 0;
    padding: 1.25rem 0;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
  }
}
@media (min-width: 80em) {
  .p-amano-reha .c-toc-list a {
    grid-template: "icon title text switch" auto/auto 23.75rem 1fr auto;
  }
}
.c-toc-list a:hover p {
  color: var(--color-primary-mid);
}
.c-toc-list a:hover h2,
.c-toc-list a:hover h3 {
  color: var(--color-primary-mid);
}
.c-toc-list a:hover .c-toggle-switch.--bar::before {
  background-color: var(--theme-color, var(--color-primary-mid));
  transform: translateX(calc(200% - 5px));
}
.c-toc-list a [data-icon*=icon_arrow] {
  grid-area: icon;
  width: 1.75rem;
  height: 1.75rem;
  stroke: var(--theme-color, var(--color-primary-mid));
}
@media (min-width: 48em) {
  .c-toc-list a [data-icon*=icon_arrow] {
    width: 2rem;
    height: 2rem;
  }
}
@media (min-width: 80em) {
  .c-toc-list a [data-icon*=icon_arrow] {
    width: 2.25rem;
    height: 2.25rem;
  }
}
.c-toc-list a h2,
.c-toc-list a h3 {
  grid-area: title;
  margin-top: 0;
  padding-left: 0;
  color: var(--color-gray);
  font-weight: 400;
  font-size: 1.125rem;
  transition: color 200ms var(--ease-out-cubic);
}
@media (min-width: 48em) {
  .c-toc-list a h2,
.c-toc-list a h3 {
    font-size: 1.25rem;
  }
}
@media (min-width: 80em) {
  .c-toc-list a h2,
.c-toc-list a h3 {
    font-size: 1.375rem;
  }
}
@media (min-width: 90em) {
  .c-toc-list a h2,
.c-toc-list a h3 {
    font-size: 1.5rem;
  }
}
.c-toc-list a h2::before, .c-toc-list a h2::after,
.c-toc-list a h3::before,
.c-toc-list a h3::after {
  display: none;
}
.p-amano-reha .c-toc-list a h2,
.p-amano-reha .c-toc-list a h3 {
  font-weight: 600;
  font-size: 1.125rem;
  font-family: var(--font-t-b);
}
@media (min-width: 33.75em) {
  .p-amano-reha .c-toc-list a h2,
.p-amano-reha .c-toc-list a h3 {
    font-size: 1.25rem;
  }
}
@media (min-width: 48em) {
  .p-amano-reha .c-toc-list a h2,
.p-amano-reha .c-toc-list a h3 {
    font-size: 1.375rem;
  }
}
@media (min-width: 80em) {
  .p-amano-reha .c-toc-list a h2,
.p-amano-reha .c-toc-list a h3 {
    font-size: 1.5rem;
  }
}
.c-toc-list a p {
  grid-area: text;
  width: -moz-fit-content;
  width: fit-content;
  padding-right: 0.625rem;
  color: #555;
  font-size: 0.8125rem;
  letter-spacing: 0;
  transition: color 200ms var(--ease-out-cubic);
}
@media (min-width: 80em) {
  .c-toc-list a p {
    padding-right: 0.9375rem;
    font-size: 0.875rem;
  }
}
.c-toc-list a h2 + p,
.c-toc-list a h3 + p {
  margin-top: 0;
}
.c-toc-list .c-toggle-switch {
  --toggle-switch-width: 2.5rem;
  grid-area: switch;
  margin-left: auto;
}

/* ==========================================================================
Table of contents component
========================================================================== */
.c-toc__list {
  display: flex;
  flex-direction: column;
  row-gap: 8px;
}
@media (min-width: 56.25em) {
  .c-toc__list {
    flex-direction: row;
    flex-wrap: wrap;
    row-gap: 12px;
    -moz-column-gap: 20px;
         column-gap: 20px;
  }
}

.c-toc__anchor {
  display: flex;
  -moz-column-gap: 5px;
       column-gap: 5px;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  text-decoration: none;
}

.c-toc__text {
  margin-top: 0;
}

.c-toc__icon {
  line-height: 1lh;
  transition: transform 200ms var(--ease-out-cubic);
}
.c-toc__anchor:hover .c-toc__icon {
  transform: translateY(1.5px);
}

/* ==========================================================================
Toggle btn component
========================================================================== */
/* btn */
.c-toggle-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  text-decoration: none;
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
@media (min-width: 90em) {
  .c-toggle-btn {
    padding-top: 0.3125rem;
    padding-bottom: 0.3125rem;
  }
}
@media (min-width: 900px) and (max-height: 800px) {
  .c-toggle-btn {
    padding-top: 0.0625rem;
    padding-bottom: 0.0625rem;
  }
}

/* toggle switch */
.c-toggle-btn__icon {
  position: relative;
  z-index: var(--z-20);
  flex-shrink: 0;
  width: var(--toggle-btn-width, 1.25rem);
  height: 0.3125rem;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 2.5px;
}
.c-toggle-btn__icon.--short {
  --toggle-btn-width: 0.9375rem;
}
.c-toggle-btn__icon::before {
  position: absolute;
  top: 0;
  left: -100%;
  z-index: var(--z-10);
  width: 100%;
  height: 100%;
  background-color: var(--theme-color, #0a0);
  border-radius: 2.5px;
  transform: translateX(5px);
  transition: transform 200ms var(--ease-out-cubic), background-color 200ms var(--ease-out-cubic);
  content: "";
  will-change: transform;
}
.c-gnav__card:hover .c-toggle-btn__icon::before, .c-toggle-btn:hover .c-toggle-btn__icon::before {
  transform: translateX(calc(200% - 5px));
}
.c-gnav__card:active .c-toggle-btn__icon::before, .c-toggle-btn:active .c-toggle-btn__icon::before {
  transform: translateX(calc(200% - 5px));
}

/* text */
.c-toggle-btn__text {
  position: relative;
  margin-top: 0;
  line-height: 1.67;
  letter-spacing: 0;
  vertical-align: bottom;
  transition: color 200ms var(--ease-out-cubic);
  font-feature-settings: "palt";
}
.c-gnav__card:hover .c-toggle-btn__text {
  color: #555;
}
.c-toggle-btn:hover .c-toggle-btn__text {
  color: var(--theme-color, #0a0);
}
.c-toggle-btn__text.--small {
  font-size: 0.75rem;
}

/* leader */
.c-toggle-btn__leader {
  flex-grow: 1;
  height: 0.0625rem;
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.2), var(--color-black-alpha-200) 2px, transparent 2px, transparent 4px);
  background-repeat: repeat-x;
  background-size: 0.25rem 0.0625rem;
  margin-inline: clamp(0.25rem, -0.052rem + 1.24vw, 1.25rem);
}

/* ==========================================================================
Toggle switch component
========================================================================== */
/* base */
.c-toggle-switch {
  position: relative;
  margin-inline: 0;
  z-index: var(--z-20);
  display: var(--toggle-switch-display, block);
  flex-shrink: 0;
  align-self: center;
  width: var(--toggle-switch-width, 2.5rem);
  height: 0.3125rem;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 2.5px;
  cursor: pointer;
}

.l-header .c-toggle-switch {
  mix-blend-mode: multiply;
}

/* circle (default) */
.c-toggle-switch::before {
  position: absolute;
  top: 0;
  left: -100%;
  z-index: var(--z-10);
  width: 100%;
  height: 100%;
  background-color: var(--theme-color, var(--color-primary-mid));
  border-radius: 2.5px;
  transform: translateX(5px);
  transition: transform 200ms var(--ease-out-cubic), background-color 200ms var(--ease-out-cubic);
  content: "";
  will-change: transform;
}

.c-toc-list a:hover .c-toggle-switch::before,
.c-card:hover .c-toggle-switch::before,
.c-btn:hover .c-toggle-switch::before {
  background-color: var(--theme-color, var(--color-primary-mid));
  transform: translateX(calc(var(--toggle-switch-width) * 2 - 0.3125rem));
}</pre></body></html>