html {
  scroll-behavior: smooth;
  scroll-padding-top: 10px; }

body {
  position: relative;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 500;
  color: #040000;
  letter-spacing: .05em;
  background-color: #cae5d3; }

main {
  position: relative; }

a {
  transition: .3s;
  color: #040000 !important; }

a:hover {
  opacity: 0.8; }

img {
  max-width: 100%;
  width: 100%; }

@media (min-width: 768px) {
  body {
    font-size: 14px; }

  .pcnone {
    display: none !important; } }
@media (max-width: 767.98px) {
  body {
    font-size: 12px; }

  .spnone {
    display: none !important; } }
.container {
  padding: 0;
  overflow: hidden;
  position: relative;
  background-color: #ec6d56; }

.sakura_wrap {
  background: linear-gradient(180deg, #f092ae 0%, #f7c8ce 100%); }

.strawberry_wrap {
  background: linear-gradient(180deg, #e5004f 0%, #ec6d74 100%); }

@media (min-width: 768px) {
  .container {
    width: 426px;
    margin: 0 11vw 0 auto;
    border-left: 1px solid #fff;
    border-right: 1px solid #fff; } }
@media (max-width: 767.98px) {
  .container {
    width: 100%; } }
.main {
  background-color: #cae5d3; }
  .main > h1 {
    width: 90%;
    margin: 0 auto;
    padding-top: 30px;
    animation: slideIn 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: .5s;
    opacity: 0; }
  .main .main_swiper_container {
    padding: 20px 0 40px; }
    .main .main_swiper_container .swiper-slide {
      padding: 0 50px; }

.open > .lead_wrap {
  margin: 30px;
  position: relative;
  aspect-ratio: 321/93; }
  .open > .lead_wrap > .lead {
    display: none;
    position: absolute;
    width: 100%;
    top: 0;
    left: 0; }
.open > .arrow {
  width: 30px;
  margin: 10px auto 50px;
  animation: arrow-move06 1.5s ease-in-out infinite; }

@keyframes slideIn {
  0% {
    transform: translateX(180px);
    opacity: 0; }
  100% {
    transform: translateX(0); }
  40%,100% {
    opacity: 1; } }
@keyframes arrow-move06 {
  0% {
    transform: translateY(0px); }
  50% {
    transform: translateY(15px); }
  100% {
    transform: translateY(0px); } }
@media (min-width: 768px) {
  .main .main_swiper_container .swiper-slide {
    padding: 0 60px; } }
.item .item_top {
  margin-bottom: 10px; }
  .item .item_top > img {
    padding: 0 10px; }
  .item .item_top > div {
    margin-top: 10px;
    display: flex;
    gap: 0 10px;
    animation: infinity-scroll-left 15s infinite linear 0.5s both; }
  .item .item_top > div > img {
    height: 10px;
    max-width: none;
    width: auto; }
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0%); }
  to {
    transform: translateX(-100%); } }
.item .item_box {
  margin: 0 15px 40px;
  background-color: #fff;
  padding: 30px 15px; }
  .item .item_box > .shop_name {
    text-align: center;
    display: flex;
    flex-direction: column;
    font-size: 20px; }
    .item .item_box > .shop_name > small {
      font-size: 13px; }
  .item .item_box > .shop_txt {
    font-size: 16px;
    margin: 50px -15px;
    text-align: center;
    letter-spacing: 0; }
  .item .item_box > .tokuten {
    border: 3px solid #ec6d56;
    border-radius: 10px;
    margin-right: 10px;
    position: relative;
    z-index: 0; }
    .item .item_box > .tokuten::before {
      content: '';
      border: 3px solid #ec6d56;
      border-radius: 15px;
      width: calc(100% + 6px);
      height: calc(100% + 6px);
      position: absolute;
      right: -10px;
      bottom: -10px;
      z-index: -1; }
    .item .item_box > .tokuten > dt {
      background-color: #ec6d56;
      color: #fff;
      text-align: center;
      font-size: 18px; }
    .item .item_box > .tokuten > dd {
      font-size: 16px;
      text-align: center;
      border-radius: 0 0 7px 7px;
      padding: 7px;
      margin: 0;
      background-color: #fff; }
  .item .item_box > .more_menu {
    margin: 70px 0 20px; }
  .item .item_box > .item_swiper_container {
    margin: 0 -30px; }
    .item .item_box > .item_swiper_container .swiper-slide {
      border-radius: 10px;
      margin-right: 10px;
      position: relative;
      z-index: 1;
      margin-bottom: 10px; }
      .item .item_box > .item_swiper_container .swiper-slide::before {
        content: '';
        border: 3px solid #ec6d56;
        background-color: #fff;
        border-radius: 15px;
        width: calc(100% + 6px);
        height: calc(100% + 6px);
        position: absolute;
        right: -10px;
        bottom: -10px;
        z-index: -1; }
      .item .item_box > .item_swiper_container .swiper-slide img {
        border-radius: 10px;
        border: 3px solid #ec6d56; }
  .item .item_box > .map_btn {
    cursor: pointer;
    width: 70%;
    margin: 40px auto 0; }

@media (max-width: 767.98px) {
  .item .item_box > .shop_txt {
    font-size: 15px;
    margin: 40px -15px; }

  .item .item_box > .tokuten > dd {
    font-size: 15px; } }
.map_modal .modal-content {
  background: none;
  border: none; }
  .map_modal .modal-content .modal-body {
    padding: 0; }
    .map_modal .modal-content .modal-body .map_content {
      border: 6px solid #ec6d56;
      border-radius: 20px;
      background-color: #fff;
      padding: 20px 15px; }
      .map_modal .modal-content .modal-body .map_content > img {
        margin: 20px 0; }
      .map_modal .modal-content .modal-body .map_content .close_btn {
        width: 50%;
        display: block;
        border: none;
        background: none;
        margin: 0 auto; }
        .map_modal .modal-content .modal-body .map_content .close_btn:focus {
          outline: none; }

footer {
  padding: 30px 15px;
  color: #fff;
  font-size: 12px; }
  footer > .logo {
    width: 50%;
    margin: 20px auto; }

@media (min-width: 768px) {
  .pc_menu {
    width: calc(100vw - 426px - 11vw);
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0; }
    .pc_menu .pc_menu_box {
      width: 55.5%;
      min-width: 290px;
      max-width: 400px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      position: absolute;
      top: max(300px, 50%);
      left: 50%;
      transform: translate(-50%, -50%); }
      .pc_menu .pc_menu_box > a {
        width: 100%;
        margin: 0 auto;
        max-height: 350px; }
        .pc_menu .pc_menu_box > a > img {
          width: auto;
          max-height: 350px;
          margin: 0 auto;
          display: block; }
      .pc_menu .pc_menu_box > ul {
        list-style: none;
        width: 100%;
        padding: 0;
        margin-top: 40px;
        gap: 10px; }
        .pc_menu .pc_menu_box > ul > li {
          width: 100%;
          border-top: 1px solid #fff; }
          .pc_menu .pc_menu_box > ul > li:last-child {
            border-bottom: 1px solid #fff; }
          .pc_menu .pc_menu_box > ul > li > a {
            color: #fff;
            padding: 15px 0;
            display: flex;
            justify-content: center;
            font-size: 17px;
            font-weight: bold; }
            .pc_menu .pc_menu_box > ul > li > a:hover {
              text-decoration: none; } }
@media (max-width: 900px) {
  .pc_menu {
    display: none; } }
.page-top {
  position: fixed;
  transition: 0.5s;
  z-index: 9;
  opacity: 0;
  visibility: hidden; }

.page-top > .page-top_link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center; }

.page-top.show_btn {
  opacity: 1;
  visibility: visible; }

@media (min-width: 768px) {
  .page-top {
    bottom: 20px;
    right: 2.5%;
    width: 70px; }

  .page-top > .page-top_link {
    width: 70px;
    height: 70px;
    font-size: 15px; } }
@media (max-width: 767.98px) {
  .page-top {
    bottom: 20px;
    right: 10px;
    width: 50px; }

  .page-top > .page-top_link {
    width: 50px;
    height: 50px;
    font-size: 12px; } }
