@charset "UTF-8";
@font-face {
  font-family: "Margherita-semibold";
  src: url("https://www.daimaru.co.jp/sapporo/coffeepairingfestival2026/fonts/margherita-semibold.otf") format("opentype");
}
@font-face {
  font-family: "Margherita-black";
  src: url("https://www.daimaru.co.jp/sapporo/coffeepairingfestival2026/fonts/margherita-black.otf") format("opentype");
}
body {
  margin: 0;
}

@media print, screen and (min-width: 768px) {
  body {
    min-width: 0;
  }
}
div, p, h1 {
  margin: 0;
}

li {
  list-style: none;
}

/* すべてのマージン、パディング、ボックスサイズをリセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

ul, ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* リンクのデフォルトスタイルをリセット */
a {
  text-decoration: none;
  color: inherit;
  /* 親要素の色に従う */
}

/* 画像のデフォルトスタイルをリセット */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* フォーム要素の標準化 */
button, input, select, textarea {
  font: inherit;
  border: none;
  outline: none;
}

/* utility */
@media screen and (min-width: 768px) {
  .pc-mt140 {
    margin-top: min(7.291662vw, 140px);
  }
  .pc-mt120 {
    margin-top: min(6.249996vw, 120px);
  }
  .pc-mt100 {
    margin-top: min(5.20833vw, 100px);
  }
  .pc-mt90 {
    margin-top: min(4.687497vw, 90px);
  }
  .pc-mt80 {
    margin-top: min(4.166664vw, 80px);
  }
  .pc-mt70 {
    margin-top: min(3.645831vw, 70px);
  }
  .pc-mt60 {
    margin-top: min(3.124998vw, 60px);
  }
  .pc-mt50 {
    margin-top: min(2.604165vw, 50px);
  }
  .pc-mt40 {
    margin-top: min(2.083332vw, 40px);
  }
  .pc-mt30 {
    margin-top: min(1.562499vw, 30px);
  }
  .pc-mt20 {
    margin-top: min(1.041666vw, 20px);
  }
  .pc-mt10 {
    margin-top: min(0.520833vw, 10px);
  }
  .display-sp {
    display: none;
  }
  .display-pc {
    display: block;
  }
  .sp-br {
    display: none;
  }
  .pc-br {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  .display-sp {
    display: block;
  }
  .display-pc {
    display: none;
  }
  .sp-br {
    display: block;
  }
  .pc-br {
    display: none;
  }
  .sp-mt140 {
    margin-top: 18.666662vw;
  }
  .sp-mt100 {
    margin-top: 13.33333vw;
  }
  .sp-mt80 {
    margin-top: 10.666664vw;
  }
  .sp-mt70 {
    margin-top: 9.333331vw;
  }
  .sp-mt60 {
    margin-top: 7.999998vw;
  }
  .sp-mt50 {
    margin-top: 6.666665vw;
  }
  .sp-mt40 {
    margin-top: 5.333332vw;
  }
  .sp-mt30 {
    margin-top: 3.999999vw;
  }
  .sp-mt20 {
    margin-top: 2.666666vw;
  }
  .sp-mt10 {
    margin-top: 1.333333vw;
  }
}
/* layout */
#pairing-fes {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-optical-sizing: auto;
  text-align: center;
  line-height: 1.5;
  max-width: 1920px;
  margin: 0 auto;
  color: #6A4528;
  background-color: #E9E2BB;
  /* ボックスサイズの統一 */
}
#pairing-fes *::before, #pairing-fes *::after {
  box-sizing: inherit;
}
#pairing-fes a, #pairing-fes a:hover, #pairing-fes a:visited {
  text-decoration: none;
  color: inherit;
}
#pairing-fes h2 {
  text-align: center;
  color: #6A4528;
}
#pairing-fes h2 .en-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(4.0624974vw, 78px);
  line-height: 1.1;
}
@media screen and (max-width: 767px) {
  #pairing-fes h2 .en-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 10.3999974vw;
  }
}
#pairing-fes h2 .jp-head {
  display: inline-block;
  margin-top: min(0.520833vw, 10px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  #pairing-fes h2 .jp-head {
    margin-top: 1.333333vw;
    font-size: 3.7333324vw;
  }
}
#pairing-fes .notice {
  display: inline-block;
  font-size: min(0.8333328vw, 16px);
  line-height: 1.625;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #pairing-fes .notice {
    font-size: 2.1333328vw;
  }
}

/* ===== sections ===== */
/* コンテンツカラム（PCのみ 75% 中央 + 外周シャドウ） */
@media screen and (min-width: 768px) {
  .fes-inner {
    width: 75%;
    margin: 0 auto;
    box-shadow: 0 0 min(11.458326vw, 220px) 0 rgba(84, 56, 22, 0.5);
  }
}

/* fes-top（背景ストリップを横スクロールアニメ + 透過前景。2025年実装踏襲） */
#fes-top {
  position: relative;
  overflow: hidden;
}
#fes-top img {
  width: 100%;
}
#fes-top .hero-fg {
  position: relative;
  z-index: 1;
}
#fes-top .top-bg {
  position: absolute;
  inset: 0;
  background: url(../files/top_bg.jpg) repeat-x 0 0;
  background-size: auto 100%;
  animation: top-scroll-pc 80s linear infinite;
}
@media screen and (max-width: 767px) {
  #fes-top .top-bg {
    animation-name: top-scroll-sp;
  }
}

@keyframes top-scroll-pc {
  to {
    background-position-x: calc(-8 * min(56.25vw, 1080px));
  }
}
@keyframes top-scroll-sp {
  to {
    background-position-x: -1152vw;
  }
}
@media (prefers-reduced-motion: reduce) {
  #fes-top .top-bg {
    animation: none;
  }
}
/* fes-about */
#fes-about {
  position: relative;
  padding-top: min(2.4999984vw, 48px);
}
@media screen and (max-width: 767px) {
  #fes-about {
    padding-top: 7.999998vw;
  }
}
#fes-about .about-beans {
  position: absolute;
  right: 0;
  bottom: max(-1.3020825vw, -25px);
  z-index: 1;
  width: min(27.083316vw, 520px);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  #fes-about .about-beans {
    bottom: 32.1333253vw;
    width: 46.666655vw;
  }
}
#fes-about .en-title {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.8541642vw, 74px);
  line-height: 1.05;
}
@media screen and (max-width: 767px) {
  #fes-about .en-title {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 9.8666642vw;
  }
}
#fes-about .badge2026 {
  width: min(6.9270789vw, 133px);
  margin: min(0.4166664vw, 8px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-about .badge2026 {
    width: 17.7333289vw;
    margin-top: 2.1333328vw;
  }
}
#fes-about h1 {
  margin-top: min(0.4166664vw, 8px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-about h1 {
    margin-top: 2.9333326vw;
    font-size: 3.7333324vw;
  }
}
#fes-about .line {
  /* common_new/parts.css の hr{display:none} を打ち消す */
  display: block;
  width: min(66.2499576vw, 1272px);
  margin: min(2.9166648vw, 56px) auto 0;
  border: none;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
}
@media screen and (max-width: 767px) {
  #fes-about .line {
    width: 84.7999788vw;
    margin-top: 7.4666648vw;
  }
}
#fes-about .catch {
  margin-top: min(2.083332vw, 40px);
  font-size: min(2.1874986vw, 42px);
  font-weight: 900;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  #fes-about .catch {
    margin-top: 5.333332vw;
    font-size: 5.5999986vw;
  }
}
#fes-about .coffee-cake {
  width: min(28.8020649vw, 553px);
  margin: min(4.0624974vw, 78px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-about .coffee-cake {
    width: 87.999978vw;
    margin-top: 10.3999974vw;
  }
}
#fes-about .catch2 {
  margin-top: min(2.8124982vw, 54px);
  font-size: min(1.9791654vw, 38px);
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  #fes-about .catch2 {
    margin-top: 8.2666646vw;
    font-size: 5.0666654vw;
  }
}
#fes-about .lead {
  margin-top: min(2.083332vw, 40px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  #fes-about .lead {
    margin-top: 5.333332vw;
    font-size: 3.7333324vw;
  }
}
#fes-about {
  /* アンカーナビ */
}
#fes-about .menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(1.6666656vw, 32px) min(1.7708322vw, 34px);
  max-width: min(34.895811vw, 670px);
  margin: min(2.8645815vw, 55px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-about .menu {
    flex-direction: column;
    align-items: center;
    gap: 4.2666656vw 0;
    max-width: none;
    margin-top: 10.666664vw;
  }
}
#fes-about .btn {
  width: min(16.4583228vw, 316px);
}
@media screen and (max-width: 767px) {
  #fes-about .btn {
    width: 42.3999894vw;
  }
}
#fes-about .btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: min(4.5312471vw, 87px);
  color: #fff;
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  #fes-about .btn a {
    height: 11.5999971vw;
    font-size: 3.7333324vw;
  }
}
#fes-about .btn a::before {
  content: "";
  position: absolute;
  inset: min(0.3124998vw, 6px);
  border: 1px solid rgba(255, 255, 255, 0.9);
}
@media screen and (max-width: 767px) {
  #fes-about .btn a::before {
    inset: 0.7999998vw;
  }
}
#fes-about .btn.brown {
  background: #AB803B;
}
#fes-about .btn.teal {
  background: #6CAE98;
}
#fes-about .btn.yellow {
  background: #EAC72E;
  /* 黄ボタンのみ内側の線は濃茶（.ai実測 #6A4528） */
}
#fes-about .btn.yellow a::before {
  border-color: #6A4528;
}
#fes-about .btn.blue {
  background: #6F9BC1;
}
#fes-about {
  /* SNS */
}
#fes-about .sns {
  display: flex;
  justify-content: center;
  margin-top: min(3.9062475vw, 75px);
  padding-bottom: min(3.124998vw, 60px);
}
@media screen and (max-width: 767px) {
  #fes-about .sns {
    margin-top: 14.666663vw;
    padding-bottom: 10.666664vw;
  }
}
#fes-about .sns-account {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(3.645831vw, 70px);
  padding: min(1.4583324vw, 28px) min(3.124998vw, 60px);
  border-left: 1px solid #6A4528;
  border-right: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-about .sns-account {
    gap: 5.9999985vw;
    padding: 3.7333324vw 3.999999vw;
  }
}
#fes-about .sns-title {
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  text-align: left;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  #fes-about .sns-title {
    font-size: 3.4666658vw;
  }
}
#fes-about .sns-title .en-font {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(1.562499vw, 30px);
}
@media screen and (max-width: 767px) {
  #fes-about .sns-title .en-font {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 5.0666654vw;
  }
}
#fes-about .sns-list {
  display: flex;
  justify-content: center;
  gap: min(2.3437485vw, 45px);
}
@media screen and (max-width: 767px) {
  #fes-about .sns-list {
    gap: 5.9999985vw;
  }
}
#fes-about .sns-item img {
  width: min(3.2291646vw, 62px);
}
@media screen and (max-width: 767px) {
  #fes-about .sns-item img {
    width: 8.2666646vw;
  }
}
#fes-about .sns-content .notice {
  display: block;
  margin-top: min(0.7812495vw, 15px);
}
@media screen and (max-width: 767px) {
  #fes-about .sns-content .notice {
    margin-top: 1.9999995vw;
  }
}

/* fes-how-to */
#fes-how-to {
  background: #FFFFFF;
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  #fes-how-to {
    padding-bottom: 7.999998vw;
  }
}
#fes-how-to .divider {
  width: 100%;
  margin-top: max(-0.1041666vw, -2px);
}
#fes-how-to h2 {
  margin-top: min(3.645831vw, 70px);
}
@media screen and (max-width: 767px) {
  #fes-how-to h2 {
    margin-top: 11.999997vw;
  }
}
#fes-how-to h2 .en-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.124998vw, 60px);
  display: block;
  line-height: 1.35;
}
@media screen and (max-width: 767px) {
  #fes-how-to h2 .en-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 9.8666642vw;
    line-height: 1.05;
  }
}
#fes-how-to h2 .head-line {
  display: block;
  width: min(33.333312vw, 640px);
  margin: min(1.4583324vw, 28px) auto 0;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
}
@media screen and (max-width: 767px) {
  #fes-how-to h2 .head-line {
    width: 79.99998vw;
    margin-top: 3.7333324vw;
  }
}
#fes-how-to h2 .jp-head {
  display: block;
  margin-top: min(1.2499992vw, 24px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  #fes-how-to h2 .jp-head {
    margin-top: 3.1999992vw;
    font-size: 3.7333324vw;
  }
}
#fes-how-to {
  /* パネル2枚 + 写真2枚（PC: 2×2グリッド / SP: パネル・写真交互の縦積み） */
}
#fes-how-to .howto-main {
  display: grid;
  grid-template-areas: "guide tags" "photo1 photo2";
  grid-template-columns: min(33.333312vw, 640px) min(33.333312vw, 640px);
  justify-content: center;
  column-gap: min(2.604165vw, 50px);
  row-gap: min(4.166664vw, 80px);
  margin-top: min(4.166664vw, 80px);
}
@media screen and (max-width: 767px) {
  #fes-how-to .howto-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6.666665vw 0;
    margin-top: 10.666664vw;
  }
}
#fes-how-to .howto-main .guide {
  grid-area: guide;
}
#fes-how-to .howto-main .tags {
  grid-area: tags;
}
#fes-how-to .howto-main .photo1 {
  grid-area: photo1;
}
#fes-how-to .howto-main .photo2 {
  grid-area: photo2;
}
@media screen and (max-width: 767px) {
  #fes-how-to .howto-main .guide {
    order: 1;
  }
  #fes-how-to .howto-main .photo1 {
    order: 2;
  }
  #fes-how-to .howto-main .tags {
    order: 3;
  }
  #fes-how-to .howto-main .photo2 {
    order: 4;
  }
}
#fes-how-to .panel {
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  #fes-how-to .panel {
    width: 85.333312vw;
  }
}
#fes-how-to .panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #FFFFFF;
  border: 1px solid #6A4528;
}
#fes-how-to .panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  transform: translate(min(0.2604165vw, 5px), min(0.2604165vw, 5px));
  background: #FFFFFF;
  border: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-how-to .panel::after {
    transform: translate(0.6666665vw, 0.6666665vw);
  }
}
#fes-how-to .panel-head {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(7.6041618vw, 146px);
  background: #6F9BC1;
  color: #fff;
  font-size: min(1.562499vw, 30px);
  font-weight: 700;
  line-height: 1.42;
}
@media screen and (max-width: 767px) {
  #fes-how-to .panel-head {
    min-height: 19.4666618vw;
    font-size: 5.0666654vw;
  }
}
#fes-how-to .panel-body {
  padding: min(2.8645815vw, 55px) min(2.3437485vw, 45px) min(3.124998vw, 60px);
}
@media screen and (max-width: 767px) {
  #fes-how-to .panel-body {
    padding: 7.3333315vw 5.333332vw 7.999998vw;
  }
}
#fes-how-to .rule-box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(23.437485vw, 450px);
  height: min(4.3749972vw, 84px);
  margin: 0 auto;
  border: 1px solid #6A4528;
  background: #E9E2BB;
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-how-to .rule-box {
    width: 63.999984vw;
    height: 11.999997vw;
    font-size: 3.7333324vw;
  }
}
#fes-how-to .rule-box .red {
  color: #BE391C;
}
#fes-how-to .pairing-icon {
  width: min(23.958318vw, 460px);
  margin: min(2.083332vw, 40px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-how-to .pairing-icon {
    width: 63.999984vw;
    margin-top: 5.5999986vw;
  }
}
#fes-how-to .panel-text {
  margin-top: min(2.1874986vw, 42px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-how-to .panel-text {
    margin-top: 5.8666652vw;
    font-size: 3.7333324vw;
  }
}
#fes-how-to .tag-list {
  display: grid;
  grid-template-columns: repeat(2, min(10.1562435vw, 195px));
  justify-content: center;
  gap: min(2.8645815vw, 55px);
  padding: min(0.7812495vw, 15px) 0;
}
@media screen and (max-width: 767px) {
  #fes-how-to .tag-list {
    grid-template-columns: repeat(2, 25.9999935vw);
    gap: 7.3333315vw;
    padding: 1.9999995vw 0;
  }
}
#fes-how-to .howto-photo img {
  width: 100%;
}
#fes-how-to .tatoeba {
  position: relative;
  z-index: 1;
  margin-top: min(2.4479151vw, 47px);
  font-size: min(1.7708322vw, 34px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-how-to .tatoeba {
    margin-top: 11.3333305vw;
    font-size: 5.0666654vw;
  }
}
#fes-how-to .pairing-examples {
  display: flex;
  justify-content: flex-start;
  margin-top: max(-2.2916652vw, -44px);
  margin-bottom: min(4.0104141vw, 77px);
}
@media screen and (max-width: 767px) {
  #fes-how-to .pairing-examples {
    flex-direction: column;
    align-items: center;
    gap: 7.999998vw 0;
    margin-top: 5.9999985vw;
    margin-bottom: 0;
  }
}
#fes-how-to .pairing-examples img {
  width: min(35.68747716vw, 685.2px);
}
#fes-how-to .pairing-examples img:first-child {
  margin-left: min(1.71354057vw, 32.9px);
}
#fes-how-to .pairing-examples img:last-child {
  margin-left: min(1.29166584vw, 24.8px);
}
@media screen and (max-width: 767px) {
  #fes-how-to .pairing-examples img {
    width: 84.1333123vw;
  }
  #fes-how-to .pairing-examples img:first-child, #fes-how-to .pairing-examples img:last-child {
    margin-left: 0;
  }
}

/* fes-ticket */
#fes-ticket {
  background: #F2DD83;
  padding-bottom: min(2.3437485vw, 45px);
}
@media screen and (max-width: 767px) {
  #fes-ticket {
    padding-bottom: 11.999997vw;
  }
}
#fes-ticket .divider {
  width: 100%;
}
#fes-ticket h2 {
  margin-top: min(3.645831vw, 70px);
}
@media screen and (max-width: 767px) {
  #fes-ticket h2 {
    margin-top: 11.999997vw;
  }
}
#fes-ticket h2 .en-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.124998vw, 60px);
  display: block;
  line-height: 1.35;
}
@media screen and (max-width: 767px) {
  #fes-ticket h2 .en-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 9.8666642vw;
    line-height: 1.05;
  }
}
#fes-ticket h2 .head-line {
  display: block;
  width: min(33.333312vw, 640px);
  margin: min(1.2499992vw, 24px) auto 0;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
}
@media screen and (max-width: 767px) {
  #fes-ticket h2 .head-line {
    width: 79.99998vw;
    margin-top: 3.1999992vw;
  }
}
#fes-ticket h2 .jp-head {
  display: block;
  margin-top: min(1.041666vw, 20px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  #fes-ticket h2 .jp-head {
    margin-top: 2.666666vw;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .ticket-main {
  display: grid;
  grid-template-areas: "card1 photo" "card1 sub" "mug notes";
  grid-template-columns: min(33.333312vw, 640px) min(33.333312vw, 640px);
  justify-content: center;
  column-gap: min(2.604165vw, 50px);
  row-gap: min(2.9166648vw, 56px);
  margin-top: min(4.166664vw, 80px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6.666665vw 0;
    margin-top: 10.666664vw;
  }
}
#fes-ticket .ticket-main .main-ticket {
  grid-area: card1;
}
#fes-ticket .ticket-main .ticket-photo {
  grid-area: photo;
}
#fes-ticket .ticket-main .ticket-sub {
  grid-area: sub;
}
#fes-ticket .ticket-main .mug-card {
  grid-area: mug;
}
#fes-ticket .ticket-main .ticket-notes {
  grid-area: notes;
  align-self: center;
}
#fes-ticket .ticket-card {
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-card {
    width: 85.333312vw;
  }
}
#fes-ticket .ticket-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #E9E2BB;
  border: 1px solid #6A4528;
}
#fes-ticket .ticket-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  transform: translate(min(0.2604165vw, 5px), min(0.2604165vw, 5px));
  background: #FFFFFF;
  border: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-card::after {
    transform: translate(0.6666665vw, 0.6666665vw);
  }
}
#fes-ticket .main-ticket::before,
#fes-ticket .add-ticket::before {
  background-image: radial-gradient(circle at min(1.041666vw, 20px) min(1.0937493vw, 21px), rgba(0, 0, 0, 0) min(0.2083332vw, 4px), #6A4528 calc(min(0.2083332vw, 4px) + 0.5px) min(0.3124998vw, 6px), rgba(0, 0, 0, 0) calc(min(0.3124998vw, 6px) + 0.5px)), radial-gradient(circle at calc(100% - min(1.041666vw, 20px)) min(1.0937493vw, 21px), rgba(0, 0, 0, 0) min(0.2083332vw, 4px), #6A4528 calc(min(0.2083332vw, 4px) + 0.5px) min(0.3124998vw, 6px), rgba(0, 0, 0, 0) calc(min(0.3124998vw, 6px) + 0.5px));
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  #fes-ticket .main-ticket::before,
  #fes-ticket .add-ticket::before {
    background-image: radial-gradient(circle at 2.666666vw 2.7999993vw, rgba(0, 0, 0, 0) 0.59999985vw, #6A4528 calc(0.59999985vw + 0.5px) 0.86666645vw, rgba(0, 0, 0, 0) calc(0.86666645vw + 0.5px)), radial-gradient(circle at calc(100% - 2.666666vw) 2.7999993vw, rgba(0, 0, 0, 0) 0.59999985vw, #6A4528 calc(0.59999985vw + 0.5px) 0.86666645vw, rgba(0, 0, 0, 0) calc(0.86666645vw + 0.5px));
  }
}
#fes-ticket .white-box {
  width: min(27.8124822vw, 534px);
  margin: min(1.8229155vw, 35px) auto 0;
  padding: min(2.3437485vw, 45px) min(0.7812495vw, 15px) min(2.083332vw, 40px);
  background: #FFFFFF;
  border: 1px solid rgba(106, 69, 40, 0.4);
}
@media screen and (max-width: 767px) {
  #fes-ticket .white-box {
    width: 71.1999822vw;
    margin-top: 4.6666655vw;
    padding: 5.9999985vw 1.9999995vw 5.333332vw;
  }
}
#fes-ticket .main-ticket {
  padding: min(2.604165vw, 50px) min(2.3437485vw, 45px) min(2.8645815vw, 55px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .main-ticket {
    padding: 6.666665vw 5.333332vw 7.3333315vw;
  }
}
#fes-ticket .ribbon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(24.1666512vw, 464px);
  min-height: min(4.5833304vw, 88px);
  margin: 0 auto;
  background: #AB803B;
  clip-path: polygon(min(1.4583324vw, 28px) 0, calc(100% - min(1.4583324vw, 28px)) 0, 100% 50%, calc(100% - min(1.4583324vw, 28px)) 100%, min(1.4583324vw, 28px) 100%, 0 50%);
  color: #fff;
  font-size: min(1.2499992vw, 24px);
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ribbon {
    width: 61.8666512vw;
    min-height: 11.7333304vw;
    clip-path: polygon(3.7333324vw 0, calc(100% - 3.7333324vw) 0, 100% 50%, calc(100% - 3.7333324vw) 100%, 3.7333324vw 100%, 0 50%);
    font-size: 3.1999992vw;
  }
}
#fes-ticket .ribbon .ribbon-big {
  font-size: min(1.562499vw, 30px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .ribbon .ribbon-big {
    font-size: 3.999999vw;
  }
}
#fes-ticket .ticket-lead {
  margin-top: min(1.562499vw, 30px);
  font-size: min(1.562499vw, 30px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-lead {
    margin-top: 3.999999vw;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .ticket-lead .small {
  font-size: min(1.041666vw, 20px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-lead .small {
    font-size: 2.666666vw;
  }
}
#fes-ticket .red {
  color: #BE391C;
}
#fes-ticket .ticket-set {
  width: min(24.999984vw, 480px);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-set {
    width: 63.999984vw;
  }
}
#fes-ticket .limited {
  margin-top: min(1.3020825vw, 25px);
  font-size: min(1.2499992vw, 24px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-ticket .limited {
    margin-top: 3.3333325vw;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .price-line {
  margin-top: min(0.4166664vw, 8px);
  font-size: min(1.8749988vw, 36px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-ticket .price-line {
    margin-top: 1.0666664vw;
    font-size: 4.7999988vw;
  }
}
#fes-ticket .price-line .price {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.3333312vw, 64px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .price-line .price {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 10.3999974vw;
  }
}
#fes-ticket .price-line .tax {
  font-size: min(1.2499992vw, 24px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .price-line .tax {
    font-size: 3.7333324vw;
  }
}
#fes-ticket .ticket-text {
  margin-top: min(2.083332vw, 40px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-text {
    margin-top: 5.333332vw;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .ticket-photo img {
  width: 100%;
}
#fes-ticket .add-ticket {
  padding: min(2.3437485vw, 45px) min(2.3437485vw, 45px) min(2.604165vw, 50px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-ticket {
    padding: 5.9999985vw 5.333332vw 6.666665vw;
  }
}
#fes-ticket .add-box {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: min(27.7083156vw, 532px);
  min-height: min(12.8645751vw, 247px);
  margin: min(1.8229155vw, 35px) auto 0;
  padding: 0 min(3.645831vw, 70px) 0 0;
  background: #FFFFFF;
  border: 1px solid rgba(106, 69, 40, 0.5);
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-box {
    width: 70.9333156vw;
    min-height: 32.9333251vw;
    margin-top: 4.6666655vw;
    padding: 0 9.333331vw 0 0;
  }
}
#fes-ticket .add-box .ticket-coin {
  position: absolute;
  left: min(0.4166664vw, 8px);
  top: 50%;
  transform: translateY(-50%);
  width: min(10.5208266vw, 202px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-box .ticket-coin {
    left: 2.9333326vw;
    width: 26.9333266vw;
  }
}
#fes-ticket .add-box .price-line {
  margin-top: min(0.520833vw, 10px);
  line-height: 1;
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-box .price-line {
    margin-top: 1.333333vw;
  }
}
#fes-ticket .add-box .price-line .eq {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.7499976vw, 72px);
  margin-right: min(1.3541658vw, 26px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-box .price-line .eq {
    font-size: 9.5999976vw;
    margin-right: 3.4666658vw;
  }
}
#fes-ticket .add-box .price-line .price {
  font-size: min(3.7499976vw, 72px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-box .price-line .price {
    font-size: 9.5999976vw;
  }
}
#fes-ticket .add-box .price-line .tax {
  display: block;
  margin-top: 0;
  text-align: right;
  margin-right: -0.45em;
}
#fes-ticket .add-note {
  margin: min(1.8229155vw, 35px) max(-0.520833vw, -10px) 0;
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-ticket .add-note {
    margin: 4.6666655vw -1.333333vw 0;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .mug-card::before {
  background: #FFFFFF;
}
#fes-ticket .mug-card .mug-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: min(10.7291598vw, 206px);
  background: #AB803B;
  color: #fff;
  font-size: min(1.562499vw, 30px);
  font-weight: 700;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-head {
    min-height: 26.9333266vw;
    font-size: 3.999999vw;
  }
}
#fes-ticket .mug-card .mug-head span {
  display: block;
}
#fes-ticket .mug-card .mug-head .en-font {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(1.6666656vw, 32px);
  line-height: 1;
  margin: min(1.0937493vw, 21px) 0 min(1.2499992vw, 24px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-head .en-font {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 5.5999986vw;
    margin: 3.4666658vw 0 3.999999vw;
  }
}
#fes-ticket .mug-card .mug-body {
  padding: min(4.9479135vw, 95px) min(2.3437485vw, 45px) 0;
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-body {
    padding: 9.333331vw 5.333332vw 0;
  }
}
#fes-ticket .mug-card .mug-body img {
  width: min(24.6354009vw, 473px);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-body img {
    width: 71.999982vw;
  }
}
#fes-ticket .mug-card .mug-caption {
  margin-top: min(1.6666656vw, 32px);
  font-size: min(1.041666vw, 20px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-caption {
    margin-top: 2.666666vw;
    font-size: 2.666666vw;
  }
}
#fes-ticket .mug-card .mug-text {
  margin-top: min(2.9687481vw, 57px);
  padding: 0 min(2.3437485vw, 45px) min(2.1874986vw, 42px);
}
@media screen and (max-width: 767px) {
  #fes-ticket .mug-card .mug-text {
    margin-top: 7.999998vw;
    padding: 0 5.9999985vw 6.666665vw;
  }
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-notes {
    width: 85.333312vw;
  }
}
#fes-ticket .ticket-notes .notes {
  font-size: min(1.2499992vw, 24px);
  font-weight: 400;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-notes .notes {
    font-size: 3.1999992vw;
  }
}
#fes-ticket .ticket-notes .blue-link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: min(2.8645815vw, 55px);
  padding: min(1.4583324vw, 28px) min(1.041666vw, 20px);
  background: #6F9BC1;
  color: #fff;
  font-size: min(1.3541658vw, 26px);
  font-weight: 700;
  line-height: 1.6;
}
#fes-ticket .ticket-notes .blue-link::before {
  content: "";
  position: absolute;
  inset: min(0.2604165vw, 5px);
  border: 1px solid rgba(255, 255, 255, 0.9);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-notes .blue-link::before {
    inset: 0.6666665vw;
  }
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-notes .blue-link {
    margin-top: 9.333331vw;
    padding: 3.7333324vw 2.666666vw;
    font-size: 3.7333324vw;
  }
}
#fes-ticket .ticket-notes .blue-link .link-notice {
  margin-top: min(0.520833vw, 10px);
  font-size: min(0.8333328vw, 16px);
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  #fes-ticket .ticket-notes .blue-link .link-notice {
    margin-top: 1.333333vw;
    font-size: 2.666666vw;
  }
}

/* fes-shop */
#fes-shop {
  background: #E9E2BB;
  padding-bottom: min(5.729163vw, 110px);
}
@media screen and (max-width: 767px) {
  #fes-shop {
    padding-bottom: 14.666663vw;
  }
}
#fes-shop .divider {
  width: 100%;
}
#fes-shop h2 {
  margin-top: min(3.645831vw, 70px);
}
@media screen and (max-width: 767px) {
  #fes-shop h2 {
    margin-top: 11.999997vw;
  }
}
#fes-shop h2 .en-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.124998vw, 60px);
  display: block;
  line-height: 1.35;
}
@media screen and (max-width: 767px) {
  #fes-shop h2 .en-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 9.8666642vw;
    line-height: 1.05;
  }
}
#fes-shop h2 .head-line {
  display: block;
  width: min(33.333312vw, 640px);
  margin: min(1.2499992vw, 24px) auto 0;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
}
@media screen and (max-width: 767px) {
  #fes-shop h2 .head-line {
    width: 79.99998vw;
    margin-top: 3.1999992vw;
  }
}
#fes-shop h2 .jp-head {
  display: block;
  margin-top: min(1.041666vw, 20px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  #fes-shop h2 .jp-head {
    margin-top: 2.666666vw;
    font-size: 3.7333324vw;
  }
}
#fes-shop .shop-notes {
  margin-top: min(2.3437485vw, 45px);
  font-size: min(1.1458326vw, 22px);
  font-weight: 400;
  line-height: 1.36;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-notes {
    width: 85.333312vw;
    margin: 5.8666652vw auto 0;
    font-size: 2.666666vw;
    line-height: 1.5;
    text-align: left;
  }
}
#fes-shop .genre-pill {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(32.812479vw, 630px);
  height: min(5.4166632vw, 104px);
  margin: min(4.166664vw, 80px) auto 0;
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(2.4999984vw, 48px);
  color: #fff;
}
@media screen and (max-width: 767px) {
  #fes-shop .genre-pill {
    width: 83.999979vw;
    height: 13.8666632vw;
    margin-top: 10.666664vw;
    font-family: "Margherita-semibold", sans-serif;
    font-size: 7.999998vw;
  }
}
#fes-shop .genre-pill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border: 1px solid #6A4528;
}
#fes-shop .genre-pill::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  transform: translate(min(0.2604165vw, 5px), min(0.2604165vw, 5px));
  background: #fff;
  border: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-shop .genre-pill::after {
    transform: translate(0.6666665vw, 0.6666665vw);
  }
}
#fes-shop .genre-coffee .genre-pill::before {
  background: #6F9BC1;
}
#fes-shop .genre-sweets .genre-pill::before {
  background: #AB803B;
}
#fes-shop .genre-goods .genre-pill::before {
  background: #6CAE98;
}
#fes-shop .genre-coffee .shop-img {
  background: #6F9BC1;
}
#fes-shop .genre-sweets .shop-img {
  background: #AB803B;
}
#fes-shop .genre-goods .shop-img {
  background: #6CAE98;
}
#fes-shop .shop-list {
  display: grid;
  grid-template-columns: repeat(2, min(33.333312vw, 640px));
  justify-content: center;
  gap: min(4.4270805vw, 85px) min(2.604165vw, 50px);
  margin-top: min(3.4895811vw, 67px);
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-list {
    grid-template-columns: 85.333312vw;
    gap: 11.3333305vw;
    margin-top: 7.999998vw;
  }
}
#fes-shop .shop-item {
  display: flex;
  flex-direction: column;
  text-align: center;
}
#fes-shop .shop-item .shop-text {
  flex: 1;
  margin-top: min(1.562499vw, 30px);
  padding: 0 min(1.3541658vw, 26px) min(2.083332vw, 40px);
  border-left: 1px solid #6A4528;
  border-right: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-text {
    margin-top: 3.999999vw;
    padding: 0 3.4666658vw 5.333332vw;
  }
}
#fes-shop .shop-item .shop-img {
  border: 1px solid #6A4528;
  padding: 3px;
}
#fes-shop .shop-item .shop-img img {
  display: block;
  width: 100%;
  border: 1px solid #6A4528;
}
#fes-shop .shop-item .shop-badge {
  margin-top: min(1.562499vw, 30px);
  padding: min(0.4166664vw, 8px) 0;
  color: #fff;
  font-size: min(1.6666656vw, 32px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-badge {
    margin-top: 3.999999vw;
    padding: 1.0666664vw 0;
    font-size: 4.2666656vw;
  }
}
#fes-shop .shop-item .shop-badge.hokkaido {
  background: #6CAE98;
}
#fes-shop .shop-item .shop-badge.daimaru {
  background: #6F9BC1;
}
#fes-shop .shop-item .shop-name {
  margin-top: min(0.520833vw, 10px);
  font-size: min(2.1874986vw, 42px);
  font-weight: 900;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-name {
    margin-top: 3.1999992vw;
    font-size: 5.5999986vw;
    font-weight: 900;
    line-height: 1.3;
  }
}
#fes-shop .shop-item .shop-en {
  margin-top: min(0.4166664vw, 8px);
  font-size: min(1.3541658vw, 26px);
  font-weight: 400;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-en {
    margin-top: 1.0666664vw;
    font-size: 3.4666658vw;
  }
}
#fes-shop .shop-item .shop-en .shop-loc {
  font-size: min(1.9791654vw, 38px);
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-en .shop-loc {
    font-size: 5.0666654vw;
  }
}
#fes-shop .shop-item .shop-desc {
  margin-top: min(1.1458326vw, 22px);
  color: #000;
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-desc {
    margin-top: 2.9333326vw;
    font-size: 3.7333324vw;
  }
}
#fes-shop .shop-item .shop-osusume {
  margin-top: min(1.041666vw, 20px);
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: min(1.4583324vw, 28px);
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-shop .shop-item .shop-osusume {
    margin-top: 3.999999vw;
    font-size: 3.7333324vw;
  }
}
#fes-shop .shop-item .shop-osusume .item-name {
  font-weight: 700;
}
#fes-shop .shop-item .shop-osusume .osusume-tag,
#fes-shop .shop-item .shop-osusume .demo-tag {
  color: #A43C23;
  font-weight: 700;
}
#fes-shop .shop-item .shop-osusume .osusume-tag {
  margin-left: -0.5em;
}
#fes-shop .shop-item .shop-osusume .ph {
  margin-left: -0.5em;
}
#fes-shop .shop-item .shop-osusume .limited-note {
  margin-left: 0.5em;
  color: #A43C23;
  font-weight: 700;
}
#fes-shop .shop-item .shop-osusume .item-size {
  font-size: inherit;
}

/* fes-workshop */
#fes-workshop {
  background: #FFFFFF;
  padding-bottom: min(5.20833vw, 100px);
}
@media screen and (max-width: 767px) {
  #fes-workshop {
    padding-bottom: 13.33333vw;
  }
}
#fes-workshop .divider {
  width: 100%;
}
#fes-workshop h2 {
  margin-top: min(4.166664vw, 80px);
}
@media screen and (max-width: 767px) {
  #fes-workshop h2 {
    margin-top: 11.999997vw;
  }
}
#fes-workshop h2 .en-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(3.124998vw, 60px);
  display: block;
  line-height: 1.35;
}
@media screen and (max-width: 767px) {
  #fes-workshop h2 .en-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 9.8666642vw;
    line-height: 1.05;
  }
}
#fes-workshop h2 .head-line {
  display: block;
  width: min(33.333312vw, 640px);
  margin: min(1.2499992vw, 24px) auto 0;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
}
@media screen and (max-width: 767px) {
  #fes-workshop h2 .head-line {
    width: 79.99998vw;
    margin-top: 3.1999992vw;
  }
}
#fes-workshop h2 .jp-head {
  display: block;
  margin-top: min(1.041666vw, 20px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-workshop h2 .jp-head {
    margin-top: 2.666666vw;
    font-size: 3.7333324vw;
  }
}
#fes-workshop .ws-notes {
  margin-top: min(1.8229155vw, 35px);
  font-size: min(1.041666vw, 20px);
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-notes {
    margin-top: 5.333332vw;
    font-size: 2.666666vw;
    line-height: 1.5;
  }
}
#fes-workshop .ws-card {
  position: relative;
  z-index: 0;
  width: min(58.4374626vw, 1122px);
  min-height: min(106.770765vw, 2050px);
  margin: min(2.3437485vw, 45px) auto 0;
  padding: min(5.20833vw, 100px) min(9.374994vw, 180px) min(4.687497vw, 90px);
}
#fes-workshop .ws-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-style: solid;
  border-width: min(9.374994vw, 180px) min(4.9479135vw, 95px);
  border-image: url(../files/pc/ws_frame.png) 360 190 fill stretch;
}
#fes-workshop .ws-card::after {
  content: "";
  position: absolute;
  inset: min(1.2499992vw, 24px);
  z-index: -2;
  pointer-events: none;
  background: #E9E2BB;
  border-radius: min(3.3333312vw, 64px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card {
    width: 89.5999776vw;
    margin-top: 7.999998vw;
    padding: 13.33333vw 6.666665vw 10.666664vw;
  }
  #fes-workshop .ws-card::before {
    border-width: 23.999994vw 12.6666635vw;
    border-image: url(../files/sp/ws_frame.png) 360 190 fill stretch;
  }
  #fes-workshop .ws-card::after {
    inset: 3.1999992vw;
    border-radius: 8.5333312vw;
  }
}
#fes-workshop .ws-card .ws-title {
  font-size: min(2.083332vw, 40px);
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-title {
    font-size: 5.5999986vw;
    font-weight: 900;
    line-height: 1.3;
  }
}
#fes-workshop .ws-card .ws-title .ws-lead {
  font-size: min(1.4583324vw, 28px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-title .ws-lead {
    font-size: 3.7333324vw;
  }
}
#fes-workshop .ws-card .ws-photo {
  width: min(26.6666496vw, 512px);
  margin: min(2.604165vw, 50px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-photo {
    width: 68.2666496vw;
    margin-top: 6.666665vw;
  }
}
#fes-workshop .ws-card .ws-photo .photo-note {
  display: block;
  margin-top: min(0.4166664vw, 8px);
  font-size: min(0.8333328vw, 16px);
  text-align: right;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-photo .photo-note {
    margin-top: 1.0666664vw;
    font-size: 2.1333328vw;
  }
}
#fes-workshop .ws-card .ws-teacher {
  margin-top: min(2.3437485vw, 45px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher {
    margin-top: 5.333332vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-label {
  font-size: min(1.041666vw, 20px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-label {
    font-size: 3.4666658vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-name {
  margin-top: min(0.3124998vw, 6px);
  font-size: min(1.562499vw, 30px);
  font-weight: 700;
}
#fes-workshop .ws-card .ws-teacher .teacher-name span {
  font-size: min(1.1458326vw, 22px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-name {
    margin-top: 0.7999998vw;
    font-size: 5.0666654vw;
  }
  #fes-workshop .ws-card .ws-teacher .teacher-name span {
    font-size: 3.4666658vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-org {
  margin-top: min(0.2083332vw, 4px);
  font-size: min(1.1458326vw, 22px);
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-org {
    margin-top: 0.5333332vw;
    font-size: 2.9333326vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-org.org-em {
  font-size: min(1.562499vw, 30px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-org.org-em {
    font-size: 5.0666654vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-photo {
  width: min(10.9895763vw, 211px);
  margin: min(1.4583324vw, 28px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-photo {
    width: 28.1333263vw;
    margin-top: 5.333332vw;
  }
}
#fes-workshop .ws-card .ws-teacher .teacher-bio {
  margin-top: min(2.083332vw, 40px);
  font-size: min(1.2499992vw, 24px);
  font-weight: 500;
  line-height: 1.85;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-teacher .teacher-bio {
    margin-top: 5.9999985vw;
    font-size: 3.7333324vw;
    font-weight: 400;
    line-height: 1.5;
  }
}
#fes-workshop .ws-card .ws-price {
  margin-top: min(2.8645815vw, 55px);
  padding: min(1.4583324vw, 28px) 0;
  border-top: 1px solid rgba(106, 69, 40, 0.6);
  border-bottom: 1px solid rgba(106, 69, 40, 0.6);
  font-size: min(2.083332vw, 40px);
  font-weight: 700;
}
#fes-workshop .ws-card .ws-price span {
  font-size: min(1.1458326vw, 22px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-price {
    margin-top: 9.333331vw;
    padding: 4.6666655vw 0;
    font-size: 5.5999986vw;
  }
  #fes-workshop .ws-card .ws-price span {
    font-size: 3.7333324vw;
  }
}
#fes-workshop .ws-card .ws-dates {
  margin-top: min(2.3437485vw, 45px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-dates {
    margin-top: 6.666665vw;
  }
}
#fes-workshop .ws-card .ws-date {
  margin-top: min(1.8229155vw, 35px);
  color: #48779E;
  font-size: min(1.7708322vw, 34px);
  font-weight: 700;
  line-height: 1.4;
}
#fes-workshop .ws-card .ws-date:first-child {
  margin-top: 0;
}
#fes-workshop .ws-card .ws-date span {
  display: block;
  font-size: min(1.2499992vw, 24px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-date {
    margin-top: 6.666665vw;
    font-size: 5.5999986vw;
  }
  #fes-workshop .ws-card .ws-date span {
    font-size: 3.7333324vw;
  }
}
#fes-workshop .ws-card .ws-reserve {
  margin-top: min(2.8645815vw, 55px);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-reserve {
    margin-top: 7.999998vw;
  }
}
#fes-workshop .ws-card .ws-reserve a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(16.145823vw, 310px);
  height: min(4.5833304vw, 88px);
  margin: 0 auto;
  background: #6F9BC1;
  color: #fff;
  font-size: min(1.3541658vw, 26px);
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-reserve a {
    width: 42.5333227vw;
    height: 11.7333304vw;
    font-size: 4.2666656vw;
    font-weight: 900;
  }
}
#fes-workshop .ws-card .ws-reserve a::before {
  content: "";
  position: absolute;
  inset: min(0.2604165vw, 5px);
  border: 1px solid rgba(255, 255, 255, 0.8);
}
@media screen and (max-width: 767px) {
  #fes-workshop .ws-card .ws-reserve a::before {
    inset: 0.6666665vw;
  }
}

/* fes-campaign */
#fes-campaign {
  background: #FFFFFF;
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  #fes-campaign {
    padding-bottom: 11.999997vw;
  }
}
#fes-campaign .divider {
  width: 100%;
}
#fes-campaign .campaign-visual {
  margin-top: min(4.166664vw, 80px);
}
@media screen and (max-width: 767px) {
  #fes-campaign .campaign-visual {
    margin-top: 10.666664vw;
  }
}
#fes-campaign .campaign-visual img {
  width: 100%;
}
#fes-campaign .cs-title {
  margin-top: min(0.520833vw, 10px);
  font-size: min(2.083332vw, 40px);
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #fes-campaign .cs-title {
    margin-top: 2.666666vw;
    font-size: 5.5999986vw;
  }
}
#fes-campaign .cs-sub {
  margin-top: min(0.7812495vw, 15px);
  font-size: min(1.4583324vw, 28px);
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  #fes-campaign .cs-sub {
    margin-top: 1.9999995vw;
    font-size: 3.7333324vw;
  }
}
#fes-campaign .cs-body {
  width: min(33.333312vw, 640px);
  margin: min(2.3437485vw, 45px) auto 0;
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
  line-height: 2;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-campaign .cs-body {
    width: 85.333312vw;
    margin-top: 6.666665vw;
    font-size: 3.7333324vw;
  }
}
#fes-campaign .cs-notes {
  width: min(33.333312vw, 640px);
  margin: min(1.562499vw, 30px) auto 0;
  font-size: min(1.2499992vw, 24px);
  line-height: 1.9;
  text-align: left;
}
@media screen and (max-width: 767px) {
  #fes-campaign .cs-notes {
    width: 85.333312vw;
    margin-top: 3.999999vw;
    font-size: 3.1999992vw;
  }
}

/* fes-present */
#fes-present {
  background: #FFFFFF;
  padding: min(4.3229139vw, 83px) 0 min(7.812495vw, 150px);
}
@media screen and (max-width: 767px) {
  #fes-present {
    padding: 11.1999972vw 0 14.666663vw;
  }
}
#fes-present .divider {
  width: 100%;
  margin: 0 0 min(4.9479135vw, 95px);
}
@media screen and (max-width: 767px) {
  #fes-present .divider {
    margin: 0 0 12.2666636vw;
  }
}
#fes-present .present-bn {
  width: min(38.541642vw, 740px);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #fes-present .present-bn {
    width: 99.999975vw;
  }
}

/* fes-infomation */
#fes-infomation {
  background: #E9E2BB;
  padding-bottom: min(4.687497vw, 90px);
}
@media screen and (max-width: 767px) {
  #fes-infomation {
    padding-bottom: 11.999997vw;
  }
}
#fes-infomation .divider {
  width: 100%;
}
#fes-infomation .info-notes {
  margin-top: min(4.687497vw, 90px);
  font-size: min(0.8333328vw, 16px);
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-notes {
    width: 85.333312vw;
    margin: 7.999998vw auto 0;
    font-size: 2.1333328vw;
    line-height: 1.625;
    text-align: left;
  }
}
#fes-infomation .info-sns {
  width: min(34.9999776vw, 672px);
  margin: min(6.249996vw, 120px) auto 0;
  padding: min(2.083332vw, 40px) 0 min(1.562499vw, 30px);
  border-left: 1px solid #6A4528;
  border-right: 1px solid #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns {
    width: 89.5999776vw;
    margin-top: 15.999996vw;
    padding: 5.333332vw 0 3.999999vw;
  }
}
#fes-infomation .info-sns .sns-title {
  font-size: min(1.4583324vw, 28px);
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns .sns-title {
    font-size: 3.4666658vw;
  }
}
#fes-infomation .info-sns .sns-title .en-font {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(1.562499vw, 30px);
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns .sns-title .en-font {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 5.0666654vw;
  }
}
#fes-infomation .info-sns .sns-list {
  display: flex;
  justify-content: center;
  gap: min(2.3437485vw, 45px);
  margin-top: min(1.8229155vw, 35px);
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns .sns-list {
    gap: 5.9999985vw;
    margin-top: 4.6666655vw;
  }
}
#fes-infomation .info-sns .sns-item img {
  width: min(3.2291646vw, 62px);
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns .sns-item img {
    width: 8.2666646vw;
  }
}
#fes-infomation .info-sns .notice {
  margin-top: min(0.7812495vw, 15px);
}
@media screen and (max-width: 767px) {
  #fes-infomation .info-sns .notice {
    margin-top: 1.9999995vw;
  }
}

/* fes-sponsor */
#fes-sponsor {
  background: #FFFFFF;
  padding: min(7.812495vw, 150px) 0 min(13.8020745vw, 265px);
}
@media screen and (max-width: 767px) {
  #fes-sponsor {
    padding: 10.666664vw 0 14.666663vw;
  }
}
#fes-sponsor .sponsor-head {
  font-family: "Margherita-semibold", sans-serif;
  font-size: min(1.8749988vw, 36px);
  color: #6A4528;
}
@media screen and (max-width: 767px) {
  #fes-sponsor .sponsor-head {
    font-family: "Margherita-semibold", sans-serif;
    font-size: 5.5999986vw;
  }
}
#fes-sponsor .zef {
  width: min(12.7083252vw, 244px);
  margin: min(3.645831vw, 70px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-sponsor .zef {
    width: 42.666656vw;
    margin-top: 3.999999vw;
  }
}
#fes-sponsor .produced-by {
  margin-top: min(9.1145775vw, 175px);
}
@media screen and (max-width: 767px) {
  #fes-sponsor .produced-by {
    margin-top: 22.666661vw;
  }
}
#fes-sponsor .cafesnap {
  width: min(10.937493vw, 210px);
  margin: min(4.166664vw, 80px) auto 0;
}
@media screen and (max-width: 767px) {
  #fes-sponsor .cafesnap {
    width: 47.999988vw;
    margin-top: 3.999999vw;
  }
}

/* ===== scroll reveal（scroll_reveal.js が .js-reveal を付与。JS無効時は通常表示） ===== */
.js-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.js-reveal.is-view {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .js-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/*# sourceMappingURL=style.css.map */
