/* font */

@font-face {
  font-family: 'LINESeedJP OTF';
  font-weight: 300;
  src: url('../font/LINESeedJP_OTF_Rg.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'LINESeedJP OTF';
  font-weight: 700;
  src: url('../font/LINESeedJP_OTF_Bd.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'LINESeedJP OTF';
  font-weight: 800;
  src: url('../font/LINESeedJP_OTF_Eb.woff2') format('woff2');
  font-display: swap;
}

/* -------------------------------------------
 ベース
------------------------------------------- */
/* 変数 */
:root {
  --font-base: 'LINESeedJP OTF', sans-serif;
  --font-nav: 'LINESeedJP OTF', sans-serif;
}

html {
  scroll-behavior: smooth;
}

a:hover {
  opacity: 0.7;
}

address {
  font-style: normal;
}

/* 調整 */
.sns {
  z-index: 1;
}

/* -------------------------------------------
 mein-container
------------------------------------------- */

.mein-container {
  position: relative;
  font-family: var(--font-base);
  color: #000000;
  background: #fff;
  padding-top: 64px;
  font-feature-settings: 'palt';
  word-break: keep-all;
  overflow-wrap: break-word;
  letter-spacing: 0.05em;
}

main.mein-container__inner {
  max-width: 1300px;
  margin-block: 0;
  padding-block: clamp(32px, calc(32px + (79 - 32) * (100vw - 375px) / (1300 - 375)), 79px);
}

@media (max-width: 768px) {
  .mein-container {
    padding-top: calc(64px + 60px);
    background: #d11320;
  }
}


@media (max-width: 428px) {
  .mein-container {
    padding-top: calc(48px + 60px);
  }
}

/* -------------------------------------------
 nav
------------------------------------------- */

.nav__switch {
  display: none;
}

.nav__content {
  color: #fff;
  font-family: var(--font-nav);
  line-height: 1.2;
  letter-spacing: 0.1em;
  display: flex;
}

.nav__item {
  font-weight: bold;
}


@media (min-width: 769px) {
  [id^='n_'] {
    scroll-margin-top: calc(75px + 64px);
  }

  .nav {
    top: 64px;
    position: sticky;
    z-index: 50;
    width: 100%;
    background: #d11320;
    display: flex;
    font-size: clamp(18px, calc(18px + (32 - 18) * (100vw - 375px) / (1300 - 375)), 32px);
    height: 75px;
    padding: 0.3em 1em;
    align-items: center;
    box-sizing: border-box;
  }

  .nav__content {
    position: relative;
    width: 100%;
    margin-inline: auto;
    max-width: 800px;
    gap: 2em;
  }

  .nav__item {
    display: block;
    text-align: center;
    position: relative;
    flex: 1;

    &:not(:last-child)::after {
      content: "";
      width: 5px;
      height: 0.8em;
      display: block;
      position: absolute;
      top: 0.2em;
      background: #fff;
      left: calc(100% + (1em - 1.5px));
    }
  }

  .nav__item:hover {
    color: #ffffff44;
  }
}

@media (max-width: 768px) {
  [id^='n_'] {
    scroll-margin-top: 64px;
  }

  .nav {
    top: 64px;
  }

  .nav__logo {
    display: none;
  }

  .nav__content {
    background: #d11320;
    position: fixed;
    font-size: 24px;
    flex-direction: column;
    align-items: center;
    gap: 1em;
    padding-block: 64px 1em;
    padding-inline: 1em;
    height: calc(100vh - 64px);
    height: calc(100dvh - 64px);
    width: 80%;
    top: 64px;
    right: 0;
    transform: translateX(100%);
    transition: all 0.5s;
    z-index: 51;
    text-align: center;
  }

  .nav__switch:checked~.nav__content {
    transform: translateX(0%);
  }

  .nav__bg {
    background: #00000048;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 64px;
    left: 0;
    opacity: 0;
    transition: all 0.5s;
    pointer-events: none;
    z-index: 50;
    backdrop-filter: blur(2px);
  }

  .nav__switch:checked~.nav__bg {
    opacity: 1;
    pointer-events: all;
  }

  .nav__hamburger {
    background: #d11320;
    width: 50px;
    display: block;
    height: 50px;
    margin-left: auto;
    position: fixed;
    top: calc(64px + 5px);
    right: 5px;
    z-index: 52;
  }

  .nav__hamburger::before,
  .nav__hamburger::after {
    content: '';
  }

  .nav__hamburger .nav__hamburger-equipment,
  .nav__hamburger::before,
  .nav__hamburger::after {
    width: 30px;
    display: block;
    height: 3px;
    border-radius: 3px;
    background-color: #fff;
    transition: 0.3s;
    left: 10px;
    position: absolute;
  }

  .nav__hamburger::before {
    top: 12px;
  }

  .nav__hamburger .nav__hamburger-equipment {
    top: calc(50% - 1.5px);
  }

  .nav__hamburger::after {
    top: calc(100% - 15px);
  }

  .nav__switch:checked~.nav__hamburger::before {
    transform: rotate(45deg);
    top: calc(50% - 1.5px);
  }

  .nav__switch:checked~.nav__hamburger .nav__hamburger-equipment {
    opacity: 0;
  }

  .nav__switch:checked~.nav__hamburger::after {
    transform: rotate(-45deg);
    top: calc(50% - 1.5px);
  }

  /* ナビゲーションメニューオープン時スクロール不可 */
  html:has(.nav__switch:checked) {
    overflow: hidden;
  }
}

@media (max-width: 428px) {
  [id^='n_'] {
    scroll-margin-top: 48px;
  }

  .nav__hamburger {
    top: calc(48px + 5px);
  }

  .nav__content {
    height: calc(100vh - 48px);
    height: calc(100dvh - 48px);
    top: 48px;
  }

  .nav__bg {
    top: 48px;
  }
}

/* -------------------------------------------
 main-header
------------------------------------------- */
.main-header {
  position: relative;
  width: 100%;
}

/* -------------------------------------------
 long-btn
------------------------------------------- */
.long-btn {
  background: #dc211c;
  color: #fff;
  font-size: clamp(20px, calc(20px + (40 - 20) * (100vw - 375px) / (1300 - 375)), 40px);
  text-align: center;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 1.2;
  padding: 0.3em 1em;
}

.long-btn::after {
  content: '';
  display: inline-block;
  width: 1em;
  height: 1em;
  background: no-repeat center center/auto 0.6em url(../images/icon-arrow-right.svg);
}

.long-btn__emphasis {
  color: #fff900;
}

/* -------------------------------------------
 ttl
------------------------------------------- */

/* ttl ------------------------------------------- */
.ttl {
  background: #d11320;
  color: #fff100;
  text-align: center;
  font-weight: 800;
  font-size: clamp(18px, calc(18px + (32 - 18) * (100vw - 375px) / (1300 - 375)), 32px);
  display: flex
;
  justify-content: center;
  align-items: center;
  line-height: 1.2;
  padding: 0.3em 1em;
  column-gap: 1em;
  flex-wrap: wrap;
}

.ttl--small {
  font-size: clamp(16px, calc(16px + (24 - 16) * (100vw - 375px) / (1300 - 375)), 24px);
}

.ttl__sub {
  font-size: max(0.56em, 11px);
}

/* ttl-secondary ------------------------------------------- */
.ttl-secondary {
  background: #b7de3f;
  font-size: clamp(16px, calc(16px + (32 - 16) * (100vw - 375px) / (1300 - 375)), 32px);
  line-height: 1.2;
  padding: 0.4em 0.5em;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.3em;
}

.ttl-secondary--color-02 {
  background: #00c4dd;
}

.ttl-secondary--color-03 {
  background: #ffc300;
}

.ttl-secondary--color-04 {
  background: #ff84c4;
}

.ttl-secondary--color-05 {
  background: #c99cf1;
}

.ttl-secondary__announce {
  border: 1px solid;
  font-size: max(0.6em, 11px);
  padding: 0.3em 0.5em;
  min-width: 7em;
  text-align: center;
}

/* -------------------------------------------
 btn
------------------------------------------- */
.btn {
  /* border: 2px solid #000; */
  font-weight: bold;
  display: flex;
  line-height: 1.2;
  width: 100%;
  max-width: 560px;
  margin-inline: auto;
  border-radius: 999px;
  min-height: 64px;
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
  padding: 0.3em 1em;
  /* box-shadow: 0px 4px 4px 0px #00000040; */
  align-items: center;
  justify-content: center;
  gap: 0.3em;
  text-align: center;
  background: #d11320;
  color: #fff;
}

.btn--icon-game{
  font-size: clamp(16px, calc(16px + (37 - 16) * (100vw - 375px) / (1300 - 375)), 37px);
  max-width: 760px;
  background: no-repeat left 0.8em center/1em auto url(../images/icon-controller.svg),#d11320;
  padding-inline: 1em;
}

@media (max-width: 768px) {
  .btn {
    min-height: 44px;
  }

}


/* btn-x ------------------------------------------- */
.btn-x {
  background: no-repeat left top 30% / 20% url(../images/picture-melon-fukuoka-02.webp), no-repeat right 8% center / min(10%, 3em) auto url(../images/icon-x-black.webp), #ffef00;
  min-height: 120px;
  display: flex;
  box-shadow: 0px 4px 4px 0px #00000040;
  border: 1px solid#000;
  border-radius: 9999px;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
  line-height: 1.2;
  padding-block: 1em;
  padding-inline: 20%;
}

.btn-x__inner {
  width: fit-content;
  margin-inline: auto;
  padding-right: 2em;
  background: no-repeat right center / 1em url(../images/icon-circle-arrow-right.svg);
}

.btn-x__text {
  font-weight: bold;

  &:not(:last-child) {
    padding-bottom: 0.5em;
  }
}

.btn-x__text--small {
  font-size: clamp(12px, calc(12px + (16 - 12) * (100vw - 375px) / (1300 - 375)), 16px);
}

@media (max-width: 768px) {

  .btn-x {
    min-height: 60px;
  }
}


/* -------------------------------------------
 main-section
------------------------------------------- */

.main-section__inner {
  padding-block: clamp(32px, calc(32px + (55 - 32) * (100vw - 375px) / (1300 - 375)), 55px);
  width: 95%;
  max-width: 1080px;
  margin-inline: auto;
}

.main-section__inner--top-padding-none {
  padding-top: 0;
}

.main-section__text {
  text-align: center;
  line-height: 1.5;
  font-size: clamp(16px, calc(16px + (37 - 16) * (100vw - 375px) / (1300 - 375)), 37px);
}

.main-section__text--large{
  font-size: clamp(18px, calc(18px + (50 - 18) * (100vw - 375px) / (1300 - 375)), 50px);
}

.main-section__text--bold{
  font-weight: 700;
}


.main-section__text--extra-bold{
  font-weight:800
}

.main-section__text-tax {
  font-size: max(0.6em, 11px);
}

.main-section__text--padding-top{
  padding-top: 1em;
}

.main-section__text--padding{
  padding-block: 1em;
}

.main-section__attention {
  text-align: center;
  line-height: 1.8;
  font-size: clamp(11px, calc(11px + (16 - 11) * (100vw - 375px) / (1300 - 375)), 16px);
}

.main-section__attention--bottom-padding{
  padding-bottom: max(5%,16px)
}

.main-section__attention--bottom-padding-large {
  padding-bottom: clamp(20px, 8%, 70px);
}

.main-section__sample-area{
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-inline: auto;
  padding-block: max(3%,15px) max(6%,32px);
}

.main-section__sample{
  max-width: 400px;
}

.main-section__emphasis {
  color: #dc211c;
}




/* -------------------------------------------
   sub-section
  ------------------------------------------- */
.sub-section {
  border: 1px solid #000;
  margin-bottom: clamp(32px, calc(32px + (55 - 32) * (100vw - 375px) / (1300 - 375)), 55px);
}

.sub-section__inner {
  width: 95%;
  max-width: 960px;
  margin-inline: auto;
  padding-block: clamp(22px, 5%, 55px);
}

.sub-section__ttl {
  background: #000;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: clamp(20px, calc(20px + (32 - 20) * (100vw - 375px) / (1300 - 375)), 32px);
  line-height: 1.2;
  padding: 0.3em 0.5em;
}

.sub-section__text {
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
  text-align: center;
  line-height: 1.5;

  &:not(:last-child) {
    padding-bottom: 1em;
  }
}

.sub-section__text--bold {
  font-weight: bold;
}

.sub-section__attention {
  font-size: clamp(14px, calc(14px + (16 - 14) * (100vw - 375px) / (1300 - 375)), 16px);
  text-align: center;
  padding: 1em;
}

.sub-section__attention--bottom-padding-none {
  padding-bottom: 0;
}

.sub-section__attention-text {
  line-height: 1.4;
}

.sub-section__attention--emphasis {
  font-weight: bold;
  color: #dc211c;
  border: 1px solid #dc211c;
}

.sub-section__emphasis {
  color: #dc211c;
}

/* section-2column ------------------------------------------- */

.section-2column {
  display: grid;
}


@media (min-width: 769px) {
  .section-2column {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .section-2column {
    gap: 14px;
  }
}

/* -------------------------------------------
   period
  ------------------------------------------- */
  .period{
    background: #dcdddd;
    color: #000;
    font-weight: 800;
    font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
    text-align: center;
    line-height: 1.2;
    padding: 0.3em 1em;
    letter-spacing: 0.1em;
  }

/* -------------------------------------------
 catch
------------------------------------------- */
.catch {
  background: #d11320;
  font-weight: 800;
  line-height: 1.2;
  padding: clamp(14px, calc(14px + (32 - 14) * (100vw - 375px) / (1300 - 375)), 32px) clamp(20px, calc(20px + (47 - 20) * (100vw - 375px) / (1300 - 375)), 47px);
}

.catch--fair {
  background: no-repeat right center /auto 100% url(../images/bg-ttl-melon-01.webp), #d11320;
}

.catch--goods {
  background: no-repeat right center /auto 100% url(../images/bg-ttl-melon-02.webp), #d11320;
}

.catch__sub-text {
  color: #fff;
  font-size: clamp(14px, calc(14px + (49 - 14) * (100vw - 375px) / (1300 - 375)), 49px);
}

.catch__sub-text:has(.catch__supplement) {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  width: fit-content;
}


.catch__sub-text--large {
  font-size: clamp(16px, calc(16px + (42 - 16) * (100vw - 375px) / (1300 - 375)), 42px);
}

.catch__main-text {
  color: #fff;
  font-size: clamp(22px, calc(22px + (72 - 22) * (100vw - 375px) / (1300 - 375)), 72px);
}

.catch__main-text--large {
  font-size: clamp(26px, calc(26px + (107 - 26) * (100vw - 375px) / (1300 - 375)), 107px);
}

.catch__sub-text,.catch__main-text{
  text-shadow: rgb(209, 19, 32) 3px 0px 0px, rgb(209, 19, 32) 2.83487px 0.981584px 0px, rgb(209, 19, 32) 2.35766px 1.85511px 0px, rgb(209, 19, 32) 1.62091px 2.52441px 0px, rgb(209, 19, 32) 0.705713px 2.91581px 0px, rgb(209, 19, 32) -0.287171px 2.98622px 0px, rgb(209, 19, 32) -1.24844px 2.72789px 0px, rgb(209, 19, 32) -2.07227px 2.16926px 0px, rgb(209, 19, 32) -2.66798px 1.37182px 0px, rgb(209, 19, 32) -2.96998px 0.42336px 0px, rgb(209, 19, 32) -2.94502px -0.571704px 0px, rgb(209, 19, 32) -2.59586px -1.50383px 0px, rgb(209, 19, 32) -1.96093px -2.27041px 0px, rgb(209, 19, 32) -1.11013px -2.78704px 0px, rgb(209, 19, 32) -0.137119px -2.99686px 0px, rgb(209, 19, 32) 0.850987px -2.87677px 0px, rgb(209, 19, 32) 1.74541px -2.43999px 0px, rgb(209, 19, 32) 2.44769px -1.73459px 0px, rgb(209, 19, 32) 2.88051px -0.838247px 0px;
}

.catch__supplement {
  margin-left: auto;
  order: 0;
  font-size: clamp(10px, calc(10px + (16 - 10) * (100vw - 375px) / (1300 - 375)), 16px);
}



.catch__emphasis {
  color: #fff000;
}

.catch__large {
  font-size: clamp(26px, calc(26px + (107 - 26) * (100vw - 375px) / (1300 - 375)), 107px);
}

@media (min-width: 769px) {
  .catch {
    min-height: 240px;
    display: flex;
    align-items: center;
  }

  .catch__sub-text,.catch__main-text{
    text-shadow: rgb(209, 19, 32) 6px 0px 0px, rgb(209, 19, 32) 5.91686px 0.995377px 0px, rgb(209, 19, 32) 5.66974px 1.96317px 0px, rgb(209, 19, 32) 5.2655px 2.87655px 0px, rgb(209, 19, 32) 4.71532px 3.71022px 0px, rgb(209, 19, 32) 4.03447px 4.44106px 0px, rgb(209, 19, 32) 3.24181px 5.04883px 0px, rgb(209, 19, 32) 2.35931px 5.51667px 0px, rgb(209, 19, 32) 1.41143px 5.83163px 0px, rgb(209, 19, 32) 0.424423px 5.98497px 0px, rgb(209, 19, 32) -0.574341px 5.97245px 0px, rgb(209, 19, 32) -1.55719px 5.79441px 0px, rgb(209, 19, 32) -2.49688px 5.45578px 0px, rgb(209, 19, 32) -3.36738px 4.96596px 0px, rgb(209, 19, 32) -4.14455px 4.33852px 0px, rgb(209, 19, 32) -4.80686px 3.59083px 0px, rgb(209, 19, 32) -5.33596px 2.74364px 0px, rgb(209, 19, 32) -5.71718px 1.8204px 0px, rgb(209, 19, 32) -5.93995px 0.84672px 0px, rgb(209, 19, 32) -5.99811px -0.150428px 0px, rgb(209, 19, 32) -5.89004px -1.14341px 0px, rgb(209, 19, 32) -5.61874px -2.1047px 0px, rgb(209, 19, 32) -5.19172px -3.00766px 0px, rgb(209, 19, 32) -4.62082px -3.82727px 0px, rgb(209, 19, 32) -3.92186px -4.54081px 0px, rgb(209, 19, 32) -3.11421px -5.12852px 0px, rgb(209, 19, 32) -2.22026px -5.57409px 0px, rgb(209, 19, 32) -1.26477px -5.86518px 0px, rgb(209, 19, 32) -0.274238px -5.99373px 0px, rgb(209, 19, 32) 0.723898px -5.95617px 0px, rgb(209, 19, 32) 1.70197px -5.75355px 0px, rgb(209, 19, 32) 2.63288px -5.39147px 0px, rgb(209, 19, 32) 3.49082px -4.87998px 0px, rgb(209, 19, 32) 4.25202px -4.23324px 0px, rgb(209, 19, 32) 4.89538px -3.46919px 0px, rgb(209, 19, 32) 5.40307px -2.60899px 0px, rgb(209, 19, 32) 5.76102px -1.67649px 0px, rgb(209, 19, 32) 5.95932px -0.697531px 0px;
  }
}

/* -------------------------------------------
 fair
------------------------------------------- */
.fair {
  padding-block: clamp(18px, calc(18px + (50 - 18) * (100vw - 375px) / (1300 - 375)), 50px);
  display: grid;
}

.fair__lead {
  line-height: 1.5;
  font-weight: 800;
  font-size: clamp(20px, calc(20px + (40 - 20) * (100vw - 375px) / (1300 - 375)), 40px);
}

.fair__lead-emphasis {
  color: #df0000;
}

.fair__info {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.fair__detail {
  line-height: 1.8;
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
}

.fair__btn {
  width: 100%;

  &.btn {
    margin-inline: 0;
    max-width: 560px;
  }
}

.fair__text:not(:last-child) {
  padding-bottom: 0.5em;
}

.fair__attention {
  font-size: clamp(12px, calc(12px + (20 - 12) * (100vw - 375px) / (1300 - 375)), 20px);
  line-height: 1.5;
}

.fair__first-arrival {
  background: #000;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.3em;
  width: 100%;
  max-width: 560px;
  padding: 0.2em 1em;
  line-height: 1.2;
  font-size: clamp(20px, calc(20px + (40 - 20) * (100vw - 375px) / (1300 - 375)), 40px);
}

.fair__first-arrival-text {
  font-weight: bold;
}

.fair__first-arrival-emphasis {
  color: #fff900;
}

.fair__first-arrival-attention {
  font-size: clamp(12px, calc(12px + (16 - 12) * (100vw - 375px) / (1300 - 375)), 16px);
}

.fair__img-area {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.fair__img-wrap--large {
  grid-column: 2 span;
}

.fair__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (min-width: 769px) {
  .fair {
    grid-template-columns: 55% auto;
    grid-template-rows: auto 1fr;
    column-gap: 67px;
    row-gap: 16px;
  }

  .fair__info {
    grid-column: 1/2;
    grid-row: 2/3;
  }

  .fair__img-area {
    grid-row: 2 span;
    gap: 32px;
  }
}

@media (max-width: 768px) {
  .fair {
    grid-template-columns: 1fr;
    gap: 16px;
    text-align: center;
  }

  .fair__info {
    align-items: center;
  }

  .fair__img-area {
    gap: 10px;
  }
}

/* fair-catch ------------------------------------------- */

.fair-catch {
  padding-block: max(3%, 14px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  font-size: clamp(22px, calc(22px + (40 - 22) * (100vw - 375px) / (1300 - 375)), 40px);
  gap: 0.5em;
}

.fair-catch--coupon {
  width: fit-content;
  margin-inline: auto;
  padding-bottom: 0.5em;
  margin-bottom: clamp(18px, calc(18px + (35 - 18) * (100vw - 375px) / (1300 - 375)), 35px);
  background: no-repeat right bottom/auto 1.5em url(../images/decoration-coupon.webp);
}

.fair-catch__sub-text {
  background: #dc211c;
  color: #fff900;
  font-weight: bold;
  line-height: 1.2;
  padding: 0.5em 2em 0.3em;
  display: flex;
  font-size: clamp(14px, calc(14px + (22 - 14) * (100vw - 375px) / (1300 - 375)), 22px);
  align-items: center;
}

.fair-catch__main-text {
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
}

.fair-catch__main-text--thin {
  font-weight: bold;
}

.fair-catch__emphasis {
  color: #dc211c;
}

/* fair-description ------------------------------------------- */
.fair-description {
  padding-inline: 10%;
  margin-bottom: clamp(18px, calc(18px + (35 - 18) * (100vw - 375px) / (1300 - 375)), 35px);
}

.fair-description--festival {
  background: no-repeat left bottom/10% auto url(../images/decoration-uchiwa-left.svg),
    no-repeat right bottom/10% auto url(../images/decoration-uchiwa-right.svg);
}

.fair-description--plastic-bag {
  margin-top: clamp(14px, calc(14px + (20 - 14) * (100vw - 375px) / (1300 - 375)), 20px);
  background: no-repeat left top/10% auto url(../images/decoration-plastic-bag-left.webp),
    no-repeat right top/10% auto url(../images/decoration-plastic-bag-right.webp);
}

.fair-description__text {
  text-align: center;
  padding-block: 1em;
  line-height: 1.5;
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
}

.fair-description__text--top-padding-none {
  padding-top: 0;
}

/* fair-detail ------------------------------------------- */
.fair-detail {
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
  text-align: center;

}

.fair-detail--padding {
  padding-block: 2em 1em;
}

.fair-detail--secondary {
  .fair-detail__ttl {
    background: #dc211c;
    color: #fff;
  }

  .fair-detail__description {
    color: #dc211c;
  }
}

.fair-detail__ttl {
  font-weight: bold;
  line-height: 1.2;
  padding: 0.2em 1em;
  background: #e6e7e7;
}

.fair-detail__description {
  padding: 1em 1em;
  line-height: 1.5;
}


.fair-detail__description-text:not(:last-child) {
  padding-bottom: 0.5em;
}

@media (min-width: 769px) {
  .fair-detail__description--justify {
    width: fit-content;
    margin-inline: auto;
    text-align: justify;
    text-align-last: justify;
  }
}

/* -------------------------------------------
   card
  ------------------------------------------- */
/* card-list ------------------------------------------- */
.card-list {
  display: grid;
}

@media (min-width: 769px) {
  .card-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .card-list {
    gap: 14px;
  }
}

/* card ------------------------------------------- */

.card {
  border: 1px solid #000;
  row-gap: clamp(14px, 5vw, 30px);
  display: grid;
  grid-template-columns: 1fr;
  /* padding-bottom: clamp(14px, 5%, 30px); */
  grid-template-rows: subgrid;
  grid-row: span 4;
  position: relative;
}

.card--border-none {
  border: 0;
}

.card:has(.card__batch ){
  gap: 14px;
  /* padding-bottom: clamp(18px, 10%, 40px); */
}

.card__batch {
margin-left: auto;
  width: 30%;  
  padding: 3% 3% 5%;
  text-align: right;
  font-size: clamp(20px, calc(20px + (27 - 20) * (100vw - 375px) / (1300 - 375)), 27px);
height: 2.5em;
position: relative;

  &::after{
    content: "";
    display: block;
    background: #d11320;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 0);

  }
}

.card__batch-text{
 color: #fff;
 font-weight: 800;
 position: relative;
 z-index: 1;
 text-shadow: rgb(209, 19, 32) 5px 0px 0px, rgb(209, 19, 32) 4.90033px 0.993347px 0px, rgb(209, 19, 32) 4.60531px 1.94709px 0px, rgb(209, 19, 32) 4.12668px 2.82321px 0px, rgb(209, 19, 32) 3.48353px 3.58678px 0px, rgb(209, 19, 32) 2.70151px 4.20736px 0px, rgb(209, 19, 32) 1.81179px 4.6602px 0px, rgb(209, 19, 32) 0.849836px 4.92725px 0px, rgb(209, 19, 32) -0.145998px 4.99787px 0px, rgb(209, 19, 32) -1.13601px 4.86924px 0px, rgb(209, 19, 32) -2.08073px 4.54649px 0px, rgb(209, 19, 32) -2.94251px 4.04248px 0px, rgb(209, 19, 32) -3.68697px 3.37732px 0px, rgb(209, 19, 32) -4.28444px 2.57751px 0px, rgb(209, 19, 32) -4.71111px 1.67494px 0px, rgb(209, 19, 32) -4.94996px 0.7056px 0px, rgb(209, 19, 32) -4.99147px -0.291871px 0px, rgb(209, 19, 32) -4.83399px -1.27771px 0px, rgb(209, 19, 32) -4.48379px -2.2126px 0px, rgb(209, 19, 32) -3.95484px -3.05929px 0px, rgb(209, 19, 32) -3.26822px -3.78401px 0px, rgb(209, 19, 32) -2.4513px -4.35788px 0px, rgb(209, 19, 32) -1.53666px -4.75801px 0px, rgb(209, 19, 32) -0.560763px -4.96845px 0px, rgb(209, 19, 32) 0.437495px -4.98082px 0px, rgb(209, 19, 32) 1.41831px -4.79462px 0px, rgb(209, 19, 32) 2.34258px -4.41727px 0px, rgb(209, 19, 32) 3.17346px -3.86382px 0px, rgb(209, 19, 32) 3.87783px -3.15633px 0px, rgb(209, 19, 32) 4.4276px -2.32301px 0px, rgb(209, 19, 32) 4.80085px -1.39708px 0px, rgb(209, 19, 32) 4.98271px -0.415447px 0px;
}

.card__notation{
  width: fit-content;
  font-size: clamp(14px, calc(14px + (21 - 14) * (100vw - 375px) / (1300 - 375)), 21px);
color: #d11320;
border: 1px solid;
margin-top: 5%;
padding: 0.5em 1em;
margin-inline: auto;
line-height: 1.2;
}

.card__header {
  background: #000;
  color: #fff;
  font-weight: bold;
  font-size: clamp(20px, calc(20px + (32 - 20) * (100vw - 375px) / (1300 - 375)), 32px);
  text-align: center;
  line-height: 1.2;
  padding: 0.2em 0.5em;
}

.card__process {
  display: grid;
  grid-template-columns: 1.2em auto;
  font-weight: bold;
  border: 1px solid #000;
  font-size: clamp(21px, calc(21px + (36 - 21) * (100vw - 375px) / (1300 - 375)), 36px);
}

.card__process-type {
  text-align: center;
  background: #000;
  color: #fff;
  display: flex;
  line-height: 1;
  justify-content: center;
  align-items: center;
}

.card__process-detail {
  text-align: center;
  font-size: clamp(14px, calc(14px + (24 - 14) * (100vw - 375px) / (1300 - 375)), 24px);
  line-height: 1.2;
  padding: 0.5em 1em;
}


.card__sample-area {
  width: calc(100% - (clamp(14px, 5%, 30px) * 2));
  margin-inline: auto;
  display: flex;
  gap: 5px;
  justify-content: center;
  align-items: center;
  position: relative;
}

.card__sample-area--full-wide {
  width: 100%;
}

.card__sample {
  width: 80%;
  max-height: 288px;
  aspect-ratio: 1/1;
  position: relative;
}

.card__sample--wide{
  width: 100%;
  aspect-ratio: 239/113;
}

.card__sample-batch {
  position: absolute;
  width: 12%;
  top: 0;
  right: 0;
}


.card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.card__info {
  width: calc(100% - (clamp(14px, 5%, 30px) * 2));
  margin-inline: auto;
  font-size: clamp(14px, calc(14px + (21 - 14) * (100vw - 375px) / (1300 - 375)), 21px);
  text-align: center;
  line-height: 1.3;
  padding-bottom: 1.2em;
}

.card__info-sub-text {
  font-size: max(0.6em, 11px);
}

.card__note {
  width: calc(100% - (clamp(14px, 5%, 30px) * 2));
  margin-inline: auto;
  background: #f5f5f5;
  font-size: clamp(14px, calc(14px + (16 - 14) * (100vw - 375px) / (1300 - 375)), 16px);
  text-align: center;
  padding: 1em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.card__note--full-wide {
  width: 100%;
}

.card__note-text--large {
  font-size: clamp(16px, calc(16px + (18 - 16) * (100vw - 375px) / (1300 - 375)), 18px);
}

.card__note-text--small {
  font-size: clamp(11px, calc(11px + (14 - 11) * (100vw - 375px) / (1300 - 375)), 14px);
}

.card__price {
  width: calc(100% - (clamp(14px, 5%, 30px) * 2));
  margin-inline: auto;
  font-size: clamp(20px, calc(20px + (32 - 20) * (100vw - 375px) / (1300 - 375)), 32px);
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  display: flex;
  padding-inline: 0.5em;
  padding-top: 0.3em;
  border-top: 1px solid #000;
  justify-content: center;
  align-items: baseline;
  margin-top: 0.3em;
}

.card__price-tax {
  font-size: max(0.7em, 11px);
}

@media (min-width: 769px) {
  .card--large {
    grid-column: 2 span;
  }
}

@media (max-width: 768px) {
  .card__content {
    gap: 14px;
  }
}

/* -------------------------------------------
   coming-soon-wrap
  ------------------------------------------- */
.coming-soon-wrap {
  padding-bottom: clamp(14px, 10%, 87px);
  padding-top: clamp(14px, 8%, 58px);
}

.coming-soon {
  font-size: clamp(20px, calc(20px + (36 - 20) * (100vw - 375px) / (1300 - 375)), 36px);
  color: #dc211c;
  text-align: center;
  border: 4px solid #dc211c;
  line-height: 1;
  padding: 0.7em 1.3em;
  width: fit-content;
  margin-inline: auto;
  font-weight: bold;
}

/* card__sampleに設置されたcoming-soon位置調整 */

.card__sample:has(.coming-soon) {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: auto;
  padding-block: max(5%, 14px);
}


/* -------------------------------------------
 limited-goods-list
------------------------------------------- */
.limited-goods-list {
  padding-bottom: max(3%,16px);
}
.limited-goods-list .card {
  grid-row: span 3;
}

@media (min-width: 769px) {
  .limited-goods-list {
    grid-template-columns: repeat(3, 1fr);  
    gap: 10px;  
  }
}
/* -------------------------------------------
 goods-list
------------------------------------------- */

.goods-list {
  padding-top: 3%;
  gap: 14px;
}

.goods-list-2column{
  padding-block:14px 5%;
  gap: 14px;
}

@media (min-width: 769px) {
  .card-list{
    grid-template-columns: repeat(3, 1fr);
  }
  .goods-list-2column{
    grid-template-columns: repeat(2, 1fr);
  }  
}


.goods-list .card {
  padding-top: clamp(14px, 5%, 30px);
  grid-row: span 2 ;
}

.goods-list-2column .card {
  grid-row: span 3;
}


/* -------------------------------------------
 レスポンシブ対応
------------------------------------------- */

@media (min-width: 769px) {
  .sp {
    display: none;
  }
}

@media (max-width: 768px) {
  .pc {
    display: none;
  }
}