@charset "UTF-8";

/**
 * global
 */
html {
  scroll-behavior: smooth;
}
body {
  background: inherit;
  color: var(--color-dark);
  font-weight: 500;
}
body * {
  font-family: var(--font-family, var(--font-ja));
  letter-spacing: var(--letter-spacing, .1em);
}
img,
svg,
picture,
video {
  display: var(--display, block);
  max-width: 100%;
  height: auto;
  border: none;
  outline: none;
  backface-visibility: hidden;
}
* {
  box-sizing: border-box;
}
a {
  color: inherit;
  display: var(--display, inline-block);
}
a:has(img) {
  --display: block;
}
summary {
  list-style: none;
}
input[type="date"] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDE5IDE5Ij4gPGcgaWQ9Ikljb25fZmVhdGhlci1jYWxlbmRhciIgZGF0YS1uYW1lPSJJY29uIGZlYXRoZXItY2FsZW5kYXIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zLjUgLTIpIj4gPHBhdGggaWQ9IuODkeOCuV8yOTIiIGRhdGEtbmFtZT0i44OR44K5IDI5MiIgZD0iTTYuMzg5LDZIMTkuNjExQTEuOCwxLjgsMCwwLDEsMjEuNSw3LjdWMTkuNTk0YTEuOCwxLjgsMCwwLDEtMS44ODksMS43SDYuMzg5YTEuOCwxLjgsMCwwLDEtMS44ODktMS43VjcuN0ExLjgsMS44LDAsMCwxLDYuMzg5LDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0xLjI5MykiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIzNGQ4MCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4gPHBhdGggaWQ9IuODkeOCuV8yOTMiIGRhdGEtbmFtZT0i44OR44K5IDI5MyIgZD0iTTI0LDNWNi40MTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjIyMikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIzNGQ4MCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4gPHBhdGggaWQ9IuODkeOCuV8yOTQiIGRhdGEtbmFtZT0i44OR44K5IDI5NCIgZD0iTTEyLDNWNi40MTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjc3OCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIzNGQ4MCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4gPHBhdGggaWQ9IuODkeOCuV8yOTUiIGRhdGEtbmFtZT0i44OR44K5IDI5NSIgZD0iTTQuNSwxNWgxNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtNS4yKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjM0ZDgwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPiA8L2c+PC9zdmc+");
  background-position: right var(--input-date-icon-postion)  center;
  background-repeat: no-repeat;
  background-size: var(--input-date-icon-size);
}
input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
}
select {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE0IDEyIj4gPHBhdGggaWQ9IuWkmuinkuW9ol8xNCIgZGF0YS1uYW1lPSLlpJrop5LlvaIgMTQiIGQ9Ik02LjEzNiwxLjQ4MWExLDEsMCwwLDEsMS43MjgsMEwxMy4xMjMsMTAuNWExLDEsMCwwLDEtLjg2NCwxLjVIMS43NDFhMSwxLDAsMCwxLS44NjQtMS41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQgMTIpIHJvdGF0ZSgxODApIiBmaWxsPSIjMjM0ZDgwIi8+PC9zdmc+");
  background-position: right var(--select-icon-postion)  center;
  background-repeat: no-repeat;
  background-size: var(--select-icon-size);
}
input::placeholder,
select::placeholder,
textarea::placeholder {
  color: var(--color-middle-gray);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  input[type="date"] {
    --input-date-icon-postion: 20px;
    --input-date-icon-size: 18px;
  }
  select {
    --select-icon-postion: 20px;
    --select-icon-size: 14px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  input[type="date"] {
    --input-date-icon-postion: 50px;
    --input-date-icon-size: 18px;
  }
  select {
    --select-icon-postion: 50px;
    --select-icon-size: 14px;
  }
}

/**
 * status
 */
.is-hidden {
  display: none !important;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .is-hidden-mobile {
    display: none !important;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .is-hidden-desktop {
    display: none !important;
  }
}

/**
 * utility
 */
.u-text-strong {
  color: var(--color-theme);
  font-weight: 700;
}

/**
 * animation
 */
.anim-fade-in {
  visibility: var(--visibility, hidden);
  opacity: var(--opacity, 0);
  transition: all .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.anim-fade-in.is-show {
  --visibility: visibility;
  --opacity: 1;
}
.anim-fade-in-order > * {
  visibility: var(--visibility, hidden);
  opacity: var(--opacity, 0);
  transform: translateY(10px);
  transition: all .5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.anim-fade-in-order > *:nth-child(1) {
  transition-delay: 0s;
}
.anim-fade-in-order > *:nth-child(2) {
  transition-delay: 0.25s;
}
.anim-fade-in-order > *:nth-child(3) {
  transition-delay: 0.5s;
}
.anim-fade-in-order > *:nth-child(4) {
  transition-delay: 0.75s;
}
.anim-fade-in-order > *:nth-child(5) {
  transition-delay: 1s;
}
.anim-fade-in-order > *:nth-child(6) {
  transition-delay: 1.25s;
}
.anim-fade-in-order > *:nth-child(7) {
  transition-delay: 1.5s;
}
.anim-fade-in-order > *:nth-child(8) {
  transition-delay: 1.75s;
}
.anim-fade-in-order > *:nth-child(9) {
  transition-delay: 2s;
}
.anim-fade-in-order > *:nth-child(10) {
  transition-delay: 2.25s;
}
.anim-fade-in-order > *:nth-child(1) {

}
.anim-fade-in-order.is-show > * {
  --visibility: visibility;
  --opacity: 1;
  transform: translateY(0);
}

/**
 * layout
 */
.l-main {
  padding-block-end: var(--main-spacer, var(--main-spacer-default));
}
/* --- for small viewport --- */
@media screen and (max-width: 960px) {
  .l-main {
    --main-spacer-default: 70px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) {
  .l-main {
    --main-spacer-default: 150px;
  }
}

/**
 * module / component
 */
/* --- button --- */
.c-button {
  --stroke-button: var(--button-color-primary-active, var(--button-color-primary));
  display: grid;
  align-items: center;
  width: 100%;
  min-height: var(--button-height);
  padding-inline: var(--button-gutter-variable, var(--button-gutter-default));
  border: 1.5px solid var(--button-border-active, var(--button-color-primary));
  border-radius: 100vh;
  background: var(--button-color-primary-active, var(--button-color-primary));
  font-size: var(--button-font-size);
  font-weight: 500;
  color: var(--button-color-secondary-active, var(--button-color-secondary));
  transition: all var(--transition-default);
}
.c-button--global {
  text-align: center;
}
.c-button:hover,
.c-button:active {
  --button-color-primary-active: var(--button-color-secondary);
  --button-color-secondary-active: var(--button-color-primary);
}
.c-button:not(.is-noarrow) {
  grid-template-columns: auto var(--button-arrow-width);
}
.c-button--primary {
  --button-color-primary: var(--color-highlight);
  --button-color-secondary: var(--color-white);
}
.c-button--secondary {
  --button-color-primary: var(--color-theme-pale);
  --button-color-secondary: var(--color-white);
}
.c-button--tertiary {
  --button-color-primary: var(--color-theme-light);
  --button-color-secondary: var(--color-white);
}
.c-button--blur {
  --stroke-button: var(--button-color-primary-active, var(--color-theme));
  --button-color-primary: rgba(255, 255, 255, .2);
  --button-color-secondary: var(--color-white);
}
.c-button--blur:hover,
.c-button--blur:active {
  --button-color-primary-active: var(--color-white);
  --button-color-secondary-active: var(--color-theme);
}
.c-button__arrow {
  display: grid;
  place-items: center;
  padding-block-end: 2px;
  height: var(--button-arrow-height);
  border-radius: 100vh;
  background: var(--button-color-secondary-active, var(--button-color-secondary));
  transition: all var(--transition-default);
}
.c-icon-button {
  --button-color-primary: var(--button-color-primary-variable, var(--color-theme));
  --button-color-secondary: var(--button-color-secondary-variable, var(--color-white));
  --stroke-button: var(--button-color-secondary-active, var(--button-color-secondary));
  display: grid;
  align-items: center;
  width: var(--button-width, 100%);
  height: var(--button-height, 100%);
  padding-inline: var(--button-gutter-variable, var(--button-gutter-default));
  border: 1.5px solid var(--button-border-active, var(--button-color-primary));
  border-radius: 100vh;
  background: var(--button-color-primary-active, var(--button-color-primary));
  transition: all var(--transition-default);
}
.c-icon-button:hover,
.c-icon-button:active {
  --button-color-primary-active: var(--button-color-secondary);
  --button-color-secondary-active: var(--button-color-primary);
}
.c-icon-button__arrow {
  display: block;
  width: var(--button-arrow-width);
  margin-inline: auto;
}
.c-icon-button__arrow svg {
  width: 100%;
}
.c-button--fz-eng > * {
  font-family: var(--font-en);
}
.c-button--fz-eng .c-button__text {
  padding-block-start: .25em;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .c-button {
    --button-gutter-default: 20px;
  }
  .c-button:not(.is-noarrow) {
    --button-arrow-width: var(--button-arrow-width-variable, 25px);
    --button-arrow-height: var(--button-arrow-height-variable, 14px);
  }
  .c-button--global {
    --button-height: 66px;
    --button-font-size: 20px;
    --button-arrow-width-variable: 25px;
    --button-arrow-height-variable: 14px;
  }
  .c-button--global .c-button__arrow {
    padding-inline: 7px;
  }
  .c-button--fz-x-large {
    --button-font-size: 24px;
  }
  .c-button--fz-large,
  .c-button--fz-medium
  .c-button--fz-small {
    --button-font-size: 16px;
  }
  .c-button--fz-eng {
    --button-font-size: 28px;
  }
  .c-button--large,
  .c-button--medium {
    --button-height: 60px;
  }
  .c-button--small {
    --button-height: 40px;
  }
}
/* --- for middle viewport --- */
@media screen and (min-width: 768px) and (max-width: 960px) {
  .c-button {
    --button-gutter-default: 15px;
  }
  .c-button:not(.is-noarrow) {
    --button-arrow-width: var(--button-arrow-width-variable, 40px);
    --button-arrow-height: var(--button-arrow-height-variable, 20px);
  }
  .c-button--global {
    --button-height: 60px;
    --button-font-size: 16px;
    --button-arrow-width-variable: 32px;
    --button-arrow-height-variable: 18px;
  }
  .c-button--global .c-button__arrow {
    padding-inline: 9px;
  }
  .c-button--fz-x-large {
    --button-font-size: 24px;
  }
  .c-button--fz-large {
    --button-font-size: 18px;
  }
  .c-button--fz-medium {
    --button-font-size: 16px;
  }
  .c-button--fz-small {
    --button-font-size: 14px;
  }
  .c-button--fz-eng {
    --button-font-size: 24px;
  }
  .c-button--large {
    --button-height: 70px;
  }
  .c-button--medium {
    --button-height: 60px;
  }
  .c-button--small {
    --button-height: 50px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) {
  .c-button {
    --button-gutter-default: 20px;
  }
  .c-button:not(.is-noarrow) {
    --button-arrow-width: var(--button-arrow-width-variable, 45px);
    --button-arrow-height: var(--button-arrow-height-variable, 24px);
  }
  .c-button--global {
    --button-height: 75px;
    --button-font-size: 22px;
    --button-arrow-width-variable: 32px;
    --button-arrow-height-variable: 18px;
  }
  .c-button--global .c-button__arrow {
    padding-inline: 9px;
  }
  .c-button--fz-x-large {
    --button-font-size: 30px;
  }
  .c-button--fz-large {
    --button-font-size: 26px;
  }
  .c-button--fz-medium {
    --button-font-size: 22px;
  }
  .c-button--fz-small {
    --button-font-size: 20px;
  }
  .c-button--fz-eng {
    --button-font-size: 35px;
  }
  .c-button--large {
    --button-height: 80px;
  }
  .c-button--medium {
    --button-height: 65px;
  }
  .c-button--small {
    --button-height: 50px;
  }
}

/* --- archive --- */
.c-archive-label__list {
  display: flex;
  gap: var(--label-list-gap);
}
.c-archive-label__list-item {
  display: grid;
  place-items: center;
  padding-block: var(--label-item-spacer);
  padding-inline: var(--label-item-gutter);
  border-radius: 100vh;
  background-color: var(--label-item-background);
  font-size: var(--label-item-font-size);
  line-height: var(--label-item-line-height);
  color: var(--color-white);
  letter-spacing: .05em;
  line-height: 1;
}
.c-archive-label__list-item.is-news {
  --label-item-background: var(--color-theme);
}
.c-archive-label__list-item.is-jobs {
  --label-item-background: var(--color-light-theme);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .c-archive-label__list {
    --label-list-gap: 5px;
    --label-item-spacer: 4px;
    --label-item-gutter: 12px;
    --label-item-font-size: 12px;
    --label-item-line-height: calc(21 / 12);
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .c-archive-label__list {
    --label-list-gap: 5px;
    --label-item-spacer: 4px;
    --label-item-gutter: 18px;
    --label-item-font-size: 14px;
    --label-item-line-height: calc(21 / 14);
  }
}

/* --- title --- */
.m-global-title {
  padding-block-start: var(--global-title-top-spacer);
  padding-block-end: var(--global-title-bottom-spacer);
  padding-inline: var(--global-title-gutter);
  background-image:
    linear-gradient(
      to bottom,
      var(--color-theme) 0%,
      var(--color-theme) calc(100% - var(--global-title-background-image-height) + 1px),
      transparent var(--global-title-background-image-height),
      transparent 100%
    ),
    var(--global-title-background-image);
  background-repeat: no-repeat, no-repeat;
  background-position: top center, bottom center;
  background-size: 100%, 100% var(--global-title-background-image-height);
  color: var(--color-white);
}
.c-global-title__primary {
  font-size: var(--global-title-primary-font-size);
  font-family: var(--font-en);
  font-weight: 600;
  letter-spacing: 0;
}
.c-global-title__secondary {
  font-size: var(--global-title-secondary-font-size);
  font-weight: 600;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .m-global-title {
    --global-title-top-spacer: 75px;
    --global-title-bottom-spacer: 35px;
    --global-title-gutter: calc(var(--global-gutter) * 2);
    --global-title-background-image-height: calc(33 * 100vw / 375);
    --global-title-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzc1IiBoZWlnaHQ9IjMzIiB2aWV3Qm94PSIwIDAgMzc1IDMzIj4gPGRlZnM+IDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoIj4gPHJlY3QgaWQ9IumVt+aWueW9ol81OTkiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDU5OSIgd2lkdGg9IjM3NSIgaGVpZ2h0PSIzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxMzUpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aC0yIj4gPHJlY3QgaWQ9IumVt+aWueW9ol80OTAiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDQ5MCIgd2lkdGg9IjM3NSIgaGVpZ2h0PSIxNjgiIGZpbGw9IiMyMzRkODAiIHN0cm9rZT0iIzcwNzA3MCIgc3Ryb2tlLXdpZHRoPSIxIi8+IDwvY2xpcFBhdGg+IDwvZGVmcz4gPGcgaWQ9IuOCsOODq+ODvOODl185MjAiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDkyMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMTM1KSI+IDxnIGlkPSLjg57jgrnjgq/jgrDjg6vjg7zjg5dfNjgiIGRhdGEtbmFtZT0i44Oe44K544Kv44Kw44Or44O844OXIDY4IiBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoKSI+IDxnIGlkPSLjg57jgrnjgq/jgrDjg6vjg7zjg5dfNDkiIGRhdGEtbmFtZT0i44Oe44K544Kv44Kw44Or44O844OXIDQ5IiBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoLTIpIj4gPHBhdGggaWQ9IuWQiOS9k18xIiBkYXRhLW5hbWU9IuWQiOS9kyAxIiBkPSJNMTM2MDEuNy0yOTAwLjVjLTg1LDIzLjc4My0xNTkuNy0zNi41LTE1OS43LTM2LjVoNTguNDk0di0xMjJoMzc1djEyMmg1OC41cy01Mi40NDQsNDYtMTI1LjEzMyw0NlMxMzY4Ni43LTI5MjQuMjc2LDEzNjAxLjctMjkwMC41WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEzNTAwLjQ5NCAzMDU5KSIgZmlsbD0iIzIzNGQ4MCIvPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --global-title-primary-font-size: 40px;
    --global-title-secondary-font-size: 14px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .m-global-title {
    --global-title-top-spacer: 190px;
    --global-title-bottom-spacer: 140px;
    --global-title-gutter: 20px;
    --global-title-background-image-height: calc(153 * 100vw / 1920);
    --global-title-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTkyMCIgaGVpZ2h0PSIxNTMiIHZpZXdCb3g9IjAgMCAxOTIwIDE1MyI+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aCI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNTk5IiBkYXRhLW5hbWU9IumVt+aWueW9oiA1OTkiIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjE1MyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAyNzgpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aC0yIj4gPHJlY3QgaWQ9IumVt+aWueW9ol80OTAiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDQ5MCIgd2lkdGg9IjE5MjAiIGhlaWdodD0iNDMxIiBmaWxsPSIjMjM0ZDgwIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfOTIwIiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA5MjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTI3OCkiPiA8ZyBpZD0i44Oe44K544Kv44Kw44Or44O844OXXzY4IiBkYXRhLW5hbWU9IuODnuOCueOCr+OCsOODq+ODvOODlyA2OCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aCkiPiA8ZyBpZD0i44Oe44K544Kv44Kw44Or44O844OXXzU5IiBkYXRhLW5hbWU9IuODnuOCueOCr+OCsOODq+ODvOODlyA1OSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aC0yKSI+IDxwYXRoIGlkPSLlkIjkvZNfMSIgZGF0YS1uYW1lPSLlkIjkvZMgMSIgZD0iTTgxNi41NDQsNDkxLjQ1QzM4MS45MTksNjEzLjA0OSwwLDMwNC44LDAsMzA0LjhIMjk5LjA5MVYxMDloMTkyMFYzMDQuOEgyNTE1LjZTMjI0Ny40NjYsNTQwLDE4NzUuOCw1NDBDMTUwNC4xMDYsNTQwLDEyNTEuMTc2LDM2OS44NTIsODE2LjU0NCw0OTEuNDVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjk5LjA5MSAtMTA5LjAwMikiIGZpbGw9IiMyMzRkODAiLz4gPC9nPiA8L2c+IDwvZz48L3N2Zz4=");
    --global-title-primary-font-size: 75px;
    --global-title-secondary-font-size: 18px;
  }
}

/* --- heading --- */
.c-global-heading {
  --font-family: var(--font-combine);
  display: grid;
  grid-template-columns: 100%;
  row-gap: var(--global-heading-gap);
  font-weight: 600;
}
.c-global-heading--primary {
  font-size: var(--global-primary-heading-font-size);
  color: var(--color-theme);
  --letter-spacing: 0;
}
.c-global-heading--secondary {
  font-size: var(--global-secondary-heading-font-size);
}
.c-static-heading {
  --font-family: var(--font-combine);
  display: grid;
  grid-template-columns: 100%;
  row-gap: var(--global-static-gap);
  font-weight: 400;
}
.c-static-heading--primary {
  font-size: var(--static-primary-heading-font-size);
  color: var(--static-heading-color, var(--color-theme));
  --letter-spacing: 0;
}
.c-static-heading--secondary {
  font-size: var(--static-secondary-heading-font-size);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .c-global-heading {
    --global-primary-heading-font-size: 30px;
    --global-secondary-heading-font-size: 12px;
  }
  .c-static-heading {
    --static-primary-heading-font-size: 30px;
    --static-secondary-heading-font-size: 12px;
  }
}
/* --- for middle viewport --- */
@media screen and (min-width: 768px) and (max-width: 1199px) {
  .c-global-heading {
    --global-primary-heading-font-size: 54px;
    --global-secondary-heading-font-size: 14px;
  }
  .c-static-heading {
    --static-primary-heading-font-size: 54px;
    --static-secondary-heading-font-size: 14px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 1200px) {
  .c-global-heading {
    --global-primary-heading-font-size: 75px;
    --global-secondary-heading-font-size: 18px;
  }
  .c-static-heading {
    --static-primary-heading-font-size: 75px;
    --static-secondary-heading-font-size: 18px;
  }
}

/* --- pagination --- */
.m-pagination {
  margin-block-start: var(--pagination-spacer);
}
.m-pagination__shell {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: var(--pagination-shell-direction);
  gap: var(--pagination-shell-gap);
}
.c-pagination__number,
.c-pagination__controls {
  display: flex;
  justify-content: center;
  align-items: center;
}
.c-pagination__number {
  gap: var(--pagination-number-gap);
}
.c-pagination__number li {
  border-bottom: 3px solid var(--pagination-number-element-active-color, transparent);
}
.c-pagination__number li.is-current {
  --pagination-number-element-active-color: var(--color-theme);
}
.c-pagination__number li > * {
  display: block;
  width: var(--pagination-number-element-width);
  padding-block-end: var(--pagination-number-element-spacer);
  font-family: var(--font-en);
  font-size: var(--pagination-number-element-font-size);
  text-align: center;
  letter-spacing: 0;
}
.c-pagination__controls {
  gap: var(--pagination-controls-gap);
}
.c-pagination__controls-button {
  --pagination-controls-button-color-primary: var(--color-theme);
  --pagination-controls-button-color-secondary: var(--color-white);
  display: grid;
  place-items: center;
  width: var(--pagination-controls-button-width);
  height: var(--pagination-controls-button-height);
  border: 1px solid var(--color-theme);
  border-radius: 100vh;
  background: var(--pagination-controls-button-color-primary-active, var(--pagination-controls-button-color-primary));
  transition: all var(--transition-default);
}
.c-pagination__controls-button--arrow {
  width: var(--pagination-controls-arrow-width);
  --stroke-arrow: var(--pagination-controls-button-color-secondary-active, var(--pagination-controls-button-color-secondary));
}
.c-pagination__controls-button:hover,
.c-pagination__controls-button:active {
  --pagination-controls-button-color-primary-active: var(--pagination-controls-button-color-secondary);
  --pagination-controls-button-color-secondary-active: var(--pagination-controls-button-color-primary);
}
.c-pagination__controls-button.is-disable {
  pointer-events: none;
  opacity: .25;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .m-pagination {
    --pagination-spacer: 70px;
    --pagination-shell-direction: column;
    --pagination-shell-gap: 40px;
    --pagination-number-gap: 0;
    --pagination-number-element-width: 30px;
    --pagination-number-element-spacer: 10px;
    --pagination-number-element-font-size: 20px;
    --pagination-controls-gap: 50px;
    --pagination-controls-button-width: 70px;
    --pagination-controls-button-height: 40px;
    --pagination-controls-arrow-width: 27px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .m-pagination {
    --pagination-spacer: 100px;
    --pagination-shell-gap: 40px;
    --pagination-number-gap: 0;
    --pagination-number-element-width: 60px;
    --pagination-number-element-spacer: 10px;
    --pagination-number-element-font-size: 40px;
    --pagination-controls-gap: 20px;
    --pagination-controls-button-width: 70px;
    --pagination-controls-button-height: 40px;
    --pagination-controls-arrow-width: 27px;
  }
}

/* --- breadcrumb --- */
.m-global-breadcrumb {
  padding-inline: var(--global-breadcrumb-gutter);
  font-size: var(--global-breadcrumb-font-size);
  letter-spacing: .05em;
}
.c-global-breadcrumb__list {
  display: flex;
  gap: 1em;
  max-width: 1400px;
  margin-inline: auto;
  padding-block-end: .5em;
  overflow-x: auto;
}
.c-global-breadcrumb__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1em;
  flex-shrink: 0;
}
.c-global-breadcrumb__item:not(:last-child)::after {
  content: '>';
}
/* --- for small viewport --- */
@media screen and (max-width: 960px) {
  .m-global-breadcrumb {
    --global-breadcrumb-gutter: calc(var(--global-gutter) * 2);
    --global-breadcrumb-font-size: 10px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) {
  .m-global-breadcrumb {
    --global-breadcrumb-gutter: 20px;
    --global-breadcrumb-font-size: 14px;
  }
}

/* --- accordion --- */
.m-accordion {
  overflow: hidden;
  height: var(--accordion-height--closed, auto);
  transition: height 0.25s;
  border-bottom: 1px solid var(--color-theme);
}
.m-accordion.is-opened {
  height: var(--accordion-height--opened, auto);
}
.c-accordion__trigger {
  position: relative;
  padding-block: var(--accordion-trigger-spacer);
  padding-inline: var(--accordion-trigger-gutter);
  font-size: var(--accordion-trigger-font-size);
  line-height: var(--accordion-trigger-line-height);
  font-weight: 700;
}
.c-accordion__trigger::before,
.c-accordion__trigger::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: var(--accordion-icon-width);
  height: 2px;
  background-color: var(--color-theme);
  transition: all var(--transition-default);
}
.c-accordion__trigger::after {
  transform: rotate(90deg);
}
.c-accordion__trigger:hover {
  cursor: pointer;
}
.m-accordion.is-opened .c-accordion__trigger::before {
  transform: rotate(360deg);
}
.m-accordion.is-opened .c-accordion__trigger::after {
  transform: rotate(720deg);
}
.c-accordion__trigger-text::before,
.c-accordion__contents::before {
  content: var(--accordion-icon-content);
  position: absolute;
  top: 0;
  left: 0;
  font-size: var(--accordion-icon-font-size);
  line-height: var(--accordion-icon-line-height);
  font-family: var(--font-en);
  color: var(--accordion-icon-color);
  letter-spacing: 0;
  font-weight: 500;
}
.c-accordion__trigger-text::before {
  --accordion-icon-content: 'Q';
  --accordion-icon-color: var(--color-theme);
  bottom: 0;
  height: fit-content;
  margin: auto;
}
.c-accordion__contents::before {
  --accordion-icon-content: 'A';
  --accordion-icon-color: var(--color-highlight);
}
.c-accordion__contents {
  position: relative;
  padding-block-end: var(--accordion-contents-spacer);
  padding-inline-start: var(--accordion-contents-gutter);
  font-size: var(--accordion-contents-font-size);
  line-height: var(--accordion-contents-line-height);
  letter-spacing: .05em;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .m-accordion {
    --accordion-trigger-spacer: 20px;
    --accordion-trigger-gutter: 30px;
    --accordion-trigger-font-size: 14px;
    --accordion-trigger-line-height: calc(21 / 14);
    --accordion-icon-width: 20px;
    --accordion-icon-font-size: 24px;
    --accordion-icon-line-height: calc(29 / 24);
    --accordion-contents-spacer: 20px;
    --accordion-contents-gutter: 30px;
    --accordion-contents-font-size: 14px;
    --accordion-contents-line-height: calc(24 / 14);
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .m-accordion {
    --accordion-trigger-spacer: 30px;
    --accordion-trigger-gutter: 30px;
    --accordion-trigger-font-size: 16px;
    --accordion-trigger-line-height: calc(21 / 16);
    --accordion-icon-width: 20px;
    --accordion-icon-font-size: 24px;
    --accordion-icon-line-height: calc(29 / 24);
    --accordion-contents-spacer: 30px;
    --accordion-contents-gutter: 30px;
    --accordion-contents-font-size: 16px;
    --accordion-contents-line-height: calc(24 / 16);
  }
}

/* --- global menu --- */
.m-global-menu__body {
  padding-block: var(--global-navigation-spacer);
  padding-inline: var(--global-navigation-gutter);
  color: var(--color-white);
}
.m-global-menu__heading {
  text-align: center;
  font-weight: 600;
}
.m-global-menu__heading-shell {
  display: grid;
}
.c-global-menu__heading-logo {
  width: 120px;
  margin-inline: auto;
}
.c-global-menu__heading-text {
  font-size: 18px;
  line-height: calc(28 / 18);
}
.m-global-menu__navigation {
  display: grid;
  max-width: var(--container-narrow);
  margin-inline: auto;
}
.c-global-menu__navigation-heading {
  --font-family: var(--font-combine);
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.c-global-menu__navigation-heading--primary {
  --letter-spacing: 0;
}
.c-global-menu__navigation-heading--secondary {
}
.m-global-menu__navigation-shell:has(.m-global-jobs-menu) .c-global-menu__navigation-heading::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 20px;
  height: 2px;
  margin: auto;
  background-color: var(--color-white);
}
.m-global-jobs-menu {}
.m-global-jobs-menu__list {
  display: grid;
  grid-template-columns: 100%;
  row-gap: var(--menu-jobs-link-gap);
  font-size: var(--menu-jobs-link-font-size);
  line-height: var(--menu-jobs-link-line-height);
}
.m-global-jobs-menu__list li a {
  --display: block;
  position: relative;
  padding-block: var(--menu-jobs-link-spacer);
  padding-inline: var(--menu-jobs-link-gutter);
  border-bottom: 1px solid var(--color-white);
}
.m-global-jobs-menu__list li a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: var(--icon-menu-link-position-active, var(--icon-menu-link-position));
  width: var(--icon-menu-link-width);
  height: var(--icon-menu-link-height);
  margin: auto;
  background-image: var(--icon-menu-link-image);
  background-repeat: no-repeat;
  background-size: 100%;
  transition: all var(--transition-default);
}
.m-global-sitemap-body {
  display: grid;
  grid-template-columns: 100%;
  row-gap: 50px;
  margin-block-start: 50px;
}
.m-global-sitemap-body .c-button {
  --letter-spacing: 0.05em;
}
.m-global-sitemap-menu {}
.m-global-sitemap-menu__list {
  --letter-spacing: 0;
  display: grid;
  grid-template-columns: 100%;
  row-gap: var(--menu-sitemap-link-gap);
  font-size: var(--menu-sitemap-link-font-size);
}
.m-global-sitemap-menu__list > li:nth-child(1) {
  pointer-events: auto;
}
.c-global-menu__navigation-address {
  font-size: var(--menu-sitemap-link-font-size);
}
.c-global-menu__copyright {
  margin-block-start: var(--global-copyright-spacer);
  font-size: 16px;
  text-align: center;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .m-global-menu__body {
    --global-navigation-spacer: 100px;
    --global-navigation-gutter: calc(var(--global-gutter) * 3);
    --menu-jobs-link-gap: 17px;
    --menu-jobs-link-font-size: 14px;
    --menu-jobs-link-line-height: 14px;
    --menu-jobs-link-spacer: 8px;
    --menu-jobs-link-gutter: 10px;
    --icon-menu-link-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNSIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI1IDE0Ij4gPGcgaWQ9IuOCsOODq+ODvOODl18zNTkiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDM1OSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3OC4zNjkgLTcyNTEpIj4gPHJlY3QgaWQ9IumVt+aWueW9ol8zODgiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDM4OCIgd2lkdGg9IjI1IiBoZWlnaHQ9IjE0IiByeD0iNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjc4LjM2OSA3MjUxKSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBpZD0i44OR44K5XzE3OSIgZGF0YS1uYW1lPSLjg5HjgrkgMTc5IiBkPSJNLTE2NDY0LjksOTMzMS4yMzNoLTEyLjU2OHYtMWgxMC4xN2wtMS43NzUtMS43OS43MTEtLjdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjc2Mi42NTYgLTIwNzEuNzMzKSIgZmlsbD0iIzQyNmZhOCIvPiA8L2c+PC9zdmc+");
    --icon-menu-link-position: 10px;
    --icon-menu-link-width: 25px;
    --icon-menu-link-height: 14px;
    --menu-sitemap-link-gap: 20px;
    --menu-sitemap-link-font-size: 14px;
    --global-copyright-spacer: 35px;
  }
  .m-global-menu__heading-shell {
    grid-template-columns: 100%;
    row-gap: 12px;
  }
  .m-global-menu__navigation {
    grid-template-columns: 100%;
    row-gap: 40px;
    margin-block-start: 45px;
  }
  .c-global-menu__navigation-heading {
    column-gap: 25px;
    row-gap: 6px;
  }
  .c-global-menu__navigation-heading--primary {
    font-size: 30px;
  }
  .c-global-menu__navigation-heading--secondary {
    font-size: 16px;
  }
  .m-global-jobs-menu__list {
    margin-block-start: 18px;
  }
  .m-global-jobs-menu__list li a:active::after {
    --icon-menu-link-position-active: 5px;
  }
  .c-global-menu__br-address {
    display: none;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .m-global-menu__body {
    --global-navigation-spacer: 100px;
    --global-navigation-gutter: 20px;
    --menu-jobs-link-gap: 10px;
    --menu-jobs-link-font-size: 18px;
    --menu-jobs-link-line-height: 22px;
    --menu-jobs-link-spacer: 16px;
    --menu-jobs-link-gutter: 30px;
    --icon-menu-link-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDQ1IDIyIj4gPGcgaWQ9IuOCsOODq+ODvOODl182NzAiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDY3MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3OCAtNzI0OSkiPiA8cmVjdCBpZD0i6ZW35pa55b2iXzM4OCIgZGF0YS1uYW1lPSLplbfmlrnlvaIgMzg4IiB3aWR0aD0iNDUiIGhlaWdodD0iMjIiIHJ4PSIxMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjc4IDcyNDkpIiBmaWxsPSIjZmZmIi8+IDxwYXRoIGlkPSLjg5HjgrlfMTc5IiBkYXRhLW5hbWU9IuODkeOCuSAxNzkiIGQ9Ik0tMTY0NTIuOTA2LDkzMzEuNDgzaC0yNC41NjZ2LTEuNWgyMC4xbC0zLjUtMi42NTIuOTA2LTEuMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2NzY2LjgwNSAtMjA2OS45MzMpIiBmaWxsPSIjMjM0ZDgwIi8+IDwvZz48L3N2Zz4=");
    --icon-menu-link-position: 30px;
    --icon-menu-link-width: 45px;
    --icon-menu-link-height: 22px;
    --menu-sitemap-link-gap: 50px;
    --menu-sitemap-link-font-size: 16px;
    --global-copyright-spacer: 70px;
  }
  .m-global-menu__heading-shell {
    grid-template-columns: 120px auto;
    justify-content: center;
    align-items: center;
    column-gap: 30px;
  }
  .m-global-menu__navigation {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, auto);
    grid-auto-flow: column;
    row-gap: 50px;
    column-gap: 60px;
    margin-block-start: 65px;
  }
  .c-global-menu__navigation-heading {
    column-gap: 20px;
  }
  .c-global-menu__navigation-heading--primary {
    font-size: 40px;
  }
  .c-global-menu__navigation-heading--secondary {
    font-size: 18px;
  }
  .m-global-jobs-menu__list {
    margin-block-start: 20px;
  }
  .m-global-jobs-menu__list li a:hover::after {
    --icon-menu-link-position-active: 20px;
  }
  .c-global-menu__br-address {
    display: block;
  }
}

/* --- gallery carousel --- */
.m-gallery-thumbnail__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: var(--gallery-thumbnail-row-gap);
  column-gap: var(--gallery-thumbnail-column-gap);
  margin-block-start: var(--gallery-thumbnail-spacer);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .m-gallery-thumbnail__grid {
    --gallery-thumbnail-row-gap: 8px;
    --gallery-thumbnail-column-gap: 10px;
    --gallery-thumbnail-spacer: 8px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .m-gallery-thumbnail__grid {
    --gallery-thumbnail-row-gap: 12px;
    --gallery-thumbnail-column-gap: 14px;
    --gallery-thumbnail-spacer: 12px;
  }
}

/**
 * header
 */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--zindex-floating-element);
  backdrop-filter: blur(11px) brightness(1.25);
}
.l-header > * {
  position: relative;
  z-index: var(--zindex-front);
}
.l-header__body {
  display: grid;
  grid-template-columns: var(--header-grid-layout);
}
.c-header__logo {
  max-width: calc(var(--header-logo-width) * 1px);
}
.c-header__site-title {
  display: block;
  height: 0;
  text-indent: 100%;
	white-space: nowrap;
	overflow: hidden;
}
.m-header__menu {
  position: absolute;
  display: var(--status-header-menu, none);
  width: 100%;
  background: rgba(35, 77, 128, .95);
  opacity: var(--header-menu-opacity-active, 0);
  z-index: var(--header-menu-zindex-active, var(--zindex-behind));
  visibility: var(--header-menu-visibility-active, hidden);
  pointer-events: var(--header-menu-pointer-events-active, none);
  transition: all var(--transition-default);
}
.m-header__menu .m-global-menu__body {
  max-height: calc(100svh - var(--header-height));
  overflow: auto;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-header {
    --header-logo-width: 200;
  }
  .l-header__body {
    --header-grid-layout: calc(var(--header-logo-width) * 1px);
    padding-block: 9px;
    justify-content: center;
  }
}
/* --- for middle/large viewport --- */
@media screen and (min-width: 768px) {
  .l-header {
    --header-logo-gutter: 130;
    --header-logo-width: 308;
  }
  .l-header__body {
    padding-block: 20px;
    padding-inline: calc(var(--header-gutter) * 1px);
  }
  .m-header__navigation {
    display: grid;
    align-items: center;
    justify-content: flex-end;
    gap: 30px;
  }
  .m-header__logo-shell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  .c-header__drawer-trigger {
    position: relative;
    width: calc(60 / 70 * 100%);
    height: 15px;
    margin-inline-start: auto;
  }
  .c-header__drawer-trigger--border {
    content: '';
    position: absolute;
    right: 0;
    height: 2px;
    border-radius: 100vh;
    background-color: var(--color-theme);
    transition: all var(--transition-default);
  }
  .c-header__drawer-trigger--border:nth-child(1) {
    top: 0;
    width: 100%;
  }
  .c-header__drawer-trigger--border:nth-child(2) {
    bottom: 0;
    width: calc(2 / 3 * 100%);
  }
  .c-header__drawer-trigger:not(.is-opened):hover .c-header__drawer-trigger--border:nth-child(2) {
    transform: translateX(calc(1 / 2 * -100%));
  }
  .c-header__drawer-trigger.is-opened .c-header__drawer-trigger--border:nth-child(1) {
    bottom: 0;
    width: calc(2 / 3 * 100%);
    margin: auto;
    transform: rotate(315deg);
  }
  .c-header__drawer-trigger.is-opened .c-header__drawer-trigger--border:nth-child(2) {
    top: 0;
    margin: auto;
    transform: rotate(405deg);
  }
}
/* --- for middle viewport --- */
@media screen and (min-width: 768px) and (max-width: 960px) {
  .l-header__body {
    --header-gutter: 15;
    --header-grid-layout: 200px 1fr;
  }
  .m-header__navigation {
    grid-template-columns: minmax(0, 180px) minmax(0, 180px) minmax(0, 50px);
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) {
  .l-header__body {
    --header-gutter: 30;
    --header-grid-layout: calc(calc(var(--header-logo-width) + var(--header-logo-gutter)) / calc(var(--container-wide-value) - var(--header-gutter) * 2) * 100%) 1fr;
  }
  .m-header__navigation {
    display: grid;
    grid-template-columns: minmax(0, 250px) minmax(0, 250px) minmax(0, 70px);
    align-items: center;
    justify-content: flex-end;
    gap: 30px;
  }
  .m-header__menu {
    --status-header-menu: block;
  }
  .m-header__menu.is-opened {
    --header-menu-opacity-active: 1;
    --header-menu-zindex-active: var(--zindex-floating-element);
    --header-menu-visibility-active: visible;
    --header-menu-pointer-events-active: auto;
  }
}

/**
 * footer
 */
.m-footer__contents {
  padding-block-end: var(--footer-contents-spacer);
}
.m-footer__contents__container {
  display: flex;
  gap: var(--footer-contents-container-gap);
  flex-direction: var(--footer-contents-container-direction, row);
}
/* --- archive --- */
.m-footer-contents__archive {
  display: flex;
  flex-direction: column;
  row-gap: var(--footer-archive-gap);
  padding-block: var(--footer-archive-spacer);
  padding-inline: var(--footer-archive-gutter);
  border-radius: 30px;
  background-color: var(--color-light-gray);
}
.m-footer-contents__archive-container .m-archive__summary-box {
  display: grid;
  grid-template-columns: 100%;
  gap: var(--footer-archive-summary-box-gap);
}
.m-footer-contents__archive-container .m-archive__list {
  display: grid;
  grid-template-columns: 100%;
  gap: var(--footer-archive-container-gap);
}
.m-footer-contents__archive-container .m-archive__meta {
  display: flex;
  align-items: center;
  gap: var(--footer-archive-header-gap);
}
.m-footer-contents__archive-container .c-archive__date {
  font-size: var(--footer-archive-date-font-size);
  font-family: var(--font-en);
  color: var(--color-theme);
  letter-spacing: 0;
}
.m-footer-contents__archive-container .m-archive__label {
  display: flex;
  gap: var(--archive-label-gap);
  flex-wrap: wrap;
  color: var(--color-white);
}
.m-footer-contents__archive-container .c-archive__label-item {
  display: grid;
  place-items: center;
  height: var(--archive-label-item-height);
  padding-inline: var(--archive-label-item-gutter);
  border-radius: 100vh;
  background-color: var(--archive-label-item-background);
  font-size: var(--archive-label-item-font-size);
}
.m-footer-contents__archive-container .c-archive__label-item.is-occupation {
  --archive-label-item-background: var(--color-theme);
}
.m-footer-contents__archive-container .c-archive__label-item.is-employee {
  --archive-label-item-background: var(--color-middle-gray);
}
.m-footer-contents__archive-container .c-archive__label-item.is-region {
  --archive-label-item-background: var(--color-theme-pale);
}
.m-footer-contents__archive-container .c-archive__label-item.category-news {
  --archive-label-item-background: var(--color-theme);
}
.m-footer-contents__archive-container .c-archive__label-item.category-information {
  --archive-label-item-background: var(--color-theme-light);
}
.m-footer-contents__archive-container .c-archive__title a {
  --display: grid;
  grid-template-columns: 1fr var(--button-icon-width);
  align-items: center;
  gap: var(--footer-archive-title-gap);
  font-size: var(--footer-archive-title-font-size);
  line-height: var(--footer-archive-title-line-height);
}
.m-footer-contents__archive-container .c-archive__title a:hover .c-icon-button {
  --button-color-primary-active: var(--button-color-secondary);
  --button-color-secondary-active: var(--button-color-primary);
}
.m-footer-contents__archive-button {
  max-width: var(--footer-archive-button-width);
  margin-block-start: auto;
  margin-inline: auto;
  text-align: center;
}

/* --- for small viewport --- */
@media screen and (max-width: 960px) {
  .m-footer__contents {
    --footer-contents-spacer: 70px;
    --footer-contents-container-gap: 70px;
    --footer-contents-container-direction: column;
  }
  .m-footer-contents__archive {
    --footer-archive-gap: 30px;
    --footer-archive-spacer: 50px;
    --footer-archive-gutter: 20px;
    --footer-archive-summary-box-gap: 10px;
    --footer-archive-container-gap: 35px;
    --footer-archive-header-gap: 10px;
    --footer-archive-date-font-size: 16px;
    --archive-label-gap: 5px;
    --archive-label-item-height: 20px;
    --archive-label-item-gutter: 12px;
    --archive-label-item-font-size: 12px;
    --footer-archive-title-gap: 5px;
    --footer-archive-title-font-size: 14px;
    --footer-archive-title-line-height: calc(21 / 14);
    --footer-archive-button-width: 280px;
    --button-icon-width: 35px;
    --button-height: 20px;
    --button-arrow-width: 18px;
    --button-arrow-width-variable: 34px;
    --button-arrow-height-variable: 18px;
    width: calc(100% - var(--global-gutter) * 2);
    margin-inline: auto;
  }
  .m-footer-contents__archive-button .c-button__arrow {
    padding-inline: 8px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) and (max-width: 1199px) {
  .m-footer__contents {
    --footer-contents-spacer: 150px;
    --footer-contents-container-gap: 20px;
  }
  .m-footer__contents__container {
    justify-content: center;
    flex-wrap: wrap;
    padding-inline: 20px;
  }
  .m-footer__contents__container > * {
    max-width: 675px;
    width: calc(50% - var(--footer-contents-container-gap) / 2);
  }
  .m-footer-contents__archive {
    --footer-archive-gap: 50px;
    --footer-archive-spacer: 70px;
    --footer-archive-gutter: 20px;
    --footer-archive-summary-box-gap: 10px;
    --footer-archive-container-gap: 35px;
    --footer-archive-header-gap: 20px;
    --footer-archive-date-font-size: 20px;
    --archive-label-gap: 10px;
    --archive-label-item-height: 22px;
    --archive-label-item-gutter: 18px;
    --archive-label-item-font-size: 14px;
    --footer-archive-title-gap: 30px;
    --footer-archive-title-font-size: 16px;
    --footer-archive-title-line-height: calc(24 / 16);
    --footer-archive-button-width: 360px;
    --button-icon-width: 60px;
    --button-height: 30px;
    --button-arrow-width: 36px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 1200px) {
  .m-footer__contents {
    --footer-contents-spacer: 150px;
    --footer-contents-container-gap: 50px;
  }
  .m-footer__contents__container {
    justify-content: center;
    flex-wrap: wrap;
    padding-inline: 20px;
  }
  .m-footer__contents__container > * {
    max-width: 675px;
    width: calc(50% - var(--footer-contents-container-gap) / 2);
  }
  .m-footer-contents__archive {
    --footer-archive-gap: 50px;
    --footer-archive-spacer: 70px;
    --footer-archive-gutter: 50px;
    --footer-archive-summary-box-gap: 10px;
    --footer-archive-container-gap: 35px;
    --footer-archive-header-gap: 20px;
    --footer-archive-date-font-size: 20px;
    --archive-label-gap: 10px;
    --archive-label-item-height: 22px;
    --archive-label-item-gutter: 18px;
    --archive-label-item-font-size: 14px;
    --footer-archive-title-gap: 30px;
    --footer-archive-title-font-size: 16px;
    --footer-archive-title-line-height: calc(24 / 16);
    --footer-archive-button-width: 360px;
    --button-icon-width: 60px;
    --button-height: 30px;
    --button-arrow-width: 36px;
  }
}
/* --- contact --- */
.m-footer-contents__contact {
  padding-block-start: var(--footer-contact-top-spacer);
  padding-block-end: var(--footer-contact-bottom-spacer);
  padding-inline: var(--footer-contact-gutter);
  border-radius: 30px;
  background-image:
    var(--footer-contact-top-background-image),
    linear-gradient(
      to bottom,
      transparent 0%,
      transparent calc(var(--footer-contact-top-background-image-height) - 5px),
      var(--color-theme-pale) calc(var(--footer-contact-top-background-image-height) - 5px),
      var(--color-theme-pale) calc(100% - var(--footer-contact-top-background-image-height) + 5px),
      transparent calc(100% - var(--footer-contact-top-background-image-height) + 5px),
      transparent 100%
    ),
    var(--footer-contact-bottom-background-image);
  background-repeat:
    no-repeat,
    no-repeat,
    no-repeat;
  background-position:
    top center,
    center,
    bottom center;
  background-size:
    100% var(--footer-contact-top-background-image-height),
    100% 100%,
    100% var(--footer-contact-top-background-image-height);
  text-align: center;
}
.m-footer-contents__contact-container {
  position: relative;
  padding-block-start: var(--footer-contact-container-top-spacer);
  padding-block-end: var(--footer-contact-container-bottom-spacer);
  padding-inline: var(--footer-contact-container-gutter);
  border-radius: 30px;
  background-color: var(--color-white);
  z-index: var(--zindex-front);
}
.m-footer-contents__contact-container::before {
  content: '';
  position: absolute;
  top: var(--footer-contact-circle-position-top);
  left: 0;
  right: 0;
  width: var(--footer-contact-circle-size);
  height: var(--footer-contact-circle-size);
  margin: auto;
  border-radius: 100vh;
  background-color: var(--color-white);
  z-index: var(--zindex-behind);
}
.m-footer-contents__contact-container::after {
  content: '';
  position: absolute;
  top: var(--footer-contact-icon-position-top);
  left: 0;
  right: 0;
  width: var(--footer-contact-icon-size);
  height: var(--footer-contact-icon-size);
  margin: auto;
  background-image: url("data:image/svg+xml;base64,PHN2ZyBpZD0i44Kw44Or44O844OXXzQ1MCIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNDUwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCA4MCA4MCI+IDxkZWZzPiA8Y2xpcFBhdGggaWQ9ImNsaXAtcGF0aCI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNDczIiBkYXRhLW5hbWU9IumVt+aWueW9oiA0NzMiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSIgZmlsbD0iIzQyNmZhOCIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNDQ5IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA0NDkiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj4gPHBhdGggaWQ9IuODkeOCuV8yNjYiIGRhdGEtbmFtZT0i44OR44K5IDI2NiIgZD0iTTYxLjIsMzAuNzYyQTMwLjQzNywzMC40MzcsMCwxLDAsOTEuNjM2LDYxLjIsMzAuNDcyLDMwLjQ3MiwwLDAsMCw2MS4yLDMwLjc2Mm0wLDU4LjA1QTI3LjYxMywyNy42MTMsMCwxLDEsODguODEyLDYxLjIsMjcuNjQ0LDI3LjY0NCwwLDAsMSw2MS4yLDg4LjgxMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjE5OSAtMjEuMTk5KSIgZmlsbD0iIzQyNmZhOCIvPiA8cGF0aCBpZD0i44OR44K5XzI2NyIgZGF0YS1uYW1lPSLjg5HjgrkgMjY3IiBkPSJNMTIwLjgyNiw3My4zNTFhMy4xNzIsMy4xNzIsMCwxLDAtMy4xNzItMy4xNzIsMy4xNzIsMy4xNzIsMCwwLDAsMy4xNzIsMy4xNzIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04MS4wNzkgLTQ2LjE3NykiIGZpbGw9IiM0MjZmYTgiLz4gPHBhdGggaWQ9IuODkeOCuV8yNjgiIGRhdGEtbmFtZT0i44OR44K5IDI2OCIgZD0iTTExMS4yNTIsMTA0LjkxMmgtOC4xMTdWMTA4LjJoNC44MzR2MTUuOWgtNy43djMuMjgzaDE3LjY2VjEyNC4xaC02LjY3N1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02OS4wOTkgLTcyLjI5OCkiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPjwvc3ZnPg==");
  background-size: 100%;
  background-repeat: no-repeat;
  z-index: var(--zindex-overlay);
}
.c-footer-contents-contact__heading {
  font-weight: 400;
}
.m-footer-contents__contact-button {
  max-width: var(--footer-contact-button-width);
  width: 100%;
  margin-block-start: var(--footer-contact-button-spacer);
  margin-inline: auto;
}
.m-footer-contents__contact-info {
  display: grid;
  grid-template-columns: 100%;
  gap: var(--footer-contact-info-gap);
  margin-block-start: var(--footer-contact-info-spacer);
  padding-block-start: var(--footer-contact-info-inner-spacer);
  border-top: 2px solid var(--color-theme);
}
.c-footer-contents__contact-info-index {
  font-size: var(--footer-contact-info-index-font-size);
}
.c-footer-contents__contact-info-call {
  display: grid;
  grid-template-columns: var(--footer-contact-info-call-icon-width) auto;
  gap: var(--footer-contact-info-call-gap);
  align-items: center;
  width: fit-content;
  margin-inline: auto;
  font-family: var(--font-en);
  font-size: var(--footer-contact-info-call-font-size);
  color: var(--color-theme);
  letter-spacing: 0;
}
.c-footer-contents__contact-reception-hours {
  font-size: var(--footer-contact-reception-hours-font-size);
}
/* --- for small viewport --- */
@media screen and (max-width: 960px) {
  .m-footer-contents__contact {
    --footer-contact-top-spacer: 80px;
    --footer-contact-bottom-spacer: 50px;
    --footer-contact-gutter: calc(var(--global-gutter) * 2);
    --footer-contact-top-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzc1IiBoZWlnaHQ9IjUwIiB2aWV3Qm94PSIwIDAgMzc1IDUwIj4gPGRlZnM+IDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoIj4gPHJlY3QgaWQ9IumVt+aWueW9ol80OTMiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDQ5MyIgd2lkdGg9IjM3NSIgaGVpZ2h0PSI1MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCA3MDA1KSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNzA3MDcwIiBzdHJva2Utd2lkdGg9IjEiLz4gPC9jbGlwUGF0aD4gPC9kZWZzPiA8ZyBpZD0i44Kw44Or44O844OXXzcxOSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzE5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC03MDA1KSI+IDxnIGlkPSLjg57jgrnjgq/jgrDjg6vjg7zjg5dfNDgiIGRhdGEtbmFtZT0i44Oe44K544Kv44Kw44Or44O844OXIDQ4IiBjbGlwLXBhdGg9InVybCgjY2xpcC1wYXRoKSI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzE4IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MTgiPiA8cGF0aCBpZD0i44OR44K5XzI2NSIgZGF0YS1uYW1lPSLjg5HjgrkgMjY1IiBkPSJNMCwwSDM3NVY0NjlIMFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgNzAzNSkiIGZpbGw9IiM0MjZmYTgiLz4gPGcgaWQ9IuOCsOODq+ODvOODl180NDYiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDQ0NiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4yOTMgNzAwMy42NDEpIj4gPHBhdGggaWQ9IuODkeOCuV8yMTIiIGRhdGEtbmFtZT0i44OR44K5IDIxMiIgZD0iTS0xNDIyNy4yOTQsNTI2NS45Nzl2LTI2czE0LjYtMTQsNTkuNjkxLTE0YzM2Ljk1NiwwLDM1LjUxMyw3LjUxLDkzLjAxNyw3LjUxczEwNi4yMzktNy41MSwxNDcuNTgzLTcuNTEsNzQuNzA5LDE5LDc0LjcwOSwxOXYyMVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MjI3LjAwMSAtNTIyNC42MikiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --footer-contact-bottom-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzc1IiBoZWlnaHQ9IjUwIiB2aWV3Qm94PSIwIDAgMzc1IDUwIj4gPGRlZnM+IDxjbGlwUGF0aCBpZD0iY2xpcC1wYXRoIj4gPHJlY3QgaWQ9IumVt+aWueW9ol80OTMiIGRhdGEtbmFtZT0i6ZW35pa55b2iIDQ5MyIgd2lkdGg9IjM3NSIgaGVpZ2h0PSI1MCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCA3NDg0KSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjNzA3MDcwIiBzdHJva2Utd2lkdGg9IjEiLz4gPC9jbGlwUGF0aD4gPC9kZWZzPiA8ZyBpZD0i44Kw44Or44O844OXXzcyMSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC03NDg0KSI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzIwIiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MjAiPiA8ZyBpZD0i44Oe44K544Kv44Kw44Or44O844OXXzQ4IiBkYXRhLW5hbWU9IuODnuOCueOCr+OCsOODq+ODvOODlyA0OCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtcGF0aCkiPiA8ZyBpZD0i44Kw44Or44O844OXXzcxOSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNzE5Ij4gPGcgaWQ9IuOCsOODq+ODvOODl183MTgiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDcxOCI+IDxwYXRoIGlkPSLjg5HjgrlfMjY1IiBkYXRhLW5hbWU9IuODkeOCuSAyNjUiIGQ9Ik0wLDBIMzc1VjQ2OUgwWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCA3MDM1KSIgZmlsbD0iIzQyNmZhOCIvPiA8ZyBpZD0i44Kw44Or44O844OXXzQ0NiIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNDQ2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjI5MyA3MDAzLjY0MSkiPiA8cGF0aCBpZD0i44OR44K5XzIxMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTE0MjI3LjI5NCw1MjY1Ljk3OXYtMjZzMTQuNi0xNCw1OS42OTEtMTRjMzYuOTU2LDAsMzUuNTEzLDcuNTEsOTMuMDE3LDcuNTFzMTA2LjIzOS03LjUxLDE0Ny41ODMtNy41MSw3NC43MDksMTksNzQuNzA5LDE5djIxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMDAxIC01MjI0LjYyKSIgZmlsbD0iIzQyNmZhOCIvPiA8L2c+IDwvZz4gPHBhdGggaWQ9IuODkeOCuV8yMTItMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTEzODUyLDUyMTQuNjJ2MTkuNjdzLTIyLjI4MiwyMC40ODMtNzAuODQyLDE0LjQwNS03MS43MjQtNi42NDItMTA2LjE2NS02LjY0Mi02MC4zMTQsMTEuNTY2LTEwNS43MzQsMTEuNTY2LTkyLjI1OS0xOS4zMy05Mi4yNTktMTkuMzN2LTE5LjY3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMDAxIDIyODAuMzgpIiBmaWxsPSIjNDI2ZmE4Ii8+IDwvZz4gPC9nPiA8L2c+IDwvZz48L3N2Zz4=");
    --footer-contact-top-background-image-height: calc(50 * 100vw / 375);
    --footer-contact-container-top-spacer: 65px;
    --footer-contact-container-bottom-spacer: 40px;
    --footer-contact-container-gutter: calc(var(--global-gutter) * 2);
    --footer-contact-circle-position-top: -25px;
    --footer-contact-circle-size: 100px;
    --footer-contact-icon-position-top: -5px;
    --footer-contact-icon-size: 58px;
    --footer-contact-button-width: 280px;
    --footer-contact-button-spacer: 15px;
    --footer-contact-info-gap: 10px;
    --footer-contact-info-spacer: 30px;
    --footer-contact-info-inner-spacer: 30px;
    --footer-contact-info-index-font-size: 16px;
    --footer-contact-info-call-icon-width: 30px;
    --footer-contact-info-call-gap: 10px;
    --footer-contact-info-call-font-size: 38px;
    --footer-contact-reception-hours-font-size: 14px;
  }
  .c-footer-contents-contact__heading {
    font-size: 16px;
  }
  .m-footer-contents__contact-button .c-button__arrow {
    padding-inline: 6px;
  }
}
/* --- for middle viewport --- */
@media screen and (min-width: 961px) and (max-width: 1199px) {
  .m-footer-contents__contact {
    --footer-contact-top-spacer: 85px;
    --footer-contact-bottom-spacer: 60px;
    --footer-contact-gutter: 20px;
    --footer-contact-top-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDY3NSAxMDAiPiA8ZGVmcz4gPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPiA8cmVjdCBpZD0i6ZW35pa55b2iXzQ5MyIgZGF0YS1uYW1lPSLplbfmlrnlvaIgNDkzIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTg1IDY5NzYpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzE5IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05ODUgLTY5NzYpIj4gPGcgaWQ9IuODnuOCueOCr+OCsOODq+ODvOODl180OCIgZGF0YS1uYW1lPSLjg57jgrnjgq/jgrDjg6vjg7zjg5cgNDgiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj4gPGcgaWQ9IuOCsOODq+ODvOODl183MTgiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDcxOCI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNjY4IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA2NjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTgwKSI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNDg2IiBkYXRhLW5hbWU9IumVt+aWueW9oiA0ODYiIHdpZHRoPSI2NzUiIGhlaWdodD0iNjE5IiByeD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk4NSA3MTA1KSIgZmlsbD0iIzQyNmZhOCIvPiA8ZyBpZD0i44Kw44Or44O844OXXzY2NyIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzA1NikiPiA8cGF0aCBpZD0i44OR44K5XzIxMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTE0MjI3LjI5NCw1MzM1Ljk3OGw0LTUyLjhzMjIuMjg3LTU3LjIsMTAzLjQ0NS01Ny4yYzY2LjUyMSwwLDYzLjkyMiwxMy41MTgsMTY3LjQzLDEzLjUxOHMxOTEuMjMtMTMuNTE4LDI2NS42NDgtMTMuNTE4LDEyOS40NzcsNTUuMiwxMjkuNDc3LDU1LjJsNCw1NS44WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMjk0IC01MjI1Ljk3OCkiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPiA8ZyBpZD0i44Kw44Or44O844OXXzY2OSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzY2MSkiPiA8cGF0aCBpZD0i44OR44K5XzIxMi0yIiBkYXRhLW5hbWU9IuODkeOCuSAyMTIiIGQ9Ik0tMTM1NTMuMjk0LDUyMjYuOTc4bC00LDUyLjhzLTIyLjI4Nyw1Ny4yLTEwMy40NDUsNTcuMmMtNjYuNTIxLDAtNjMuOTIyLTEzLjUxOC0xNjcuNDMtMTMuNTE4cy0xOTEuMjMsMTMuNTE4LTI2NS42NDgsMTMuNTE4Yy02NC44MTksMC0xMTQuOTQ5LTQxLjg3OC0xMjcuMDI0LTUyLjg4My0xLjUzNi0xLjQtMi40NTItMi4zMTgtMi40NTItMi4zMThsLTQtNTUuOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MjI3LjI5NCAtNTIyNS45NzgpIiBmaWxsPSIjNDI2ZmE4Ii8+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --footer-contact-bottom-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDY3NSAxMDAiPiA8ZGVmcz4gPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPiA8cmVjdCBpZD0i6ZW35pa55b2iXzQ5MyIgZGF0YS1uYW1lPSLplbfmlrnlvaIgNDkzIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTg1IDc1OTIpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzE5IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05ODUgLTc1OTIpIj4gPGcgaWQ9IuODnuOCueOCr+OCsOODq+ODvOODl180OCIgZGF0YS1uYW1lPSLjg57jgrnjgq/jgrDjg6vjg7zjg5cgNDgiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj4gPGcgaWQ9IuOCsOODq+ODvOODl183MTgiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDcxOCI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNjY4IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA2NjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTgwKSI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNDg2IiBkYXRhLW5hbWU9IumVt+aWueW9oiA0ODYiIHdpZHRoPSI2NzUiIGhlaWdodD0iNjE5IiByeD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk4NSA3MTA1KSIgZmlsbD0iIzQyNmZhOCIvPiA8ZyBpZD0i44Kw44Or44O844OXXzY2NyIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzA1NikiPiA8cGF0aCBpZD0i44OR44K5XzIxMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTE0MjI3LjI5NCw1MzM1Ljk3OGw0LTUyLjhzMjIuMjg3LTU3LjIsMTAzLjQ0NS01Ny4yYzY2LjUyMSwwLDYzLjkyMiwxMy41MTgsMTY3LjQzLDEzLjUxOHMxOTEuMjMtMTMuNTE4LDI2NS42NDgtMTMuNTE4LDEyOS40NzcsNTUuMiwxMjkuNDc3LDU1LjJsNCw1NS44WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMjk0IC01MjI1Ljk3OCkiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPiA8ZyBpZD0i44Kw44Or44O844OXXzY2OSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzY2MSkiPiA8cGF0aCBpZD0i44OR44K5XzIxMi0yIiBkYXRhLW5hbWU9IuODkeOCuSAyMTIiIGQ9Ik0tMTM1NTMuMjk0LDUyMjYuOTc4bC00LDUyLjhzLTIyLjI4Nyw1Ny4yLTEwMy40NDUsNTcuMmMtNjYuNTIxLDAtNjMuOTIyLTEzLjUxOC0xNjcuNDMtMTMuNTE4cy0xOTEuMjMsMTMuNTE4LTI2NS42NDgsMTMuNTE4Yy02NC44MTksMC0xMTQuOTQ5LTQxLjg3OC0xMjcuMDI0LTUyLjg4My0xLjUzNi0xLjQtMi40NTItMi4zMTgtMi40NTItMi4zMThsLTQtNTUuOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MjI3LjI5NCAtNTIyNS45NzgpIiBmaWxsPSIjNDI2ZmE4Ii8+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --footer-contact-top-background-image-height: calc(100 * 100vw / 1400);
    --footer-contact-container-top-spacer: 80px;
    --footer-contact-container-bottom-spacer: 60px;
    --footer-contact-container-gutter: 20px;
    --footer-contact-circle-position-top: -45px;
    --footer-contact-circle-size: 200px;
    --footer-contact-icon-position-top: 0;
    --footer-contact-icon-size: 80px;
    --footer-contact-button-width: 460px;
    --footer-contact-button-spacer: 40px;
    --footer-contact-info-gap: 10px;
    --footer-contact-info-spacer: 40px;
    --footer-contact-info-inner-spacer: 40px;
    --footer-contact-info-index-font-size: 16px;
    --footer-contact-info-call-icon-width: 45px;
    --footer-contact-info-call-gap: 12px;
    --footer-contact-info-call-font-size: 42px;
    --footer-contact-reception-hours-font-size: 16px;
  }
  .m-footer-contents__contact-button .c-button {
    font-size: 22px;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 1200px) {
  .m-footer-contents__contact {
    --footer-contact-top-spacer: 85px;
    --footer-contact-bottom-spacer: 60px;
    --footer-contact-gutter: 35px;
    --footer-contact-top-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDY3NSAxMDAiPiA8ZGVmcz4gPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPiA8cmVjdCBpZD0i6ZW35pa55b2iXzQ5MyIgZGF0YS1uYW1lPSLplbfmlrnlvaIgNDkzIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTg1IDY5NzYpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzE5IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05ODUgLTY5NzYpIj4gPGcgaWQ9IuODnuOCueOCr+OCsOODq+ODvOODl180OCIgZGF0YS1uYW1lPSLjg57jgrnjgq/jgrDjg6vjg7zjg5cgNDgiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj4gPGcgaWQ9IuOCsOODq+ODvOODl183MTgiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDcxOCI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNjY4IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA2NjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTgwKSI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNDg2IiBkYXRhLW5hbWU9IumVt+aWueW9oiA0ODYiIHdpZHRoPSI2NzUiIGhlaWdodD0iNjE5IiByeD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk4NSA3MTA1KSIgZmlsbD0iIzQyNmZhOCIvPiA8ZyBpZD0i44Kw44Or44O844OXXzY2NyIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzA1NikiPiA8cGF0aCBpZD0i44OR44K5XzIxMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTE0MjI3LjI5NCw1MzM1Ljk3OGw0LTUyLjhzMjIuMjg3LTU3LjIsMTAzLjQ0NS01Ny4yYzY2LjUyMSwwLDYzLjkyMiwxMy41MTgsMTY3LjQzLDEzLjUxOHMxOTEuMjMtMTMuNTE4LDI2NS42NDgtMTMuNTE4LDEyOS40NzcsNTUuMiwxMjkuNDc3LDU1LjJsNCw1NS44WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMjk0IC01MjI1Ljk3OCkiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPiA8ZyBpZD0i44Kw44Or44O844OXXzY2OSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzY2MSkiPiA8cGF0aCBpZD0i44OR44K5XzIxMi0yIiBkYXRhLW5hbWU9IuODkeOCuSAyMTIiIGQ9Ik0tMTM1NTMuMjk0LDUyMjYuOTc4bC00LDUyLjhzLTIyLjI4Nyw1Ny4yLTEwMy40NDUsNTcuMmMtNjYuNTIxLDAtNjMuOTIyLTEzLjUxOC0xNjcuNDMtMTMuNTE4cy0xOTEuMjMsMTMuNTE4LTI2NS42NDgsMTMuNTE4Yy02NC44MTksMC0xMTQuOTQ5LTQxLjg3OC0xMjcuMDI0LTUyLjg4My0xLjUzNi0xLjQtMi40NTItMi4zMTgtMi40NTItMi4zMThsLTQtNTUuOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MjI3LjI5NCAtNTIyNS45NzgpIiBmaWxsPSIjNDI2ZmE4Ii8+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --footer-contact-bottom-background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDY3NSAxMDAiPiA8ZGVmcz4gPGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPiA8cmVjdCBpZD0i6ZW35pa55b2iXzQ5MyIgZGF0YS1uYW1lPSLplbfmlrnlvaIgNDkzIiB3aWR0aD0iNjc1IiBoZWlnaHQ9IjEwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTg1IDc1OTIpIiBmaWxsPSIjZmZmIiBzdHJva2U9IiM3MDcwNzAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2NsaXBQYXRoPiA8L2RlZnM+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNzE5IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA3MTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05ODUgLTc1OTIpIj4gPGcgaWQ9IuODnuOCueOCr+OCsOODq+ODvOODl180OCIgZGF0YS1uYW1lPSLjg57jgrnjgq/jgrDjg6vjg7zjg5cgNDgiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXBhdGgpIj4gPGcgaWQ9IuOCsOODq+ODvOODl183MTgiIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDcxOCI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNjY4IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA2NjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTgwKSI+IDxyZWN0IGlkPSLplbfmlrnlvaJfNDg2IiBkYXRhLW5hbWU9IumVt+aWueW9oiA0ODYiIHdpZHRoPSI2NzUiIGhlaWdodD0iNjE5IiByeD0iMjAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk4NSA3MTA1KSIgZmlsbD0iIzQyNmZhOCIvPiA8ZyBpZD0i44Kw44Or44O844OXXzY2NyIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzA1NikiPiA8cGF0aCBpZD0i44OR44K5XzIxMiIgZGF0YS1uYW1lPSLjg5HjgrkgMjEyIiBkPSJNLTE0MjI3LjI5NCw1MzM1Ljk3OGw0LTUyLjhzMjIuMjg3LTU3LjIsMTAzLjQ0NS01Ny4yYzY2LjUyMSwwLDYzLjkyMiwxMy41MTgsMTY3LjQzLDEzLjUxOHMxOTEuMjMtMTMuNTE4LDI2NS42NDgtMTMuNTE4LDEyOS40NzcsNTUuMiwxMjkuNDc3LDU1LjJsNCw1NS44WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyMjcuMjk0IC01MjI1Ljk3OCkiIGZpbGw9IiM0MjZmYTgiLz4gPC9nPiA8ZyBpZD0i44Kw44Or44O844OXXzY2OSIgZGF0YS1uYW1lPSLjgrDjg6vjg7zjg5cgNjY5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5ODUgNzY2MSkiPiA8cGF0aCBpZD0i44OR44K5XzIxMi0yIiBkYXRhLW5hbWU9IuODkeOCuSAyMTIiIGQ9Ik0tMTM1NTMuMjk0LDUyMjYuOTc4bC00LDUyLjhzLTIyLjI4Nyw1Ny4yLTEwMy40NDUsNTcuMmMtNjYuNTIxLDAtNjMuOTIyLTEzLjUxOC0xNjcuNDMtMTMuNTE4cy0xOTEuMjMsMTMuNTE4LTI2NS42NDgsMTMuNTE4Yy02NC44MTksMC0xMTQuOTQ5LTQxLjg3OC0xMjcuMDI0LTUyLjg4My0xLjUzNi0xLjQtMi40NTItMi4zMTgtMi40NTItMi4zMThsLTQtNTUuOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE0MjI3LjI5NCAtNTIyNS45NzgpIiBmaWxsPSIjNDI2ZmE4Ii8+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==");
    --footer-contact-top-background-image-height: calc(100 * 100vw / 1400);
    --footer-contact-container-top-spacer: 80px;
    --footer-contact-container-bottom-spacer: 60px;
    --footer-contact-container-gutter: 45px;
    --footer-contact-circle-position-top: -45px;
    --footer-contact-circle-size: 200px;
    --footer-contact-icon-position-top: 0;
    --footer-contact-icon-size: 80px;
    --footer-contact-button-width: 460px;
    --footer-contact-button-spacer: 40px;
    --footer-contact-info-gap: 10px;
    --footer-contact-info-spacer: 40px;
    --footer-contact-info-inner-spacer: 40px;
    --footer-contact-info-index-font-size: 16px;
    --footer-contact-info-call-icon-width: 45px;
    --footer-contact-info-call-gap: 12px;
    --footer-contact-info-call-font-size: 58px;
    --footer-contact-reception-hours-font-size: 16px;
  }
}

/* --- menu --- */
.m-footer__menu {
  background: var(--color-theme);
}

/* --- fixed navigation --- */
.c-footer__fixed-navigation {
  position: fixed;
  right: var(--footer-fixed-navigation-position-right);
  bottom: var(--footer-fixed-navigation-position-bottom);
  width: var(--footer-fixed-navigation-size);
  height: var(--footer-fixed-navigation-size);
  padding-block-start: var(--footer-fixed-navigation-spacer);
  border-radius: 100vh;
  box-shadow: 0px 6px 12px 0px rgba(0, 0, 0, .1);
  background-color: var(--color-highlight);
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0OS41IiB2aWV3Qm94PSIwIDAgNDAgNDkuNSI+IDxnIGlkPSJJY29uX2ZlYXRoZXItZmlsZS10ZXh0IiBkYXRhLW5hbWU9Ikljb24gZmVhdGhlci1maWxlLXRleHQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPiA8cGF0aCBpZD0i44OR44K5XzIxNSIgZGF0YS1uYW1lPSLjg5HjgrkgMjE1IiBkPSJNMjkuNzUsM2gtMTlBNC43NSw0Ljc1LDAsMCwwLDYsNy43NXYzOGE0Ljc1LDQuNzUsMCwwLDAsNC43NSw0Ljc1aDI4LjVBNC43NSw0Ljc1LDAsMCwwLDQ0LDQ1Ljc1VjE3LjI1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYgLTMpIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIi8+IDxwYXRoIGlkPSLjg5HjgrlfMjE2IiBkYXRhLW5hbWU9IuODkeOCuSAyMTYiIGQ9Ik0yMSwzVjE3LjI2OEgzNS4yNjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIuNzMyIC0zKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPiA8cGF0aCBpZD0i44OR44K5XzIxNyIgZGF0YS1uYW1lPSLjg5HjgrkgMjE3IiBkPSJNMzEuMDE3LDE5LjVIMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjUwOCA2LjYyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4gPHBhdGggaWQ9IuODkeOCuV8yMTgiIGRhdGEtbmFtZT0i44OR44K5IDIxOCIgZD0iTTMxLjAxNywyNS41SDEyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi41MDggMTAuMTI1KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIvPiA8cGF0aCBpZD0i44OR44K5XzIxOSIgZGF0YS1uYW1lPSLjg5HjgrkgMjE5IiBkPSJNMTYuNzU2LDEzLjVIMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yLjUwMiAzLjEyNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4gPC9nPjwvc3ZnPg==");
  background-size: var(--footer-fixed-navigation-icon-size);
  background-position: top var(--footer-fixed-navigation-icon-position) center;
  background-repeat: no-repeat;
  font-size: var(--footer-fixed-navigation-font-size);
  line-height: var(--footer-fixed-navigation-line-height);
  color: var(--color-white);
  font-weight: 700;
  text-align: center;
  z-index: var(--zindex-floating-element);
}
/* --- for small viewport --- */
@media screen and (max-width: 960px) {
  .c-footer__fixed-navigation {
    --footer-fixed-navigation-position-right: var(--global-gutter);
    --footer-fixed-navigation-position-bottom: var(--global-gutter);
    --footer-fixed-navigation-size: 100px;
    --footer-fixed-navigation-spacer: 42px;
    --footer-fixed-navigation-icon-size: 20px;
    --footer-fixed-navigation-icon-position: 11px;
    --footer-fixed-navigation-font-size: 16px;
    --footer-fixed-navigation-line-height: calc(20 / 16);
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 961px) {
  .c-footer__fixed-navigation {
    --footer-fixed-navigation-position-right: 30px;
    --footer-fixed-navigation-position-bottom: 30px;
    --footer-fixed-navigation-size: 190px;
    --footer-fixed-navigation-spacer: 85px;
    --footer-fixed-navigation-icon-size: 38px;
    --footer-fixed-navigation-icon-position: 28px;
    --footer-fixed-navigation-font-size: 28px;
    --footer-fixed-navigation-line-height: calc(35 / 28);
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}