@charset "UTF-8";

.sp-only {
  display: none;
}

.of {
  overflow: hidden;
}

.lp-warp img {
  margin: 0;
}

.lp-warp h2,
.lp-warp h3 {
  border: none;
  margin: 0;
  padding: 0;
}

.lp-warp h3::before,
.lp-warp ul>li::before {
  display: none;
}

.lp-warp ul {
  margin: 0;
}

.lp-warp ul>li {
  padding: 0;
}

.lp-warp p {
  margin-bottom: 0;
  font-size: unset;
}

.lp-warp p+p {
  margin-top: 1em;
}

.lp-warp .mainvis {
  margin-top: 16px;
}

.curryfes {
  font-size: 18px;
}

.curryfes img {
  vertical-align: bottom;
}

.curryfes .mainvis {
  position: relative;
  background: #fbf7f2;
  text-align: center;
}

.curryfes .mainvis::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  aspect-ratio: 1500 / 48;
  width: 100%;
  background: url(../img/line01.webp) left 0 bottom -5px / 100% auto no-repeat
}

.curryfes .mainvis p {
  font-size: clamp(10px, 2vw, 20px);
  color: #801979;
  font-weight: bold;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: flex-end;
  margin-top: -1%;
  padding-bottom: clamp(10px, 4vw, 50px);
}

.curryfes .mainvis p::before,
.curryfes .mainvis p::after {
  content: "";
  aspect-ratio: 56/53;
  background: url(../img/ico01.png) 0 0 / contain no-repeat;
  width: clamp(10px, 5vw, 56px);
}

.curryfes .mainvis p::before {
  margin-right: 10px;
}

.curryfes .mainvis p::after {
  margin-left: 10px;
}

.curryfes .mainvis p span {
  font-size: 30px;
  font-size: clamp(12px, 2.4vw, 23px);
  font-feature-settings: "palt";
  color: #d54c02;
  margin-left: 1em;
}


.curryfes .editor {
  background: url(../img/bg01.webp) 0 0 / 50% auto repeat;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  padding: 50px 0 0;
  gap: 0 12%;
  position: relative;
}

.curryfes .editor::after {
  content: "";
  display: block;
  aspect-ratio: 1500 / 430;
  width: 100%;
  background: url(../img/bg_curry01.webp) 0 0 / contain no-repeat;
  margin-top: 70px;
}

.curryfes .editor-img {
  width: 25%;
  max-width: 250px;
}

.curryfes .editor-txt {
  width: 55%;
  max-width: 640px;
}

.curryfes .editor-txt h2 {
  font-size: 22px;
  font-weight: bold;
  margin-bottom: 20px;
  color: #d54c02;
  position: relative;
}

.curryfes .editor-txt h2::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 114/129;
  width: 20%;
  max-width: 114px;
  background: url(../img/ico03.png) 0 0 / contain no-repeat;
  left: -20%;
}

.curryfes .editor-txt h2 em {
  font-size: 200%;
  font-style: normal;
}

.curryfes .editor-txt h2 span {
  font-size: 120%;
}

.curryfes .editor-txt p {
  color: #541b86;
  font-weight: bold;
}

.curryfes .editor .fs {
  font-size: 80%;
}

.curryfes .menu {
  padding: 20px 0 0;
}

.curryfes .map-box {
  aspect-ratio: 1500 / 945;
  width: 100%;
  background: url(../img/bg_map.webp) 0 0 / contain no-repeat;
  position: relative;
}

.curryfes .map-box h2 {
  position: absolute;
  aspect-ratio: 753 / 92;
  width: 39%;
  max-width: 470px;
  top: 2%;
  left: 3%;
}

.curryfes .map-box p {
  position: absolute;
  font-weight: 500;
  color: #541b86;
  font-size: clamp(12px, 1vw, 17px);
  top: 9%;
  left: 7%;
}

.curryfes .map-box li {
  position: absolute;
  width: 12.5%;
  transition: .3s;
}

.curryfes .map-box .map01 {
  top: 20%;
  left: 42.6%;
}

.curryfes .map-box .map02 {
  top: 50%;
  left: 60%;
}

.curryfes .map-box .map03 {
  top: 50%;
  left: 20%;
}

.curryfes .area-box {
  background: url(../img/bg02.webp) 0 0 / 50% auto repeat;
}

.curryfes .area-box .lead-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 670px;
  margin: 0 auto;
  padding: 60px 0 20px;
}

.curryfes .area-box .lead-box p {
  width: 45.8%;
  font-weight: 500;
  color: #541b86;
}

.curryfes .area-box .lead-box p::before {
  content: "";
  display: block;
  aspect-ratio: 270 / 141;
  width: 168px;
  margin: 0 auto 20px;
  background: url(../img/txt_click.png) 0 0 / contain no-repeat;
}

.curryfes .area-box .lead-img {
  width: 48.9%;
}

.curryfes .menu-box {
  position: relative;
}

.curryfes .menu-box::before {
  content: "";
  position: absolute;
  top: 60px;
  left: 0;
  display: block;
  aspect-ratio: 1500 / 313;
  width: 100%;
  background: url(../img/bg_curry02.webp) 0 0 / contain no-repeat;
}

.curryfes #area02::before {
  background-image: url(../img/bg_curry03.webp);
}

.curryfes #area03::before {
  background-image: url(../img/bg_curry04.webp);
}

.curryfes .menu-box h3 {
  max-width: 250px;
  margin: 0px 0 100px 80px;
}

.curryfes .menu-list ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 50px 60px;
  gap: 30px 0;
}

.curryfes .menu-list ul+ul {
  margin-top: 30px;
}

.curryfes .menu-list li {
  width: 32%;
  cursor: pointer;
  transition: .3s;
  font-size: 17px;
  color: #541b86;
  font-weight: 500;
  text-align: center;
}

.curryfes #area02 .menu-list li {
  color: #d54c02;
}

.curryfes #area03 .menu-list li {
  color: #801979;
}

.curryfes .menu-list li img {
  margin-bottom: 5px;
}

.curryfes .menu-list li+li {
  margin-top: 0;
}

.curryfes .menu-list img {
  margin-top: 5px;
}

.curryfes .contact {
  padding: 8% 50px 11%;
  background: #541b86;
  position: relative;
  color: #FFF;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.curryfes .contact::before,
.curryfes .contact::after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  left: 0;
}

.curryfes .contact::before {
  top: 0;
  aspect-ratio: 1500 / 79;
  background: url(../img/line02.webp) 0 0 / contain no-repeat;
}

.curryfes .contact::after {
  bottom: -1px;
  aspect-ratio: 1500 / 102;
  background: url(../img/line03.webp) 0 0 / contain no-repeat;
}

.curryfes .contact h2 {
  font-size: 30px;
  font-weight: bold;
  display: flex;
  align-items: center;
  position: relative;
  width: 23%;
}

.curryfes .contact h2::before {
  content: "";
  aspect-ratio: 300 / 290;
  display: block;
  background: url(../img/ico02.png) 0 0 / contain no-repeat;
  width: 60px;
  flex-shrink: 0;
  margin-right: 10px;
}

.curryfes .contact dl {
  width: 55%;
  font-size: 22px;
}

.curryfes .contact a {
  color: #fff;
}

.curryfes .contact .note {
  width: 100%;
}

.curryfes .contact .note li {
  text-indent: -1em;
  padding-left: 1em;
  font-size: 15px;
  margin-top: 2em;
}



/**************************\
  Basic Modal Styles
\**************************/
.modal__content {
  position: relative;
}

.modal__content img {
  vertical-align: bottom;
}

.modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.modal__container {
  max-width: 600px;
  max-height: 90svh;
  overflow-y: auto;
  box-sizing: border-box;
}

.modal__close {
  background: transparent;
  position: absolute;
  top: -5px;
  right: 8px;
  font-size: 30px;
  color: #000;
  outline: none;
}

.modal__close:before {
  content: "\2715";

}

.curryfes .modal-box {
  background: url(../img/bg02.webp) 0 0 / 50% auto repeat;
  position: relative;
}

.curryfes .modal-box::before,
.curryfes .modal-box::after {
  content: "";
  display: block;
  width: 100%;
}

.curryfes .modal-box::before {
  aspect-ratio: 1201/ 308;
  background: url(../img/bg_modal01_pc.webp) 0 0 / contain no-repeat;
}

.curryfes .modal-box::after {
  aspect-ratio: 1201/ 206;
  background: url(../img/bg_modal02_pc.webp) 0 0 / contain no-repeat;
}

.curryfes .modal-box .txt-hotel {
  width: 320px;
  font-weight: bold;
  color: #d54c02;
  margin: 20px 0 10px 40px;
  padding-bottom: 10px;
  border-bottom: 2px dotted #d54c02;
}

.curryfes .modal-box .txt-menu {
  color: #541b86;
  font-weight: bold;
  font-size: 25px;
  min-height: 2.5em;
  margin: 10px 0 40px 40px;
}

.curryfes .modal-box .comment-img {
  position: absolute;
  width: 181px;
  top: 50px;
  right: 30px;
  text-align: center;
  font-size: 12px;
  color: #d54c02;
  font-weight: bold;
}

.curryfes .modal-box .comment-img figcaption {
  margin-top: 5px;
  line-height: 1.4;
}

.curryfes .modal-box .comment-img span {
  font-size: 18px;
}

.curryfes .modal-box .comment dl {
  margin: 0 40px;
}

.curryfes .modal-box .comment dt {
  width: 228px;
  margin-bottom: 15px;
}

.curryfes .modal-box .comment dd {
  color: #604c3f;
  font-weight: 500;
}

.curryfes .modal-box .comment .img-menu {
  text-align: center;
  max-width: 450px;
  margin: 20px auto;
}

/**************************\
 Animation Style
\**************************/
@keyframes mmfadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes mmfadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes mmslideIn {
  from {
    transform: translateY(15%);
  }

  to {
    transform: translateY(0);
  }
}

@keyframes mmslideOut {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-10%);
  }
}

.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden="false"] .modal__overlay {
  animation: mmfadeIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="false"] .modal__container {
  animation: mmslideIn 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__overlay {
  animation: mmfadeOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide[aria-hidden="true"] .modal__container {
  animation: mmslideOut 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.micromodal-slide .modal__container,
.micromodal-slide .modal__overlay {
  will-change: transform;
}


@media (hover: hover) {

  .curryfes .map-box li:hover,
  .curryfes .menu-list li:hover {
    opacity: 0.6;
  }
}


@media (max-width:960px) {
  .curryfes .menu-box h3 {
    margin-bottom: 0vw;
    width: 25vw;
    margin-left: 3vw;
  }

  .curryfes .menu-box::before {
    top: 4vw;
  }

  .curryfes .menu-list li {
    width: 48%;
  }

  .curryfes .contact {
    display: block;
  }

  .curryfes .contact h2 {
    width: 100%;
    margin-bottom: 20px;
  }

  .curryfes .contact dl {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }


  .curryfes {
    font-size: 3.2vw;
  }

  .curryfes .mainvis {
    padding-bottom: 8vw;
  }

  .curryfes .mainvis p {
    display: none;
  }

  .curryfes .mainvis::before {
    aspect-ratio: 750 / 61;
    bottom: -0.2vw;
    background-size: auto 100%;
  }


  .curryfes .editor {
    padding: 10vw 0 0;
    flex-direction: column;
    gap: 5vw 0;
  }

  .curryfes .editor::after {
    margin-top: 5vw;
  }

  .curryfes .editor-img {
    width: 40%;
    max-width: none;
  }

  .curryfes .editor-txt h2 {
    font-size: 3.8vw;
    width: 75vw;
    margin: 0 auto;
    padding-left: 17vw;
    line-height: 1.3;
    margin-bottom: 5vw;
  }

  .curryfes .editor-txt h2::before {
    width: 15vw;
    left: 0;
  }

  .curryfes .editor-txt {
    width: 85%;
    max-width: none;
  }

  .curryfes .editor-txt p+p {
    margin-top: 1.5em;
  }

  .curryfes .menu {
    padding: 3vw 0 0;
  }

  .curryfes .map-box {
    aspect-ratio: 750 / 1500;
    background-image: url(../img/bg_map_sp.webp);
  }

  .curryfes .map-box h2 {
    max-width: none;
    width: 80%;
    position: relative;
    margin: 0 auto;
    inset: auto;
  }

  .curryfes .map-box p {
    position: relative;
    inset: auto;
    text-align: center;
    font-size: 2.8vw;
  }

  .curryfes .map-box li {
    width: 25vw;
  }

  .curryfes .map-box .map01 {
    top: 27vw;
    left: 63vw;
  }

  .curryfes .map-box .map02 {
    top: 69vw;
    left: 67vw;
  }

  .curryfes .map-box .map03 {
    top: 85vw;
    left: 0vw;
  }

  .curryfes .area-box .lead-box {
    width: 90%;
    margin: 0 auto;
    padding: 5vw 0;
  }

  .curryfes .area-box .lead-box p {
    width: 65%;
  }

  .curryfes .area-box .lead-box p::before {
    width: 30vw;
    margin-bottom: 1vw;
  }

  .curryfes .area-box .lead-img {
    width: 30%;
  }

  .curryfes .menu-box::before {
    top: 5.5vw;
  }

  .curryfes .menu-box h3 {
    max-width: none;
    width: 28vw;
    margin: 0 0 0 3vw;
  }

  .curryfes .menu-list ul {
    width: 90%;
    margin: 0 auto;
    padding: 0 0 6vw;
    gap: 5vw 0;
  }

  .curryfes .menu-list ul+ul {
    margin-top: 5vw;
  }

  .curryfes .menu-list li {
    width: 48%;
    font-size: 2.8vw;
  }

  .curryfes .contact {
    padding: 10vw 5vw 15vw;
  }

  .curryfes .contact::before,
  .curryfes .contact::after {
    background-size: auto 100%;
  }

  .curryfes .contact h2 {
    font-size: 6vw;
    margin-bottom: 3vw;
  }

  .curryfes .contact h2::before {
    width: 8vw;
    margin-right: 2vw;
  }

  .curryfes .contact dl {
    font-size: 3.7vw;
  }

  .curryfes .contact .note li {
    font-size: 3vw;
  }

  .modal__container {
    width: 90vw;
    max-width: 500px;
  }

  .modal__close {
    position: fixed;
  }

  .curryfes .modal-box {
    background-size: 150% auto;
    font-size: 3.5vw;
  }

  .curryfes .modal-box::before {
    aspect-ratio: 751/ 355;
    background-image: url(../img/bg_modal01_sp.webp);
  }

  .curryfes .modal-box::after {
    aspect-ratio: 751/ 191;
    background-image: url(../img/bg_modal02_sp.webp);
  }

  .curryfes .modal-box .txt-hotel {
    width: 90%;
    margin: 0 auto 2vw;
    padding: 3vw 3vw 3vw;
    text-align: center;
  }

  .curryfes .modal-box .txt-menu {
    padding: 0 3vw;
    text-align: center;
    font-size: 6vw;
    margin: 0 0 3vw;
    min-height: 0;
  }

  .curryfes .modal-box .comment-img {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    width: 100%;
    font-size: 3.5vw;
    padding: 0 3vw;
  }

  .curryfes .modal-box .comment-img img {
    width: 40%;
  }

  .curryfes .modal-box .comment-img figcaption {
    width: 58%;
    margin: 0;
    text-align: left;
  }

  .curryfes .modal-box .comment-img span {
    font-size: 5.5vw;
  }

  .curryfes .modal-box .comment dl {
    margin: 0 3vw;
  }

  .curryfes .modal-box .comment dt {
    width: 45vw;
    margin: -10vw 0 5vw 0;
  }

  .curryfes .modal-box .comment .img-menu {
    margin: 0 auto;
  }
}

@media (max-width: 550px) {

  .modal__close {
    font-size: 8vw;
    right: 3vw;
  }
}