.l-footer {
  position: relative;
  font-family: var(--font-jp);

  --spacing-source: calc(1 / 375 * 100vw);

  @media (width>=800px) {
    --spacing-source: min(1 / 1440 * 100vw, 1px);
  }
  --spacing: var(--spacing-source);
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --color-black: #1f1f1f;
  --color-white: #fff;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0em;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --leading-normal: 1.5;
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --default-transition-duration: 0.15s;
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  --default-font-family: var(--font-sans);
  --default-mono-font-family: var(--font-mono);
  --color-link: #00f;
  --color-dark-gray: #333;
  --color-gray: #9d9d9d;
  --color-silver: #ccc;
  --color-red: #df2b12;
  --color-border: #dadada;
  --color-light-border: #eee;
  --color-environment: #185f13;
  --color-social: #d73706;
  --color-governance: #1e4d75;
  --text-duration: 0.2s;
  --image-duration: 0.3s;
  --scale-size: 1.1;
  --font-en: "Geist", sans-serif;
  --font-jp: "Yu Gothic Medium", "游ゴシック体", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  --tracking-jp: 0.08em;
  --ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715);
  --ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.l-footer {
  a {
    color: var(--wp--preset--color--text-titleimportant);
    text-decoration: none;
  }
  ul {
    margin: 0;
    padding: 0;
  }
  li {
    list-style: none;
  }
}
.l-footer:lang(en) {
  font-family: var(--font-en);
}
.l-footer > .l-footer__inner {
  padding-top: calc(128 * var(--spacing));
  padding-bottom: calc(32 * var(--spacing));
}
@media (width>=800px) {
  .l-footer > .l-footer__inner {
    padding-top: calc(128 * var(--spacing));
    padding-bottom: calc(48 * var(--spacing));
  }
}
@media not all and (width>=800px) {
  .l-footer .l-footer__menu {
    padding-inline: calc(32 * var(--spacing));
  }
}
@media (width>=800px) {
  .l-footer .l-footer__menu {
    grid-template-columns: calc(230 * var(--spacing)) 1fr;
    column-gap: calc(96 * var(--spacing));
    max-width: calc(887 * var(--spacing));
    margin-left: calc(120 * var(--spacing));
    display: grid;
  }
}
.l-footer .l-footer__logo {
  height: fit-content;
  width: calc(234 * var(--spacing));
  display: block;
}
@media (width>=800px) {
  .l-footer .l-footer__logo {
    width: calc(230 * var(--spacing));
    will-change: opacity;
    transition: opacity 0.3s;
  }
  .l-footer .l-footer__logo:hover,
  .l-footer .l-footer__logo:focus-visible {
    opacity: 0.7;
  }
}
.l-footer .l-footer__logo img {
  width: 100%;
  height: auto;
}
@media not all and (width>=800px) {
  .l-footer .l-footer__links {
    margin-top: calc(48 * var(--spacing));
  }
}
@media (width>=800px) {
  .l-footer .l-footer__links {
    grid-template-columns: calc(41 * var(--spacing)) 1fr;
    column-gap: calc(96 * var(--spacing));
    display: grid;
  }
}
.l-footer .l-footer__links > .l-footer__link {
  font-feature-settings: "palt" on;
  height: fit-content;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0;
  line-height: 1.5;
  font-size: max(10px, calc(14 * var(--spacing)));
  display: block;
}
.l-footer .l-footer__links > .l-footer__link:lang(en) {
  font-weight: var(--font-weight-semibold);
}
@media (width>=800px) {
  .l-footer .l-footer__links > .l-footer__link {
    will-change: color;
    transition: color 0.3s;
  }
  .l-footer .l-footer__links > .l-footer__link:hover,
  .l-footer .l-footer__links > .l-footer__link:focus-visible {
    color: var(--color-red);
  }
}
.l-footer .l-footer__wrapper {
  grid-template-columns: calc(144 * var(--spacing)) auto;
  display: grid;
}
@media not all and (width>=800px) {
  .l-footer .l-footer__wrapper {
    margin-top: calc(40 * var(--spacing));
    column-gap: calc(59 * var(--spacing));
  }
}
@media (width>=800px) {
  .l-footer .l-footer__wrapper {
    column-gap: calc(96 * var(--spacing));
  }
}
.l-footer .l-footer__item + .l-footer__item {
  margin-top: calc(20 * var(--spacing));
}
.l-footer .l-footer__item > .l-footer__link {
  font-feature-settings: "palt" on;
  width: fit-content;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0;
  line-height: 1.5;
  font-size: max(10px, calc(14 * var(--spacing)));
  display: block;
}
.l-footer .l-footer__item > .l-footer__link:lang(en) {
  font-weight: var(--font-weight-semibold);
}
@media (width>=800px) {
  .l-footer .l-footer__item > .l-footer__link {
    will-change: color;
    transition: color 0.3s;
  }
  .l-footer .l-footer__item > .l-footer__link:hover,
  .l-footer .l-footer__item > .l-footer__link:focus-visible {
    color: var(--color-red);
  }
}
.l-footer .l-footer__policy {
  margin-top: calc(80 * var(--spacing));
}
@media not all and (width>=800px) {
  .l-footer .l-footer__policy {
    padding-inline: calc(32 * var(--spacing));
  }
}
@media (width>=800px) {
  .l-footer .l-footer__policy {
    margin-top: calc(128 * var(--spacing));
    padding-right: calc(48 * var(--spacing));
  }
}
.l-footer .l-footer__policy > .l-footer__logo {
  width: calc(160 * var(--spacing));
  margin-left: auto;
}
@media (width>=800px) {
  .l-footer .l-footer__policy > .l-footer__logo {
    width: calc(180 * var(--spacing));
    will-change: opacity;
    transition: opacity 0.3s;
  }
  .l-footer .l-footer__policy > .l-footer__logo:hover,
  .l-footer .l-footer__policy > .l-footer__logo:focus-visible {
    opacity: 0.7;
  }
}
.l-footer .l-footer__policy > .l-footer__logo > img {
  width: 100%;
  height: auto;
}
.l-footer .l-footer__policy-list {
  margin-top: calc(32 * var(--spacing));
}
@media not all and (width>=800px) {
  .l-footer .l-footer__policy-list {
    text-align: end;
  }
}
@media (width>=800px) {
  .l-footer .l-footer__policy-list {
    margin-top: calc(28 * var(--spacing));
    justify-content: flex-end;
    align-items: center;
    column-gap: calc(12 * var(--spacing));
    display: flex;
  }
}
@media not all and (width>=800px) {
  .l-footer .l-footer__policy-item + .l-footer__policy-item {
    margin-top: calc(12 * var(--spacing));
  }
}
.l-footer .l-footer__policy-link {
  font-feature-settings: "palt" on;
  font-weight: var(--font-weight-medium);
  letter-spacing: 0;
  line-height: 1.5;
  font-size: max(10px, calc(12 * var(--spacing)));
  display: block;
}
.l-footer .l-footer__policy-link:lang(en) {
  font-weight: var(--font-weight-semibold);
}
@media (width>=800px) {
  .l-footer .l-footer__policy-link {
    will-change: color;
    transition: color 0.3s;
  }
  .l-footer .l-footer__policy-link:hover,
  .l-footer .l-footer__policy-link:focus-visible {
    color: var(--color-red);
  }
}
.l-footer .l-footer__copyright {
  text-align: end;
  font-feature-settings: "palt" on;
  font-weight: var(--font-weight-medium);
  letter-spacing: 0;
  line-height: 1.5;
  font-size: max(10px, calc(10 * var(--spacing)));
  color: var(--color-gray);
  margin-top: calc(32 * var(--spacing));
  padding-inline: calc(20 * var(--spacing));
  display: block;
}
.l-footer .l-footer__copyright:lang(en) {
  font-weight: var(--font-weight-semibold);
}
@media (width>=800px) {
  .l-footer .l-footer__copyright {
    margin-top: calc(24 * var(--spacing));
    padding-inline: calc(48 * var(--spacing));
  }
}
.l-footer .l-footer__pagetop {
  top: calc(40 * var(--spacing));
  right: calc(40 * var(--spacing));
  position: absolute;
}
@media (width>=800px) {
  .l-footer .l-footer__pagetop {
    top: calc(64 * var(--spacing));
    right: calc(65 * var(--spacing));
  }
  :is(.l-footer .l-footer__pagetop > a:hover, .l-footer .l-footer__pagetop > a:focus-visible) .text,
  :is(.l-footer .l-footer__pagetop > a:hover, .l-footer .l-footer__pagetop > a:focus-visible) .icon use {
    color: var(--color-red);
  }
}
.l-footer .l-footer__pagetop .l-footer__text {
  font-feature-settings: "palt" on;
  font-family: var(--font-en);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.1em;
  line-height: 1;
  font-size: max(10px, calc(12 * var(--spacing)));
  text-align: center;
  display: block;
}
.l-footer .l-footer__pagetop .l-footer__text:lang(en) {
  font-family: var(--font-en);
  font-weight: var(--font-weight-semibold);
}
@media (width>=800px) {
  .l-footer .l-footer__pagetop .l-footer__text {
    will-change: color;
    transition: color 0.3s;
  }
}
.l-footer .l-footer__pagetop .l-footer__icon {
  margin-top: calc(6 * var(--spacing));
  width: calc(31 * var(--spacing));
  height: calc(12 * var(--spacing));
}
.l-footer .l-footer__pagetop .l-footer__icon use {
  color: var(--color-black);
}
@media (width>=800px) {
  .l-footer .l-footer__pagetop .l-footer__icon use {
    will-change: color;
    transition: color 0.3s;
  }
}
