/* //////////////////////////////////////////////////

Title : global.scss
For   : hospis/

Created       : 2025-09-26
Last Modified : 2025-09-26

==========================================

Content

////////////////////////////////////////////////// */
/**
 * global
 */
html {
  scroll-behavior: smooth;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  html {
    font-size: 62.5%;
  }
}
/* --- for middle viewport --- */
@media screen and (min-width: 768px) and (max-width: 1920px) {
  html {
    font-size: calc(1000vw / var(--container-wide-value));
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 1921px) {
  html {
    font-size: 62.5%;
  }
}
:target {
  scroll-margin-top: var(--header-height);
}

body {
  background: inherit;
  font-family: var(--font-family, var(--font-base));
  color: var(--color-base);
  font-weight: 400;
}

:where(img, svg, picture, video) {
  display: var(--display, block);
  width: 100%;
  height: auto;
  border: none;
  outline: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

* {
  box-sizing: border-box;
}

a {
  color: inherit;
  display: var(--display, inline-block);
}

a:has(img) {
  --display: block;
}

summary {
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}

/**
 * form elements
 */
:where(input, label, select):hover {
  cursor: pointer;
}

/**
 * status
 */
.is-hidden {
  display: none !important;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .is-hidden-small {
    display: none !important;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .is-hidden-large {
    display: none !important;
  }
}
/** 
 * utility
 */
.u-text-strong {
  color: var(--color-theme);
  font-weight: 700;
}

.u-text-highlight {
  color: var(--color-theme-light);
}

/**
 * animation
 */
.anim-fade-in {
  visibility: var(--visibility, hidden);
  opacity: var(--opacity, 0);
  transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-fade-in.is-show {
  --visibility: visibility;
  --opacity: 1;
}

/**
 * layout
 */
.p-page-global {
  -webkit-padding-before: var(--header-height);
          padding-block-start: var(--header-height);
  background-size: min(100%, 192rem) auto;
  background-position: top center;
  background-repeat: no-repeat;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .p-page-global {
    background-image: url(../images/global/page-header-background-small.webp);
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .p-page-global {
    background-image: url(../images/global/page-header-background-large.webp);
  }
}
/**
 * megamenu
 */
.c-global-megamenu__container {
  display: grid;
  max-width: var(--container-middle);
  margin-inline: auto;
}
.c-global-megamenu__list[data-menu=primary] {
  display: grid;
  grid-template-columns: 100%;
}
.c-global-megamenu__list[data-menu=primary] li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--color-white);
}
.c-global-megamenu__list[data-menu=primary] li a::after {
  content: "";
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNi45NTkiIGhlaWdodD0iNy42NjIiIHZpZXdCb3g9IjAgMCAyNi45NTkgNy42NjIiPiA8cGF0aCBpZD0i44OR44K5Xzg2MCIgZGF0YS1uYW1lPSLjg5HjgrkgODYwIiBkPSJNLTIwODQxLjU4NC04MzU4Ljk5M2gyNS43NWwtNi44MTgtNi44MDkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwODQxLjU4NCA4MzY2LjE1NSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxIi8+PC9zdmc+");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100%;
}
.c-global-megamenu__list[data-menu=secondary] {
  display: grid;
  grid-template-columns: 100%;
}
.c-global-megamenu__list[data-menu=tertiary] {
  display: flex;
  justify-content: center;
  align-items: center;
}
.c-global-megamenu__list[data-menu=tertiary] li {
  position: relative;
  display: flex;
  align-items: center;
}
.c-global-megamenu__list[data-menu=tertiary] li:not(:first-child)::before {
  content: "";
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5Ljg4NSIgaGVpZ2h0PSIxMi43MDIiIHZpZXdCb3g9IjAgMCA5Ljg4NSAxMi43MDIiPiA8cGF0aCBpZD0i44OR44K5Xzg3MCIgZGF0YS1uYW1lPSLjg5HjgrkgODcwIiBkPSJNLTIwOTE5LjEtNTg5Mi40MzdsLTkuMDg0LDEyLjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwOTI4LjU4NCA1ODkyLjczNykiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxIi8+PC9zdmc+");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100%;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .c-global-megamenu--secondary {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
  }
  .c-global-megamenu--tertiary {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
  .c-global-megamenu__title {
    font-size: 1.6rem;
    line-height: 1.5;
  }
  .c-global-megamenu__list[data-menu=primary] {
    gap: 1.5rem;
    -webkit-margin-before: 2.5rem;
            margin-block-start: 2.5rem;
    font-size: 1.3em;
    line-height: 1.5384615385;
  }
  .c-global-megamenu__list[data-menu=primary] li a {
    -webkit-padding-after: 0.8rem;
            padding-block-end: 0.8rem;
  }
  .c-global-megamenu__list[data-menu=primary] li a::after {
    width: 1rem;
    height: 0.5rem;
  }
  .c-global-megamenu__list[data-menu=secondary] {
    gap: 1.4rem;
    font-size: 1.5rem;
    line-height: 1.3333333333;
  }
  .c-global-megamenu__list[data-menu=tertiary] {
    font-size: 1.2rem;
    line-height: 1;
    gap: 1.5rem;
  }
  .c-global-megamenu__list[data-menu=tertiary] li {
    gap: 1.5rem;
  }
  .c-global-megamenu__list[data-menu=tertiary] li:not(:first-child)::before {
    width: 0.9rem;
    height: 1.2rem;
  }
  .c-global-megamenu__button {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    margin-inline: auto;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .c-global-megamenu--primary {
    grid-column: 1;
    grid-row: 1;
  }
  .c-global-megamenu--secondary {
    grid-column: 2;
    grid-row: 1;
  }
  .c-global-megamenu--tertiary {
    grid-column: 1/span 2;
    grid-row: 2;
  }
  .c-global-megamenu__container {
    grid-template-columns: 55.5rem 1fr;
    -moz-column-gap: 9.5rem;
         column-gap: 9.5rem;
    row-gap: 6rem;
  }
  .c-global-megamenu__title {
    font-size: 2rem;
    line-height: 1.45;
  }
  .c-global-megamenu__list[data-menu=primary] {
    gap: 2rem;
    -webkit-margin-before: 3.5rem;
            margin-block-start: 3.5rem;
    font-size: 1.6em;
    line-height: 1.5;
  }
  .c-global-megamenu__list[data-menu=primary] li a {
    -webkit-padding-after: 1.2rem;
            padding-block-end: 1.2rem;
  }
  .c-global-megamenu__list[data-menu=primary] li a::after {
    width: 2.6rem;
    height: 1rem;
  }
  .c-global-megamenu__list[data-menu=secondary] {
    gap: 2.2rem;
    font-size: 1.6rem;
    line-height: 1.5;
  }
  .c-global-megamenu__list[data-menu=tertiary] {
    font-size: 1.4rem;
    line-height: 1;
    gap: 1.2rem;
  }
  .c-global-megamenu__list[data-menu=tertiary] li {
    gap: 1.2rem;
  }
  .c-global-megamenu__list[data-menu=tertiary] li:not(:first-child)::before {
    width: 0.9rem;
    height: 1.2rem;
  }
  .c-global-megamenu__button {
    -webkit-margin-before: 5rem;
            margin-block-start: 5rem;
  }
}
/**
 * header
 */
.l-header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: var(--zindex-floating-element);
}
.l-header__body {
  display: grid;
  grid-template-columns: var(--header-logo-width) 1fr;
  align-items: center;
  background-color: var(--color-white);
}
.l-header__menu {
  position: absolute;
  width: 100%;
  background-color: var(--color-theme);
  color: var(--color-white);
  opacity: var(--opacity-state, 0);
  visibility: var(--visibility-state, hidden);
  pointer-events: var(--pointer-events-state, none);
  transition: all var(--transition-default);
}
.l-header__menu.is-opened {
  --opacity-state: 1;
  --visibility-state: visible;
  --pointer-events-state: auto;
}

.c-header__navigation {
  display: grid;
  grid-template-columns: var(--header-contact-button-width) var(--header-drawer-button-width);
  -webkit-margin-start: auto;
          margin-inline-start: auto;
}
.c-header__contact-button {
  display: grid;
  place-items: center;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  border: 1px solid #08a2b7;
  border-radius: 0.4rem;
  background-color: var(--color-white);
  color: #08a2b7;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}
.c-header__drawer-trigger {
  position: relative;
  aspect-ratio: 1;
  border-radius: 100vh;
  background-color: var(--color-theme-light);
}
.c-header__drawer-trigger span {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  margin: auto;
  background-color: var(--color-white);
  transition: transform var(--transition-default);
}
.c-header__drawer-trigger span:nth-of-type(2) {
  top: 0;
  bottom: 0;
}
.c-header__drawer-trigger.is-opened span:nth-of-type(1) {
  transform: rotate(390deg);
  top: 0;
  bottom: 0;
}
.c-header__drawer-trigger.is-opened span:nth-of-type(2) {
  opacity: 0;
}
.c-header__drawer-trigger.is-opened span:nth-of-type(3) {
  transform: rotate(690deg);
  top: 0;
  bottom: 0;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-header {
    --header-logo-width: 14.4rem;
    --header-contact-button-width: auto;
    --header-drawer-button-width: 4rem;
  }
  .l-header__body {
    padding-block: 1rem;
    padding-inline: 1.5rem;
  }
  .l-header__menu {
    -webkit-padding-before: 6rem;
            padding-block-start: 6rem;
    -webkit-padding-after: 3rem;
            padding-block-end: 3rem;
    padding-inline: 3.5rem;
  }
  .l-header__menu-container {
    grid-template-columns: 100%;
  }
  .c-header__navigation {
    gap: 1.3rem;
  }
  .c-header__contact-button {
    padding-block: 0.6rem;
    padding-inline: 1.6rem;
    font-size: 1.2rem;
    line-height: 1.3333333333;
  }
  .c-header__drawer-trigger span {
    width: 1.8rem;
  }
  .c-header__drawer-trigger span:nth-of-type(1) {
    top: 1.4rem;
  }
  .c-header__drawer-trigger span:nth-of-type(3) {
    bottom: 1.4rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-header {
    --header-logo-width: 25.6rem;
    --header-contact-button-width: 34rem;
    --header-drawer-button-width: 5rem;
  }
  .l-header__body {
    padding-block: 1.5rem;
    -webkit-padding-start: calc(var(--global-gutter) * 1);
            padding-inline-start: calc(var(--global-gutter) * 1);
    -webkit-padding-end: calc(var(--global-gutter) * 2);
            padding-inline-end: calc(var(--global-gutter) * 2);
  }
  .l-header__menu {
    -webkit-padding-before: 9.5rem;
            padding-block-start: 9.5rem;
    -webkit-padding-after: 6rem;
            padding-block-end: 6rem;
  }
  .c-header__navigation {
    gap: 4rem;
  }
  .c-header__contact-button {
    padding-block: 0.6rem;
    font-size: 1.7rem;
    line-height: 1.1764705882;
  }
  .c-header__drawer-trigger span {
    width: 2.4rem;
  }
  .c-header__drawer-trigger span:nth-of-type(1) {
    top: 1.8rem;
  }
  .c-header__drawer-trigger span:nth-of-type(3) {
    bottom: 1.8rem;
  }
}
/**
 * footer
 */
.l-footer {
  position: relative;
  -webkit-padding-before: var(--footer-spacer, var(--footer-spacer-deault));
          padding-block-start: var(--footer-spacer, var(--footer-spacer-deault));
}

/* --- support --- */
.l-footer__support {
  overflow: hidden;
}

.c-footer-support__container {
  display: grid;
  grid-template-columns: 100%;
}
.c-footer-support__block {
  position: relative;
}
.c-footer-support__link {
  position: relative;
  transition: all var(--transition-default);
}
.c-footer-support__link::after {
  content: "";
  position: absolute;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center center;
}

/* --- scroll top --- */
.c-footer-scroll-top {
  position: fixed;
  display: flex;
  flex-direction: column;
  color: var(--color-white);
  font-family: var(--font-en);
  font-weight: 400;
  text-align: center;
  z-index: var(--zindex-floating-element);
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-footer {
    --footer-spacer-deault: 6.3rem;
  }
  .l-footer:not(:has(.l-global-facilities)) {
    --footer-spacer: 5rem;
  }
  .l-footer__support {
    -webkit-padding-after: 7.8rem;
            padding-block-end: 7.8rem;
    background-image: url(../images/global/footer/support-background-small.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: bottom center;
  }
  .c-footer-support__container {
    gap: 3.5rem;
  }
  .c-footer-support__title {
    display: flex;
    align-items: center;
    gap: 1rem;
    -webkit-padding-after: 1.5rem;
            padding-block-end: 1.5rem;
    padding-inline: calc(var(--global-gutter) * 2);
    font-size: 2.1rem;
    line-height: 1.4285714286;
    font-weight: 500;
  }
  .c-footer-support__title[data-support-type=faq] {
    justify-content: flex-end;
  }
  .c-footer-support__title::before {
    content: "";
    width: 1rem;
    height: 1rem;
    border-radius: 100vh;
    background-color: var(--color-theme-light);
  }
  .c-footer-support__block[data-support-type=information] {
    --link-icon-right-position: 3rem;
    transform: translateX(-5.2rem);
  }
  .c-footer-support__block[data-support-type=information] .c-footer-support__heading {
    --heading-text-align: left;
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    -webkit-padding-end: 2.5rem;
            padding-inline-end: 2.5rem;
  }
  .c-footer-support__block[data-support-type=faq] {
    --link-icon-right-position: 7.5rem;
    transform: translateX(5.4rem);
  }
  .c-footer-support__block[data-support-type=faq] .c-footer-support__heading {
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    -webkit-padding-end: 7.5rem;
            padding-inline-end: 7.5rem;
  }
  .c-footer-support__link {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    padding-block: 2rem;
  }
  .c-footer-support__link::after {
    bottom: 3rem;
    right: var(--link-icon-right-position);
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDMwIDMwIj4gPGcgaWQ9IuOCsOODq+ODvOODl180MDciIGRhdGEtbmFtZT0i44Kw44Or44O844OXIDQwNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI1NiAtNzUyMC41KSI+IDxnIGlkPSLmpZXlhoblvaJfNDciIGRhdGEtbmFtZT0i5qWV5YaG5b2iIDQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNTYgNzUyMC41KSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEiPiA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSIxNSIgc3Ryb2tlPSJub25lIi8+IDxjaXJjbGUgY3g9IjE1IiBjeT0iMTUiIHI9IjE0LjUiIGZpbGw9Im5vbmUiLz4gPC9nPiA8cGF0aCBpZD0i44OR44K5XzIyOSIgZGF0YS1uYW1lPSLjg5HjgrkgMjI5IiBkPSJNLTIwODQxLjU4Mi04MzYyaDE0LjM3NWwtMy44LTMuOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjExMDUuMzk1IDE1ODk3LjkpIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2c+PC9zdmc+");
    width: 3rem;
    height: 3rem;
  }
  .c-footer-support__heading {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    --heading-gap: 0;
    --heading-main-font-size: 3.8rem;
    --heading-main-line-height: calc(42 / 38);
    --heading-main-color: var(--color-white);
    --heading-sub-font-size: 1.6rem;
    --heading-sub-line-height: 1.5;
    --heading-sub-color: var(--color-white);
  }
  .c-footer-scroll-top {
    gap: 0.8rem;
    width: 4.7rem;
    bottom: calc(var(--global-gutter) * 2);
    right: calc(var(--global-gutter) * 2);
    font-size: 1.2rem;
    line-height: 1.25;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-footer {
    --footer-spacer-deault: 16rem;
  }
  .l-footer:not(:has(.l-global-facilities)) {
    --footer-spacer: 20rem;
  }
  .c-footer-support__container {
    gap: 2.5rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .c-footer-support__block {
    display: grid;
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }
  .c-footer-support__block[data-support-type=information] {
    grid-template-columns: 102rem 57.2rem 33.8rem;
    transform: translateX(-6rem);
  }
  .c-footer-support__block[data-support-type=faq] {
    grid-template-columns: 57.2rem 100rem;
    -webkit-padding-start: 18rem;
            padding-inline-start: 18rem;
    -webkit-padding-end: 14.3rem;
            padding-inline-end: 14.3rem;
  }
  .c-footer-support__block[data-support-type=faq] .c-footer-support__thumbnail {
    grid-row: 1;
    grid-column: 2;
  }
  .c-footer-support__block[data-support-type=faq] .c-footer-support__link {
    grid-row: 1;
    grid-column: 1;
  }
  .c-footer-support__link {
    display: grid;
    place-items: center;
    border: 1px solid var(--color-theme-light);
    border-radius: 4.8rem;
  }
  .c-footer-support__link::after {
    content: "";
    bottom: 5rem;
    right: 5rem;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1Ni40OTciIGhlaWdodD0iNTYuNDk3IiB2aWV3Qm94PSIwIDAgNTYuNDk3IDU2LjQ5NyI+IDxnIGlkPSLjgrDjg6vjg7zjg5dfNDA3IiBkYXRhLW5hbWU9IuOCsOODq+ODvOODlyA0MDciIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNTYgLTc1MjAuNSkiPiA8ZyBpZD0i5qWV5YaG5b2iXzQ3IiBkYXRhLW5hbWU9IualleWGhuW9oiA0NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU2IDc1MjAuNSkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQ1YTRkMCIgc3Ryb2tlLXdpZHRoPSIxIj4gPGNpcmNsZSBjeD0iMjguMjQ5IiBjeT0iMjguMjQ5IiByPSIyOC4yNDkiIHN0cm9rZT0ibm9uZSIvPiA8Y2lyY2xlIGN4PSIyOC4yNDkiIGN5PSIyOC4yNDkiIHI9IjI3Ljc0OSIgZmlsbD0ibm9uZSIvPiA8L2c+IDxwYXRoIGlkPSLjg5HjgrlfMjI5IiBkYXRhLW5hbWU9IuODkeOCuSAyMjkiIGQ9Ik0tMjA4NDEuNTgtODM1OC42NDNoMjcuMDdsLTcuMTYtNy4xNTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxMTEyLjI5MyAxNTkwOC4xNDUpIiBmaWxsPSJub25lIiBzdHJva2U9IiM0NWE0ZDAiIHN0cm9rZS13aWR0aD0iMSIvPiA8L2c+PC9zdmc+");
    width: 5.6rem;
    height: 5.6rem;
  }
  .c-footer-support__link:hover {
    opacity: 0.5;
  }
  .c-footer-support__link:hover::after {
    -webkit-animation: moving-arrow 1s linear infinite;
            animation: moving-arrow 1s linear infinite;
  }
  .c-footer-support__heading {
    --heading-gap: 1.6rem;
    --heading-text-align: center;
    --heading-main-font-size: 6.8rem;
    --heading-main-line-height: calc(83 / 68);
    --heading-sub-line-height: 1;
  }
  .c-footer-scroll-top {
    gap: 0.8rem;
    width: 7.5rem;
    bottom: 5rem;
    right: calc((100vw - var(--container-middle)) / 2);
    font-size: 1.8rem;
    line-height: 1.2222222222;
  }
}
/* --- news --- */
.l-footer__news {
  max-width: var(--container-narrow);
  margin-inline: auto;
}

.c-footer-news__heading {
  --heading-flex-direction: row;
  --heading-text-align: left;
  --heading-main-line-height: 1;
  --heading-sub-line-height: 1;
  align-items: end;
}
.c-footer-news__container {
  border-radius: 5rem;
  background-repeat: no-repeat;
  background-size: cover;
}
.c-footer-news__item {
  border-bottom: 1px solid #e0e0e0;
  font-weight: 500;
}
.c-footer-news__link {
  display: grid;
  grid-template-columns: auto 1fr;
}
.c-footer-news__date {
  grid-column: 1;
  grid-row: 1;
  -webkit-padding-after: 1px;
          padding-block-end: 1px;
  color: var(--color-theme-light);
  font-size: 1.4rem;
  line-height: 1;
}
.c-footer-news__label {
  grid-column: 2;
  grid-row: 1;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding-inline: 1rem;
  background-color: var(--color-theme-light);
  font-size: 1.3rem;
  line-height: 1.0769230769;
  color: var(--color-white);
}
.c-footer-news__title {
  grid-column: 1/span 2;
  grid-row: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: var(--news-title-rows);
  max-height: calc(var(--news-title-line-height) * var(--news-title-rows) * 1em);
  line-height: var(--news-title-line-height);
}
.c-footer-news__button {
  margin-inline: auto;
}
.c-footer-news__message {
  font-size: 1.4rem;
  text-align: center;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-footer__news {
    -webkit-margin-before: 1.5rem;
            margin-block-start: 1.5rem;
    padding-inline: calc(var(--global-gutter) * 1);
  }
  .c-footer-news__heading {
    --heading-gap: 1rem;
    padding-inline: calc(var(--global-gutter) * 1);
  }
  .c-footer-news__heading .c-heading__sub {
    -webkit-padding-after: 0.5rem;
            padding-block-end: 0.5rem;
  }
  .c-footer-news__container {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    padding-block: 2.5rem;
    padding-inline: 1.5rem;
    background-image: url(../../service/images/global/footer/news-background-small.webp);
  }
  .c-footer-news__link {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    row-gap: 0.8rem;
    padding-block: 1.5rem;
    padding-inline: 1.5rem;
  }
  .c-footer-news__title {
    --news-title-rows: 2;
    --news-title-line-height: calc(27 / 14);
    font-size: 1.4rem;
  }
  .c-footer-news__button {
    --button-width: 20rem;
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-footer__news {
    -webkit-margin-before: 15rem;
            margin-block-start: 15rem;
  }
  .c-footer-news__heading {
    --heading-gap: 3.6rem;
    --heading-main-font-size: 9.9rem;
  }
  .c-footer-news__heading .c-heading__sub {
    -webkit-padding-after: 1rem;
            padding-block-end: 1rem;
  }
  .c-footer-news__container {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    -webkit-padding-before: 3rem;
            padding-block-start: 3rem;
    -webkit-padding-after: 4rem;
            padding-block-end: 4rem;
    padding-inline: 10rem;
    background-image: url(../../service/images/global/footer/news-background-large.webp);
  }
  .c-footer-news__link {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    row-gap: 0.8rem;
    padding-block: 2rem;
    padding-inline: 2.5rem;
  }
  .c-footer-news__title {
    --news-title-rows: 1;
    --news-title-line-height: calc(27 / 16);
    font-size: 1.6rem;
  }
  .c-footer-news__button {
    --button-icon-background-width: 4rem;
    --button-width: 26rem;
    --button-height: 6rem;
    --button-font-size: 1.8rem;
    -webkit-margin-before: 3.5rem;
            margin-block-start: 3.5rem;
  }
}
/* --- recruit --- */
.l-footer__recruit {
  position: relative;
}

.c-footer-recruit__container {
  display: grid;
  overflow-x: hidden;
}
.c-footer-recruit__heading {
  --heading-main-line-height: 1;
}
.c-footer-recruit__heading .c-heading__main {
  writing-mode: vertical-rl;
}
.c-footer-recruit__sub-heading {
  font-weight: 500;
  line-height: 1;
}
.c-footer-recruit__thumbnail {
  border-radius: 5rem;
  overflow: hidden;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-footer__recruit {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
    -webkit-padding-before: 4rem;
            padding-block-start: 4rem;
    background-image: url(../images/global/footer/recruit-background-small.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: top center;
  }
  .c-footer-recruit__container {
    grid-template-columns: 3.5rem 2.5rem 31.5rem;
    row-gap: 3rem;
  }
  .c-footer-recruit__heading {
    grid-column: 1;
    grid-row: 1/span 2;
  }
  .c-footer-recruit__sub-heading {
    grid-column: 3;
    grid-row: 1;
    -webkit-padding-before: 1.1rem;
            padding-block-start: 1.1rem;
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .c-footer-recruit__button {
    grid-column: 1/span 3;
    grid-row: 3;
    margin-inline: auto;
  }
  .c-footer-recruit__thumbnail {
    grid-column: 3;
    grid-row: 2;
    width: 37.5rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-footer__recruit {
    -webkit-margin-before: 14.5rem;
            margin-block-start: 14.5rem;
    background-image: url(../images/global/footer/recruit-background-large.png);
    background-size: 147.3rem;
    background-repeat: no-repeat;
    background-position: top 1.3rem left;
  }
  .c-footer-recruit__container {
    grid-template-columns: 7.1rem 10rem 30rem 12.4rem 91rem 4rem;
    justify-content: center;
    row-gap: 3rem;
    -webkit-padding-start: calc((var(--container-wide) - var(--container-middle)) / 2);
            padding-inline-start: calc((var(--container-wide) - var(--container-middle)) / 2);
  }
  .c-footer-recruit__heading {
    --heading-main-font-size: 10rem;
    grid-column: 1;
    grid-row: 1/span 2;
  }
  .c-footer-recruit__sub-heading {
    grid-column: 3;
    grid-row: 1;
    align-self: end;
    font-size: 2.4rem;
    line-height: 2;
    text-align: center;
  }
  .c-footer-recruit__button {
    grid-column: 3;
    grid-row: 2;
    align-self: start;
  }
  .c-footer-recruit__thumbnail {
    grid-column: 5;
    grid-row: 1/span 2;
  }
}
/* --- contact --- */
.c-footer-contact__container {
  max-width: var(--container-narrow);
  margin-inline: auto;
  padding-inline: var(--global-gutter);
  border: 1px solid var(--color-theme);
  border-radius: 5rem;
  text-align: center;
}
.c-footer-contact__heading {
  font-weight: 600;
  line-height: 1;
  color: var(--color-theme-light);
}
.c-footer-contact__text {
  font-weight: 500;
}
.c-footer-contact__button {
  margin-inline: auto;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-footer__contact {
    -webkit-margin-before: 4.5rem;
            margin-block-start: 4.5rem;
    padding-inline: calc(var(--global-gutter) * 2);
  }
  .c-footer-contact__container {
    -webkit-padding-before: 4.5rem;
            padding-block-start: 4.5rem;
    -webkit-padding-after: 3.5rem;
            padding-block-end: 3.5rem;
  }
  .c-footer-contact__heading {
    font-size: 2.2rem;
  }
  .c-footer-contact__contents {
    -webkit-margin-before: 2.5rem;
            margin-block-start: 2.5rem;
  }
  .c-footer-contact__text {
    font-size: 1.4rem;
    line-height: 1.9285714286;
  }
  .c-footer-contact__button {
    -webkit-margin-before: 2.5rem;
            margin-block-start: 2.5rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-footer__contact {
    -webkit-margin-before: 14.5rem;
            margin-block-start: 14.5rem;
  }
  .c-footer-contact__container {
    -webkit-padding-before: 5rem;
            padding-block-start: 5rem;
    -webkit-padding-after: 3.5rem;
            padding-block-end: 3.5rem;
  }
  .c-footer-contact__heading {
    font-size: 3rem;
  }
  .c-footer-contact__contents {
    -webkit-margin-before: 3.4rem;
            margin-block-start: 3.4rem;
  }
  .c-footer-contact__text {
    font-size: 1.6rem;
    line-height: 1.375;
  }
  .c-footer-contact__button {
    -webkit-margin-before: 3.4rem;
            margin-block-start: 3.4rem;
  }
}
/* --- menu --- */
.l-footer__menu {
  background-color: var(--color-theme);
  color: var(--color-white);
}

.c-footer__logo-shell {
  display: grid;
  grid-template-columns: 100%;
  place-items: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.c-footer__logo {
  margin-inline: auto;
}
.c-footer__copyright {
  color: var(--color-white);
  text-align: center;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-footer__menu {
    -webkit-margin-before: 5rem;
            margin-block-start: 5rem;
    -webkit-padding-before: 3rem;
            padding-block-start: 3rem;
    -webkit-padding-after: 1.5rem;
            padding-block-end: 1.5rem;
    padding-inline: 3.5rem;
  }
  .c-footer__logo {
    width: 6.4rem;
  }
  .c-footer__logo-title {
    font-size: 1.2rem;
    line-height: 1.4166666667;
  }
  .c-footer__menu-container {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
  .c-footer__copyright {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    font-size: 1.2rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-footer__menu {
    -webkit-margin-before: 9.5rem;
            margin-block-start: 9.5rem;
    -webkit-padding-before: 4.5rem;
            padding-block-start: 4.5rem;
    -webkit-padding-after: 2rem;
            padding-block-end: 2rem;
  }
  .c-footer__logo {
    width: 9.8rem;
  }
  .c-footer__logo-title {
    font-size: 1.8rem;
    line-height: 1.4444444444;
  }
  .c-footer__menu-container {
    -webkit-margin-before: 7rem;
            margin-block-start: 7rem;
  }
  .c-footer__copyright {
    -webkit-margin-before: 3.5rem;
            margin-block-start: 3.5rem;
    font-size: 1.4rem;
  }
}
/**
 * common
 */
/* --- facilities --- */
.c-global-facilities__container[data-type=global] {
  -webkit-padding-after: var(--global-facilities-spacer, var(--global-facilities-spacer-default));
          padding-block-end: var(--global-facilities-spacer, var(--global-facilities-spacer-default));
  background-image: linear-gradient(to bottom, transparent 0%, transparent var(--facilities-background-border), var(--color-background-default) var(--facilities-background-border), var(--color-background-default) 100%);
}
.c-global-facilities__shell {
  max-width: var(--container-middle);
  margin-inline: auto;
}
.c-global-facilities__thumbnail {
  overflow: hidden;
}
.c-global-facilities__description-title {
  font-weight: 500;
}
.c-global-facilities__description-details {
  display: grid;
  grid-template-columns: auto 1fr;
  pointer-events: none;
}
.c-global-facilities__description-details dt {
  color: var(--color-theme-light);
  font-weight: 700;
}
.c-global-facilities__list-button {
  margin-inline: auto;
}

/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-global-facilities + .l-footer__support {
    -webkit-margin-before: 6rem;
            margin-block-start: 6rem;
  }
  .c-global-facilities__container[data-type=global] {
    --global-facilities-spacer-default: 4rem;
    --facilities-background-border: 3rem;
    padding-inline: calc(var(--global-gutter) * 2);
  }
  .c-global-facilities__heading {
    -webkit-margin-after: 2rem;
            margin-block-end: 2rem;
  }
  .c-global-facilities__thumbnail {
    border-radius: 6rem;
  }
  .c-global-facilities__description {
    -webkit-margin-before: 1.5rem;
            margin-block-start: 1.5rem;
  }
  .c-global-facilities__description-title {
    font-size: 1.8rem;
    line-height: 1.2777777778;
    text-align: center;
  }
  .c-global-facilities__description-details {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    -moz-column-gap: 2rem;
         column-gap: 2rem;
    row-gap: 1.5rem;
  }
  .c-global-facilities__description-details dt {
    padding-block: 0.25em;
    font-size: 1.6rem;
  }
  .c-global-facilities__description-details dd {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .c-global-facilities__detail-button {
    -webkit-margin-before: 3rem;
            margin-block-start: 3rem;
    margin-inline: auto;
  }
  .c-global-facilities__list-button {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-global-facilities + .l-footer__support {
    -webkit-margin-before: 15rem;
            margin-block-start: 15rem;
  }
  .c-global-facilities__container[data-type=global] {
    --global-facilities-spacer-default: 5rem;
    --facilities-background-border: 5rem;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__body {
    grid-template-columns: 61.4rem 1fr;
    -moz-column-gap: 9rem;
         column-gap: 9rem;
    row-gap: 4rem;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__thumbnail {
    grid-row: 1/span 3;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__heading {
    grid-row: 1;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__description {
    grid-row: 2;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__description-title {
    font-size: 2.2rem;
  }
  .c-global-facilities__container[data-type=global] .c-global-facilities__detail-button {
    grid-row: 3;
  }
  .c-global-facilities__body {
    display: grid;
  }
  .c-global-facilities__thumbnail {
    grid-column: 1;
    border-radius: 9rem;
    align-self: start;
  }
  .c-global-facilities__heading {
    grid-column: 2;
  }
  .c-global-facilities__description {
    grid-column: 2;
  }
  .c-global-facilities__description-details {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
    -moz-column-gap: 4rem;
         column-gap: 4rem;
    row-gap: 2rem;
  }
  .c-global-facilities__description-details dt {
    padding-block: 0.25em;
    font-size: 1.9rem;
  }
  .c-global-facilities__description-details dd {
    font-size: 1.8rem;
    line-height: 1.5555555556;
  }
  .c-global-facilities__detail-button {
    grid-column: 2;
  }
  .c-global-facilities__list-button {
    -webkit-margin-before: 4rem;
            margin-block-start: 4rem;
  }
}
@-webkit-keyframes moving-arrow {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-0.5rem);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes moving-arrow {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-0.5rem);
  }
  100% {
    transform: translateX(0);
  }
}
@-webkit-keyframes scrollbar-icon-move {
  0% {
    bottom: 100%;
  }
  100% {
    bottom: 0px;
  }
}
@keyframes scrollbar-icon-move {
  0% {
    bottom: 100%;
  }
  100% {
    bottom: 0px;
  }
}
@-webkit-keyframes scrollbar-icon-hide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
@keyframes scrollbar-icon-hide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
/*# sourceMappingURL=global.css.map */