@charset "UTF-8";
/*-----------------------------------------------------

  Media Query
  @include vars.mq-up(''){ @contentの内容 }

-----------------------------------------------------*/
/*-----------------------------------------------------

  Color

-----------------------------------------------------*/
/*-----------------------------------------------------

  Font

-----------------------------------------------------*/
/*Font Size*/
/*Font Family*/
@import url("https://fonts.googleapis.com/css2?family=Marcellus&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;600&display=swap");
/***
    The new CSS reset - version 1.11.2 (last updated 15.11.2023)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
    - The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Fix mobile Safari increase font-size on landscape mode */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  -ms-text-size-adjust: none;
      text-size-adjust: none;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
  cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu, summary {
  list-style: none;
}

/* For images to not be able to exceed their container */
img {
  max-inline-size: 100%;
  max-block-size: 100%;
}

img {
  image-rendering: -webkit-optimize-contrast;
}

/* removes spacing between cells in tables */
table {
  border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
  -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
  white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
  -webkit-appearance: revert;
  -moz-appearance: revert;
       appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
  all: revert;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* reset default text opacity of input placeholder */
::-webkit-input-placeholder {
  color: unset;
}
::-moz-placeholder {
  color: unset;
}
:-ms-input-placeholder {
  color: unset;
}
::-ms-input-placeholder {
  color: unset;
}
::placeholder {
  color: unset;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
  display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly.
   - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable=true]) {
  -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
  all: revert;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove details summary webkit styles */
::-webkit-details-marker {
  display: none;
}

/* Custom */
img {
  width: 100%;
  height: auto;
  max-inline-size: unset;
  max-block-size: unset;
}

picture {
  display: block;
}

/*-----------------------------------------------------

  Media Query
  @include vars.mq-up(''){ @contentの内容 }

-----------------------------------------------------*/
/*-----------------------------------------------------

  Color

-----------------------------------------------------*/
/*-----------------------------------------------------

  Font

-----------------------------------------------------*/
/*Font Size*/
/*Font Family*/
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/*-----------------------------------------------------

  Common(2024.10.31)

-----------------------------------------------------*/
/*-----------------------------------------------------
  Layout
@include vars.mq-up('lg'){
    font-size: 1.8rem;
    background: vars.$lightgray;
  }
-----------------------------------------------------*/
/*-----------------------------------------------------

  Body

-----------------------------------------------------*/
body {
  background: #f5f3ec;
  color: #3a3a3a;
  line-height: 2;
  font-family: "Zen Old Mincho", serif;
  font-size: min(3.8461538462vw, 0.9375rem);
}
@media screen and (min-width: 1024px) {
  body {
    font-size: min(1.125vw, 1.125rem);
  }
}
body.is-open, body.is-loading {
  height: 100%;
  overflow: hidden;
}

/*-----------------------------------------------------

  Loading

-----------------------------------------------------*/
.loading {
  background: #f5f3ec;
  width: 100%;
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.loading img {
  width: 120px;
}

/*-----------------------------------------------------

  Layout

-----------------------------------------------------*/
.wrapper {
  position: relative;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .wrapper {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: min(28.125%, 540px) 0 max(71.875%, 100% - 540px);
    grid-template-columns: min(28.125%, 540px) max(71.875%, 100% - 540px);
    -ms-grid-rows: 1fr 0 auto;
    grid-template-rows: 1fr auto;
    gap: 0 0;
        grid-template-areas: "header main" "header footer";
  }
}

div[class$=__inner] {
  position: relative;
  padding-right: min(3.8461538462vw, 15px);
  padding-left: min(3.8461538462vw, 15px);
}
@media screen and (min-width: 630px) {
  div[class$=__inner] {
    max-width: 1140px;
    padding-right: min(3.75vw, 60px);
    padding-left: min(3.75vw, 60px);
    margin-inline: auto;
  }
}

.l-main {
  position: relative;
  z-index: 0;
  grid-area: main;
}

@media screen and (min-width: 630px) {
  .view-sp {
    display: none;
  }
}

.view-tab {
  display: none;
}
@media screen and (min-width: 630px) and (max-width: 1023px) {
  .view-tab {
    display: inline-block;
  }
}
@media screen and (max-width: 629px) {
  .view-tab.view-sp {
    display: inline-block;
  }
}

.view-pc {
  display: none;
}
@media screen and (min-width: 1024px) {
  .view-pc {
    display: inline-block;
  }
}
@media screen and (max-width: 629px) {
  .view-pc.view-sp {
    display: inline-block;
  }
}
@media screen and (min-width: 630px) {
  .view-pc.view-tab {
    display: inline-block;
  }
}

/*-----------------------------------------------------

  DelayScroll

-----------------------------------------------------*/
.is-fadeup {
  opacity: 0;
  -webkit-animation-name: fadeUpAnime;
          animation-name: fadeUpAnime;
  -webkit-animation-duration: 1.5s;
          animation-duration: 1.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.fade-item {
  opacity: 0;
}

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/*-----------------------------------------------------

  Parallax

-----------------------------------------------------*/
.js-parallax {
  display: block;
  height: 300px;
  overflow: hidden;
}
@media screen and (min-width: 630px) {
  .js-parallax {
    width: 100%;
    height: auto;
    aspect-ratio: 23/11;
  }
}

/*-----------------------------------------------------

  Icon

-----------------------------------------------------*/
.icon {
  display: block;
  -webkit-mask-size: cover;
          mask-size: cover;
}
.icon.is-line {
  -webkit-mask-image: url("../img/icon_line.svg");
          mask-image: url("../img/icon_line.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
}
.icon.is-tel {
  background: #3a3a3a;
  -webkit-mask-image: url("../img/icon_tel.svg");
          mask-image: url("../img/icon_tel.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
}

/*-----------------------------------------------------

  Link

-----------------------------------------------------*/
@media screen and (min-width: 1024px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/*-----------------------------------------------------

  Header

-----------------------------------------------------*/
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  min-height: 55px;
  grid-area: header;
}
@media screen and (min-width: 1024px) {
  .l-header {
    width: min(28.125%, 540px);
    height: 100svh;
  }
}

.l-header__inner {
  height: 55px;
}

.l-header__hamburger {
  position: fixed;
  top: 20px !important;
  left: min(3.8461538462vw, 15px) !important;
  z-index: 50;
  width: 20px;
  height: 15px;
}
@media screen and (min-width: 630px) {
  .l-header__hamburger {
    left: min(1.875vw, 30px) !important;
  }
}
@media screen and (min-width: 1024px) {
  .l-header__hamburger {
    display: none;
  }
}
.l-header__hamburger .midnightInner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.l-header__hamburger button {
  position: relative;
  width: 20px;
  height: 15px;
  overflow: hidden;
}
.l-header__hamburger button span {
  display: block;
  position: absolute;
  width: 20px;
  height: 1px;
  background: #3a3a3a;
  -webkit-transition: 0.5s all;
  transition: 0.5s all;
}
.l-header__hamburger button span:nth-of-type(1) {
  top: 0;
}
.l-header__hamburger button span:nth-of-type(2) {
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.l-header__hamburger button span:nth-of-type(3) {
  bottom: 0;
}
.l-header__hamburger.is-open span {
  background: #ffffff;
}
.l-header__hamburger.is-open span:nth-of-type(1) {
  top: 50%;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.l-header__hamburger.is-open span:nth-of-type(2) {
  opacity: 0;
}
.l-header__hamburger.is-open span:nth-of-type(3) {
  top: 50%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.l-header__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 25;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  padding-top: min(25.641025641vw, 100px);
  overflow-y: auto;
  background: url("../img/menu_background.png") #0082a0 top left;
  background-size: 150px auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: 0.5s all;
  transition: 0.5s all;
}
@media screen and (min-width: 1024px) {
  .l-header__menu {
    padding-top: 0;
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
    width: min(28.125%, 540px);
    background-size: min(9.375vw, 150px) auto;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.l-header__menu.is-open {
  -webkit-transform: translateX(0%);
          transform: translateX(0%);
}

.l-header__logo {
  width: min(11.25vw, 180px);
  margin-bottom: min(3.75vw, 60px);
}
@media screen and (max-width: 1023px) {
  .l-header__logo {
    display: none;
  }
}

.l-header__nav {
  text-align: center;
}
.l-header__nav .l-header__nav-item {
  line-height: 1;
}
.l-header__nav .l-header__nav-anchor .l-header__nav-item {
  margin-bottom: min(11.5384615385vw, 45px);
}
@media screen and (min-width: 1024px) {
  .l-header__nav .l-header__nav-anchor .l-header__nav-item {
    margin-bottom: min(2.8125vw, 45px);
  }
}
.l-header__nav .l-header__nav-anchor .l-header__nav-item a {
  color: #ffffff;
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
  font-size: min(6.4102564103vw, 1.5625rem);
}
@media screen and (min-width: 1024px) {
  .l-header__nav .l-header__nav-anchor .l-header__nav-item a {
    font-size: min(1.5625vw, 1.5625rem);
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
    opacity: 1;
  }
  .l-header__nav .l-header__nav-anchor .l-header__nav-item a:hover {
    opacity: 0.5;
  }
}
.l-header__nav .l-header__nav-contact {
  width: min(82.0512820513vw, 320px);
  padding-bottom: min(12.8205128205vw, 50px);
}
@media screen and (min-width: 1024px) {
  .l-header__nav .l-header__nav-contact {
    width: min(18.75vw, 300px);
    padding-bottom: 0;
  }
}
.l-header__nav .l-header__nav-contact .l-header__nav-item {
  margin-bottom: min(5.1282051282vw, 20px);
}
.l-header__nav .l-header__nav-contact .l-header__nav-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: min(15.3846153846vw, 60px);
  border-radius: 50vw;
  background: #ffffff;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .l-header__nav .l-header__nav-contact .l-header__nav-item a {
    height: min(3.75vw, 60px);
    font-size: min(1.25vw, 1.25rem);
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  .l-header__nav .l-header__nav-contact .l-header__nav-item a:hover {
    background: #c8a810;
    color: #ffffff;
  }
  .l-header__nav .l-header__nav-contact .l-header__nav-item a:hover .icon {
    background: #ffffff;
  }
}
.l-header__nav .l-header__nav-contact .l-header__nav-item a .icon {
  width: min(6.4102564103vw, 25px);
  height: min(6.4102564103vw, 25px);
  margin-right: min(2.5641025641vw, 10px);
  background: #0082a0;
}
@media screen and (min-width: 1024px) {
  .l-header__nav .l-header__nav-contact .l-header__nav-item a .icon {
    width: min(1.5625vw, 25px);
    height: min(1.5625vw, 25px);
    margin-right: min(0.625vw, 10px);
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
}

.l-header__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: min(100% - 3.8461538462vw, 100% - 15px);
  height: 55px;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 630px) {
  .l-header__contact {
    width: min(100% - 1.875vw, 100% - 30px);
  }
}
@media screen and (min-width: 1024px) {
  .l-header__contact {
    display: none;
  }
}
.l-header__contact .l-header__contact-item {
  margin-left: 25px;
}
.l-header__contact .l-header__contact-item .icon {
  width: 25px;
  height: 25px;
  overflow: hidden;
  background: #3a3a3a;
}
.l-header__contact .l-header__contact-item .icon span {
  display: block;
  padding-top: 25px;
}

.midnightHeader.white button span, .midnightHeader.white .icon {
  background: #ffffff !important;
}

/*-----------------------------------------------------

  MV

-----------------------------------------------------*/
.mv {
  display: block;
  position: relative;
  min-height: 100%;
}
@media screen and (min-width: 1024px) {
  .mv {
    min-height: 100svh;
  }
}

.mv__inner {
  display: -ms-grid;
  display: grid;
  min-height: calc(100svh - 55px);
  padding-top: 55px;
  -ms-grid-columns: 100%;
  grid-template-columns: 100%;
  -ms-grid-rows: auto 0 1fr;
  grid-template-rows: auto 1fr;
  gap: 0 0;
      grid-template-areas: "title" "text";
}
@media screen and (min-width: 630px) {
  .mv__inner {
    max-width: 100% !important;
    padding-right: min(1.875vw, 30px) !important;
    padding-left: min(1.875vw, 30px) !important;
  }
}
@media screen and (min-width: 1024px) {
  .mv__inner {
    height: 100svh;
    padding-top: min(1.875vw, 30px);
    -ms-grid-rows: 1fr auto;
    grid-template-rows: 1fr auto;
  }
}
@media screen and (min-width: 1600px) {
  .mv__inner {
    padding-top: min(3.75vw, 60px);
    padding-right: min(3.75vw, 60px) !important;
    padding-left: min(3.75vw, 60px) !important;
  }
}

.mv__title {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  display: block;
  position: relative;
  width: 100%;
  overflow: hidden;
  grid-area: title;
  aspect-ratio: 1;
}
@media screen and (max-width: 389px) {
  .mv__title {
    aspect-ratio: 4/3;
  }
}
@media screen and (min-width: 630px) {
  .mv__title {
    aspect-ratio: 4/3;
  }
}
@media screen and (min-width: 1024px) {
  .mv__title {
    aspect-ratio: auto;
  }
}
.mv__title::before {
  display: block;
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  content: "";
}

.mv__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: min(35.8974358974vw, 200px);
}
@media screen and (min-width: 1024px) {
  .mv__logo {
    width: min(18.75vw, 300px);
  }
}

.mv__image {
  position: relative;
  height: 100%;
  overflow: hidden;
}
.mv__image .mv__image-item {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
}
.mv__image .mv__image-item picture {
  opacity: 0;
  position: absolute;
  bottom: 0;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  width: 100%;
  height: auto;
  -webkit-transition: opacity 2s linear, -webkit-transform 7.5s linear;
  transition: opacity 2s linear, -webkit-transform 7.5s linear;
  transition: opacity 2s linear, transform 7.5s linear;
  transition: opacity 2s linear, transform 7.5s linear, -webkit-transform 7.5s linear;
}
@media screen and (min-width: 1024px) {
  .mv__image .mv__image-item picture {
    bottom: -10%;
  }
}
.mv__image .mv__image-item picture.is-show {
  opacity: 1;
}
.mv__image .mv__image-item picture.is-zoom {
  -webkit-transform: scale(1.3);
          transform: scale(1.3);
}

.mv__text {
  -ms-grid-row: 3;
  -ms-grid-column: 1;
  padding: min(3.8461538462vw, 15px) 0 min(17.9487179487vw, 70px);
  text-align: center;
  -ms-grid-row-align: center;
      align-self: center;
  grid-area: text;
}
@media screen and (min-width: 1024px) {
  .mv__text {
    padding: min(5vw, 80px) 0 100px;
  }
}

.mv__catch {
  margin-bottom: min(2.5641025641vw, 10px);
  line-height: 1.25;
  font-size: min(8.2051282051vw, 2rem);
}
@media screen and (min-width: 1024px) {
  .mv__catch {
    margin-bottom: min(1.875vw, 30px);
    font-size: min(2.90625vw, 2.90625rem);
  }
}
.mv__catch strong {
  color: #0082a0;
}

.mv__lead {
  line-height: 1.5;
  font-size: min(3.5897435897vw, 0.875rem);
}
@media screen and (min-width: 1024px) {
  .mv__lead {
    font-size: min(1.3125vw, 1.3125rem);
  }
}

.mv__scroll {
  position: absolute;
  bottom: min(11.5384615385vw, 45px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
  font-size: min(2.5641025641vw, 0.625rem);
}
@media screen and (min-width: 1024px) {
  .mv__scroll {
    font-size: min(0.9375vw, 0.9375rem);
  }
}
.mv__scroll::after {
  display: block;
  position: absolute;
  bottom: max(-26.9230769231vw, -105px);
  left: 50%;
  z-index: 0;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 1px;
  height: min(25.641025641vw, 100px);
  background: #3a3a3a;
  content: "";
}

/*-----------------------------------------------------

  Section

-----------------------------------------------------*/
.sec__inner {
  padding-top: min(30.7692307692vw, 120px);
  padding-bottom: min(41.0256410256vw, 160px);
}
@media screen and (min-width: 1024px) {
  .sec__inner {
    padding-top: min(16.875vw, 270px);
    padding-bottom: min(22.5vw, 360px);
  }
}

.sec__head {
  margin-bottom: min(20.5128205128vw, 80px);
  line-height: 1;
  text-align: center;
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
  font-size: min(10.2564102564vw, 2.5rem);
}
@media screen and (min-width: 1024px) {
  .sec__head {
    margin-bottom: min(7.5vw, 120px);
    font-size: min(6.25vw, 6.25rem);
  }
}
.sec__head span {
  display: block;
  margin-top: 0.5em;
  font-weight: .sec__head span semibold;
  font-family: "Zen Old Mincho", serif;
  font-size: min(4.6153846154vw, 1.125rem);
}

.sec__inner .sec__text {
  margin-bottom: min(10.2564102564vw, 40px);
}
@media screen and (min-width: 1024px) {
  .sec__inner .sec__text {
    margin-bottom: min(3.75vw, 60px);
  }
}
.sec__inner .sec__text:last-of-type {
  margin-bottom: 0;
}
@media screen and (min-width: 630px) {
  .sec__inner .sec__text.is-center {
    text-align: center;
  }
}

/*-----------------------------------------------------

  About

-----------------------------------------------------*/
.about__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: min(10.2564102564vw, 40px) 0 min(6.4102564103vw, 25px);
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (min-width: 630px) {
  .about__list {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media screen and (min-width: 1024px) {
  .about__list {
    margin: min(3.75vw, 60px) 0 min(3.75vw, 60px);
  }
}
.about__list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: min(28.2051282051vw, 110px);
  margin: 0 min(1.9230769231vw, 7.5px) min(3.8461538462vw, 15px);
  border-radius: 50%;
  background: #ffffff;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  aspect-ratio: 1;
}
@media screen and (min-width: 630px) {
  .about__list li {
    width: calc((100% - min(15.3846153846vw, 60px)) / 5);
    margin: 0;
  }
}
@media screen and (min-width: 1024px) {
  .about__list li {
    width: calc((100% - min(7.5vw, 120px)) / 5);
  }
}
.about__list li:first-of-type {
  margin-left: 0;
}
.about__list li:nth-of-type(3) {
  margin-right: 0;
}
.about__list li p {
  line-height: 1.25;
  text-align: center;
  font-size: min(3.5897435897vw, 0.875rem);
}
@media screen and (min-width: 1024px) {
  .about__list li p {
    font-size: min(1.125vw, 1.125rem);
  }
}
@media screen and (min-width: 1600px) {
  .about__list li p {
    font-size: min(1.3125vw, 1.3125rem);
  }
}
.about__list li p span {
  color: #0082a0;
}

/*-----------------------------------------------------

  Professional

-----------------------------------------------------*/
.professional__list {
  display: block grid;
  margin-top: min(15.3846153846vw, 60px);
  -ms-grid-columns: 1fr;
  grid-template-columns: repeat(1, 1fr);
  gap: min(12.8205128205vw, 50px);
}
@media screen and (min-width: 630px) {
  .professional__list {
    -ms-grid-columns: (1fr)[2];
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 1024px) {
  .professional__list {
    -ms-grid-columns: 1fr min(2.8125vw, 45px) 1fr min(2.8125vw, 45px) 1fr;
    grid-template-columns: repeat(3, 1fr);
    gap: min(5.625vw, 90px) min(2.8125vw, 45px);
  }
}

.professional__box .professional__box-image {
  display: block;
  width: min(41.0256410256vw, 160px);
  height: min(41.0256410256vw, 160px);
  margin: 0 auto min(3.8461538462vw, 15px);
  overflow: hidden;
  border-radius: 50%;
}
@media screen and (min-width: 1024px) {
  .professional__box .professional__box-image {
    width: min(11.25vw, 180px);
    height: min(11.25vw, 180px);
    margin: 0 auto min(1.5625vw, 25px);
  }
}
.professional__box .professional__box-text dt {
  margin-bottom: min(3.8461538462vw, 15px);
  font-weight: 600;
  line-height: 1;
  text-align: center;
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .professional__box .professional__box-text dt {
    margin-bottom: min(1.875vw, 30px);
    letter-spacing: -0.05em;
    font-size: min(1.5625vw, 1.5625rem);
  }
}
.professional__box .professional__box-text dt small, .professional__box .professional__box-text dt span {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: min(3.3333333333vw, 0.8125rem);
}
@media screen and (min-width: 1024px) {
  .professional__box .professional__box-text dt small, .professional__box .professional__box-text dt span {
    letter-spacing: 0;
    font-size: min(0.9375vw, 0.9375rem);
  }
}
.professional__box .professional__box-text dt small {
  margin-bottom: 0.5em;
  color: #0082a0;
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
}
.professional__box .professional__box-text dt span {
  margin-top: 0.5em;
}

/*-----------------------------------------------------

  Dreams

-----------------------------------------------------*/
.dreams .sec__inner {
  padding-right: 0;
  padding-left: 0;
  max-width: 100% !important;
}

.dreams__list .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 10px;
  margin: min(5.1282051282vw, 20px) auto 0;
  overflow: hidden;
}
.dreams__list .slick-dots li {
  position: relative;
  width: 10px;
  height: 10px;
  display: block;
  margin: 0 7.5px;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .dreams__list .slick-dots li {
    cursor: pointer;
  }
}
.dreams__list .slick-dots li button {
  display: block;
  width: 10px;
  height: 0;
  padding-top: 10px;
}
.dreams__list .slick-dots li::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 10px;
  height: 10px;
  background: #d8d4c6;
  content: "";
  border-radius: 50%;
}
.dreams__list .slick-dots li.slick-active::before {
  background: #0082a0;
}
.dreams__list .slick-arrow {
  display: block;
  position: absolute;
  top: min(50% - 1.25vw, 50% - 30px);
  width: min(3.125vw, 50px);
  height: min(3.125vw, 50px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 50%;
  border: 1px solid #c8a810;
  z-index: 50;
}
@media screen and (min-width: 1024px) {
  .dreams__list .slick-arrow {
    opacity: 1;
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
    cursor: pointer;
  }
  .dreams__list .slick-arrow:hover {
    opacity: 0.5;
  }
}
.dreams__list .slick-arrow::before, .dreams__list .slick-arrow::after {
  display: block;
  content: "";
}
.dreams__list .slick-arrow::before {
  height: 0;
  padding-top: min(3.125vw, 50px);
}
.dreams__list .slick-arrow::after {
  position: absolute;
  vertical-align: middle;
  color: #c8a810;
  line-height: 1;
  width: 0.5em;
  height: 0.5em;
  border: 1px solid currentColor;
  border-left: 0;
  border-bottom: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transform: translate(-25%, -50%) rotate(-135deg);
          transform: translate(-25%, -50%) rotate(-135deg);
  top: 50%;
  left: 50%;
}
.dreams__list .slick-arrow.slick-prev {
  left: min(1.875vw, 30px);
}
@media screen and (min-width: 1600px) {
  .dreams__list .slick-arrow.slick-prev {
    left: min(3.75vw, 60px);
  }
}
.dreams__list .slick-arrow.slick-next {
  right: min(1.875vw, 30px);
}
.dreams__list .slick-arrow.slick-next::after {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
@media screen and (min-width: 1600px) {
  .dreams__list .slick-arrow.slick-next {
    right: min(3.75vw, 60px);
  }
}

@media screen and (min-width: 1922px) {
  .dreams__box {
    width: min(35.625vw, 570px) !important;
  }
}
.dreams__box .dreams__box-inner {
  margin-right: min(3.8461538462vw, 15px);
  margin-left: min(3.8461538462vw, 15px);
  padding: min(6.4102564103vw, 25px) min(7.6923076923vw, 30px) min(10.2564102564vw, 40px);
  overflow: hidden;
  border-top-left-radius: 50vw;
  border-top-right-radius: 50vw;
  background: #ffffff;
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-inner {
    margin-right: min(1.25vw, 20px);
    margin-left: min(1.25vw, 20px);
    padding: min(2.8125vw, 45px) min(2.8125vw, 45px) min(3.75vw, 60px);
  }
}
.dreams__box .dreams__box-head {
  margin-bottom: min(7.6923076923vw, 30px);
  padding-bottom: min(7.6923076923vw, 30px);
  border-bottom: 1px solid #0082a0;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-head {
    margin-bottom: min(2.8125vw, 45px);
    padding-bottom: min(1.5625vw, 25px);
  }
}
.dreams__box .dreams__box-case {
  margin-bottom: min(3.8461538462vw, 15px);
  color: #0082a0;
  line-height: 1;
  font-size: min(3.8461538462vw, 0.9375rem);
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-case {
    font-size: min(1.875vw, 1.875rem);
  }
}
.dreams__box .dreams__box-case span {
  font-size: min(6.4102564103vw, 1.5625rem);
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-case span {
    font-size: min(3.125vw, 3.125rem);
  }
}
.dreams__box .dreams__box-catch {
  margin-bottom: min(2.5641025641vw, 10px);
  color: #0082a0;
  line-height: 1.25;
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-catch {
    margin-bottom: min(0.625vw, 10px);
    font-size: min(1.5625vw, 1.5625rem);
  }
}
.dreams__box .dreams__box-person {
  font-size: min(2.8205128205vw, 0.6875rem);
}
@media screen and (min-width: 1024px) {
  .dreams__box .dreams__box-person {
    font-size: min(0.9375vw, 0.9375rem);
  }
}

/*-----------------------------------------------------

  Flow

-----------------------------------------------------*/
.flow__box {
  position: relative;
  padding-bottom: min(20.5128205128vw, 80px);
}
@media screen and (min-width: 630px) {
  .flow__box {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: min(56.862745098%, 580px) min(2.5vw, 40px) min(39.2156862745%, 400px);
    grid-template-columns: min(56.862745098%, 580px) min(39.2156862745%, 400px);
    -ms-grid-rows: auto 0 1fr;
    grid-template-rows: auto 1fr;
    gap: 0 min(2.5vw, 40px);
        grid-template-areas: "head head" "text image";
  }
  .flow__box > .mv__text {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
  }
}
.flow__box .flow__box-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: min(5.1282051282vw, 20px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  grid-area: head;
}
@media screen and (min-width: 630px) {
  .flow__box .flow__box-head {
    width: 100%;
  }
}
@media screen and (min-width: 1024px) {
  .flow__box .flow__box-head {
    margin-bottom: min(1.875vw, 30px);
  }
}
.flow__box .flow__box-num {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: min(15.3846153846vw, 60px);
  height: min(15.3846153846vw, 60px);
  margin-right: min(2.5641025641vw, 10px);
  border: 1px solid #3a3a3a;
  border-radius: 50%;
  line-height: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
  font-size: min(3.0769230769vw, 0.75rem);
}
@media screen and (min-width: 1024px) {
  .flow__box .flow__box-num {
    width: min(5vw, 80px);
    height: min(5vw, 80px);
    margin-right: min(2.5641025641vw, 10px);
    font-size: min(0.9375vw, 0.9375rem);
  }
}
.flow__box .flow__box-num span {
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .flow__box .flow__box-num span {
    font-size: min(2.1875vw, 2.1875rem);
  }
}
.flow__box .flow__box-title {
  font-weight: 600;
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .flow__box .flow__box-title {
    font-size: min(2.1875vw, 2.1875rem);
  }
}
.flow__box .flow__box-image {
  grid-area: image;
}
.flow__box .flow__box-text {
  -ms-grid-row: 3;
  -ms-grid-column: 1;
  grid-area: text;
}
@media screen and (min-width: 630px){
  .flow__box .flow__box-head {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 3;
  }
  .flow__box .flow__box-image {
    -ms-grid-row: 3;
    -ms-grid-column: 3;
  }
  .flow__box > .flow__box-text {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
  }
}
.flow__box .flow__box-text::after {
  display: block;
  position: absolute;
  bottom: max(-17.9487179487vw, -70px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 1px;
  height: min(15.3846153846vw, 60px);
  background: #d8d4c6;
  content: "";
}
@media screen and (min-width: 630px) {
  .flow__box .flow__box-text::after {
    left: max(46.25vw, 50vw - 60px);
  }
}
@media screen and (min-width: 1024px) {
  .flow__box .flow__box-text::after {
    left: min(87.9310344828%, 510px);
  }
}
.flow__box:last-of-type {
  padding-bottom: 0;
}
.flow__box:last-of-type .flow__box-text::after {
  display: none;
}

/*-----------------------------------------------------

  Contact

-----------------------------------------------------*/
.contact {
  background: #ffffff;
}
.contact .sec__inner {
  padding-top: min(25.641025641vw, 100px);
}
@media screen and (min-width: 1024px) {
  .contact .sec__inner {
    padding-top: min(6.25vw, 100px);
    padding-bottom: min(11.25vw, 180px);
  }
}

.contact__head {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto min(12.8205128205vw, 50px);
  font-size: min(6.4102564103vw, 1.5625rem);
}
@media screen and (min-width: 1024px) {
  .contact__head {
    margin-bottom: min(4.375vw, 70px);
    font-size: min(2.5vw, 2.5rem);
  }
}
.contact__head span {
  color: #0082a0;
}

.contact__button {
  display: block grid;
  -ms-grid-columns: 1fr;
  grid-template-columns: repeat(1, 1fr);
  gap: min(5.1282051282vw, 20px);
}
@media screen and (min-width: 630px) {
  .contact__button {
    -ms-grid-columns: (1fr)[2];
    grid-template-columns: repeat(2, 1fr);
    margin-inline: auto;
  }
}
@media screen and (min-width: 1024px) {
  .contact__button {
    width: 100%;
    max-width: 760px;
  }
}
.contact__button .contact__button-item {
  width: 100%;
  height: min(15.3846153846vw, 60px);
}
.contact__button .contact__button-item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  border-radius: 50vw;
  background: #0082a0;
  color: #ffffff;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .contact__button .contact__button-item a {
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  .contact__button .contact__button-item a:hover {
    background: #c8a810;
  }
}
.contact__button .contact__button-item a .icon {
  width: min(6.4102564103vw, 25px);
  height: min(6.4102564103vw, 25px);
  margin-right: min(2.5641025641vw, 10px);
  background: #ffffff;
}
@media screen and (min-width: 1024px) {
  .contact__button .contact__button-item a .icon {
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
}

/*-----------------------------------------------------

  Management

-----------------------------------------------------*/
.management .sec__inner {
  padding-top: min(25.641025641vw, 100px);
}
@media screen and (min-width: 1024px) {
  .management .sec__inner {
    padding-top: min(13.125vw, 210px);
    padding-bottom: min(18.75vw, 300px);
  }
}

.management__head {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto min(8.9743589744vw, 35px);
  font-size: min(5.1282051282vw, 1.25rem);
}
@media screen and (min-width: 1024px) {
  .management__head {
    font-size: min(1.875vw, 1.875rem);
    margin-bottom: min(5vw, 80px);
  }
}

.management__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.management__list dt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 30%;
  padding: 1em 0;
  border-bottom: 1px solid #d8d4c6;
}
@media screen and (min-width: 1024px) {
  .management__list dt {
    padding-left: 1.5em;
  }
}
.management__list dd {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 70%;
  margin-left: 0;
  padding: 1em 0;
  border-bottom: 1px solid #d8d4c6;
  line-height: 1.25;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.management__list dd a {
  color: #0082a0;
  text-decoration: underline;
}
@media screen and (min-width: 1024px) {
  .management__list dd a {
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  .management__list dd a:hover {
    color: #c8a810;
  }
}

/*-----------------------------------------------------

  Footer

-----------------------------------------------------*/
.l-footer {
  padding-top: min(5.1282051282vw, 20px);
  padding-bottom: min(6.4102564103vw, 25px);
  grid-area: footer;
}
@media screen and (min-width: 1024px){
  .l-main {
    -ms-grid-row: 1;
    -ms-grid-column: 3;
  }
  .l-header {
    -ms-grid-row: 1;
    -ms-grid-row-span: 3;
    -ms-grid-column: 1;
  }
  .l-footer {
    -ms-grid-row: 3;
    -ms-grid-column: 3;
  }
}
.l-footer .copyright {
  text-align: center;
  font-family: "Marcellus", sans-serif;
  font-weight: 400;
  font-size: min(3.0769230769vw, 0.75rem);
}