html {
  scroll-behavior: smooth; }

body {
  position: relative;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  color: #3b3c3c;
  letter-spacing: .05em; }

main {
  position: relative; }

a {
  transition: .3s; }

a:hover {
  opacity: 0.7;
  text-decoration: none; }

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

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

  .pc_back {
    position: fixed;
    width: 100vw;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1; }

  .pcnone {
    display: none !important; }

  figcaption {
    font-size: 12px; } }
@media (max-width: 767.98px) {
  body {
    font-size: 12px;
    font-weight: 600; }

  .spnone {
    display: none !important; }

  figcaption {
    font-size: 12px; } }
.container {
  padding: 0;
  overflow: hidden;
  position: relative;
  background-color: #efa236; }

.inner {
  background-color: #F9EEE5;
  position: relative; }
  .inner::before {
    content: '';
    width: 100%;
    height: 100px;
    position: absolute;
    top: -99px;
    left: 0;
    background: #f5c1d4;
    background: linear-gradient(180deg, #efa236 0%, #f9eee5 100%); }

@media (min-width: 768px) {
  .container {
    width: 500px;
    margin: 0 11vw 0 auto;
    border-right: 1px solid #fff;
    border-left: 1px solid #fff; }

  .inner {
    padding: 10px 40px 100px; }
    .inner > p {
      margin: 15px 0; }
    .inner > .ttl2:not(:nth-child(1)) {
      margin-top: 60px; }

  ul {
    padding-left: 20px;
    margin-bottom: 5px; } }
@media (max-width: 767.98px) {
  .container {
    width: 100%; }

  .inner {
    padding: 5px 20px 70px;
    font-size: 14px; }
    .inner > p {
      margin: 10px 0; }
    .inner > .ttl2:not(:nth-child(1)) {
      margin-top: 60px; }

  ul {
    padding-left: 20px;
    margin-bottom: 5px; } }
.receipt_box {
  background-color: #fff; }

@media (min-width: 768px) {
  .receipt_box {
    margin: 60px 20px 0;
    padding: 20px 15px; }
    .receipt_box .btn01 {
      margin-top: 20px;
      font-size: 16px; } }
@media (max-width: 767.98px) {
  .receipt_box {
    margin: 50px 20px 0;
    padding: 20px 5px; }
    .receipt_box .btn01 {
      margin: 20px 10px 0;
      font-size: 14px;
      width: auto; } }
.lead_p {
  text-align: center;
  color: #fff; }

@media (min-width: 768px) {
  .lead_p {
    font-size: 18px;
    margin: 50px 0 0; } }
@media (max-width: 767.98px) {
  .lead_p {
    font-size: 16px;
    margin: 40px 0 0; } }
.btn_box {
  display: flex;
  flex-direction: column;
  z-index: 1;
  position: relative; }
  .btn_box > a {
    background: linear-gradient(to right, #f9e7c4, #f3db64);
    color: #6B6664;
    font-family: "Zen Old Mincho", serif;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative; }
    .btn_box > a:before {
      content: '';
      background-image: url(../img/btn_arrow_b.svg);
      background-repeat: no-repeat;
      width: 8px;
      height: 16px;
      position: absolute;
      top: 0;
      bottom: 0;
      right: 10px;
      margin: auto; }
    .btn_box > a > .syuryo {
      position: absolute;
      background-color: rgba(128, 128, 128, 0.7);
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      top: 0;
      left: 0;
      border-radius: 5px;
      color: #fff; }

.btn01 {
  background-color: #6B6664;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative; }
  .btn01:before {
    content: '';
    background-image: url(../img/btn_arrow_w.svg);
    background-repeat: no-repeat;
    width: 8px;
    height: 16px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    margin: auto; }
  .btn01:hover {
    color: #fff; }

@media (min-width: 768px) {
  .btn_box {
    width: 300px;
    margin: 30px auto;
    gap: 10px;
    font-size: 20px; }
    .btn_box > a {
      height: 50px; }

  .btn01 {
    width: 300px;
    height: 50px;
    margin: 0 auto;
    font-size: 20px; } }
@media (max-width: 767.98px) {
  .btn_box {
    padding: 0 20px;
    margin: 20px auto;
    gap: 10px;
    font-size: 18px; }
    .btn_box > a {
      height: 50px; }

  .btn01 {
    width: 100%;
    padding: 0 20px;
    height: 50px;
    margin: 0 auto;
    font-size: 18px; } }
.stamp_div {
  text-align: center;
  border: 3px solid #fff; }

@media (min-width: 768px) {
  .stamp_div {
    margin: 40px;
    padding: 40px 0;
    font-size: 18px; } }
@media (max-width: 767.98px) {
  .stamp_div {
    margin: 20px;
    padding: 20px;
    font-size: 16px; } }
.ttl {
  font-family: "Zen Old Mincho", serif;
  color: #6B6664;
  text-align: center;
  position: relative;
  width: fit-content; }
  .ttl::before {
    content: '';
    background-image: url("../img/ttl/01.png");
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute; }
  .ttl::after {
    content: '';
    background-image: url("../img/ttl/02.png");
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute; }

.ttl2 {
  font-family: "Zen Old Mincho", serif;
  color: #e13815;
  text-align: center;
  position: relative;
  z-index: 2; }
  .ttl2 > .back_en {
    font-family: "Meie Script", cursive;
    color: #e13815;
    opacity: .06;
    white-space: nowrap;
    font-size: 120px;
    position: absolute; }
  .ttl2.sakura {
    color: #fff; }
    .ttl2.sakura > .back_en {
      color: #fff;
      opacity: .16; }

.ttl3 {
  font-family: "Zen Old Mincho", serif;
  color: #e13815;
  font-weight: bold; }

@media (min-width: 768px) {
  .ttl {
    font-size: 38px;
    margin: 50px auto 20px; }
    .ttl::before {
      width: 50px;
      height: 60px;
      left: -60px;
      top: -5px; }
    .ttl::after {
      width: 50px;
      height: 45px;
      right: -60px;
      top: 5px; }

  .ttl2 {
    font-size: 42px;
    margin: 0 0 30px 0;
    padding-top: 10px; }
    .ttl2 > span {
      display: block;
      font-size: 18px; }
    .ttl2 > .back_en {
      left: -80px;
      top: -40px; }
      .ttl2 > .back_en.art {
        left: -110px;
        top: 10px; }
      .ttl2 > .back_en.tea {
        left: -80px;
        top: -20px; }
    .ttl2.sakura {
      margin-top: 80px; }
      .ttl2.sakura > .back_en {
        left: -80px;
        top: -40px; }

  .ttl3 {
    font-size: 21px; } }
@media (max-width: 767.98px) {
  .ttl {
    font-size: 30px;
    margin: 40px auto -10px; }
    .ttl::before {
      width: 40px;
      height: 50px;
      left: -50px;
      top: -5px; }
    .ttl::after {
      width: 40px;
      height: 35px;
      right: -50px;
      top: 5px; }

  .ttl2 {
    font-size: 32px;
    margin: 0 0 15px 0; }
    .ttl2 > span {
      display: block;
      font-size: 16px; }
    .ttl2 > .back_en {
      font-size: 90px;
      left: -30px;
      top: -40px; }
      .ttl2 > .back_en.art {
        left: -70px;
        top: 10px; }
      .ttl2 > .back_en.tea {
        left: -50px;
        top: -20px; }
    .ttl2.sakura {
      margin-top: 80px; }
      .ttl2.sakura > .back_en {
        left: -30px;
        top: -40px; }

  .ttl3 {
    font-size: 20px; } }
.lead {
  color: #e13815; }

.info {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start; }
  .info > dt {
    background-color: #e13815;
    color: #fef7f2;
    width: 4em;
    text-align: center;
    border-radius: 3px; }
  .info > dd {
    width: calc( 100% - 4.5em ); }
    .info > dd:last-child {
      margin-bottom: 0; }

.syuryo_red {
  background-color: red;
  color: #fff;
  width: 100%;
  text-align: center;
  padding: 5px; }

.caution_p {
  color: #e13815; }

@media (min-width: 768px) {
  .lead {
    margin: 15px 0;
    font-weight: 500; }

  .info {
    margin: 15px 0; }
    .info > dt {
      font-weight: 500; }

  .caution_p {
    margin: 20px 0 15px; }

  .syuryo_red {
    font-size: 18px; } }
@media (max-width: 767.98px) {
  .lead {
    margin: 15px 0;
    font-weight: bold;
    font-size: 18px; }

  .info {
    margin: 15px 0; }

  .caution_p {
    margin: 20px 0 10px; }

  .syuryo_red {
    font-size: 16px; } }
.live_paint {
  border: 2px solid #e13815; }
  .live_paint > div {
    display: flex;
    justify-content: space-between; }
    .live_paint > div > div:nth-child(1) {
      width: 55%; }
    .live_paint > div > div:nth-child(2) {
      width: calc( 45% - 15px ); }
    .live_paint > div > div p {
      margin: 0; }

@media (min-width: 768px) {
  .live_paint {
    padding: 20px;
    margin-bottom: 80px; }
    .live_paint div .ruby {
      font-size: 20px;
      margin: 10px 0; } }
@media (max-width: 767.98px) {
  .live_paint {
    padding: 15px;
    margin-bottom: 60px; }
    .live_paint div .ruby {
      font-size: 16px;
      margin: 10px 0; } }
.workshop .info {
  align-items: center;
  line-height: 1.1em; }
  .workshop .info > dt {
    margin-bottom: .5rem;
    display: flex;
    justify-content: center;
    align-items: center; }

@media (min-width: 768px) {
  .workshop {
    margin: 20px 0; }
    .workshop .info > dt {
      width: 100px;
      height: 35px;
      font-size: 12px; }
    .workshop .info > dd {
      width: calc( 100% - 110px ); } }
@media (max-width: 767.98px) {
  .workshop {
    margin: 20px 0; }
    .workshop .info > dt {
      width: 100px;
      height: 35px;
      font-size: 12px; }
    .workshop .info > dd {
      width: calc( 100% - 110px ); } }
.fair_txt > .lead {
  color: #fff; }

@media (min-width: 768px) {
  .fair_txt {
    padding: 0 30px; }
    .fair_txt .btn_box {
      margin: 50px auto 50px; } }
@media (max-width: 767.98px) {
  .fair_txt {
    padding: 0 20px;
    font-size: 14px; }
    .fair_txt .btn_box {
      margin: 30px auto; } }
.link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #3b3c3c;
  color: #fef7f2;
  border-radius: 3px;
  padding: 5px 20px 5px 5px; }
  .link:before {
    content: '';
    background-image: url("../img/btn_arrow_w.svg");
    background-repeat: no-repeat;
    width: 8px;
    height: 16px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    margin: auto; }
  .link:hover {
    color: #fef7f2; }

@media (min-width: 768px) {
  .link {
    font-size: 13px; } }
@media (max-width: 767.98px) {
  .link {
    font-size: 12px; } }
.shop_wrap {
  z-index: 1;
  position: relative; }
  .shop_wrap .shop_box {
    background-color: #fff;
    border-radius: 30px; }
    .shop_wrap .shop_box > img {
      margin: 0 auto;
      display: block; }
    .shop_wrap .shop_box > .item, .shop_wrap .shop_box .price {
      color: #e13815;
      line-height: 1.3em; }
    .shop_wrap .shop_box > .shop_name {
      font-weight: bold; }
    .shop_wrap .shop_box > .shop_link {
      border: 1px solid #e13815;
      color: #e13815;
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative; }
      .shop_wrap .shop_box > .shop_link:before {
        content: '';
        background-image: url(../img/btn_arrow.svg);
        background-repeat: no-repeat;
        width: 8px;
        height: 16px;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 10px;
        margin: auto; }
    .shop_wrap .shop_box .soldout {
      background: #922322;
      color: #fff;
      font-weight: bold;
      text-align: center; }

@media (min-width: 768px) {
  .shop_wrap {
    padding: 0 40px 0;
    margin-bottom: 50px; }
    .shop_wrap .shop_box {
      padding: 30px;
      margin-bottom: 30px; }
      .shop_wrap .shop_box > .img01 {
        padding: 0 30px; }
      .shop_wrap .shop_box > .item {
        font-size: 20px;
        margin: 15px 0 10px; }
        .shop_wrap .shop_box > .item > span {
          font-size: 20px; }
      .shop_wrap .shop_box > .item2 {
        font-size: 20px; }
      .shop_wrap .shop_box > .price {
        font-size: 18px; }
      .shop_wrap .shop_box > .txt {
        font-size: 15px;
        margin: 15px 0 20px; }
      .shop_wrap .shop_box > .shop_name {
        margin-bottom: 15px; }
      .shop_wrap .shop_box > .shop_link {
        height: 50px; }
      .shop_wrap .shop_box .soldout {
        padding: 10px;
        margin: 25px 0;
        font-size: 15px; } }
@media (max-width: 767.98px) {
  .shop_wrap {
    padding: 0 20px;
    margin-bottom: 30px; }
    .shop_wrap .shop_box {
      padding: 30px;
      margin-bottom: 20px; }
      .shop_wrap .shop_box > .item {
        font-size: 20px;
        margin: 10px 0 0; }
      .shop_wrap .shop_box > .price {
        font-size: 16px;
        margin-bottom: 0; }
      .shop_wrap .shop_box > .txt {
        font-size: 14px;
        margin: 10px 0 20px; }
      .shop_wrap .shop_box > .shop_name {
        margin-bottom: 10px; }
      .shop_wrap .shop_box > .shop_link {
        height: 40px; }
      .shop_wrap .shop_box .soldout {
        padding: 10px;
        margin: 20px 0;
        font-size: 15px; } }
@media (min-width: 768px) {
  .caution {
    padding: 0 10px;
    font-size: 13px; } }
@media (max-width: 767.98px) {
  .caution {
    padding: 0 10px;
    font-size: 11px; } }
.copyright {
  background-color: #3b3c3c;
  color: #fff;
  text-align: center; }

@media (min-width: 768px) {
  .copyright {
    font-size: 11px;
    padding: 10px 0; } }
@media (max-width: 767.98px) {
  .copyright {
    font-size: 9px;
    padding: 10px 0; } }
footer div {
  text-align: center;
  font-size: 11px;
  padding: 20px 0; }
  footer div:first-child {
    background-color: #000;
    color: #fff; }
  footer div:last-child {
    margin-bottom: 20px; }

@media (max-width: 767.98px) {
  footer div {
    font-size: 8px; } }
@media (min-width: 768px) {
  .pc_menu {
    width: calc(100vw - 500px - 11vw);
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    background-image: url("../img/menu.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat; }
    .pc_menu .pc_menu_box {
      width: 60%;
      min-width: 460px;
      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: 410px; }
        .pc_menu .pc_menu_box > a > img {
          width: auto;
          max-height: 410px;
          margin: 0 auto;
          display: block; }
        .pc_menu .pc_menu_box > a:first-child:hover {
          opacity: 1; }
      .pc_menu .pc_menu_box > ul {
        list-style: none;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0;
        margin-top: 40px; }
        .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: 10px 0;
            display: flex;
            justify-content: center;
            font-size: 20px;
            font-weight: 500; }
            .pc_menu .pc_menu_box > ul > li > a:hover {
              text-decoration: none; }
      .pc_menu .pc_menu_box .link {
        background-color: #fff;
        color: #e13815;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 50px;
        border-radius: 5px;
        margin-top: 15px;
        position: relative; }
        .pc_menu .pc_menu_box .link:before {
          content: '';
          background-image: url(../img/btn_arrow.svg);
          background-repeat: no-repeat;
          width: 8px;
          height: 16px;
          position: absolute;
          top: 0;
          bottom: 0;
          right: 10px;
          margin: auto; } }
@media (max-width: 900px) {
  .pc_menu {
    display: none; } }
@media (max-width: 767.98px) {
  .global_menu_sp {
    background-color: #3b3c3c;
    color: #fff;
    height: 100vh;
    position: fixed;
    right: 0;
    top: 0;
    transition: .3s ease-in-out;
    opacity: 0;
    overflow: scroll;
    width: 100%;
    padding: 24px 20px 80px;
    font-size: 16px;
    z-index: 101;
    margin: 60px 0 0 0;
    display: none; }

  #menu-icon {
    display: inline-block;
    cursor: pointer;
    transition: .3s ease-in-out;
    width: 40px;
    height: 40px;
    z-index: 102; }

  #menu-icon > div {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #e13815;
    box-shadow: 0px 0px 15px -5px #777777; }

  #menu-icon > div > span {
    display: block;
    position: absolute;
    background: #fff;
    transition: .3s ease-in-out;
    height: 2px;
    right: 0;
    left: 0;
    margin: 0 auto; }

  #menu-icon span:nth-child(1) {
    top: calc(50% - 7px);
    width: 70%; }

  #menu-icon span:nth-child(2) {
    top: calc(50% + 3px);
    width: 70%; }

  .navbar {
    padding: 0 !important; }

  .navbar #menu-icon.active > div > span:nth-child(1) {
    transform: rotate(30deg); }

  .navbar #menu-icon.active > div > span:nth-child(2) {
    transform: rotate(-30deg); }

  .navbar #menu-icon.active > div > span:nth-child(1),
  .navbar #menu-icon.active > div > span:nth-child(2) {
    top: calc(50% - 2px); }

  .menu-list a {
    text-decoration: none;
    color: #6B6664;
    font-size: 20px;
    border-bottom: 1px solid #6B6664;
    padding: 18px 0;
    font-weight: bold;
    z-index: 10;
    position: relative;
    font-family: "Zen Old Mincho", serif; }

  .menu-icon {
    display: block;
    position: fixed;
    top: 10px;
    right: 10px; }

  .menu-list {
    display: none;
    flex-direction: column;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100%;
    text-align: center;
    z-index: 10;
    padding: 50px;
    background: linear-gradient(0deg, #efa236 0%, #fef7f2 100%); }
    .menu-list > .menu_bnr {
      margin-top: 10px; }
      .menu-list > .menu_bnr > a {
        margin: 0 0 10px 0;
        display: block;
        padding: 0;
        border: 0; }

  .menu-list.show {
    display: flex; } }
.page-top {
  position: fixed;
  transition: 0.5s;
  z-index: 9;
  opacity: 0;
  visibility: hidden; }

.page-top > .page-top_link {
  background-color: #fff;
  position: relative;
  border-radius: 50%;
  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: 20px;
    margin: 0 30px 20px auto;
    width: 70px; }

  .page-top > .page-top_link {
    width: 70px;
    height: 70px;
    font-size: 15px; }

  .page-top > .page-top_link > img {
    width: 35px; } }
@media (max-width: 767.98px) {
  .page-top {
    bottom: 10px;
    right: 10px;
    width: 40px; }

  .page-top > .page-top_link {
    width: 40px;
    height: 40px;
    font-size: 12px;
    box-shadow: 0px 0px 15px -5px #777777; }

  .page-top > .page-top_link > img {
    width: 20px; } }
