@charset "UTF-8";

[data-animation^=fade-in]:not(.animated) {
  opacity: 0;
}

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

  100% {
    opacity: 1;
  }
}

@keyframes fade-in-left {
  0% {
    opacity  : 0;
    transform: translateX(12px);
  }

  100% {
    opacity  : 1;
    transform: translateX(0);
  }
}

@keyframes fade-in-right {
  0% {
    opacity  : 0;
    transform: translateX(-12px);
  }

  100% {
    opacity  : 1;
    transform: translateX(0);
  }
}

@keyframes fade-in-up {
  0% {
    opacity  : 0;
    transform: translateY(8px);
  }

  100% {
    opacity  : 1;
    transform: translateY(0);
  }
}

@keyframes button-hover {
  0% {
    opacity  : 0;
    transform: skewX(var(--slash-deg)) translateX(-100%);
  }

  100% {
    opacity  : 1;
    transform: skewX(var(--slash-deg)) translateX(0);
  }
}

@keyframes button-hover-out {
  0% {
    opacity  : 1;
    transform: skewX(var(--slash-deg)) translateX(0);
  }

  50% {
    opacity: 0.5;
  }

  100% {
    opacity  : 0;
    transform: skewX(var(--slash-deg)) translateX(100%);
  }
}

:root {
  --font-fallback      : "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --font-base          : "Noto Sans JP", var(--font-fallback);
  --font-heading       : "Noto Sans JP", var(--font-fallback);
  --font-english       : "Jost", var(--font-base);
  --font-number        : "Roboto", var(--font-base);
  --font-serif         : serif;
  --font-icon          : "icomoon";
  --font-size-xxs      : 1rem;
  --font-size-xs       : 1.2rem;
  --font-size-sm       : 1.4rem;
  --font-size-md       : 1.6rem;
  --font-size-lg       : 1.8rem;
  --font-size-xl       : 2rem;
  --font-size-xxl      : 2.8rem;
  --font-size-xxxl     : 3.2rem;
  --font-weight-regular: 400;
  --font-weight-bold   : 700;
}

@media (max-width: 525px) {
  :root {
    --font-size-sm  : 1.3rem;
    --font-size-md  : 1.5rem;
    --font-size-xxl : 2.6rem;
    --font-size-xxxl: 3.1rem;
  }
}

:root {
  --ease-in-sine     : cubic-bezier(0.47, 0, 0.745, 0.715);
  --ease-out-sine    : cubic-bezier(0.39, 0.575, 0.565, 1);
  --ease-in-out-sine : cubic-bezier(0.445, 0.05, 0.55, 0.95);
  --ease-in-quad     : cubic-bezier(0.55, 0.085, 0.68, 0.53);
  --ease-out-quad    : cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-in-out-quad : cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --ease-in-cubic    : cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --ease-out-cubic   : cubic-bezier(0.215, 0.61, 0.355, 1);
  --ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --ease-in-quart    : cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --ease-out-quart   : cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-in-quint    : cubic-bezier(0.755, 0.05, 0.855, 0.06);
  --ease-out-quint   : cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --ease-in-expo     : cubic-bezier(0.95, 0.05, 0.795, 0.035);
  --ease-out-expo    : cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-expo : cubic-bezier(1, 0, 0, 1);
  --ease-in-circ     : cubic-bezier(0.6, 0.04, 0.98, 0.335);
  --ease-out-circ    : cubic-bezier(0.075, 0.82, 0.165, 1);
  --ease-in-out-circ : cubic-bezier(0.785, 0.135, 0.15, 0.86);
  --ease-in-back     : cubic-bezier(0.6, -0.28, 0.735, 0.045);
  --ease-out-back    : cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-in-out-back : cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

:root {
  --vw                    : 1vw;
  --slash-deg             : 135deg;
  --z-index-header        : 3;
  --breakpoint-xs         : 360;
  --breakpoint-xs-px      : 360px;
  --breakpoint-sm         : 525;
  --breakpoint-sm-px      : 525px;
  --breakpoint-md         : 768;
  --breakpoint-md-px      : 768px;
  --breakpoint-lg         : 1024;
  --breakpoint-lg-px      : 1024px;
  --breakpoint-xl         : 1360;
  --breakpoint-xl-px      : 1360px;
  --breakpoint-sp         : 525;
  --breakpoint-sp-px      : 525px;
  --breakpoint-tablet     : 768;
  --breakpoint-tablet-px  : 768px;
  --breakpoint-pc         : 1024;
  --breakpoint-pc-px      : 1024px;
  --breakpoint-wide       : 1360;
  --breakpoint-wide-px    : 1360px;
  --color-black           : #000;
  --color-black-rgb       : 0, 0, 0;
  --color-noir            : #0d1114;
  --color-noir-rgb        : 13, 17, 20;
  --color-deep-brown      : #1a110b;
  --color-deep-brown-rgb  : 26, 17, 11;
  --color-charcoal        : #231815;
  --color-charcoal-rgb    : 35, 24, 21;
  --color-ash-brown       : #48403d;
  --color-ash-brown-rgb   : 72, 64, 61;
  --color-navy            : #001833;
  --color-navy-rgb        : 0, 24, 51;
  --color-indigo          : #001f36;
  --color-indigo-rgb      : 0, 31, 54;
  --color-white           : #fff;
  --color-white-rgb       : 255, 255, 255;
  --color-grey            : #d1d1d2;
  --color-grey-rgb        : 209, 209, 210;
  --color-grey-light      : #efefef;
  --color-grey-light-rgb  : 239, 239, 239;
  --color-grey-dark       : #c2c2c2;
  --color-grey-dark-rgb   : 194, 194, 194;
  --color-blue-grey       : #778085;
  --color-blue-grey-rgb   : 119, 128, 133;
  --color-fog-blue        : #556477;
  --color-fog-blue-rgb    : 85, 100, 119;
  --color-cloud           : #cbcdce;
  --color-cloud-rgb       : 203, 205, 206;
  --color-steel           : #57585a;
  --color-steel-rgb       : 87, 88, 90;
  --color-chocholate      : #826b43;
  --color-chocholate-rgb  : 130, 107, 67;
  --color-brun            : #705737;
  --color-brun-rgb        : 112, 87, 55;
  --color-yellow-brown    : #8a621d;
  --color-yellow-brown-rgb: 138, 98, 29;
  --color-ocher           : #aa8b4a;
  --color-ocher-rgb       : 170, 139, 74;
  --color-biscuit         : #9e7f4b;
  --color-biscuit-rgb     : 158, 127, 75;
  --color-wheat           : #cfb37a;
  --color-wheat-rgb       : 207, 179, 122;
  --color-stone           : #b7afa2;
  --color-stone-rgb       : 183, 175, 162;
  --color-cream           : #fff5de;
  --color-cream-rgb       : 255, 245, 222;
  --color-oyster          : #ddd4c3;
  --color-oyster-rgb      : 221, 212, 195;
}

@property --page-width {
  syntax       : "<length>";
  initial-value: 0%;
  inherits     : true;
}

html {
  font-size: 62.5%;
}

body {
  font-family   : var(--font-base);
  font-size     : var(--font-size-md);
  font-weight   : var(--font-weight-regular);
  line-height   : 1.7;
  color         : var(--color-text-primary);
  letter-spacing: 0.02em;
  background    : var(--color-bg-primary);
}

body:where([data-theme-color=black]) {
  --color-primary              : var(--color-black);
  --color-primary-rgb          : var(--color-black-rgb);
  --color-bg-primary           : var(--color-white);
  --color-bg-primary-rgb       : var(--color-white-rgb);
  --color-bg-secondary         : var(--color-grey-dark);
  --color-bg-secondary-rgb     : var(--color-grey-dark-rgb);
  --color-text-primary         : var(--color-black);
  --color-text-primary-rgb     : var(--color-black-rgb);
  --color-text-contrast        : var(--color-white);
  --color-text-contrast-rgb    : var(--color-white-rgb);
  --color-heading-primary      : var(--color-black);
  --color-heading-primary-rgb  : var(--color-black-rgb);
  --color-heading-secondary    : var(--color-black);
  --color-heading-secondary-rgb: var(--color-black-rgb);
  --color-heading-contrast     : var(--color-white);
  --color-heading-contrast-rgb : var(--color-white-rgb);
}

body:where([data-theme-color=gold]) {
  --color-primary              : var(--color-yellow-brown);
  --color-primary-rgb          : var(--color-yellow-brown-rgb);
  --color-bg-primary           : var(--color-white);
  --color-bg-primary-rgb       : var(--color-white-rgb);
  --color-bg-secondary         : var(--color-oyster);
  --color-bg-secondary-rgb     : var(--color-oyster-rgb);
  --color-text-primary         : var(--color-deep-brown);
  --color-text-primary-rgb     : var(--color-deep-brown-rgb);
  --color-text-contrast        : var(--color-white);
  --color-text-contrast-rgb    : var(--color-white-rgb);
  --color-heading-primary      : var(--color-charcoal);
  --color-heading-primary-rgb  : var(--color-charcoal-rgb);
  --color-heading-secondary    : var(--color-charcoal);
  --color-heading-secondary-rgb: var(--color-charcoal-rgb);
  --color-heading-contrast     : var(--color-white);
  --color-heading-contrast-rgb : var(--color-white-rgb);
}

body:where([data-theme-color=blue]) {
  --color-primary              : var(--color-navy);
  --color-primary-rgb          : var(--color-navy-rgb);
  --color-bg-primary           : var(--color-white);
  --color-bg-primary-rgb       : var(--color-white-rgb);
  --color-bg-secondary         : var(--color-cloud);
  --color-bg-secondary-rgb     : var(--color-cloud-rgb);
  --color-text-primary         : var(--color-noir);
  --color-text-primary-rgb     : var(--color-noir-rgb);
  --color-text-contrast        : var(--color-white);
  --color-text-contrast-rgb    : var(--color-white-rgb);
  --color-heading-primary      : var(--color-ash-brown);
  --color-heading-primary-rgb  : var(--color-ash-brown-rgb);
  --color-heading-secondary    : var(--color-steel);
  --color-heading-secondary-rgb: var(--color-steel-rgb);
  --color-heading-contrast     : var(--color-white);
  --color-heading-contrast-rgb : var(--color-white-rgb);
}

main {
  --page-width     : 100cqw;
  --page-half-width: 50cqw;
  container-type   : inline-size;
}

img {
  display  : inline-block;
  max-width: 100%;
  height   : auto;
}

.wow {
  animation-duration : 1.15s;
  animation-delay    : 0.1s;
  animation-fill-mode: forwards;
}

.wow.fadeIn {
  opacity: 0;
}

.slick-slide {
  outline: none;
}

.simplebar-content-wrapper {
  outline: none;
}

.simplebar-track {
  --scrollbar-size: 7px;
}

.simplebar-track.simplebar-vertical {
  width: var(--scrollbar-size);
}

.simplebar-track.simplebar-horizontal {
  height: var(--scrollbar-size);
}

.simplebar-scrollbar::before {
  inset: 0;
}

.c-button01 {
  --button-color      : var(--color-primary);
  --button-text-color : var(--color-text-contrast);
  --button-hover-color: rgba(var(--color-text-contrast-rgb), 35%);
  --button-height     : 3.8em;
  --chip-size         : 14px;
  --corner-size       : 14px;
  --dash-width        : 14px;
  --padding-x         : 1em;
  --padding-y         : 1em;
  position            : relative;
  z-index             : 0;
  display             : flex;
  align-items         : center;
  justify-content     : center;
  width               : fit-content;
  min-width           : 235px;
  max-width           : 100%;
  height              : var(--button-height);
  padding             : 1em;
  padding-right       : calc(var(--corner-size) * 1.6 + var(--dash-width) + var(--padding-x) * 1);
  overflow            : hidden;
  clip-path           : polygon(0 0, 100% 0, 100% calc(100% - var(--chip-size)), calc(100% - var(--chip-size)) 100%, 0 100%);
  line-height         : 1;
  color               : var(--button-text-color);
  background          : var(--button-color);
  position            : relative;
}

.c-button01::before {
  position                 : absolute;
  top                      : 0;
  left                     : 0;
  z-index                  : -1;
  width                    : calc(100% + var(--button-height));
  height                   : 100%;
  margin-left              : calc(var(--button-height) * 0.5 * -1);
  cursor                   : inherit;
  content                  : "";
  background               : var(--button-hover-color);
  transform                : skewX(var(--slash-deg));
  animation-name           : button-hover-out;
  animation-duration       : 0.6s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.c-button01:hover::before {
  animation-name           : button-hover;
  animation-duration       : 0.6s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.c-button01:where(body[data-theme-color=gold] *) {
  --button-color: linear-gradient(var(--slash-deg), var(--color-wheat), var(--color-ocher));
}

.c-button01:where(body[data-theme-color=blue] *) {
  --button-color: rgba(var(--color-primary-rgb), 65%);
}

.c-button01::after {
  position  : absolute;
  top       : 50%;
  right     : calc(var(--corner-size) * 1.6);
  width     : var(--dash-width);
  height    : 1px;
  content   : "";
  background: currentcolor;
  transition: transform 0.35s var(--ease-out-quint);
}

.c-button01:hover::after {
  transform: translateX(35%);
}

.c-button01--contrast {
  --button-color      : var(--color-text-contrast);
  --button-text-color : var(--color-text-primary);
  --button-hover-color: rgba(var(--color-primary-rgb), 25%);
}

.c-button01--thin {
  --button-height: 3.15em;
}

.c-button01--thick {
  --button-height: 4.6em;
}

.c-button01--fit {
  min-width: unset;
}

.c-button01--full {
  width: 100%;
}

.c-button02 {
  --button-color           : var(--color-primary);
  --button-text-color      : var(--color-primary);
  --button-hover-text-color: var(--color-text-contrast);
  --button-height          : 3.8em;
  --chip-size              : 14px;
  --corner-size            : 14px;
  --dash-width             : 14px;
  --padding-x              : 1em;
  --padding-y              : 1em;
  --border-width           : 1.5px;
  container-type           : inline-size;
  position                 : relative;
  z-index                  : 0;
  display                  : block;
  width                    : fit-content;
  min-width                : 235px;
  max-width                : 100%;
  clip-path                : polygon(0 0, 100% 0, 100% calc(100% - var(--chip-size)), calc(100% - var(--chip-size)) 100%, 0 100%);
  font-weight              : bold;
  line-height              : 1;
  color                    : var(--button-text-color);
  transition               : color 0.2s;
}

.c-button02:where(body[data-theme-color=gold] *) {
  --button-color     : linear-gradient(var(--slash-deg), var(--color-wheat), var(--color-ocher));
  --button-text-color: var(--color-chocholate);
}

.c-button02:where(body[data-theme-color=blue] *) {
  --button-color: var(--color-fog-blue);
}

.c-button02::before {
  position  : absolute;
  inset     : 0;
  z-index   : 1;
  content   : "";
  background: var(--button-color);
  opacity   : 0;
  transition: opacity 0.35s;
}

.c-button02::after {
  position        : absolute;
  inset           : 0;
  z-index         : 0;
  clip-path       : polygon(0 100%, calc(100% - var(--chip-size)) 100%, 100% calc(100% - var(--chip-size)), 100% 0, calc(100% - var(--border-width)) 0, calc(100% - var(--border-width)) calc(100% - (var(--chip-size) + var(--border-width) / 2)), calc(100% - (var(--chip-size) + var(--border-width) / 2)) calc(100% - var(--border-width)), 0 calc(100% - var(--border-width)));
  content         : "";
  background-color: currentcolor;
}

.c-button02:hover {
  color: var(--button-hover-text-color);
}

.c-button02:hover::before {
  opacity: 1;
}

.c-button02__inner {
  position       : relative;
  z-index        : 2;
  display        : flex;
  align-items    : center;
  justify-content: center;
  height         : var(--button-height);
  padding        : 1em;
  padding-right  : calc(var(--corner-size) * 1.6 + var(--dash-width) + var(--padding-x) * 1);
}

.c-button02__inner::after {
  position  : absolute;
  top       : 50%;
  right     : calc(var(--corner-size) * 1.6);
  width     : var(--dash-width);
  height    : 1px;
  content   : "";
  background: currentcolor;
  transition: transform 0.35s var(--ease-out-quint);
}

.c-button02__inner:where(.c-button02:hover > *)::after {
  transform: translateX(35%);
}

.c-button02--contrast {
  --button-color           : var(--color-text-contrast);
  --button-hover-text-color: var(--color-text);
}

.c-button02--thin {
  --button-height: 3.15em;
}

.c-button02--thick {
  --button-height: 4.6em;
}

.c-button02--fit {
  min-width: unset;
}

.c-button02--full {
  width: 100%;
}

.c-card__image {
  display     : block;
  aspect-ratio: var(--image-aspect-ratio, 1/0.73);
  object-fit  : cover;
}

.c-card__body {
  margin-top: 1.25em;
}

.c-card__heading {
  margin-bottom: 0.5em;
  font-size    : var(--heading-size, var(--font-size-xl));
  font-weight  : bold;
  line-height  : 1.7;
  color        : var(--heading-color, var(--color-heading-secondary));
}

.c-career {
  --date-width  : 4em;
  --row-gap     : 0.5em;
  container-type: inline-size;
}

.c-career__heading {
  position      : relative;
  display       : block;
  padding-bottom: 0.55em;
  margin-bottom : 0.65em;
  font-size     : var(--font-size-xl);
  font-weight   : bold;
  color         : var(--heading-color, var(--color-heading-secondary));
  letter-spacing: 0.1em;
}

.c-career__heading::after {
  position        : absolute;
  bottom          : 0;
  left            : 0;
  width           : 100%;
  height          : 1px;
  content         : "";
  background-color: currentcolor;
  opacity         : 0.5;
}

.c-career__item {
  display              : grid;
  grid-template-columns: auto 1fr;
  line-height          : 1.7;
}

@container (width <=360px) {
  .c-career__item {
    display: block;
  }
}

.c-career__item:where(.c-career__item + *) {
  margin-top: var(--row-gap);
}

.c-career__date {
  grid-column : 1;
  min-width   : var(--date-width);
  margin-right: 1em;
}

.c-career__content {
  display    : block;
  grid-column: 2;
}

.c-detect-scroll {
  --gradation-size-y: 2.5em;
  --gradation-size-x: 1.5em;
  --top-gradation   : 0%;
  --right-gradation : 0%;
  --bottom-gradation: 0%;
  --left-gradation  : 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y] {
  --top-gradation   : var(--gradation-size-y);
  --bottom-gradation: var(--gradation-size-y);
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y][data-scroll-state*=top] {
  --top-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=y][data-scroll-state*=bottom] {
  --bottom-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x] {
  --right-gradation: var(--gradation-size-x);
  --left-gradation : var(--gradation-size-x);
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x][data-scroll-state*=right] {
  --right-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper[data-scrollable*=x][data-scroll-state*=left] {
  --left-gradation: 0%;
}

.c-detect-scroll .simplebar-content-wrapper:is([data-scrollable*=x], [data-scrollable*=y]) {
  -webkit-mask-composite: source-out, source-over, source-over, source-over;
  mask-composite        : subtract, add, add, add;
  -webkit-mask-image    : linear-gradient(to right, #000, #000 100%), linear-gradient(to bottom, #000, transparent var(--top-gradation)), linear-gradient(to top, #000, transparent var(--bottom-gradation)), linear-gradient(to left, #000, transparent var(--right-gradation)), linear-gradient(to right, #000, transparent var(--left-gradation));
  mask-image            : linear-gradient(to right, #000, #000 100%), linear-gradient(to bottom, #000, transparent var(--top-gradation)), linear-gradient(to top, #000, transparent var(--bottom-gradation)), linear-gradient(to left, #000, transparent var(--right-gradation)), linear-gradient(to right, #000, transparent var(--left-gradation));
}

.c-heading01 {
  --font-size     : 9.3rem;
  --gap           : 0.32em;
  --position      : calc(100% - var(--gap));
  --slash-position: 0%;
  line-height     : 1;
}

@media (max-width: 768px) {
  .c-heading01 {
    --font-size: 7.2rem;
  }
}

.c-heading01__slash {
  position : relative;
  display  : block;
  width    : fit-content;
  font-size: var(--font-size);
  color    : var(--heading-main-color, var(--heading-color, var(--color-heading-primary)));
}

.c-heading01__slash::after {
  --slash-position   : calc(var(--gap) / -1.4142);
  position           : absolute;
  right              : 0;
  bottom             : 0;
  width              : 0.8em;
  height             : 1px;
  content            : "";
  background-image   : linear-gradient(to right, currentcolor 50%, transparent 50%);
  background-repeat  : no-repeat;
  background-position: 100%;
  background-size    : 200%;
  transition         : background 0.55s var(--ease-in-out-expo);
  transform          : translate(var(--slash-position), var(--slash-position)) translateX(50%) rotate(var(--slash-deg)) translateX(-10%);
  transform-origin   : center center;
}

.c-heading01.in-view .c-heading01__slash::after {
  background-position: 0%;
}

.c-heading01__en {
  display           : block;
  padding-right     : 0.02em;
  padding-bottom    : 0.1em;
  font-family       : var(--font-english);
  -webkit-mask-image: linear-gradient(var(--slash-deg), #000, #000 var(--position), transparent var(--position));
  mask-image        : linear-gradient(var(--slash-deg), #000, #000 var(--position), transparent var(--position));
}

.c-heading01__ja {
  display   : block;
  margin-top: 0.5em;
  font-size : 2rem;
  color     : var(--heading-sub-color, var(--heading-color, var(--color-heading-secondary)));
}

.c-heading02 {
  --padding-top        : 0.12em;
  --padding-bottom     : 0.35em;
  --slash-size         : 2.5em;
  --min-height         : 2.75em;
  --border-width       : 1.5px;
  --border-filled-width: 100px;
  --border-gap-width   : 0px;
  --border-color       : currentcolor;
  --border             : linear-gradient(to right, var(--border-color), var(--border-color) var(--border-filled-width), transparent var(--border-filled-width));
  position             : relative;
  z-index              : 0;
  font-size            : var(--heading-size, var(--font-size-xxl));
  font-weight          : bold;
  line-height          : 1.4;
  color                : var(--heading-color, var(--color-heading-primary));
}

@media (max-width: 525px) {
  .c-heading02 {
    --slash-size: min(2em, 50px);
  }
}

.c-heading02::before {
  content            : "";
  position           : absolute;
  right              : var(--slash-size);
  height             : var(--border-width);
  background-image   : linear-gradient(to right, var(--border-color), var(--border-color) var(--border-filled-width), transparent var(--border-filled-width));
  background-repeat  : repeat-x;
  background-position: left bottom;
  background-size    : calc(var(--border-filled-width) + var(--border-gap-width)) var(--border-width);
  bottom             : 0;
  width              : calc(100% - var(--slash-size) + var(--page-half-width) - 50%);
}

.c-heading02::after {
  content            : "";
  position           : absolute;
  bottom             : 0;
  width              : var(--slash-size);
  height             : var(--slash-size);
  background-image   : linear-gradient(to right, var(--border-color), var(--border-color) calc(var(--border-filled-width) / 1.5), transparent calc(var(--border-filled-width) / 1.5));
  background-repeat  : repeat-x;
  background-position: left bottom;
  background-size    : calc((var(--border-filled-width) + var(--border-gap-width)) / 1.5) calc(var(--border-width) * 1.5);
  transform          : skewX(135deg) rotate(-90deg);
  transform-origin   : left bottom;
  right              : 0;
}

.c-heading02--contain::before {
  width: calc(100% - var(--slash-size));
}

.c-heading02--semi-bold {
  --border-width: 2px;
}

.c-heading02--bold {
  --border-width: 3px;
}

.c-heading02--extra-bold {
  --border-width: 5px;
}

.c-heading02--dotted {
  --border-filled-width: 4px;
  --border-gap-width   : 4px;
}

.c-heading02--dashed {
  --border-filled-width: 8px;
  --border-gap-width   : 6px;
}

.c-heading02__inner {
  position      : relative;
  display       : flex;
  align-items   : center;
  min-height    : var(--min-height);
  padding-top   : var(--padding-top);
  padding-right : var(--slash-size);
  padding-bottom: var(--padding-bottom);
}

.c-heading02__inner:where(.c-heading02--double-slash *) {
  --slash-gap  : 10px;
  padding-right: calc(var(--slash-size) + var(--slash-gap));
}

.c-heading02__inner:where(.c-heading02--double-slash *)::after {
  content            : "";
  position           : absolute;
  bottom             : 0;
  width              : var(--slash-size);
  height             : var(--slash-size);
  background-image   : linear-gradient(to right, var(--border-color), var(--border-color) calc(var(--border-filled-width) / 1.5), transparent calc(var(--border-filled-width) / 1.5));
  background-repeat  : repeat-x;
  background-position: left bottom;
  background-size    : calc((var(--border-filled-width) + var(--border-gap-width)) / 1.5) calc(var(--border-width) * 1.5);
  transform          : skewX(135deg) rotate(-90deg);
  transform-origin   : left bottom;
  right              : var(--slash-gap);
}

.c-heading02__inner:where(.c-heading02--double-border *) {
  --doubled-gap : 7px;
  padding-bottom: calc(var(--padding-bottom) + var(--doubled-gap));
}

.c-heading02__inner:where(.c-heading02--double-border *)::before {
  content            : "";
  position           : absolute;
  right              : var(--slash-size);
  height             : var(--border-width);
  background-image   : linear-gradient(to right, var(--border-color), var(--border-color) var(--border-filled-width), transparent var(--border-filled-width));
  background-repeat  : repeat-x;
  background-position: left bottom;
  background-size    : calc(var(--border-filled-width) + var(--border-gap-width)) var(--border-width);
  bottom             : var(--doubled-gap);
  width              : calc(100% - var(--slash-size) + var(--page-half-width) - 50% + var(--doubled-gap));
  margin-right       : calc(var(--doubled-gap) * -1);
}

.c-heading02__inner:where(.c-heading02--double-border *):where(.c-heading02--contain *)::before {
  width: calc(100% - var(--slash-size) + var(--doubled-gap));
}

.c-heading02__inner:where(.c-heading02--featured *) {
  --feature-height: 7px;
  --feature-width : min(8em, 50%);
  padding-bottom  : calc(var(--padding-bottom) + var(--feature-height));
}

.c-heading02__inner:where(.c-heading02--featured *)::before {
  position        : absolute;
  right           : calc(100% - var(--feature-width));
  bottom          : 0;
  width           : calc(var(--feature-width) + var(--page-half-width) - 50%);
  height          : var(--feature-height);
  content         : "";
  background-color: currentcolor;
}

.c-heading02__inner:where(.c-heading02--featured *):where(.c-heading02--contain *)::before {
  width: var(--feature-width);
}

.c-heading03 {
  --bg-color    : var(--heading-bg-color, rgba(var(--color-primary-rgb), 65%));
  --text-color  : var(--heading-color, var(--color-text-contrast));
  position      : relative;
  z-index       : 0;
  font-size     : var(--font-size-xxl);
  font-weight   : bold;
  line-height   : 1.35;
  color         : var(--text-color);
  container-type: inline-size;
}

.c-heading03:where(body[data-theme-color=black] *) {
  --bg-color: var(--heading-bg-color, var(--color-primary));
}

.c-heading03--contrast {
  --bg-color  : var(--heading-bg-color, var(--color-bg-primary));
  --text-color: var(--heading-color, var(--color-heading-primary));
}

.c-heading03__inner {
  position      : relative;
  display       : flex;
  align-items   : center;
  max-width     : 960px;
  min-height    : 2.85em;
  padding-top   : 0.5em;
  padding-right : 1em;
  padding-bottom: 0.5em;
}

.c-heading03__inner::before {
  position        : absolute;
  inset           : 0;
  z-index         : -1;
  margin-left     : calc(50cqw - 50 * var(--vw));
  content         : "";
  background-color: var(--bg-color);
}

.c-heading04 {
  --bar-width: 0.45em;
  display    : flex;
  gap        : 1em;
  align-items: center;
  font-size  : var(--font-size-xl);
}

.c-heading04--thick {
  --bar-width: 0.85em;
}

.c-heading04::before {
  width           : var(--bar-width);
  height          : 1.2em;
  margin-top      : 0.1em;
  content         : "";
  background-color: currentcolor;
}

.c-image--full {
  width: 100%;
}

.c-image--cover {
  display   : block;
  width     : 100%;
  height    : 100%;
  object-fit: cover;
}

.c-keep-word {
  word-break   : keep-all;
  overflow-wrap: anywhere;
}

.c-list {
  --prefix      : "・";
  --padding     : 1.3em;
  --row-gap     : 0.15em;
  --prefix-color: currentcolor;
  list-style    : none;
}

.c-list--note {
  --prefix: "※";
}

.c-list--ordered {
  --prefix     : counter(list) ".";
  counter-reset: list;
}

.c-list--ordered:where(.c-list--note) {
  --prefix : "※"counter(list);
  --padding: 2.3em;
}

.c-list--check {
  --prefix : "";
  --padding: 1.75em;
}

.c-list--check:where(body[data-theme-color=gold] *) {
  --prefix-color: rgba(var(--color-charcoal-rgb), 75%);
}

.c-list--check:where(body[data-theme-color=blue] *) {
  --prefix-color: rgba(var(--color-primary-rgb), 60%);
}

.c-list__item {
  position    : relative;
  padding-left: var(--padding);
}

.c-list__item:where(.c-list--ordered > *) {
  counter-increment: list;
}

.c-list__item::before {
  position: absolute;
  top     : 0;
  left    : 0;
  color   : var(--prefix-color);
  content : var(--prefix);
}

.c-list__item:where(.c-list--check > *)::before {
  font-family: var(--font-icon);
}

.c-list__item:where(:nth-of-type(n + 2)) {
  margin-top: var(--row-gap);
}

.c-number-list {
  --mask-gap   : 0.3em;
  --number-size: 9.6rem;
  counter-reset: number-list;
}

@media (max-width: 768px) {
  .c-number-list {
    --number-size: 8rem;
  }
}

.c-number-list__item {
  position         : relative;
  z-index          : 0;
  counter-increment: number-list;
}

.c-number-list__number {
  --position   : calc(100% - var(--mask-gap));
  position     : relative;
  z-index      : 2;
  display      : block;
  width        : fit-content;
  margin-bottom: -0.38em;
  font-size    : var(--number-size);
  line-height  : 1;
  color        : var(--color-heading-secondary);
  transform    : translateX(-0.05em);
}

.c-number-list__number::before {
  display           : block;
  font-family       : var(--font-number);
  content           : counter(number-list, decimal-leading-zero);
  -webkit-mask-image: linear-gradient(var(--slash-deg), #000, #000 var(--position), transparent var(--position));
  mask-image        : linear-gradient(var(--slash-deg), #000, #000 var(--position), transparent var(--position));
}

.c-number-list__number::after {
  --slash-position   : calc(var(--mask-gap) / -1.4142);
  position           : absolute;
  right              : 0;
  bottom             : 0;
  width              : 0.8em;
  height             : 1px;
  content            : "";
  background-image   : linear-gradient(to right, currentcolor 50%, transparent 50%);
  background-repeat  : no-repeat;
  background-position: 0%;
  background-size    : 200%;
  transform          : translate(var(--slash-position), var(--slash-position)) translateX(50%) rotate(var(--slash-deg)) translateX(-10%);
  transform-origin   : center center;
}

.c-paragraph {
  line-height: 2.1;
}

.c-paragraph--sparse {
  line-height: 2.4;
}

:where(.c-paragraph + .c-paragraph) {
  margin-top: 1em;
}

.c-progress {
  --button-size: 2em;
  --bar-height : 2px;
  --progress   : 0;
  display      : flex;
  flex-wrap    : nowrap;
  align-items  : center;
  line-height  : 1;
}

.c-progress__bar {
  --swiper-pagination-color: var(--color-text-primary);
  position                 : relative;
  flex-grow                : 1;
  height                   : var(--bar-height) !important;
  background-color         : rgba(var(--color-text-primary-rgb), 0.12);
}

.c-progress__bar>.swiper-pagination-progressbar-fill {
  transition-timing-function: var(--ease-out-quint);
}

.c-progress__button {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : var(--button-size);
  height         : var(--button-size);
  font-size      : var(--font-size-lg);
  color          : var(--color-text-primary);
  opacity        : 0.45;
}

.c-progress__button:hover {
  opacity: 1;
}

.c-signature {
  --position-size: var(--font-size-xl);
  --name-size    : var(--font-size-xxxl);
  --ruby-size    : var(--font-size-xs);
  display        : flex;
  flex-wrap      : wrap;
  row-gap        : var(--font-size-lg);
  column-gap     : var(--position-size);
  font-weight    : bold;
  line-height    : 1;
  letter-spacing : 0.25em;
}

.c-signature--vertical {
  flex-direction: column;
}

.c-signature:not(.c-signature--vertical) {
  align-items: flex-end;
}

.c-signature__position {
  font-size: var(--position-size);
}

.c-signature__name {
  display    : flex;
  column-gap : 0.3em;
  align-items: flex-end;
  font-size  : var(--name-size);
}

.c-signature__name ruby {
  position      : relative;
  display       : inline-flex;
  flex-direction: column;
  gap           : 0.25em;
  align-items   : center;
}

.c-signature__name ruby::before {
  font-size     : 0.5em;
  font-size     : var(--ruby-size);
  line-height   : 1;
  letter-spacing: 0.3em;
  white-space   : nowrap;
  content       : attr(data-ruby);
}

.c-signature__name rt {
  display: none;
}

.c-table {
  --border-color   : currentcolor;
  --header-bg-color: rgba(var(--color-bg-secondary-rgb), 43%);
  --padding-y      : 0.75em;
  --padding-x      : 0.85em;
  --gap-y          : 1em;
  --gap-x          : 0em;
  min-width        : 100%;
}

.c-table:where(body[data-theme-color=black] *) {
  --header-bg-color: rgba(var(--color-bg-secondary-rgb), 50%);
}

.c-table th {
  position     : relative;
  font-weight  : bold;
  text-align   : center;
  word-break   : keep-all;
  overflow-wrap: anywhere;
}

.c-table th:first-child {
  width    : 7em;
  min-width: 7em;
  padding  : var(--padding-y) calc(var(--padding-x) / 2);
}

.c-table th:not(:first-child) {
  padding: var(--padding-y) var(--padding-x);
}

.c-table th>span {
  display        : flex;
  align-items    : center;
  justify-content: center;
  min-height     : 4em;
  padding        : var(--padding-y) var(--padding-x);
}

.c-table th>span::before {
  position        : absolute;
  z-index         : -1;
  content         : "";
  background-color: var(--header-bg-color);
}

.c-table th>span:where(:first-child > *)::before {
  inset: var(--padding-y) calc(var(--padding-x) / 2);
}

.c-table th>span:where(:nth-child(n+2) > *)::before {
  inset: var(--padding-y) var(--padding-x);
}

.c-table td {
  padding: var(--padding-y) var(--padding-x);
}

.c-table>tbody>tr>th,
.c-table>tbody>tr>td {
  border-top: 1px solid var(--border-color);
}

.c-table>tbody>tr>th:where(:last-of-type > *),
.c-table>tbody>tr>td:where(:last-of-type > *) {
  border-bottom: 1px solid var(--border-color);
}

.c-table>tbody>tr>th {
  vertical-align: middle;
}

.c-table>tbody>tr>td {
  min-width: min(20em, 85 * var(--vw));
}

.c-term-list {
  display       : grid;
  container-type: inline-size;
}

.c-term-list__item {
  display              : grid;
  grid-template-columns: var(--term-width, 5.25em) 1fr;
  gap                  : 0.15em 3em;
  padding-top          : 0.75em;
  padding-bottom       : 0.75em;
}

@container (width < 500px) {
  .c-term-list__item {
    grid-template-columns: auto;
  }
}

.c-term-list__item:where(.c-term-list--border > *) {
  padding-top   : 0.85em;
  padding-bottom: 0.9em;
  border-bottom : 1px solid currentcolor;
}

.c-term-list__term {
  font-size  : var(--term-font-size, 1em);
  font-weight: bold;
}

.c-text-link {
  text-decoration      : underline;
  text-underline-offset: 0.15em;
  transition           : opacity 0.2s;
}

.c-text-link:hover {
  opacity: 0.65;
}

.c-text-link--no-border {
  text-decoration: none;
}

.c-tile {
  display  : flex;
  flex-wrap: wrap;
  gap      : var(--row-gap, 1em) var(--column-gap, 1em);
}

.c-tile__item {
  width: calc((100% - var(--column-gap, 1em) * (var(--column-count, 3) - 1)) / var(--column-count, 3));
}

.l-breadcrumb {
  font-size       : var(--font-size-sm);
  color           : var(--color-text-contrast);
  background-color: rgba(var(--color-primary-rgb), 65%);
}

.l-breadcrumb:where(body[data-theme-color=gold] *) {
  color           : rgba(var(--color-heading-primary-rgb), 67%);
  background-color: rgba(var(--color-bg-secondary-rgb), 67%);
}

.l-breadcrumb__list {
  display    : flex;
  align-items: center;
  padding    : 0.75em 0;
}

.l-breadcrumb__item {
  flex-shrink: 0;
}

.l-breadcrumb__item:nth-child(n+2)::before {
  margin : 0 1em;
  content: "/";
}

:root {
  --container-width        : 1240px;
  --container-width-md     : 980px;
  --container-width-lg     : 1620px;
  --container-padding      : 40px;
  --container-padding-left : var(--container-padding);
  --container-padding-right: var(--container-padding);
}

@media (min-width: 1025px) and (max-width: 1360px) {
  :root {
    --container-padding-right: calc(var(--side-button-width) + var(--container-padding));
  }
}

@media (max-width: 525px) {
  :root {
    --container-padding: 20px;
  }
}

.l-container {
  width        : var(--container-width);
  max-width    : calc(100 * var(--vw));
  padding-right: var(--container-padding-right);
  padding-left : var(--container-padding-left);
  margin-right : auto;
  margin-left  : auto;
}

.l-container--md {
  width: var(--container-width-md);
}

.l-container--lg {
  width: var(--container-width-lg);
}

.l-footer {
  --overlay-color : rgba(var(--color-primary-rgb), 0.7);
  --padding-bottom: 1.25em;
  position        : relative;
  z-index         : 0;
  padding-top     : 140px;
  padding-bottom  : var(--padding-bottom);
  color           : var(--color-text-contrast);
}

.l-footer:where(body[data-theme-color=black] *) {
  --overlay-color: rgba(var(--color-primary-rgb), 0.55);
}

.l-footer:where(body[data-theme-color=blue] *) {
  --overlay-color: rgba(var(--color-indigo-rgb), 65%);
}

@media (max-width: 1024px) {
  .l-footer {
    padding-bottom: calc(var(--padding-bottom) + var(--side-button-height));
  }
}

@media (max-width: 768px) {
  .l-footer {
    padding-top: 72px;
  }
}

.l-footer::before {
  position        : absolute;
  inset           : 0;
  z-index         : -1;
  content         : "";
  background-color: var(--overlay-color);
}

.l-footer__bg {
  position: absolute;
  top     : 0;
  left    : 0;
  z-index : -2;
  width   : 100%;
  height  : 100%;
  overflow: hidden;
}

.l-footer__bg>img {
  display    : block;
  width      : 100%;
  height     : 100%;
  object-fit : cover;
  will-change: transform;
}

.l-footer__logo {
  display   : block;
  width     : fit-content;
  width     : 100%;
  max-width : 640px;
  max-height: 90px;
  margin    : auto;
  transition: opacity 0.18s;
}

@media (max-width: 768px) {
  .l-footer__logo {
    width: 85%;
  }
}

.l-footer__logo:hover {
  opacity: 0.8;
}

.l-footer__logo>img {
  display   : block;
  width     : 100%;
  height    : auto;
  object-fit: contain;
}

.l-footer__inner {
  display              : grid;
  grid-template-columns: 1fr 1fr;
  gap                  : 3em;
  margin-top           : 100px;
}

@media (max-width: 768px) {
  .l-footer__inner {
    grid-template-columns: 1fr;
    margin-top           : 60px;
  }
}

.l-footer__main {
  container-type: inline-size;
}

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

.l-footer__tel__link {
  display      : flex;
  align-items  : baseline;
  width        : fit-content;
  margin-inline: auto;
  margin-top   : 0.1em;
  font-size    : min(5rem, 12.5cqw);
  font-weight  : var(--font-weight-bold);
  line-height  : 1.5;
}

.l-footer__tel__link small {
  margin-right: 0.35em;
  font-size   : var(--font-size-md);
  font-weight : var(--font-weight-regular);
}

.l-footer__buttons {
  --column-count : 2;
  --column-gap   : 2em;
  --row-gap      : 1.15em;
  justify-content: center;
  margin-top     : 1.5em;
}

@container (width <=500px) {
  .l-footer__buttons {
    --column-gap: 1em;
  }
}

.l-footer__buttons>a {
  flex     : 1;
  max-width: 320px;
}

@media (max-width: 525px) {
  .l-footer__buttons>a {
    --button-height: 3.75em;
    max-width      : 260px;
  }
}

.l-footer__address {
  margin-top: 2em;
}

@media (max-width: 525px) {
  .l-footer__address {
    font-weight: bold;
  }
}

.l-footer__schedule {
  margin-top: 1em;
}

@media (max-width: 768px) {
  .l-footer__map {
    margin-inline: calc(50% - 50 * var(--vw));
  }
}

.l-footer__map>iframe {
  width       : 100%;
  height      : unset;
  aspect-ratio: 1/0.8;
}

.l-footer__copyright {
  display    : block;
  width      : fit-content;
  margin-top : 1.75em;
  margin-left: auto;
  font-size  : var(--font-size-xs);
  line-height: 1.3;
}

@media (max-width: 768px) {
  .l-footer__copyright {
    margin-right: auto;
  }
}

.l-footer__sns {
  display   : flex;
  flex-wrap : wrap;
  gap       : 0.5em;
  margin-top: 1em;
  font-size : 30px;
}

@media (max-width: 768px) {
  .l-footer__sns {
    justify-content: center;
  }
}

.l-footer__sns__link {
  --size         : 2em;
  box-sizing     : content-box;
  display        : flex;
  align-items    : center;
  justify-content: center;
  aspect-ratio   : 1/1;
  padding        : 5px;
  text-align     : center;
  border-radius  : 50%;
  transition     : opacity 0.22s;
}

.l-footer__sns__link:hover {
  opacity: 0.55;
}

.l-footer__menu {
  padding-top: 4em;
}

@media (max-width: 768px) {
  .l-footer__menu {
    display: none;
  }
}

.l-footer__menu .l-menu {
  display        : flex;
  flex-wrap      : wrap;
  justify-content: center;

  /* 20260108 */
  width        : 924px;
  margin-inline: auto;
}

.l-footer__menu .l-menu__link {
  position   : relative;
  display    : block;
  padding    : 1em 1.5em;
  line-height: 1.5;
}

.l-footer__menu .l-menu__link::before {
  position        : absolute;
  inset           : 0;
  content         : "";
  background-color: currentcolor;
  opacity         : 0;
  transition      : opacity 0.18s;
}

.l-footer__menu .l-menu__link:hover::before {
  opacity: 0.2;
}

.l-footer__menu .l-menu__sub {
  display: none;
}

.l-header {
  position: fixed;
  top     : 0;
  left    : 0;
  z-index : var(--z-index-header);
  width   : 100%;
}

@media (max-width: 1024px) {
  .l-header {
    --height: 78px;
  }
}

@media (max-width: 768px) {
  .l-header {
    --height: 70px;
  }
}

@media (max-width: 525px) {
  .l-header {
    --height: 60px;
  }
}

.l-header__main {
  position                : relative;
  z-index                 : var(--z-index-header);
  color                   : var(--text-color);
  background              : var(--bg-color);
  transition              : color 0.2s ease, background 0.35s ease;
  --text-color            : var(--color-text-primary);
  --bg-color              : var(--color-bg-primary);
  --hover-text-color      : var(--color-text-contrast);
  --hover-bg-color        : rgba(var(--color-primary-rgb), 0.7);
  --popup-text-color      : var(--color-text-primary);
  --popup-bg-color        : rgba(var(--color-bg-primary-rgb), 0.8);
  --popup-hover-text-color: var(--color-text-contrast);
  --popup-hover-bg-color  : rgba(var(--color-primary-rgb), 0.8);
  --lead-color            : rgba(var(--color-text-primary-rgb), 0.4);
}

.l-header__main:where(body[data-theme-color=black] *) {
  --hover-bg-color      : var(--color-primary);
  --popup-hover-bg-color: var(--color-primary);
}

.l-header__main:where(body[data-theme-color=gold] *) {
  --bg-color            : rgba(var(--color-bg-primary-rgb), 0.9);
  --popup-text-color    : var(--color-heading-primary);
  --popup-hover-bg-color: rgba(var(--color-primary-rgb), 0.56);
}

.l-header__main.is-contrast {
  --text-color            : var(--color-text-contrast);
  --bg-color              : transparent;
  --hover-bg-color        : rgba(var(--color-primary-rgb), 0.65);
  --popup-text-color      : var(--color-text-contrast);
  --popup-bg-color        : rgba(var(--color-primary-rgb), 0.75);
  --popup-hover-text-color: var(--color-text-contrast);
  --popup-hover-bg-color  : rgba(var(--color-bg-primary-rgb), 0.2);
  --lead-color            : rgba(var(--color-text-contrast-rgb), 0.4);
}

.l-header__main.is-contrast:where(body[data-theme-color=black] *) {
  --hover-bg-color: rgba(var(--color-bg-primary-rgb), 0.2);
}

@media (max-width: 1024px) {
  .l-header__main.is-contrast:where(body[data-theme-color=black] *) {
    --popup-bg-color: rgba(var(--color-primary-rgb), 0.88);
  }
}

@media (min-width: 1025px) {
  .l-header__main.is-contrast:where(body[data-theme-color=gold] *):not([data-back-element=footer]) {
    --text-color            : var(--color-brun);
    --popup-text-color      : var(--color-heading-primary);
    --popup-bg-color        : rgba(var(--color-bg-secondary-rgb), 0.75);
    --popup-hover-text-color: var(--color-heading-primary);
    --popup-hover-bg-color  : rgba(var(--color-primary-rgb), 0.27);
    --lead-color            : rgba(var(--color-text-primary-rgb), 0.5);
  }
}

@media (max-width: 1024px) {
  .l-header__main.is-contrast:where(body[data-theme-color=gold] *) {
    --popup-bg-color: rgba(var(--color-primary-rgb), 0.8);
  }
}

.l-header__main.is-contrast .c-button01 {
  --button-color      : var(--color-text-contrast);
  --button-text-color : var(--color-text-primary);
  --button-hover-color: rgba(var(--color-primary-rgb), 25%);
}

.l-header__inner {
  container-type : inline-size;
  position       : relative;
  display        : flex;
  column-gap     : 2em;
  align-items    : center;
  justify-content: space-between;
  height         : var(--height);
  padding-right  : var(--container-padding);
}

@media (max-width: 1024px) {
  .l-header__inner {
    column-gap: 1.2em;
    padding   : 0;
  }
}

.l-header__logo {
  opacity            : 0;
  animation-name     : fade-in-right;
  animation-duration : 1s;
  animation-delay    : 0.95s;
  animation-fill-mode: forwards;
}

@media (min-width: 1025px) {
  .l-header__logo {
    max-width: 33%;
  }
}

@media (max-width: 1024px) {
  .l-header__logo {
    flex     : 1;
    max-width: 450px;
  }
}

.l-header__logo__link {
  display   : grid;
  width     : fit-content;
  transition: opacity 0.3s;
}

@media (max-width: 1024px) {
  .l-header__logo__link {
    flex        : 1;
    max-width   : 450px;
    padding     : 6px;
    padding-left: calc(var(--container-padding) * 0.75);
  }
}

.l-header__logo__link:hover {
  opacity: 0.65;
}

.l-header__logo__link>img {
  position   : relative;
  display    : block;
  grid-row   : 1/2;
  grid-column: 1/2;
  width      : auto;
  max-width  : 100%;
  height     : auto;
  transition : opacity 0.2s ease;
}

@media (max-width: 1024px) {
  .l-header__logo__link>img {
    height: auto;
  }
}

.js-has-pseudo [csstools-has-1a-30-19-2w-2t-2p-2s-2t-36-2n-2n-31-2p-2x-32-1m-32-33-38-14-1a-2x-37-19-2r-33-32-38-36-2p-37-38-15-w-1a-30-19-2w-2t-2p-2s-2t-36-2n-2n-30-33-2v-33-2n-2n-30-2x-32-2z-1m-2w-2p-37-14-2x-31-2v-1a-2x-37-19-2r-33-32-38-36-2p-37-38-15-w-1q-w-2x-31-2v-1a-2x-37-19-2r-33-32-38-36-2p-37-38]:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(does-not-exist):not(does-not-exist) {
  opacity: 0;
}

.l-header__main:not(.is-contrast) .l-header__logo__link:has(img.is-contrast)>img.is-contrast {
  opacity: 0;
}

.js-has-pseudo [csstools-has-1a-30-19-2w-2t-2p-2s-2t-36-2n-2n-31-2p-2x-32-1a-2x-37-19-2r-33-32-38-36-2p-37-38-w-1a-30-19-2w-2t-2p-2s-2t-36-2n-2n-30-33-2v-33-2n-2n-30-2x-32-2z-1m-2w-2p-37-14-2x-31-2v-1a-2x-37-19-2r-33-32-38-36-2p-37-38-15-w-1q-w-2x-31-2v-1m-32-33-38-14-1a-2x-37-19-2r-33-32-38-36-2p-37-38-15]:not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(.does-not-exist):not(does-not-exist):not(does-not-exist) {
  opacity: 0;
}

.l-header__main.is-contrast .l-header__logo__link:has(img.is-contrast)>img:not(.is-contrast) {
  opacity: 0;
}

.l-header__lead {
  z-index            : -1;
  width              : fit-content;
  margin             : 3px 1.25em 0.2em auto;
  font-size          : var(--font-size-xs);
  color              : var(--lead-color);
  opacity            : 0;
  animation-name     : fade-in-left;
  animation-duration : 1s;
  animation-delay    : 1.25s;
  animation-fill-mode: forwards;
}

@media (max-width: 1024px) {
  .l-header__lead {
    display: none;
  }
}

.l-header__body {
  position: relative;
  z-index : 0;
}

@media (max-width: 1024px) {
  .l-header__body {
    display: none;
  }
}

.l-header__menu .l-menu {
  display        : flex;
  flex-wrap      : wrap;
  justify-content: flex-end;
  min-height     : 4.5em;
}

.l-header__menu .l-menu__item {
  position : relative;
  z-index  : 0;
  display  : flex;
  font-size: var(--font-size-sm);
}

.js-has-pseudo [csstools-has-1a-30-19-2w-2t-2p-2s-2t-36-2n-2n-31-2t-32-39-w-1a-30-19-31-2t-32-39-2n-2n-2x-38-2t-31-1m-2w-2p-37-14-1a-30-19-31-2t-32-39-2n-2n-37-39-2q-15]:not(.does-not-exist):not(.does-not-exist) {
  z-index: 1;
}

.l-header__menu .l-menu__item:has(.l-menu__sub) {
  z-index: 1;
}

/* 2025-12-11 :: ヘッダーナビから項目を非表示 */
.l-header__spmenu__inner .l-menu__item.header_none,
.l-header__nav .l-menu__item.header_none {
  display: none;
}

.l-header__menu .l-menu__link {
  display            : flex;
  align-items        : center;
  min-height         : 2.5em;
  padding            : 0.65em 1.25em;
  white-space        : nowrap;
  opacity            : 0;
  transition         : all 0.2s;
  animation-name     : fade-in-left;
  animation-duration : 1s;
  animation-delay    : 1.25s;
  animation-fill-mode: forwards;
}

.l-header__menu .l-menu__link:is(:hover > *) {
  color     : var(--hover-text-color);
  background: var(--hover-bg-color);
}

.l-header__menu .l-menu__link:is(.is-contrast:not([data-back-element=footer]) :not(:hover) > *):where(body[data-theme-color=gold] *) {
  text-shadow: 0 0 1.5px #fff, 0.5px 0.5px 1.5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff;
}

.l-header__menu .l-menu__link:is(.is-contrast:not([data-back-element=footer]) :not(:hover) > *):where(body[data-theme-color=blue] *) {
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.2), 0.5px 0.5px 5px rgba(var(--color-noir-rgb), 30%), 0.5px 0.5px 7px rgba(var(--color-navy-rgb), 40%);
}

.l-header__menu .l-menu__sub {
  position               : absolute;
  top                    : 100%;
  left                   : 0;
  color                  : var(--popup-text-color);
  white-space            : nowrap;
  visibility             : hidden;
  background-color       : var(--popup-bg-color);
  -webkit-backdrop-filter: blur(4px) grayscale(80%);
  backdrop-filter        : blur(4px) grayscale(80%);
  opacity                : 0;
  transition             : background 0.3s;
}

.l-header__menu .l-menu__sub__item {
  position: relative;
}

.l-header__menu .l-menu__sub__link {
  position     : relative;
  z-index      : 0;
  display      : flex;
  gap          : 0.75em;
  align-items  : center;
  padding      : 0.75em 1.35em;
  padding-right: 2em;
  transition   : all 0.18s;
}

.l-header__menu .l-menu__sub__link:hover {
  color     : var(--popup-hover-text-color);
  background: var(--popup-hover-bg-color);
}

.l-header__menu .l-menu__sub__link::before {
  position  : relative;
  width     : 0.65em;
  height    : 1px;
  content   : "";
  background: currentcolor;
  opacity   : 0.8;
}

.l-header__menu .l-menu__sub__text {
  position  : relative;
  transition: transform 0.18s;
}

.l-header__menu .l-menu__sub__text:is(:hover > *) {
  transform: translateX(0.25em);
}

.l-header__toggle {
  --button-size      : 5.5rem;
  position           : relative;
  box-sizing         : content-box;
  display            : grid;
  width              : var(--button-size);
  height             : var(--button-size);
  padding-right      : var(--container-padding);
  padding-left       : 0.5em;
  margin-left        : auto;
  opacity            : 0;
  animation-name     : fade-in-left;
  animation-duration : 1s;
  animation-delay    : 1.15s;
  animation-fill-mode: forwards;
}

@media (min-width: 1025px) {
  .l-header__toggle {
    display: none;
  }
}

@media (max-width: 525px) {
  .l-header__toggle {
    --button-size: 4.2rem;
  }
}

.l-header__toggle__item {
  position       : relative;
  display        : flex;
  grid-row       : 1/2;
  grid-column    : 1/2;
  align-items    : center;
  justify-content: center;
  width          : 100%;
  height         : 100%;
  opacity        : 0;
}

.l-header__toggle__open {
  --step-size    : 20%;
  display        : flex;
  flex-direction : column;
  gap            : calc(var(--button-size) * 0.18);
  align-items    : flex-end;
  justify-content: center;
  width          : 100%;
  height         : 100%;
}

.l-header__toggle__open:where(body[data-theme-color=gold] *) {
  color: rgba(var(--color-primary-rgb), 75%);
}

.l-header__toggle__open:where(body[data-theme-color=gold] *):is(.l-header__main.is-contrast[data-back-element=footer] *) {
  color: var(--colot-text-contrast);
}

.l-header__toggle__open>span {
  display         : block;
  height          : 1.5px;
  background-color: currentcolor;
}

.l-header__toggle__open>span:nth-child(1) {
  width: calc(100% - var(--step-size) * 2);
}

.l-header__toggle__open>span:nth-child(2) {
  width: calc(100% - var(--step-size));
}

.l-header__toggle__open>span:nth-child(3) {
  width: 100%;
}

.l-header__toggle__close {
  position: relative;
  display : block;
  width   : 100%;
  height  : 100%;
}

.l-header__toggle__close>span {
  position        : absolute;
  top             : 50%;
  right           : 5%;
  display         : block;
  width           : 78%;
  height          : 1.5px;
  background-color: currentcolor;
  transform-origin: center center;
}

.l-header__toggle__close>span:nth-child(1) {
  transform: rotate(45deg);
}

.l-header__toggle__close>span:nth-child(2) {
  transform: rotate(-45deg);
}

.l-header__spmenu {
  position               : absolute;
  top                    : 0;
  left                   : 0;
  z-index                : -1;
  width                  : 100%;
  height                 : 100vh;
  height                 : 100dvh;
  padding-top            : calc(var(--height) + 1em);
  padding-bottom         : 1em;
  color                  : var(--popup-text-color);
  visibility             : hidden;
  background             : var(--popup-bg-color);
  -webkit-backdrop-filter: blur(4px) grayscale(100%) contrast(60%);
  backdrop-filter        : blur(4px) grayscale(100%) contrast(60%);
  opacity                : 0;
}

@media (min-width: 1025px) {
  .l-header__spmenu {
    display: none;
  }
}

.l-header__spmenu .simplebar-content-wrapper {
  overscroll-behavior: contain;
}

.l-header__spmenu__scroller {
  width  : 100%;
  height : 100%;
  padding: 0 var(--container-padding) 2em;
}

.l-header__spmenu__inner {
  max-width    : 620px;
  margin-inline: auto;
}

.l-header__spmenu .l-menu {
  display: grid;
}

.l-header__spmenu .l-menu__link {
  position   : relative;
  display    : block;
  padding    : 1em 0;
  font-weight: bold;
  line-height: 1.3;
}

.l-header__spmenu .l-menu__link::after {
  position        : absolute;
  bottom          : 0;
  left            : 0;
  width           : 100%;
  height          : 1px;
  content         : "";
  background-color: currentcolor;
  opacity         : 0.15;
}

.l-header__spmenu .l-menu__sub {
  --link-padding       : 0.6em;
  --line-height        : 1.35;
  display              : grid;
  grid-template-columns: calc(50% - 1em) 1fr;
  column-gap           : 0.5em;
  padding-left         : 1em;
  margin-top           : 1em;
  margin-bottom        : 1em;
  font-size            : var(--font-size-sm);
}

.l-header__spmenu .l-menu__sub__link {
  display    : flex;
  gap        : 0.75em;
  align-items: center;
  padding    : 0.6em 0;
  font-weight: bold;
}

.l-header__spmenu .l-menu__sub__link::before {
  position        : relative;
  width           : 0.65em;
  height          : 1px;
  content         : "";
  background-color: currentcolor;
  opacity         : 0.8;
}

.l-header__spmenu .l-menu__sub__text {
  position  : relative;
  opacity   : 0.7;
  transition: all 0.18s;
}

.l-header__spmenu .l-menu__sub__text:is(:hover > *) {
  opacity  : 1;
  transform: translateX(0.25em);
}

.l-image-section {
  --direction   : row;
  --align       : flex-start;
  --image-width : 530px;
  --row-gap     : 2em;
  --column-gap  : 4cqw;
  container-type: inline-size;
  container-name: image-section;
}

.l-image-section--reverse {
  --direction: row-reverse;
}

.l-image-section--center-y {
  --align: center;
}

.l-image-section--with-bg {
  --gap-top          : 4em;
  --gap-left         : 5em;
  --gap-right        : calc(50cqw - (50 * var(--vw)));
  --bg-padding-top   : 3em;
  --bg-padding-bottom: 3em;
}

.l-image-section--with-bg:where(.l-image-section--contain) {
  --gap-right: 0;
}

.l-image-section--with-border {
  --border: var(--border-width, 1px) solid var(--border-color, currentcolor);
}

.l-image-section__inner {
  position      : relative;
  display       : flex;
  flex-direction: var(--direction);
  gap           : var(--row-gap) var(--column-gap);
  align-items   : var(--align);
}

.l-image-section__inner:where(:not(.l-image-section--md, .l-image-section--sm, .l-image-section--xs) > *) {
  --image-width: min(530px, 45%);
}

@container image-section (max-width: 850px) {
  .l-image-section__inner:where(:not(.l-image-section--md, .l-image-section--sm, .l-image-section--xs) > *) {
    --image-width : min(520px, 100%);
    --direction   : column;
    --align       : center;
    --gap-left    : calc(50cqw - (50 * var(--vw)));
    --border      : none;
    --border-space: 0;
  }
}

.l-image-section__inner:where(.l-image-section--md > *) {
  --image-width: min(420px, 40%);
}

@container image-section (max-width: 750px) {
  .l-image-section__inner:where(.l-image-section--md > *) {
    --image-width : min(380px, 100%);
    --direction   : column;
    --align       : center;
    --gap-left    : calc(50cqw - (50 * var(--vw)));
    --border      : none;
    --border-space: 0;
  }
}

.l-image-section__inner:where(.l-image-section--sm > *) {
  --image-width: min(320px, 35%);
}

@container image-section (max-width: 650px) {
  .l-image-section__inner:where(.l-image-section--sm > *) {
    --image-width : min(320px, 100%);
    --direction   : column;
    --align       : center;
    --gap-left    : calc(50cqw - (50 * var(--vw)));
    --border      : none;
    --border-space: 0;
  }
}

@container image-section (max-width: 360px) {
  .l-image-section__inner:where(.l-image-section--sm > *) {
    --image-width: 100%;
  }
}

.l-image-section__inner:where(.l-image-section--xs > *) {
  --image-width: min(230px, 35%);
}

@container image-section (max-width: 550px) {
  .l-image-section__inner:where(.l-image-section--xs > *) {
    --image-width : min(280px, 100%);
    --direction   : column;
    --align       : center;
    --gap-left    : calc(50cqw - (50 * var(--vw)));
    --border      : none;
    --border-space: 0;
  }
}

.l-image-section__inner:where(.l-image-section--with-bg > *) {
  z-index       : 0;
  padding-top   : calc(var(--gap-top) + var(--bg-padding-top));
  padding-bottom: var(--bg-padding-bottom);
}

.l-image-section__inner:where(.l-image-section--with-bg > *)::before {
  position        : absolute;
  inset           : var(--gap-top) var(--gap-right) 0 var(--gap-left);
  z-index         : -1;
  content         : "";
  background-color: var(--bg-color, var(--color-bg-primary));
}

.l-image-section__main {
  flex : 1;
  order: 1;
  width: 100%;
}

.l-image-section__main:where(.l-image-section--with-border *) {
  align-self    : stretch;
  padding-top   : var(--border-space, 1.5em);
  padding-bottom: var(--border-space, 1.5em);
  border-top    : var(--border);
  border-bottom : var(--border);
}

.l-image-section__heading {
  margin-bottom: 1em;
  font-size    : var(--font-size-xl);
  font-weight  : bold;
  color        : var(--heading-color, var(--color-heading-secondary));
}

.l-image-section__image {
  order        : -1;
  width        : 100%;
  max-width    : var(--image-width);
  margin-inline: auto;
}

.l-image-section__image:where(.l-image-section--with-bg *) {
  margin-top: calc((var(--gap-top) + var(--bg-padding-top)) * -1);
}

.l-image-section__image__main {
  display: block;
  width  : 80%;
}

.l-image-section__image__sub {
  display    : block;
  width      : 60%;
  margin-top : -16%;
  margin-left: auto;
}

.l-mv {
  --initial-opacity: 0.68;
  --overlay-color  : rgba(var(--color-grey-dark-rgb), 40%);
  position         : relative;
  z-index          : 0;
  color            : var(--color-text-contrast);
}

.l-mv:where(body[data-theme-color=black] *) {
  --overlay-color: rgba(var(--color-primary-rgb), 65%);
}

.l-mv:where(body[data-theme-color=gold] *) {
  --overlay-color: rgba(var(--color-cream-rgb), 40%);
}

.l-mv:where(body[data-theme-color=blue] *) {
  --overlay-color: linear-gradient(to bottom, rgba(var(--color-primary-rgb), 25%), rgba(var(--color-primary-rgb), 13%) 25%);
}

@keyframes mv-fade-in {
  0% {
    opacity: var(--initial-opacity);
  }

  100% {
    opacity: 1;
  }
}

.l-mv::before {
  position  : absolute;
  inset     : 0;
  z-index   : -1;
  content   : "";
  background: var(--overlay-color);
  opacity   : var(--initial-opacity);
  animation : mv-fade-in forwards 2.55s 0.1s var(--ease-out-cubic);
}

.l-mv__bg {
  position  : absolute;
  top       : 0;
  left      : 0;
  z-index   : -2;
  display   : block;
  width     : 100%;
  height    : 100%;
  object-fit: cover;
}

.l-mv__inner {
  display    : flex;
  align-items: center;
  height     : 500px;
}

@media (max-width: 1024px) {
  .l-mv__inner {
    height: 400px;
  }
}

@media (max-width: 768px) {
  .l-mv__inner {
    height: 300px;
  }
}

.l-mv__title {
  --heading-color: currentcolor;
}

.l-mv__title:where(body[data-theme-color=gold] *) {
  --heading-color: rgba(var(--color-biscuit-rgb), 77%);
}

.l-mv__title:where(body[data-theme-color=blue] *) {
  filter: drop-shadow(1px 1px 4px rgba(0, 0, 0, 0.1)) drop-shadow(2px 2px 10px rgba(var(--color-primary-rgb), 27%));
}

.l-outline {
  z-index: 0;
}

.l-outline__main {
  position   : relative;
  padding-top: 120px;
}

@media (max-width: 768px) {
  .l-outline__main {
    padding-bottom: 5em;
  }
}

.l-outline__main::before {
  position        : absolute;
  inset           : 0;
  z-index         : -1;
  content         : "";
  background-color: rgba(var(--color-primary-rgb), 70%);
}

.l-outline__main:where(body[data-theme-color=black] *)::before {
  background-color: rgba(var(--color-charcoal-rgb), 70%);
}

.l-outline__main:where(body[data-theme-color=gold] *)::before {
  background-color: rgba(var(--color-stone-rgb), 65%);
}

.l-outline__main:where(body[data-theme-color=blue] *)::before {
  background-color: rgba(var(--color-indigo-rgb), 65%);
}

.l-outline__bg {
  position: absolute;
  top     : 0;
  left    : 0;
  z-index : -2;
  width   : 100%;
  height  : 100%;
  overflow: hidden;
}

.l-outline__bg>img {
  display    : block;
  width      : 100%;
  height     : 100%;
  object-fit : cover;
  will-change: transform;
}

.l-outline__bg>img:where(body[data-theme-color=gold] *) {
  filter: grayscale(80%) sepia(25%);
}

.l-outline__inner {
  position: relative;
  z-index : 0;
}

.l-outline__header {
  --heading-color: var(--color-text-contrast);
}

.l-outline__body {
  container-type: inline-size;
  margin-top    : 3em;
}

.l-outline__box {
  position   : relative;
  width      : 82cqw;
  padding    : 5em 0 3em var(--container-padding);
  margin-left: auto;
}

@container (width < 600px) {
  .l-outline__box {
    width      : 90cqw;
    padding-top: 2em;
  }
}

.l-outline__box::before {
  position        : absolute;
  inset           : 0 0 -1px;
  z-index         : -1;
  margin-right    : calc(50cqw - 50 * var(--vw) + (var(--container-padding-left) - var(--container-padding-right)) / 2);
  content         : "";
  background-color: var(--color-bg-primary);
}

.l-outline__list {
  max-width  : 760px;
  margin-left: auto;
}

@container (width >=500px) {
  .l-outline__list dt {
    text-align-last: justify;
  }
}

.l-outline__sub {
  position      : relative;
  padding-bottom: 180px;
}

.l-outline__sub::before {
  position           : absolute;
  bottom             : 0;
  left               : 0;
  z-index            : -1;
  display            : block;
  width              : 100%;
  height             : 800px;
  max-height         : 60%;
  content            : "";
  -webkit-mask-image : linear-gradient(to bottom, transparent, #000 35%);
  mask-image         : linear-gradient(to bottom, transparent, #000 35%);
  background-image   : var(--bg-primary);
  background-position: center center;
  background-size    : cover;
}

.l-outline__grid {
  container-type: inline-size;
  position      : relative;
  display       : grid;
  gap           : 3.5em;
  margin-top    : 120px;
}

@media (max-width: 768px) {
  .l-outline__grid {
    margin-top: 80px;
  }
}

.l-outline__row {
  --column-count : 3;
  --column-gap   : 3cqw;
  --row-gap      : max(3cqw, 24px);
  display        : flex;
  flex-wrap      : wrap;
  gap            : var(--row-gap) var(--column-gap);
  justify-content: center;
}

@container (width < 850px) {
  .l-outline__row {
    --column-count: 2;
  }
}

@container (width < 700px) {
  .l-outline__row {
    --column-count: 1;
  }
}

.l-outline__column {
  display       : flex;
  width         : calc((100% - var(--column-gap) * (var(--column-count) - 1)) / var(--column-count));
  max-width     : 500px;
  container-type: inline-size;
}

.l-outline__extra {
  --heading-size  : 2.4rem;
  --gap           : var(--heading-size) * 0.62;
  position        : relative;
  z-index         : 0;
  flex            : 1;
  padding         : 0 2em 2em;
  margin-top      : calc(var(--gap));
  background-color: rgba(var(--color-bg-secondary-rgb), 43%);
}

.l-outline__extra__heading {
  position     : relative;
  z-index      : 1;
  margin-bottom: calc(var(--gap) * -2);
  font-size    : var(--heading-size);
  font-weight  : bold;
  line-height  : 1.3;
  text-align   : center;
  transform    : translateY(calc(var(--gap) * -1));
}

.l-outline__extra__heading:where(body[data-theme-color=blue] *) {
  color: var(--color-heading-secondary);
}

.l-outline__extra__body {
  position   : relative;
  z-index    : 0;
  padding-top: 2em;
  font-size  : var(--font-size-sm);
}

.l-outline__banner {
  display   : block;
  flex      : 1;
  transition: opacity 0.2s;
}

.l-outline__banner:hover {
  opacity: 0.65;
}

.l-outline__sns {
  --chip-size             : 1.75em;
  --height                : 6em;
  --sns-button-color      : var(--color-blue-grey);
  --sns-button-hover-color: rgba(var(--color-bg-primary-rgb), 30%);
  position                : relative;
  display                 : flex;
  align-items             : center;
  justify-content         : center;
  width                   : 100%;
  height                  : var(--height);
  padding                 : 2em 1.5em;
  padding-right           : 4.5em;
  overflow                : hidden;
  clip-path               : polygon(0 0, 100% 0, 100% calc(100% - var(--chip-size)), calc(100% - var(--chip-size)) 100%, 0 100%);
  font-size               : var(--font-size-lg);
  line-height             : 1;
  color                   : var(--color-text-contrast);
  background              : var(--sns-button-color);
  position                : relative;
}

.l-outline__sns::before {
  position                 : absolute;
  top                      : 0;
  left                     : 0;
  z-index                  : -1;
  width                    : calc(100% + var(--height));
  height                   : 100%;
  margin-left              : calc(var(--height) * 0.5 * -1);
  cursor                   : inherit;
  content                  : "";
  background               : var(--sns-button-hover-color);
  transform                : skewX(var(--slash-deg));
  animation-name           : button-hover-out;
  animation-duration       : 0.6s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.l-outline__sns:hover::before {
  animation-name           : button-hover;
  animation-duration       : 0.6s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.l-outline__sns:where(body[data-theme-color=gold] *) {
  --sns-button-color: linear-gradient(var(--slash-deg), var(--color-wheat), var(--color-ocher));
}

.l-outline__sns:where(body[data-theme-color=blue] *) {
  --sns-button-color: rgba(var(--color-primary-rgb), 65%);
}

@container (width < 500px) {
  .l-outline__sns {
    --height: 5.65em;
  }
}

@container (width < 350px) {
  .l-outline__sns {
    font-size: var(--font-size-md);
  }
}

.l-outline__sns__icon {
  margin-right: 1.5em;
  font-size   : 30px;
}

.l-outline__sns__text {
  display       : block;
  min-width     : 7em;
  font-weight   : bold;
  text-align    : center;
  letter-spacing: 0.25em;
}

.l-outline__sns__arrow {
  position  : absolute;
  top       : 50%;
  right     : 12cqw;
  transition: transform 0.25s var(--ease-out-quart);
  transform : translateY(-50%);
}

.l-outline__sns:hover .l-outline__sns__arrow {
  transform: translateY(-50%) translateX(25%);
}

.l-outline__calendar {
  container-type: inline-size;
  margin-top    : min(80px, 6em);
}

.l-outline__calendar__list {
  --column-count : 2;
  --column-gap   : 3cqw;
  --row-gap      : max(5cqw, 32px);
  display        : flex;
  flex-wrap      : wrap;
  gap            : var(--row-gap) var(--column-gap);
  justify-content: center;
}

@container (width < 760px) {
  .l-outline__calendar__list {
    --column-count: 1;
  }
}

.l-outline__calendar__item {
  position    : relative;
  width       : calc((100% - var(--column-gap) * (var(--column-count) - 1)) / var(--column-count));
  max-width   : 700px;
  min-height  : 420px;
  aspect-ratio: 1/0.78;
}

.l-outline__calendar__item>iframe {
  position: absolute;
  top     : 0;
  left    : 0;
  width   : 100%;
  height  : 100%;
}

.l-outline__calendar__button {
  margin-top  : 3em;
  margin-right: auto;
  margin-left : auto;
}

.l-nap__standard__list {
  --row-gap: 0;
}

.l-nap__standard__link {
  display   : block;
  width     : fit-content;
  margin-top: 0.75em;
}

.l-schedule {
  container-type: inline-size;
}

.l-schedule>table {
  width: 100%;
}

@container (width < 500px) {
  .l-schedule>table {
    font-size: var(--font-size-sm);
  }
}

@container (width < 380px) {
  .l-schedule>table {
    font-size: var(--font-size-xs);
  }
}

.l-schedule>table th,
.l-schedule>table td {
  font-weight: normal;
  line-height: 1;
  text-align : center;
}

.l-schedule>table th:first-child,
.l-schedule>table td:first-child {
  width      : 23%;
  white-space: nowrap;
}

.l-schedule>table thead th {
  padding: 1em 0.5em;
}

.l-schedule>table tbody th:first-child {
  text-align: left;
}

.l-schedule>table tbody tr {
  --padding-x: 0.5em;
  --padding-y: 0.8em;
}

.l-schedule>table tbody tr th,
.l-schedule>table tbody tr td {
  position: relative;
  padding : var(--padding-y) var(--padding-x);
}

.l-schedule>table tbody tr td:where(body[data-theme-color=gold] *) {
  color: var(--accent-color, currentcolor);
}

.l-schedule>table tbody tr:is(:first-of-type, :last-of-type) th::before,
.l-schedule>table tbody tr:is(:first-of-type, :last-of-type) td::before {
  position        : absolute;
  left            : 0;
  width           : 100%;
  height          : 1px;
  content         : "";
  background-color: var(--border-color, currentcolor);
  transition      : background 0.2s;
}

.l-schedule>table tbody tr:first-of-type th,
.l-schedule>table tbody tr:first-of-type td {
  padding-top: calc(var(--padding-y) * 1.5);
}

.l-schedule>table tbody tr:first-of-type th::before,
.l-schedule>table tbody tr:first-of-type td::before {
  top: 0;
}

.l-schedule>table tbody tr:last-of-type th,
.l-schedule>table tbody tr:last-of-type td {
  padding-bottom: calc(var(--padding-y) * 1.5);
}

.l-schedule>table tbody tr:last-of-type th::before,
.l-schedule>table tbody tr:last-of-type td::before {
  bottom: 0;
}

.l-schedule__note {
  padding: 0.5em;
}

@container (width < 500px) {
  .l-schedule__note {
    font-size: var(--font-size-sm);
  }
}

@media (min-width: 1025px) {
  :root {
    --side-button-width : 84px;
    --side-button-height: 84px;
  }
}

@media (max-width: 1024px) {
  :root {
    --side-button-width : auto;
    --side-button-height: 70px;
  }
}

.l-side {
  position: fixed;
  z-index : 2;
}

@media (min-width: 1025px) {
  .l-side {
    top  : 125px;
    right: 0;
  }
}

@media (max-width: 1024px) {
  .l-side {
    bottom: 0;
    left  : 0;
    width : 100%;
  }
}

.l-side__main {
  --button-color     : rgba(var(--color-primary-rgb), 90%);
  position           : relative;
  z-index            : 1;
  opacity            : 0;
  animation-name     : fade-in-left;
  animation-duration : 0.8s;
  animation-delay    : 1.55s;
  animation-fill-mode: forwards;
}

.l-side__main.is-contrast {
  --button-color: rgba(var(--color-primary-rgb), 95%);
}

.l-side__main:where(body[data-theme-color=black] *) {
  --button-color: rgba(var(--color-primary-rgb), 100%);
}

.l-side__main:where(body[data-theme-color=black] *).is-contrast {
  --button-color: rgba(var(--color-primary-rgb), 100%);
}

.l-side__main:where(body[data-theme-color=gold] *) {
  --button-color: rgba(var(--color-biscuit-rgb), 93%);
}

.l-side__main:where(body[data-theme-color=gold] *).is-contrast {
  --button-color: rgba(var(--color-biscuit-rgb), 93%);
}

.l-side__main:where(body[data-theme-color=blue] *) {
  --button-color: rgba(var(--color-fog-blue-rgb), 97%);
}

.l-side__main:where(body[data-theme-color=blue] *).is-contrast {
  --button-color: rgba(var(--color-fog-blue-rgb), 95%);
}

@media (max-width: 1024px) {
  .l-side__main {
    animation-name    : fade-in-up;
    animation-duration: 0.7s;
  }
}

.l-side__list {
  display   : flex;
  row-gap   : 0.5em;
  column-gap: 0;
}

@media (min-width: 1025px) {
  .l-side__list {
    flex-direction: column;
    align-items   : flex-end;
    font-size     : var(--font-size-xs);
  }
}

@media (max-width: 1024px) {
  .l-side__list {
    justify-content: flex-end;
    font-size      : var(--font-size-md);
  }
}

@media (max-width: 768px) {
  .l-side__list {
    font-size: var(--font-size-sm);
  }
}

@media (max-width: 525px) {
  .l-side__list {
    font-size: var(--font-size-xs);
  }
}

.l-side__item {
  position: relative;
  width   : var(--side-button-width);
  height  : var(--side-button-height);
}

@media (max-width: 1024px) {
  .l-side__item {
    flex-grow: 1;
    max-width: 250px;
  }
}

@media (min-width: 769px) {
  .l-side__item--tel {
    display: none;
  }
}

.l-side__item--schedule {
  flex-grow: 0;
  width    : var(--side-button-height);
}

.l-side__button {
  position        : relative;
  position        : relative;
  z-index         : 0;
  display         : block;
  width           : var(--side-button-width);
  height          : var(--side-button-height);
  overflow        : hidden;
  color           : var(--color-text-contrast);
  background-color: var(--button-color);
  transition      : background 0.5s ease;
  container-type  : inline-size;
}

.l-side__button::before {
  position                 : absolute;
  top                      : 0;
  left                     : 0;
  z-index                  : -1;
  width                    : calc(100% + var(--side-button-height));
  height                   : 100%;
  margin-left              : calc(var(--side-button-height) * 0.5 * -1);
  cursor                   : inherit;
  content                  : "";
  background               : rgba(var(--color-text-contrast-rgb), 35%);
  transform                : skewX(var(--slash-deg));
  animation-name           : button-hover-out;
  animation-duration       : 0.5s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.l-side__button:hover::before {
  animation-name           : button-hover;
  animation-duration       : 0.5s;
  animation-timing-function: var(--ease-out-quart);
  animation-fill-mode      : forwards;
}

.l-side__button__inner {
  position       : relative;
  z-index        : 1;
  display        : flex;
  gap            : 0.65em;
  align-items    : center;
  justify-content: center;
  width          : 100%;
  height         : 100%;
  padding        : 0.5em;
  line-height    : 1.35;
}

@container (width <=120px) {
  .l-side__button__inner {
    flex-direction: column;
  }
}

.l-side__button__icon {
  font-size: 2.1em;
}

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

@container (width <=86px) {
  .l-side__button__text {
    font-size: var(--font-size-xxs);
  }

  .l-side__button__text__extra {
    display: none;
  }
}

.l-side__schedule {
  position  : absolute;
  transition: transform 0.6s var(--ease-out-quint);
}

@media (min-width: 1025px) {
  .l-side__schedule {
    left     : 100%;
    transform: translateX(0);
  }

  .l-side__schedule.is-open {
    transform: translateX(-100%);
  }
}

@media (max-width: 1024px) {
  .l-side__schedule {
    top      : 100%;
    right    : 0;
    transform: translateY(0);
  }

  .l-side__schedule.is-open {
    transform: translateY(-100%);
  }
}

.l-side__schedule__toggle {
  position             : absolute;
  display              : grid;
  grid-template-rows   : 1fr;
  grid-template-columns: 1fr;
  width                : var(--side-button-height);
  height               : var(--side-button-height);
  font-size            : var(--font-size-xs);
}

@media (min-width: 1025px) {
  .l-side__schedule__toggle {
    top  : 0;
    right: 100%;
  }
}

@media (max-width: 1024px) {
  .l-side__schedule__toggle {
    right : 0;
    bottom: 100%;
  }
}

.l-side__schedule__open,
.l-side__schedule__close {
  grid-row   : 1/2;
  grid-column: 1/2;
  width      : 100%;
  height     : 100%;
}

.l-side__schedule__close {
  visibility: hidden;
  opacity   : 0;
}

.l-side__schedule__table {
  padding         : 1em 2em;
  font-size       : var(--font-size-sm);
  color           : var(--color-text-contrast);
  background-color: rgba(var(--color-primary-rgb), 85%);
}

.l-side__schedule__table:where(body[data-theme-color=gold] *) {
  background-color: rgba(var(--color-biscuit-rgb), 93%);
}

@media (min-width: 1025px) {
  .l-side__schedule__table {
    min-width: 35em;
  }
}

@media (max-width: 1024px) {
  .l-side__schedule__table {
    width: calc(100 * var(--vw));
  }
}

.l-side__schedule__table>.l-schedule {
  container-type: unset;
  max-width     : 740px;
  margin-inline : auto;
}

.l-side__sns {
  --sns-color        : var(--color-text-primary);
  z-index            : 0;
  display            : flex;
  flex-direction     : column;
  gap                : 0.5em;
  margin-top         : 1em;
  color              : var(--sns-color);
  opacity            : 0;
  transition         : color 0.35s ease;
  animation-name     : fade-in-left;
  animation-duration : 0.8s;
  animation-delay    : 1.7s;
  animation-fill-mode: forwards;
}

.l-side__sns:where(body[data-theme-color=gold] *) {
  --sns-color: var(--color-heading-primary);
}

.l-side__sns.is-contrast {
  --sns-color: var(--color-text-contrast);
}

.l-side__sns.is-contrast:where(body[data-theme-color=gold] *) {
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.4)) drop-shadow(1px 1px 16px rgba(var(--color-primary-rgb), 60%));
}

@media (max-width: 1024px) {
  .l-side__sns {
    display: none;
  }
}

.l-side__sns__item {
  display        : flex;
  align-items    : center;
  justify-content: center;
}

.l-side__sns__link {
  box-sizing     : content-box;
  display        : flex;
  align-items    : center;
  justify-content: center;
  padding        : 10px;
  font-size      : 29px;
  transition     : opacity 0.22s;
}

.l-side__sns__link:hover {
  opacity: 0.65;
}

.l-spmenu-info {
  margin-top: 3em;
}

.l-spmenu-info__tel {
  display     : flex;
  align-items : baseline;
  width       : fit-content;
  margin-top  : 0.35em;
  margin-right: auto;
  margin-left : auto;
  font-size   : 5rem;
  font-weight : var(--font-weight-bold);
  line-height : 1.5;
  white-space : nowrap;
}

@media (max-width: 525px) {
  .l-spmenu-info__tel {
    font-size: 4rem;
  }
}

.l-spmenu-info__tel small {
  margin-right: 0.35em;
  font-size   : var(--font-size-md);
  font-weight : var(--font-weight-regular);
}

.l-spmenu-info__buttons {
  display        : flex;
  flex-wrap      : wrap;
  gap            : 1em;
  justify-content: center;
  margin-top     : 1.25em;
}

.l-spmenu-info__buttons>a {
  flex     : 1;
  max-width: 260px;
}

.l-spmenu-info__schedule {
  margin-top: 2.25em;
}

.l-spmenu-info__sns {
  margin-top: 1.5em;
  font-size : 2.9rem;
}

.l-spmenu-info__sns .l-sns {
  --size         : 2em;
  display        : flex;
  flex-wrap      : wrap;
  column-gap     : 0.15em;
  justify-content: center;
  line-height    : 1;
}

.l-spmenu-info__sns .l-sns__link {
  display        : flex;
  align-items    : center;
  justify-content: center;
  width          : var(--size);
  height         : var(--size);
  padding        : 5px;
}

.l-spmenu-info__sns .l-sns__text {
  display: none;
}

.l-top {
  --top-height : 10em;
  --dash-height: 26px;
  --dash-width : 1px;
  position     : sticky;
  bottom       : 0;
  z-index      : 1;
  width        : fit-content;
  margin-top   : calc(var(--top-height) * -1);
  margin-right : var(--container-padding-right);
  margin-left  : auto;
}

@media (min-width: 1025px) {
  .l-top {
    margin-right: calc(var(--side-button-width) + var(--container-padding));
  }
}

@media (max-width: 1024px) {
  .l-top {
    bottom: var(--side-button-height);
  }
}

.l-top__inner {
  visibility: hidden;
  opacity   : 0;
}

.l-top__link {
  display     : block;
  height      : var(--top-height);
  padding-top : 1em;
  padding-left: 0.5em;
  transition  : opacity 0.25s;
}

.l-top__link:hover {
  --dash-height: 20px;
  opacity      : 0.5;
}

.l-top__text {
  display       : flex;
  gap           : 1em;
  align-items   : center;
  width         : 1.3em;
  height        : 100%;
  padding-bottom: 0.75em;
  padding-left  : 0.3em;
  font-family   : var(--font-english);
  line-height   : 1;
  color         : var(--color-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  white-space   : nowrap;
  border-left   : 1px solid;
  writing-mode  : vertical-rl;
}

.l-top__text::before {
  width           : var(--dash-width);
  height          : var(--dash-height);
  content         : "";
  background-color: currentcolor;
  transition      : height 0.3s var(--ease-out-expo);
}

.f-logo-img img {
  max-width: 500px;
  margin   : 0 auto;
}

.pc_only_brk {
  display: block;
}

@media (max-width: 768px) {
  .f-logo-img img {
    max-width: 400px;
  }

  .pc_only_brk {
    display: none;
  }

}

/* @media (max-width: 768px) {
  .l-header__logo__link > img {
    height: 55px;
  }
} */