@charset "UTF-8";/**
 * Swiper 12.1.4
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: April 29, 2026
 */

:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}
:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}
/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
  .swiper-slide,
  .swiper-cube-shadow {
    transform-style: preserve-3d;
  }
}

/* CSS Mode */
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none; /* For Firefox */
    -ms-overflow-style: none; /* For Internet Explorer and Edge */
    &::-webkit-scrollbar {
      display: none;
    }
  }
  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }
  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-slides-offset-before);
      scroll-margin-inline-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-inline-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-slides-offset-before);
      scroll-margin-block-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-block-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }
  &.swiper-centered {
    > .swiper-wrapper::before {
      content: '';
      flex-shrink: 0;
      order: 9999;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }
  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }
  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      width: 100%;
      min-width: 1px;
      height: var(--swiper-centered-offset-after);
    }
  }
}

/* Slide styles start */
/* 3D Shadows */
.swiper-3d {
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom,
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
  }
  .swiper-slide-shadow {
    background: rgba(0, 0, 0, 0.15);
  }
  .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
}
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}
.swiper:not(.swiper-watch-progress),
.swiper-watch-progress .swiper-slide-visible {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear;
  }
}
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */
:root {
  /*
  --swiper-pagination-color: var(--swiper-theme-color);
  --swiper-pagination-left: auto;
  --swiper-pagination-right: 8px;
  --swiper-pagination-bottom: 8px;
  --swiper-pagination-top: auto;
  --swiper-pagination-fraction-color: inherit;
  --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);
  --swiper-pagination-progressbar-size: 4px;
  --swiper-pagination-bullet-size: 8px;
  --swiper-pagination-bullet-width: 8px;
  --swiper-pagination-bullet-height: 8px;
  --swiper-pagination-bullet-border-radius: 50%;
  --swiper-pagination-bullet-inactive-color: #000;
  --swiper-pagination-bullet-inactive-opacity: 0.2;
  --swiper-pagination-bullet-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 4px;
  --swiper-pagination-bullet-vertical-gap: 6px;
  */
}
.swiper-pagination {
  position: absolute;
  text-align: center;
  transition: 300ms opacity;
  transform: translate3d(0, 0, 0);
  z-index: 10;
  &.swiper-pagination-hidden {
    opacity: 0;
  }
  .swiper-pagination-disabled > &,
  &.swiper-pagination-disabled {
    display: none !important;
  }
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: var(--swiper-pagination-bottom, 8px);
  top: var(--swiper-pagination-top, auto);
  left: 0;
  width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
  .swiper-pagination-bullet {
    transform: scale(0.33);
    position: relative;
  }
  .swiper-pagination-bullet-active {
    transform: scale(1);
  }
  .swiper-pagination-bullet-active-main {
    transform: scale(1);
  }
  .swiper-pagination-bullet-active-prev {
    transform: scale(0.66);
  }
  .swiper-pagination-bullet-active-prev-prev {
    transform: scale(0.33);
  }
  .swiper-pagination-bullet-active-next {
    transform: scale(0.66);
  }
  .swiper-pagination-bullet-active-next-next {
    transform: scale(0.33);
  }
}
.swiper-pagination-bullet {
  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
  display: inline-block;
  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
  background: var(--swiper-pagination-bullet-inactive-color, #000);
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
  button& {
    border: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
    appearance: none;
  }
  .swiper-pagination-clickable & {
    cursor: pointer;
  }

  &:only-child {
    display: none !important;
  }
}
.swiper-pagination-bullet-active {
  opacity: var(--swiper-pagination-bullet-opacity, 1);
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
}

.swiper-vertical > .swiper-pagination-bullets,
.swiper-pagination-vertical.swiper-pagination-bullets {
  right: var(--swiper-pagination-right, 8px);
  left: var(--swiper-pagination-left, auto);
  top: 50%;
  transform: translate3d(0px, -50%, 0);
  .swiper-pagination-bullet {
    margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
    display: block;
  }
  &.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    .swiper-pagination-bullet {
      display: inline-block;
      transition:
        200ms transform,
        200ms top;
    }
  }
}
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-horizontal.swiper-pagination-bullets {
  .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
  }
  &.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    .swiper-pagination-bullet {
      transition:
        200ms transform,
        200ms left;
    }
  }
}
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition:
    200ms transform,
    200ms right;
}
/* Fraction */
.swiper-pagination-fraction {
  color: var(--swiper-pagination-fraction-color, inherit);
}
/* Progress */
.swiper-pagination-progressbar {
  background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));
  position: absolute;
  .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale(0);
    transform-origin: left top;
  }
  .swiper-rtl & .swiper-pagination-progressbar-fill {
    transform-origin: right top;
  }
  .swiper-horizontal > &,
  &.swiper-pagination-horizontal,
  .swiper-vertical > &.swiper-pagination-progressbar-opposite,
  &.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
    width: 100%;
    height: var(--swiper-pagination-progressbar-size, 4px);
    left: 0;
    top: 0;
  }
  .swiper-vertical > &,
  &.swiper-pagination-vertical,
  .swiper-horizontal > &.swiper-pagination-progressbar-opposite,
  &.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
    width: var(--swiper-pagination-progressbar-size, 4px);
    height: 100%;
    left: 0;
    top: 0;
  }
}
.swiper-pagination-lock {
  display: none;
}
.swiper-fade {
  &.swiper-free-mode {
    .swiper-slide {
      transition-timing-function: ease-out;
    }
  }
  .swiper-slide {
    pointer-events: none;
    transition-property: opacity;
    .swiper-slide {
      pointer-events: none;
    }
  }
  .swiper-slide-active {
    pointer-events: auto;
    & .swiper-slide-active {
      pointer-events: auto;
    }
  }
}
:root {
  --swiper-navigation-size: 44px;
  /*
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 4px;
  --swiper-navigation-color: var(--swiper-theme-color);
  */
}
.swiper-button-prev,
.swiper-button-next {
  position: absolute;

  width: var(--swiper-navigation-size);
  height: var(--swiper-navigation-size);

  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
  &.swiper-button-disabled {
    opacity: 0.35;
    cursor: auto;
    pointer-events: none;
  }
  &.swiper-button-hidden {
    opacity: 0;
    cursor: auto;
    pointer-events: none;
  }
  .swiper-navigation-disabled & {
    display: none !important;
  }

  ::slotted(svg),
  svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform-origin: center;
    fill: currentColor;
    pointer-events: none;
  }
}

.swiper-button-lock {
  display: none;
}

.swiper-button-prev,
.swiper-button-next {
  top: var(--swiper-navigation-top-offset, 50%);
  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
}
.swiper-button-prev {
  left: var(--swiper-navigation-sides-offset, 4px);
  right: auto;
  ::slotted(.swiper-navigation-icon),
  .swiper-navigation-icon {
    transform: rotate(180deg);
  }
}
.swiper-button-next {
  right: var(--swiper-navigation-sides-offset, 4px);
  left: auto;
}
.swiper-horizontal {
  .swiper-button-prev,
  .swiper-button-next,
  ~ .swiper-button-prev,
  ~ .swiper-button-next {
    top: var(--swiper-navigation-top-offset, 50%);
    margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
    margin-left: 0;
  }
  .swiper-button-prev,
  & ~ .swiper-button-prev,
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next {
    left: var(--swiper-navigation-sides-offset, 4px);
    right: auto;
  }
  .swiper-button-next,
  & ~ .swiper-button-next,
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 4px);
    left: auto;
  }
  .swiper-button-prev,
  & ~ .swiper-button-prev,
  &.swiper-rtl .swiper-button-next,
  &.swiper-rtl ~ .swiper-button-next {
    ::slotted(.swiper-navigation-icon),
    .swiper-navigation-icon {
      transform: rotate(180deg);
    }
  }
  &.swiper-rtl .swiper-button-prev,
  &.swiper-rtl ~ .swiper-button-prev {
    ::slotted(.swiper-navigation-icon),
    .swiper-navigation-icon {
      transform: rotate(0deg);
    }
  }
}
.swiper-vertical {
  .swiper-button-prev,
  .swiper-button-next,
  ~ .swiper-button-prev,
  ~ .swiper-button-next {
    left: var(--swiper-navigation-top-offset, 50%);
    right: auto;
    margin-left: calc(0px - (var(--swiper-navigation-size) / 2));
    margin-top: 0;
  }
  .swiper-button-prev,
  ~ .swiper-button-prev {
    top: var(--swiper-navigation-sides-offset, 4px);
    bottom: auto;
    ::slotted(.swiper-navigation-icon),
    .swiper-navigation-icon {
      transform: rotate(-90deg);
    }
  }
  .swiper-button-next,
  ~ .swiper-button-next {
    bottom: var(--swiper-navigation-sides-offset, 4px);
    top: auto;
    ::slotted(.swiper-navigation-icon),
    .swiper-navigation-icon {
      transform: rotate(90deg);
    }
  }
}
:root {
  /*
  --swiper-scrollbar-border-radius: 10px;
  --swiper-scrollbar-top: auto;
  --swiper-scrollbar-bottom: 4px;
  --swiper-scrollbar-left: auto;
  --swiper-scrollbar-right: 4px;
  --swiper-scrollbar-sides-offset: 1%;
  --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);
  --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);
  --swiper-scrollbar-size: 4px;
  */
}
.swiper-scrollbar {
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  position: relative;
  touch-action: none;
  background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));
  .swiper-scrollbar-disabled > &,
  &.swiper-scrollbar-disabled {
    display: none !important;
  }
  .swiper-horizontal > &,
  &.swiper-scrollbar-horizontal {
    position: absolute;
    left: var(--swiper-scrollbar-sides-offset, 1%);
    bottom: var(--swiper-scrollbar-bottom, 4px);
    top: var(--swiper-scrollbar-top, auto);
    z-index: 50;
    height: var(--swiper-scrollbar-size, 4px);
    width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
  }
  .swiper-vertical > &,
  &.swiper-scrollbar-vertical {
    position: absolute;
    left: var(--swiper-scrollbar-left, auto);
    right: var(--swiper-scrollbar-right, 4px);
    top: var(--swiper-scrollbar-sides-offset, 1%);
    z-index: 50;
    width: var(--swiper-scrollbar-size, 4px);
    height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
  }
}
.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  left: 0;
  top: 0;
}
.swiper-scrollbar-cursor-drag {
  cursor: move;
}
.swiper-scrollbar-lock {
  display: none;
}
.swiper-grid > .swiper-wrapper {
  flex-wrap: wrap;
}
.swiper-grid-column > .swiper-wrapper {
  flex-wrap: wrap;
  flex-direction: column;
}

/**************************************
 * reset style
 **************************************/
/* https://piccalil.li/blog/a-more-modern-css-reset/ */
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
/* h1, h2,
h3, h4 {
  text-wrap: balance;
} */
/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/**************************************
 * base style
 **************************************/
* {
  margin: 0;
}

&::selection {
  background: rgb(146 167 210 / 0.3);
}

:root {
  --wrapper-padding: min(6.41%, 80px);
  --section-margin: min(9.52vw, 120px);
  --footer-margin-top: min(13.09vw, 165px);
  --font-ja: "Yu Gothic", "YuGothic", yu-gothic-pr6n, "Noto Sans JP", sans-serif;
  --font-ja-bold: "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
  --font-serif: "Zen Old Mincho", serif;
  --font-en: "Cormorant Garamond", serif;
  --font-en-infant: "Cormorant Infant", serif;
  --font-script: "la-bohemienne", serif;
  --box-shadow-size: 0px 0px 28px 7px;
  --header-logo-width: 176px;
  --header-logo-height: calc(var(--header-logo-width) / 220 * 180);
  --c-bnr-estimate-width: min(20.2vw, 310.4px);
  --c-bnr-estimate-right-margin: min(1.82vw, 35px);
  --footer-right-margin: 0;
  --ease-out-quad: cubic-bezier(0.5, 1, 0.89, 1);
  --ease-out-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out-strong: cubic-bezier(0.77, 0, 0.175, 1);
}
@media screen and (max-width: 1870px) {
  :root {
    --footer-right-margin:
      calc(
        var(--c-bnr-estimate-width) + var(--c-bnr-estimate-right-margin)
        - (100vw - 1088px) / 2
        + 50px
      );
  }
}
@media screen and (max-width: 1260px) {
  :root {
    --header-logo-width: 13.96vw;
    --footer-right-margin: calc(var(--c-bnr-estimate-width) + var(--c-bnr-estimate-right-margin));
  }
}
@media screen and (max-width: 767px) {
  :root {
    --wrapper-padding: 8%;
    --section-margin: clamp(60px, 31.3125px + 7.65vw, 90px);
    --footer-margin-top: 100px;
    --box-shadow-size: 0px 0px 15px 4px;
    --header-logo-width: min(29.33vw, 110px);
    --footer-right-margin: 0px;
    --c-bnr-estimate-width: min(51.73vw, 240px);
  }
}

html {
  min-height: 100%;
  scrollbar-gutter: stable;
  font-size: 16px;
  font-size: clamp(14px, 10.8512px + 0.41vw, 16px);
  letter-spacing: 0.03em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  html {
    font-size: 13px;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
    letter-spacing: 0.03em;
  }
}

body {
  font-size: 1rem;
  font-family: var(--font-ja);
  line-height: 2;
  color: #524b44;
  padding: 0;
  background: #f4f4f4;
  font-feature-settings: "palt";
}

select {
  color: inherit;
}

img, picture, video, canvas, svg {
  max-width: 100%;
  height: auto;
}

a {
  color: #524b44;
}

#root {
  position: relative;
  overflow-x: clip;
  max-width: 100%;
  opacity: 0;
}
#root.is-loaded {
  opacity: 1;
  transition: opacity 1.3s;
}
html:not(.js-enabled) #root {
  opacity: 1;
}

/**************************************
* common animation
**************************************/
@keyframes auto-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes arrow-from-left {
  from {
    opacity: 0;
    translate: -70% var(--translate-y);
  }
  to {
    opacity: 1;
    translate: 0 var(--translate-y);
  }
}
/**************************************
* fade animation
**************************************/
@keyframes fade {
  from {
    opacity: 0;
    translate: var(--fade-translate);
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
.anim-fade,
.anim-fade-up,
.anim-fade-down,
.anim-fade-left,
.anim-fade-right {
  --fade-delay: 0s;
  --fade-delay-sp: var(--fade-delay);
  --fade-duration: 0.7s;
  --fade-translate: 0 0;
  opacity: 0;
}
.js-animate-wrap.js-animated .anim-fade,
.js-animate-wrap.js-animated .anim-fade-up,
.js-animate-wrap.js-animated .anim-fade-down,
.js-animate-wrap.js-animated .anim-fade-left,
.js-animate-wrap.js-animated .anim-fade-right {
  animation-duration: var(--fade-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: fade;
  animation-delay: var(--fade-delay);
}
@media screen and (max-width: 767px) {
  .js-animate-wrap.js-animated .anim-fade,
  .js-animate-wrap.js-animated .anim-fade-up,
  .js-animate-wrap.js-animated .anim-fade-down,
  .js-animate-wrap.js-animated .anim-fade-left,
  .js-animate-wrap.js-animated .anim-fade-right {
    animation-delay: var(--fade-delay-sp);
  }
}
.anim-fade.js-animate-page-load.js-animated,
.anim-fade-up.js-animate-page-load.js-animated,
.anim-fade-down.js-animate-page-load.js-animated,
.anim-fade-left.js-animate-page-load.js-animated,
.anim-fade-right.js-animate-page-load.js-animated {
  animation-duration: var(--fade-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: fade;
  animation-delay: var(--fade-delay);
}
@media screen and (max-width: 767px) {
  .anim-fade.js-animate-page-load.js-animated,
  .anim-fade-up.js-animate-page-load.js-animated,
  .anim-fade-down.js-animate-page-load.js-animated,
  .anim-fade-left.js-animate-page-load.js-animated,
  .anim-fade-right.js-animate-page-load.js-animated {
    animation-delay: var(--fade-delay-sp);
  }
}
.anim-fade.js-animate.js-animated,
.anim-fade-up.js-animate.js-animated,
.anim-fade-down.js-animate.js-animated,
.anim-fade-left.js-animate.js-animated,
.anim-fade-right.js-animate.js-animated {
  animation-duration: var(--fade-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: fade;
  animation-delay: var(--fade-delay);
}
@media screen and (max-width: 767px) {
  .anim-fade.js-animate.js-animated,
  .anim-fade-up.js-animate.js-animated,
  .anim-fade-down.js-animate.js-animated,
  .anim-fade-left.js-animate.js-animated,
  .anim-fade-right.js-animate.js-animated {
    animation-delay: var(--fade-delay-sp);
  }
}
html:not(.js-enabled) .anim-fade,
html:not(.js-enabled) .anim-fade-up,
html:not(.js-enabled) .anim-fade-down,
html:not(.js-enabled) .anim-fade-left,
html:not(.js-enabled) .anim-fade-right {
  opacity: 1;
}
@media print {
  .anim-fade,
  .anim-fade-up,
  .anim-fade-down,
  .anim-fade-left,
  .anim-fade-right {
    opacity: 1;
  }
}

.anim-fade-up {
  --fade-translate: 0 40px;
}
@media screen and (max-width: 767px) {
  .anim-fade-up {
    --fade-translate: 0 20px;
  }
}

.anim-fade-down {
  --fade-translate: 0 -40px;
}
@media screen and (max-width: 767px) {
  .anim-fade-down {
    --fade-translate: 0 -20px;
  }
}

.anim-fade-left {
  --fade-translate: -40px 0;
}
@media screen and (max-width: 767px) {
  .anim-fade-left {
    --fade-translate: -20px 0;
  }
}

.anim-fade-right {
  --fade-translate: 40px 0;
}
@media screen and (max-width: 767px) {
  .anim-fade-right {
    --fade-translate: 20px 0;
  }
}

/**************************************
* clip animation
**************************************/
@keyframes clip {
  from {
    -webkit-clip-path: var(--clip-path);
    clip-path: var(--clip-path);
  }
  to {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
  }
}
.anim-clip-left,
.anim-clip-right {
  --clip-delay: 0s;
  --clip-delay-sp: var(--clip-delay);
  --clip-duration: 0.7s;
  --clip-path: inset(0 100% 0 0);
  -webkit-clip-path: var(--clip-path);
  clip-path: var(--clip-path);
}
.js-animate-wrap.js-animated .anim-clip-left,
.js-animate-wrap.js-animated .anim-clip-right {
  animation-duration: var(--clip-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: clip;
  animation-delay: var(--clip-delay);
}
@media screen and (max-width: 767px) {
  .js-animate-wrap.js-animated .anim-clip-left,
  .js-animate-wrap.js-animated .anim-clip-right {
    animation-delay: var(--clip-delay-sp);
  }
}
.anim-clip-left.js-animate-page-load.js-animated,
.anim-clip-right.js-animate-page-load.js-animated {
  animation-duration: var(--clip-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: clip;
  animation-delay: var(--clip-delay);
}
@media screen and (max-width: 767px) {
  .anim-clip-left.js-animate-page-load.js-animated,
  .anim-clip-right.js-animate-page-load.js-animated {
    animation-delay: var(--clip-delay-sp);
  }
}
.anim-clip-left.js-animate.js-animated,
.anim-clip-right.js-animate.js-animated {
  animation-duration: var(--clip-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: clip;
  animation-delay: var(--clip-delay);
}
@media screen and (max-width: 767px) {
  .anim-clip-left.js-animate.js-animated,
  .anim-clip-right.js-animate.js-animated {
    animation-delay: var(--clip-delay-sp);
  }
}
html:not(.js-enabled) .anim-clip-left,
html:not(.js-enabled) .anim-clip-right {
  clip-path: inset(0);
}
@media print {
  .anim-clip-left,
  .anim-clip-right {
    clip-path: inset(0);
  }
}

.anim-clip-right {
  --clip-path: inset(0 0 0 100%);
}
.js-animate-wrap.js-animated .anim-clip-right, .anim-clip-right.js-animate-page-load.js-animated, .anim-clip-right.js-animate.js-animated {
  animation-name: clip-right;
}

/**************************************
* fill animation
**************************************/
@keyframes fill-ctt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  51% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fill-cover {
  0% {
    opacity: 1;
    -webkit-clip-path: var(--fill-cover-start);
    clip-path: var(--fill-cover-start);
  }
  49% {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
  }
  52% {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: var(--fill-cover-end);
    clip-path: var(--fill-cover-end);
  }
}
.anim-fill-left,
.anim-fill-right,
.anim-fill-down,
.anim-fill-up {
  --fill-delay: 0s;
  --fill-delay-sp: var(--fill-delay);
  --fill-duration: 0.8s;
  --fill-cover-start: inset(0 100% 0 0);
  --fill-cover-end: inset(0 0 0 100%);
  position: relative;
}
.anim-fill-left > *,
.anim-fill-right > *,
.anim-fill-down > *,
.anim-fill-up > * {
  opacity: 0;
}
.anim-fill-left::after,
.anim-fill-right::after,
.anim-fill-down::after,
.anim-fill-up::after {
  content: "";
  pointer-events: none;
  display: block;
  position: absolute;
  inset: 0;
  opacity: 0;
  background-color: #000;
  z-index: 3;
}
.js-animate-wrap.js-animated .anim-fill-left > *, .js-animate-wrap.js-animated .anim-fill-left::after,
.js-animate-wrap.js-animated .anim-fill-right > *,
.js-animate-wrap.js-animated .anim-fill-right::after,
.js-animate-wrap.js-animated .anim-fill-down > *,
.js-animate-wrap.js-animated .anim-fill-down::after,
.js-animate-wrap.js-animated .anim-fill-up > *,
.js-animate-wrap.js-animated .anim-fill-up::after {
  animation-duration: var(--fill-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-delay: var(--fill-delay);
}
@media screen and (max-width: 767px) {
  .js-animate-wrap.js-animated .anim-fill-left > *, .js-animate-wrap.js-animated .anim-fill-left::after,
  .js-animate-wrap.js-animated .anim-fill-right > *,
  .js-animate-wrap.js-animated .anim-fill-right::after,
  .js-animate-wrap.js-animated .anim-fill-down > *,
  .js-animate-wrap.js-animated .anim-fill-down::after,
  .js-animate-wrap.js-animated .anim-fill-up > *,
  .js-animate-wrap.js-animated .anim-fill-up::after {
    animation-delay: var(--fill-delay-sp);
  }
}
.js-animate-wrap.js-animated .anim-fill-left > *,
.js-animate-wrap.js-animated .anim-fill-right > *,
.js-animate-wrap.js-animated .anim-fill-down > *,
.js-animate-wrap.js-animated .anim-fill-up > * {
  animation-name: fill-ctt;
}
.js-animate-wrap.js-animated .anim-fill-left::after,
.js-animate-wrap.js-animated .anim-fill-right::after,
.js-animate-wrap.js-animated .anim-fill-down::after,
.js-animate-wrap.js-animated .anim-fill-up::after {
  animation-name: fill-cover;
}
.anim-fill-left.js-animate-page-load.js-animated > *, .anim-fill-left.js-animate-page-load.js-animated::after,
.anim-fill-right.js-animate-page-load.js-animated > *,
.anim-fill-right.js-animate-page-load.js-animated::after,
.anim-fill-down.js-animate-page-load.js-animated > *,
.anim-fill-down.js-animate-page-load.js-animated::after,
.anim-fill-up.js-animate-page-load.js-animated > *,
.anim-fill-up.js-animate-page-load.js-animated::after {
  animation-duration: var(--fill-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-delay: var(--fill-delay);
}
@media screen and (max-width: 767px) {
  .anim-fill-left.js-animate-page-load.js-animated > *, .anim-fill-left.js-animate-page-load.js-animated::after,
  .anim-fill-right.js-animate-page-load.js-animated > *,
  .anim-fill-right.js-animate-page-load.js-animated::after,
  .anim-fill-down.js-animate-page-load.js-animated > *,
  .anim-fill-down.js-animate-page-load.js-animated::after,
  .anim-fill-up.js-animate-page-load.js-animated > *,
  .anim-fill-up.js-animate-page-load.js-animated::after {
    animation-delay: var(--fill-delay-sp);
  }
}
.anim-fill-left.js-animate-page-load.js-animated > *,
.anim-fill-right.js-animate-page-load.js-animated > *,
.anim-fill-down.js-animate-page-load.js-animated > *,
.anim-fill-up.js-animate-page-load.js-animated > * {
  animation-name: fill-ctt;
}
.anim-fill-left.js-animate-page-load.js-animated::after,
.anim-fill-right.js-animate-page-load.js-animated::after,
.anim-fill-down.js-animate-page-load.js-animated::after,
.anim-fill-up.js-animate-page-load.js-animated::after {
  animation-name: fill-cover;
}
.anim-fill-left.js-animate.js-animated > *, .anim-fill-left.js-animate.js-animated::after,
.anim-fill-right.js-animate.js-animated > *,
.anim-fill-right.js-animate.js-animated::after,
.anim-fill-down.js-animate.js-animated > *,
.anim-fill-down.js-animate.js-animated::after,
.anim-fill-up.js-animate.js-animated > *,
.anim-fill-up.js-animate.js-animated::after {
  animation-duration: var(--fill-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-delay: var(--fill-delay);
}
@media screen and (max-width: 767px) {
  .anim-fill-left.js-animate.js-animated > *, .anim-fill-left.js-animate.js-animated::after,
  .anim-fill-right.js-animate.js-animated > *,
  .anim-fill-right.js-animate.js-animated::after,
  .anim-fill-down.js-animate.js-animated > *,
  .anim-fill-down.js-animate.js-animated::after,
  .anim-fill-up.js-animate.js-animated > *,
  .anim-fill-up.js-animate.js-animated::after {
    animation-delay: var(--fill-delay-sp);
  }
}
.anim-fill-left.js-animate.js-animated > *,
.anim-fill-right.js-animate.js-animated > *,
.anim-fill-down.js-animate.js-animated > *,
.anim-fill-up.js-animate.js-animated > * {
  animation-name: fill-ctt;
}
.anim-fill-left.js-animate.js-animated::after,
.anim-fill-right.js-animate.js-animated::after,
.anim-fill-down.js-animate.js-animated::after,
.anim-fill-up.js-animate.js-animated::after {
  animation-name: fill-cover;
}
html:not(.js-enabled) .anim-fill-left > *,
html:not(.js-enabled) .anim-fill-right > *,
html:not(.js-enabled) .anim-fill-down > *,
html:not(.js-enabled) .anim-fill-up > * {
  opacity: 1;
}
html:not(.js-enabled) .anim-fill-left::after,
html:not(.js-enabled) .anim-fill-right::after,
html:not(.js-enabled) .anim-fill-down::after,
html:not(.js-enabled) .anim-fill-up::after {
  display: none;
}
@media print {
  .anim-fill-left > *,
  .anim-fill-right > *,
  .anim-fill-down > *,
  .anim-fill-up > * {
    opacity: 1;
  }
  .anim-fill-left::after,
  .anim-fill-right::after,
  .anim-fill-down::after,
  .anim-fill-up::after {
    display: none;
  }
}

.anim-fill-right {
  --fill-cover-start: inset(0 0 0 100%);
  --fill-cover-end: inset(0 100% 0 0);
}

.anim-fill-down {
  --fill-cover-start: inset(0 0 100% 0);
  --fill-cover-end: inset(100% 0 0 0);
}

.anim-fill-up {
  --fill-cover-start: inset(100% 0 0 0);
  --fill-cover-end: inset(0 0 100% 0);
}

/**************************************
* scale animation
**************************************/
@keyframes scale-in {
  0% {
    opacity: 0;
    scale: var(--scale-in);
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    scale: 1;
  }
}
.anim-scale-in {
  --scale-delay: 0s;
  --scale-delay-sp: var(--scale-delay);
  --scale-duration: 2s;
  --scale-in: 1.1;
  opacity: 0;
}
.js-animate-wrap.js-animated .anim-scale-in {
  animation-duration: var(--scale-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: scale-in;
  animation-delay: var(--scale-delay);
}
@media screen and (max-width: 767px) {
  .js-animate-wrap.js-animated .anim-scale-in {
    animation-delay: var(--scale-delay-sp);
  }
}
.anim-scale-in.js-animate-page-load.js-animated {
  animation-duration: var(--scale-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: scale-in;
  animation-delay: var(--scale-delay);
}
@media screen and (max-width: 767px) {
  .anim-scale-in.js-animate-page-load.js-animated {
    animation-delay: var(--scale-delay-sp);
  }
}
.anim-scale-in.js-animate.js-animated {
  animation-duration: var(--scale-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: scale-in;
  animation-delay: var(--scale-delay);
}
@media screen and (max-width: 767px) {
  .anim-scale-in.js-animate.js-animated {
    animation-delay: var(--scale-delay-sp);
  }
}
html:not(.js-enabled) .anim-scale-in {
  opacity: 1;
}
@media print {
  .anim-scale-in {
    opacity: 1;
  }
}

/**************************************
* text animation
**************************************/
@keyframes rotate-text {
  from {
    text-shadow: 0 calc(var(--rotate-text-char-offset) * -1) 0 var(--rotate-text-color), 0 0 0 var(--rotate-text-color);
  }
  to {
    text-shadow: 0 0 0 var(--rotate-text-color), 0 var(--rotate-text-char-offset) 0 var(--rotate-text-color);
  }
}
.anim-rotate-text {
  --rotate-text-delay: 0s;
  --rotate-text-duration: 0.8s;
  --rotate-text-char-delay: 0.05s;
  --rotate-text-char-offset: 1.1em;
  --rotate-text-color: #fff;
}
.anim-rotate-text span {
  display: inline-block;
  overflow: hidden;
  color: transparent;
  text-shadow: 0 calc(var(--rotate-text-char-offset) * -1) 0 var(--rotate-text-color), 0 0 0 var(--rotate-text-color);
  animation-duration: var(--rotate-text-duration);
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: rotate-text;
  animation-delay: calc(var(--rotate-text-delay) + var(--index) * var(--rotate-text-char-delay));
  will-change: text-shadow;
}

/**************************************
* other animation
**************************************/
@keyframes mv {
  0% {
    transform: var(--mv-transform);
  }
  100% {
    transform: translate(0, 0);
  }
}
.anim-mv-down,
.anim-mv-up {
  --mv-transform: translate(0, -20%);
}
@media screen and (max-width: 767px) {
  .anim-mv-down,
  .anim-mv-up {
    --mv-transform: translate(-20%, 0);
  }
}
.js-animate-wrap.js-animated .anim-mv-down,
.js-animate-wrap.js-animated .anim-mv-up {
  animation: mv 1.5s var(--ease-out-soft) forwards;
}
.anim-mv-down.js-animate-page-load.js-animated,
.anim-mv-up.js-animate-page-load.js-animated {
  animation: mv 1.5s var(--ease-out-soft) forwards;
}
.anim-mv-down.js-animate.js-animated,
.anim-mv-up.js-animate.js-animated {
  animation: mv 1.5s var(--ease-out-soft) forwards;
}

.anim-mv-up {
  --mv-transform: translate(0, 20%);
}
@media screen and (max-width: 767px) {
  .anim-mv-up {
    --mv-transform: translate(20%, 0);
  }
}

/**************************************
* .c-logo
**************************************/
.c-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--header-logo-width);
  aspect-ratio: 220/180;
  background: linear-gradient(45deg, #173960 0%, #415E7E 100%);
}
.c-logo img {
  width: 69%;
}
.c-logo--footer {
  aspect-ratio: 220/141;
}
@media screen and (max-width: 767px) {
  .c-logo--footer {
    width: min(41.6vw, 144px);
  }
}
.c-logo--footer img {
  width: 57.9%;
}

/**************************************
* .c-hl
**************************************/
.c-hl-main__en {
  font-size: 4.5rem;
  font-size: clamp(48px, 10.5216px + 4.88vw, 72px);
  font-family: var(--font-en);
  font-weight: normal;
  line-height: 1;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .c-hl-main__en {
    font-size: 3.84rem;
    font-size: min(15vw, clamp(50px, 40.4375px + 2.55vw, 60px));
  }
}
.c-hl-main__ja {
  margin-top: 0.38em;
  font-size: 0.9rem;
  font-size: clamp(12.8px, 10.2656px + 0.33vw, 14.4px);
  font-weight: 500;
  font-family: var(--font-serif);
  line-height: 1;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .c-hl-main__ja {
    margin-top: 0.5em;
    font-size: 1.07rem;
    font-size: clamp(14px, 12.0875px + 0.51vw, 16px);
  }
}

.c-hl-bracket__en {
  font-size: 0.9rem;
  font-size: clamp(12px, 8.2368px + 0.49vw, 14.4px);
  font-weight: 300;
  font-family: var(--font-en);
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .c-hl-bracket__en {
    font-size: 0.76rem;
    font-size: clamp(10px, 7.1125px + 0.77vw, 13px);
  }
}
.c-hl-bracket__ja-wrap {
  position: relative;
  width: max-content;
  max-width: 100%;
  font-size: 2rem;
  font-size: clamp(24px, 11.4816px + 1.63vw, 32px);
}
@media screen and (max-width: 767px) {
  .c-hl-bracket__ja-wrap {
    font-size: 1.92rem;
    font-size: clamp(25px, 20.2px + 1.28vw, 30px);
  }
}
.c-hl-bracket__ja {
  position: relative;
  margin-top: 0.5em;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: inherit;
  letter-spacing: -0.075em;
  width: max-content;
  max-width: 100%;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .c-hl-bracket__ja {
    margin-top: 0.4em;
  }
}
.c-hl-bracket__deco {
  position: absolute;
  top: 50%;
  transform: translateY(-49%);
  left: calc(100% - 0.63em);
  z-index: -1;
  font-size: 3em;
  font-family: var(--font-script);
  color: #dda665;
  letter-spacing: 0em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .c-hl-bracket__deco {
    font-size: 2.6em;
    transform: translateY(-57%);
    left: calc(100% - 0.69em);
  }
}
.c-hl-bracket__deco::first-letter {
  margin-right: 0.15em;
}

/**************************************
* .c-link
**************************************/
.c-link-arrow-white,
.c-link-arrow-black,
a.c-btn-main:not(.c-btn-main--no-arrow),
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow) {
  --link-arrow-width: 29.2px;
  --link-arrow-width: clamp(29.2px, 25.3px + 1.04vw, 38.4px);
  --link-arrow-height: calc(var(--link-arrow-width) / 48 * 23);
}
@media screen and (max-width: 767px) {
  .c-link-arrow-white,
  .c-link-arrow-black,
  a.c-btn-main:not(.c-btn-main--no-arrow),
  .c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow) {
    --link-arrow-width: 36.5px;
  }
}
.c-link-arrow-white,
.c-link-arrow-black,
a.c-btn-main:not(.c-btn-main--no-arrow),
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow) {
  position: relative;
}
.c-link-arrow-white::before, .c-link-arrow-white::after,
.c-link-arrow-black::before,
a.c-btn-main:not(.c-btn-main--no-arrow)::before,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::before,
.c-link-arrow-black::after,
a.c-btn-main:not(.c-btn-main--no-arrow)::after,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::after {
  --translate-y: 0 0;
  content: "";
  position: absolute;
  right: 20px;
  bottom: 0;
  display: block;
  padding-bottom: var(--link-arrow-height);
  pointer-events: none;
}
.c-link-arrow-white::before,
.c-link-arrow-black::before,
a.c-btn-main:not(.c-btn-main--no-arrow)::before,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::before {
  overflow: hidden;
  background: linear-gradient(224deg, #ab6333 0%, #DDA665 50%, #ab6333 100%);
  background-size: 200% 100%;
  border-radius: 9999px;
  width: var(--link-arrow-width);
  background-position: 0% 0%;
  transition: background-position 0.3s ease;
}
.c-link-arrow-white::after,
.c-link-arrow-black::after,
a.c-btn-main:not(.c-btn-main--no-arrow)::after,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::after {
  width: calc(var(--link-arrow-width) / 3);
  margin-right: calc(var(--link-arrow-width) / 3);
  background: center center/contain no-repeat url("../img/common/c_arrow_01_white.svg");
}
.c-link-arrow-white:hover::before,
.c-link-arrow-black:hover::before,
a.c-btn-main:hover:not(.c-btn-main--no-arrow)::before,
.c-btn-main-wrapper:hover:not(.c-btn-main-wrapper--no-arrow)::before {
  background-position: 100% 0%;
}
.c-link-arrow-white:hover::after,
.c-link-arrow-black:hover::after,
a.c-btn-main:hover:not(.c-btn-main--no-arrow)::after,
.c-btn-main-wrapper:hover:not(.c-btn-main-wrapper--no-arrow)::after {
  animation-duration: 0.4s;
  animation-timing-function: var(--ease-out-quad);
  animation-fill-mode: forwards;
  animation-name: arrow-from-left;
}

.c-link-arrow-black::before, a.c-btn-main:not(.c-btn-main--no-arrow)::before,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::before {
  background: #fff;
}
.c-link-arrow-black::after, a.c-btn-main:not(.c-btn-main--no-arrow)::after,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::after {
  background-image: url("../img/common/c_arrow_01_black.svg");
}

.c-link-hover-line, .footer__btm-nav a, .c-gnav a {
  position: relative;
}
.c-link-hover-line::before, .footer__btm-nav a::before, .c-gnav a::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -0.4em;
  width: 100%;
  height: 0.5px;
  transform: scale(0, 1);
  transform-origin: left center;
  background: #fff;
  transition: transform 0.25s ease;
}
.c-link-hover-line:hover::before, .footer__btm-nav a:hover::before, .c-gnav a:hover::before {
  transform: scale(1, 1);
}

/**************************************
* .c-wrap
**************************************/
.c-wrap {
  width: 1248px;
  max-width: 100%;
  padding-inline: var(--wrapper-padding);
  margin-inline: auto;
}

/**************************************
* .c-btn
**************************************/
a.c-btn-main,
.c-btn-main-wrapper > input,
.c-btn-main-wrapper > button {
  display: grid;
  align-items: center;
  padding-inline: 3.12em 5.37em;
  background: linear-gradient(54deg, #ab6333 0%, #dda665 50%, #ab6333 100%);
  background-size: 200% 100%;
  background-position: 0% 0%;
  width: 22.5em;
  max-width: 100%;
  height: 5em;
  border-radius: 9999px;
  color: #fff;
  font-size: 0.8rem;
  text-decoration: none;
  line-height: 1.2;
  transition: background-position 0.3s ease;
}
@media screen and (max-width: 767px) {
  a.c-btn-main,
  .c-btn-main-wrapper > input,
  .c-btn-main-wrapper > button {
    width: 17.69em;
    height: 3.46em;
    font-size: 1rem;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
    padding-inline: 1.92em 4em;
  }
}
a.c-btn-main:hover,
.c-btn-main-wrapper > input:hover,
.c-btn-main-wrapper > button:hover {
  background-position: 100% 0%;
}

a.c-btn-main.c-btn-main--no-arrow,
.c-btn-main-wrapper.c-btn-main-wrapper--no-arrow > input,
.c-btn-main-wrapper.c-btn-main-wrapper--no-arrow > button {
  text-align: center;
  padding-inline: 1em;
}

a.c-btn-main:not(.c-btn-main--no-arrow)::before, a.c-btn-main:not(.c-btn-main--no-arrow)::after,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::before,
.c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::after {
  --translate-y: -50%;
  bottom: auto;
  top: 50%;
  translate: 0 -50%;
  right: 24px;
}
@media screen and (max-width: 767px) {
  a.c-btn-main:not(.c-btn-main--no-arrow)::before, a.c-btn-main:not(.c-btn-main--no-arrow)::after,
  .c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::before,
  .c-btn-main-wrapper:not(.c-btn-main-wrapper--no-arrow)::after {
    --link-arrow-width: 2.42em;
    right: 1.15em;
  }
}

.c-btn-main-wrapper {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.c-btn-main-wrapper > input,
.c-btn-main-wrapper > button {
  -webkit-appearance: none;
  appearance: none;
  border-width: 0;
  box-shadow: none;
  text-align: left;
  cursor: pointer;
}

a.c-btn-main--transparent,
.c-btn-main-wrapper--transparent > input,
.c-btn-main-wrapper--transparent > button {
  background: rgb(255 255 255 / 0.15);
  border: 1px solid #fff;
}

/**************************************
* .c-form
**************************************/
input,
select {
  appearance: none;
  -webkit-appearance: none;
  font-size: 0.8rem;
  border-radius: 2px;
  border-width: 0px;
  background: #fff;
}
@media screen and (max-width: 767px) {
  input,
  select {
    font-size: 1rem;
  }
}

.c-form-select-arrow {
  --border-radius: 5px;
  position: relative;
  display: block;
  height: 64px;
  height: clamp(54.4px, 39.424px + 1.95vw, 64px);
  container-type: size;
  font-size: 0.8rem;
}
@media screen and (max-width: 767px) {
  .c-form-select-arrow {
    --border-radius: 2.5px;
    height: 3.46em;
    font-size: 1rem;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
  }
}
.c-form-select-arrow::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 6.2%;
  transform: translateY(-50%);
  width: 11px;
  width: 13.75cqh;
  height: 10px;
  height: 12.5cqh;
  background-color: #0d0d0d;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .c-form-select-arrow::after {
    width: 18.88cqh;
    height: 16.66cqh;
    right: min(6.2%, 13px);
  }
}
.c-form-select-arrow select {
  padding-inline: 7% 12%;
  display: grid;
  align-items: center;
  width: 100%;
  line-height: 1.4;
  height: 100%;
  background: #fff;
  font-size: inherit;
  cursor: pointer;
}

/**************************************
* .c-bnr
**************************************/
.c-bnr-estimate {
  position: fixed;
  right: var(--c-bnr-estimate-right-margin);
  bottom: min(2.23vw, 43px);
  filter: drop-shadow(0px 0px 25px rgb(0 0 0 / 0.5));
  z-index: 20;
  --fade-delay: 0.8s;
}
@media print {
  .c-bnr-estimate {
    display: none;
  }
}
.c-bnr-estimate img {
  display: block;
  width: var(--c-bnr-estimate-width);
  max-width: 310.4px;
}
.sub-mv .c-bnr-estimate {
  top: 500px;
  bottom: auto;
}
@media screen and (max-width: 767px) {
  .sub-mv .c-bnr-estimate {
    top: calc(100% - 40px);
  }
}
@media screen and (max-width: 767px) {
  .sub-mv .c-bnr-estimate img {
    max-width: 194px;
  }
}

/**************************************
* .c-contact-btn
**************************************/
.c-contact-btn {
  display: grid;
  width: 65%;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 4.86%;
  font-style: normal;
}
@media screen and (max-width: 1260px) {
  .c-contact-btn {
    width: 584px;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .c-contact-btn {
    grid-template-columns: 1fr;
    padding-inline: 2%;
    row-gap: 17px;
  }
}
.c-contact-btn__box {
  padding-left: 10%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  border-radius: 5px;
  border: 1px solid #fff;
  background-color: rgb(255 255 255 / 0.15);
  height: 129.6px;
  transition: background-color 0.3s;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__box {
    border-radius: 2.5px;
    height: 81px;
  }
}
.c-contact-btn__box:hover {
  background-color: rgb(255 255 255 / 0.1);
}
.c-contact-btn__box.c-link-arrow-white::before, .c-contact-btn__box.c-link-arrow-white::after {
  bottom: auto;
  top: 50%;
  translate: 0 -50%;
  --translate-y: -50%;
}
@media screen and (max-width: 1500px) {
  .c-contact-btn__box.c-link-arrow-white::before, .c-contact-btn__box.c-link-arrow-white::after {
    top: auto;
    bottom: 18px;
    translate: none;
    --translate-y: 0;
  }
}
@media screen and (max-width: 767px) {
  .c-contact-btn__box.c-link-arrow-white::before, .c-contact-btn__box.c-link-arrow-white::after {
    --link-arrow-width: 31.5px;
    top: 50%;
    bottom: auto;
    translate: 0 -50%;
    --translate-y: -50%;
    right: 14px;
  }
}
.c-contact-btn__ja, .c-contact-btn__tel {
  position: relative;
  display: flex;
  align-items: center;
}
.c-contact-btn__ja::before, .c-contact-btn__tel::before {
  content: "";
  display: block;
  background: center center/contain no-repeat url("../img/common/c_icon_yen_gray.svg");
}
.c-contact-btn__ja {
  margin-top: 0.15em;
  letter-spacing: 0.01em;
  font-size: 1rem;
  line-height: 2;
  gap: 0 0.35em;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__ja {
    margin-block: 0 0.13em;
    font-size: 1.15rem;
    font-size: clamp(15px, 12.1125px + 0.77vw, 18px);
  }
}
.c-contact-btn__ja::before {
  width: 1.3em;
  height: 1.3em;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__ja::before {
    width: 1.36em;
    height: 1.36em;
  }
}
.c-contact-btn__tel {
  margin-block: -0.05em 0.18em;
  letter-spacing: 0.02em;
  font-family: var(--font-en-infant);
  font-size: 2rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__tel {
    font-size: 1.92rem;
    font-size: clamp(25px, 16.375px + 2.3vw, 34px);
  }
}
.c-contact-btn__tel::before {
  /* margin-top: 0.15em; */
  margin-right: 0.2em;
  background-image: url("../img/common/c_icon_tel_gray.svg");
  width: 0.65em;
  height: 0.65em;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__tel::before {
    width: 0.82em;
    height: 0.82em;
  }
}
.c-contact-btn__en {
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  font-family: var(--font-en);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__en {
    font-size: 0.76rem;
    font-size: clamp(10px, 7.1125px + 0.77vw, 13px);
  }
}
.c-contact-btn__note {
  margin-top: 12.8px;
  font-size: 0.8rem;
  font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
  line-height: 1.4;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .c-contact-btn__note {
    margin-top: 13px;
    font-size: 1rem;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
  }
}

/**************************************
* .c-gnav
**************************************/
.c-gnav {
  display: flex;
  justify-content: space-between;
  width: 304px;
  gap: 0 13.79%;
}
@media screen and (max-width: 1260px) {
  .c-gnav {
    width: auto;
    max-width: 304px;
    column-gap: 21.6px;
  }
}
@media screen and (max-width: 767px) {
  .c-gnav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 50px;
    padding-inline: 2%;
    width: 100%;
    max-width: 100%;
  }
}
.c-gnav a {
  text-decoration: none;
  color: #fff;
}
.c-gnav__list {
  padding-left: 0;
  list-style-type: none;
}
.c-gnav__item {
  font-size: 0.8rem;
  font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
  line-height: 1.4;
  letter-spacing: 0.03em;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .c-gnav__item {
    font-size: 1rem;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
  }
}
.c-gnav__item:not(:first-child) {
  margin-top: 1.1em;
}
@media screen and (max-width: 767px) {
  .c-gnav__item:not(:first-child) {
    margin-top: 0.92em;
  }
}
.c-gnav__sub-list {
  padding-left: 0;
  list-style-type: none;
  margin-top: 2.13em;
  font-size: 0.75rem;
  font-size: clamp(11.2px, 9.9712px + 0.16vw, 12px);
  line-height: 1.4;
  letter-spacing: 0.03em;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .c-gnav__sub-list {
    font-size: 0.96rem;
    margin-top: 1.84em;
    font-size: clamp(12.5px, 11.075px + 0.38vw, 14px);
  }
}
.c-gnav__sub-item:not(:first-child) {
  margin-top: 0.73em;
}
@media screen and (max-width: 767px) {
  .c-gnav__sub-item:not(:first-child) {
    margin-top: 1.04em;
  }
}

/**************************************
* .c-tags
**************************************/
.c-tag, .c-tags li {
  color: #173960;
  font-size: 0.7rem;
  font-size: clamp(10.4px, 9.1712px + 0.16vw, 11.2px);
  padding-inline: 0.89em;
  letter-spacing: 0.03em;
  border-radius: 9999px;
  background: #e7ebef;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .c-tag, .c-tags li {
    font-size: 0.92rem;
    font-size: clamp(12px, 11.025px + 0.26vw, 13px);
  }
}

.c-tags {
  padding-left: 0;
  list-style-type: none;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 7px 9px;
}
/**************************************
* .c-layout
**************************************/
.c-layout-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0 30px;
}
@media screen and (max-width: 767px) {
  .c-layout-head {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
  }
}
.c-layout-head .c-hl-main {
  flex-shrink: 0;
}
.c-layout-head__leading {
  margin-top: 1.55em;
  font-size: 0.9rem;
  line-height: 1.889;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  max-width: 736px;
  width: calc(100% - 230px);
}
@media screen and (max-width: 767px) {
  .c-layout-head__leading {
    margin-top: 2.46em;
    font-size: 1.07rem;
    font-size: clamp(13px, 12.025px + 0.26vw, 14px);
    line-height: 1.571;
    width: 100%;
  }
}

/**************************************
* .header
**************************************/
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 500;
  display: flex;
  align-items: flex-start;
  pointer-events: none;
}
@media print {
  .header {
    position: absolute;
  }
}
.header > * {
  pointer-events: auto;
}
.header__nav {
  flex: 1;
  display: flex;
  align-items: stretch;
  height: 90px;
  height: clamp(56px, 31.04px + 3.25vw, 72px);
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 767px) {
  .header__nav {
    display: none;
  }
}
.header__list-area {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(15px, 32%) minmax(580px, auto) minmax(15px, 24%);
  align-items: stretch;
  background-color: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(4px);
  transition: background-color 0.3s, backdrop-filter 0.3s;
}
@media screen and (max-width: 1260px) {
  .header__list-area {
    display: block;
  }
}
.header__list-area::before, .header__list-area::after {
  content: "";
  display: block;
}
@media screen and (max-width: 1260px) {
  .header__list-area::before, .header__list-area::after {
    display: none;
  }
}
.header__list {
  padding-left: 0;
  list-style-type: none;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
@media screen and (max-width: 1260px) {
  .header__list {
    max-width: 600px;
    margin-inline: auto;
    padding-inline: 15px;
    height: 100%;
  }
}
.header__list a {
  height: 100%;
  padding-inline: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #000;
  text-decoration: none;
  transition: color 0.3s;
}
.header__list a:hover {
  font-weight: bold;
}
.header__list-ja {
  margin-block: 0.37em;
  font-size: 0.8rem;
  font-size: clamp(10.8px, 7.6512px + 0.41vw, 12.8px);
  line-height: 1.2;
  letter-spacing: 0.03em;
}
.header__list a:hover .header__list-ja {
  font-family: var(--font-ja-bold);
  font-weight: 600;
}
.header__list-en {
  font-family: var(--font-en);
  font-size: 0.7rem;
  font-size: clamp(9.6px, 7.0656px + 0.33vw, 11.2px);
  letter-spacing: 0.05em;
  font-weight: 300;
  line-height: 1.4;
}
.header__list a:hover .header__list-en {
  font-weight: 600;
}
.header__btn-area {
  padding-left: 0;
  list-style-type: none;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 22.05%;
  min-width: 240px;
}
.header__btn {
  font-size: 0.8rem;
  font-size: clamp(10.8px, 7.6512px + 0.41vw, 12.8px);
  border-left: 1px solid #fff;
}
.header__btn a {
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 100%;
  background-color: #000000;
  text-decoration: none;
  text-align: center;
  color: #fff;
  transition: background-color 0.3s;
}
.header__btn a:hover {
  background-color: #1a2e44;
}
.header__btn-icon {
  width: 1.62em;
  margin-block: 0.12em;
}
.header.is-transparent .header__list-area {
  background-color: transparent;
  backdrop-filter: none;
}
html:not(.js-enabled) .header.is-transparent .header__list-area {
  background-color: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(4px);
}
.header.is-transparent .header__list a {
  color: #fff;
}
html:not(.js-enabled) .header.is-transparent .header__list a {
  color: #000;
}

/**************************************
* .menu
**************************************/
.menu {
  position: fixed;
  inset: 0;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  overflow: hidden;
  background: linear-gradient(45deg, #173960 20%, #415E7E 80%);
  z-index: 600;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.menu__scroll {
  position: relative;
  max-height: 100%;
  overflow-y: auto;
}
.menu__ctt {
  padding-block: 151px 72px;
  transform: translateY(10px) scale(1.03);
  transition: transform 0.4s ease;
}
.menu.is-open .menu__ctt {
  transform: translateY(0) scale(1);
}
.menu__logo {
  position: absolute;
  top: 0;
  left: 0;
}
.menu__logo .c-logo {
  background: transparent;
}
@media screen and (max-width: 767px) {
  .menu .c-gnav,
  .menu .c-contact-btn {
    margin-inline: auto;
    width: 520px;
    max-width: 100%;
  }
  .menu .c-gnav {
    padding-inline: 10.13%;
    grid-template-columns: 1fr max-content;
  }
}
@media screen and (max-width: 767px) and (max-width: 374px) {
  .menu .c-gnav {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 767px) {
  .menu .c-gnav__item {
    position: relative;
    padding-left: 0.85em;
    font-size: 1.07rem;
    font-size: clamp(14px, 13.025px + 0.26vw, 15px);
  }
  .menu .c-gnav__item::before {
    content: "";
    position: absolute;
    top: 0.5em;
    left: 0;
    display: block;
    background: linear-gradient(-132deg, #ab6333 0%, #dda665 100%);
    width: 0.35em;
    height: 0.35em;
    border-radius: 50%;
  }
  .menu .c-gnav__item:not(:first-child) {
    margin-top: 1.46em;
  }
  .menu .c-gnav__sub-item {
    padding-left: 0.92em;
  }
  .menu .c-contact-btn {
    margin-top: 44px;
    padding-inline: 10.13%;
  }
  .menu .c-contact-btn__box {
    height: 72px;
  }
  .menu .c-contact-btn__note {
    color: #fff;
    font-size: 0.92rem;
    font-size: clamp(12px, 10.0875px + 0.51vw, 14px);
  }
}

.menu-btn {
  display: none;
  position: relative;
  -webkit-appearance: none;
  appearance: none;
  border-width: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
  position: fixed;
  top: 10px;
  right: 10px;
  width: 45px;
  width: clamp(45px, 30.6375px + 3.83vw, 60px);
  height: 45px;
  height: clamp(45px, 30.6375px + 3.83vw, 60px);
  background: #000;
  border-radius: 2.5px;
  cursor: pointer;
  z-index: 610;
}
@media screen and (max-width: 767px) {
  .menu-btn {
    display: block;
  }
}
.menu-btn::before, .menu-btn::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: calc(50% - 2px - 1.5px);
  translate: -50% 0;
  width: 44.44%;
  aspect-ratio: 20/1.5;
  background: #fff;
  transition: top 0.3s, rotate 0.3s;
}
.menu-btn::after {
  top: calc(50% + 2px);
}

body:has(.menu.is-open) {
  overflow: hidden;
}
body:has(.menu.is-open) .menu-btn::before, body:has(.menu.is-open) .menu-btn::after {
  top: 50%;
  rotate: 30deg;
}
body:has(.menu.is-open) .menu-btn::after {
  rotate: -30deg;
}

/**************************************
* .main
**************************************/
.main > *:last-child {
  padding-bottom: var(--footer-margin-top);
}

/**************************************
* .contact
**************************************/
.contact {
  padding-block: min(9.39vw, 118.4px) min(7.61vw, 96px);
  color: #fff;
  border-bottom: 1px solid rgb(255 255 255 / 0.4);
}
@media screen and (max-width: 767px) {
  .contact {
    padding-block: 87px 52px;
    border-bottom-width: 0.5px;
  }
}
.contact .c-hl-main {
  text-align: left;
}
@media screen and (max-width: 1260px) {
  .contact .c-hl-main {
    text-align: center;
  }
}
.contact__row {
  margin-top: 47px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 1260px) {
  .contact__row {
    margin-top: 32px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
}
.contact__desc {
  margin-top: 1.75em;
  font-size: 0.8rem;
  font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
  line-height: 2;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1260px) {
  .contact__desc {
    margin-block: 0 3.12em;
    text-align: center;
  }
}
@media screen and (max-width: 767px) {
  .contact__desc {
    margin-bottom: 46px;
    font-size: 1rem;
    font-size: clamp(13px, 12.025px + 0.26vw, 14px);
    line-height: 1.692;
  }
}

/**************************************
* .footer
**************************************/
.footer {
  background: center center/cover no-repeat url("../img/footer/footer_bg.webp") #524b44;
  color: #fff;
}
.footer__row {
  margin-top: 56px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .footer__row {
    margin-top: 46px;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
}
@media screen and (max-width: 767px) {
  .footer__logo-area {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
.footer__logo-lead {
  margin-top: 0.77em;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 0.9rem;
  font-size: clamp(11.2px, 6.208px + 0.65vw, 14.4px);
  letter-spacing: -0.01em;
}
@media screen and (max-width: 767px) {
  .footer__logo-lead {
    margin-top: 0.64em;
    font-size: 1.3rem;
    font-size: clamp(17px, 14.1125px + 0.77vw, 20px);
  }
}
.footer__logo-lead .u-kana {
  --letter-spacing: -0.08em;
}
.footer .c-gnav {
  margin-top: 2.72%;
}
@media screen and (max-width: 767px) {
  .footer .c-gnav {
    margin-top: 49px;
  }
}
.footer__btm {
  padding-block: min(9.52vw, 120px) min(5.07vw, 64px);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .footer__btm {
    margin-top: 53px;
    padding-block: 28px 35px;
    border-top: 0.5px solid rgb(255 255 255 / 0.4);
    flex-direction: column-reverse;
    row-gap: 31px;
  }
}
.footer__copyright {
  font-family: var(--font-en);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .footer__copyright {
    font-size: 0.57rem;
    font-size: clamp(7.5px, 5.1px + 0.64vw, 10px);
  }
}
.footer__btm-nav {
  padding-left: 0;
  list-style-type: none;
  display: flex;
  gap: 0 30px;
  font-size: 0.75rem;
  font-size: clamp(10.4px, 7.8656px + 0.33vw, 12px);
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .footer__btm-nav {
    font-size: 0.96rem;
    font-size: clamp(12.5px, 11.075px + 0.38vw, 14px);
  }
}
.footer__btm-nav a {
  text-decoration: none;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .footer--bnr-margin {
    padding-bottom: calc(var(--c-bnr-estimate-width) / 776 * 560);
  }
}
.footer--bnr-margin .c-gnav,
.footer--bnr-margin .footer__btm {
  margin-right: var(--footer-right-margin);
}

/**************************************
* .sub-mv
**************************************/
.sub-mv {
  position: relative;
  height: max(390px, 26.66vw);
  background: #000;
}
@media screen and (max-width: 767px) {
  .sub-mv {
    min-height: 280px;
    height: auto;
    padding-bottom: 70px;
  }
}
.sub-mv__bg {
  position: absolute;
  inset: 0;
}
.sub-mv__bg img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}
.sub-mv__ttl {
  position: relative;
  height: 100%;
  margin-left: 7.6vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
@media screen and (max-width: 1260px) {
  .sub-mv__ttl {
    margin-inline: var(--wrapper-padding);
  }
}
@media screen and (max-width: 767px) {
  .sub-mv__ttl {
    justify-content: flex-start;
  }
}
.sub-mv__ttl-en {
  --rotate-text-delay: 0.7s;
  margin-bottom: 0.28em;
  padding-top: 0.9em;
  font-family: var(--font-en);
  font-weight: 400;
  letter-spacing: 0.03em;
  font-size: 5rem;
  font-size: clamp(56px, 40.0256px + 2.08vw, 80px);
  color: #fff;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .sub-mv__ttl-en {
    padding-top: calc(var(--header-logo-height) + 30px);
    font-size: min(13.86vw, clamp(46px, 38.35px + 2.04vw, 54px));
  }
}
.sub-mv__ttl-ja {
  --clip-delay: 1s;
  font-family: var(--font-serif);
  font-size: 1rem;
  font-size: clamp(13.6px, 9.8368px + 0.49vw, 16px);
  font-weight: 500;
  color: #fff;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .sub-mv__ttl-ja {
    font-size: 0.7rem;
    font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
  }
}

/**************************************
* .front-mv
**************************************/
.front-mv {
  position: relative;
  overflow: hidden;
  height: 100vh;
  height: 100svh;
  min-height: 40vw;
  background: #000;
}
@media print {
  .front-mv {
    height: 600px;
  }
}
.front-mv__bg {
  display: flex;
  align-items: stretch;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .front-mv__bg {
    flex-direction: column;
  }
}
.front-mv__bg > div {
  width: 50%;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .front-mv__bg > div {
    width: 100%;
    height: 50%;
  }
}
.front-mv__bg picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.front-mv__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.front-mv__txt {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  color: #fff;
}
.front-mv__ttl-main, .front-mv__ttl-sub {
  --fade-delay: 0.3s;
  --fade-duration: 1.2s;
}
.front-mv__ttl-main {
  margin-block: 0.5em 0.18em;
  padding-inline: 0.5em;
  text-align: center;
  font-size: 3.12vw;
  line-height: 1.5;
  letter-spacing: 0.15em;
  font-weight: 500;
  font-family: var(--font-serif);
  white-space: nowrap;
}
@media screen and (max-width: 1260px) {
  .front-mv__ttl-main {
    font-size: clamp(48px, 29.2608px + 2.44vw, 60px);
  }
}
@media screen and (max-width: 767px) {
  .front-mv__ttl-main {
    margin-block: -0.88em 0.18em;
    font-size: min(11.33vw, 3.69rem);
  }
}
.front-mv__ttl-lts-small {
  letter-spacing: 0em;
}
.front-mv__ttl-mr-small {
  margin-right: -0.7em;
}
.front-mv__ttl-sub {
  text-align: center;
  font-size: 1.35vw;
  letter-spacing: 0.1em;
  font-family: var(--font-ja-bold);
  font-weight: 600;
  font-feature-settings: "palt";
}
@media screen and (max-width: 1260px) {
  .front-mv__ttl-sub {
    font-size: clamp(18px, 5.4816px + 1.63vw, 26px);
  }
}
@media screen and (max-width: 767px) {
  .front-mv__ttl-sub {
    font-size: min(5.06vw, 1.46rem);
  }
}
.front-mv__deco {
  --fade-delay: 0.4s;
  --fade-translate: 0 50%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  margin-bottom: -0.19em;
  margin-right: -0.03em;
  font-size: 10.93vw;
  font-weight: 420;
  letter-spacing: 0.036em;
  font-family: var(--font-en);
  line-height: 1;
  color: #fff;
  white-space: nowrap;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .front-mv__deco {
    margin-right: 0;
    margin-left: 0.08em;
    font-size: 7.3rem;
  }
}
.front-mv__deco-scroll {
  display: flex;
  max-width: none;
  width: max-content;
  animation: auto-scroll 34s linear infinite;
  will-change: transform;
  gap: 0 0.3em;
}
.front-mv__deco-track {
  display: flex;
  max-width: none;
  gap: 0 0.3em;
}

/**************************************
* .reco-plan
**************************************/
.reco-plan {
  margin-top: max(67.2px, 3.5vw);
}
@media screen and (max-width: 767px) {
  .reco-plan {
    margin-top: 67px;
  }
}
.reco-plan .c-hl-bracket {
  margin-left: 5.36vw;
}
.reco-plan__list-wrap {
  position: relative;
}
.reco-plan__list-bg {
  --clip-delay: 0.3s;
  --clip-duration: 0.8s;
  display: block;
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100vw;
  top: 95px;
  background: linear-gradient(45deg, #173960 20%, #415E7E 80%);
}
@media screen and (max-width: 767px) {
  .reco-plan__list-bg {
    top: 76px;
    --clip-path: inset(100% 0 0 0);
  }
}
.reco-plan__list {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: 53.6px;
  padding-left: 16.14vw;
  padding-bottom: min(8.57vw, 108px);
  list-style-type: none;
}
@media screen and (max-width: 1260px) {
  .reco-plan__list {
    width: 1140px;
    max-width: 100%;
    padding-left: var(--wrapper-padding);
    margin-left: auto;
  }
}
@media screen and (max-width: 767px) {
  .reco-plan__list {
    margin-top: 55px;
    padding-left: 0;
    flex-direction: column;
    align-items: center;
    row-gap: 29px;
    padding-bottom: 70px;
  }
}
.reco-plan__item {
  position: relative;
  width: 31.67%;
  max-width: 510px;
  box-shadow: var(--box-shadow-size) rgb(0 0 0 / 0.3);
}
@media screen and (max-width: 767px) {
  .reco-plan__item {
    width: 80%;
  }
}
.reco-plan__item:nth-child(2) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.reco-plan__item:nth-child(3) {
  --fade-delay: 0.3s;
  --fade-delay-sp: 0s;
}
.reco-plan__item a {
  text-decoration: none;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.reco-plan .c-link-arrow-white::before, .reco-plan .c-link-arrow-white::after {
  --link-arrow-width: clamp(28px, 11.8163px + 2.11vw, 38.4px);
  bottom: auto;
  top: 52%;
  transform: translateY(-50%);
  right: 3.92%;
}
@media screen and (max-width: 767px) {
  .reco-plan .c-link-arrow-white::before, .reco-plan .c-link-arrow-white::after {
    right: min(4.66%, 14px);
  }
}
.reco-plan__item-photo {
  display: block;
  width: 100%;
  aspect-ratio: 510/360;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .reco-plan__item-photo {
    aspect-ratio: 600/400;
  }
}
.reco-plan__item-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out-quad);
}
.reco-plan a:hover .reco-plan__item-photo img {
  transform: scale(1.06);
}
.reco-plan__item-txt {
  flex: 1;
  position: relative;
  background-color: #fff;
  padding: 0.84em 3.15em 1.11em 1.15em;
  font-size: 1.3rem;
  font-size: clamp(14.4px, 4.416px + 1.3vw, 20.8px);
}
@media screen and (max-width: 767px) {
  .reco-plan__item-txt {
    font-size: 1.23rem;
    font-size: clamp(16px, 8.35px + 2.04vw, 24px);
    padding: 1em 3.5em 0.62em 1.06em;
  }
}
.reco-plan__item-ttl {
  margin-block: 0.38em 0.3em;
  font-size: inherit;
  font-weight: 500;
  font-family: var(--font-serif);
  letter-spacing: 0;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .reco-plan__item-ttl {
    margin-block: 0 0.12em;
  }
}
.reco-plan__item-en {
  font-size: 0.7rem;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
  color: #ab6333;
}
@media screen and (max-width: 767px) {
  .reco-plan__item-en {
    font-size: 0.76rem;
    font-size: clamp(10px, 6.175px + 1.02vw, 14px);
  }
}

/**************************************
* .leading-msg
**************************************/
.leading-msg {
  margin-block: min(6.09vw, 76.8px) min(4.25vw, 53.6px);
}
@media screen and (max-width: 767px) {
  .leading-msg {
    margin-top: 73px;
  }
}
.leading-msg__txt {
  text-align: center;
  font-size: 2rem;
  font-size: clamp(24px, 11.4816px + 1.63vw, 32px);
  line-height: 2.25;
  font-family: var(--font-serif);
  letter-spacing: -0.02em;
}
@media screen and (max-width: 767px) {
  .leading-msg__txt {
    font-size: 1.53rem;
    font-size: clamp(20px, 10.4375px + 2.55vw, 30px);
  }
}
.leading-msg__txt strong {
  margin-block: 0.06em;
  display: inline-block;
  color: #ab6333;
  font-size: 1.5em;
  font-weight: normal;
  letter-spacing: -0.06em;
}
@media screen and (max-width: 767px) {
  .leading-msg__txt strong {
    font-size: 1.5em;
  }
}

/**************************************
* .movie-msg
**************************************/
.movie-msg {
  position: relative;
}
.movie-msg__sticky {
  position: relative;
  overflow: hidden;
}
.movie-msg__img-wrap {
  height: 140vh;
  height: 140lvh;
  position: relative;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .movie-msg__img-wrap {
    height: 120vh;
    height: 120lvh;
  }
}
.movie-msg__img {
  position: absolute;
  z-index: 2;
  bottom: calc(140lvh - max(349.6px, 18.2vw) - 80px);
  left: calc(50% - max(536px, 27.91vw) / 2);
  width: max(536px, 27.91vw);
  height: max(349.6px, 18.2vw);
  overflow: hidden;
  background: #2a2a2a;
  transform-origin: center bottom;
}
@media screen and (max-width: 767px) {
  .movie-msg__img {
    width: 65.2vw;
    height: 42.66vw;
    bottom: calc(120lvh - 42.66vw - 40px);
    left: calc(50% - 65.2vw / 2);
  }
}
.movie-msg__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.movie-msg__movie-wrap {
  position: relative;
  padding-block: 93.6px 130.4px;
  z-index: 1;
  opacity: 0;
  overflow: hidden;
  width: 100%;
  margin-top: -100vh;
  margin-top: -100lvh;
  min-height: 100vh;
  min-height: 100lvh;
}
@media screen and (max-width: 767px) {
  .movie-msg__movie-wrap {
    padding-block: 130px 137px;
  }
}
.movie-msg__movie {
  position: absolute;
  inset: 0;
  opacity: 0.9;
  z-index: 0;
  overflow: hidden;
}
.movie-msg__movie::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: rgb(42 42 42 / 0.7);
}
.movie-msg__movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.movie-msg__txt {
  position: relative;
  width: 1390px;
  max-width: 100%;
  padding: 104px var(--wrapper-padding) 0;
  margin-inline: auto;
  color: #fff;
  z-index: 1;
  opacity: 0;
}
@media screen and (max-width: 767px) {
  .movie-msg__txt {
    padding-inline: 0;
  }
}
.movie-msg__txt strong {
  font-family: var(--font-ja-bold);
  font-weight: 600;
}
.movie-msg__desc {
  font-size: 0.9rem;
  line-height: 3.111;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .movie-msg__desc {
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
    line-height: 2.538;
    text-align: center;
    padding-inline: 14px;
  }
}
.movie-msg__desc p:not(:first-child) {
  margin-top: 3.22em;
}
@media screen and (max-width: 767px) {
  .movie-msg__desc p:not(:first-child) {
    margin-top: 2.61em;
  }
}
.movie-msg__closing {
  margin-top: 2em;
  font-size: 2rem;
  line-height: 2;
  font-family: var(--font-serif);
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .movie-msg__closing {
    margin-top: 2.59em;
    font-size: clamp(22px, 16.2625px + 1.53vw, 28px);
    line-height: 1.818;
    text-align: center;
  }
}
.movie-msg__closing .u-kana {
  --letter-spacing: -0.06em;
}
@media screen and (max-width: 767px) {
  .movie-msg__closing .u-kana {
    --letter-spacing: -0.08em;
  }
}

html:not(.js-enabled) .movie-msg__sticky,
html:not(.js-enabled) .movie-msg .pin-spacer {
  display: contents !important;
}
html:not(.js-enabled) .movie-msg__img-wrap {
  display: none !important;
}
html:not(.js-enabled) .movie-msg__movie-wrap {
  opacity: 1 !important;
  margin-block: 0 !important;
}
html:not(.js-enabled) .movie-msg__movie {
  display: none !important;
}
html:not(.js-enabled) .movie-msg__txt {
  color: #524b44 !important;
  opacity: 1 !important;
}

@media print {
  .movie-msg__sticky,
  .movie-msg .pin-spacer {
    display: contents !important;
  }
  .movie-msg__img-wrap {
    display: none !important;
  }
  .movie-msg__movie-wrap {
    opacity: 1 !important;
    margin-block: 0 !important;
  }
  .movie-msg__movie {
    display: none !important;
  }
  .movie-msg__txt {
    color: #524b44 !important;
    opacity: 1 !important;
  }
}
/**************************************
* .plan
**************************************/
.plan {
  margin-block: min(7.8vw, 98.4px) min(11.17vw, 140.8px);
  --plan-arrow-right: 30px;
  --plan-arrow-bottom: 29px;
}
@media screen and (max-width: 767px) {
  .plan {
    margin-block: 88px;
    --plan-arrow-right: 11px;
    --plan-arrow-bottom: 19px;
  }
}
.plan__leading {
  margin-top: 2.88em;
  font-size: 0.9rem;
  line-height: 1.889;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .plan__leading {
    margin-top: 2.14em;
    margin-inline: -1.87vw;
    font-size: 1.07rem;
    font-size: clamp(14px, 12.0875px + 0.51vw, 16px);
    line-height: 1.571;
    text-align: left;
  }
}
.plan__desc {
  font-size: 0.8rem;
  font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
}
@media screen and (max-width: 767px) {
  .plan__desc {
    font-size: 1rem;
    font-size: clamp(13px, 12.025px + 0.26vw, 14px);
  }
}
.plan__list {
  margin-top: min(4.44vw, 56px);
  padding-left: 0;
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(2, 46.32%);
  align-items: stretch;
  gap: min(6.03vw, 76px) 7.35%;
}
@media screen and (max-width: 767px) {
  .plan__list {
    margin-top: 50px;
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
}
.plan__item {
  box-shadow: var(--box-shadow-size) rgb(0 0 0 / 0.08);
  background-color: #fff;
}
.plan__item:nth-child(even) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.plan__item:not(:has(> a)) {
  display: flex;
  flex-direction: column;
}
.plan__item a {
  display: block;
  height: 100%;
  text-decoration: none;
  display: flex;
  flex-direction: column;
}
.plan__item a.c-link-arrow-white {
  --link-arrow-width: clamp(28px, 19.525px + 2.26vw, 48px);
}
@media screen and (max-width: 767px) {
  .plan__item a.c-link-arrow-white {
    --link-arrow-width: 35px;
  }
}
.plan__item a.c-link-arrow-white::before, .plan__item a.c-link-arrow-white::after {
  right: var(--plan-arrow-right);
  bottom: var(--plan-arrow-bottom);
}
.plan__photo {
  background-color: #f5f5f5;
  aspect-ratio: 630/420;
  overflow: hidden;
}
.plan__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-quad);
}
.plan a:hover .plan__photo img {
  transform: scale(1.03);
}
.plan__txt {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 6.82% 9.36% clamp(50.4px, 25.44px + 3.25vw, 66.4px);
}
@media screen and (max-width: 767px) {
  .plan__txt {
    padding: 6.34% 7.3% 48px;
  }
}
.plan__item:has(.plan__arrow-txt) .plan__txt {
  padding-bottom: clamp(63.2px, 38.24px + 3.25vw, 79.2px);
}
@media screen and (max-width: 767px) {
  .plan__item:has(.plan__arrow-txt) .plan__txt {
    padding-bottom: 60px;
  }
}
.plan__name {
  margin-bottom: 0.52em;
  text-align: center;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 2.2rem;
  font-size: clamp(20.8px, -1.7024px + 2.93vw, 35.2px);
  letter-spacing: 0em;
}
@media screen and (max-width: 767px) {
  .plan__name {
    margin-bottom: 0.77em;
    font-size: 1.69rem;
    font-size: clamp(22px, 12.4375px + 2.55vw, 32px);
  }
}
.plan__name .u-kana {
  --letter-spacing: -0.15em;
}
.plan__lead {
  padding: 0.25em 0.85em;
  margin: 0 auto 1.5em;
  border: 1px solid #ab6333;
  border-radius: 9999px;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 1rem;
  font-size: clamp(11.2px, 3.6736px + 0.98vw, 16px);
  color: #ab6333;
  letter-spacing: 0em;
  line-height: 1.3;
  text-align: center;
  text-wrap: balance;
}
@media screen and (max-width: 767px) {
  .plan__lead {
    padding-inline: 1.42em;
    font-size: 1.07rem;
    line-height: 1.429;
  }
}
.plan__lead .u-kana {
  --letter-spacing: -0.15em;
}
@media screen and (max-width: 767px) {
  .plan__desc {
    line-height: 1.615;
  }
}
.plan__price {
  margin-top: 6.4px;
  line-height: 1;
  flex: 1;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  text-align: right;
  font-size: 3.5rem;
  font-size: clamp(35.2px, 2.7136px + 4.23vw, 56px);
}
@media screen and (max-width: 767px) {
  .plan__price {
    font-size: 3.07rem;
    font-size: clamp(40px, 36.175px + 1.02vw, 44px);
  }
}
.plan__price-num {
  margin-right: 0.14em;
  font-family: var(--font-en);
  letter-spacing: 0;
  font-size: inherit;
}
@media screen and (max-width: 767px) {
  .plan__price-num {
    margin-right: 0.2em;
  }
}
.plan__price-unit {
  font-family: var(--font-serif);
  font-size: 0.37em;
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 767px) {
  .plan__price-unit {
    font-size: 0.32em;
  }
}
.plan__deco {
  position: absolute;
  z-index: 2;
  left: -0.63em;
  top: -0.76em;
  padding: 1em;
  margin: -1em;
  width: max-content;
  color: #dda665;
  font-size: 5rem;
  font-size: clamp(48px, -1.92px + 6.5vw, 80px);
  font-family: var(--font-script);
  transform: rotate(-13deg);
  letter-spacing: 0em;
  line-height: 1;
  pointer-events: none;
  --text-shadow: drop-shadow(0px -0.03em 0.06em rgb(255 255 255 / 0.9));
  filter: var(--text-shadow) var(--text-shadow) var(--text-shadow) var(--text-shadow) var(--text-shadow);
}
@media screen and (max-width: 1260px) {
  .plan__deco {
    left: -0.3em;
  }
}
@media screen and (max-width: 767px) {
  .plan__deco {
    font-size: min(16vw, clamp(55px, 35.875px + 5.1vw, 75px));
  }
}
.plan__deco::first-letter {
  margin-right: 0.05em;
}
.plan__item:nth-child(even) .plan__deco {
  --clip-delay: 0.15s;
  --clip-delay-sp: 0s;
}
.plan .c-tags {
  margin-top: 21px;
}
.plan__arrow-txt {
  position: absolute;
  right: calc(var(--plan-arrow-right) + var(--link-arrow-width) + 0.7em);
  bottom: var(--plan-arrow-bottom);
  height: var(--link-arrow-height);
  font-size: 0.8rem;
  font-size: clamp(11.2px, 8.6656px + 0.33vw, 12.8px);
  line-height: var(--link-arrow-height);
}
@media screen and (max-width: 767px) {
  .plan__arrow-txt {
    font-size: 0.92rem;
    font-size: clamp(12px, 11.025px + 0.26vw, 13px);
  }
}

.plan--drink .plan__list {
  grid-template-columns: repeat(3, 1fr);
  column-gap: 2.4%;
}
@media screen and (max-width: 767px) {
  .plan--drink .plan__list {
    grid-template-columns: 1fr;
  }
}
.plan--drink .plan__item {
  --fade-delay: 0s;
  --fade-delay-sp: 0s;
}
.plan--drink .plan__item:nth-child(3n-1) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.plan--drink .plan__item:nth-child(3n) {
  --fade-delay: 0.3s;
  --fade-delay-sp: 0s;
}
.plan--drink .plan__txt {
  padding: 6.82% 6% 10%;
}
.plan--drink .plan__name {
  font-size: 1.62rem;
  font-size: clamp(20px, 10.6304px + 1.22vw, 26px);
}
@media screen and (max-width: 1260px) {
  .plan--drink .plan__name {
    min-height: 2.2em;
  }
}
@media screen and (max-width: 767px) {
  .plan--drink .plan__name {
    min-height: 0;
    font-size: 1.69rem;
    font-size: clamp(22px, 12.4375px + 2.55vw, 32px);
  }
}
@media screen and (max-width: 767px) {
  .plan--drink .plan__name br.u-lte-small-pc {
    display: none;
  }
}
.plan--drink .plan__drink-list {
  padding-left: 2%;
  list-style-type: none;
  font-size: 0.87rem;
  font-size: clamp(11.5px, 7.5832px + 0.51vw, 14px);
}
@media screen and (max-width: 767px) {
  .plan--drink .plan__drink-list {
    font-size: 1rem;
    font-size: clamp(13px, 12.025px + 0.26vw, 14px);
  }
}
.plan--drink .plan__drink-list li {
  padding-left: 0.8em;
  position: relative;
  line-height: 1.4;
}
.plan--drink .plan__drink-list li::before {
  content: "";
  display: block;
  width: 0.35em;
  height: 0.35em;
  background-color: #ab6333;
  border-radius: 50%;
  position: absolute;
  top: 0.6em;
  left: 0;
}
.plan--drink .plan__drink-list li:not(:first-child) {
  margin-top: 0.3em;
}
.plan--drink .plan__deco {
  --clip-delay: var(--fade-delay);
  --clip-delay-sp:var(--fade-delay-sp);
  left: -0.3em;
  font-size: 4rem;
  font-size: clamp(40px, 2.5216px + 4.88vw, 64px);
}
@media screen and (max-width: 767px) {
  .plan--drink .plan__deco {
    font-size: min(16vw, clamp(55px, 35.875px + 5.1vw, 75px));
  }
}
body.single-catering .plan--drink {
  margin-block: 0;
  background: #fff;
}
@media screen and (max-width: 767px) {
  body.single-catering .plan--drink {
    margin-block: 0;
  }
}

/**************************************
* .option
**************************************/
.option {
  padding-block: min(9.33vw, 117.6px) min(8.44vw, 106.4px);
  background: #fff;
}
@media screen and (max-width: 767px) {
  .option {
    padding-block: 73px 100px;
  }
}
.option__wrap {
  margin-top: min(5.46vw, 68.8px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 7.35%;
}
@media screen and (max-width: 767px) {
  .option__wrap {
    margin-top: 44px;
    grid-template-columns: 1fr;
    row-gap: 70px;
  }
}
.option__col:nth-child(even) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.option .c-hl-bracket__en {
  font-size: 0.8rem;
}
@media screen and (max-width: 767px) {
  .option .c-hl-bracket__en {
    font-size: 0.69rem;
    font-size: clamp(9px, 5.175px + 1.02vw, 13px);
  }
}
.option .c-hl-bracket__ja {
  margin-top: 0.28em;
  font-size: 1.9rem;
}
@media screen and (max-width: 767px) {
  .option .c-hl-bracket__ja {
    margin-top: 0.38em;
    font-size: 1.61rem;
    font-size: clamp(21px, 14.2875px + 1.79vw, 28px);
  }
}
.option__list {
  margin-top: 59.2px;
  padding-left: 0;
  list-style-type: none;
}
@media screen and (max-width: 767px) {
  .option__list {
    margin-top: 31px;
  }
}
.option__item:not(:first-child) {
  margin-top: 32px;
}
@media screen and (max-width: 767px) {
  .option__item:not(:first-child) {
    margin-top: 26px;
  }
}
.option__item-inner {
  display: flex;
  gap: 0 5.07%;
  align-items: stretch;
  text-decoration: none;
}
.option__item-inner.c-link-arrow-white {
  --link-arrow-width: clamp(23.2px, -0.5312px + 3.09vw, 38.4px);
}
@media screen and (max-width: 767px) {
  .option__item-inner.c-link-arrow-white {
    --link-arrow-width: 29px;
  }
}
.option__item-inner.c-link-arrow-white::before, .option__item-inner.c-link-arrow-white::after {
  right: 0px;
  bottom: 0;
  margin-bottom: 4.76%;
}
.option__photo {
  width: 34.6%;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .option__photo {
    width: 34.6%;
  }
}
.option__photo-inner {
  aspect-ratio: 218/160;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .option__photo-inner {
    aspect-ratio: 218/200;
  }
}
.option__photo-inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out-quad);
}
.option a:hover .option__photo-inner img {
  transform: scale(1.06);
}
.option__txt {
  padding-bottom: 8.8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  justify-content: center;
  border-bottom: 1px solid #524b44;
}
@media screen and (max-width: 767px) {
  .option__txt {
    justify-content: flex-start;
  }
}
.option__name {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-size: clamp(14.4px, 4.416px + 1.3vw, 20.8px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.3;
  margin-bottom: 0.34em;
}
@media screen and (max-width: 767px) {
  .option__name {
    margin-bottom: 0.53em;
    font-size: 1.15rem;
    font-size: clamp(15px, 7.35px + 2.04vw, 23px);
  }
}
.option__name .u-kana {
  --letter-spacing: -0.1em;
}
.option__desc {
  margin-right: 19%;
  font-size: 0.8rem;
  font-size: clamp(10.4px, 6.6368px + 0.49vw, 12.8px);
  line-height: 1.875;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  min-height: 4.1em;
}
@media screen and (max-width: 767px) {
  .option__desc {
    margin-right: 0;
    font-size: 0.92rem;
    font-size: clamp(12px, 10.0875px + 0.51vw, 14px);
    line-height: 1.5;
  }
}
.option__price {
  font-family: var(--font-serif);
  width: 100%;
  text-align: right;
}
.option__price-num {
  font-size: 1rem;
}
.option__price-unit {
  margin-left: 0.1em;
  font-size: 0.8rem;
}

/**************************************
* .feature
**************************************/
.feature {
  background: linear-gradient(90deg, #173960 20%, #415E7E 100%);
  padding-block: min(5.96vw, 75.2px) min(8.25vw, 104px);
  --photo-col-width: 21.61%;
}
@media screen and (max-width: 767px) {
  .feature {
    padding-block: 67px 85px;
    --photo-col-width: 60.31%;
  }
}
.feature .c-hl-main {
  color: #fff;
}
.feature__wrapper {
  margin: min(5.26vw, 66.4px) auto 0;
  padding-inline: min(4.16%, 64px);
  width: 1536px;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  .feature__wrapper {
    margin-top: 28px;
    padding-inline: var(--wrapper-padding);
  }
}
.feature__slider {
  border: 1px solid #fff;
  background: #173960;
}
.feature__sec {
  display: flex;
  align-items: center;
  padding-block: 100px 5.68%;
}
@media screen and (max-width: 767px) {
  .feature__sec {
    flex-direction: column;
    padding-block: 25px 73px;
  }
}
.feature__num {
  position: absolute;
  right: 0;
  top: 0;
  margin-top: 2.67%;
  color: #dda665;
  font-family: var(--font-script);
  display: flex;
  align-items: center;
  font-size: 6rem;
  font-size: clamp(48px, 15.9744px + 4.17vw, 96px);
  gap: 0 0.13em;
  width: 2.33em;
}
@media screen and (max-width: 767px) {
  .feature__num {
    position: relative;
    right: auto;
    justify-content: center;
    font-size: 4.61rem;
  }
}
.feature__num-feature {
  margin-top: -0.28em;
  font-size: 0.3em;
  line-height: 1;
  letter-spacing: -0.05em;
}
.feature__num-feature::first-letter {
  margin-right: 0.2em;
}
.feature__num-num {
  font-size: inherit;
  line-height: 1;
  letter-spacing: -0.1em;
}
.feature__hl-col {
  flex: 1;
  width: calc((100% - var(--photo-col-width)) / 2);
}
@media screen and (max-width: 767px) {
  .feature__hl-col {
    width: auto;
  }
}
.feature__hl-inner {
  width: max-content;
  margin-inline: auto;
  max-width: 80%;
}
@media screen and (max-width: 767px) {
  .feature__hl-inner {
    width: auto;
    max-width: 100%;
    padding-inline: 12px;
  }
}
.feature__hl-sub {
  margin-top: 2%;
  color: #dda665;
  font-feature-settings: "palt";
  letter-spacing: 0.1em;
  font-size: 0.9rem;
  font-size: clamp(10.4px, 4.1792px + 0.81vw, 14.4px);
}
@media screen and (max-width: 767px) {
  .feature__hl-sub {
    margin-top: 0.84em;
    text-align: center;
    font-size: 1rem;
  }
}
.feature__hl {
  margin-top: 0.38em;
  font-size: 2.2rem;
  font-size: clamp(18.4px, -7.7888px + 3.41vw, 35.2px);
  color: #fff;
  font-weight: normal;
  font-family: var(--font-serif);
  line-height: 1.818;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .feature__hl {
    text-align: center;
    font-size: 1.53rem;
  }
}
.feature__hl .u-kana {
  --letter-spacing: -0.06em;
}
.feature__photo {
  width: var(--photo-col-width);
  max-width: 380px;
}
@media screen and (max-width: 767px) {
  .feature__photo {
    margin-top: 20px;
  }
}
.feature__photo img {
  width: 100%;
}
.feature__txt {
  flex: 1;
}
.feature__desc {
  margin-bottom: 4%;
  padding-inline: 15% 20%;
  font-size: 0.8rem;
  line-height: 2;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  color: #fff;
}
@media screen and (max-width: 1260px) {
  .feature__desc {
    padding-inline: 11%;
  }
}
@media screen and (max-width: 767px) {
  .feature__desc {
    margin-top: 32px;
    padding-inline: 7%;
    line-height: 1.692;
    font-size: 1rem;
  }
}
.feature__slider .swiper-pagination {
  text-align: left;
  left: 2.9%;
  bottom: 0;
  margin-bottom: 2.53%;
  margin-bottom: clamp(1.6px, -14.3744px + 2.08vw, 25.6px);
}
@media screen and (max-width: 767px) {
  .feature__slider .swiper-pagination {
    left: 0;
    right: 0;
    bottom: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.feature__slider .swiper-pagination .swiper-pagination-bullet {
  --padding-block: 10px;
  position: relative;
  margin-inline: 0 20px;
  width: 60px;
  width: clamp(32px, 7.04px + 3.25vw, 48px);
  padding-bottom: 5%;
  height: calc(var(--padding-block) * 2);
  padding-block: var(--padding-block);
  border-radius: 0px;
  background: transparent !important;
  opacity: 1;
}
@media screen and (max-width: 1260px) {
  .feature__slider .swiper-pagination .swiper-pagination-bullet {
    margin-right: 10px;
  }
}
@media screen and (max-width: 767px) {
  .feature__slider .swiper-pagination .swiper-pagination-bullet {
    width: 30px;
  }
}
.feature__slider .swiper-pagination .swiper-pagination-bullet:last-child {
  margin-right: 0;
}
.feature__slider .swiper-pagination .swiper-pagination-bullet::after {
  content: "";
  pointer-events: none;
  display: block;
  position: absolute;
  top: calc(var(--padding-block) - 2.5%);
  left: 0;
  right: 0;
  aspect-ratio: 60/3;
  background: #fff;
  transition: opacity 0.2s;
  opacity: 0.4;
}
@media screen and (max-width: 767px) {
  .feature__slider .swiper-pagination .swiper-pagination-bullet::after {
    aspect-ratio: 30/2;
    top: calc(var(--padding-block) - 3.33%);
  }
}
.feature__slider .swiper-pagination .swiper-pagination-bullet-active {
  opacity: 1;
}
.feature__slider .swiper-pagination .swiper-pagination-bullet-active::after {
  opacity: 1;
}

/**************************************
* .about-us
**************************************/
.about-us {
  padding-block: min(9.14vw, 115.2px) min(12.69vw, 160px);
  background: center top/cover repeat-y url("../img/about-us/about-us_bg.webp");
}
@media screen and (max-width: 767px) {
  .about-us {
    padding-block: 80px 84px;
  }
}
.about-us__wrapper {
  position: relative;
  width: 1536px;
  max-width: 100%;
  margin-inline: auto;
  display: flex;
  gap: 0 6.51%;
}
@media screen and (max-width: 767px) {
  .about-us__wrapper {
    flex-direction: column;
  }
}
.about-us .c-hl-main {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  .about-us .c-hl-main {
    position: relative;
  }
}
.about-us__lcol {
  width: 32.55%;
  margin-top: 137.6px;
  margin-left: 10.1%;
}
@media screen and (max-width: 1260px) {
  .about-us__lcol {
    margin-left: var(--wrapper-padding);
  }
}
@media screen and (max-width: 767px) {
  .about-us__lcol {
    margin-top: 40px;
    margin-left: 0;
    width: 58.66vw;
  }
}
.about-us__photo-1 img {
  display: block;
  width: 100%;
}
.about-us__rcol {
  flex: 1;
  margin-right: 12.7%;
}
@media screen and (max-width: 1260px) {
  .about-us__rcol {
    margin-right: var(--wrapper-padding);
  }
}
@media screen and (max-width: 767px) {
  .about-us__rcol {
    display: flex;
    flex-direction: column;
    margin-right: 0;
  }
}
.about-us__photo-2 {
  margin-left: auto;
  margin-top: 3px;
  width: 31.96%;
}
@media screen and (max-width: 767px) {
  .about-us__photo-2 {
    position: relative;
    z-index: 2;
    width: 31.2%;
    margin-top: -9.87vw;
    margin-right: 41.06vw;
  }
}
.about-us__photo-2 img {
  display: block;
  width: 100%;
}
.about-us__desc {
  margin-top: min(8.73vw, 110px);
  margin-right: 28%;
  font-size: 0.8rem;
  line-height: 2;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1260px) {
  .about-us__desc {
    margin-right: 6%;
  }
}
@media screen and (max-width: 767px) {
  .about-us__desc {
    font-size: 1rem;
    line-height: 1.692;
    margin-top: 40px;
    margin-right: 0;
    padding-inline: var(--wrapper-padding);
  }
}
.about-us__btn {
  margin-top: 8.33%;
}
@media screen and (max-width: 767px) {
  .about-us__btn {
    margin-top: 28px;
    margin-inline: auto;
  }
}
.about-us__photo-3 {
  margin: 30.05% 1.36% 0 auto;
  width: 47.67%;
  min-width: 280px;
}
@media screen and (max-width: 767px) {
  .about-us__photo-3 {
    order: -1;
    width: 46.53vw;
    min-width: 0;
    margin-top: 4.53vw;
    margin-right: 5.06vw;
  }
}
.about-us__photo-3 img {
  display: block;
  width: 100%;
}

/**************************************
* .front-gallery
**************************************/
.front-gallery {
  --col-gap: 0.41vw;
  max-width: 100%;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .front-gallery {
    --col-gap: 0.8vw;
  }
}
.front-gallery__scroll {
  display: flex;
  max-width: none;
  width: max-content;
  gap: 0 var(--col-gap);
  animation: auto-scroll 180s linear infinite;
  will-change: transform;
}
.front-gallery__track {
  display: flex;
  max-width: none;
  gap: 0 var(--col-gap);
}
.front-gallery__item {
  width: 29.16vw;
  min-width: 300px;
}
@media screen and (max-width: 767px) {
  .front-gallery__item {
    width: 59.03vw;
    min-width: 0;
  }
}
.front-gallery__item img {
  display: block;
  width: 100%;
}

/**************************************
* .case
**************************************/
.case {
  background: #fff;
  padding-block: min(9.07vw, 114.4px) min(5.9vw, 74.4px);
}
@media screen and (max-width: 767px) {
  .case {
    padding-block: 93px 80px;
  }
}
.case__list {
  margin-top: min(4.44vw, 56px);
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
  gap: 50px 4.6%;
}
@media screen and (max-width: 767px) {
  .case__list {
    margin-top: 29px;
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 767px) {
  .case__list.c-wrap {
    padding-inline: 10%;
  }
}
.case__item {
  border-bottom: 1px solid #524b44;
  max-width: 420px;
}
@media screen and (max-width: 767px) {
  .case__item {
    margin-inline: auto;
  }
}
.case__item:nth-child(2) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.case__item:nth-child(3) {
  --fade-delay: 0.3s;
  --fade-delay-sp: 0s;
}
.case__item article {
  height: 100%;
}
.case__item a {
  display: block;
  height: 100%;
  text-decoration: none;
  padding-bottom: 36px;
}
@media screen and (max-width: 1260px) {
  .case__item a {
    padding-bottom: 44px;
  }
}
@media screen and (max-width: 767px) {
  .case__item a {
    padding-bottom: 24px;
  }
}
.case__item a.c-link-arrow-white {
  --link-arrow-width: clamp(29.2px, 14.8571px + 1.87vw, 38.4px);
}
.case__item a.c-link-arrow-white::before, .case__item a.c-link-arrow-white::after {
  bottom: 0;
  margin-bottom: 7.14%;
  right: 0;
}
@media screen and (max-width: 767px) {
  .case__item a.c-link-arrow-white::before, .case__item a.c-link-arrow-white::after {
    margin-bottom: 14px;
  }
}
.case__photo {
  aspect-ratio: 420/330;
  background-color: #f4f4f4;
}
.case__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.case__name {
  margin-block: 1.3em 0.19em;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-size: clamp(16px, 8.4736px + 0.98vw, 20.8px);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.4;
}
@media screen and (max-width: 1260px) {
  .case__name {
    margin-top: 0.8em;
  }
}
@media screen and (max-width: 767px) {
  .case__name {
    margin-bottom: 0.31em;
    font-size: 1.23rem;
    font-size: clamp(16px, 10.2625px + 1.53vw, 22px);
  }
}
.case__desc {
  margin-right: 85.6px;
  font-size: 0.8rem;
  font-size: clamp(10.4px, 6.6368px + 0.49vw, 12.8px);
  line-height: 1.875;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1260px) {
  .case__desc {
    margin-right: 0;
  }
}
@media screen and (max-width: 767px) {
  .case__desc {
    margin-right: 54px;
    font-size: 1rem;
    font-size: clamp(13px, 11.0875px + 0.51vw, 15px);
    line-height: 1.615;
  }
}
.case__btn {
  margin-top: min(5.26vw, 66.4px);
}
@media screen and (max-width: 767px) {
  .case__btn {
    margin-top: 58px;
  }
}
.case__btn .c-btn-main {
  margin-inline: auto;
}

/**************************************
* .voice
**************************************/
.voice {
  padding-block: min(7.38vw, 93px) min(8.25vw, 104px);
  background-color: #f4f4f4;
}
@media screen and (max-width: 767px) {
  .voice {
    padding-block: 70px 52px;
  }
}
.voice__slider {
  --slider-gap: clamp(24px, -0.96px + 3.25vw, 40px);
  --item-width: clamp(288px, 213.0432px + 9.76vw, 336px);
  margin-top: 40px;
}
@media screen and (max-width: 767px) {
  .voice__slider {
    --item-width: 268px;
    --item-width: clamp(268px, 218.2375px + 13.27vw, 320px);
    --slider-gap: 0;
    margin-top: 36px;
  }
}
@media screen and (max-width: 374px) {
  .voice__slider {
    --item-width: 80vw;
  }
}
.voice__slider.swiper {
  overflow: visible;
}
.voice__slider .swiper-slide {
  height: auto;
}
@media screen and (max-width: 767px) {
  .voice__slider.swiper-grid-column > .swiper-wrapper {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    row-gap: 7px;
  }
}
@media screen and (max-width: 767px) {
  .voice__slider.c-wrap {
    padding-inline: 10%;
  }
}
.voice__list {
  padding-left: 0;
  list-style-type: none;
  align-items: stretch;
}
.voice__list:not(:has(> :nth-child(3))) { /* リストの数が2個以下 */
  justify-content: center;
}
.voice__item {
  container-type: inline-size;
  width: calc(var(--slider-gap) + var(--item-width));
  padding-inline: calc(var(--slider-gap) / 2);
}
@media screen and (max-width: 767px) {
  .voice__item {
    height: auto !important;
    width: var(--item-width) !important;
  }
}
.voice__item:first-child {
  width: calc(var(--slider-gap) / 2 + var(--item-width));
  padding-left: 0;
}
.voice__item:last-child {
  width: calc(var(--slider-gap) / 2 + var(--item-width));
  padding-right: 0;
}
.voice__item-inner {
  height: 100%;
  background: #fff;
  border-radius: 60px;
  border-radius: 14.28cqw;
  border-bottom-left-radius: 0px;
  box-shadow: var(--box-shadow-size) rgb(0 0 0 / 0.1);
}
@media screen and (max-width: 767px) {
  .voice__item-inner {
    border-radius: 30px;
    border-radius: 11.19cqw;
    border-bottom-left-radius: 0px;
  }
}
.voice__item-inner a,
.voice__item-wrap {
  padding: 20px 4.76% 66px;
  height: 100%;
  display: block;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .voice__item-inner a,
  .voice__item-wrap {
    padding: 12px 12px 44px;
  }
}
.voice__item-inner a.c-link-arrow-white::before, .voice__item-inner a.c-link-arrow-white::after {
  right: 40px;
  bottom: 30px;
}
@media screen and (max-width: 767px) {
  .voice__item-inner a.c-link-arrow-white::before, .voice__item-inner a.c-link-arrow-white::after {
    --link-arrow-width: 29px;
    right: 20px;
    bottom: 20px;
  }
}
.voice__avatar img {
  display: block;
  margin-left: auto;
  width: 120px;
  width: 28.57cqw;
}
@media screen and (max-width: 767px) {
  .voice__avatar img {
    width: 77.5px;
  }
}
.voice__ttl, .voice__desc {
  margin-inline: 20px;
}
@media screen and (max-width: 767px) {
  .voice__ttl, .voice__desc {
    margin-inline: 12px;
  }
}
.voice__ttl {
  margin-block: 0.46em 6px;
  font-weight: 500;
  font-family: var(--font-serif);
  letter-spacing: 0em;
  line-height: 1.4;
  font-size: 1.3rem;
  font-size: clamp(17.6px, 12.608px + 0.65vw, 20.8px);
}
@media screen and (max-width: 767px) {
  .voice__ttl {
    margin-block: 0.58em 0.58em;
    font-size: 1.3rem;
    font-size: clamp(17px, 12.2px + 1.28vw, 22px);
  }
}
.voice__ttl .u-kana {
  --letter-spacing: -0.06em;
}
.voice__desc {
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  line-height: 1.875;
}
@media screen and (max-width: 767px) {
  .voice__desc {
    line-height: 1.615;
    font-size: 1rem;
  }
}
.voice__controller {
  margin-top: 33.6px;
  display: flex;
  align-items: center;
  column-gap: 45px;
}
@media screen and (max-width: 767px) {
  .voice__controller {
    margin-top: 32px;
    margin-inline: -1vw -3vw;
    column-gap: 9px;
  }
}
.voice__nav-area {
  display: flex;
  gap: 0 20px;
}
@media screen and (max-width: 767px) {
  .voice__nav-area {
    column-gap: 12px;
  }
}
.voice__nav {
  position: relative;
  appearance: none;
  border-width: 0;
  box-shadow: none;
  background: transparent;
  width: 40px;
  height: 57px;
  padding: 10px;
  margin-left: -10px;
  transition: background-color 0.3s;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .voice__nav {
    width: 31.5px;
    height: 42.5px;
  }
}
.voice__nav::after {
  content: "";
  display: block;
  width: 20px;
  height: 37px;
  background: center center/100% auto no-repeat url("../img/common/c_chevron_01_brown.svg");
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .voice__nav::after {
    width: 11.5px;
    height: 22.5px;
  }
}
.voice__nav.swiper-button-disabled {
  background-color: transparent;
}
.voice__nav--prev::after {
  transform: scaleX(-1);
}
.voice__pagination {
  position: relative;
  flex: 1;
  cursor: pointer;
  height: 24px;
}
@media screen and (max-width: 767px) {
  .voice__pagination {
    height: 22.5px;
  }
}
.voice__pagination::before,
.voice__pagination .swiper-scrollbar-drag::before {
  content: "";
  display: block;
  border-radius: 9999px;
  background-color: #fff;
  width: 100%;
  height: 4px;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 2px);
}
@media screen and (max-width: 767px) {
  .voice__pagination::before,
  .voice__pagination .swiper-scrollbar-drag::before {
    height: 2.5px;
    top: calc(50% - 1.25px);
  }
}
.voice__pagination .swiper-scrollbar-drag {
  height: 100%;
  background-color: transparent;
}
.voice__pagination .swiper-scrollbar-drag::before {
  background: #524b44;
  opacity: 0.3;
}

/**************************************
* .estimate
**************************************/
.estimate {
  padding-block: min(10.31vw, 130px) 0;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .estimate {
    padding-block: 67px 0;
  }
}
@supports (interpolate-size: allow-keywords) {
  .estimate {
    interpolate-size: allow-keywords;
  }
}
.estimate__box {
  margin-top: min(4.76vw, 60px);
  padding: 4.4% 6% 55px;
  background: linear-gradient(90deg, #173960 20%, #415E7E 100%);
}
@media screen and (max-width: 767px) {
  .estimate__box {
    margin-top: 38px;
    padding: 35px 7%;
  }
}
.estimate__box + .estimate__box {
  margin-top: min(8.96vw, 113px);
}
.estimate {
  --border-radius: 5px;
}
.estimate form select,
.estimate form .estimate__result-bar {
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--box-shadow-size) rgb(0 0 0 / 0.26);
}
@supports (interpolate-size: allow-keywords) {
  .estimate__option::details-content {
    height: 0;
    overflow: clip;
    transition: height 0.4s ease, opacity 0.4s, content-visibility 0.4s allow-discrete;
    opacity: 0;
  }
}
.estimate__option[open]::before {
  transform: rotate(90deg);
  opacity: 0;
}
.estimate__option[open]::after {
  transform: rotate(180deg);
}
.estimate__option[open] .estimate__option-ttl::before {
  transform: translateY(-50%) rotate(90deg);
  opacity: 0;
}
.estimate__option[open] .estimate__option-ttl::after {
  transform: translateY(-50%) rotate(180deg);
}
@supports (interpolate-size: allow-keywords) {
  .estimate__option[open]::details-content {
    opacity: 1;
    height: auto;
  }
}
.estimate__option-ttl {
  position: relative;
  color: #fff;
  border: 1px solid rgb(255 255 255 / 0.4);
  background: rgb(255 255 255 / 0.1);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 14px;
  cursor: pointer;
  border-radius: 5px;
  transition: background-color 0.3s;
}
@media screen and (max-width: 767px) {
  .estimate__option-ttl {
    padding-block: 10px 12px;
    flex-direction: column;
    row-gap: 5px;
    border-radius: 2.5px;
  }
}
.estimate__option-ttl:hover {
  background: rgb(255 255 255 / 0.15);
}
.estimate__option-ttl::before, .estimate__option-ttl::after {
  content: "";
  display: block;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 1px;
  background: #fff;
  pointer-events: none;
  transition: transform 0.4s ease, opacity 0.4s;
}
@media screen and (max-width: 767px) {
  .estimate__option-ttl::before, .estimate__option-ttl::after {
    right: 10px;
    width: 20px;
  }
}
.estimate__option-ttl::after {
  transform: translateY(-50%) rotate(90deg);
}
.estimate__option-ttl-en {
  font-size: 2.18rem;
  font-weight: 300;
  font-family: var(--font-en);
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .estimate__option-ttl-en {
    line-height: 1;
  }
}
.estimate__option-ttl-ja {
  font-size: 0.87rem;
  font-weight: 500;
  font-family: var(--font-serif);
}
@media screen and (max-width: 767px) {
  .estimate__option-ttl-ja {
    line-height: 1;
  }
}
.estimate__option-list {
  padding-top: 36px;
  padding-left: 0;
  list-style-type: none;
  color: #fff;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px 48px;
}
@media screen and (max-width: 1200px) {
  .estimate__option-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .estimate__option-list {
    padding-block: 19px 10px;
    grid-template-columns: 1fr;
  }
}
.estimate__option-item {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  border-bottom: 1px solid rgb(255 255 255 / 0.4);
  gap: 0 1.2rem;
  padding-bottom: 14px;
}
.estimate__option-txt {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.estimate__option-name {
  font-size: 1rem;
  font-family: var(--font-serif);
  line-height: 1.3;
}
.estimate__option-name small {
  font-size: 0.8em;
}
.estimate__option-price-row {
  flex: 1;
  margin-top: 0.3rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0 1em;
}
.estimate__option-small {
  line-height: 1;
  font-size: 0.75rem;
}
.estimate__option-price {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  font-family: var(--font-serif);
}
.estimate__option-tax {
  font-size: 0.68rem;
  line-height: 1;
  margin-bottom: 0.1em;
}
.estimate__option-price-num {
  font-size: 1rem;
  line-height: 1;
  margin-inline: 0.22em 0.07em;
}
.estimate__option-yen {
  font-size: 0.75rem;
  line-height: 1;
  margin-bottom: 0.05em;
}
.estimate__option-input {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0 4px;
}
.estimate__option-input input {
  width: 3.62em;
  height: 2.25em;
  text-align: center;
  padding-left: 0.93em;
  font-size: 16px;
}
.estimate__option-quantity {
  font-size: 0.75rem;
}
.estimate__condition-row {
  margin-bottom: 34.4px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 8.47%;
  container-type: inline-size;
}
@media screen and (max-width: 767px) {
  .estimate__condition-row {
    margin-bottom: 26px;
    grid-template-columns: 1fr;
    width: 83.66%;
    max-width: 100%;
    margin-inline: auto;
    row-gap: 34px;
  }
}
.estimate__condition-col {
  position: relative;
}
.estimate__condition-col::before, .estimate__condition-col::after {
  content: "";
  position: absolute;
  left: calc(100% + 50px);
  left: calc(100% + 4.32cqw);
  top: 50%;
  display: block;
  width: 1px;
  height: 42px;
  height: 3.63cqw;
  background: #fff;
  translate: 0 -50%;
  rotate: 45deg;
}
@media screen and (max-width: 767px) {
  .estimate__condition-col::before, .estimate__condition-col::after {
    left: 50%;
    top: calc(100% + 7px);
    translate: -50% 0;
    height: 20px;
  }
}
.estimate__condition-col::after {
  rotate: -45deg;
}
.estimate__condition-col:last-child::before, .estimate__condition-col:last-child::after {
  content: none;
}
.estimate__result {
  position: relative;
  margin-top: 64px;
  font-size: 3.5rem;
  font-size: clamp(41.6px, 19.0976px + 2.93vw, 56px);
}
@media screen and (max-width: 767px) {
  .estimate__result {
    margin-top: 35px;
    font-size: 2.84rem;
    font-size: clamp(37px, 27.4375px + 2.55vw, 47px);
  }
}
.estimate__result::before, .estimate__result::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  background: #fff;
  position: absolute;
  bottom: calc(100% + 32px);
  right: calc(50% - 2.5px);
  transform: rotate(33deg);
}
@media screen and (max-width: 767px) {
  .estimate__result::before, .estimate__result::after {
    width: 17px;
    bottom: calc(100% + 16px);
    right: calc(50% - 1.5px);
  }
}
.estimate__result::after {
  left: calc(50% - 2.5px);
  transform: rotate(-33deg);
}
@media screen and (max-width: 767px) {
  .estimate__result::after {
    left: calc(50% - 1.5px);
  }
}
.estimate__error {
  margin-bottom: 1em;
  font-size: 0.8rem;
  text-align: center;
  color: #fff;
}
.estimate__result-bar {
  display: flex;
  height: 1.85em;
}
@media screen and (max-width: 767px) {
  .estimate__result-bar {
    flex-direction: column;
    height: auto;
  }
}
.estimate__result-label {
  display: grid;
  place-content: center;
  font-size: 0.28em;
  letter-spacing: 0.03em;
  color: #fff;
  background: #0d0d0d;
  width: 42.42%;
}
@media screen and (max-width: 767px) {
  .estimate__result-label {
    width: 100%;
    height: 2.33em;
    font-size: 1.15rem;
    font-size: clamp(15px, 13.0875px + 0.51vw, 17px);
  }
}
.estimate__result-price {
  background: #fff;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 0.61em;
  font-size: inherit;
}
@media screen and (max-width: 767px) {
  .estimate__result-price {
    flex: 0 0 auto;
    justify-content: center;
    align-items: center;
    padding-right: 0;
    height: 1.35em;
  }
}
.estimate__result-num {
  margin-right: 0.18em;
  margin-bottom: 0.12em;
  font-size: inherit;
  letter-spacing: 0.01em;
  font-weight: 300;
  font-family: var(--font-en);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .estimate__result-num {
    margin-right: 0.1em;
    margin-bottom: 0.21em;
  }
}
.estimate__result-yen {
  margin-bottom: -0.58em;
  font-family: var(--font-serif);
  font-size: 0.37em;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .estimate__result-yen {
    font-size: 0.4em;
    margin-bottom: -0.07em;
  }
}
.estimate__submit {
  margin-top: 43.2px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .estimate__submit {
    margin-top: 36px;
  }
}
.estimate__detail {
  display: none;
  overflow: hidden;
  margin-top: 30px;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .estimate__detail {
    margin-top: 16px;
  }
}
.estimate__detail-ttl {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0 30px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .estimate__detail-ttl {
    column-gap: 9px;
  }
}
.estimate__detail-ttl::before, .estimate__detail-ttl::after {
  content: "";
  display: block;
  height: 1px;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
  flex: 1;
}
.estimate__detail-ttl-inner {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0 0.5em;
  font-size: 1.85rem;
}
@media screen and (max-width: 767px) {
  .estimate__detail-ttl-inner {
    column-gap: 0.3em;
    font-size: 1.46rem;
  }
}
.estimate__detail-ttl-en {
  font-weight: 300;
  font-family: var(--font-en);
  letter-spacing: 0em;
}
.estimate__detail-ttl-ja {
  font-size: 0.8rem;
}
.estimate__detail-list {
  margin-top: 10px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.04);
  padding: 0 20px;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .estimate__detail-list {
    margin-top: 3px;
    padding-inline: 13px;
  }
}
.estimate__detail-list dt,
.estimate__detail-list dd {
  padding-block: 11px;
}
@media screen and (max-width: 767px) {
  .estimate__detail-list dt,
  .estimate__detail-list dd {
    padding-block: 7px;
  }
}
.estimate__detail-list dt {
  margin-top: 0.15em;
  float: left;
  clear: left;
  font-size: 0.85rem;
}
.estimate__detail-list dd {
  text-align: right;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.estimate__detail-list dd:last-child {
  border-bottom-width: 0;
}
.estimate__detail-price {
  font-family: var(--font-en);
  font-size: 1.5rem;
  line-height: 1;
  margin-right: 0.1em;
}
@media screen and (max-width: 767px) {
  .estimate__detail-price {
    font-size: 1.61rem;
  }
}
.estimate__detail-unit {
  font-size: 0.75rem;
}
.estimate__detail-small {
  display: block;
  font-size: 0.65rem;
  font-size: clamp(9.6px, 8.3712px + 0.16vw, 10.4px);
  text-align: right;
  margin-top: 17px;
  line-height: 1.7;
  opacity: 0.65;
}
@media screen and (max-width: 767px) {
  .estimate__detail-small {
    text-align: left;
    margin-top: 13px;
  }
}

/**************************************
* .plan-about
**************************************/
.plan-about {
  position: relative;
  padding-block: min(13.96vw, 176px) min(9.01vw, 113.6px);
  background: #fff;
}
@media screen and (max-width: 767px) {
  .plan-about {
    padding-block: 40px 84px;
  }
}
.plan-about__deco {
  position: absolute;
  left: 0;
  right: 0;
  top: 65%;
  transform: translateY(-50%);
  font-size: min(10.93vw, 210px);
  line-height: 1;
  color: #f4f4f4;
  font-family: var(--font-en);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .plan-about__deco {
    bottom: -12px;
    top: auto;
    font-size: 100px;
  }
}
.plan-about__deco-scroll {
  display: flex;
  max-width: none;
  width: max-content;
  animation: auto-scroll 34s linear infinite;
  will-change: transform;
  gap: 0 0.3em;
}
.plan-about__deco-track {
  display: flex;
  max-width: none;
  gap: 0 0.3em;
}
.plan-about__wrapper {
  position: relative;
  width: 1920px;
  max-width: 100%;
  margin-inline: auto;
  display: flex;
  gap: 0 6.51%;
}
@media screen and (max-width: 767px) {
  .plan-about__wrapper {
    flex-direction: column;
  }
}
.plan-about__lcol {
  width: 32.55%;
  margin-left: 10.1%;
}
@media screen and (max-width: 1260px) {
  .plan-about__lcol {
    margin-left: var(--wrapper-padding);
  }
}
@media screen and (max-width: 767px) {
  .plan-about__lcol {
    margin-left: 0;
    width: 58.66vw;
  }
}
.plan-about__photo-1 img {
  display: block;
  width: 100%;
}
.plan-about__rcol {
  flex: 1;
  margin-right: 12.7%;
}
@media screen and (max-width: 1260px) {
  .plan-about__rcol {
    margin-right: var(--wrapper-padding);
  }
}
@media screen and (max-width: 767px) {
  .plan-about__rcol {
    display: flex;
    flex-direction: column;
    margin-right: 0;
  }
}
@media screen and (max-width: 767px) {
  .plan-about__ttl {
    padding-inline: var(--wrapper-padding);
  }
}
.plan-about__ttl-large {
  margin-top: 21.85%;
  font-family: var(--font-serif);
  font-size: 2rem;
  line-height: 2;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .plan-about__ttl-large {
    margin-top: 0.81em;
    line-height: 1.6;
    font-size: 2.07rem;
    font-size: clamp(27px, 16.4625px + 2.81vw, 38px);
  }
}
.plan-about__ttl-large .u-kana {
  --letter-spacing: -0.1em;
}
.plan-about__ttl-small {
  margin-top: -0.1em;
  color: #ab6333;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  letter-spacing: -0.03em;
}
@media screen and (max-width: 767px) {
  .plan-about__ttl-small {
    margin-top: 0.6em;
    font-size: 1.3rem;
    font-size: clamp(17px, 15.0875px + 0.51vw, 19px);
    line-height: 1.6;
  }
}
.plan-about__ttl-small .u-kana {
  --letter-spacing: -0.1em;
}
.plan-about__desc {
  margin-top: min(6.34vw, 80px);
  margin-right: 28%;
  font-size: 0.8rem;
  line-height: 2;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1260px) {
  .plan-about__desc {
    margin-right: 6%;
  }
}
@media screen and (max-width: 767px) {
  .plan-about__desc {
    margin-top: 38px;
    font-size: 1rem;
    line-height: 1.692;
    margin-top: 40px;
    margin-right: 0;
    padding-inline: var(--wrapper-padding);
  }
}
.plan-about__btn {
  margin-top: 8.33%;
}
@media screen and (max-width: 767px) {
  .plan-about__btn {
    margin-top: 28px;
    margin-inline: auto;
  }
}
.plan-about__photo-2 {
  margin: 19.94% 1.36% 0 auto;
  width: 47.67%;
  min-width: 280px;
}
@media screen and (max-width: 767px) {
  .plan-about__photo-2 {
    width: 46.53vw;
    min-width: 0;
    margin-top: 4.53vw;
    margin-right: 5.06vw;
  }
}
.plan-about__photo-2 img {
  display: block;
  width: 100%;
}

/**************************************
* .by-scene
**************************************/
.by-scene {
  background: #fff;
  padding-block: min(9.84vw, 124px) min(11.23vw, 141.6px);
}
@media screen and (max-width: 767px) {
  .by-scene {
    padding-block: 60px;
  }
}
.by-scene__list {
  margin-top: 82px;
  padding-left: 0;
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 60px 2.94%;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1260px) {
  .by-scene__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(760px + 7%);
    column-gap: 7%;
  }
}
@media screen and (max-width: 767px) {
  .by-scene__list {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 46px;
  }
}
.by-scene__item {
  border-bottom: 1px solid #524b44;
}
.by-scene__item:nth-child(4n-2) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
.by-scene__item:nth-child(4n-1) {
  --fade-delay: 0.3s;
  --fade-delay-sp: 0s;
}
.by-scene__item:nth-child(4n) {
  --fade-delay: 0.45s;
  --fade-delay-sp: 0s;
}
.by-scene__item a {
  display: block;
  height: 100%;
  text-decoration: none;
  padding-bottom: 59px;
}
.by-scene .c-link-arrow-white::before, .by-scene .c-link-arrow-white::after {
  right: 0;
  bottom: 19px;
}
.by-scene__photo {
  aspect-ratio: 310/243;
  overflow: hidden;
  margin-inline: auto;
  width: 380px;
  max-width: 100%;
}
.by-scene__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out-quad);
}
.by-scene a:hover .by-scene__photo img {
  transform: scale(1.06);
}
.by-scene__name {
  margin-block: 1.26em 0.65em;
  font-size: 1.3rem;
  line-height: 1.4;
  font-family: var(--font-serif);
  font-weight: normal;
}
@media screen and (max-width: 1260px) {
  .by-scene__name {
    margin-block: 0.7em 0.4em;
  }
}
@media screen and (max-width: 767px) {
  .by-scene__name {
    font-size: 1.53rem;
    font-size: clamp(20px, 15.2px + 1.28vw, 25px);
  }
}
.by-scene__name .u-kana {
  --letter-spacing: -0.17em;
}
.by-scene__desc {
  font-size: 0.8rem;
  line-height: 1.75;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .by-scene__desc {
    font-size: 1rem;
    font-size: clamp(13px, 12.025px + 0.26vw, 14px);
    line-height: 1.615;
  }
}

/**************************************
* .support-links
**************************************/
.support-links {
  background: #fff;
  padding-block: var(--section-margin);
}
.support-links__list {
  padding-left: 0;
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 7.35%;
}
@media screen and (max-width: 1260px) {
  .support-links__list {
    grid-template-columns: 1fr;
    width: 630px;
    max-width: 100%;
    margin-inline: auto;
  }
}
.support-links__item:nth-child(even) {
  --fade-delay: 0.15s;
  --fade-delay-sp: 0s;
}
@media screen and (max-width: 1260px) {
  .support-links__item:nth-child(even) {
    --fade-delay: 0s;
  }
}
.support-links__item-inner {
  display: flex;
  gap: 0 5.07%;
  align-items: stretch;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .support-links__item-inner.c-link-arrow-white {
    --link-arrow-width: 29px;
  }
}
.support-links__item-inner.c-link-arrow-white::before, .support-links__item-inner.c-link-arrow-white::after {
  right: 0px;
  bottom: 0;
  margin-bottom: 4.76%;
}
.support-links__photo {
  width: 34.6%;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .support-links__photo {
    width: 34.6%;
  }
}
.support-links__photo-inner {
  aspect-ratio: 218/160;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .support-links__photo-inner {
    aspect-ratio: 218/200;
  }
}
.support-links__photo-inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out-quad);
}
.option a:hover .support-links__photo-inner img {
  transform: scale(1.06);
}
.support-links__txt {
  padding-bottom: 8.8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  justify-content: center;
  border-bottom: 1px solid #524b44;
}
@media screen and (max-width: 767px) {
  .support-links__txt {
    justify-content: flex-start;
  }
}
.support-links__name {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-size: clamp(14.4px, 4.416px + 1.3vw, 20.8px);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.3;
  margin-bottom: 0.34em;
}
@media screen and (max-width: 767px) {
  .support-links__name {
    margin-bottom: 0.53em;
    font-size: 1.15rem;
    font-size: clamp(15px, 7.35px + 2.04vw, 23px);
  }
}
.support-links__name .u-kana {
  --letter-spacing: -0.1em;
}
.support-links__desc {
  margin-right: 19%;
  font-size: 0.8rem;
  font-size: clamp(10.4px, 6.6368px + 0.49vw, 12.8px);
  line-height: 1.875;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
  min-height: 4.1em;
}
@media screen and (max-width: 767px) {
  .support-links__desc {
    font-size: 0.92rem;
    font-size: clamp(12px, 10.0875px + 0.51vw, 14px);
    line-height: 1.5;
  }
}

/**************************************
* utility
**************************************/
@media screen and (max-width: 767px) {
  .u-pc {
    display: none;
  }
}

@media screen and (max-width: 1260px) {
  .u-gt-large-pc {
    display: none;
  }
}

.u-lte-small-pc {
  display: none;
}
@media screen and (max-width: 1260px) {
  .u-lte-small-pc {
    display: block;
  }
}

@media screen and (max-width: 1260px) {
  br.u-lte-small-pc {
    display: inline;
  }
}

.u-sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .u-sp {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  br.u-sp {
    display: inline;
  }
}

.u-ta-left {
  text-align: left !important;
}

.u-ta-center {
  text-align: center !important;
}

.u-ta-right {
  text-align: right !important;
}

.u-kana {
  --letter-spacing: -0.06em;
  letter-spacing: var(--letter-spacing);
  margin-right: calc(var(--letter-spacing) / 3 * -1);
}

.u-punctuation {
  margin-right: -0.5em;
}

.u-first-quotation {
  margin-left: -0.4em;
}

.u-font-size-small {
  font-size: 0.85rem;
}

.u-color-orange {
  color: #ab6333;
}

.u-color-pale-orange {
  color: #bb9073;
}

.u-bg-gray {
  background-color: #f4f4f4;
}

.u-bg-white {
  background-color: #fff;
}

/**************************************
* utility - spacing
**************************************/
.u-margin-top-0 {
  margin-top: 0px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-0 {
    margin-top: 0px !important;
  }
}

.u-margin-top-5 {
  margin-top: 5px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-5 {
    margin-top: 3px !important;
  }
}

.u-margin-top-10 {
  margin-top: 10px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-10 {
    margin-top: 6px !important;
  }
}

.u-margin-top-15 {
  margin-top: 15px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-15 {
    margin-top: 9px !important;
  }
}

.u-margin-top-20 {
  margin-top: 20px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-20 {
    margin-top: 12px !important;
  }
}

.u-margin-top-25 {
  margin-top: 25px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-25 {
    margin-top: 15px !important;
  }
}

.u-margin-top-30 {
  margin-top: 30px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-30 {
    margin-top: 18px !important;
  }
}

.u-margin-top-35 {
  margin-top: 35px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-35 {
    margin-top: 21px !important;
  }
}

.u-margin-top-40 {
  margin-top: 40px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-40 {
    margin-top: 24px !important;
  }
}

.u-margin-top-45 {
  margin-top: 45px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-45 {
    margin-top: 27px !important;
  }
}

.u-margin-top-50 {
  margin-top: 50px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-50 {
    margin-top: 30px !important;
  }
}

.u-margin-top-55 {
  margin-top: 55px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-55 {
    margin-top: 33px !important;
  }
}

.u-margin-top-60 {
  margin-top: 60px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-60 {
    margin-top: 36px !important;
  }
}

.u-margin-top-65 {
  margin-top: 65px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-65 {
    margin-top: 39px !important;
  }
}

.u-margin-top-70 {
  margin-top: 70px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-70 {
    margin-top: 42px !important;
  }
}

.u-margin-top-75 {
  margin-top: 75px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-75 {
    margin-top: 45px !important;
  }
}

.u-margin-top-80 {
  margin-top: 80px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-80 {
    margin-top: 48px !important;
  }
}

.u-margin-top-85 {
  margin-top: 85px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-85 {
    margin-top: 51px !important;
  }
}

.u-margin-top-90 {
  margin-top: 90px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-90 {
    margin-top: 54px !important;
  }
}

.u-margin-top-95 {
  margin-top: 95px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-95 {
    margin-top: 57px !important;
  }
}

.u-margin-top-100 {
  margin-top: 100px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-100 {
    margin-top: 60px !important;
  }
}

.u-margin-top-105 {
  margin-top: 105px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-105 {
    margin-top: 63px !important;
  }
}

.u-margin-top-110 {
  margin-top: 110px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-110 {
    margin-top: 66px !important;
  }
}

.u-margin-top-115 {
  margin-top: 115px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-115 {
    margin-top: 69px !important;
  }
}

.u-margin-top-120 {
  margin-top: 120px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-120 {
    margin-top: 72px !important;
  }
}

.u-margin-top-125 {
  margin-top: 125px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-125 {
    margin-top: 75px !important;
  }
}

.u-margin-top-130 {
  margin-top: 130px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-130 {
    margin-top: 78px !important;
  }
}

.u-margin-top-135 {
  margin-top: 135px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-135 {
    margin-top: 81px !important;
  }
}

.u-margin-top-140 {
  margin-top: 140px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-140 {
    margin-top: 84px !important;
  }
}

.u-margin-top-145 {
  margin-top: 145px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-145 {
    margin-top: 87px !important;
  }
}

.u-margin-top-150 {
  margin-top: 150px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-150 {
    margin-top: 90px !important;
  }
}

.u-margin-top-155 {
  margin-top: 155px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-155 {
    margin-top: 93px !important;
  }
}

.u-margin-top-160 {
  margin-top: 160px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-160 {
    margin-top: 96px !important;
  }
}

.u-margin-top-165 {
  margin-top: 165px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-165 {
    margin-top: 99px !important;
  }
}

.u-margin-top-170 {
  margin-top: 170px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-170 {
    margin-top: 102px !important;
  }
}

.u-margin-top-175 {
  margin-top: 175px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-175 {
    margin-top: 105px !important;
  }
}

.u-margin-top-180 {
  margin-top: 180px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-180 {
    margin-top: 108px !important;
  }
}

.u-margin-top-185 {
  margin-top: 185px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-185 {
    margin-top: 111px !important;
  }
}

.u-margin-top-190 {
  margin-top: 190px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-190 {
    margin-top: 114px !important;
  }
}

.u-margin-top-195 {
  margin-top: 195px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-195 {
    margin-top: 117px !important;
  }
}

.u-margin-top-200 {
  margin-top: 200px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-top-200 {
    margin-top: 120px !important;
  }
}

.u-margin-bottom-0 {
  margin-bottom: 0px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-0 {
    margin-bottom: 0px !important;
  }
}

.u-margin-bottom-5 {
  margin-bottom: 5px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-5 {
    margin-bottom: 3px !important;
  }
}

.u-margin-bottom-10 {
  margin-bottom: 10px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-10 {
    margin-bottom: 6px !important;
  }
}

.u-margin-bottom-15 {
  margin-bottom: 15px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-15 {
    margin-bottom: 9px !important;
  }
}

.u-margin-bottom-20 {
  margin-bottom: 20px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-20 {
    margin-bottom: 12px !important;
  }
}

.u-margin-bottom-25 {
  margin-bottom: 25px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-25 {
    margin-bottom: 15px !important;
  }
}

.u-margin-bottom-30 {
  margin-bottom: 30px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-30 {
    margin-bottom: 18px !important;
  }
}

.u-margin-bottom-35 {
  margin-bottom: 35px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-35 {
    margin-bottom: 21px !important;
  }
}

.u-margin-bottom-40 {
  margin-bottom: 40px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-40 {
    margin-bottom: 24px !important;
  }
}

.u-margin-bottom-45 {
  margin-bottom: 45px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-45 {
    margin-bottom: 27px !important;
  }
}

.u-margin-bottom-50 {
  margin-bottom: 50px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-50 {
    margin-bottom: 30px !important;
  }
}

.u-margin-bottom-55 {
  margin-bottom: 55px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-55 {
    margin-bottom: 33px !important;
  }
}

.u-margin-bottom-60 {
  margin-bottom: 60px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-60 {
    margin-bottom: 36px !important;
  }
}

.u-margin-bottom-65 {
  margin-bottom: 65px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-65 {
    margin-bottom: 39px !important;
  }
}

.u-margin-bottom-70 {
  margin-bottom: 70px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-70 {
    margin-bottom: 42px !important;
  }
}

.u-margin-bottom-75 {
  margin-bottom: 75px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-75 {
    margin-bottom: 45px !important;
  }
}

.u-margin-bottom-80 {
  margin-bottom: 80px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-80 {
    margin-bottom: 48px !important;
  }
}

.u-margin-bottom-85 {
  margin-bottom: 85px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-85 {
    margin-bottom: 51px !important;
  }
}

.u-margin-bottom-90 {
  margin-bottom: 90px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-90 {
    margin-bottom: 54px !important;
  }
}

.u-margin-bottom-95 {
  margin-bottom: 95px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-95 {
    margin-bottom: 57px !important;
  }
}

.u-margin-bottom-100 {
  margin-bottom: 100px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-100 {
    margin-bottom: 60px !important;
  }
}

.u-margin-bottom-105 {
  margin-bottom: 105px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-105 {
    margin-bottom: 63px !important;
  }
}

.u-margin-bottom-110 {
  margin-bottom: 110px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-110 {
    margin-bottom: 66px !important;
  }
}

.u-margin-bottom-115 {
  margin-bottom: 115px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-115 {
    margin-bottom: 69px !important;
  }
}

.u-margin-bottom-120 {
  margin-bottom: 120px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-120 {
    margin-bottom: 72px !important;
  }
}

.u-margin-bottom-125 {
  margin-bottom: 125px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-125 {
    margin-bottom: 75px !important;
  }
}

.u-margin-bottom-130 {
  margin-bottom: 130px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-130 {
    margin-bottom: 78px !important;
  }
}

.u-margin-bottom-135 {
  margin-bottom: 135px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-135 {
    margin-bottom: 81px !important;
  }
}

.u-margin-bottom-140 {
  margin-bottom: 140px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-140 {
    margin-bottom: 84px !important;
  }
}

.u-margin-bottom-145 {
  margin-bottom: 145px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-145 {
    margin-bottom: 87px !important;
  }
}

.u-margin-bottom-150 {
  margin-bottom: 150px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-150 {
    margin-bottom: 90px !important;
  }
}

.u-margin-bottom-155 {
  margin-bottom: 155px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-155 {
    margin-bottom: 93px !important;
  }
}

.u-margin-bottom-160 {
  margin-bottom: 160px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-160 {
    margin-bottom: 96px !important;
  }
}

.u-margin-bottom-165 {
  margin-bottom: 165px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-165 {
    margin-bottom: 99px !important;
  }
}

.u-margin-bottom-170 {
  margin-bottom: 170px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-170 {
    margin-bottom: 102px !important;
  }
}

.u-margin-bottom-175 {
  margin-bottom: 175px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-175 {
    margin-bottom: 105px !important;
  }
}

.u-margin-bottom-180 {
  margin-bottom: 180px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-180 {
    margin-bottom: 108px !important;
  }
}

.u-margin-bottom-185 {
  margin-bottom: 185px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-185 {
    margin-bottom: 111px !important;
  }
}

.u-margin-bottom-190 {
  margin-bottom: 190px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-190 {
    margin-bottom: 114px !important;
  }
}

.u-margin-bottom-195 {
  margin-bottom: 195px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-195 {
    margin-bottom: 117px !important;
  }
}

.u-margin-bottom-200 {
  margin-bottom: 200px !important;
}
@media screen and (max-width: 767px) {
  .u-margin-bottom-200 {
    margin-bottom: 120px !important;
  }
}

.u-padding-top-0 {
  padding-top: 0px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-0 {
    padding-top: 0px !important;
  }
}

.u-padding-top-5 {
  padding-top: 5px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-5 {
    padding-top: 3px !important;
  }
}

.u-padding-top-10 {
  padding-top: 10px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-10 {
    padding-top: 6px !important;
  }
}

.u-padding-top-15 {
  padding-top: 15px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-15 {
    padding-top: 9px !important;
  }
}

.u-padding-top-20 {
  padding-top: 20px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-20 {
    padding-top: 12px !important;
  }
}

.u-padding-top-25 {
  padding-top: 25px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-25 {
    padding-top: 15px !important;
  }
}

.u-padding-top-30 {
  padding-top: 30px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-30 {
    padding-top: 18px !important;
  }
}

.u-padding-top-35 {
  padding-top: 35px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-35 {
    padding-top: 21px !important;
  }
}

.u-padding-top-40 {
  padding-top: 40px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-40 {
    padding-top: 24px !important;
  }
}

.u-padding-top-45 {
  padding-top: 45px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-45 {
    padding-top: 27px !important;
  }
}

.u-padding-top-50 {
  padding-top: 50px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-50 {
    padding-top: 30px !important;
  }
}

.u-padding-top-55 {
  padding-top: 55px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-55 {
    padding-top: 33px !important;
  }
}

.u-padding-top-60 {
  padding-top: 60px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-60 {
    padding-top: 36px !important;
  }
}

.u-padding-top-65 {
  padding-top: 65px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-65 {
    padding-top: 39px !important;
  }
}

.u-padding-top-70 {
  padding-top: 70px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-70 {
    padding-top: 42px !important;
  }
}

.u-padding-top-75 {
  padding-top: 75px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-75 {
    padding-top: 45px !important;
  }
}

.u-padding-top-80 {
  padding-top: 80px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-80 {
    padding-top: 48px !important;
  }
}

.u-padding-top-85 {
  padding-top: 85px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-85 {
    padding-top: 51px !important;
  }
}

.u-padding-top-90 {
  padding-top: 90px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-90 {
    padding-top: 54px !important;
  }
}

.u-padding-top-95 {
  padding-top: 95px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-95 {
    padding-top: 57px !important;
  }
}

.u-padding-top-100 {
  padding-top: 100px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-100 {
    padding-top: 60px !important;
  }
}

.u-padding-top-105 {
  padding-top: 105px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-105 {
    padding-top: 63px !important;
  }
}

.u-padding-top-110 {
  padding-top: 110px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-110 {
    padding-top: 66px !important;
  }
}

.u-padding-top-115 {
  padding-top: 115px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-115 {
    padding-top: 69px !important;
  }
}

.u-padding-top-120 {
  padding-top: 120px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-120 {
    padding-top: 72px !important;
  }
}

.u-padding-top-125 {
  padding-top: 125px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-125 {
    padding-top: 75px !important;
  }
}

.u-padding-top-130 {
  padding-top: 130px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-130 {
    padding-top: 78px !important;
  }
}

.u-padding-top-135 {
  padding-top: 135px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-135 {
    padding-top: 81px !important;
  }
}

.u-padding-top-140 {
  padding-top: 140px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-140 {
    padding-top: 84px !important;
  }
}

.u-padding-top-145 {
  padding-top: 145px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-145 {
    padding-top: 87px !important;
  }
}

.u-padding-top-150 {
  padding-top: 150px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-150 {
    padding-top: 90px !important;
  }
}

.u-padding-top-155 {
  padding-top: 155px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-155 {
    padding-top: 93px !important;
  }
}

.u-padding-top-160 {
  padding-top: 160px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-160 {
    padding-top: 96px !important;
  }
}

.u-padding-top-165 {
  padding-top: 165px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-165 {
    padding-top: 99px !important;
  }
}

.u-padding-top-170 {
  padding-top: 170px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-170 {
    padding-top: 102px !important;
  }
}

.u-padding-top-175 {
  padding-top: 175px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-175 {
    padding-top: 105px !important;
  }
}

.u-padding-top-180 {
  padding-top: 180px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-180 {
    padding-top: 108px !important;
  }
}

.u-padding-top-185 {
  padding-top: 185px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-185 {
    padding-top: 111px !important;
  }
}

.u-padding-top-190 {
  padding-top: 190px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-190 {
    padding-top: 114px !important;
  }
}

.u-padding-top-195 {
  padding-top: 195px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-195 {
    padding-top: 117px !important;
  }
}

.u-padding-top-200 {
  padding-top: 200px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-top-200 {
    padding-top: 120px !important;
  }
}

.u-padding-bottom-0 {
  padding-bottom: 0px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-0 {
    padding-bottom: 0px !important;
  }
}

.u-padding-bottom-5 {
  padding-bottom: 5px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-5 {
    padding-bottom: 3px !important;
  }
}

.u-padding-bottom-10 {
  padding-bottom: 10px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-10 {
    padding-bottom: 6px !important;
  }
}

.u-padding-bottom-15 {
  padding-bottom: 15px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-15 {
    padding-bottom: 9px !important;
  }
}

.u-padding-bottom-20 {
  padding-bottom: 20px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-20 {
    padding-bottom: 12px !important;
  }
}

.u-padding-bottom-25 {
  padding-bottom: 25px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-25 {
    padding-bottom: 15px !important;
  }
}

.u-padding-bottom-30 {
  padding-bottom: 30px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-30 {
    padding-bottom: 18px !important;
  }
}

.u-padding-bottom-35 {
  padding-bottom: 35px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-35 {
    padding-bottom: 21px !important;
  }
}

.u-padding-bottom-40 {
  padding-bottom: 40px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-40 {
    padding-bottom: 24px !important;
  }
}

.u-padding-bottom-45 {
  padding-bottom: 45px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-45 {
    padding-bottom: 27px !important;
  }
}

.u-padding-bottom-50 {
  padding-bottom: 50px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-50 {
    padding-bottom: 30px !important;
  }
}

.u-padding-bottom-55 {
  padding-bottom: 55px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-55 {
    padding-bottom: 33px !important;
  }
}

.u-padding-bottom-60 {
  padding-bottom: 60px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-60 {
    padding-bottom: 36px !important;
  }
}

.u-padding-bottom-65 {
  padding-bottom: 65px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-65 {
    padding-bottom: 39px !important;
  }
}

.u-padding-bottom-70 {
  padding-bottom: 70px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-70 {
    padding-bottom: 42px !important;
  }
}

.u-padding-bottom-75 {
  padding-bottom: 75px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-75 {
    padding-bottom: 45px !important;
  }
}

.u-padding-bottom-80 {
  padding-bottom: 80px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-80 {
    padding-bottom: 48px !important;
  }
}

.u-padding-bottom-85 {
  padding-bottom: 85px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-85 {
    padding-bottom: 51px !important;
  }
}

.u-padding-bottom-90 {
  padding-bottom: 90px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-90 {
    padding-bottom: 54px !important;
  }
}

.u-padding-bottom-95 {
  padding-bottom: 95px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-95 {
    padding-bottom: 57px !important;
  }
}

.u-padding-bottom-100 {
  padding-bottom: 100px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-100 {
    padding-bottom: 60px !important;
  }
}

.u-padding-bottom-105 {
  padding-bottom: 105px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-105 {
    padding-bottom: 63px !important;
  }
}

.u-padding-bottom-110 {
  padding-bottom: 110px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-110 {
    padding-bottom: 66px !important;
  }
}

.u-padding-bottom-115 {
  padding-bottom: 115px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-115 {
    padding-bottom: 69px !important;
  }
}

.u-padding-bottom-120 {
  padding-bottom: 120px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-120 {
    padding-bottom: 72px !important;
  }
}

.u-padding-bottom-125 {
  padding-bottom: 125px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-125 {
    padding-bottom: 75px !important;
  }
}

.u-padding-bottom-130 {
  padding-bottom: 130px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-130 {
    padding-bottom: 78px !important;
  }
}

.u-padding-bottom-135 {
  padding-bottom: 135px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-135 {
    padding-bottom: 81px !important;
  }
}

.u-padding-bottom-140 {
  padding-bottom: 140px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-140 {
    padding-bottom: 84px !important;
  }
}

.u-padding-bottom-145 {
  padding-bottom: 145px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-145 {
    padding-bottom: 87px !important;
  }
}

.u-padding-bottom-150 {
  padding-bottom: 150px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-150 {
    padding-bottom: 90px !important;
  }
}

.u-padding-bottom-155 {
  padding-bottom: 155px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-155 {
    padding-bottom: 93px !important;
  }
}

.u-padding-bottom-160 {
  padding-bottom: 160px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-160 {
    padding-bottom: 96px !important;
  }
}

.u-padding-bottom-165 {
  padding-bottom: 165px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-165 {
    padding-bottom: 99px !important;
  }
}

.u-padding-bottom-170 {
  padding-bottom: 170px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-170 {
    padding-bottom: 102px !important;
  }
}

.u-padding-bottom-175 {
  padding-bottom: 175px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-175 {
    padding-bottom: 105px !important;
  }
}

.u-padding-bottom-180 {
  padding-bottom: 180px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-180 {
    padding-bottom: 108px !important;
  }
}

.u-padding-bottom-185 {
  padding-bottom: 185px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-185 {
    padding-bottom: 111px !important;
  }
}

.u-padding-bottom-190 {
  padding-bottom: 190px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-190 {
    padding-bottom: 114px !important;
  }
}

.u-padding-bottom-195 {
  padding-bottom: 195px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-195 {
    padding-bottom: 117px !important;
  }
}

.u-padding-bottom-200 {
  padding-bottom: 200px !important;
}
@media screen and (max-width: 767px) {
  .u-padding-bottom-200 {
    padding-bottom: 120px !important;
  }
}

/* point-slider */
.cataering{
  background: linear-gradient(90deg, #173960 20%, #415E7E 100%);
  padding-block: min(5.96vw, 75.2px) min(8.25vw, 104px);
  --photo-col-width: 21.61%;
}

.point-slider {
  overflow: hidden;
  padding: 120px 0;
}

.point-slider .c-wrap {
  overflow: visible;
}

.point-slider .swiper {
  overflow: visible;
}

.point-slider .swiper-wrapper {
  align-items: center;
}

.point-slider__item {
  width: 78vw;
  max-width: 750px;
  padding-right: 13px;
  border-right: 1px solid #ffffff;
}

.point-slider .c-wrap {
  padding-inline: var(--wrapper-padding);
}

.point-slider .swiper {
  overflow: visible;
}

.point-card {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 36px;
  align-items: center;
}

.point-card__img img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.point-slider__inner .swiper-wrapper{
 padding-left: 0;
}

.point-card__content {
  color: #fff;
  display: flex;
  align-items: end;
  position: relative;
  height: 100%;
}

.point-card__num{
    color: #dda665;
    font-family: var(--font-script);
    display: flex;
    gap: 10px;
  align-items: center;
  position: absolute;
  top:0;
  left: 0;
}

.point-card__num-point {
    margin-top: -0.28em;
    font-size: 20px;
    line-height: 1;
    letter-spacing: -0.05em;
}

.point-card__num-num {
    line-height: 1;
    letter-spacing: -0.1em;
  font-size: 56px;
  display: block;
  padding-bottom: 10px;
}
.point-card__ttl {
  margin-bottom: 32px;
  font-size: calc(32px * 0.8);
  line-height: 1.5;
  font-family: var(--font-serif);
  font-weight: normal;
}

.point-card__desc,
.catering-fv__desc{
  font-size: calc(16px * 0.8);
  line-height: 2em;
  color:#ffffff;
  padding-right: 60px;
}

.catering-fv__label{
  color:#dda665;
  font-size: calc(16px * 0.8);
  margin-bottom: calc(50px * 0.8);
  font-family: var(--font-serif);
}

.catering-fv__ttl{
  margin-bottom: calc(54px * 0.8);
  font-size: calc(44px * 0.8);
  line-height: calc(80px * 0.8);
  font-family: var(--font-serif);
  font-weight: normal;
  color:#ffffff;
}

@media screen and (max-width: 767px) {

  .cataering{
    padding-block: 80px;
    --photo-col-width: 100%;
  }

  .point-slider {
    padding: 60px 0 0;
  }

  .point-slider__item {
    width: 86vw;
    max-width: none;
    padding-right: 24px;
  }

  .point-card {
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: stretch;
  }

  .point-card__img {
    width: 100%;
  }

  .point-card__content {
    min-height: 240px;
    padding-top: 72px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .point-card__num {
    gap: 8px;
  }

  .point-card__num-point {
    font-size: 14px;
  }

  .point-card__num-num {
    font-size: 40px;
    padding-bottom: 4px;
  }

  .point-card__ttl {
    margin-bottom: 20px;
    font-size: 24px;
    line-height: 1.6;
  }

  .point-card__desc,
  .catering-fv__desc{
    font-size: 14px;
    line-height: 2;
  }

  .catering-fv__label{
    margin-bottom: 24px;
    font-size: 14px;
  }

  .catering-fv__ttl{
    margin-bottom: 32px;
    font-size: 20px;
    line-height: 1.6;
  }

.point-card__desc,
.catering-fv__desc{
  padding-right: 0;
}

}

/* order-flow */
    .order-flow.section,.faq-section{
      padding: calc(180px * 0.8) 0;
    }

    .order-flow.section .flow-sub{
      font-size: calc(34px * 0.8);
      font-family: var(--font-serif);
      margin: calc(100px * 0.8) 0 calc(60px * 0.8);
      color: var(--text);
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .order-flow.section .flow-sub::before {
      content: "—";
      color: #ab6333;
    }

    .order-flow.section .flow-steps{
      display: grid;
      grid-template-columns: repeat(3,1fr);
    }

    .order-flow.section .flow-step{
      padding: 30px 54px;
      border-right:1px solid #cccccc;
      position: relative;
    }

    .order-flow.section .flow-step:nth-child(4n + 1){
      border-left:1px solid #cccccc;
    }

    .order-flow.section .flow-step__no{
      font-size: 15px;
      position: absolute;
      top:0;
      left: 25px;
      font-family: var(--font-en);
    }

    .order-flow.section .flow-step__icon{
      text-align: center;
      display: flex;
      justify-content: center;
      margin-bottom: 30px;
    }

    .order-flow.section h4{
      text-align: center;
      margin-bottom: 20px;
      font-size: 21.4px;
      font-family: var(--font-serif);
      font-weight: normal;
    }

    .order-flow.section .flow-step p{
      font-size: calc(16px * 0.8);
      line-height: 2em;
    }

    .order-flow.section .flow-step p .mini{
      font-size: calc(14px * 0.8);
      display: inline-block;
      margin-top: 15px;
    }


@media screen and (max-width: 767px) {

  .order-flow.section,.faq-section{
    padding: 80px 0;
  }

  .order-flow.section .flow-sub{
    margin: 80px 0 32px;
    font-size: 24px;
    line-height: 1.5;
    gap: 8px;
  }

  .order-flow.section .flow-steps{
    grid-template-columns: 1fr;
  }

  .order-flow.section .flow-step{
    padding: 56px 24px 40px;
    border-left: 1px solid #cccccc;
    border-right: 1px solid #cccccc;
    border-bottom: 1px solid #cccccc;
  }

  .order-flow.section .flow-step:first-child{
    border-top: 1px solid #cccccc;
  }

  .order-flow.section .flow-step:nth-child(4n + 1){
    border-left: 1px solid #cccccc;
  }

  .order-flow.section .flow-step__no{
    left: 16px;
    top:20px;
    font-size: 13px;
  }

  .order-flow.section .flow-step__icon{
    margin-bottom: 16px;
  }

  .order-flow.section .flow-step__icon img{
    max-width: 90px;
    height: auto;
  }

  .order-flow.section h4{
    margin-bottom: 16px;
    font-size: 20px;
    line-height: 1.5;
  }

  .order-flow.section .flow-step p{
    font-size: 14px;
    line-height: 2;
  }

  .order-flow.section .flow-step p .mini{
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.8;
  }

}


/* faq */
.faq-list{
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin-top: calc(80px * 0.8);
  justify-content: flex-end;
}

.faq-item{
	background: #fff;
  box-shadow: 0 0 24px 10px rgba(0 0 0 / 5%);
  max-width: 736px;
  width: 100%;
}

.faq-question{
	width: 100%;
	padding: 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	border: none;
	cursor: pointer;
	text-align: left;
	transition: background .3s ease;
	color: inherit;
}

.faq-item.is-open .faq-question{
	background: linear-gradient(90deg, #595047 0%, #4d453e 100%);
}

.faq-question__head{
	display: flex;
	align-items: center;
	gap: 40px;
  color: inherit;
}

.faq-question__label,
.faq-answer__label{
	font-size: calc(24px * 0.8);
	line-height: 1;
	font-family: var(--font-serif);
	font-weight: normal;
	flex-shrink: 0;
}

.faq-item.is-open .faq-question__label,
.faq-item.is-open .faq-question__text{
	color: #fff;
}

.faq-question__text{
	font-size: calc(18px * 0.8);
	line-height: 1.8;
	font-family: var(--font-serif);
	transition: color .3s ease;
}

.faq-answer{
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .4s ease;
}

.faq-item.is-open .faq-answer{
	grid-template-rows: 1fr;
}

.faq-answer__inner{
	overflow: hidden;
}

.faq-answer__body{
	padding: 20px;
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.faq-answer__text{
	font-size: calc(16px * 0.8);
	line-height: 2.4;
	color: inherit;
}

.faq-question__icon{
	width: 18px;
	height: 18px;
	position: relative;
	flex-shrink: 0;
}

.faq-question__icon::before,
.faq-question__icon::after{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #7f756d;
	transition: .3s ease;
	border-radius: 999px;
}

.faq-question__icon::before{
	width: 18px;
	height: 1.5px;
}

.faq-question__icon::after{
	width: 1.5px;
	height: 18px;
}

.faq-item.is-open .faq-question__icon::before{
	background: #fff;
}

.faq-item.is-open .faq-question__icon::after{
	opacity: 0;
	transform: translate(-50%, -50%) scaleY(0);
}

@media screen and (max-width: 767px){

	.faq-list{
		gap: 20px;
		margin-top: 48px;
		padding-inline: var(--wrapper-padding);
	}

	.faq-question{
		padding: 20px 16px;
		align-items: flex-start;
		gap: 16px;
	}

	.faq-question__head{
		gap: 12px;
		align-items: flex-start;
	}

	.faq-question__label,
	.faq-answer__label{
		font-size: 20px;
		line-height: 1;
	}

	.faq-question__text{
		font-size: 15px;
		line-height: 1.8;
	}

	.faq-question__icon{
		width: 16px;
		height: 16px;
		margin-top: 4px;
	}

	.faq-question__icon::before{
		width: 16px;
		height: 1.5px;
	}

	.faq-question__icon::after{
		width: 1.5px;
		height: 16px;
	}

	.faq-answer__body{
		padding: 20px 16px;
		gap: 12px;
		align-items: flex-start;
	}

	.faq-answer__text{
		font-size: 14px;
		line-height: 2;
	}

}

/* single-catering */
.single-catering-top{
	background: #f7f7f7;
	padding: 150px 0;
}

.single-catering__mv{
	width: 100%;
}

.single-catering__mv img{
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.single-catering__body{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
	gap: 80px;
	align-items: start;
	padding-top: 70px;
  margin-bottom: 44px;
}

.single-catering__main{
	min-width: 0;
}

.single-catering__name{
	margin-bottom: 28px;
	font-size: calc(44px * 0.8);
	line-height: 1.6;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.single-catering__lead{
	display: inline-block;
	margin-bottom: 48px;
	padding: 4px 22px;
	border: 1px solid #c9814d;
	border-radius: 999px;
	font-size: calc(20px * 0.8);
	line-height: 1.8;
	font-family: var(--font-serif);
	color: #ab6333;
  background: #ffffff;
}

.single-catering__desc{
	max-width: 760px;
	margin-bottom: 54px;
	font-size: 14px;
	line-height: 2.4;
	color: var(--text);
}

.single-catering__price{
	display: flex;
	align-items: center;
	justify-content: end;
	gap: 24px;
	margin-bottom: 84px;
  font-family: var(--font-serif);
}

.single-catering__price-label{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	min-height: 28px;
	padding: 2px 10px;
	border: 1px solid #a8a29c;
	font-size: 16px;
	line-height: 1;
	color: var(--text);
  position: relative;
  top:5px;
}

.single-catering__price-main{
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.single-catering__price-num{
	font-size: 54px;
	line-height: 1;
  font-family: var(--font-en);
	color: var(--text);
	letter-spacing: .04em;
}

.single-catering__price-unit{
	font-size: 19px;
	line-height: 1;
	color: var(--text);
}

.single-catering__price-unit .mini{
	font-size: calc(16px * 0.8);
}

.single-catering__btn{
	display: flex;
	justify-content: center;
}

.single-catering__side{
	position: relative;
  padding: 20px;
  background: #ffffff;
  box-shadow: 0 0 24px 10px rgba(0 0 0 / 4%);
}

.single-catering__deco{
	position: absolute;
	top: -10px;
	left: -34px;
	z-index: 2;
	font-family: var(--font-script);
	font-size: 86px;
	line-height: 1;
	color: #dda665;
	pointer-events: none;
	opacity: .9;
}

.single-catering__panel{
	position: relative;
	z-index: 1;
	background: #fff;
	padding:40px 30px;
	border: 1px solid #dda665;
}

.single-catering__panel-title{
	margin-bottom: 20px;
	text-align: center;
	font-size: calc(26px * 0.8);
	line-height: 1.6;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.single-catering__feature-list{
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-catering__feature-item{
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 8px;
	padding: 12px 0;
	border-bottom: 1px solid #e7e1dc;
}

.single-catering__feature-item:first-child{
	padding-top: 0;
}

.single-catering__feature-no{
	font-size: 15px;
	line-height: 1.8;
	font-family: var(--font-serif);
	color: #dda665;
}

.single-catering__feature-text{
	font-size: 14px;
	line-height: 2;
	color: var(--text);
}

.single-catering__scene{
	margin-top: 32px;
}

.single-catering__panel-title--scene{
	margin-bottom: 22px;
}

.single-catering__tags{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-catering__tags li{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 14px;
	border-radius: 999px;
	background: #e9eef3;
	font-size: 12px;
	line-height: 1.4;
	color: #173960;
  font-weight: bold;
}

/* SP */
@media screen and (max-width: 767px){

	.single-catering-top{
		padding: 80px 0;
	}

	.single-catering__mv img{
		aspect-ratio: 375 / 260;
	}

	.single-catering__body{
		grid-template-columns: 1fr;
		gap: 56px;
		padding-top: 48px;
	}

	.single-catering__name{
		margin-bottom: 20px;
		font-size: 26px;
		line-height: 1.6;
	}

	.single-catering__lead{
		margin-bottom: 32px;
		padding: 6px 16px;
		font-size: 13px;
		line-height: 1.8;
	}

	.single-catering__desc{
		margin-bottom: 42px;
		font-size: 14px;
		line-height: 2.1;
	}

	.single-catering__price{
		justify-content: flex-start;
		gap: 16px;
		margin-bottom: 48px;
	}

	.single-catering__price-label{
		min-width: 56px;
		min-height: 32px;
		font-size: 13px;
	}

	.single-catering__price-num{
		font-size: 40px;
	}

	.single-catering__price-unit{
		font-size: 14px;
	}

	.single-catering__btn{
		justify-content: center;
	}

	.single-catering__side{
		padding-top: 28px;
	}

	.single-catering__deco{
		top: -22px;
		left: 12px;
		font-size: 64px;
	}

	.single-catering__panel{
		padding: 48px 24px 36px;
	}

	.single-catering__panel-title{
		margin-bottom: 26px;
		font-size: 18px;
	}

	.single-catering__feature-item{
		grid-template-columns: 38px 1fr;
		gap: 10px;
		padding: 16px 0;
	}

	.single-catering__feature-no{
		font-size: 14px;
	}

	.single-catering__feature-text{
		font-size: 13px;
		line-height: 1.9;
	}

	.single-catering__scene{
		margin-top: 34px;
	}

	.single-catering__tags{
		justify-content: flex-start;
		gap: 8px;
	}

	.single-catering__tags li{
		padding: 6px 12px;
		font-size: 11px;
	}

}


/* catering-menu-detail */
.catering-menu-detail{
	padding: 120px 0;
	background: #fff;
}

.catering-menu-detail__title {
    font-size: calc(34px * 0.8);
    font-family: var(--font-serif);
    margin: calc(100px * 0.8) 0 calc(60px * 0.8);
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 12px;
  font-weight: normal;
}

.catering-menu-detail__title::before {
    content: "—";
    color: #ab6333;
}

.catering-menu-list{
	display: flex;
	flex-direction: column;
	gap: 22px;
  padding: 0 54px;
}

.catering-menu-card{
	position: relative;
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 70px;
	align-items: initial;
	min-height: 160px;
	padding: 22px 28px;
	border: 1px solid #e0e0e0;
	background: #fff;
}

.catering-menu-card__img{
	width: 100%;
}

.catering-menu-card__img img{
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.catering-menu-card__img.is-empty{
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: initial;
	justify-content: center;
	background: #999;
	color: #fff;
	font-size: 14px;
	line-height: 1.6;
}

.catering-menu-card__body{
	padding-right: 90px;
  padding-top: 35px;
}

.catering-menu-card__name{
	margin-bottom: 22px;
	font-size: 22px;
	line-height: 1.6;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.catering-menu-card__desc{
	font-size: 14px;
	line-height: 2;
	color: var(--text);
}

.catering-menu-card__label{
	position: absolute;
	top: 22px;
	right: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 72px;
	padding: 7px 10px;
	font-size: 12px;
	line-height: 1;
	color: #fff;
}

.catering-menu-card__label--cold{
	background: #173960;
}

.catering-menu-card__label--hot{
	background: #b16b35;
}

.catering-menu-card__label--dessert{
	background: #dda665;
}

.catering-menu-card__label--live{
	background: #ab6333;
}



/* SP */
@media screen and (max-width: 767px){

	.catering-menu-detail{
		padding: 80px 0;
	}

	.catering-menu-detail__title{
		margin-bottom: 32px;
		font-size: 26px;
	}

	.catering-menu-list{
		gap: 18px;
    padding: 0;
	}

	.catering-menu-card{
		grid-template-columns: 1fr;
		gap: 20px;
		min-height: 0;
		padding: 18px;
	}

	.catering-menu-card__img img,
	.catering-menu-card__img.is-empty{
		aspect-ratio: 335 / 190;
	}

	.catering-menu-card__body{
		padding-right: 0;
    padding-top: 0;
	}

	.catering-menu-card__name{
		margin-bottom: 12px;
		font-size: 20px;
		line-height: 1.6;
	}

	.catering-menu-card__desc{
		font-size: 14px;
		line-height: 2;
	}

	.catering-menu-card__label{
		top: 28px;
		right: 28px;
		min-width: 68px;
		padding: 7px 9px;
		font-size: 11px;
	}

  .catering-menu-detail__title{
    margin: 80px 0 32px;
    font-size: 24px;
    line-height: 1.5;
    gap: 8px;
  }

}

/* catering-option */
.catering-option{
	padding: 120px 0;
	background: #fff;
}

.catering-option__title{
	font-size: calc(34px * 0.8);
	font-family: var(--font-serif);
	margin: 0 0 calc(60px * 0.8);
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: normal;
}

.catering-option__title::before{
	content: "—";
	color: #ab6333;
}

.catering-option__list{
	display: flex;
	flex-direction: column;
	gap: 54px;
	padding: 0 54px;
}

.catering-option__box{
	background: #f7f7f7;
	padding: 58px 80px 64px;
}

.catering-option__cat{
	margin-bottom: 42px;
	text-align: center;
	font-size: 18px;
	line-height: 1.6;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.catering-option__items{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 96px;
	row-gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.catering-option__item{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 28px 12px;
	border-bottom: 1px solid #d9d9d9;
}

.catering-option__name{
	font-size: 16px;
	line-height: 1.8;
	font-family: var(--font-serif);
	color: var(--text);
}

.catering-option__price{
	font-size: 21px;
	line-height: 1;
	font-family: var(--font-serif);
	color: var(--text);
	white-space: nowrap;
}

.catering-option__price span{
	margin-left: 4px;
	font-size: 14px;
}

/* SP */
@media screen and (max-width: 767px){

	.catering-option{
		padding: 80px 0;
	}

	.catering-option__title{
		margin-bottom: 32px;
		font-size: 26px;
		line-height: 1.5;
	}

	.catering-option__list{
		gap: 28px;
		padding: 0;
	}

	.catering-option__box{
		padding: 36px 20px 40px;
	}

	.catering-option__cat{
		margin-bottom: 26px;
		font-size: 16px;
	}

	.catering-option__items{
		grid-template-columns: 1fr;
	}

	.catering-option__item{
		padding: 20px 0;
		gap: 16px;
	}

	.catering-option__name{
		font-size: 15px;
		line-height: 1.7;
	}

	.catering-option__price{
		font-size: 20px;
	}

	.catering-option__price span{
		font-size: 12px;
	}

}


/* other-plan */
.other-plan{
	padding: 120px 0;
	background: #f7f7f7;
}

.other-plan__title{
	font-size: calc(34px * 0.8);
	font-family: var(--font-serif);
	margin: 0 0 calc(60px * 0.8);
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: normal;
}

.other-plan__title::before{
	content: "—";
	color: #ab6333;
}

.other-plan__list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.other-plan-card{
	height: 100%;
	background: #fff;
	box-shadow: 0 0 24px 10px rgba(0 0 0 / 5%);
}

.other-plan-card__link{
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.other-plan-card__img{
	width: 100%;
}

.other-plan-card__img img{
	width: 100%;
	aspect-ratio: 420 / 280;
	object-fit: cover;
	display: block;
}

.other-plan-card__img-empty{
	aspect-ratio: 420 / 280;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #999;
	color: #fff;
	font-size: 14px;
	line-height: 1.6;
}

.other-plan-card__body{
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 15px;
  padding-bottom: 75px;
}

.other-plan-card__deco{
	position: absolute;
	top: -30px;
	left: -30px;
	z-index: 2;
	font-family: var(--font-script);
	font-size: 66px;
	line-height: 1;
	color: #dda665;
	pointer-events: none;
	opacity: .9;
	white-space: nowrap;
}

.other-plan-card__name{
	margin-bottom: 22px;
	text-align: center;
	font-size: 24px;
	line-height: 1.5;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.other-plan-card__lead{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	margin: 0 auto 30px;
	padding: 7px 20px;
	border: 1px solid #c9814d;
	border-radius: 999px;
	font-size: 13px;
	line-height: 1.6;
	font-family: var(--font-serif);
	color: #c9814d;
	text-align: center;
	letter-spacing: 0;
  flex-wrap: wrap;
}

.other-plan-card__lead br{
	display: none;
}

.other-plan-card__desc{
	margin-bottom: 34px;
	font-size: 14px;
	line-height: 2.05;
	color: var(--text);
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.other-plan-card__tags{
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: auto 0 26px;
	padding: 0;
	list-style: none;
}

.other-plan-card__tags li{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 13px;
	border-radius: 999px;
	background: #e9eef3;
	font-size: 12px;
	line-height: 1.4;
	color: #173960;
  font-weight: bold;
}

.other-plan-card__price{
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 8px;
	padding-right: 42px;
	margin-top: auto;
}

.other-plan-card__price-num{
	font-size: 40px;
	line-height: 1;
	font-family: var(--font-en);
	color: var(--text);
	letter-spacing: .04em;
}

.other-plan-card__price-unit{
	font-size: 16px;
	line-height: 1;
	color: var(--text);
}

.other-plan-card__arrow{
	position: absolute;
	right: 28px;
	bottom: 28px;
	width: 48px;
	height: 24px;
	border-radius: 999px;
	background: linear-gradient(90deg, #b66a34 0%, #e5a95a 100%);
}

.other-plan-card__arrow::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 1px;
	background: #fff;
	transform: translate(-50%, -50%);
}

.other-plan-card__arrow::after{
	content: "";
	position: absolute;
	top: 50%;
	left: calc(50% + 5px);
	width: 6px;
	height: 6px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: translate(-50%, -50%) rotate(45deg);
}

/* SP */
@media screen and (max-width: 767px){

	.other-plan{
		padding: 80px 0;
	}

	.other-plan__title{
		margin-bottom: 32px;
		font-size: 26px;
		line-height: 1.5;
	}

	.other-plan__list{
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.other-plan-card__img img,
	.other-plan-card__img-empty{
		aspect-ratio: 335 / 220;
	}

	.other-plan-card__body{
		padding: 40px 24px 32px;
	}

	.other-plan-card__deco{
		top: -42px;
		left: -10px;
		font-size: 56px;
	}

	.other-plan-card__name{
		margin-bottom: 18px;
		font-size: 24px;
	}

	.other-plan-card__lead{
		min-height: 40px;
		margin-bottom: 24px;
		padding: 6px 14px;
		font-size: 12px;
		line-height: 1.6;
	}

	.other-plan-card__desc{
		margin-bottom: 28px;
		font-size: 14px;
		line-height: 2;
		-webkit-line-clamp: 6;
	}

	.other-plan-card__tags{
		gap: 8px;
		margin-bottom: 24px;
	}

	.other-plan-card__tags li{
		padding: 6px 12px;
		font-size: 11px;
	}

	.other-plan-card__price{
		padding-right: 60px;
	}

	.other-plan-card__price-num{
		font-size: 34px;
	}

	.other-plan-card__price-unit{
		font-size: 14px;
	}

	.other-plan-card__arrow{
		right: 24px;
		bottom: 35px;
		width: 44px;
		height: 22px;
	}

	.other-plan-card__arrow::before{
		width: 13px;
	}

	.other-plan-card__arrow::after{
		width: 6px;
		height: 6px;
	}

}

/* company-intro */
.company-intro{
	position: relative;
	padding: min(10.42vw, 150px) 0 min(8.33vw, 120px);
	background: #fff;
  padding-bottom: 80px;
}

.company-intro__inner{
	position: relative;
	min-height: min(35vw, 400px);
}

.company-intro__text{
	position: absolute;
	top: min(5vw, 72px);
	left: min(11.11vw, 160px);
	z-index: 3;
}

.company-intro__text p{
	font-size: calc(16px * 0.8);
	line-height: 2.1;
	color: var(--text);
}

.company-intro__photo{
	position: absolute;
	z-index: 2;
	overflow: hidden;
}

.company-intro__photo img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.company-intro__photo--main{
	top: 0;
	right: min(4.17vw, 60px);
	width: min(38.19vw, 550px);
	aspect-ratio: 550 / 380;
}

.company-intro__photo--sub{
	left: 0;
	bottom: -180px;
	width: min(18.06vw, 260px);
	aspect-ratio: 260 / 190;
}

.company-intro .plan-about__deco{
	top: 72%;
	z-index: 1;
}

.company-intro .plan-about__deco-scroll{
	animation-duration: 34s;
}

.company-intro .plan-about__deco-track span{
	color: #f4f4f4;
}

@media screen and (max-width: 767px){

	.company-intro .plan-about__deco{
		top: auto;
		bottom: 190px;
		font-size: 100px;
	}

}

/* SP */
@media screen and (max-width: 767px){

	.company-intro{
		padding: 80px 0 72px;
	}

	.company-intro__inner{
		min-height: 0;
		display: flex;
		flex-direction: column;
		gap: 32px;
	}

	.company-intro__deco{
		bottom: 190px;
	}

	.company-intro__deco-track{
		animation-duration: 22s;
	}

	.company-intro__deco-track span{
		padding-right: 30px;
		font-size: 72px;
	}

	.company-intro__text{
		position: relative;
		top: auto;
		left: auto;
		order: 2;
		z-index: 3;
	}

	.company-intro__text p{
		font-size: 14px;
		line-height: 2;
	}

	.company-intro__photo{
		position: relative;
		z-index: 2;
	}

	.company-intro__photo--main{
		top: auto;
		right: auto;
		order: 1;
		width: 100%;
		margin-left: auto;
		aspect-ratio: 320 / 220;
    right: -10%;
	}

	.company-intro__photo--sub{
		left: auto;
		bottom: auto;
		order: 3;
		width: 65%;
		margin-top: -8px;
		aspect-ratio: 260 / 190;
    left: -10%;
	}

}


/* company-overview */
.company-overview{
	padding: min(8.33vw, 120px) 0 min(10.42vw, 150px);
	background: #f7f7f7;
  padding-top: 200px;
}

.company-overview__head{
	margin-bottom: min(5.56vw, 80px);
}

.company-overview__head .c-hl-main{
	margin-bottom: min(2.78vw, 40px);
}

.company-overview__lead{
	max-width: 1040px;
	font-size: calc(16px * 0.8);
	line-height: 2.25;
	color: var(--text);
}

.company-overview__lead p + p{
	margin-top: 1.1em;
}

.company-overview__table-wrap{
	max-width: 980px;
	margin: 0 auto;
}

.company-overview__table{
	width: 100%;
	border-collapse: collapse;
}

.company-overview__table tr{
	display: grid;
	grid-template-columns: 220px 1fr;
}

.company-overview__table th,
.company-overview__table td{
	padding: 18px 0;
	font-size: calc(15px * 0.8);
	line-height: 2;
	color: var(--text);
	vertical-align: top;
}

.company-overview__table th{
	padding-right: 24px;
	font-weight: normal;
	text-align: left;
	color: var(--text);
	font-family: var(--font-serif);
  position: relative;
}

.company-overview__table th:after{
  content:" ";
  width: 80%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #173960;
}

.company-overview__table td{
	font-weight: normal;
  border-bottom: 1px solid #d8d8d8;
}

.company-overview__cards{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: min(3.47vw, 50px);
	max-width: 980px;
	margin: min(5.56vw, 80px) auto 0;
	padding: 0;
	list-style: none;
}

.company-overview__card{
	position: relative;
	min-height: 190px;
	padding: 32px 24px 45px;
	background: #fff;
	border: 1px solid #524b44;
	text-align: center;
	overflow: hidden;
}

.company-overview__card-label{
	margin-bottom: 14px;
	font-size: 11px;
	line-height: 1;
	font-family: var(--font-en);
	letter-spacing: .08em;;
}

.company-overview__card-icon{
	margin: 0 auto 10px;
  min-height: 80px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.company-overview__card-icon img{
	height: auto;
}

.company-overview__card-text{
	position: relative;
	z-index: 2;
	margin-bottom: 30px;
	font-size: calc(28px * 0.8);
	line-height: 1.8;
	color: var(--text);
  font-family: var(--font-serif);
  min-height: 3em;
}

  .company-overview__card-text .mini{
    font-size: calc(14px * 0.8);
    position: relative;
    display: inline-block;
    top: -10px;
  }

.company-overview__card-num{
	position: relative;
	z-index: 2;
	font-size: calc(80px * 0.8);
	line-height: 1;
	font-family: var(--font-en);
	color: #ab6333;
	letter-spacing: .02em;
}

.company-overview__card-num span{
	margin-left: 4px;
	font-size: 14px;
	color: var(--text);
}

/* SP */
@media screen and (max-width: 767px){

	.company-overview{
		padding: 80px 0;
	}

	.company-overview__head{
		margin-bottom: 44px;
	}

	.company-overview__head .c-hl-main{
		margin-bottom: 28px;
	}

	.company-overview__lead{
		max-width: none;
		font-size: 14px;
		line-height: 2;
	}

	.company-overview__lead p + p{
		margin-top: 1em;
	}

	.company-overview__table-wrap{
		max-width: none;
		margin: 0;
	}

	.company-overview__table{
		width: 100%;
	}

	.company-overview__table tbody{
		display: block;
	}

	.company-overview__table tr{
		display: block;
		padding: 18px 0;
		border-bottom: 1px solid #d8d8d8;
	}

	.company-overview__table tr:first-child{
		border-top: 1px solid #d8d8d8;
	}

	.company-overview__table th,
	.company-overview__table td{
		display: block;
		width: 100%;
		padding: 0;
		font-size: 14px;
		line-height: 2;
	}

	.company-overview__table th{
		margin-bottom: 6px;
		padding-right: 0;
		font-size: 16px;
		color: var(--text);
	}

	.company-overview__table th::after{
		display: none;
	}

	.company-overview__table td{
		border-bottom: none;
	}

	.company-overview__cards{
		grid-template-columns: 1fr;
		gap: 20px;
		max-width: none;
		margin-top: 56px;
	}

	.company-overview__card{
		min-height: 0;
		padding: 30px 20px 34px;
		border: 1px solid #524b44;
	}

	.company-overview__card-label{
		margin-bottom: 12px;
		font-size: 11px;
		line-height: 1;
	}

	.company-overview__card-icon{
		width: auto;
		min-height: 58px;
		margin: 0 auto 12px;
	}

	.company-overview__card-icon img{
		max-width: 48px;
		max-height: 48px;
		width: auto;
		height: auto;
	}

	.company-overview__card-text{
		min-height: 0;
		margin-bottom: 20px;
		font-size: 20px;
		line-height: 1.7;
	}

	.company-overview__card-text .mini{
		font-size: 11px;
		top: -6px;
	}

	.company-overview__card-num{
		font-size: 52px;
		line-height: 1;
	}

	.company-overview__card-num span{
		margin-left: 4px;
		font-size: 13px;
	}

}


/* company-philosophy */
.company-philosophy{
	position: relative;
	overflow: hidden;
	padding: min(8.33vw, 120px) 0 min(7.64vw, 110px);
	color: #fff;
}

.company-philosophy__bg,
.company-philosophy__overlay{
	position: absolute;
	inset: 0;
}

.company-philosophy__bg{
	z-index: 1;
}

.company-philosophy__bg img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}


.company-philosophy__inner{
	position: relative;
	z-index: 3;
}

.company-philosophy__head{
	margin-bottom: min(4.86vw, 70px);
}

.company-philosophy__hl .c-hl-main__en,
.company-philosophy__hl .c-hl-main__ja{
	color: #fff;
}

.company-philosophy__list{
	max-width: 980px;
	margin-left: auto;
}

.company-philosophy__item{
	display: grid;
	grid-template-columns: minmax(280px, 55%) 1fr;
	gap: min(6.25vw, 90px);
	align-items: center;
	padding: min(3.13vw, 45px) 0;
  padding-top: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.34);
}

.company-philosophy__item:last-child{
	border-bottom: 1px solid rgba(255, 255, 255, 0.34);
}

.company-philosophy__label{
	margin-bottom: 20px;
	font-size: 13px;
	line-height: 1;
	font-family: var(--font-en);
	letter-spacing: .08em;
	color: #dda665;
}

.company-philosophy__title{
	margin: 0;
	font-size: min(2.22vw, 32px);
	line-height: 1.6;
	font-family: var(--font-serif);
	font-weight: normal;
	color: #fff;
}

.company-philosophy__text{
	font-size: calc(16px * 0.8);
	line-height: 2.25;
	color: #fff;
  padding-top: 80px;
}

/* SP */
@media screen and (max-width: 767px){

  .company-philosophy__text{
    padding-top: 0;
  }

	.company-philosophy{
		padding: 80px 0;
	}

	.company-philosophy__overlay{
		background: rgba(0, 0, 0, 0.62);
	}

	.company-philosophy__head{
		margin-bottom: 48px;
	}

	.company-philosophy__list{
		max-width: none;
		margin-left: 0;
	}

	.company-philosophy__item{
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 36px 0;
	}

	.company-philosophy__label{
		margin-bottom: 14px;
		font-size: 12px;
	}

	.company-philosophy__title{
		font-size: 26px;
		line-height: 1.6;
	}

	.company-philosophy__text{
		font-size: 14px;
		line-height: 2;
	}

}

/* company-logo-story */
.company-logo-story{
	padding: min(9.03vw, 130px) 0 min(10.42vw, 150px);
	background: #fff;
}

.company-logo-story__head{
	margin-bottom: min(4.17vw, 60px);
}

.company-logo-story__intro{
	display: grid;
	grid-template-columns: minmax(320px, 42%) 1fr;
	gap: min(5.56vw, 80px);
	align-items: center;
	max-width: 980px;
	margin: 0 auto min(5.56vw, 60px);
}

.company-logo-story__logo img{
	width: 100%;
	height: auto;
	display: block;
}

.company-logo-story__catch{
	margin-bottom: 12px;
	font-size: calc(34px * 0.8);
	line-height: 1.9;
	font-family: var(--font-serif);
	color: var(--text);
}

.company-logo-story__sub{
	margin-bottom: 50px;
	font-size: calc(18px * 0.8);
	line-height: 1.6;
	font-family: var(--font-serif);
	color: #ab6333;
	letter-spacing: .04em;
}

.company-logo-story__lead{
	font-size: calc(15px * 0.8);
	line-height: 2.25;
	color: var(--text);
}

.company-logo-story__cards{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: min(3.13vw, 45px) min(3.47vw, 50px);
	max-width: 980px;
	margin: 0 auto;
}

.company-logo-story__card{
	min-height: 210px;
	padding: 32px;
	border: 1px solid #d8d8d8;
	background: #fff;
}

.company-logo-story__card-head{
	display: flex;
	align-items: center;
	gap: 26px;
	margin-bottom: 30px;
}

.company-logo-story__card-icon{
	width: 72px;
	height: 72px;
	flex-shrink: 0;
}

.company-logo-story__card-icon img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.company-logo-story__card-title{
	margin: 0;
	font-size: calc(20px * 0.8);
	line-height: 1.7;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
}

.company-logo-story__card-text{
	font-size: calc(15px * 0.8);
	line-height: 2.25;
	color: var(--text);
}

/* SP */
@media screen and (max-width: 767px){

	.company-logo-story{
		padding: 80px 0;
	}

	.company-logo-story__head{
		margin-bottom: 40px;
	}

	.company-logo-story__intro{
		grid-template-columns: 1fr;
		gap: 36px;
		max-width: none;
		margin-bottom: 56px;
	}

	.company-logo-story__logo{
		width: 82%;
		margin: 0 auto;
	}

	.company-logo-story__catch{
		margin-bottom: 20px;
		font-size: 24px;
		line-height: 1.8;
	}

	.company-logo-story__sub{
		margin-bottom: 28px;
		font-size: 13px;
	}

	.company-logo-story__lead{
		font-size: 14px;
		line-height: 2;
	}

	.company-logo-story__cards{
		grid-template-columns: 1fr;
		gap: 20px;
		max-width: none;
	}

	.company-logo-story__card{
		min-height: 0;
		padding: 28px 20px 30px;
	}

	.company-logo-story__card-head{
		gap: 18px;
		margin-bottom: 22px;
		align-items: flex-start;
	}

	.company-logo-story__card-icon{
		width: 58px;
		height: 58px;
	}

	.company-logo-story__card-title{
		font-size: 16px;
		line-height: 1.7;
	}

	.company-logo-story__card-text{
		font-size: 14px;
		line-height: 2;
	}

}


/* company-business */
.company-business{
	position: relative;
	overflow: hidden;
	padding: min(9.72vw, 140px) 0 min(10.42vw, 150px);
	background: #f7f7f7;
}

.company-business__bg{
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.company-business__bg img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.company-business__inner{
	position: relative;
	z-index: 2;
}

.company-business__head{
	margin-bottom: min(5.56vw, 80px);
}

.company-business__head .c-hl-main{
	margin-bottom: min(3.13vw, 45px);
}

.company-business__lead{
	max-width: 900px;
	font-size: calc(16px * 0.8);
	line-height: 2.25;
	color: var(--text);
}

.company-business__list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap:80px;
	row-gap: min(5.56vw, 80px);
	max-width: 980px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.company-business__item{
	position: relative;
}

.company-business__item:after{
	content:" ";
	background: rgba(82, 75, 68, 0.22);
  height: 100%;
  position: absolute;
  right:-40px;
  display: block;
  width: 1px;
  top:0;
}

.company-business__item:nth-child(3n):after{
	display: none;
}

.company-business__photo{
	margin-bottom: 28px;
}

.company-business__photo img{
	width: 100%;
	aspect-ratio: 370 / 240;
	object-fit: cover;
	display: block;
}

.company-business__title-wrap{
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 32px;
}

.company-business__icon{
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	background: #d28a43;
	display: flex;
	align-items: center;
	justify-content: center;
}

.company-business__icon img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.company-business__title{
	margin: 0 0 6px;
	font-size: calc(24px * 0.8);
	line-height: 1.5;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--text);
  letter-spacing: 0;
}

.company-business__en{
	font-size: 10px;
	line-height: 1.4;
	font-family: var(--font-en);
	color: #ab6333;
	letter-spacing: .04em;
}

.company-business__text{
	font-size: calc(15px * 0.8);
	line-height: 2.2;
	color: var(--text);
}

/* SP */
@media screen and (max-width: 767px){

	.company-business{
		padding: 80px 0;
	}

	.company-business__bg img{
		object-position: center top;
	}

	.company-business__head{
		margin-bottom: 44px;
	}

	.company-business__head .c-hl-main{
		margin-bottom: 28px;
	}

	.company-business__lead{
		max-width: none;
		font-size: 14px;
		line-height: 2;
	}

	.company-business__list{
		display: grid;
		grid-template-columns: 1fr;
		row-gap: 0;
		column-gap: 0;
		max-width: none;
		margin: 0;
	}

	.company-business__item{
		position: relative;
		padding: 0 0 38px;
		margin-bottom: 38px;
	}

	.company-business__item::after{
		display: none;
	}

	.company-business__item::before{
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 1px;
		background: rgba(82, 75, 68, 0.22);
	}

	.company-business__item:last-child{
		padding-bottom: 0;
		margin-bottom: 0;
	}

	.company-business__item:last-child::before{
		display: none;
	}

	.company-business__photo{
		margin-bottom: 22px;
	}

	.company-business__photo img{
		aspect-ratio: 335 / 210;
	}

	.company-business__title-wrap{
		gap: 14px;
		margin-bottom: 20px;
		align-items: center;
	}

	.company-business__icon{
		width: 52px;
		height: 52px;
	}

	.company-business__title{
		margin-bottom: 4px;
		font-size: 20px;
		line-height: 1.5;
	}

	.company-business__en{
		font-size: 10px;
		line-height: 1.4;
	}

	.company-business__text{
		font-size: 14px;
		line-height: 2;
	}

}

/* company-history */
.company-history{
	padding: min(9.72vw, 140px) 0 min(10.42vw, 150px);
	background: linear-gradient(90deg, #173960 0%, #415e7e 100%);
	color: #fff;
}

.company-history__head{
	margin-bottom: min(5.56vw, 80px);
}

.company-history__hl .c-hl-main__en,
.company-history__hl .c-hl-main__ja{
	color: #fff;
}

.company-history__list{
	position: relative;
	max-width: 980px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

/* 縦線：日付の左側に置く */
.company-history__item{
	position: relative;
	display: grid;
	grid-template-columns: 230px 1fr;
	gap: 80px;
	padding: 0 0 58px;
}

.company-history__item:last-child{
	padding-bottom: 0;
}

.company-history__item::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 0;
    width: 1px;
    height: calc(100% - 44px);
    background: rgba(255, 255, 255, 0.42);
}

.company-history__date-wrap{
	position: relative;
	padding-left: 36px;
}

/* ドット：縦線上 */
.company-history__date-wrap::before{
	content: "";
	position: absolute;
	top: 0.72em;
	left: 0;
	z-index: 2;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #dda665;
	transform: translateX(-50%);
}

.company-history__date{
	display: block;
	font-size: calc(24px * 0.8);
	line-height: 1.5;
	font-family: var(--font-serif);
	color: #dda665;
	white-space: nowrap;
}

.company-history__content{
	padding: 0 0 48px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.company-history__item:last-child .company-history__content{
	border-bottom: none;
}

.company-history__title{
	font-size: calc(16px * 0.8);
	line-height: 1.8;
	color: #fff;
  font-weight: normal;
}

.company-history__text{
	font-size: calc(16px * 0.8);
	line-height: 2.1;
	color: #fff;
}

/* SP */
@media screen and (max-width: 767px){

	.company-history{
		padding: 80px 0;
	}

	.company-history__head{
		margin-bottom: 48px;
	}

	.company-history__list{
		max-width: none;
		margin: 0;
	}

	.company-history__list::before{
		left: 8px;
		top: 10px;
		height: calc(100% - 20px);
	}

	.company-history__item{
		display: block;
		padding: 0 0 40px 32px;
	}

	.company-history__item:last-child{
		padding-bottom: 0;
	}

	.company-history__date-wrap{
		padding-left: 0;
		margin-bottom: 14px;
	}

	.company-history__date-wrap::before{
		left: -24px;
		top: 0.7em;
		width: 8px;
		height: 8px;
		transform: none;
	}

	.company-history__date{
		font-size: 18px;
		line-height: 1.5;
	}

	.company-history__content{
		padding-bottom: 34px;
	}

	.company-history__title{
		margin-bottom: 10px;
		font-size: 14px;
		line-height: 1.8;
	}

	.company-history__text{
		font-size: 14px;
		line-height: 2;
	}

.company-history__item::before {
    left: 10px;
}

}

/* company-access */
.company-access{
	padding: min(9.72vw, 140px) 0 min(10.42vw, 150px);
	background: #fff;
}

.company-access__head{
	margin-bottom: min(6.94vw, 100px);
}

.company-access__head .c-hl-main{
	margin-bottom: min(3.13vw, 45px);
}

.company-access__lead{
	max-width: 980px;
	font-size: calc(16px * 0.8);
	line-height: 2.25;
	color: var(--text);
}

.company-access__body{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(400px, 420px);
	gap: 40px;
	align-items: start;
	max-width: 980px;
	margin: 0 auto;
}

.company-access__sub-title{
	font-size: calc(34px * 0.8);
	font-family: var(--font-serif);
	margin: 0 0 calc(50px * 0.8);
	color: var(--text);
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: normal;
}

.company-access__sub-title::before{
	content: "—";
	color: #ab6333;
}

.company-access__table{
	width: 100%;
	border-collapse: collapse;
}

.company-access__table tr{
	display: grid;
	grid-template-columns: 160px 1fr;
}

.company-access__table th,
.company-access__table td{
	padding: 20px 0;
	font-size: calc(15px * 0.8);
	line-height: 2;
	color: var(--text);
	vertical-align: top;
}

.company-access__table th{
	padding-right: 24px;
	font-weight: normal;
	text-align: left;
	color: var(--text);
	font-family: var(--font-serif);
	position: relative;
}

.company-access__table th::after{
	content: "";
	width: 80%;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
	background: #173960;
}

.company-access__table td{
	font-weight: normal;
	border-bottom: 1px solid #d8d8d8;
}

.company-access__map{
	width: 100%;
}

.company-access__map iframe{
	width: 100%;
	aspect-ratio: 500 / 460;
	height: auto;
	display: block;
	filter: grayscale(10%);
}

/* SP */
@media screen and (max-width: 767px){

	.company-access{
		padding: 80px 0;
	}

	.company-access__head{
		margin-bottom: 52px;
	}

	.company-access__head .c-hl-main{
		margin-bottom: 28px;
	}

	.company-access__lead{
		max-width: none;
		font-size: 14px;
		line-height: 2;
	}

	.company-access__body{
		display: block;
		max-width: none;
	}

	.company-access__sub-title{
		margin-bottom: 30px;
		font-size: 24px;
		line-height: 1.5;
	}

	.company-access__table tr{
		display: block;
		padding: 18px 0;
		border-bottom: 1px solid #d8d8d8;
	}

	.company-access__table tr:first-child{
		border-top: 1px solid #d8d8d8;
	}

	.company-access__table th,
	.company-access__table td{
		display: block;
		width: 100%;
		padding: 0;
		font-size: 14px;
		line-height: 2;
	}

	.company-access__table th{
		margin-bottom: 6px;
		padding-right: 0;
	}

	.company-access__table th::after{
		display: none;
	}

	.company-access__table td{
		border-bottom: none;
	}

	.company-access__map{
		margin-top: 40px;
	}

	.company-access__map iframe{
		aspect-ratio: 500 / 460;
	}

}

/* point-slider pagination */
.point-slider__pagination.swiper-pagination{
	position: static;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 20px;
	width: auto;
	margin-top: 48px;
	text-align: left;
}

.point-slider__pagination .swiper-pagination-bullet{
	--padding-block: 10px;
	position: relative;
	width: clamp(40px, 3.13vw, 60px);
	height: auto;
	aspect-ratio: 60 / 3;
	margin: 0 !important;
	padding-block: var(--padding-block);
	border-radius: 0;
	background: transparent !important;
	opacity: 1;
}

.point-slider__pagination .swiper-pagination-bullet::after{
	content: "";
	pointer-events: none;
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	top: calc(50% - 1.5px);
	height: 3px;
	background: #fff;
	opacity: 0.4;
	transition: opacity .3s ease;
}

.point-slider__pagination .swiper-pagination-bullet-active::after{
	opacity: 1;
}

@media screen and (max-width: 767px){

	.point-slider__pagination.swiper-pagination{
		justify-content: center;
		gap: 12px;
		margin-top: 32px;
	}

	.point-slider__pagination .swiper-pagination-bullet{
		width: 30px;
	}

	.point-slider__pagination .swiper-pagination-bullet::after{
		height: 2px;
		top: calc(50% - 1px);
	}

}




/*
@media screen and (max-width:480px){
  .c-bnr-estimate{
    right: 0;
    bottom:0;
    width: 100%;
  }

  .c-bnr-estimate img{
    width: 100%;
    max-width: 100%;
  }
}
*/