@charset "UTF-8";
/*====================================================================================
START TABLE OF CONTENT

1. START COMMON BASE.
2. START COMMON CONTAINER.
3. START COMMON HEADER.
4. START COMMON FOOTER.
5. START COMMON LINK.
6. START COMMON EFFECT.
7. START COMMON LIST, ITEM.
8. START COMMON KEYFRAMES.
9. START COMMON ARROW, ICON, TAG.
10. START COMMON HEADING, TITLE.
11. START COMMON TEXT.
12. START COMMON BUTTON.
13. START COMMON BACK TO TOP.
14. START COMMON LOGO.
15. START COMMON LAYOUT.
16. START COMMON SIDEBAR.
17. START COMMON CALENDAR.
18. START COMMON SECTION.
19. START COMMON CHECK PAGE.
20. START COMMON FORM.

/*====================================================================================
1. START COMMON BASE.
====================================================================================*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap");
/*---------- Start Root ----------*/
:root {
  /* Start shade system */
  --color-neutral-1000: #000000;
  --color-neutral-950: #404040;
  --color-neutral-900: #4d4d4f;
  --color-neutral-800: #62605f;
  --color-neutral-700: #8a8a8a;
  --color-neutral-600: #878787;
  --color-neutral-500: #aaaaaa;
  --color-neutral-475: #b8b8b8;
  --color-neutral-450: #c5c5c5;
  --color-neutral-400: #767676;
  --color-neutral-350: #d8d8d8;
  --color-neutral-340: #dbdbdb;
  --color-neutral-330: #d9d9d9;
  --color-neutral-325: #dddddd;
  --color-neutral-310: #e5e5e5;
  --color-neutral-308: #e8e8e8;
  --color-neutral-305: #e6e6e6;
  --color-neutral-300: #eeeeee;
  --color-neutral-200: #f7f6f5;
  --color-neutral-150: #f9f9f9;
  --color-neutral-100: #ffffff;
  --color-blue-700: #454e83;
  --color-blue-500: #5c75b3;
  --color-blue-300: #59c6f8;
  --color-purple-300: #d1cbd4;
  --color-yellow-500: #ffbc1c;
  --color-yellow-300: #f8e7a0;
  --color-brown-700: #3b3116;
  --color-brown-500: #69483d;
  --color-green-600: #507a59;
  --color-green-500: #43a037;
  --color-green-400: #8c9b8a;
  --color-green-250: #d0dece;
  --color-green-300: #cfd6b5;
  --color-red-900: #8f0000;
  --color-red-800: #ff0000;
  --color-red-700: #c75c5c;
  --color-red-600: #d03333;
  --color-red-500: #de8282;
  --color-red-400: #ff6d6d;
  --color-red-300: #eed9d9;
  --color-red-250: #f7ba9e;
  --color-pink-300: #fbbec7;
  --color-pink-250: #ebd2e5;
  --color-beige-300: #e9d8b9;
  --font-jost: "Jost", serif;
  --font-noto-sans-jp: "Noto Sans JP", sans-serif;
  --font-hiragino-jp: "Hiragino UD Sans F W3 JIS2004", sans-serif;
  /* Start color */
  --theme-color-primary: var(--color-neutral-1000);
  --theme-color-secondary: var(--color-neutral-100);
  --theme-color-tertiary: var(--color-neutral-900);
  --theme-color-quaternary: var(--color-green-600);
  --theme-color-quinary: var(--color-brown-500);
  --theme-color-senary: var(--color-blue-700);
  --theme-color-septenary: var(--color-neutral-200);
  --theme-color-octonary: var(--color-green-500);
  --theme-color-nonary: var(--color-neutral-300);
  --theme-color-denary: var(--color-neutral-150);
  --theme-color-undenary: var(--color-neutral-305);
  --theme-color-dodenary: var(--color-red-600);
  --theme-color-tridenary: var(--color-neutral-800);
  --theme-color-quattuordenary: var(--color-neutral-950);
  --theme-color-quindenary: var(--color-red-800);
  /* Start border */
  --theme-border-primary: var(--color-neutral-300);
  --theme-border-secondary: var(--color-neutral-700);
  --theme-border-tertiary: var(--color-neutral-340);
  --theme-border-quaternary: var(--color-neutral-310);
  --theme-border-quinary: var(--color-neutral-600);
  --theme-border-senary: var(--color-neutral-450);
  --theme-border-septenary: var(--color-neutral-475);
  --theme-border-octonary: var(--color-neutral-1000);
  --theme-border-nonary: var(--color-neutral-340);
  --theme-border-denary: var(--color-neutral-308);
  /* Start font */
  --theme-font-en-primary: var(--font-jost);
  --theme-font-jp-primary: var(--font-hiragino-jp);
  --theme-font-jp-secondary: var(--font-noto-sans-jp);
}

@media only screen and (max-width: 767px) {
  :root {
    /* Start spacing */
    --spacing-sp70-pc140: 7rem;
    --spacing-sp50-pc100: 5rem;
    --spacing-sp45-pc90: 4.5rem;
    --spacing-sp40-pc80: 4rem;
    --spacing-sp35-pc70: 3.5rem;
    --spacing-sp35-pc60: 3.5rem;
    --spacing-sp30-pc60: 3rem;
    --spacing-sp00-pc60: 0;
    --spacing-sp30-pc55: 3rem;
    --spacing-sp30-pc50: 3rem;
    --spacing-sp25-pc50: 2.5rem;
    --spacing-sp20-pc45: 2rem;
    --spacing-sp30-pc40: 3rem;
    --spacing-sp25-pc40: 2.5rem;
    --spacing-sp20-pc40: 2rem;
    --spacing-sp25-pc35: 2.5rem;
    --spacing-sp20-pc35: 2rem;
    --spacing-sp20-pc30: 2rem;
    --spacing-sp15-pc30: 1.5rem;
    --spacing-sp10-pc30: 1rem;
    --spacing-sp20-pc25: 2rem;
    --spacing-sp15-pc25: 1.5rem;
    --spacing-sp15-pc20: 1.5rem;
    --spacing-sp10-pc20: 1rem;
    --spacing-sp10-pc15: 1rem;
    /* Start position */
    --position-sp-left-pc-center: left;
    --position-sp-right-pc-center: right;
    --position-sp-center-pc-left: center;
    --position-sp-center-pc-right: center;
  }
}
@media only screen and (min-width: 768px) {
  :root {
    /* Start spacing */
    --spacing-sp70-pc140: 14rem;
    --spacing-sp50-pc100: 10rem;
    --spacing-sp45-pc90: 9rem;
    --spacing-sp40-pc80: 8rem;
    --spacing-sp35-pc70: 7rem;
    --spacing-sp35-pc60: 6rem;
    --spacing-sp30-pc60: 6rem;
    --spacing-sp00-pc60: 6rem;
    --spacing-sp30-pc55: 5.5rem;
    --spacing-sp30-pc50: 5rem;
    --spacing-sp25-pc50: 5rem;
    --spacing-sp20-pc45: 4.5rem;
    --spacing-sp30-pc40: 4rem;
    --spacing-sp25-pc40: 4rem;
    --spacing-sp20-pc40: 4rem;
    --spacing-sp25-pc35: 3.5rem;
    --spacing-sp20-pc35: 3.5rem;
    --spacing-sp20-pc30: 3rem;
    --spacing-sp15-pc30: 3rem;
    --spacing-sp10-pc30: 3rem;
    --spacing-sp20-pc25: 2.5rem;
    --spacing-sp15-pc25: 2.5rem;
    --spacing-sp15-pc20: 2rem;
    --spacing-sp10-pc20: 2rem;
    --spacing-sp10-pc15: 1.5rem;
    /* Start position */
    --position-sp-left-pc-center: center;
    --position-sp-right-pc-center: center;
    --position-sp-center-pc-left: left;
    --position-sp-center-pc-right: right;
  }
}
html,
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  font-size: 62.5%;
  overflow-y: auto;
  line-height: normal;
}

body {
  font-weight: 400;
  letter-spacing: 0.02em;
  font-family: var(--theme-font-jp-primary);
  color: var(--theme-color-primary);
  background-color: var(--theme-color-septenary);
  text-size-adjust: 100%;
}
body.is-open, body.lb-disable-scrolling {
  position: fixed;
  width: 100%;
}

@media only screen and (max-width: 767px) {
  body {
    font-size: 1.4rem;
    line-height: 1.7;
  }
}
@media only screen and (min-width: 768px) {
  body {
    font-size: 1.6rem;
    line-height: 1.88;
  }
}
.l-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 32rem;
  overflow: hidden;
}

@media only screen and (min-width: 768px) {
  .l-wrapper {
    padding-left: 25rem;
  }
}
@media only screen and (max-width: 767px) {
  .l-main {
    margin-top: 7rem;
  }
}
@media only screen and (min-width: 768px) {
  .l-main {
    margin-top: 6.5rem;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  body {
    min-width: 119.9rem;
  }
  body .l-header {
    width: 119.9rem;
  }
  body .l-wrapper {
    max-width: 119.9rem;
  }
}
/*---------- START SETUP BASE ----------*/
h1,
h2 {
  line-height: 1.5;
}

h3,
h4,
h5,
h6 {
  line-height: 1.6;
}

a {
  color: currentColor;
  text-decoration: underline;
  background-color: transparent;
  transition: color 0.3s ease, text-decoration 0.3s ease;
}
a:hover {
  text-decoration: none;
}

img {
  border-style: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

button {
  font-family: var(--theme-font-jp-primary);
}

input[type=submit], input[type=button] {
  font-family: var(--theme-font-jp-primary);
}

picture {
  display: block;
  line-height: 1;
}

figure {
  margin: 0;
  padding: 0;
}

/*====================================================================================
2. START COMMON CONTAINER.
====================================================================================*/
.l-container,
.l-container-fluid,
.l-container-xxl,
.l-container-xl,
.l-container-lg,
.l-container-md,
.l-container-sm {
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin-left: auto;
  margin-right: auto;
}

.l-container {
  max-width: 113rem;
}

/*====================================================================================
3. START COMMON HEADER.
====================================================================================*/
/*---------- START PROJECT MENU MOBILE ----------*/
@media only screen and (max-width: 767px) {
  .p-menu-mobile__list {
    display: flex;
    justify-content: flex-end;
  }
  .p-menu-mobile__list li {
    margin-left: 1rem;
  }
}
/*---------- START PROJECT NAV ----------*/
@media only screen and (min-width: 768px) {
  .p-nav__list {
    display: flex;
    justify-content: flex-end;
  }
  .p-nav__item {
    position: relative;
    height: 6.5rem;
  }
  .p-nav__item::before, .p-nav__item::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .p-nav__item::before {
    z-index: 2;
    opacity: 1;
    background-color: var(--theme-color-secondary);
    transition: opacity 0.3s ease;
  }
  .p-nav__item::after {
    z-index: 1;
    opacity: 0.2;
  }
  .p-nav__item:hover::before {
    opacity: 0;
  }
  .p-nav__item.is-active {
    color: var(--theme-color-secondary);
  }
  .p-nav__item.is-active::before {
    opacity: 0;
  }
  .p-nav__item.is-active::after {
    opacity: 1;
  }
  .p-nav__link {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 1rem 3rem;
    font-size: 1.6rem;
    line-height: 1.7;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.3s ease;
  }
}
/*---------- START LAYOUT HEADER ----------*/
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background-color: var(--theme-color-secondary);
}

@media only screen and (max-width: 767px) {
  .l-header {
    z-index: 1000;
    padding: 1rem 0;
    box-shadow: 0.1rem 0.4rem 1rem -0.4rem rgba(0, 0, 0, 0.03);
  }
}
@media only screen and (min-width: 768px) {
  .l-header {
    z-index: 998;
    padding-left: 25rem;
  }
}
/*====================================================================================
4. START COMMON FOOTER.
====================================================================================*/
/*---------- START COMPONENT ITEM SOCIAL ----------*/
.c-item-social__link {
  display: inline-block;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.c-item-social__link:hover {
  transform: translateY(-0.3rem);
}

/*---------- START PROJECT LIST ITEM SOCIAL ----------*/
.p-list-item-social {
  display: flex;
  margin: 0 -0.7rem;
}
.p-list-item-social .c-item-social {
  margin: 0 0.7rem;
}

/*---------- START PROJECT NAV FOOTER ----------*/
.p-nav-footer__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.p-nav-footer__link {
  font-weight: 700;
  text-decoration: none;
}

@media only screen and (max-width: 575px) {
  .p-nav-footer__list {
    margin: -0.5rem -1.2rem;
  }
  .p-nav-footer__item {
    margin: 0.5rem 1.2rem;
  }
}
@media only screen and (min-width: 576px) and (max-width: 767px) {
  .p-nav-footer__list {
    margin: -0.5rem -1.5rem;
  }
  .p-nav-footer__item {
    margin: 0.5rem 1.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-nav-footer__link {
    font-size: 1.4rem;
  }
}
@media only screen and (min-width: 768px) {
  .p-nav-footer__list {
    margin: -0.5rem -2.4rem;
  }
  .p-nav-footer__item {
    margin: 0.5rem 2.4rem;
  }
  .p-nav-footer__link {
    font-size: 1.6rem;
  }
  .p-nav-footer__link:hover {
    text-decoration: underline;
  }
}
/*---------- START LAYOUT FOOTER ----------*/
.l-footer {
  color: var(--theme-color-secondary);
}
.l-footer::before, .l-footer::after {
  top: 0;
  bottom: auto;
}

.l-footer__outer {
  display: flex;
  justify-content: center;
}

.l-footer__row {
  position: relative;
}
.l-footer__row::before {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.3);
}

.l-footer__left .p-list-item-social {
  margin-top: 2rem;
}

.l-footer__text {
  margin-top: 1rem;
}
.l-footer__text:first-child {
  margin-top: 0;
}

.l-footer__copy {
  margin-top: 1.5rem;
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .l-footer {
    padding: 5rem 0 2rem 0;
  }
  .l-footer__row {
    margin-bottom: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .l-footer__left {
    margin-bottom: 2.5rem;
    text-align: center;
  }
  .l-footer .p-list-item-social {
    justify-content: center;
  }
  .l-footer__text {
    text-align: center;
  }
}
@media only screen and (min-width: 768px) {
  .l-footer {
    padding: 9.5rem 0 4rem 0;
  }
  .l-footer__row {
    display: flex;
    margin-bottom: 3rem;
    padding-bottom: 3rem;
  }
  .l-footer__left {
    width: 22.5rem;
  }
  .l-footer__right {
    flex: 1;
  }
}
/*====================================================================================
5. START COMMON LINK.
====================================================================================*/
@media only screen and (min-width: 768px) {
  a[href^="tel:"] {
    cursor: pointer;
    pointer-events: none;
  }
}
/*---------- START LINK SHOW ----------*/
.u-line-show {
  display: inline;
  text-decoration: none;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 0.1rem;
  background-image: linear-gradient(currentColor, currentColor);
}

/*---------- START LINK SHOW HOVER ----------*/
@media only screen and (min-width: 768px) {
  a.u-line-show:hover {
    background-position: 100% 100%;
    background-size: 0% 0.1rem;
  }
}
/*---------- START COMPONENT LINK ARROW ----------*/
.c-link-arrow {
  position: relative;
  display: inline-block;
  font-weight: 500;
  text-decoration: none;
}
.c-link-arrow::before {
  position: absolute;
  content: "";
  width: 0.6rem;
  height: 1.1rem;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

@media only screen and (max-width: 767px) {
  .c-link-arrow {
    font-size: 1.4rem;
  }
  .c-link-arrow::before {
    top: 0.65rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-arrow {
    font-size: 1.6rem;
  }
  .c-link-arrow::before {
    top: 1rem;
  }
  .c-link-arrow:hover {
    text-decoration: underline;
  }
}
/*---------- START COMPONENT LINK ARROW LEFT ----------*/
.c-link-arrow--left::before {
  left: 0;
}

@media only screen and (max-width: 767px) {
  .c-link-arrow--left {
    padding-left: 1.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-arrow--left {
    padding-left: 1.8rem;
  }
}
/*---------- START COMPONENT LINK ARROW RIGHT ----------*/
.c-link-arrow--right::before {
  right: 0;
}

@media only screen and (max-width: 767px) {
  .c-link-arrow--right {
    padding-right: 1.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-arrow--right {
    padding-right: 1.8rem;
  }
}
/*---------- START COMPONENT LINK ARROW BLACK ----------*/
.c-link-arrow--black {
  color: var(--theme-color-primary);
}
.c-link-arrow--black::before {
  background-image: url("./../common_img/arrow-right-black.webp");
}

/*---------- START COMPONENT LINK ARROW WHITE ----------*/
.c-link-arrow--white {
  color: var(--theme-color-secondary);
}
.c-link-arrow--white::before {
  background-image: url("./../common_img/arrow-right-white.webp");
}

/*---------- START COMPONENT LINK CONTAINER REVERSE ----------*/
.c-link-container--reverse .c-link-arrow::before {
  transform: scaleX(-1);
}

/*---------- START COMPONENT LINK DASHED ----------*/
.c-link-dashed {
  position: relative;
  display: inline-block;
  padding-left: 1rem;
  font-weight: 400;
  text-decoration: none;
}
.c-link-dashed::before {
  position: absolute;
  content: "";
  left: 0;
  width: 0.4rem;
  height: 1px;
  background-color: currentColor;
}

@media only screen and (max-width: 767px) {
  .c-link-dashed {
    font-size: 1.4rem;
  }
  .c-link-dashed::before {
    top: 1.1rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-dashed {
    font-size: 1.6rem;
  }
  .c-link-dashed::before {
    top: 1.5rem;
  }
  .c-link-dashed:hover {
    text-decoration: underline;
  }
}
/*---------- START COMPONENT LINK DASHED LEFT ----------*/
.c-link-dashed--left::before {
  left: 0;
}

@media only screen and (max-width: 767px) {
  .c-link-dashed--left {
    padding-left: 1.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-dashed--left {
    padding-left: 1.8rem;
  }
}
/*---------- START COMPONENT LINK DASHED RIGHT ----------*/
.c-link-dashed--right::before {
  right: 0;
}

@media only screen and (max-width: 767px) {
  .c-link-dashed--right {
    padding-right: 1.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-link-dashed--right {
    padding-right: 1.8rem;
  }
}
/*---------- START COMPONENT LINK DASHED WHITE ----------*/
.c-link-dashed--white {
  color: var(--theme-color-secondary);
}

/*====================================================================================
6. START COMMON EFFECT.
====================================================================================*/
/*---------- START COMPONENT EFFECT ZOOM ----------*/
.c-e-zoom {
  display: inline-block;
}

@media only screen and (min-width: 768px) {
  .c-e-zoom {
    transition: transform 0.3s ease;
  }
  .c-e-zoom:hover {
    transform: scale(1.025);
  }
}
/*---------- START COMPONENT EFFECT OPACITY IMAGES ----------*/
@media only screen and (min-width: 768px) {
  .c-e-opacity-img:hover img {
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
}
/*====================================================================================
7. START COMMON LIST, ITEM.
====================================================================================*/
/*---------- START COMPONENT ITEM BASE ----------*/
.c-item-base {
  position: relative;
}
.c-item-base::before {
  position: absolute;
  top: 0;
  left: 0;
}

/*---------- START COMPONENT ITEM DOT ----------*/
.c-item-dot {
  padding-left: 1em;
}
.c-item-dot::before {
  content: "・";
}

/*---------- START COMPONENT ITEM CIRCLE ----------*/
.c-item-circle {
  padding-left: 1.1em;
}
.c-item-circle::before {
  content: "●";
}

/*---------- START COMPONENT ITEM STAR ----------*/
.c-item-star {
  padding-left: 1.1em;
}
.c-item-star::before {
  content: "※";
}

/*---------- START COMPONENT ITEM MAIN ----------*/
.c-item-main__row {
  display: flex;
}

.c-item-main__left {
  flex: 0 0 auto;
}

.c-item-main__right {
  flex: 1;
  padding-left: 0.2rem;
}

/*---------- START COMPONENT LIST INDENT ----------*/
.c-list-indent > li {
  padding-left: 1em;
  text-indent: -1em;
}

/*---------- START COMPONENT LIST BASE ----------*/
.c-list-base > li {
  position: relative;
}
.c-list-base > li::before {
  position: absolute;
  top: 0;
  left: 0;
}

/*---------- START COMPONENT LIST DOT ----------*/
.c-list-dot > li {
  padding-left: 1em;
}
.c-list-dot > li::before {
  content: "・";
}

/*---------- START COMPONENT LIST CIRCLE ----------*/
.c-list-circle > li {
  padding-left: 1.3em;
}
.c-list-circle > li::before {
  content: "●";
  transform: scale(0.8);
}

/*---------- START COMPONENT LIST STAR ----------*/
.c-list-star > li {
  padding-left: 1.3em;
}
.c-list-star > li::before {
  content: "※";
}

/*====================================================================================
8. START COMMON KEYFRAMES.
====================================================================================*/
/*---------- START FADE IN ----------*/
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*====================================================================================
9. START COMMON ARROW, ICON, TAG.
====================================================================================*/
/*---------- START COMPONENT ICON ZOOM ----------*/
.c-icon-zoom {
  position: relative;
  display: block;
  overflow: hidden;
}
.c-icon-zoom::before, .c-icon-zoom::after {
  position: absolute;
  display: inline-block;
  content: "";
}
.c-icon-zoom:before {
  z-index: 4;
  right: 1.9rem;
  bottom: 1.9rem;
  width: 1.8rem;
  height: 1.8rem;
  background-image: url("../common_img/icon-loupe-white.webp");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% auto;
}
.c-icon-zoom::after {
  z-index: 3;
  right: 1rem;
  bottom: 1rem;
  width: 3.6rem;
  height: 3.6rem;
  border-width: 1px;
  border-style: solid;
  transition: background-color 0.3s ease;
  box-shadow: 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2);
}

@media only screen and (min-width: 768px) {
  .c-icon-zoom img {
    transition: transform 0.3s ease;
  }
  .c-icon-zoom:hover img {
    transform: scale(1.03);
  }
  .c-icon-zoom:hover::after {
    background-color: var(--theme-color-secondary);
  }
}
/*---------- START COMPONENT ARROW, ICON ----------*/
.c-arrow,
.c-icon {
  position: absolute;
  display: inline-block;
}

.c-arrow::before,
.c-icon::before {
  position: absolute;
  content: "";
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 0.2s ease;
}

@media only screen and (min-width: 768px) {
  .c-arrow::after,
  .c-icon::after {
    position: absolute;
    content: "";
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    transition: opacity 0.2s ease;
  }
}
/*---------- START COMPONENT ARROW ----------*/
.c-arrow.c-arrow--left, .c-arrow.c-arrow--right {
  width: 0.6rem;
  height: 1.1rem;
}
.c-arrow.c-arrow--down {
  width: 1.1rem;
  height: 0.6rem;
}

/*---------- START COMPONENT ARROW WHITE TO BLACK ----------*/
.c-arrow--white-to-black.c-arrow--left::before {
  background-image: url("./../common_img/arrow-left-white.webp");
}
.c-arrow--white-to-black.c-arrow--right::before {
  background-image: url("./../common_img/arrow-right-white.webp");
}
.c-arrow--white-to-black.c-arrow--down::before {
  background-image: url("./../common_img/arrow-down-white.webp");
}

@media only screen and (min-width: 768px) {
  .c-arrow--white-to-black.c-arrow--left::after {
    background-image: url("./../common_img/arrow-left-black.webp");
  }
  .c-arrow--white-to-black.c-arrow--right::after {
    background-image: url("./../common_img/arrow-right-black.webp");
  }
  .c-arrow--white-to-black.c-arrow--down::after {
    background-image: url("./../common_img/arrow-down-black.webp");
  }
}
/*---------- START COMPONENT ARROW BLACK TO WHITE ----------*/
.c-arrow--black-to-white.c-arrow--left::before {
  background-image: url("./../common_img/arrow-left-black.webp");
}
.c-arrow--black-to-white.c-arrow--right::before {
  background-image: url("./../common_img/arrow-right-black.webp");
}

@media only screen and (min-width: 768px) {
  .c-arrow--black-to-white.c-arrow--left::after {
    background-image: url("./../common_img/arrow-left-white.webp");
  }
  .c-arrow--black-to-white.c-arrow--right::after {
    background-image: url("./../common_img/arrow-right-white.webp");
  }
}
/*---------- START COMPONENT ICON ----------*/
.c-icon.c-icon--pdf::before, .c-icon.c-icon--pdf::after {
  background-image: url("./../common_img/icon-pdf.webp");
}
.c-icon.c-icon--pdf02::before, .c-icon.c-icon--pdf02::after {
  background-image: url("./../common_img/icon-pdf02.webp");
}
.c-icon.c-icon--word::before, .c-icon.c-icon--word::after {
  background-image: url("./../common_img/icon-word.webp");
}
.c-icon.c-icon--excel::before, .c-icon.c-icon--excel::after {
  background-image: url("./../common_img/icon-excel.webp");
}

/*---------- START COMPONENT ICON WHITE ----------*/
.c-icon--white::after {
  content: none;
}
.c-icon--white.c-icon--link::before {
  background-image: url("./../common_img/icon-link-white.webp");
}

/*---------- START COMPONENT ICON WHITE TO GRAY ----------*/
.c-icon--white-to-gray.c-icon--location::before,
.c-icon--white-to-green.c-icon--location::before,
.c-icon--white-to-brown.c-icon--location::before,
.c-icon--white-to-blue.c-icon--location::before {
  background-image: url("./../common_img/icon-location-white.webp");
}

@media only screen and (min-width: 768px) {
  .c-icon--white-to-gray.c-icon--location::after {
    background-image: url("./../common_img/icon-location-gray.webp");
  }
}
/*---------- START COMPONENT ICON WHITE TO GREEN ----------*/
@media only screen and (min-width: 768px) {
  .c-icon--white-to-green.c-icon--location::after {
    background-image: url("./../common_img/icon-location-green.webp");
  }
}
/*---------- START COMPONENT ICON WHITE TO BROWN ----------*/
@media only screen and (min-width: 768px) {
  .c-icon--white-to-brown.c-icon--location::after {
    background-image: url("./../common_img/icon-location-brown.webp");
  }
}
/*---------- START COMPONENT ICON WHITE TO BLUE ----------*/
@media only screen and (min-width: 768px) {
  .c-icon--white-to-blue.c-icon--location::after {
    background-image: url("./../common_img/icon-location-blue.webp");
  }
}
/*---------- START COMPONENT ICON WHITE TO BLACK ----------*/
.c-icon--white-to-black.c-icon--link::before {
  background-image: url("./../common_img/icon-link-white.webp");
}
.c-icon--white-to-black.c-icon--location::before {
  background-image: url("./../common_img/icon-location-white.webp");
}
.c-icon--white-to-black.c-icon--search::before {
  background-image: url("./../common_img/icon-search-white.webp");
}

@media only screen and (min-width: 768px) {
  .c-icon--white-to-black.c-icon--link::after {
    background-image: url("./../common_img/icon-link-black.webp");
  }
  .c-icon--white-to-black.c-icon--location::after {
    background-image: url("./../common_img/icon-location-black.webp");
  }
  .c-icon--white-to-black.c-icon--search::after {
    background-image: url("./../common_img/icon-search-black.webp");
  }
}
/*---------- START COMPONENT ICON LINK ----------*/
.c-icon--link {
  width: 1.1rem;
  height: 1.1rem;
}

/*---------- START COMPONENT ICON PDF ----------*/
.c-icon--pdf {
  width: 2.5rem;
  height: 3.3rem;
}

/*---------- START COMPONENT ICON PDF 02 ----------*/
.c-icon--pdf02 {
  width: 3.1rem;
  height: 3.9rem;
}

/*---------- START COMPONENT ICON WORD ----------*/
@media only screen and (max-width: 767px) {
  .c-icon--word {
    width: 3rem;
    height: 2.9rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-icon--word {
    width: 4rem;
    height: 3.9rem;
  }
}
/*---------- START COMPONENT ICON EXCEL ----------*/
@media only screen and (max-width: 767px) {
  .c-icon--excel {
    width: 3rem;
    height: 3rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-icon--excel {
    width: 3.9rem;
    height: 3.9rem;
  }
}
/*---------- START COMPONENT ICON LOCATION ----------*/
.c-icon--location {
  width: 1.5rem;
  height: 2.2rem;
}

/*---------- START COMPONENT ICON SEARCH ----------*/
.c-icon--search {
  width: 2.5rem;
  height: 2.5rem;
}

/*---------- START COMPONENT TAG ----------*/
.c-tag__wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.5rem;
  text-align: center;
}

.c-tag__text {
  line-height: 1;
  font-weight: 500;
  text-transform: uppercase;
}

@media only screen and (max-width: 767px) {
  .c-tag__wrap {
    min-width: 10rem;
  }
  .c-tag__text {
    font-size: 1.3rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-tag__wrap {
    min-width: 11rem;
  }
  .c-tag__text {
    font-size: 1.4rem;
  }
}
/*---------- START COMPONENT TAG RED ----------*/
.c-tag--red-ff6d6d .c-tag__wrap {
  background-color: var(--color-red-400);
}
.c-tag--red-ff6d6d .c-tag__text {
  color: var(--theme-color-secondary);
}

/*---------- START COMPONENT TAG RED ----------*/
.c-tag--red-c75c5c .c-tag__wrap {
  background-color: var(--color-red-700);
}
.c-tag--red-c75c5c .c-tag__text {
  color: var(--theme-color-secondary);
}

.c-tag--red-f7ba9e .c-tag__wrap {
  background-color: var(--color-red-250);
}
.c-tag--red-f7ba9e .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG PURPLE ----------*/
.c-tag--purple-d1cbd4 .c-tag__wrap {
  background-color: var(--color-purple-300);
}
.c-tag--purple-d1cbd4 .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG PINK ----------*/
.c-tag--pink-fbbec7 .c-tag__wrap {
  background-color: var(--color-pink-300);
}
.c-tag--pink-fbbec7 .c-tag__text {
  color: var(--theme-color-primary);
}

.c-tag--pink-ebd2e5 .c-tag__wrap {
  background-color: var(--color-pink-250);
}
.c-tag--pink-ebd2e5 .c-tag__text {
  color: var(--theme-color-secondary);
}

/*---------- START COMPONENT TAG BROWN ----------*/
.c-tag--brown-3b3116 .c-tag__wrap {
  background-color: var(--color-brown-700);
}
.c-tag--brown-3b3116 .c-tag__text {
  color: var(--theme-color-secondary);
}

/*---------- START COMPONENT TAG GRAY ----------*/
.c-tag--gray-767676 .c-tag__wrap {
  background-color: var(--color-neutral-400);
}
.c-tag--gray-767676 .c-tag__text {
  color: var(--theme-color-secondary);
}

/*---------- START COMPONENT TAG GREEN ----------*/
.c-tag--green-d0dece .c-tag__wrap {
  background-color: var(--color-green-250);
}
.c-tag--green-d0dece .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG GREEN 02 ----------*/
.c-tag--green-cfd6b5 .c-tag__wrap {
  background-color: var(--color-green-300);
}
.c-tag--green-cfd6b5 .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG BEIGE ----------*/
.c-tag--beige-e9d8b9 .c-tag__wrap {
  background-color: var(--color-beige-300);
}
.c-tag--beige-e9d8b9 .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG YELLOW ----------*/
.c-tag--yellow-ffbc1c .c-tag__wrap {
  background-color: var(--color-yellow-500);
}
.c-tag--yellow-ffbc1c .c-tag__text {
  color: var(--theme-color-secondary);
}

.c-tag--yellow-f8e7a0 .c-tag__wrap {
  background-color: var(--color-yellow-300);
}
.c-tag--yellow-f8e7a0 .c-tag__text {
  color: var(--theme-color-primary);
}

/*---------- START COMPONENT TAG WHITE ----------*/
.c-tag--white-ffffff .c-tag__wrap {
  background-color: var(--theme-color-secondary);
  border: 1px solid var(--theme-color-primary);
}
.c-tag--white-ffffff .c-tag__text {
  color: var(--theme-color-primary);
}

/*====================================================================================
10. START COMMON HEADING, TITLE.
====================================================================================*/
/*---------- START COMPONENT TITLE ----------*/
.c-title--center {
  text-align: center;
}

.c-title__text {
  display: block;
  font-weight: 500;
}

.c-title__text--jp,
.c-title__text__sub {
  color: var(--theme-color-primary);
  font-family: var(--theme-font-jp-primary);
}

.c-title__text--en {
  text-transform: uppercase;
  font-family: var(--theme-font-en-primary);
}

@media only screen and (max-width: 767px) {
  .c-title__text--sub {
    font-size: 1.7rem;
  }
  .c-title__text--jp {
    font-size: 2.3rem;
  }
  .c-title__text--en {
    margin-top: 0.5rem;
    font-size: 1.4rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-title__text--sub {
    font-size: 2.1rem;
  }
  .c-title__text--jp {
    font-size: 3rem;
  }
  .c-title__text--en {
    margin-top: 0.8rem;
    font-size: 1.6rem;
  }
}
/*---------- START COMPONENT TITLE MARGIN BOTTOM LOW ----------*/
.c-title--mb-low {
  margin-bottom: var(--spacing-sp20-pc35);
}

/*---------- START COMPONENT TITLE MARGIN BOTTOM HIGH ----------*/
.c-title--mb-high {
  margin-bottom: var(--spacing-sp25-pc40);
}

/*---------- START COMPONENT TITLE GRAY ----------*/
.c-title--gray .c-title__text--en {
  color: var(--theme-color-tertiary);
}

/*---------- START COMPONENT TITLE GREEN ----------*/
.c-title--green .c-title__text--en {
  color: var(--theme-color-octonary);
}

/*---------- START COMPONENT TITLE BROWN ----------*/
.c-title--brown .c-title__text--en {
  color: var(--theme-color-quinary);
}

/*---------- START COMPONENT TITLE BLUE ----------*/
.c-title--blue .c-title__text--en {
  color: var(--theme-color-senary);
}

/*====================================================================================
11. START COMMON TEXT.
====================================================================================*/
/*---------- START COMPONENT TEXT INDENT ----------*/
.c-text-indent {
  display: block;
  padding-left: 1em;
  text-indent: -1em;
}

/*---------- START COMPONENT TEXT UNDERLINE ----------*/
a.c-tdn {
  text-decoration: none;
}
a.c-tdn:hover {
  text-decoration: underline;
}

/*---------- START COMPONENT TEXT TELEPHONE ----------*/
.c-text-tel__num,
.c-text-fax__num {
  position: relative;
  display: inline-block;
  line-height: 1;
  font-family: var(--theme-font-en-primary);
  font-weight: 500;
  letter-spacing: 0.05em;
  text-decoration: none;
}

.c-text-tel__num::before,
.c-text-fax__num::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

/*====================================================================================
12. START COMMON BUTTON.
====================================================================================*/
/*---------- START COMPONENT HAMBURGER ----------*/
@media only screen and (max-width: 767px) {
  .c-hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    background-color: var(--theme-color-primary);
  }
  .c-hamburger__wrap {
    position: relative;
    width: 2.8rem;
    height: 2rem;
  }
  .c-hamburger__line {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 0.2rem;
    background-color: var(--theme-color-secondary);
    transition: all 0.3s ease-in-out;
  }
  .c-hamburger__line:nth-child(1), .c-hamburger__line:nth-child(3) {
    transform-origin: center;
  }
  .c-hamburger__line:nth-child(1) {
    top: 0;
  }
  .c-hamburger__line:nth-child(2) {
    top: 0.9rem;
  }
  .c-hamburger__line:nth-child(3) {
    top: 1.8rem;
  }
  .c-hamburger.is-active .c-hamburger__line:nth-child(1), .c-hamburger.is-active .c-hamburger__line:nth-child(3) {
    top: 0.9rem;
    width: 100%;
  }
  .c-hamburger.is-active .c-hamburger__line:nth-child(1) {
    transform: rotate(-225deg);
  }
  .c-hamburger.is-active .c-hamburger__line:nth-child(2) {
    opacity: 0;
  }
  .c-hamburger.is-active .c-hamburger__line:nth-child(3) {
    transform: rotate(225deg);
  }
}
/*---------- START COMPONENT BUTTON SIDEBAR ----------*/
.c-btn-sidebar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 6rem;
  padding: 1rem;
  border-radius: 1.2rem;
  text-decoration: none;
}

.c-btn-sidebar__text {
  color: var(--theme-color-secondary);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

/*---------- START COMPONENT BUTTON BASE ----------*/
.c-btn {
  position: relative;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0;
  user-select: none;
  vertical-align: middle;
  touch-action: manipulation;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
  transition: background-color 0.3s ease;
  overflow: hidden;
}

.c-btn__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.c-btn__bg::before {
  position: absolute;
  content: "";
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 1;
  transition: opacity 0.3s ease;
}

.c-btn__text {
  position: relative;
  z-index: 2;
  color: var(--theme-color-secondary);
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color 0.3s ease;
}

.c-btn .c-arrow,
.c-btn .c-icon {
  z-index: 2;
}
.c-btn.c-btn--location .c-icon {
  left: 3rem;
}

@media only screen and (max-width: 767px) {
  .c-btn {
    max-width: 28rem;
    min-height: 6rem;
    padding: 0.5rem 2.5rem 0.5rem 1rem;
    border-radius: 1.2rem;
  }
  .c-btn__text {
    font-size: 1.4rem;
  }
  .c-btn .c-arrow--left {
    left: 1rem;
  }
  .c-btn .c-arrow--right,
  .c-btn .c-arrow--down,
  .c-btn .c-icon--link {
    right: 1rem;
  }
  .c-btn.c-btn--pdf .c-icon {
    right: 2rem;
  }
  .c-btn.c-btn--search .c-icon {
    left: 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-btn {
    max-width: 35rem;
    min-height: 7rem;
    padding: 1rem 3.5rem 1rem 2rem;
    border-radius: 1.5rem;
  }
  .c-btn__bg::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.2;
  }
  .c-btn__text {
    font-size: 1.6rem;
  }
  .c-btn .c-arrow--left {
    left: 2rem;
  }
  .c-btn .c-arrow--right,
  .c-btn .c-arrow--down,
  .c-btn .c-icon--link {
    right: 2rem;
  }
  .c-btn.c-btn--pdf .c-icon {
    right: 3rem;
  }
  .c-btn.c-btn--location:hover {
    background-color: var(--theme-color-secondary);
  }
  .c-btn.c-btn--search .c-icon {
    left: 3rem;
  }
  .c-btn:hover .c-btn__bg::before,
  .c-btn:hover .c-arrow::before,
  .c-btn:hover .c-icon::before {
    opacity: 0;
  }
  .c-btn:hover .c-arrow::after,
  .c-btn:hover .c-icon::after {
    opacity: 1;
  }
}
/*---------- START COMPONENT BUTTON BLACK TO WHITE ----------*/
.c-btn--black-to-white {
  background-color: var(--theme-color-quattuordenary);
  border: 1px solid var(--theme-color-quattuordenary);
}

@media only screen and (min-width: 768px) {
  .c-btn--black-to-white:hover {
    background-color: var(--theme-color-secondary);
  }
  .c-btn--black-to-white:hover .c-btn__text {
    color: var(--theme-color-quattuordenary);
  }
}
/*---------- START COMPONENT BUTTON BLACK TO LIGHT ----------*/
.c-btn--black-to-light .c-btn__bg::before {
  background-color: var(--theme-color-primary);
}

@media only screen and (min-width: 768px) {
  .c-btn--black-to-light .c-btn__bg::after {
    background-color: var(--theme-color-primary);
  }
  .c-btn--black-to-light:hover .c-btn__text {
    color: var(--theme-color-primary);
  }
}
/*---------- START COMPONENT BUTTON GRAY TO WHITE ----------*/
.c-btn--gray-to-white {
  background-color: var(--theme-color-tertiary);
  border: 1px solid var(--theme-color-tertiary);
}

@media only screen and (min-width: 768px) {
  .c-btn--gray-to-white:hover {
    background-color: var(--theme-color-secondary);
  }
  .c-btn--gray-to-white:hover .c-btn__text {
    color: var(--theme-color-tertiary);
  }
}
/*---------- START COMPONENT BUTTON GRAY TO LIGHT ----------*/
.c-btn--gray-to-light .c-btn__bg::before {
  background-color: var(--theme-color-tertiary);
}

@media only screen and (min-width: 768px) {
  .c-btn--gray-to-light .c-btn__bg::after {
    background-color: var(--theme-color-tertiary);
  }
  .c-btn--gray-to-light:hover .c-btn__text {
    color: var(--theme-color-tertiary);
  }
}
/*---------- START COMPONENT BUTTON GREEN TO LIGHT ----------*/
.c-btn--green-to-light .c-btn__bg::before {
  background-color: var(--theme-color-quaternary);
}

@media only screen and (min-width: 768px) {
  .c-btn--green-to-light .c-btn__bg::after {
    background-color: var(--theme-color-quaternary);
  }
  .c-btn--green-to-light:hover .c-btn__text {
    color: var(--theme-color-primary);
  }
}
/*---------- START COMPONENT BUTTON FIT ----------*/
@media only screen and (min-width: 576px) {
  .c-btn--fit {
    width: auto;
    max-width: initial;
  }
}
@media only screen and (max-width: 767px) {
  .c-btn--fit {
    padding: 1rem 3.5rem 1rem 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-btn--fit {
    padding: 1rem 5rem 1rem 3rem;
  }
}
/*---------- START COMPONENT BUTTON MOBILE ----------*/
@media only screen and (max-width: 767px) {
  .c-btn-mobile {
    width: 5rem;
    height: 5rem;
    border-radius: 1rem;
    overflow: hidden;
  }
  .c-btn-mobile__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
  }
  .c-btn-mobile__link img {
    height: auto;
    width: 2.4rem;
  }
}
/*---------- START COMPONENT BUTTON MOBILE LOCATION ----------*/
@media only screen and (max-width: 767px) {
  .c-btn-mobile--location .c-btn-mobile__link img {
    width: 1.6rem;
  }
}
/*---------- START COMPONENT BUTTON CALENDAR ----------*/
.c-btn-calendar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  border: none;
}

.c-btn-calendar__arrow {
  position: relative;
  display: inline-block;
  width: 0.6rem;
  height: 1.1rem;
}
.c-btn-calendar__arrow::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

/*---------- START COMPONENT BUTTON CALENDAR VERSION ARROW ----------*/
.c-btn-calendar--ver-arrow {
  width: 3rem;
  height: 3rem;
}
.c-btn-calendar--ver-arrow .c-btn-calendar__text {
  display: none;
}

/*---------- START COMPONENT BUTTON CALENDAR VERSION FULL ----------*/
.c-btn-calendar--ver-full .c-btn-calendar__text {
  font-weight: 500;
}
.c-btn-calendar--ver-full.c-btn-calendar--prev .c-btn-calendar__arrow::before {
  background-image: url("../common_img/arrow-left-black.webp");
}
.c-btn-calendar--ver-full.c-btn-calendar--next .c-btn-calendar__arrow::before {
  background-image: url("../common_img/arrow-right-black.webp");
}

@media only screen and (max-width: 767px) {
  .c-btn-calendar--ver-full .c-btn-calendar__text {
    font-size: 1.6rem;
  }
  .c-btn-calendar--ver-full.c-btn-calendar--prev .c-btn-calendar__arrow {
    margin: 0.2rem 1rem 0 0;
  }
  .c-btn-calendar--ver-full.c-btn-calendar--next .c-btn-calendar__arrow {
    margin: 0.2rem 0 0 1rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-btn-calendar--ver-full .c-btn-calendar__text {
    font-size: 1.8rem;
  }
  .c-btn-calendar--ver-full.c-btn-calendar--prev .c-btn-calendar__arrow {
    margin: 0.2rem 1.5rem 0 0;
  }
  .c-btn-calendar--ver-full.c-btn-calendar--next .c-btn-calendar__arrow {
    margin: 0.2rem 0 0 1.5rem;
  }
  .c-btn-calendar--ver-full:hover .c-btn-calendar__text {
    text-decoration: underline;
  }
}
/*====================================================================================
13. START COMMON BACK TO TOP.
====================================================================================*/
.c-to-top {
  position: fixed;
  cursor: pointer;
  z-index: 200;
  right: 2rem;
  bottom: 2rem;
  width: 6.5rem;
  height: 6.5rem;
  transform: translateY(8.5rem);
  transition: all 0.5s ease;
}

.c-to-top__wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  border-radius: 1.5rem;
  background-color: var(--theme-color-primary);
  border: 1px solid var(--theme-color-primary);
  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
  transition: background-color 0.3s ease;
  overflow: hidden;
}
.c-to-top__wrap::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  width: 1.8rem;
  height: 1.1rem;
  margin-top: -0.7rem;
  margin-left: -0.9rem;
  background-image: url("./../common_img/arrow03-up-white.webp");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

.c-to-top.is-show {
  transform: translateY(0);
  transition: all linear 0.5s;
}

@media only screen and (max-width: 767px) {
  .c-to-top {
    right: 1rem;
    bottom: 1rem;
    width: 5.5rem;
    height: 5.5rem;
    transform: translateY(6.5rem);
  }
  .c-to-top__wrap {
    border-radius: 1rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-to-top:hover .c-to-top__wrap {
    background-color: var(--theme-color-secondary);
  }
  .c-to-top:hover .c-to-top__wrap::before {
    background-image: url("./../common_img/arrow03-up-black.webp");
  }
}
/*====================================================================================
14. START COMMON LOGO.
====================================================================================*/
/*---------- START COMPONENT LOGO ----------*/
.c-logo,
.c-logo__link {
  display: inline-block;
  text-decoration: none;
}

.c-logo img {
  width: auto;
}

.c-logo__key {
  line-height: 0;
}

/*---------- START COMPONENT HEADER ----------*/
.c-logo-header {
  position: fixed;
  z-index: 1001;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
}

@media only screen and (max-width: 767px) {
  .c-logo-header {
    width: calc(100vw - 20rem);
    height: 7rem;
    padding-left: 1.5rem;
  }
  .c-logo-header img {
    max-height: 6rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-logo-header {
    width: 25rem;
    justify-content: center;
    text-align: center;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .c-logo-header {
    height: 20rem;
  }
  .c-logo-header img {
    max-height: 14rem;
  }
}
@media only screen and (min-width: 1200px) {
  .c-logo-header {
    height: 26rem;
  }
}
/*====================================================================================
15. START COMMON LAYOUT.
====================================================================================*/
/*---------- START COMPONENT CLEARFIX ----------*/
.c-clearfix:after {
  display: block;
  content: " ";
  height: 0;
  clear: both;
  visibility: hidden;
}

/* Hide these rules from IE-mac \*/
* html .c-clearfix {
  height: 1%;
}

.c-clearfix {
  display: block;
}

/*====================================================================================
16. START COMMON SIDEBAR.
====================================================================================*/
/*---------- START PROJECT NAV MOBILE ----------*/
@media only screen and (max-width: 767px) {
  .p-nav-mobile {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .p-nav-mobile__item {
    margin-top: 1rem;
  }
  .p-nav-mobile__item:first-child {
    margin-top: 0;
  }
}
/*---------- START PROJECT CHILD SIDEBAR ----------*/
.p-child-sidebar__item {
  margin-top: 1.1rem;
}

@media only screen and (max-width: 767px) {
  .p-child-sidebar {
    padding: 0 0 0.5rem 1.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .p-child-sidebar {
    padding: 0 0 0.5rem 2rem;
  }
  .p-child-sidebar__link:hover {
    text-decoration: underline;
  }
}
/*---------- START PROJECT PARENT SIDEBAR ----------*/
.p-parent-sidebar__item {
  margin-top: 1.1rem;
}
.p-parent-sidebar__item:first-child {
  margin-top: 0;
}

.p-parent-sidebar .c-link-arrow {
  font-weight: 500;
}

@media only screen and (max-width: 767px) {
  .p-parent-sidebar {
    position: relative;
    z-index: 2;
  }
  .p-parent-sidebar__list {
    padding: 0 2rem 2rem 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .p-parent-sidebar {
    position: fixed;
    top: 0;
    left: 25rem;
    min-width: 30rem;
    height: 100vh;
    height: 100dvh;
    padding: 7% 5rem 5rem 5rem;
  }
}
/*---------- START PROJECT NAV SIDEBAR ----------*/
.p-nav-sidebar__item {
  border-top: 1px solid var(--theme-border-primary);
}

.p-nav-sidebar__item--dropdown .p-parent-sidebar {
  display: none;
}

.p-nav-sidebar__item:last-child {
  border-bottom: 1px solid var(--theme-border-primary);
}

.p-nav-sidebar__link {
  cursor: pointer;
  line-height: 1.5;
  text-decoration: none;
}

.p-nav-sidebar__text {
  font-weight: 500;
}

@media only screen and (max-width: 767px) {
  .p-nav-sidebar__link {
    position: relative;
    display: block;
    z-index: 3;
    padding: 1.5rem;
  }
  .p-nav-sidebar__link--dropdown {
    padding-right: 3rem;
  }
  .p-nav-sidebar__link--dropdown::before {
    position: absolute;
    content: "";
    top: 50%;
    right: 1.5rem;
    width: 1.1rem;
    height: 0.6rem;
    margin-top: -0.3rem;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  .p-nav-sidebar__item {
    position: relative;
  }
  .p-nav-sidebar__item--dropdown::before, .p-nav-sidebar__item--dropdown::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .p-nav-sidebar__item--dropdown::before {
    z-index: 2;
    opacity: 1;
    background-color: var(--theme-color-secondary);
  }
  .p-nav-sidebar__item--dropdown::after {
    z-index: 1;
    opacity: 0.2;
  }
  .p-nav-sidebar__item.is-active::before, .p-nav-sidebar__item.is-item::before {
    opacity: 0;
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__arrow, .p-nav-sidebar__item.is-item .p-nav-sidebar__arrow {
    background-color: var(--theme-color-secondary);
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link, .p-nav-sidebar__item.is-item .p-nav-sidebar__link {
    color: var(--theme-color-secondary);
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link--dropdown::before, .p-nav-sidebar__item.is-item .p-nav-sidebar__link--dropdown::before {
    background-image: url("./../common_img/arrow-down-white.webp");
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link--dropdown::before {
    transform: rotate(180deg);
  }
  .p-nav-sidebar--load .is-active .p-nav-sidebar__arrow::before {
    transform: rotate(0);
  }
}
@media only screen and (min-width: 768px) {
  .p-nav-sidebar__item--dropdown .p-nav-sidebar__text::before {
    position: absolute;
    content: "";
    top: 50%;
    right: 0;
    width: 0.6rem;
    height: 1.1rem;
    margin-top: -0.55rem;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  .p-nav-sidebar__item--dropdown.is-active .p-parent-sidebar {
    display: block;
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link, .p-nav-sidebar__item.is-item .p-nav-sidebar__link {
    color: var(--theme-color-secondary);
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link::before, .p-nav-sidebar__item.is-item .p-nav-sidebar__link::before {
    opacity: 0;
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__link::after, .p-nav-sidebar__item.is-item .p-nav-sidebar__link::after {
    opacity: 1;
  }
  .p-nav-sidebar__item.is-active .p-nav-sidebar__text::before, .p-nav-sidebar__item.is-item .p-nav-sidebar__text::before {
    background-image: url("./../common_img/arrow-right-white.webp");
  }
  .p-nav-sidebar__link {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 6rem;
    padding: 1.8rem 2rem 1.8rem 2.5rem;
    font-size: 1.6rem;
  }
  .p-nav-sidebar__link::before, .p-nav-sidebar__link::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .p-nav-sidebar__link::before {
    z-index: 2;
    opacity: 1;
    background-color: var(--theme-color-secondary);
    transition: opacity 0.3s ease;
  }
  .p-nav-sidebar__link::after {
    z-index: 1;
    opacity: 0.25;
  }
  .p-nav-sidebar__link:hover::before {
    opacity: 0;
  }
  .p-nav-sidebar__text {
    position: relative;
    z-index: 3;
    width: 100%;
    padding-right: 0.6rem;
  }
}
/*---------- START LAYOUT SIDEBAR ----------*/
.l-sidebar {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  height: 100vh;
  height: 100dvh;
  background-color: var(--theme-color-secondary);
}

.l-sidebar__nav {
  margin-bottom: 2.5rem;
}

.l-sidebar__btn {
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .l-sidebar {
    width: 100%;
    padding: 9rem 1.5rem 5.5rem 1.5rem;
    opacity: 0;
    visibility: hidden;
    overflow-y: auto;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .l-sidebar__list {
    margin-top: 2.5rem;
  }
  .l-sidebar__inner {
    margin: 0 auto;
    max-width: 32rem;
  }
  .l-sidebar__item {
    margin-top: 1.5rem;
  }
  .l-sidebar__item:first-child {
    margin-top: 0;
  }
  .l-sidebar.is-active {
    opacity: 1;
    visibility: visible;
  }
}
@media only screen and (min-width: 768px) {
  .l-sidebar {
    width: 25rem;
  }
  .l-sidebar__wrap {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
  }
  .l-sidebar__body {
    margin-top: auto;
    padding: 0 1rem 5rem 1rem;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .l-sidebar {
    padding-top: 20rem;
  }
  .l-sidebar__wrap {
    height: calc(100vh - 20rem);
  }
}
@media only screen and (min-width: 1200px) {
  .l-sidebar {
    padding-top: 26rem;
  }
  .l-sidebar__wrap {
    height: calc(100vh - 26rem);
  }
}
/*====================================================================================
17. START COMMON CALENDAR.
====================================================================================*/
/*---------- START COMPONENT CALENDAR ----------*/
.c-calendar {
  width: 100%;
}
.c-calendar .current-month {
  font-weight: 500;
}
.c-calendar .current-month strong {
  font-weight: 500;
}
.c-calendar .day-name,
.c-calendar .day {
  font-weight: 400;
}
.c-calendar .day-name {
  text-align: center;
}
.c-calendar .day-name:first-child {
  color: var(--color-red-500);
}
.c-calendar .day-name:nth-child(7) {
  color: var(--color-blue-500);
}
.c-calendar .day {
  cursor: pointer;
  text-align: center;
  transition: color 0.3s ease;
}
.c-calendar .day.sun {
  color: var(--color-red-500);
}
.c-calendar .day.sat {
  color: var(--color-blue-500);
}
.c-calendar .day.prev-month, .c-calendar .day.next-month {
  cursor: default;
  pointer-events: none;
}

.c-calendar__title {
  font-weight: 700;
  text-align: center;
}

.c-calendar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.c-calendar__gird {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

@media only screen and (max-width: 575px) {
  .c-calendar .day-item {
    min-width: 16.75vw;
  }
}
@media only screen and (min-width: 576px) and (max-width: 767px) {
  .c-calendar .day-item {
    min-width: 16.75vw;
  }
}
@media only screen and (max-width: 767px) {
  .c-calendar__gird {
    display: none;
  }
  .c-calendar .current-month {
    text-align: center;
    line-height: 1.4;
  }
  .c-calendar .current-month__number,
  .c-calendar .current-month__text {
    display: block;
  }
  .c-calendar .current-month__number {
    font-size: 3rem;
  }
  .c-calendar .day-item {
    position: relative;
    margin: 0 0.2rem;
    padding: 2.2rem 0.5rem 0.5rem 0.5rem;
    font-size: 1.4rem;
    text-align: center;
    box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.2);
    background-color: var(--theme-color-secondary);
  }
  .c-calendar .day-item span {
    position: absolute;
    top: 0;
    left: 0.5rem;
  }
  .c-calendar .day-item strong {
    position: relative;
    display: inline-block;
    padding-bottom: 0.8rem;
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 400;
  }
  .c-calendar .day-item strong::before {
    position: absolute;
    content: "";
    left: 50%;
    bottom: 0.2rem;
    width: 2.5rem;
    height: 1px;
    transform: translateX(-50%);
    background-color: var(--theme-color-primary);
  }
  .c-calendar .day-item.sun {
    color: var(--color-red-500);
  }
  .c-calendar .day-item.sun strong::before {
    background-color: var(--color-red-500);
  }
  .c-calendar .day-item.sat {
    color: var(--color-blue-500);
  }
  .c-calendar .day-item.sat strong::before {
    background-color: var(--color-blue-500);
  }
  .c-calendar .day-item.today {
    color: var(--theme-color-secondary);
    background-color: var(--theme-color-primary);
  }
  .c-calendar .day-item.today strong::before {
    background-color: var(--theme-color-secondary);
  }
  .c-calendar__list {
    display: flex;
    padding: 1rem 0 1.5rem 0;
    white-space: nowrap;
    overflow-x: auto;
  }
}
@media only screen and (min-width: 768px) {
  .c-calendar .current-month__text,
  .c-calendar__list {
    display: none;
  }
}
/*---------- START COMPONENT CALENDAR TOP ----------*/
.c-calendar-top {
  border: 1px solid var(--theme-border-tertiary);
  background-color: var(--theme-color-denary);
}
.c-calendar-top .day-name {
  padding: 0.4rem;
}
.c-calendar-top .day {
  padding: 0.4rem;
}
.c-calendar-top .day.today {
  color: var(--theme-color-octonary);
  font-weight: 700;
}

.c-calendar-top__heading {
  padding: 1.2rem 1rem;
  background-color: var(--color-green-400);
}

.c-calendar-top__title {
  color: var(--theme-color-secondary);
  font-size: 1.8rem;
}

@media only screen and (max-width: 767px) {
  .c-calendar-top__header {
    padding: 1.5rem 0.5rem 0.5rem 0.5rem;
  }
  .c-calendar-top__body {
    padding: 0 0.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-calendar-top .day.prev-month, .c-calendar-top .day.next-month {
    color: var(--color-neutral-330);
  }
  .c-calendar-top .day.today {
    font-size: 1.8rem;
    line-height: 1.7;
  }
  .c-calendar-top .day:hover {
    color: var(--theme-color-octonary);
  }
  .c-calendar-top__header {
    padding: 2.2rem 0.7rem 1.2rem 0.7rem;
  }
  .c-calendar-top__gird {
    padding-bottom: 2rem;
  }
}
/*---------- START COMPONENT CALENDAR MAIN ----------*/
.c-calendar-main {
  max-width: 74rem;
  margin: 0 auto;
}

@media only screen and (max-width: 767px) {
  .c-calendar-main__header {
    margin-bottom: 0.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-calendar-main .current-month {
    margin-bottom: -0.7rem;
    font-size: 1.8rem;
  }
  .c-calendar-main .current-month strong {
    line-height: 1;
    font-size: 4.8rem;
  }
  .c-calendar-main .day-name,
  .c-calendar-main .day {
    margin: -1.5px;
    line-height: 1.5;
    border: 3px solid var(--theme-border-tertiary);
  }
  .c-calendar-main .day-name {
    padding: 2rem;
    font-size: 3rem;
    font-weight: 500;
    background-color: var(--theme-color-septenary);
  }
  .c-calendar-main .day {
    padding: 2rem;
    font-size: 3rem;
    font-weight: 400;
    transition: color 0.3s ease, background-color 0.3s ease;
  }
  .c-calendar-main .day.prev-month, .c-calendar-main .day.next-month {
    color: var(--theme-color-secondary);
  }
  .c-calendar-main .day.today, .c-calendar-main .day:hover {
    color: var(--theme-color-secondary);
    background-color: var(--theme-color-primary);
  }
  .c-calendar-main__header {
    align-items: flex-end;
    margin-bottom: 2.7rem;
  }
}
/*====================================================================================
18. START COMMON SECTION.
====================================================================================*/
/*---------- START COMPONENT SHAPE ----------*/
.c-shape {
  position: relative;
}
.c-shape::before, .c-shape::after {
  position: absolute;
  content: "";
  bottom: 0;
}
.c-shape::before {
  left: 0;
  right: 0;
}
.c-shape::after {
  z-index: 1;
  left: -1px;
  right: -1px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.c-shape__container {
  padding-bottom: var(--spacing-sp70-pc140);
}

@media only screen and (max-width: 767px) {
  .c-shape::before {
    height: 1.9rem;
  }
  .c-shape::after {
    height: 2rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-shape::before {
    height: 3.9rem;
  }
  .c-shape::after {
    height: 4rem;
  }
}
/*---------- START COMPONENT SHAPE CURVE WHITE ----------*/
.c-shape--curve-white::before {
  background-color: var(--theme-color-septenary);
}

@media only screen and (max-width: 767px) {
  .c-shape--curve-white::after {
    background-image: url("./../common_img/curve-white-sp.webp");
  }
}
@media only screen and (min-width: 768px) {
  .c-shape--curve-white::after {
    background-image: url("./../common_img/curve-white.webp");
  }
}
/*---------- START COMPONENT SHAPE CURVE GREEN ----------*/
.c-shape--curve-green::before,
.is-footer--white .l-footer::before {
  background-color: var(--theme-color-secondary);
}

@media only screen and (max-width: 767px) {
  .c-shape--curve-green::after {
    background-image: url("./../common_img/curve-green-sp.webp");
  }
}
@media only screen and (min-width: 768px) {
  .c-shape--curve-green::after {
    background-image: url("./../common_img/curve-green.webp");
  }
}
/*====================================================================================
19. START COMMON CHECK PAGE.
====================================================================================*/
/*---------- START IS FOOTER WHITE ----------*/
/*---------- START IS FOOTER OFF WHITE ----------*/
.is-footer-gray .l-footer::before {
  background-color: var(--theme-color-septenary);
}

/*====================================================================================
20. START COMMON FORM.
====================================================================================*/
/*---------- START BASE FORM ----------*/
input,
select,
option,
optgroup,
textarea {
  font-weight: 300;
  letter-spacing: 0.02em;
  font-family: var(--theme-font-jp-primary);
  color: var(--theme-color-primary);
  background-color: var(--theme-color-secondary);
  text-size-adjust: 100%;
}

.is-ios input,
.is-ios textarea {
  font-size: 1.6rem;
}

input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password] {
  width: 100%;
  border: 1px solid var(--theme-border-quinary);
}
input[type=tel]::placeholder, input[type=text]::placeholder, input[type=email]::placeholder, input[type=number]::placeholder, input[type=password]::placeholder {
  opacity: 1;
  color: var(--color-neutral-500);
}
input[type=tel]:focus, input[type=text]:focus, input[type=email]:focus, input[type=number]:focus, input[type=password]:focus {
  border: 1px solid var(--theme-color-primary);
}

select {
  cursor: pointer;
  width: 100%;
  color: var(--theme-color-primary);
  border: 1px solid var(--theme-border-quinary);
}
select option {
  color: var(--theme-color-primary);
}
select:focus {
  border: 1px solid var(--theme-color-primary);
}

textarea {
  resize: none;
  width: 100%;
  border: 1px solid var(--theme-border-quinary);
}
textarea::placeholder {
  opacity: 1;
  color: var(--theme-border-quinary);
}
textarea:focus {
  border: 1px solid var(--theme-color-primary);
}

@media only screen and (max-width: 767px) {
  input,
  select,
  option,
  optgroup,
  textarea {
    font-size: 1.4rem;
    line-height: 1.7;
  }
  input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password] {
    height: 4.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  input[type=tel]::placeholder, input[type=text]::placeholder, input[type=email]::placeholder, input[type=number]::placeholder, input[type=password]::placeholder {
    font-size: 1.4rem;
  }
  select {
    height: 4.5rem;
  }
  textarea {
    padding: 0.5rem 1rem;
  }
  textarea::placeholder {
    font-size: 1.4rem;
  }
}
@media only screen and (min-width: 768px) {
  input,
  select,
  option,
  optgroup,
  textarea {
    font-size: 1.6rem;
    line-height: 1.88;
  }
  input[type=tel], input[type=text], input[type=email], input[type=number], input[type=password] {
    height: 5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  input[type=tel]::placeholder, input[type=text]::placeholder, input[type=email]::placeholder, input[type=number]::placeholder, input[type=password]::placeholder {
    font-size: 1.6rem;
  }
  select {
    height: 5rem;
  }
  textarea {
    padding: 1rem 1.5rem;
  }
  textarea::placeholder {
    font-size: 1.6rem;
  }
}
/*---------- START COMPONENT RADIO ----------*/
.c-rdo,
.c-chk {
  display: flex;
}
.c-rdo label,
.c-chk label {
  flex: 1;
  cursor: pointer;
}

@media only screen and (max-width: 767px) {
  .c-rdo input[type=radio] {
    width: 1.8rem;
    height: 1.8rem;
    margin-top: 0.2rem;
  }
  .c-rdo label {
    padding-left: 0.8rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-rdo input[type=radio] {
    width: 2rem;
    height: 2rem;
    margin-top: 0.5rem;
  }
  .c-rdo label {
    padding-left: 1rem;
  }
}
/*---------- START COMPONENT CHECKBOX ----------*/
@media only screen and (max-width: 767px) {
  .c-chk input[type=checkbox] {
    width: 1.8rem;
    height: 1.8rem;
    margin-top: 0.2rem;
  }
  .c-chk label {
    padding-left: 0.8rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-chk input[type=checkbox] {
    width: 2.5rem;
    height: 2.5rem;
    margin-top: 0.4rem;
  }
  .c-chk label {
    padding-left: 1.5rem;
  }
}
/* イベント開催日にマークを表示 */
.c-calendar__gird .day.has-event:not(.prev-month):not(.next-month),
.c-calendar__list .day-item.has-event {
  position: relative;
}

/* デスクトップ版: 開催日を示す円を日付の周りに表示 */
.c-calendar__gird .day.has-event:not(.prev-month):not(.next-month):after {
  position: absolute;
  content: "";
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 96%;
  background-repeat: no-repeat;
  background-position: 60% center;
  background-size: auto 100%;
  pointer-events: none;
}

/* スマホ版（リストカレンダー）: 開催日を示す円を日付の周りに表示 */
.c-calendar__list .day-item.has-event::after {
  position: absolute;
  content: "";
  z-index: -1;
  top: -10%;
  left: 5%;
  width: 100%;
  height: 120%;
  transform: rotate(-10deg);
  background-repeat: no-repeat;
  background-position: 60% center;
  background-size: 100% auto;
  pointer-events: none;
}

/* カレンダーの日付のテキストを上に表示 */
.c-calendar__gird .day,
.c-calendar__list .day-item {
  position: relative;
  z-index: 2;
}

/* todayクラスと共存しても綺麗に見えるように調整 */