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

  Header
  
----------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
  logo
--------------------------------------------------------------------------------*/
@media print, screen and (min-width:901px) {
  #top .l-hd-logo {
    z-index: inherit;
    width: calc(50% - 140px);
    padding-top: calc(var(--box-space-max) * 3);
    padding-bottom: calc(var(--box-space-max) * 3);
    padding-right: calc(280 / 2000 * 100vw);
    padding-left: var(--box-space-l);
  }
  #top .l-hd-logo .sub {
    padding-left: 4rem;
    padding-bottom: 4em;
    order: 1;
  }
  #top .l-hd-logo .sub__txt {
    line-height: 1;
    width: 2em;
    writing-mode: vertical-rl;
    text-align: left;
    white-space: nowrap;
  }
  #top .l-hd-logo .ttl {
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 99;
  }
  #top .l-hd-logo .ttl a {
    width: calc(110 / 1200 * 100vw);
    max-width: 110px;
    margin-bottom: -4em;
    align-self: center;
  }
}
@media screen and (min-width:901px) and (max-width:1100px) {
  #top .l-hd-logo {
    z-index: 1;
    width: auto;
    padding: var(--box-space-l) var(--box-space-s);
  }
  #top .l-hd-logo .sub {
    font-size: var(--fs-s);
    padding-left: 3rem;
    padding-bottom: 0;
  }
  #top .l-hd-logo .sub__txt {
    width: 2em;
  }
  #top .l-hd-logo .ttl a {
    margin-bottom: 0;
    width: calc(90 / 1100 * 100vw);
    max-width: 90px;
    min-width: 80px;
  }
}
@media screen and (max-width:900px) {
  #top .l-hd-logo {
    padding: var(--box-space-s) var(--box-space-min);
  }
  #top .l-hd-logo .sub {
    font-size: var(--fs-2s);
    padding-bottom: 1.5rem;
  }
  #top .l-hd-logo .ttl {
    flex-direction: column;
  }
  #top .l-hd-logo .ttl a {
    text-decoration: none;
    flex-shrink: 0;
    width: 100%;
    height: calc(60 / 800 * 100vw);
    max-height: 60px;
    min-height: 50px;
    background: url("../image/logoX.svg") no-repeat top center;
    background-size: contain;
  }
  #top .l-hd-logo .ttl a img {
    display: none;
  }
}
@media screen and (max-width:640px) {
  #top .l-hd-logo .sub {
    font-size: var(--fs-3s);
  }
  #top .l-hd-logo .ttl a {
    height: calc(50 / 640 * 100vw);
    max-height: 50px;
    min-height: 40px;
  }
}

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

  Main visual
  
----------------------------------------------------------------------------------------------------*/
.mainVisual {
  text-align: left;
}
.mainVisual .slick-list,
.mainVisual .slick-track {
  width: 100%;
  height: 100%;
}
.mv {
  width: 100%;
  overflow: hidden;
}
.mv__item {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.mv__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media print, screen and (min-width:1101px) {
  .mv {
    padding-left: calc(50% - (420 / 2000 * 100vw));
  }
}
@media print, screen and (min-width:901px) {
  .mv {
    height: 700px;
  }
}
@media screen and (max-width:900px) {
  .mv {
    height: calc(550 / 800 * 100vw);
    max-height: 550px;
    min-height: 300px;
  }
}
.mv__item img {
  transform: scale(1.2);
  filter: blur(5px);
}
.mv__item.is-active img {
  animation: mv_effect 9s forwards;
  animation-timing-function: var(--cubic-bezier);
}
@keyframes mv_effect {
  0% { transform: scale(1.2); filter: blur(5px); }
  25% { filter: none; }
  100% { transform: scale(1); filter: none; }
}
.mv-txt {
  position: relative;
  overflow: hidden;
  padding-top: var(--box-space-max);
  padding-bottom: var(--block-space-max);
}
.mv-txt .inner {
  text-align: left;
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--side-space);
  padding-right: var(--side-space);
  box-sizing: content-box;
}
.mv-lead {
  position: relative;
  z-index: 1;
  margin-bottom: 4rem;
}
.mv-lead__item {
  transform: none;
  color: var(--color-red);
  font-family: var(--ff-min);
  font-size: var(--fs-5l);
  font-weight: 600;
  line-height: var(--line-height-m);
  overflow: hidden;
}
.mv-lead__item .textSlide__txt {
  display: inline-block;
}
.mv-txt-btn {
  display: inline-block;
  padding-top: 1.5em;
}
@media print, screen and (min-width:901px) {
  .mv-txt {
    margin-top: calc(-1 * var(--block-space-l)); 
  }
  .mv-txt .inner {
    padding-top: calc(var(--box-space-m) + var(--block-space-l));
  }
}
@media screen and (max-width:900px) {
  .mv-txt {
    margin-top: calc(-1 * var(--block-space-max)); 
  }
  .mv-txt {
    padding-top: calc(var(--block-space-max) + var(--block-space-l));
  }
  .mv-lead {
    margin-bottom: 3rem;
  }
  .mv-lead__item {
    font-size: var(--fs-4l);
  }
}

/*--------------------------------------------------------------------------------
  桜
--------------------------------------------------------------------------------*/
.mv-blossom {
  overflow: hidden;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 700px;
  pointer-events: none;
}
.mv-blossom .inner {
  position: absolute;
  left: -15%;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.mv-txt-blossom {
  position: absolute;
  left: 50%;
  top: 0;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.mv-txt-blossom-container,
.mv-blossom-container {
  width: 100%;
  height: 100%;
}
.mv-txt-blossom .petal,
.mv-blossom .petal {
  position: absolute;
  background-color: #ffc0cb;
  border-radius: 150% 0 150% 0;
  animation: animate-petal 14s linear;
}
.mv-txt-blossom .petal:after,
.mv-blossom .petal:after {
  content: "";
  position: absolute;
  top: -14%;
  left: -10%;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #ffc0cb;
  border-radius: 150% 0 150% 0;
  transform: rotate(15deg);
}
@keyframes animate-petal {
  0% {
    top: 0;
    opacity: 0;
    transform: rotate(0deg);
    margin-left: 0;
    filter: blur(5px);
  }
  10% {
    opacity: 1;
    filter: blur(2px);
  }
  20% {
    filter: none;
  }
  80% {
    opacity: 0;
    filter: blur(5px);
  }
  100% {
    top: 100vh;
    transform: rotate(1000deg);
    margin-left: -25%;
  }
}
@media screen and (max-width:1100px) {
  .mv-blossom {
    opacity: 0;
  }
}
@media print, screen and (min-width:901px) {
  .mv-txt-blossom {
    width: 100%;
  }
}
@media screen and (max-width:900px) {
  .mv-txt-blossom {
    width: 60%;
  }
  .mv-txt-blossom-container {
    transform: scale(0.9);
  }
}
@media screen and (max-width:640px) {
  .mv-txt-blossom-container {
    transform: scale(0.7);
  }
}

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

  SNS
  
----------------------------------------------------------------------------------------------------*/
.sec-sns {
  padding-left: var(--side-space);
  padding-right: var(--side-space);
  padding-bottom: var(--block-space-max);
}
.sns {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  background: url("../image/bg2.jpg") repeat center center;
  padding: var(--box-space-l);
  display: flex;
}
.sns .lead {
  font-family: var(--ff-min);
  font-size: var(--fs-3l);
  font-weight: 600;
  line-height: var(--line-height-m);
}
.sns .lead b {
  font-size: var(--fs-2l);
}
.sns-qr {
  list-style: none;
  display: flex;
  gap: 1rem;
}
.sns-qr li {
  width: 50%;
  text-align: center;
  background-color: #FFF;
}
.sns-qr li img {
  max-width: 300px;
  width: 100%;
}
@media print, screen and (min-width:1101px) {
  .sns {
    align-items: center;
  }
  .sns-qr {
    width: 65%;
    margin-left: auto;
    align-self: flex-end;
  }
  .sns .txt {
    flex: 1;
    padding-right: var(--box-space-m);
  }
}
@media screen and (max-width:1100px) {
  .sns {
    flex-direction: column;
  }
  .sns .lead {
    padding-right: 2em;
  }
  .sns-qr {
    padding-top: 4rem;
  }
}
@media screen and (max-width:900px) {
  .sns-qr {
    padding-top: 3rem;
  }
}
@media screen and (max-width:540px) {
  .sns-qr {
    flex-direction: column;
  }
  .sns-qr li {
    width: 100%;
  }
  .sns-qr li img {
    max-width: 220px;
  }
}

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

  営業
  
----------------------------------------------------------------------------------------------------*/
.sec-eigyo {
  padding-left: var(--side-space);
  padding-right: var(--side-space);
  padding-top: var(--block-space-m);
  position: relative;
}
.sec-eigyo:before {
  content: "";
  width: 100%;
  height: calc(100% - var(--block-space-m));
  display: block;
  position: absolute;
  left: 0;
  bottom: var(--block-space-m);
  z-index: -1;
  background: url("../image/bg1.jpg") repeat center top;
  background-size: cover;
}
.eigyo {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  display: flex;
  justify-content: space-between;
}
.eigyo-box {
  position: relative;
  display: flex;
  flex-direction: column;
}
.eigyo-box .type {
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  color: #FFF;
  padding: 1px;
  line-height: var(--line-height-s);
  font-family: var(--ff-min);
  font-weight: 500;
  writing-mode: vertical-rl;
  padding: 1.5em 0.75em;
}
.eigyo-box .type:before {
  content: "";
  width: 1.2em;
  height: 1.2em;
  display: inline-block;
  margin-bottom: 0.5em;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
.eigyo-box .type--daytime {
  background-color: var(--color-red);
}
.eigyo-box .type--daytime:before {
  background-image: url("../image/icon/daytime.svg");
}
.eigyo-box .type--evening {
  background-color: var(--color-blue);
}
.eigyo-box .type--evening:before {
  background-image: url("../image/icon/evening.svg");
}
.eigyo-box .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.eigyo-box .body {
  height: 100%;
  padding: var(--box-space-m);
  background-color: #FFF;
  display: flex;
  flex-direction: column;
}
.eigyo-box .ttl {
  font-family: var(--ff-min);
  font-size: var(--fs-3l);
  font-weight: 600;
  line-height: var(--line-height-m);
}
.eigyo-box .ttl small {
  display: block;
  font-size: var(--fs-min);
}
.eigyo-box .txt {
  padding-top: 1em;
  padding-bottom: 2em;
}
.eigyo-box .btn {
  align-self: flex-end;
  margin-top: auto;
  font-weight: 400;
}
@media print, screen and (min-width:1101px) {
  .eigyo {
    gap: 60px;
  }
  .eigyo-box {
    width: 50%;
  }
  .eigyo-box .photo {
    height: 300px;
  }
}
@media screen and (max-width:1100px) {
  .eigyo {
    gap: calc(40 / 1100 * 100vw);
  }
  .eigyo-box {
    width: 50%;
  }
  .eigyo-box .photo {
    height: 260px;
  }
}
@media screen and (max-width:900px) {
  .sec-eigyo {
    padding-top: var(--block-space-max);
  }
  .eigyo {
    max-width: 520px;
    flex-direction: column;
    grid-gap: 0;
  }
  .eigyo-box {
    width: 100%;
  }
  .eigyo-box:last-of-type {
    margin-top: var(--block-space-m);
  }
  .eigyo-box .photo {
    height: calc(300 / 640 * 100vw);
    max-height: 300px;
    min-height: 200px;
  }
}

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

  出張料理・ケータリング
  
----------------------------------------------------------------------------------------------------*/
.sec-catering {
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.catering {
  background-color: var(--color-red);
  color: #FFF;
  width: 600px;
  position: relative;
}
.catering:before,
.catering:after {
  content: "";
  height: 100%;
  background: url("../image/bg_pattern1.png") repeat center center;
  background-color: var(--bg-color);
  position: absolute;
  top: 0;
}
.catering .lead__txt {
  display: inline-block;
  padding: 1rem 1.5em;
  border-bottom: 1px solid rgba(240,228,222,0.3);
  position: relative;
}
.catering .lead__txt:before,
.catering .lead__txt:after {
  content: "";
  width: 1.2rem;
  height: 1.2rem;
  display: inline-block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: url("../image/pattern1_pinkbeige.svg") no-repeat center center;
  background-size: cover;
}
.catering .lead__txt:before { left: 0; }
.catering .lead__txt:after { right: 0; }
.catering .ttl {
  font-family: var(--ff-min);
  font-weight: 600;
  font-size: var(--fs-5l);
  padding-top: 3rem;
  line-height: var(--line-height-m);
}
.catering .btn {
  width: 100%;
  max-width: 300px;
}
@media print, screen and (min-width:1101px) {
  .catering {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 400px;
  }
  .catering:before,
  .catering:after {
    width: 60px;
  }
  .catering:before { left: -60px; }
  .catering:after { right: -60px; }
}
@media screen and (max-width:1100px) {
  .catering {
    width: 65%;
    max-width: 540px;
  }
  .catering:before,
  .catering:after {
    width: calc(60 / 1100 * 100vw);
  }
  .catering:before { left: calc(-1* (60 / 1100 * 100vw)); }
  .catering:after { right: calc(-1* (60 / 1100 * 100vw)); }
  .catering .lead__txt {
    font-size: var(--fs-s);
  }
}
@media print, screen and (min-width:901px) {
  .sec-catering {
    margin-top: var(--block-space-l);
  }
  .catering .ttl {
    margin-top: 1.5rem;
    padding-bottom: 4rem;
  }
}
@media screen and (max-width:900px) {
  .sec-catering {
    margin-top: calc(var(--block-space-l) + var(--block-space-min));
  }
  .catering .ttl {
    padding-bottom: 3rem;
  }
}
@media print, screen and (min-width:541px) {
  .sec-catering:before,
  .sec-catering:after {
    content: "";
    width: 50%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    background-image: url("../image/catering.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    z-index: -1;
  }
  .sec-catering:before {
    left: 0;
    background-position: left center;
  }
  .sec-catering:after {
    right: 0;
    background-position: right center;
  }
  .catering .inner {
    padding: calc(var(--box-space-m) * 2) var(--box-space-l);
  }
}
@media screen and (max-width:540px) {
  .catering {
    width: 100%;
    max-width: inherit;
  }
  .catering:before,
  .catering:after {
    width: 6%;
  }
  .catering:before { left: 0; }
  .catering:after { right: 0; }
  .catering .inner {
    padding: var(--box-space-max) calc(var(--box-space-l) + 6%);
  }
  .catering .inner:before {
    content: "";
    width: 100%;
    height: calc(200 / 640 * 100vw);
    max-height: 200px;
    min-height: 100px;
    display: block;
    background: url("../image/catering.jpg") no-repeat center center;
    background-size: cover;
    margin-bottom: var(--box-space-max);
  }
  .catering .btn {
    margin-bottom: 2rem;
  }
}
