@layer foundation, layout, component, project, script;
@layer foundation.reset {
  /*
  html5doctor.com Reset Stylesheet
  v1.6.1
  Last Updated: 2010-09-17
  Author: Richard Clark - http://richclarkdesign.com
  Twitter: @rich_clark
  */
  html,
  body,
  div,
  span,
  object,
  iframe,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  blockquote,
  pre,
  abbr,
  address,
  cite,
  code,
  del,
  dfn,
  em,
  img,
  ins,
  kbd,
  q,
  samp,
  small,
  strong,
  sub,
  sup,
  var,
  b,
  i,
  dl,
  dt,
  dd,
  ol,
  ul,
  li,
  fieldset,
  form,
  label,
  legend,
  table,
  caption,
  tbody,
  tfoot,
  thead,
  tr,
  th,
  td,
  article,
  aside,
  canvas,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  menu,
  nav,
  section,
  summary,
  time,
  mark,
  audio,
  video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
  }
  body {
    line-height: 1;
  }
  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  menu,
  nav,
  section {
    display: block;
  }
  nav ul {
    list-style: none;
  }
  blockquote,
  q {
    quotes: none;
  }
  blockquote:before,
  blockquote:after,
  q:before,
  q:after {
    content: "";
    content: none;
  }
  a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
  }
  /* change colours to suit your needs */
  ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
  }
  /* change colours to suit your needs */
  mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
  }
  del {
    text-decoration: line-through;
  }
  abbr[title],
  dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  /* change border colour to suit your needs */
  hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
  }
  input,
  select {
    vertical-align: middle;
  }
}
@layer foundation.base {
  :root {
    --clr--neutral-50: #fafafa;
    --clr--neutral-50-rgb: 250
      250
      250;
    --clr--neutral-50-contrast: #000;
    --clr--neutral-100: #F7F7F7;
    --clr--neutral-100-rgb: 247
      247
      247;
    --clr--neutral-100-contrast: #000;
    --clr--neutral-200: #E6E6E6;
    --clr--neutral-200-rgb: 230
      230
      230;
    --clr--neutral-200-contrast: #000;
    --clr--neutral-250: #e9e9e9;
    --clr--neutral-250-rgb: 233
      233
      233;
    --clr--neutral-250-contrast: #000;
    --clr--neutral-300: #d4d4d4;
    --clr--neutral-300-rgb: 212
      212
      212;
    --clr--neutral-300-contrast: #000;
    --clr--neutral-400: #B8B8B8;
    --clr--neutral-400-rgb: 184
      184
      184;
    --clr--neutral-400-contrast: #000;
    --clr--neutral-500: #737373;
    --clr--neutral-500-rgb: 115
      115
      115;
    --clr--neutral-500-contrast: #fff;
    --clr--neutral-600: #575757;
    --clr--neutral-600-rgb: 87
      87
      87;
    --clr--neutral-600-contrast: #fff;
    --clr--neutral-700: #404040;
    --clr--neutral-700-rgb: 64
      64
      64;
    --clr--neutral-700-contrast: #fff;
    --clr--neutral-800: #262626;
    --clr--neutral-800-rgb: 38
      38
      38;
    --clr--neutral-800-contrast: #fff;
    --clr--neutral-900: #171717;
    --clr--neutral-900-rgb: 23
      23
      23;
    --clr--neutral-900-contrast: #fff;
    --clr--neutral-950: #0a0a0a;
    --clr--neutral-950-rgb: 10
      10
      10;
    --clr--neutral-950-contrast: #fff;
    --general--anchor-offset: var(--fixed-header-height);
    --content-min-margin: 24;
    --content-base-margin: 80;
    --content-base-width: 1440;
    --clr--text-default: #000;
    --clr--text-black: #000;
    --clr--theme-primary: #00297a;
    --clr--theme-secondary: #1ea3da;
    --clr--base-primary: #f0f2f7;
    --clr--theme-primary-0: color-mix(
      in srgb,
      var(--clr--theme-primary) 5%,
      white
    );
    --clr--theme-primary-1: color-mix(
      in srgb,
      var(--clr--theme-primary) 10%,
      white
    );
    --clr--theme-primary-2: color-mix(
      in srgb,
      var(--clr--theme-primary) 20%,
      white
    );
    --clr--theme-primary-3: color-mix(
      in srgb,
      var(--clr--theme-primary) 30%,
      white
    );
    --clr--theme-primary-4: color-mix(
      in srgb,
      var(--clr--theme-primary) 40%,
      white
    );
    --clr--theme-primary-5: color-mix(
      in srgb,
      var(--clr--theme-primary) 50%,
      white
    );
    --clr--theme-primary-6: color-mix(
      in srgb,
      var(--clr--theme-primary) 60%,
      white
    );
    --clr--theme-primary-7: color-mix(
      in srgb,
      var(--clr--theme-primary) 70%,
      white
    );
    --clr--theme-primary-8: color-mix(
      in srgb,
      var(--clr--theme-primary) 80%,
      white
    );
    --clr--theme-primary-9: color-mix(
      in srgb,
      var(--clr--theme-primary) 90%,
      white
    );
    --clr--theme-primary-10: color-mix(
      in srgb,
      var(--clr--theme-primary) 100%,
      white
    );
    --clr--neutral-0: color-mix(in srgb, #000 5%, white);
    --clr--neutral-1: color-mix(in srgb, #000 10%, white);
    --clr--neutral-2: color-mix(in srgb, #000 20%, white);
    --clr--neutral-3: color-mix(in srgb, #000 30%, white);
    --clr--neutral-4: color-mix(in srgb, #000 40%, white);
    --clr--neutral-5: color-mix(in srgb, #000 50%, white);
    --clr--neutral-6: color-mix(in srgb, #000 60%, white);
    --clr--neutral-7: color-mix(in srgb, #000 70%, white);
    --clr--neutral-8: color-mix(in srgb, #000 80%, white);
    --clr--neutral-9: color-mix(in srgb, #000 90%, white);
    --clr--neutral-10: color-mix(in srgb, #000 100%, white);
    --ff--en: "gotham", sans-serif;
    --ff--enja: "gotham", "Noto Sans JP", sans-serif;
    --ff--ja: "noto-sans-cjk-jp", "Noto Sans JP", sans-serif;
  }
  body {
    font-size: 16px;
    font-family: var(--ff--ja);
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;
    color: var(--clr--text-default);
    background-color: #fff;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeSpeed;
    position: relative;
    z-index: 10;
  }
  @media (min-width: 36.0625em) and (max-width: 62em) {
    body {
      z-index: 20;
    }
  }
  @media (min-width: 62.0625em) {
    body {
      z-index: 30;
    }
  }
  img {
    vertical-align: middle;
  }
  .is-img-loaded img {
    opacity: 1;
  }
  *,
  *::before,
  *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
  h1 {
    line-height: 1.2;
  }
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 1.4;
  }
  ol,
  ul {
    padding-left: 0;
    list-style: none;
  }
  ol::before, ol::after,
  ul::before,
  ul::after {
    content: unset;
  }
  li {
    list-style: none;
  }
  a {
    color: currentColor;
    text-decoration: none;
    fill: currentColor;
  }
  a svg {
    fill: currentColor;
  }
  a:hover, a:visited, a:link {
    color: currentColor;
    text-decoration: none;
  }
  :where(h1, h2, h3, h4, h5, h6) {
    font-weight: 400;
  }
  :where(input, select, button, textarea) {
    font: inherit;
  }
  :where(input[type=checkbox],
  input[type=radio],
  select,
  button,
  input[type=button],
  input[type=submit]) {
    cursor: pointer;
  }
  :where(img, iframe) {
    max-width: 100%;
    height: auto;
  }
  :where(input[type=checkbox]) {
    opacity: unset;
    display: inline-block;
  }
  :where(input[type=checkbox])::before {
    display: none;
  }
  :where(input[type=checkbox]) + label::before {
    display: none;
  }
  select {
    background: unset;
    border: unset;
    padding: unset;
    margin: unset;
  }
  button {
    color: currentColor;
  }
}
@-webkit-keyframes icon-arrow-animation {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    opacity: 0;
  }
  51% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@keyframes icon-arrow-animation {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
  50% {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    opacity: 0;
  }
  51% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
    opacity: 1;
  }
}
@layer layout {
  .l-container {
    position: relative;
    z-index: 1;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    background-color: #fff;
    padding-top: var(--header-height);
  }
  .l-container *::before,
  .l-container *::after {
    line-height: inherit;
  }
}
@layer layout {
  .l-drawer {
    position: fixed;
    top: var(--active-header-height);
    right: 0;
    z-index: 1000;
    background-color: #fff;
    width: 100vw;
    height: calc(100vh - var(--header-height));
    overflow-y: auto;
    -webkit-transition-property: opacity, visibility;
    transition-property: opacity, visibility;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .l-drawer:not(.is-open) {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .l-drawer .p-buttons {
    --buttons-mt: 2.5rem;
    padding-inline: 1.5rem;
  }
  .l-drawer .c-button {
    --button-w: 100%;
  }
  .l-drawer__inner {
    padding-bottom: 5rem;
  }
}
@layer layout {
  .l-footer {
    position: relative;
    z-index: 5;
    background-color: #001640;
    color: #fff;
  }
}
@layer layout {
  .l-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header-height);
    background-color: transparent;
    -webkit-transition-property: height, background-color, -webkit-transform;
    transition-property: height, background-color, -webkit-transform;
    transition-property: height, transform, background-color;
    transition-property: height, transform, background-color, -webkit-transform;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    z-index: 10;
  }
  .l-header.headroom--unpinned {
    -webkit-transform: translateY(-101%);
            transform: translateY(-101%);
  }
  .l-header.headroom--not-top {
    height: var(--fixed-header-height);
    background-color: #fff;
  }
  .l-header.headroom--not-top.headroom--pinned {
    -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  }
  body.is-modal-opened .l-header {
    -webkit-transform: translateY(-101%);
            transform: translateY(-101%);
  }
  .l-header:has(:is(.c-drawer-trigger.is-open, .c-header-main-navi__item.is-active)) {
    background-color: #fff;
  }
  .l-header__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    height: 100%;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem);
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
  .l-header__container .c-site-logo {
    width: clamp(12.75rem, 20.5555555556vw, 18.5rem);
  }
}
@layer layout {
  .l-main {
    grid-area: MAIN;
  }
}
@layer layout {
  .l-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: var(--modal-bgc, rgba(0, 0, 0, 0.3));
  }
  .l-modal__container {
    position: relative;
    display: grid;
    grid-template-rows: 64px minmax(0, 1fr) 64px;
    min-height: 100%;
  }
  .l-modal__container::before, .l-modal__container::after {
    content: "";
  }
  @media (min-width: 36.0625em) {
    .l-modal__container {
      grid-template-rows: 100px minmax(0, 1fr) 100px;
      --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
      max-width: var(--content-max-width, 100%);
      margin-left: auto;
      margin-right: auto;
      width: calc(100% - var(--minmax) * 2);
    }
  }
  .l-modal__close {
    position: absolute;
    width: 32px;
    height: 32px;
  }
  .l-modal__close::before, .l-modal__close::after {
    content: "";
    display: block;
    width: 14px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    inset: 0;
    margin: auto;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .l-modal__close::before {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .l-modal__close::after {
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  .l-modal__close:hover {
    opacity: 0.8;
  }
  .l-modal__content {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: auto;
  }
}
@layer layout {
  .l-side {
    grid-area: SIDE;
  }
}
@layer foundation {
  .l-wrapper {
    --header-height: 80px;
    --fixed-header-height: 70px;
    --active-header-height: var(--header-height);
    --caution-height: 0px;
    --max-header-height: calc(var(--header-height) + var(--caution-height));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 100vh;
    scroll-padding-top: var(--active-header-height);
  }
  .l-wrapper::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transition-property: opacity, visibility;
    transition-property: opacity, visibility;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    z-index: 5;
  }
  @media (min-width: 62.0625em) {
    .l-wrapper {
      --header-height: 104px;
      --fixed-header-height: 80px;
      --active-header-height: var(--header-height);
    }
  }
  .l-wrapper:has(.c-header-main-navi__item[data-megamenu].is-active)::before {
    opacity: 1;
    visibility: visible;
    pointer-events: unset;
  }
  .l-wrapper:has(.l-header.headroom--not-top) {
    --active-header-height: var(--fixed-header-height);
  }
  .l-wrapper:has(.c-announcement-bar) {
    --caution-height: clamp(2.1875rem, 3.4722222222vw, 3.125rem);
    --active-header-height: calc(
      var(--header-height) + var(--caution-height)
    );
  }
  .l-wrapper:has(.c-announcement-bar):has(.l-header.headroom--not-top) {
    --active-header-height: var(--fixed-header-height);
  }
  @media (min-width: 62.0625em) {
    .l-wrapper:has(.c-announcement-bar) {
      --active-header-height: calc(
        var(--header-height) + var(--caution-height)
      );
    }
  }
}
@layer component {
  .c-anchor-link {
    border: 1px solid var(--clr--neutral-1);
    padding: 1.125rem clamp(1.25rem, 2.7777777778vw, 2.5rem);
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    border-radius: 0.5rem;
  }
  .c-anchor-link + * {
    --stack-space: clamp(2rem, 2.7777777778vw, 2.5rem);
  }
  .c-anchor-link__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 1.5rem;
  }
  .c-anchor-link__item {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-anchor-link__item .c-svg--angle-bracket {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
}
@layer component {
  .c-archive-selector__label {
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    font-weight: 500;
    margin-bottom: 0.5rem;
    display: block;
  }
  .c-archive-selector__content select {
    width: 100%;
    padding: 1em 2em 1em 1em;
    border: 1px solid var(--clr--neutral-1);
    border-radius: 0.25rem;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    color: #000;
    background: #fff url("/assets/img/common/svg/icon-angle-bracket-down.svg") right 1em center no-repeat;
    background-size: 12px 6px;
  }
  @media (min-width: 62.0625em) {
    .c-archive-selector__content select {
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      min-width: 360px;
    }
  }
}
@layer component {
  .c-breadcrumb {
    padding: 0.5rem max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  }
  .c-breadcrumb__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .c-breadcrumb__item {
    font-size: clamp(0.625rem, 0.8333333333vw, 0.75rem);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-breadcrumb__item:last-child {
    opacity: 0.4;
    overflow: hidden;
  }
  .c-breadcrumb__item:last-child a {
    pointer-events: none;
  }
  .c-breadcrumb__item:last-child span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .c-breadcrumb__item:not(:last-child)::after {
    content: "";
    display: block;
    width: 4px;
    height: 4px;
    background-color: rgba(0, 0, 0, 0.4);
    margin-inline: 1em;
    border-radius: 50%;
  }
}
@layer component {
  .c-button {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: var(--button-items, center);
        -ms-flex-align: var(--button-items, center);
            align-items: var(--button-items, center);
    -webkit-box-pack: var(--button-justify, center);
        -ms-flex-pack: var(--button-justify, center);
            justify-content: var(--button-justify, center);
    gap: var(--button-gap, 1em);
    width: var(--button-w, -webkit-fit-content);
    width: var(--button-w, -moz-fit-content);
    width: var(--button-w, fit-content);
    min-width: var(--button-miw, 0);
    max-width: var(--button-maw, 100%);
    height: var(--button-h, 3.5rem);
    color: var(--button-clr, currentColor);
    border: 1px solid var(--button-bdc, transparent);
    background-color: var(--button-bgc, transparent);
    font-size: var(--button-fz, clamp(0.9375rem, 1.1111111111vw, 1rem));
    font-weight: var(--button-fw, 500);
    -webkit-transition-property: opacity, color, background-color, border-color;
    transition-property: opacity, color, background-color, border-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    line-height: var(--button-lh, 1);
    padding: var(--button-p-y, 0.5em) var(--button-p-x, 1.5em);
  }
  .c-button:hover {
    cursor: pointer;
  }
  .c-button a {
    text-decoration: none;
  }
  .c-button a,
  .c-button span,
  .c-button button,
  .c-button input[type=submit],
  .c-button input[type=button] {
    color: currentColor;
  }
  .c-button a::after,
  .c-button span::after,
  .c-button button::after,
  .c-button input[type=submit]::after,
  .c-button input[type=button]::after {
    content: "";
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-button button,
  .c-button input[type=submit],
  .c-button input[type=button] {
    padding: var(--button-p-y, 0.5em) var(--button-p-x, 1.5em);
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
    outline: none;
    background-color: transparent;
    width: 100%;
    height: 100%;
  }
  .c-button .c-svg,
  .c-button svg {
    width: 1.5em;
    height: 1.5em;
    fill: var(--svg-fill);
  }
  .c-button #square-arrow #square {
    fill: var(--svg-square-arrow-square-fill, transparent);
    stroke: var(--svg-square-arrow-square-stroke, #fff);
  }
  .c-button #square-arrow #arrow {
    fill: var(--svg-square-arrow-arrow-fill, #fff);
  }
  .c-button:disabled {
    cursor: unset;
  }
  .c-button[data-variant*=primary], .c-button:not([data-variant]) {
    --button-clr: #fff;
    --button-bdc: #fff;
    --button-bgc: var(--clr--theme-primary, #000);
    --svg-fill: #fff;
  }
  .c-button[data-variant*=primary]:not(:has(.c-square-icon)):hover, .c-button:not([data-variant]):not(:has(.c-square-icon)):hover {
    --button-bgc: #fff;
    --button-bdc: var(--clr--theme-primary);
    --button-clr: var(--clr--theme-primary);
    --triangle-bgc: var(--clr--theme-primary, #000);
    --svg-fill: var(--clr--theme-primary, #000);
    --svg-bgc: #fff;
  }
  .c-button[data-variant*=primary]:has(.c-square-icon):has(.c-svg--arrow):hover .c-svg--arrow, .c-button:not([data-variant]):has(.c-square-icon):has(.c-svg--arrow):hover .c-svg--arrow {
    -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
            animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
  }
  .c-button[data-variant*=primary]:disabled, .c-button:not([data-variant]):disabled {
    --button-bgc: #888;
  }
  .c-button[data-variant*=secondary] {
    --button-clr: var(--clr--theme-primary);
    --button-bdc: var(--clr--neutral-2);
    --svg-fill: var(--clr--text-default);
  }
  .c-button[data-variant*=secondary]:hover {
    --triangle-bgc: #fff;
    border-color: var(--clr--theme-primary);
  }
  .c-button[data-variant*=secondary]:has(.c-square-icon):has(.c-svg--arrow):hover .c-svg--arrow {
    -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
            animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
  }
  .c-button[data-variant*=white] {
    --button-clr: var(--clr--theme-primary);
    --button-bdc: #fff;
    --button-bgc: #fff;
    --svg-fill: var(--clr--theme-primary);
  }
  .c-button[data-variant*=white]:has(.c-square-icon):has(.c-svg--arrow):hover .c-svg--arrow {
    -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
            animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
  }
  .c-button[data-variant*=back] {
    --square-icon-bdc: transparent;
  }
  .c-button[data-variant*=back] .c-square-icon {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .c-button[data-variant*=short] {
    --button-fz: 0.875rem;
    --button-p-x: 1.125em;
    --button-gap: 0.5em;
    --button-h: 2.5rem;
  }
  .c-button[data-variant*=rounded-sm] {
    border-radius: 4px;
  }
  .c-button[data-variant*=rounded-md] {
    border-radius: 8px;
  }
  .c-button[data-variant*=rounded-full] {
    border-radius: var(--button-h, 3.5rem);
  }
  .c-button[data-variant*=close] {
    --button-fz: clamp(0.8125rem, 0.9722222222vw, 0.875rem);
    padding-left: calc(var(--button-p-x, 1.5em) * 2);
  }
  .c-button[data-variant*=close]::before, .c-button[data-variant*=close]::after {
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background-color: var(--button-clr, currentColor);
    position: absolute;
    left: var(--button-p-x, 1.5em);
    top: 0;
    bottom: 0;
    margin: auto;
    -webkit-transition: background-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: background-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-button[data-variant*=close]::before {
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  .c-button[data-variant*=close]::after {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .c-button[data-variant*=has-triangle] {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .c-button[data-variant*=has-triangle] a {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    text-align: center;
  }
  .c-button[data-variant*=has-triangle]::after {
    content: "";
    width: 0;
    height: 0;
    display: block;
    border-width: 6px 4px 0 4px;
    border-style: solid;
    border-color: var(--triangle-bgc, var(--clr--text-default)) transparent transparent transparent;
    -webkit-transition-property: border-color;
    transition-property: border-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
  }
}
@layer component {
  .c-captioned-heading {
    font-size: clamp(2rem, 2.7777777778vw, 2.5rem);
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    font-weight: 500;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 1.5;
  }
  .c-captioned-heading span {
    display: block;
  }
  .c-captioned-heading span.u-lang-en {
    color: var(--clr--theme-primary);
    font-size: clamp(2rem, 2.7777777778vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
  }
  .c-captioned-heading span.u-lang-ja {
    font-size: clamp(1.5rem, 2.2222222222vw, 2rem);
    font-weight: 500;
  }
  .c-captioned-heading small {
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
    display: block;
    color: initial;
    margin-top: 0.5rem;
  }
}
@layer component {
  .c-category-archive {
    border-top: 2px solid #00288c;
  }
  .c-category-archive__title {
    font-size: clamp(1.125rem, 1.3888888889vw, 1.25rem);
    font-weight: 500;
    padding-block: 2rem;
  }
  .c-category-archive__items {
    border-top: 1px solid #d9d9d9;
  }
  .c-category-archive__item {
    padding-block: 0.5rem;
    border-bottom: 1px solid #d9d9d9;
  }
  .c-category-archive__item.is-open .c-category-archive__trigger {
    --square-icon-bdc: var(--clr--theme-primary);
    background-color: var(--clr--theme-primary-0);
    color: #00288c;
  }
  .c-category-archive__item.is-open .c-category-archive__trigger .c-square-icon::after {
    -webkit-transform: unset;
            transform: unset;
  }
  .c-category-archive__item:not(:has(.c-category-archive__children)) .c-square-icon {
    display: none;
  }
  .c-category-archive__trigger {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0.5rem 1rem;
    border-radius: 0.25rem;
    font-weight: 500;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
    background: transparent;
    width: 100%;
    -webkit-transition: background-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: background-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-category-archive__trigger:hover {
    background-color: var(--clr--neutral-0);
  }
  .c-category-archive__children {
    font-size: 0.875rem;
  }
  .c-category-archive__child {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5rem;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    position: relative;
    padding: 0.5rem 1rem;
    border-radius: 0.25rem;
    margin-top: 0.25rem;
    -webkit-transition-property: color, background-color;
    transition-property: color, background-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-category-archive__child a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-category-archive__child:hover {
    background-color: var(--clr--neutral-0);
  }
  .c-category-archive__child.is-current {
    color: #fff;
    background-color: var(--clr--theme-primary);
  }
}
@layer component {
  .c-category-switcher {
    border-bottom: 1px solid var(--clr--neutral-1);
    overflow: auto;
  }
  .c-category-switcher + .p-section {
    --section-pt: clamp(2.5rem, 3.8888888889vw, 3.5rem);
  }
  .c-category-switcher__inner {
    padding-inline: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
  }
  .c-category-switcher__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem);
  }
  .c-category-switcher__items::after {
    content: "";
    display: block;
    width: 1px;
    height: 10px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .c-category-switcher__item {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    position: relative;
    padding-bottom: clamp(1rem, 1.6666666667vw, 1.5rem);
    border-bottom: 4px solid transparent;
  }
  .c-category-switcher__item a::after {
    content: "";
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-category-switcher__item.is-active {
    border-bottom-color: var(--clr--theme-primary);
    color: var(--clr--theme-primary);
    font-weight: 500;
  }
}
@layer component {
  .c-case-study {
    padding-block: clamp(3rem, 4.4444444444vw, 4rem);
    border-top: 1px solid #ddd;
  }
  .c-case-study__heading .u-lang-en {
    font-size: clamp(1.375rem, 1.6666666667vw, 1.5rem);
    font-weight: 700;
    color: var(--clr--theme-primary);
  }
  .c-case-study__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(2rem, 4.4444444444vw, 4rem);
    counter-reset: case-study-counter;
    margin-top: clamp(2rem, 2.7777777778vw, 2.5rem);
  }
  .c-case-study__cell {
    counter-increment: case-study-counter;
  }
  .c-case-study__title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    gap: 0.5em;
    font-size: clamp(1.125rem, 1.3888888889vw, 1.25rem);
    font-weight: 500;
    line-height: 1.6;
  }
  .c-case-study__title::before {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    font-weight: 700;
    content: counter(case-study-counter, decimal-leading-zero);
    width: 40px;
    height: 36px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    border-radius: 0.25rem;
    background-color: var(--clr--theme-primary);
  }
  .c-case-study__text {
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    line-height: 1.8;
    margin-top: 1em;
  }
}
@layer component {
  .c-contact-banner {
    position: relative;
    container-type: inline-size;
    container-name: contact-banner;
    background-color: var(--clr--theme-primary);
    color: #fff;
    border-radius: 1.5rem;
    padding: 4rem clamp(1.5rem, 5.5555555556vw, 5rem);
  }
  .c-contact-banner::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: cover;
  }
  @container contact-banner (max-width: 560px) {
    .c-contact-banner::before {
      background-image: url("/assets/img/common/contact-bg-opacity@sp.png");
    }
  }
  @container contact-banner (min-width: 560px) {
    .c-contact-banner::before {
      background-image: url("/assets/img/common/contact-bg-opacity@pc.png");
    }
  }
  .c-contact-banner:not(:first-child) {
    margin-top: clamp(5rem, 6.6666666667vw, 6rem);
  }
  .c-contact-banner__grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: clamp(3rem, 3.8888888889vw, 3.5rem);
    position: relative;
    z-index: 2;
  }
  @container contact-banner (max-width: 560px) {
    .c-contact-banner__grid {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
    }
  }
  @container contact-banner (min-width: 560px) {
    .c-contact-banner__grid {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
    }
  }
  .c-contact-banner__heading {
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    font-weight: 700;
    line-height: 1.1;
    font-size: clamp(1rem, 1.6666666667vw, 1.5rem);
  }
  .c-contact-banner__title {
    font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    margin-top: clamp(2.5rem, 3.3333333333vw, 3rem);
    font-weight: 500;
  }
  .c-contact-banner__text {
    margin-top: 1.5rem;
    font-size: 0.875rem;
  }
  .c-contact-banner__label {
    font-size: 0.875rem;
  }
  .c-contact-banner .c-button {
    margin-top: clamp(0.75rem, 1.1111111111vw, 1rem);
  }
}
@layer component {
  .c-definitation-list {
    line-height: 1.8;
  }
  .c-definitation-list__item {
    display: grid;
    gap: 0.5rem 2rem;
    padding-block: clamp(1.5rem, 2.2222222222vw, 2rem);
    border-bottom: 1px solid var(--clr--neutral-1);
  }
  .c-definitation-list__item:first-child {
    border-top: 1px solid var(--clr--neutral-1);
  }
  @media (min-width: 62.0625em) {
    .c-definitation-list__item {
      grid-template-columns: minmax(180px, auto) 1fr;
      gap: 1.5rem 2rem;
    }
  }
  .c-definitation-list__term {
    font-weight: bold;
  }
  .c-definitation-list__description {
    font-size: 1rem;
  }
  .c-definitation-list__description > *:not(hr):not(:first-child) {
    margin-top: var(--definition-list-stack-space, 0.5rem);
  }
  .c-definitation-list__description p small {
    font-size: 0.875em;
  }
  .c-definitation-list__description p:has(b) ~ p {
    --definition-list-stack-space: 1rem;
  }
  .c-definitation-list__description p:has(b) + p {
    --definition-list-stack-space: 1.5rem;
  }
  .c-definitation-list__description dl {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 2em;
  }
  .c-definitation-list__description a[target=_blank]::after {
    content: "";
    width: 12px;
    height: 12px;
    display: inline-block;
    margin-left: 0.5rem;
    background: transparent url("/assets/img/common/svg/icon-target-blank.svg") center center no-repeat;
  }
  .c-definitation-list__description :where(ul, ol):not([class]) {
    padding-left: 1.375em;
    line-height: 1.8;
  }
  .c-definitation-list__description :where(ul, ol):not([class]) li {
    list-style: inherit;
  }
  .c-definitation-list__description :where(ul, ol):not([class]) li:not(:first-of-type) {
    margin-top: var(--definition-list-stack-space, 0.5em);
  }
  .c-definitation-list__description :where(ul, ol):not([class]) li:has(table) {
    padding-bottom: 1em;
  }
  .c-definitation-list__description :where(ul, ol):not([class]) li > * {
    --definition-list-stack-space: 0.375em;
    margin-top: var(--definition-list-stack-space);
  }
  .c-definitation-list__description :where(ul) {
    list-style: outside disc;
  }
  .c-definitation-list__description :where(ul) ul {
    list-style-type: circle;
  }
  .c-definitation-list__description :where(ul) ul ul {
    list-style-type: square;
  }
  .c-definitation-list__description :where(ol) {
    list-style: outside decimal;
  }
  .c-definitation-list__description :where(ol) ol {
    list-style-type: decimal;
  }
  .c-definitation-list__description :where(ol) ol ol {
    list-style-type: lower-alpha;
  }
  .c-definitation-list__description hr {
    margin-block: clamp(1.5rem, 2.2222222222vw, 2rem);
    border-color: var(--clr--neutral-1);
  }
  .c-definitation-list__description iframe[src*="google.com/maps"] {
    aspect-ratio: 5/4;
    width: 600px;
    height: auto;
    border-radius: 1.5rem;
    overflow: hidden;
  }
}
@layer component {
  .c-document-links {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 1.25rem;
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
  }
}
@layer component {
  .c-document:not(:first-child),
  .mce-content-body:not(:first-child) {
    margin-top: clamp(3rem, 5.5555555556vw, 5rem);
  }
  .c-document > *:not(:first-child),
  .mce-content-body > *:not(:first-child) {
    margin-top: var(--stack-space, clamp(2rem, 2.7777777778vw, 2.5rem));
  }
  .c-document :where(section):not(:first-child),
  .mce-content-body :where(section):not(:first-child) {
    margin-top: clamp(4rem, 7.7777777778vw, 7rem);
  }
  .c-document :where(section) > *:not(:first-child),
  .mce-content-body :where(section) > *:not(:first-child) {
    margin-top: var(--stack-space, 1.5em);
  }
  .c-document :where(h2, h3, h4),
  .mce-content-body :where(h2, h3, h4) {
    font-weight: 500;
  }
  .c-document :where(h2),
  .mce-content-body :where(h2) {
    --stack-space: clamp(6rem, 7.7777777778vw, 7rem);
    font-size: clamp(1.75rem, 2.2222222222vw, 2rem);
  }
  .c-document :where(h2) + *,
  .mce-content-body :where(h2) + * {
    --stack-space: clamp(3.5rem, 5.5555555556vw, 5rem);
  }
  .c-document :where(h3),
  .mce-content-body :where(h3) {
    --stack-space: clamp(2.5rem, 4.4444444444vw, 4rem);
    font-size: clamp(1.375rem, 1.6666666667vw, 1.5rem);
  }
  .c-document :where(h3) + *,
  .mce-content-body :where(h3) + * {
    --stack-space: clamp(1rem, 1.6666666667vw, 1.5rem);
  }
  .c-document > :where(figure, picture, img),
  .mce-content-body > :where(figure, picture, img) {
    --stack-space: 3rem;
  }
  .c-document :where(img).aligncenter,
  .mce-content-body :where(img).aligncenter {
    display: block;
    margin-inline: auto;
  }
  .c-document :where(p),
  .mce-content-body :where(p) {
    line-height: 1.8;
  }
  .c-document :where(a),
  .mce-content-body :where(a) {
    text-decoration: underline;
    word-break: break-all;
  }
  .c-document :where(a):hover,
  .mce-content-body :where(a):hover {
    text-decoration: none;
  }
  .c-document :where(ul, ol):not([class]),
  .mce-content-body :where(ul, ol):not([class]) {
    padding-left: 1.375em;
    line-height: 1.8;
  }
  .c-document :where(ul, ol):not([class]) li,
  .mce-content-body :where(ul, ol):not([class]) li {
    list-style: inherit;
  }
  .c-document :where(ul, ol):not([class]) li:not(:first-of-type),
  .mce-content-body :where(ul, ol):not([class]) li:not(:first-of-type) {
    margin-top: var(--stack-space, 1em);
  }
  .c-document :where(ul, ol):not([class]) li:has(table),
  .mce-content-body :where(ul, ol):not([class]) li:has(table) {
    padding-bottom: 1em;
  }
  .c-document :where(ul, ol):not([class]) li > *,
  .mce-content-body :where(ul, ol):not([class]) li > * {
    --stack-space: 0.375em;
    margin-top: var(--stack-space);
  }
  .c-document :where(ul),
  .mce-content-body :where(ul) {
    list-style: outside disc;
  }
  .c-document :where(ul) ul,
  .mce-content-body :where(ul) ul {
    list-style-type: circle;
  }
  .c-document :where(ul) ul ul,
  .mce-content-body :where(ul) ul ul {
    list-style-type: square;
  }
  .c-document :where(ol),
  .mce-content-body :where(ol) {
    list-style: outside decimal;
  }
  .c-document :where(ol) ol,
  .mce-content-body :where(ol) ol {
    list-style-type: decimal;
  }
  .c-document :where(ol) ol ol,
  .mce-content-body :where(ol) ol ol {
    list-style-type: lower-alpha;
  }
  .c-document :where(table),
  .mce-content-body :where(table) {
    width: 100%;
    border: 1px solid #d9d9d9;
    line-height: 1.8;
  }
  .b-overflow-contents .c-document :where(table):has(tr > td:nth-child(3)) td,
  .b-overflow-contents .mce-content-body :where(table):has(tr > td:nth-child(3)) td {
    min-width: 196px;
  }
  @media (max-width: 62em) {
    .c-document :where(table):not(:has(:is(thead, tfoot, colgroup))) tr:not(:has(:is(th):nth-child(3))),
    .mce-content-body :where(table):not(:has(:is(thead, tfoot, colgroup))) tr:not(:has(:is(th):nth-child(3))) {
      display: grid;
    }
  }
  .c-document :where(table) thead:not(:last-child),
  .mce-content-body :where(table) thead:not(:last-child) {
    border-bottom: 1px solid #d9d9d9;
  }
  .c-document :where(table) thead:not(:has(tr[style*=background-color])),
  .mce-content-body :where(table) thead:not(:has(tr[style*=background-color])) {
    background-color: var(--table-thead-bgc, #f0f0f0);
  }
  .c-document :where(table) tbody tr:not(:first-child),
  .mce-content-body :where(table) tbody tr:not(:first-child) {
    border-top-width: 1px;
    border-top-style: solid;
    border-color: #d9d9d9;
  }
  .c-document :where(table) th,
  .c-document :where(table) td,
  .mce-content-body :where(table) th,
  .mce-content-body :where(table) td {
    min-width: 20%;
    padding: 1.25rem;
  }
  .c-document :where(table) th:not(:last-child),
  .c-document :where(table) td:not(:last-child),
  .mce-content-body :where(table) th:not(:last-child),
  .mce-content-body :where(table) td:not(:last-child) {
    border-right: 1px solid transparent;
  }
  .c-document :where(table) th,
  .mce-content-body :where(table) th {
    background-color: var(--clr--neutral-0);
    text-align: left;
  }
  @media (min-width: 62.0625em) {
    .c-document :where(table) th,
    .mce-content-body :where(table) th {
      width: 21.5%;
    }
  }
  .c-document :where(img),
  .mce-content-body :where(img) {
    border-radius: 0.5rem;
  }
  .c-document :where(figcaption),
  .mce-content-body :where(figcaption) {
    font-size: clamp(0.75rem, 0.9027777778vw, 0.8125rem);
    margin-top: 1em;
  }
  .c-document__footer,
  .mce-content-body__footer {
    margin-top: clamp(2.5rem, 4.4444444444vw, 4rem);
  }
  .c-document .p-buttons:not(:first-child),
  .mce-content-body .p-buttons:not(:first-child) {
    --buttons-mt: clamp(2.5rem, 5.5555555556vw, 5rem);
  }
}
@layer component {
  .c-drawer-navi {
    border-top: 1px solid var(--clr--neutral-2);
  }
  .c-drawer-navi__col {
    position: relative;
    border-bottom: 1px solid var(--clr--neutral-2);
    padding-block: 1.5rem;
  }
  .c-drawer-navi__col.is-open .c-drawer-navi__items {
    height: var(--accordion-h);
  }
  .c-drawer-navi__col.is-open .c-square-icon[data-variant*=plus-minus] {
    border-color: var(--clr--theme-primary);
  }
  .c-drawer-navi__col.is-open .c-square-icon[data-variant*=plus-minus]::before, .c-drawer-navi__col.is-open .c-square-icon[data-variant*=plus-minus]::after {
    background-color: var(--clr--theme-primary);
  }
  .c-drawer-navi__col.is-open .c-square-icon[data-variant*=plus-minus]::after {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  .c-drawer-navi__trigger {
    width: 100%;
    padding-inline: 1.5rem;
    border: none;
    background: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    font-weight: 500;
  }
  .c-drawer-navi__trigger[href]::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-drawer-navi__trigger[target=_blank]::after {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background: transparent url("/assets/img/common/svg/icon-target-blank.svg") center center no-repeat;
    background-size: 12px;
  }
  .c-drawer-navi__items {
    padding-inline: 1.5rem;
    height: 0;
    overflow: hidden;
    -webkit-transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-drawer-navi__item {
    padding-block: 0.25rem;
    font-size: 0.875rem;
  }
  .c-drawer-navi__item:first-child {
    padding-top: 1rem;
  }
  .c-drawer-navi__item:not(:first-child) {
    margin-top: 0.25rem;
  }
}
@layer component {
  .c-drawer-trigger {
    background-color: var(--clr--theme-primary);
    width: 3.625rem;
    height: 3.625rem;
    border-radius: 0.5rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .c-drawer-trigger.is-open .c-drawer-trigger__icon::before {
    -webkit-transform: rotate(20deg);
            transform: rotate(20deg);
  }
  .c-drawer-trigger.is-open .c-drawer-trigger__icon::after {
    -webkit-transform: rotate(-20deg);
            transform: rotate(-20deg);
  }
  @media (min-width: 62.0625em) {
    .c-drawer-trigger {
      display: none;
    }
  }
  .c-drawer-trigger__icon {
    position: relative;
    display: block;
    width: 20px;
    height: 20px;
  }
  .c-drawer-trigger__icon::before, .c-drawer-trigger__icon::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #fff;
    position: absolute;
    inset: 0;
    margin: auto;
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-drawer-trigger__icon::before {
    -webkit-transform: translateY(-3px);
            transform: translateY(-3px);
  }
  .c-drawer-trigger__icon::after {
    -webkit-transform: translateY(3px);
            transform: translateY(3px);
  }
  .c-drawer-trigger__label {
    font-size: 0.625rem;
    color: #fff;
    display: block;
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    font-weight: 500;
  }
}
@layer component {
  .c-entry-info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: clamp(0.75rem, 1.6666666667vw, 1.5rem);
  }
  .c-entry-info:not(:first-child) {
    margin-top: clamp(1.5rem, 2.7777777778vw, 2.5rem);
  }
  .c-entry-info__categories {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.75rem;
  }
  .c-entry-info__category {
    position: relative;
    font-size: 0.75rem;
    border: 1px solid var(--clr--neutral-2);
    border-radius: 0.25rem;
    padding: 0.5em 0.625em;
    line-height: 1;
    font-weight: 500;
    color: var(--clr--theme-primary);
    -webkit-transition-property: border-color, color;
    transition-property: border-color, color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-entry-info__category a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  @media (min-width: 62.0625em) {
    .c-entry-info__category:hover {
      border-color: var(--clr--theme-primary);
    }
  }
  .c-entry-info__date {
    font-size: 0.875rem;
    color: var(--clr--neutral-6);
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
}
@layer component {
  .c-entry {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem);
    padding-block: 1.5rem;
    border-bottom: 1px solid var(--clr--neutral-1);
    -webkit-transition-property: border-color;
    transition-property: border-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-entry:first-child:last-child {
    border-bottom: none;
  }
  @media (max-width: 62em) {
    .c-entry .c-square-icon {
      display: none;
    }
  }
  @media (min-width: 62.0625em) {
    .c-entry:has(a[href]):hover {
      --square-icon-bdc: var(--clr--theme-primary);
      border-color: var(--clr--theme-primary);
    }
    .c-entry:has(a[href]):hover .c-entry__title {
      color: var(--clr--theme-primary);
    }
    .c-entry:has(a[href]):hover .c-entry-info__date {
      color: var(--clr--theme-primary);
    }
    .c-entry:has(a[href]):hover .c-svg--arrow {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
    .c-entry .c-square-icon {
      -ms-flex-item-align: center;
          align-self: center;
    }
  }
  .c-entry__img {
    width: clamp(6rem, 15.2777777778vw, 13.75rem);
    height: auto;
  }
  .c-entry__img img {
    width: 100%;
  }
  .c-entry__img a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-entry__content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-entry__title {
    line-height: 1.8;
    font-size: clamp(1rem, 1.3888888889vw, 1.25rem);
    font-weight: 500;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-entry__title:not(:first-child) {
    margin-top: 1rem;
  }
  .c-entry__title:has(em) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 1em;
  }
  .c-entry__title a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-entry__title .c-svg--target-blank {
    width: 0.75rem;
    display: inline-block;
    margin-left: 0.5rem;
  }
  .c-entry__title em {
    display: inline-block;
    height: 1.8em;
    font-style: normal;
    margin-left: 0.5rem;
    vertical-align: text-bottom;
  }
  .c-entry__title em::before {
    display: inline-block;
    content: var(--entry-title-tag-label);
    padding-inline: 0.5em;
    font-family: var(--ff--en);
    background-color: var(--entry-title-tag-bgc, #999);
    color: var(--entry-title-tag-clr, #fff);
    line-height: 1.8;
    font-size: 0.625rem;
    font-weight: 500;
    text-align: center;
    border-radius: 20px;
    min-width: 54px;
    max-width: -webkit-fit-content;
    max-width: -moz-fit-content;
    max-width: fit-content;
    height: 18px;
  }
  .c-entry__title em::after {
    content: "(" attr(data-size) ")";
    font-size: 0.75rem;
    font-weight: normal;
    display: inline-block;
    margin-left: 0.5rem;
  }
  .c-entry__title em[data-variant=pdf] {
    --entry-title-tag-label: "PDF";
    --entry-title-tag-bgc: #d93a3a;
  }
}
@layer component {
  @media (max-width: 62em) {
    .c-footer-main-navi {
      border-top: 1px solid rgba(255, 255, 255, 0.2);
    }
  }
  .c-footer-main-navi__grid {
    display: grid;
  }
  @media (min-width: 62.0625em) {
    .c-footer-main-navi__grid {
      gap: 1.5rem;
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .c-footer-main-navi__col {
    position: relative;
  }
  @media (max-width: 62em) {
    .c-footer-main-navi__col {
      padding-block: 1.5rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }
    .c-footer-main-navi__col.is-open .c-footer-main-navi__items {
      height: var(--accordion-h);
    }
    .c-footer-main-navi__col.is-open .c-square-icon[data-variant*=plus-minus]::after {
      -webkit-transform: rotate(0);
              transform: rotate(0);
    }
  }
  .c-footer-main-navi__trigger {
    width: 100%;
    border: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-weight: 500;
  }
  .c-footer-main-navi__trigger a {
    -webkit-transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-footer-main-navi__trigger:has(.c-square-icon) {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  @media (max-width: 62em) {
    .c-footer-main-navi__trigger {
      padding-inline: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
    }
    .c-footer-main-navi__trigger a {
      pointer-events: none;
    }
  }
  @media (min-width: 62.0625em) {
    .c-footer-main-navi__trigger .c-square-icon {
      display: none;
    }
    .c-footer-main-navi__trigger a:hover {
      opacity: 0.6;
    }
  }
  @media (max-width: 62em) {
    .c-footer-main-navi__items {
      padding-inline: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
      height: 0;
      overflow: hidden;
      -webkit-transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
      transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    }
  }
  @media (min-width: 62.0625em) {
    .c-footer-main-navi__items {
      margin-top: 1rem;
    }
  }
  .c-footer-main-navi__item {
    padding-block: 0.25rem;
    font-size: 0.875rem;
  }
  .c-footer-main-navi__item a {
    -webkit-transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  @media (max-width: 62em) {
    .c-footer-main-navi__item:first-child {
      padding-top: 1rem;
    }
    .c-footer-main-navi__item:not(:first-child) {
      margin-top: 0.25rem;
    }
  }
  @media (min-width: 62.0625em) {
    .c-footer-main-navi__item[data-pc-hide] {
      display: none;
    }
    .c-footer-main-navi__item a:hover {
      opacity: 0.6;
    }
  }
}
@layer component {
  .c-footer-sub-navi__trigger {
    width: 100%;
    border: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-weight: 500;
    gap: 0.5rem;
  }
  .c-footer-sub-navi__trigger a {
    -webkit-transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-footer-sub-navi__trigger + .c-footer-sub-navi__trigger {
    margin-top: 1rem;
  }
  .c-footer-sub-navi__trigger:has(.c-square-icon) {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .c-footer-sub-navi__trigger:has(a[target=_blank])::after {
    content: "";
    display: block;
    width: 0.75rem;
    height: 0.75rem;
    background: transparent url("/assets/img/common/svg/icon-target-blank-white.svg") center center no-repeat;
  }
  @media (max-width: 62em) {
    .c-footer-sub-navi__trigger {
      padding-inline: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
    }
  }
  @media (min-width: 62.0625em) {
    .c-footer-sub-navi__trigger .c-square-icon {
      display: none;
    }
    .c-footer-sub-navi__trigger a:hover {
      opacity: 0.6;
    }
  }
  .c-footer-sub-navi__items {
    margin-top: 2rem;
    display: grid;
    gap: 0.5rem;
  }
  @media (max-width: 62em) {
    .c-footer-sub-navi__items {
      padding-inline: max(var(--content-min-margin, 24) * 1px, var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw);
    }
  }
  .c-footer-sub-navi__item {
    font-size: 0.75rem;
  }
  .c-footer-sub-navi__item a {
    -webkit-transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  @media (min-width: 62.0625em) {
    .c-footer-sub-navi__item a:hover {
      opacity: 0.6;
    }
  }
}
@layer component {
  .c-form {
    margin-top: clamp(3rem, 5.5555555556vw, 5rem);
  }
  .c-form__body {
    display: grid;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem);
  }
  .c-form__body:not(:first-child) {
    margin-top: clamp(2rem, 3.3333333333vw, 3rem);
  }
  .c-form__footer {
    --buttons-direction: column;
    --buttons-items: start;
    --buttons-gap-y: clamp(2rem, 4.4444444444vw, 4rem);
    margin-top: clamp(2rem, 4.4444444444vw, 4rem);
  }
}
@layer component {
  .c-form-field {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5rem;
    line-height: 1.8;
  }
  .c-form-field input:is([type=text], [type=email], [type=number], [type=tel]),
  .c-form-field textarea,
  .c-form-field select {
    background-color: #f0f0f0;
    padding: 1em;
    border: none;
    border-radius: 0.25rem;
  }
  .c-form-field input:is([type=text], [type=email], [type=number], [type=tel]):not(:forcus),
  .c-form-field textarea:not(:forcus),
  .c-form-field select:not(:forcus) {
    outline-color: transparent;
  }
  .c-form-field input:is([type=text], [type=email], [type=number], [type=tel]):forcus,
  .c-form-field textarea:forcus,
  .c-form-field select:forcus {
    outline-color: var(--clr--theme-primary);
  }
  .c-form-field input:is([type=text], [type=email], [type=number], [type=tel]) {
    width: 100%;
  }
  .c-form-field input:is([type=checkbox], [type=radio]) {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #f2f2f2;
    width: 1.25em;
    height: 1.25em;
  }
  .c-form-field input[type=checkbox] {
    border-radius: 4px;
  }
  .c-form-field input[type=checkbox]:checked {
    background: var(--clr--theme-primary) url("/assets/img/common/svg/icon-checked.svg") center center no-repeat;
    background-size: 60%;
  }
  .c-form-field input[type=radio] {
    border-radius: 50%;
    border: 1px solid #000;
  }
  .c-form-field input[type=radio]:checked {
    border-color: var(--clr--theme-primary);
    border-width: 2px;
    background-image: radial-gradient(var(--clr--theme-primary), var(--clr--theme-primary) 50%, transparent 55%, transparent 100%);
  }
  .c-form-field textarea {
    width: 100%;
    resize: none;
  }
  .c-form-field select {
    padding: 1em 2em 1em 1em;
    border: none;
    border-radius: 0.25rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: #f0f0f0 url("/assets/img/common/svg/icon-angle-bracket-down.svg") right 1em center no-repeat;
    background-size: 12px 6px;
  }
  .c-form-field label {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
  .c-form-field label:has(> input) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5rem;
  }
  .c-form-field label:has(> input):hover {
    cursor: pointer;
  }
  .c-form-field__cell {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-form-field__cell:has(:is(input[name="required[]"]:not(:disabled)), input[type=radio]) .c-form-field__label::after {
    content: " *";
    color: red;
  }
  .c-form-field__label {
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    font-weight: 500;
    margin-bottom: 0.5rem;
    display: block;
  }
  .c-form-field__caution {
    margin-top: 0.25rem;
  }
  .c-form-field__caution a {
    text-decoration: underline;
  }
  .c-form-field__caution a:hover {
    text-decoration: none;
  }
}
@layer component {
  .c-header-main-navi__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: clamp(1.25rem, 1.6666666667vw, 1.5rem);
    font-size: clamp(1rem, 1.25vw, 1.125rem);
  }
  .c-header-main-navi__item {
    position: relative;
    font-weight: 500;
    height: var(--active-header-height);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-header-main-navi__item a {
    position: relative;
    display: block;
    padding-block: 0.5em;
  }
  .c-header-main-navi__item a::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  .c-header-main-navi__item a::after {
    content: "";
    display: block;
    width: 0;
    height: 3px;
    border-radius: 3px;
    background-color: var(--clr--theme-primary-2);
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    -webkit-transition: width 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: width 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-header-main-navi__item a:hover::after {
    width: 100%;
  }
  .c-header-main-navi__item:has(a[target=_blank]) {
    gap: 0.25rem;
  }
  .c-header-main-navi__item:has(a[target=_blank])::after {
    content: "";
    display: block;
    width: 0.75rem;
    height: 0.75rem;
    background: transparent url("/assets/img/common/svg/icon-target-blank.svg") center center no-repeat;
  }
  .c-header-main-navi__item.is-current a::after {
    width: 100%;
    background-color: var(--clr--theme-primary);
  }
  .c-header-main-navi__item[data-megamenu] {
    padding-right: 1em;
  }
  .c-header-main-navi__item[data-megamenu]::before, .c-header-main-navi__item[data-megamenu]::after {
    content: "";
    display: block;
    width: 0.5em;
    height: 1px;
    background-color: var(--clr--theme-primary);
    position: absolute;
    top: 0;
    right: 0.25em;
    bottom: 0;
    margin: auto;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, -webkit-transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-header-main-navi__item[data-megamenu]:not(.is-active)::after {
    -webkit-transform: rotateZ(-90deg);
            transform: rotateZ(-90deg);
  }
  .c-header-main-navi__item[data-megamenu].is-active a::after {
    width: 100%;
  }
}
@layer component {
  .c-header-sub-navi {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .c-header-sub-navi__items {
    height: var(--header-height);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: clamp(1.25rem, 1.6666666667vw, 1.5rem);
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
  }
  .c-header-sub-navi__item {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 1em 2em;
    background-color: var(--clr--theme-primary);
    color: #fff;
    border-radius: 0.5rem;
    font-weight: 500;
  }
  .c-header-sub-navi__item a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
}
@layer component {
  .c-issue-card-list {
    display: grid;
    gap: 2.5rem;
  }
}
@layer component {
  .c-issue-card {
    padding: 40px;
    border-radius: 16px;
    background-color: var(--clr--theme-primary-0);
    display: grid;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem) clamp(2.5rem, 5.5555555556vw, 5rem);
  }
  @media (min-width: 62.0625em) {
    .c-issue-card {
      grid-template-columns: 300px minmax(0, 1fr);
    }
  }
  [class*=u-bg-] .c-issue-card {
    background-color: #fff;
  }
  .c-issue-card__heading {
    font-size: clamp(1.5rem, 1.6666666667vw, 1.5rem);
    font-weight: 500;
  }
  .c-issue-card__heading:not(:first-child) {
    margin-top: 1rem;
  }
  .c-issue-card__lead {
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    line-height: 1.8;
  }
  .c-issue-card__lead:not(:first-child) {
    margin-top: clamp(1.25rem, 2.7777777778vw, 2.5rem);
  }
  .c-issue-card__item {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 1em;
    padding-block: clamp(1.5rem, 2.2222222222vw, 2rem);
    border-bottom: 1px solid #ddd;
    font-size: clamp(1.125rem, 1.3888888889vw, 1.25rem);
    font-weight: 500;
  }
  .c-issue-card__item a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
}
@layer component {
  .c-megamenu-navi + .c-megamenu-navi {
    margin-top: 2rem;
  }
  .c-megamenu-navi__title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-weight: 500;
    gap: 0.5rem;
  }
  @media (min-width: 62.0625em) {
    .c-megamenu-navi__title:has(.c-square-icon):has(.c-svg--angle-bracket):hover {
      --square-icon-bdc: var(--clr--theme-primary);
    }
    .c-megamenu-navi__title:has(.c-square-icon):has(.c-svg--angle-bracket):hover .c-svg--angle-bracket {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
  .c-megamenu-navi__items {
    display: grid;
    gap: 0.5rem 0;
    margin-top: 1rem;
  }
  .c-megamenu-navi__item {
    font-size: 0.8125rem;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-megamenu-navi__item:has(.c-square-icon) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.25rem;
  }
  .c-megamenu-navi__item:has(a[target=_blank]) {
    --square-icon-bdc: transparent;
  }
  @media (min-width: 62.0625em) {
    .c-megamenu-navi__item:hover {
      color: var(--clr--theme-primary);
    }
  }
}
@layer component {
  .c-megamenu {
    padding: 40px 0 48px;
    -webkit-transition-property: opacity, visibility;
    transition-property: opacity, visibility;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-megamenu:not(.is-active) {
    opacity: 0;
    visibility: hidden;
    height: 0;
    z-index: -1;
  }
  .c-megamenu__header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 1.5rem;
  }
  .c-megamenu__heading {
    font-size: 1.5rem;
    font-weight: 500;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-megamenu__tools {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 0.5rem;
  }
  .c-megamenu__close {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--clr--neutral-0);
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
  }
  .c-megamenu__close::before, .c-megamenu__close::after {
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background-color: #000;
    position: absolute;
    inset: 0;
    margin: auto;
  }
  .c-megamenu__close::before {
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  .c-megamenu__close::after {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .c-megamenu__body:has(.c-megamenu__content:nth-child(2)) {
    display: grid;
  }
  .c-megamenu__body:has(.c-megamenu__content:nth-child(2)) .c-megamenu__content {
    grid-area: 1/-1;
  }
  .c-megamenu__content {
    padding-top: 2rem;
    -webkit-transition-property: opacity, visibility;
    transition-property: opacity, visibility;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-megamenu__content:not(.is-active) {
    visibility: hidden;
    opacity: 0;
  }
  .c-megamenu__block {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem 2.5rem;
  }
  .c-megamenu__block + .c-megamenu__block {
    margin-top: 2rem;
  }
}
@layer component {
  .c-ornament {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
  }
  .is-window-loaded .c-ornament .c-ornament__item img {
    -webkit-transform: translateX(0) translateY(0);
            transform: translateX(0) translateY(0);
    opacity: 1;
  }
  @media (max-width: 62em) {
    .c-ornament {
      --img-w: 144;
      --img-h: 109;
    }
  }
  @media (min-width: 62.0625em) {
    .c-ornament {
      --img-w: 224;
      --img-h: 170;
    }
  }
  .c-ornament--home {
    --delay-base: 1.4s;
  }
  @media (max-width: 62em) {
    .c-ornament--home {
      --root-w: 390;
      --root-h: 574;
    }
  }
  @media (min-width: 62.0625em) {
    .c-ornament--home {
      --root-w: 1440;
      --root-h: 740;
    }
  }
  .c-ornament--home .c-ornament__item:nth-child(1) {
    --translate: translateY(
      calc(
        (var(--top) / var(--img-h) * 100%) + var(--parallax-value, 0px)
      )
    );
    left: calc(var(--left) / var(--root-w) * 100%);
  }
  @media (max-width: 62em) {
    .c-ornament--home .c-ornament__item:nth-child(1) {
      --top: -60;
      --left: 185;
    }
  }
  @media (min-width: 62.0625em) {
    .c-ornament--home .c-ornament__item:nth-child(1) {
      --top: -66;
      --left: 430;
    }
  }
  .c-ornament--home .c-ornament__item:nth-child(2) {
    --translate: translateX(calc(var(--left) / var(--img-w) * 100%))
      translateY(var(--parallax-value, 0px));
    top: calc(var(--top) / var(--root-h) * 100%);
    left: 0;
  }
  @media (max-width: 62em) {
    .c-ornament--home .c-ornament__item:nth-child(2) {
      --top: 260;
      --left: -102;
    }
  }
  @media (min-width: 62.0625em) {
    .c-ornament--home .c-ornament__item:nth-child(2) {
      --top: 278;
      --left: -128;
    }
  }
  .c-ornament--home .c-ornament__item:nth-child(3) {
    --translate: translateX(calc(var(--right) / var(--img-w) * 100%))
      translateY(var(--parallax-value, 0px));
    top: calc(var(--top) / var(--root-h) * 100%);
    right: 0;
  }
  @media (max-width: 62em) {
    .c-ornament--home .c-ornament__item:nth-child(3) {
      --top: 465;
      --right: 96;
    }
  }
  @media (min-width: 62.0625em) {
    .c-ornament--home .c-ornament__item:nth-child(3) {
      --top: 570;
      --right: 152;
    }
  }
  .c-ornament__inner {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: var(--root-w)/var(--root-h);
  }
  .c-ornament__item {
    position: absolute;
    -webkit-transform: var(--translate, translate(0)) var(--rotate, rotate(0));
            transform: var(--translate, translate(0)) var(--rotate, rotate(0));
    width: calc(var(--img-w) / var(--root-w) * 100%);
  }
  .c-ornament__item:nth-child(2) {
    --delay: 0.12s;
  }
  .c-ornament__item:nth-child(3) {
    --delay: 0.24s;
  }
  .c-ornament__item img {
    opacity: 0;
    -webkit-transform: translateX(-100%) translateY(100%);
            transform: translateX(-100%) translateY(100%);
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    transition-property: opacity, transform, -webkit-transform;
    -webkit-transition-duration: 0.8s;
            transition-duration: 0.8s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: calc(var(--delay-base) + var(--delay, 0s));
            transition-delay: calc(var(--delay-base) + var(--delay, 0s));
  }
  .c-ornament__item.is-rotate-x {
    --rotate: rotateX(180deg);
  }
  .c-ornament__item.is-rotate-x img {
    -webkit-transform: translateX(-100%) translateY(100%);
            transform: translateX(-100%) translateY(100%);
  }
  .c-ornament__item.is-rotate-z {
    --rotate: rotateZ(180deg);
  }
}
@layer component {
  .c-page-links__items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0 clamp(1.25rem, 2.7777777778vw, 2.5rem);
  }
  .c-page-links__item {
    position: relative;
    padding: 1.5em 0;
    border-bottom: 1px solid var(--clr--neutral-1);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-transition-property: border-color;
    transition-property: border-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-page-links__item a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  @media (min-width: 62.0625em) {
    .c-page-links__item:hover {
      --square-icon-bdc: var(--clr--theme-primary);
      border-color: var(--clr--theme-primary);
    }
    .c-page-links__item:hover .c-svg--arrow {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
}
@layer component {
  .c-page-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem) 2.5rem;
  }
  @media (min-width: 62.0625em) {
    .c-page-list {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .c-page-list__item {
    position: relative;
    border-radius: 0.5rem;
    overflow: hidden;
    background-color: #fff;
  }
  .c-page-list__img {
    width: 100%;
    background-color: var(--clr--theme-primary-0);
  }
  .c-page-list__img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .c-page-list__content {
    padding: 2.5rem;
  }
  .c-page-list__title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-page-list__title a::after {
    content: "";
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  @media (min-width: 62.0625em) {
    .c-page-list__title:hover {
      color: var(--clr--theme-primary);
      --square-icon-bdc: var(--clr--theme-primary);
    }
    .c-page-list__title:hover .c-svg--arrow {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
}
@layer component {
  .c-pagination {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: clamp(2.5rem, 5.5555555556vw, 5rem);
  }
  .c-pagination__item {
    position: relative;
    color: var(--clr--theme-primary);
    width: 44px;
    height: 44px;
    font-weight: bold;
    border-bottom: 1px solid var(--clr--neutral-1);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
  }
  .c-pagination__item.is-current::after {
    content: "";
    display: block;
    width: 100%;
    height: 4px;
    background-color: var(--clr--theme-primary);
    position: absolute;
    bottom: -1px;
  }
}
@layer component {
  .c-section-card {
    container-name: section-card;
    container-type: inline-size;
    background-color: #fff;
    padding: clamp(4rem, 6.6666666667vw, 6rem) clamp(1.5rem, 5.5555555556vw, 5rem);
    border-radius: 1.5rem;
  }
  .c-section-introduction + .c-section-card {
    margin-top: clamp(3rem, 4.4444444444vw, 4rem);
  }
  .c-section-card + .c-section-card {
    margin-top: clamp(1.75rem, 2.7777777778vw, 2.5rem);
  }
}
@layer component {
  .c-section-introduction + * {
    margin-top: clamp(3rem, 4.4444444444vw, 4rem);
  }
  .c-section-introduction:not(:first-child) {
    margin-top: clamp(1.5rem, 2.7777777778vw, 2.5rem);
  }
  .c-section-introduction:not(:has(.c-section-introduction__lead)) {
    text-align: center;
  }
  .c-section-introduction__grid {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: clamp(1.25rem, 2.7777777778vw, 2.5rem);
  }
  @media (max-width: 62em) {
    .c-section-introduction__grid {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
    }
  }
  .c-section-introduction__cell {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-section-introduction__heading {
    font-size: clamp(2rem, 2.7777777778vw, 2.5rem);
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    font-weight: 500;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 1.5;
  }
  .c-section-introduction__heading span {
    display: block;
  }
  .c-section-introduction__heading span.u-lang-en {
    color: var(--clr--theme-primary);
    font-size: clamp(2rem, 2.7777777778vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
  }
  .c-section-introduction__heading span.u-lang-ja {
    font-size: clamp(1.5rem, 2.2222222222vw, 2rem);
    font-weight: 500;
  }
  .c-section-introduction__heading small {
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
    display: block;
    color: initial;
    margin-top: 0.5rem;
  }
  .c-section-introduction__lead {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
    line-height: 1.8;
  }
  .c-section-introduction__lead:not(:first-child) {
    margin-top: 1.5rem;
  }
}
@layer component {
  .c-service-card-list {
    display: grid;
    gap: clamp(1.5rem, 2.7777777778vw, 2.5rem);
  }
  .c-service-card-list[data-max-col="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  @media (min-width: 36.0625em) {
    .c-service-card-list[data-max-col="3"] {
      grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
  }
  @media (min-width: 93.8125em) {
    .c-service-card-list[data-max-col="3"] {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  @media (min-width: 36.0625em) {
    .c-service-card-list {
      grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    }
    .c-service-card-list:has(.c-service-card__heading) {
      grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    }
  }
  @media (min-width: 93.8125em) {
    .c-service-card-list {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .c-service-card-list:has(.c-service-card__heading) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
}
@layer component {
  .c-service-card {
    --tag-cloud-mt: clamp(1rem, 2.2222222222vw, 2rem);
    position: relative;
    padding: clamp(2rem, 2.7777777778vw, 2.5rem) clamp(1.5rem, 2.7777777778vw, 2.5rem);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 0;
    border-radius: 16px;
    background-color: var(--clr--neutral-0);
  }
  .c-service-card:not(:has(.c-service-card__links)) .c-service-card__heading2 a::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
  }
  [class*=u-bg-] .c-service-card {
    background-color: #fff;
  }
  .c-service-card:has(> .c-button) .c-service-card__content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-service-card__logo {
    text-align: center;
  }
  .c-service-card__heading {
    font-size: clamp(1.25rem, 1.6666666667vw, 1.5rem);
    font-weight: 500;
    margin-top: 1rem;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  .c-service-card__heading2 {
    font-size: clamp(1.125rem, 1.3888888889vw, 1.25rem);
    font-weight: 500;
    margin-top: 1rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  @media (min-width: 62.0625em) {
    .c-service-card__heading2:hover {
      --square-icon-bdc: var(--clr--theme-primary);
      color: var(--clr--theme-primary);
    }
    .c-service-card__heading2:has(.c-square-icon):has(.c-svg--arrow):hover .c-svg--arrow {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
  .c-service-card__tag {
    display: block;
    font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
    color: var(--clr--theme-primary);
    margin-top: 0.5rem;
  }
  .c-service-card__content:has(.c-service-card__links) {
    margin-top: clamp(2rem, 3.3333333333vw, 3rem);
  }
  .c-service-card__content:has(.c-service-card__lead) {
    margin-top: clamp(1.5rem, 2.2222222222vw, 2rem);
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-service-card__links {
    display: grid;
    gap: 0.5rem clamp(0.75rem, 1.6666666667vw, 1.5rem);
  }
  .c-service-card__link {
    line-height: 1.8;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5rem;
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
    -ms-flex-item-align: end;
        align-self: flex-end;
    -webkit-transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
  @media (min-width: 62.0625em) {
    .c-service-card__link:hover {
      --square-icon-bdc: var(--clr--theme-primary);
      color: var(--clr--theme-primary);
    }
    .c-service-card__link:hover .c-svg--angle-bracket {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
  .c-service-card__lead {
    line-height: 1.8;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    word-break: break-all;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .c-service-card .c-button {
    margin-left: auto;
    margin-top: 2rem;
  }
}
.c-site-logo {
  font-size: clamp(1.5rem, 2.2222222222vw, 2rem);
  font-weight: bold;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-site-logo img {
  display: block;
}

@layer component {
  .c-square-icon {
    position: relative;
    width: var(--square-icon-size, 20px);
    height: var(--square-icon-size, 20px);
    border-radius: calc(var(--square-icon-size, 20px) / 5);
    border: 1px solid var(--square-icon-bdc, #d9d9d9);
    background-color: var(--square-icon-bgc, transparent);
    -webkit-transition-property: border-color, background-color;
    transition-property: border-color, background-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    overflow: hidden;
  }
  .c-square-icon--borderless {
    border-color: transparent;
  }
  .c-square-icon svg {
    width: 100%;
    fill: var(--square-icon-fill, var(--clr--theme-primary));
  }
  .c-square-icon .c-svg--arrow {
    width: calc(var(--square-icon-size, 20px) / 2);
  }
  .c-square-icon .c-svg--angle-bracket {
    width: calc(var(--square-icon-size, 20px) / 3.334);
  }
  .c-square-icon .c-svg--target-blank {
    width: calc(var(--square-icon-size, 20px) / 2);
  }
  .c-square-icon[data-variant=plus-minus]::before, .c-square-icon[data-variant=plus-minus]::after {
    content: "";
    display: block;
    width: calc(var(--square-icon-size, 20px) / 2.5);
    height: 1px;
    position: absolute;
    inset: 0;
    margin: auto;
    background-color: var(--square-icon-color, currentColor);
    border-radius: 2px;
    -webkit-transition-property: background-color, -webkit-transform;
    transition-property: background-color, -webkit-transform;
    transition-property: background-color, transform;
    transition-property: background-color, transform, -webkit-transform;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-square-icon[data-variant=plus-minus]::after {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
}
.c-steps {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5rem;
  counter-reset: steps-counter;
}
.c-steps__item {
  height: 60px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  text-align: center;
  background-color: var(--clr--theme-primary);
  color: #fff;
  counter-increment: steps-counter;
  border-radius: 0.5rem;
}
.c-steps__item::before {
  content: counter(steps-counter, decimal-leading-zero);
  position: absolute;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  top: 50%;
  left: 1.25rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-family: var(--ff--en);
  letter-spacing: 0.02em;
  font-weight: 700;
  font-size: clamp(0.75rem, 0.9722222222vw, 0.875rem);
  display: block;
  line-height: 1;
}
.c-steps__item:not(.is-current) {
  opacity: 0.2;
}

@layer component {
  .c-svg {
    display: block;
    fill: var(--svg-fill, #000);
    stroke: var(--svg-stroke, none);
    -webkit-transition-property: fill, stroke;
    transition-property: fill, stroke;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-svg--arrow {
    aspect-ratio: 38/32;
  }
  .c-svg--angle-bracket {
    aspect-ratio: 21/32;
  }
  .c-svg--bg-arch {
    aspect-ratio: 480/32;
  }
  .c-svg--target-blank {
    aspect-ratio: 38/32;
  }
}
@layer component {
  .c-swiper-controller {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: clamp(0.5rem, 1.1111111111vw, 1rem);
  }
  .c-swiper-button {
    position: relative;
    width: clamp(2.5rem, 3.3333333333vw, 3rem);
    height: clamp(2.5rem, 3.3333333333vw, 3rem);
    border-radius: 0.25rem;
    border: 1px solid var(--clr--neutral-1);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-transition-property: border-color;
    transition-property: border-color;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .c-swiper-button .c-svg {
    width: 12px;
    fill: var(--clr--theme-primary);
  }
  .c-swiper-button-prev {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .c-swiper-button:hover {
    cursor: pointer;
  }
  @media (min-width: 62.0625em) {
    .c-swiper-button:hover {
      border-color: var(--clr--theme-primary);
    }
    .c-swiper-button:hover .c-svg--arrow {
      -webkit-animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
              animation: icon-arrow-animation 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s forwards;
    }
  }
}
@layer component {
  .c-tab-switcher {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5rem;
  }
  .c-tab-switcher__item {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
    border-radius: 50px;
    height: 36px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 0.375rem 1rem;
    font-size: 0.8125rem;
  }
  .c-tab-switcher__item.is-active {
    background-color: var(--clr--theme-primary);
    color: #fff;
  }
}
@layer component {
  .c-tag-cloud {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-top: var(--tag-cloud-mt, 0);
  }
  .c-tag-cloud__item {
    padding: 0.375em 0.625em;
    font-size: 0.75rem;
    border: 1px solid var(--clr--neutral-1);
    color: var(--clr--neutral-5);
    line-height: 1.1;
    border-radius: 0.25rem;
  }
}
@layer project {
  .p-buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: var(--buttons-items, center);
        -ms-flex-align: var(--buttons-items, center);
            align-items: var(--buttons-items, center);
    -webkit-box-pack: var(--buttons-justify, center);
        -ms-flex-pack: var(--buttons-justify, center);
            justify-content: var(--buttons-justify, center);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: var(--buttons-direction, row);
            flex-direction: var(--buttons-direction, row);
    gap: var(--buttons-gap-y, clamp(0.5rem, 0.8333333333vw, 0.75rem)) var(--buttons-gap-x, clamp(0.75rem, 1.6666666667vw, 1.5rem));
    width: var(--buttons-w, auto);
    margin-top: var(--buttons-mt, 0);
  }
  @media (max-width: 62em) {
    .p-buttons {
      --buttons-direction: column;
    }
  }
}
@layer project {
  .p-footer-main {
    padding-block: clamp(4rem, 5.5555555556vw, 5rem);
  }
  @media (min-width: 62.0625em) {
    .p-footer-main .p-footer-main__inner {
      --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
      max-width: var(--content-max-width, 100%);
      margin-left: auto;
      margin-right: auto;
      width: calc(100% - var(--minmax) * 2);
      grid-template-columns: 4fr 1fr;
    }
  }
  .p-footer-main__inner {
    display: grid;
    gap: 3rem 1.5rem;
  }
}
@layer project {
  .p-footer-sub {
    padding-block: clamp(3rem, 4.4444444444vw, 4rem) clamp(4rem, 5.5555555556vw, 5rem);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
  }
  .p-footer-sub__inner {
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
  @media (min-width: 62.0625em) {
    .p-footer-sub__inner {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
  .p-footer-sub__text {
    margin-top: 2rem;
    font-size: 0.75rem;
  }
  .p-footer-sub__copy {
    font-size: 0.625rem;
    color: rgba(255, 255, 255, 0.6);
  }
  @media (max-width: 62em) {
    .p-footer-sub__copy {
      margin-top: 1.5rem;
    }
  }
}
@layer project {
  .p-header-navi {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2.5rem;
  }
  @media (max-width: 62em) {
    .p-header-navi {
      display: none;
    }
  }
}
@layer project {
  .p-main-column {
    container-name: main-column;
    container-type: inline-size;
  }
}
@layer project {
  .p-megamenu-container {
    position: fixed;
    top: var(--active-header-height);
    left: 0;
    width: 100%;
    height: var(--megamenu-h, 0);
    overflow: hidden;
    background-color: #fff;
    z-index: 100;
    border-radius: 0 0 1.5rem 1.5rem;
    -webkit-transition-property: height, top;
    transition-property: height, top;
    -webkit-transition-duration: 0.4s;
            transition-duration: 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
            transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transition-delay: 0s;
            transition-delay: 0s;
  }
  .p-megamenu-container__inner {
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 1280px);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
    display: grid;
  }
  .p-megamenu-container__inner > * {
    grid-area: 1/-1;
  }
}
@layer project {
  .p-news-list__content:not(:first-child) {
    margin-top: clamp(2.5rem, 4.4444444444vw, 4rem);
  }
}
@layer project {}
@layer project {
  .p-page-body:has(> .p-section--arch:first-child) {
    margin-top: clamp(2.5rem, 6.6666666667vw, 6rem);
  }
  .p-page-body:has(> [class*=u-bg]:last-child) {
    --page-footer-bgc: var(--u-bgc, #fff);
  }
  .p-page-body > *:last-child {
    padding-bottom: clamp(6rem, 8.8888888889vw, 8rem);
  }
  .p-page-body__inner {
    display: grid;
    gap: var(--gap-block, clamp(1.75rem, 2.7777777778vw, 2.5rem)) var(--gap-inline, 0);
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
  @media (min-width: 62.0625em) {
    .p-page-body__inner:has(:is(.p-page-body__left, .p-page-body__right)) {
      --gap-inline: clamp(2rem, 4.4444444444vw, 4rem);
    }
    .p-page-body__inner:has(.p-page-body__left) {
      grid-template-columns: 300px minmax(0, 1fr);
      grid-template-areas: "LEFT MAIN";
    }
    .p-page-body__inner:has(.p-page-body__right) {
      grid-template-columns: minmax(0, 1fr) 300px;
      grid-template-areas: "MAIN RIGHT";
    }
    .p-page-body__inner:has(.p-page-body__left):has(.p-page-body__right) {
      --gap-inline: clamp(1.5rem, 2.7777777778vw, 2.5rem);
      grid-template-columns: 240px minmax(0, 1fr) 240px;
      grid-template-areas: "LEFT MAIN RIGHT";
    }
  }
}
@layer project {
  .p-page-footer {
    background-color: var(--page-footer-bgc, #fff);
  }
  .p-page-footer:has(*) {
    padding-bottom: clamp(6rem, 8.8888888889vw, 8rem);
  }
  .p-page-footer__inner {
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
}
@layer project {
  .p-page-header {
    padding-block: clamp(3rem, 5.5555555556vw, 5rem);
  }
  .p-page-header:has(.c-entry-info) {
    padding-block: clamp(4rem, 5.5555555556vw, 5rem);
  }
  .p-page-header .c-button {
    --button-justify: space-between;
  }
  .p-page-header__inner {
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
  .p-page-header__inner:has(.c-button) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  @media (max-width: 62em) {
    .p-page-header__inner:has(.c-button) {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      gap: 2.5rem;
    }
  }
  @media (min-width: 62.0625em) {
    .p-page-header__inner:has(.c-button) {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
  .p-page-header__heading {
    line-height: 1.5;
  }
  .p-page-header__heading span {
    display: block;
    font-size: clamp(2rem, 3.6111111111vw, 3.25rem);
    font-weight: 500;
  }
  .p-page-header__heading small {
    display: block;
    font-size: clamp(0.875rem, 1.1111111111vw, 1rem);
    font-weight: 700;
    font-family: var(--ff--en);
    letter-spacing: 0.02em;
    margin-top: 0.25rem;
    color: var(--clr--theme-primary);
  }
  .p-page-header__heading2 {
    line-height: 1.5;
  }
  .p-page-header__heading2 span {
    font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    font-weight: bold;
    display: block;
  }
}
@layer project {
  .p-right-column__inner {
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
    position: sticky;
    top: var(--active-header-height);
  }
}
@layer project {
  .p-section {
    position: relative;
    padding-top: var(--section-pt);
  }
  .p-section:not([class*=u-bg]) {
    --u-bgc: #fff;
    background-color: #fff;
  }
  @media (max-width: 62em) {
    .p-section {
      padding-bottom: clamp(4rem, 6.6666666667vw, 6rem);
    }
    *:has(+ .p-section--arch) {
      padding-bottom: clamp(5rem, 6.6666666667vw, 6rem);
    }
  }
  @media (min-width: 62.0625em) {
    .p-section {
      padding-bottom: clamp(6rem, 8.8888888889vw, 8rem);
    }
    *:has(+ .p-section--arch) {
      padding-bottom: clamp(10rem, 13.3333333333vw, 12rem);
    }
  }
  .p-section[class*=u-bg]:not(.p-section--arch) {
    padding-top: clamp(4rem, 5.5555555556vw, 5rem);
  }
  :is(.p-section[class*=u-bg]:has(.pg-top-message)) {
    padding-top: clamp(8rem, 11.1111111111vw, 10rem);
  }
  [class*=u-bg] .p-section:not([class*=u-bg]):first-child {
    --section-pt: clamp(4rem, 5.5555555556vw, 5rem);
  }
  .p-section--arch {
    position: relative;
    padding-top: clamp(4rem, 6.6666666667vw, 6rem);
  }
  .p-section--arch::before {
    content: "";
    display: block;
    aspect-ratio: 1440/152;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    background-color: var(--u-bgc, #fff);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    -webkit-mask-image: url("/assets/img/common/svg/section-arch.svg");
            mask-image: url("/assets/img/common/svg/section-arch.svg");
    -webkit-mask-size: contain;
            mask-size: contain;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
  }
  .p-section__inner {
    position: relative;
    --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
    max-width: var(--content-max-width, 100%);
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - var(--minmax) * 2);
  }
  @media (min-width: 62.0625em) {
    .p-section__inner:has(:is(.p-section__left, .p-section__right)) {
      display: grid;
      gap: var(--gap-block, 0) var(--gap-inline, 0);
      --gap-inline: clamp(2rem, 4.4444444444vw, 4rem);
    }
    .p-section__inner:has(.p-section__left) {
      grid-template-columns: 300px minmax(0, 1fr);
      grid-template-areas: "LEFT MAIN";
    }
    .p-section__inner:has(.p-section__right) {
      grid-template-columns: minmax(0, 1fr) 300px;
      grid-template-areas: "MAIN RIGHT";
    }
    .p-section__inner:has(.p-section__left):has(.p-section__right) {
      --gap-inline: clamp(1.5rem, 2.7777777778vw, 2.5rem);
      grid-template-columns: 240px minmax(0, 1fr) 240px;
      grid-template-areas: "LEFT MAIN RIGHT";
    }
  }
  .p-section__inner > *:not(:first-child) {
    margin-top: var(--stack-space, clamp(3rem, 4.4444444444vw, 4rem));
  }
  .p-section__inner > .p-buttons {
    --buttons-mt: 3rem;
  }
  .p-section__grid {
    display: grid;
    gap: 0 clamp(2.5rem, 5.5555555556vw, 5rem);
    grid-template-areas: "HEADER" "CONTENT" "FOOTER";
  }
  @media (min-width: 62.0625em) {
    .p-section__grid {
      grid-template-rows: auto 1fr;
      grid-template-columns: clamp(11.25rem, 25vw, 22.5rem) 1fr;
      grid-template-areas: "HEADER CONTENT" "FOOTER CONTENT";
    }
  }
  @media (max-width: 62em) {
    .p-section__right {
      margin-top: clamp(5rem, 6.6666666667vw, 6rem);
    }
  }
  .p-section__header {
    grid-area: HEADER;
  }
  .p-section__content {
    grid-area: CONTENT;
  }
  @media (max-width: 62em) {
    .p-section__content {
      margin-top: 2rem;
    }
  }
  .p-section__footer {
    grid-area: FOOTER;
  }
  @media (max-width: 62em) {
    .p-section__footer {
      margin-top: 2.5rem;
    }
    .p-section__footer .c-button {
      margin-inline: auto;
    }
  }
  @media (min-width: 62.0625em) {
    .p-section__footer {
      margin-top: 1.5rem;
    }
  }
  .p-section__heading {
    font-size: clamp(1.875rem, 2.5vw, 2.25rem);
    font-weight: 500;
    margin-bottom: clamp(2rem, 2.7777777778vw, 2.5rem);
  }
  .p-section__heading + * {
    --stack-space: clamp(2rem, 2.7777777778vw, 2.5rem);
  }
}
.u-bg-primary-0 {
  --u-bgc: color-mix(in srgb, var(--clr--theme-primary) 5%, white);
  background-color: color-mix(in srgb, var(--clr--theme-primary) 5%, white);
}
.u-bg-primary-1 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 10%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 10%, white);
}
.u-bg-primary-2 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 20%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 20%, white);
}
.u-bg-primary-3 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 30%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 30%, white);
}
.u-bg-primary-4 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 40%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 40%, white);
}
.u-bg-primary-5 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 50%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 50%, white);
}
.u-bg-primary-6 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 60%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 60%, white);
}
.u-bg-primary-7 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 70%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 70%, white);
}
.u-bg-primary-8 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 80%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 80%, white);
}
.u-bg-primary-9 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 90%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 90%, white);
}
.u-bg-primary-10 {
  --u-bgc: color-mix(
    in srgb,
    var(--clr--theme-primary) 100%,
    white
  );
  background-color: color-mix(in srgb, var(--clr--theme-primary) 100%, white);
}
.u-bg-neutral-0 {
  --u-bgc: color-mix(in srgb, #000 5%, white);
  background-color: color-mix(in srgb, #000 5%, white);
}
.u-bg-neutral-1 {
  --u-bgc: color-mix(
    in srgb,
    #000 10%,
    white
  );
  background-color: color-mix(in srgb, #000 10%, white);
}
.u-bg-neutral-2 {
  --u-bgc: color-mix(
    in srgb,
    #000 20%,
    white
  );
  background-color: color-mix(in srgb, #000 20%, white);
}
.u-bg-neutral-3 {
  --u-bgc: color-mix(
    in srgb,
    #000 30%,
    white
  );
  background-color: color-mix(in srgb, #000 30%, white);
}
.u-bg-neutral-4 {
  --u-bgc: color-mix(
    in srgb,
    #000 40%,
    white
  );
  background-color: color-mix(in srgb, #000 40%, white);
}
.u-bg-neutral-5 {
  --u-bgc: color-mix(
    in srgb,
    #000 50%,
    white
  );
  background-color: color-mix(in srgb, #000 50%, white);
}
.u-bg-neutral-6 {
  --u-bgc: color-mix(
    in srgb,
    #000 60%,
    white
  );
  background-color: color-mix(in srgb, #000 60%, white);
}
.u-bg-neutral-7 {
  --u-bgc: color-mix(
    in srgb,
    #000 70%,
    white
  );
  background-color: color-mix(in srgb, #000 70%, white);
}
.u-bg-neutral-8 {
  --u-bgc: color-mix(
    in srgb,
    #000 80%,
    white
  );
  background-color: color-mix(in srgb, #000 80%, white);
}
.u-bg-neutral-9 {
  --u-bgc: color-mix(
    in srgb,
    #000 90%,
    white
  );
  background-color: color-mix(in srgb, #000 90%, white);
}
.u-bg-neutral-10 {
  --u-bgc: color-mix(
    in srgb,
    #000 100%,
    white
  );
  background-color: color-mix(in srgb, #000 100%, white);
}

.u-border-1 {
  border-width: 1px;
}
.u-border-2 {
  border-width: 2px;
}
.u-border-3 {
  border-width: 3px;
}
.u-border-4 {
  border-width: 4px;
}
.u-border-5 {
  border-width: 5px;
}
.u-border-6 {
  border-width: 6px;
}
.u-border-7 {
  border-width: 7px;
}
.u-border-8 {
  border-width: 8px;
}

.u-border-t-1 {
  border-top-width: 1px;
}
.u-border-t-2 {
  border-top-width: 2px;
}
.u-border-t-3 {
  border-top-width: 3px;
}
.u-border-t-4 {
  border-top-width: 4px;
}
.u-border-t-5 {
  border-top-width: 5px;
}
.u-border-t-6 {
  border-top-width: 6px;
}
.u-border-t-7 {
  border-top-width: 7px;
}
.u-border-t-8 {
  border-top-width: 8px;
}

.u-border-l-1 {
  border-left-width: 1px;
}
.u-border-l-2 {
  border-left-width: 2px;
}
.u-border-l-3 {
  border-left-width: 3px;
}
.u-border-l-4 {
  border-left-width: 4px;
}
.u-border-l-5 {
  border-left-width: 5px;
}
.u-border-l-6 {
  border-left-width: 6px;
}
.u-border-l-7 {
  border-left-width: 7px;
}
.u-border-l-8 {
  border-left-width: 8px;
}

.u-border-r-1 {
  border-right-width: 1px;
}
.u-border-r-2 {
  border-right-width: 2px;
}
.u-border-r-3 {
  border-right-width: 3px;
}
.u-border-r-4 {
  border-right-width: 4px;
}
.u-border-r-5 {
  border-right-width: 5px;
}
.u-border-r-6 {
  border-right-width: 6px;
}
.u-border-r-7 {
  border-right-width: 7px;
}
.u-border-r-8 {
  border-right-width: 8px;
}

.u-border-b-1 {
  border-bottom-width: 1px;
}
.u-border-b-2 {
  border-bottom-width: 2px;
}
.u-border-b-3 {
  border-bottom-width: 3px;
}
.u-border-b-4 {
  border-bottom-width: 4px;
}
.u-border-b-5 {
  border-bottom-width: 5px;
}
.u-border-b-6 {
  border-bottom-width: 6px;
}
.u-border-b-7 {
  border-bottom-width: 7px;
}
.u-border-b-8 {
  border-bottom-width: 8px;
}

.u-border-solid {
  border-style: solid;
}

.u-border-dashed {
  border-style: dashed;
}

.u-border-dotted {
  border-style: dotted;
}

.u-border-bouble {
  border-style: bouble;
}

.u-border-primary-0 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 5%, white);
}
.u-border-primary-1 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 10%, white);
}
.u-border-primary-2 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 20%, white);
}
.u-border-primary-3 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 30%, white);
}
.u-border-primary-4 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 40%, white);
}
.u-border-primary-5 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 50%, white);
}
.u-border-primary-6 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 60%, white);
}
.u-border-primary-7 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 70%, white);
}
.u-border-primary-8 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 80%, white);
}
.u-border-primary-9 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 90%, white);
}
.u-border-primary-10 {
  border-color: color-mix(in srgb, var(--clr--theme-primary) 100%, white);
}
.u-border-neutral-0 {
  border-color: color-mix(in srgb, #000 5%, white);
}
.u-border-neutral-1 {
  border-color: color-mix(in srgb, #000 10%, white);
}
.u-border-neutral-2 {
  border-color: color-mix(in srgb, #000 20%, white);
}
.u-border-neutral-3 {
  border-color: color-mix(in srgb, #000 30%, white);
}
.u-border-neutral-4 {
  border-color: color-mix(in srgb, #000 40%, white);
}
.u-border-neutral-5 {
  border-color: color-mix(in srgb, #000 50%, white);
}
.u-border-neutral-6 {
  border-color: color-mix(in srgb, #000 60%, white);
}
.u-border-neutral-7 {
  border-color: color-mix(in srgb, #000 70%, white);
}
.u-border-neutral-8 {
  border-color: color-mix(in srgb, #000 80%, white);
}
.u-border-neutral-9 {
  border-color: color-mix(in srgb, #000 90%, white);
}
.u-border-neutral-10 {
  border-color: color-mix(in srgb, #000 100%, white);
}

.u-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.u-flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}
.u-flex-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.u-flex-col {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.u-flex-col-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

.u-inner {
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: auto;
  margin-right: auto;
  width: calc(100% - var(--minmax) * 2);
}
.u-inner-left {
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: 0;
  margin-right: auto;
  width: calc(100% - (var(--minmax)));
}
.u-inner-right {
  --minmax: max(calc(var(--content-min-margin, 24) * 1px), calc(var(--content-base-margin, 40) / var(--content-base-width, 1440) * 100vw));
  max-width: var(--content-max-width, 100%);
  margin-left: auto;
  margin-right: 0;
  width: calc(100% - (var(--minmax)));
}

.u-items-start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.u-items-end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.u-items-end-safe {
  -webkit-box-align: safe flex-end;
      -ms-flex-align: safe flex-end;
          align-items: safe flex-end;
}
.u-items-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.u-items-center-safe {
  -webkit-box-align: safe center;
      -ms-flex-align: safe center;
          align-items: safe center;
}
.u-items-baseline {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.u-items-baseline-last {
  -webkit-box-align: last baseline;
      -ms-flex-align: last baseline;
          align-items: last baseline;
}
.u-items-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.u-justify-start {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.u-justify-end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.u-justify-end-safe {
  -webkit-box-pack: safe flex-end;
      -ms-flex-pack: safe flex-end;
          justify-content: safe flex-end;
}
.u-justify-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.u-justify-center-safe {
  -webkit-box-pack: safe center;
      -ms-flex-pack: safe center;
          justify-content: safe center;
}
.u-justify-between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.u-justify-around {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}
.u-justify-evenly {
  -webkit-box-pack: space-evenly;
      -ms-flex-pack: space-evenly;
          justify-content: space-evenly;
}
.u-justify-baseline {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.u-justify-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.u-justify-normal {
  -webkit-box-pack: normal;
      -ms-flex-pack: normal;
          justify-content: normal;
}

.u-maw-3xs {
  max-width: 320px;
}
.u-maw-2xs {
  max-width: 520px;
}
.u-maw-xs {
  max-width: 680px;
}
.u-maw-sm {
  max-width: 840px;
}
.u-maw-md {
  max-width: 960px;
}
.u-maw-lg {
  max-width: 1080px;
}
.u-maw-xl {
  max-width: 1240px;
}
.u-maw-2xl {
  max-width: 1400px;
}
.u-maw-3xl {
  max-width: 1600px;
}

.u-m-auto {
  margin: auto;
}
.u-m-1 {
  margin: clamp(0.375rem, 0.5555555556vw, 0.5rem);
}
.u-m-2 {
  margin: clamp(0.75rem, 1.1111111111vw, 1rem);
}
.u-m-3 {
  margin: clamp(1.125rem, 1.6666666667vw, 1.5rem);
}
.u-m-4 {
  margin: clamp(1.5rem, 2.2222222222vw, 2rem);
}
.u-m-5 {
  margin: clamp(1.875rem, 2.7777777778vw, 2.5rem);
}
.u-m-6 {
  margin: clamp(2.25rem, 3.3333333333vw, 3rem);
}
.u-m-7 {
  margin: clamp(2.625rem, 3.8888888889vw, 3.5rem);
}
.u-m-8 {
  margin: clamp(3rem, 4.4444444444vw, 4rem);
}
.u-m-9 {
  margin: clamp(3.375rem, 5vw, 4.5rem);
}
.u-m-10 {
  margin: clamp(3.75rem, 5.5555555556vw, 5rem);
}
.u-m-11 {
  margin: clamp(4.125rem, 6.1111111111vw, 5.5rem);
}
.u-m-12 {
  margin: clamp(4.5rem, 6.6666666667vw, 6rem);
}
.u-m-13 {
  margin: clamp(4.875rem, 7.2222222222vw, 6.5rem);
}
.u-m-14 {
  margin: clamp(5.25rem, 7.7777777778vw, 7rem);
}
.u-m-15 {
  margin: clamp(5.625rem, 8.3333333333vw, 7.5rem);
}
.u-m-16 {
  margin: clamp(6rem, 8.8888888889vw, 8rem);
}
.u-m-17 {
  margin: clamp(6.375rem, 9.4444444444vw, 8.5rem);
}
.u-m-18 {
  margin: clamp(6.75rem, 10vw, 9rem);
}
.u-m-19 {
  margin: clamp(7.125rem, 10.5555555556vw, 9.5rem);
}
.u-m-20 {
  margin: clamp(7.5rem, 11.1111111111vw, 10rem);
}
.u-m-21 {
  margin: clamp(7.875rem, 11.6666666667vw, 10.5rem);
}
.u-m-22 {
  margin: clamp(8.25rem, 12.2222222222vw, 11rem);
}
.u-m-23 {
  margin: clamp(8.625rem, 12.7777777778vw, 11.5rem);
}
.u-m-24 {
  margin: clamp(9rem, 13.3333333333vw, 12rem);
}

.u-mx-auto {
  margin-inline: auto;
}
.u-mx-1 {
  margin-inline: clamp(0.375rem, 0.5555555556vw, 0.5rem);
}
.u-mx-2 {
  margin-inline: clamp(0.75rem, 1.1111111111vw, 1rem);
}
.u-mx-3 {
  margin-inline: clamp(1.125rem, 1.6666666667vw, 1.5rem);
}
.u-mx-4 {
  margin-inline: clamp(1.5rem, 2.2222222222vw, 2rem);
}
.u-mx-5 {
  margin-inline: clamp(1.875rem, 2.7777777778vw, 2.5rem);
}
.u-mx-6 {
  margin-inline: clamp(2.25rem, 3.3333333333vw, 3rem);
}
.u-mx-7 {
  margin-inline: clamp(2.625rem, 3.8888888889vw, 3.5rem);
}
.u-mx-8 {
  margin-inline: clamp(3rem, 4.4444444444vw, 4rem);
}
.u-mx-9 {
  margin-inline: clamp(3.375rem, 5vw, 4.5rem);
}
.u-mx-10 {
  margin-inline: clamp(3.75rem, 5.5555555556vw, 5rem);
}
.u-mx-11 {
  margin-inline: clamp(4.125rem, 6.1111111111vw, 5.5rem);
}
.u-mx-12 {
  margin-inline: clamp(4.5rem, 6.6666666667vw, 6rem);
}
.u-mx-13 {
  margin-inline: clamp(4.875rem, 7.2222222222vw, 6.5rem);
}
.u-mx-14 {
  margin-inline: clamp(5.25rem, 7.7777777778vw, 7rem);
}
.u-mx-15 {
  margin-inline: clamp(5.625rem, 8.3333333333vw, 7.5rem);
}
.u-mx-16 {
  margin-inline: clamp(6rem, 8.8888888889vw, 8rem);
}
.u-mx-17 {
  margin-inline: clamp(6.375rem, 9.4444444444vw, 8.5rem);
}
.u-mx-18 {
  margin-inline: clamp(6.75rem, 10vw, 9rem);
}
.u-mx-19 {
  margin-inline: clamp(7.125rem, 10.5555555556vw, 9.5rem);
}
.u-mx-20 {
  margin-inline: clamp(7.5rem, 11.1111111111vw, 10rem);
}
.u-mx-21 {
  margin-inline: clamp(7.875rem, 11.6666666667vw, 10.5rem);
}
.u-mx-22 {
  margin-inline: clamp(8.25rem, 12.2222222222vw, 11rem);
}
.u-mx-23 {
  margin-inline: clamp(8.625rem, 12.7777777778vw, 11.5rem);
}
.u-mx-24 {
  margin-inline: clamp(9rem, 13.3333333333vw, 12rem);
}

.u-my-auto {
  margin-block: auto;
}
.u-my-1 {
  margin-block: clamp(0.375rem, 0.5555555556vw, 0.5rem);
}
.u-my-2 {
  margin-block: clamp(0.75rem, 1.1111111111vw, 1rem);
}
.u-my-3 {
  margin-block: clamp(1.125rem, 1.6666666667vw, 1.5rem);
}
.u-my-4 {
  margin-block: clamp(1.5rem, 2.2222222222vw, 2rem);
}
.u-my-5 {
  margin-block: clamp(1.875rem, 2.7777777778vw, 2.5rem);
}
.u-my-6 {
  margin-block: clamp(2.25rem, 3.3333333333vw, 3rem);
}
.u-my-7 {
  margin-block: clamp(2.625rem, 3.8888888889vw, 3.5rem);
}
.u-my-8 {
  margin-block: clamp(3rem, 4.4444444444vw, 4rem);
}
.u-my-9 {
  margin-block: clamp(3.375rem, 5vw, 4.5rem);
}
.u-my-10 {
  margin-block: clamp(3.75rem, 5.5555555556vw, 5rem);
}
.u-my-11 {
  margin-block: clamp(4.125rem, 6.1111111111vw, 5.5rem);
}
.u-my-12 {
  margin-block: clamp(4.5rem, 6.6666666667vw, 6rem);
}
.u-my-13 {
  margin-block: clamp(4.875rem, 7.2222222222vw, 6.5rem);
}
.u-my-14 {
  margin-block: clamp(5.25rem, 7.7777777778vw, 7rem);
}
.u-my-15 {
  margin-block: clamp(5.625rem, 8.3333333333vw, 7.5rem);
}
.u-my-16 {
  margin-block: clamp(6rem, 8.8888888889vw, 8rem);
}
.u-my-17 {
  margin-block: clamp(6.375rem, 9.4444444444vw, 8.5rem);
}
.u-my-18 {
  margin-block: clamp(6.75rem, 10vw, 9rem);
}
.u-my-19 {
  margin-block: clamp(7.125rem, 10.5555555556vw, 9.5rem);
}
.u-my-20 {
  margin-block: clamp(7.5rem, 11.1111111111vw, 10rem);
}
.u-my-21 {
  margin-block: clamp(7.875rem, 11.6666666667vw, 10.5rem);
}
.u-my-22 {
  margin-block: clamp(8.25rem, 12.2222222222vw, 11rem);
}
.u-my-23 {
  margin-block: clamp(8.625rem, 12.7777777778vw, 11.5rem);
}
.u-my-24 {
  margin-block: clamp(9rem, 13.3333333333vw, 12rem);
}

.u-mt-auto {
  margin-top: auto;
}
.u-mt-1 {
  margin-top: clamp(0.375rem, 0.5555555556vw, 0.5rem);
}
.u-mt-2 {
  margin-top: clamp(0.75rem, 1.1111111111vw, 1rem);
}
.u-mt-3 {
  margin-top: clamp(1.125rem, 1.6666666667vw, 1.5rem);
}
.u-mt-4 {
  margin-top: clamp(1.5rem, 2.2222222222vw, 2rem);
}
.u-mt-5 {
  margin-top: clamp(1.875rem, 2.7777777778vw, 2.5rem);
}
.u-mt-6 {
  margin-top: clamp(2.25rem, 3.3333333333vw, 3rem);
}
.u-mt-7 {
  margin-top: clamp(2.625rem, 3.8888888889vw, 3.5rem);
}
.u-mt-8 {
  margin-top: clamp(3rem, 4.4444444444vw, 4rem);
}
.u-mt-9 {
  margin-top: clamp(3.375rem, 5vw, 4.5rem);
}
.u-mt-10 {
  margin-top: clamp(3.75rem, 5.5555555556vw, 5rem);
}
.u-mt-11 {
  margin-top: clamp(4.125rem, 6.1111111111vw, 5.5rem);
}
.u-mt-12 {
  margin-top: clamp(4.5rem, 6.6666666667vw, 6rem);
}
.u-mt-13 {
  margin-top: clamp(4.875rem, 7.2222222222vw, 6.5rem);
}
.u-mt-14 {
  margin-top: clamp(5.25rem, 7.7777777778vw, 7rem);
}
.u-mt-15 {
  margin-top: clamp(5.625rem, 8.3333333333vw, 7.5rem);
}
.u-mt-16 {
  margin-top: clamp(6rem, 8.8888888889vw, 8rem);
}
.u-mt-17 {
  margin-top: clamp(6.375rem, 9.4444444444vw, 8.5rem);
}
.u-mt-18 {
  margin-top: clamp(6.75rem, 10vw, 9rem);
}
.u-mt-19 {
  margin-top: clamp(7.125rem, 10.5555555556vw, 9.5rem);
}
.u-mt-20 {
  margin-top: clamp(7.5rem, 11.1111111111vw, 10rem);
}
.u-mt-21 {
  margin-top: clamp(7.875rem, 11.6666666667vw, 10.5rem);
}
.u-mt-22 {
  margin-top: clamp(8.25rem, 12.2222222222vw, 11rem);
}
.u-mt-23 {
  margin-top: clamp(8.625rem, 12.7777777778vw, 11.5rem);
}
.u-mt-24 {
  margin-top: clamp(9rem, 13.3333333333vw, 12rem);
}

.u-lang-en {
  font-family: var(--ff--en);
  letter-spacing: 0.02em;
}
.u-lang-enja {
  font-family: var(--ff--enja);
}
.u-lang-ja {
  font-family: var(--ff--ja);
}

.u-rotate-45 {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.u-rotate-90 {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.u-rotate-180 {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.u-rotate-225 {
  -webkit-transform: rotate(225deg);
          transform: rotate(225deg);
}
.u-rotate-270 {
  -webkit-transform: rotate(270deg);
          transform: rotate(270deg);
}
.u-rotate-315 {
  -webkit-transform: rotate(315deg);
          transform: rotate(315deg);
}

.u-text-primary {
  color: var(--clr--theme-primary);
}
.u-text-primary-0 {
  color: color-mix(in srgb, var(--clr--theme-primary) 5%, white);
}
.u-text-primary-1 {
  color: color-mix(in srgb, var(--clr--theme-primary) 10%, white);
}
.u-text-primary-2 {
  color: color-mix(in srgb, var(--clr--theme-primary) 20%, white);
}
.u-text-primary-3 {
  color: color-mix(in srgb, var(--clr--theme-primary) 30%, white);
}
.u-text-primary-4 {
  color: color-mix(in srgb, var(--clr--theme-primary) 40%, white);
}
.u-text-primary-5 {
  color: color-mix(in srgb, var(--clr--theme-primary) 50%, white);
}
.u-text-primary-6 {
  color: color-mix(in srgb, var(--clr--theme-primary) 60%, white);
}
.u-text-primary-7 {
  color: color-mix(in srgb, var(--clr--theme-primary) 70%, white);
}
.u-text-primary-8 {
  color: color-mix(in srgb, var(--clr--theme-primary) 80%, white);
}
.u-text-primary-9 {
  color: color-mix(in srgb, var(--clr--theme-primary) 90%, white);
}
.u-text-primary-10 {
  color: color-mix(in srgb, var(--clr--theme-primary) 100%, white);
}
.u-text-error {
  color: #d90000;
}
.u-text-error-0 {
  color: color-mix(in srgb, #d90000 5%, white);
}
.u-text-error-1 {
  color: color-mix(in srgb, #d90000 10%, white);
}
.u-text-error-2 {
  color: color-mix(in srgb, #d90000 20%, white);
}
.u-text-error-3 {
  color: color-mix(in srgb, #d90000 30%, white);
}
.u-text-error-4 {
  color: color-mix(in srgb, #d90000 40%, white);
}
.u-text-error-5 {
  color: color-mix(in srgb, #d90000 50%, white);
}
.u-text-error-6 {
  color: color-mix(in srgb, #d90000 60%, white);
}
.u-text-error-7 {
  color: color-mix(in srgb, #d90000 70%, white);
}
.u-text-error-8 {
  color: color-mix(in srgb, #d90000 80%, white);
}
.u-text-error-9 {
  color: color-mix(in srgb, #d90000 90%, white);
}
.u-text-error-10 {
  color: color-mix(in srgb, #d90000 100%, white);
}
.u-text-neutral {
  color: #000;
}
.u-text-neutral-0 {
  color: color-mix(in srgb, #000 5%, white);
}
.u-text-neutral-1 {
  color: color-mix(in srgb, #000 10%, white);
}
.u-text-neutral-2 {
  color: color-mix(in srgb, #000 20%, white);
}
.u-text-neutral-3 {
  color: color-mix(in srgb, #000 30%, white);
}
.u-text-neutral-4 {
  color: color-mix(in srgb, #000 40%, white);
}
.u-text-neutral-5 {
  color: color-mix(in srgb, #000 50%, white);
}
.u-text-neutral-6 {
  color: color-mix(in srgb, #000 60%, white);
}
.u-text-neutral-7 {
  color: color-mix(in srgb, #000 70%, white);
}
.u-text-neutral-8 {
  color: color-mix(in srgb, #000 80%, white);
}
.u-text-neutral-9 {
  color: color-mix(in srgb, #000 90%, white);
}
.u-text-neutral-10 {
  color: color-mix(in srgb, #000 100%, white);
}
.u-text-2xs {
  font-size: 0.625rem;
}
.u-text-xs {
  font-size: 0.75rem;
}
.u-text-sm {
  font-size: 0.875rem;
}
.u-text-md {
  font-size: 1rem;
}
.u-text-lg {
  font-size: 1.125rem;
}
.u-text-xl {
  font-size: 1.25rem;
}
.u-text-2xl {
  font-size: 1.5rem;
}

@layer script {
  .js-accordion-item.is-open .js-accordion-target {
    height: var(--accordion-h);
  }
  .js-accordion-target {
    height: 0;
    overflow: hidden;
    -webkit-transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
    transition: height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  }
}/*# sourceMappingURL=style.css.map */