@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
:root {
  --font-family-noto-sans-jp: "Noto Sans JP", sans-serif;
  --font-family-museo: "museo-sans", sans-serif;
  --font-family-default: "museo-sans", "Noto Sans JP", sans-serif;
  --color-gold: #796B47;
  --color-dark-navy: #132229;
  --color-sage: #84a8a1;
  --color-yellow: #e7c11e;
  --color-light-gray: #f7f8fa;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-overlay-dark: rgba(0, 0, 0, 0.4);
  --color-overlay-light: rgba(0, 0, 0, 0.2);
  --base-vw: 1280;
  --content-width: min(calc(1120 / 1280 * 100vw), 1120px);
  --max-width: min(calc(1280 / 1280 * 100vw), 1280px);
}

/* ============================
   Reset & Base
   ============================ */
figure, picture, p, h1, h2, h3, h4, h5, h6 {
  margin: 0;
}

br.only-sp {
  display: none;
}
@media (max-width: 768px) {
  br.only-sp {
    display: inline;
  }
}

figure img, picture img {
  width: 100%;
  height: auto;
}

body {
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  color: #000;
}
@media (max-width: 768px) {
  body {
    font-size: min(calc(14 / 402 * 100vw), 14px) !important;
  }
}

/* ============================
   Main Container
   ============================ */
.ekm_main {
  min-height: 100vh;
  font-family: var(--font-family-default);
  margin: 0 auto;
  overflow: hidden;
}

/* ============================
   Common Components
   ============================ */
.ekm_section-title {
  font-family: var(--font-family-museo);
  font-size: min(calc(32 / 1280 * 100vw), 32px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: min(calc(3.2 / 1280 * 100vw), 3.2px);
  text-align: center;
  text-transform: uppercase;
}
.ekm_section-title--sage {
  color: var(--color-sage);
}
.ekm_section-title--white {
  color: var(--color-white);
}
@media (max-width: 768px) {
  .ekm_section-title {
    font-size: min(calc(24 / 402 * 100vw), 24px);
    line-height: 1.333;
    letter-spacing: min(calc(2.4 / 402 * 100vw), 2.4px);
  }
}

.ekm_section-line {
  display: block;
  width: min(calc(32 / 1280 * 100vw), 32px);
  height: 1px;
  margin: min(calc(16 / 1280 * 100vw), 16px) auto 0;
}
.ekm_section-line--sage {
  background-color: var(--color-sage);
}
.ekm_section-line--white {
  background-color: var(--color-white);
}
@media (max-width: 768px) {
  .ekm_section-line {
    width: min(calc(32 / 402 * 100vw), 32px);
    margin-top: min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: min(calc(42 / 1280 * 100vw), 42px);
  min-width: min(calc(250 / 1280 * 100vw), 250px);
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 700;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  color: var(--color-dark-navy);
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.3s ease;
  border: 1px solid transparent;
}
@media (hover: hover) {
  .ekm_btn:hover {
    background-color: var(--color-sage);
    color: var(--color-white) !important;
  }
}
.ekm_btn--yellow {
  background-color: var(--color-yellow);
  color: var(--color-dark-navy) !important;
}
@media (hover: hover) {
  .ekm_btn--yellow:hover {
    background-color: white;
    color: var(--color-dark-navy) !important;
  }
}
.ekm_btn--large {
  width: min(calc(400 / 1280 * 100vw), 400px);
}
@media (max-width: 768px) {
  .ekm_btn {
    height: min(calc(42 / 402 * 100vw), 42px);
    min-width: min(calc(249 / 402 * 100vw), 249px);
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
  }
  .ekm_btn--large {
    width: min(calc(338 / 402 * 100vw), 338px);
  }
}

.ekm_notes-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ekm_notes-list li {
  position: relative;
  padding-left: 1.2em;
}
.ekm_notes-list li::before {
  content: "※";
  position: absolute;
  left: 0;
}
.ekm_notes-list li + li {
  margin-top: min(calc(4 / 1280 * 100vw), 4px);
}
@media (max-width: 768px) {
  .ekm_notes-list li + li {
    margin-top: min(calc(4 / 402 * 100vw), 4px);
  }
}
@media (max-width: 768px) {
  .ekm_notes-list li {
    text-align: left;
  }
}

/* ============================
   sec-fv: ファーストビュー
   ============================ */
.ekm_fv {
  display: flex;
  width: 100%;
  height: auto;
  aspect-ratio: 1280/560;
  position: relative;
}
@media (max-width: 768px) {
  .ekm_fv {
    flex-direction: column-reverse;
    aspect-ratio: unset;
  }
}

.ekm_fv__logo-area {
  width: 41%;
  height: auto;
  flex-shrink: 0;
  position: relative;
  background-color: var(--color-dark-navy);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: min(calc(24 / 1280 * 100vw), 24px);
  padding-block: min(calc(60 / 1280 * 100vw), 60px);
}
.ekm_fv__logo-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/fv_bg.svg") center/cover no-repeat;
}
@media (max-width: 768px) {
  .ekm_fv__logo-area {
    width: 100%;
    height: min(calc(437 / 402 * 100vw), 437px);
    gap: min(calc(24 / 402 * 100vw), 24px);
    padding-block: min(calc(60 / 402 * 100vw), 60px);
  }
}

.ekm_fv__movie-logo {
  width: 44%;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_fv__movie-logo {
    width: min(calc(186 / 402 * 100vw), 186px);
  }
}

.ekm_fv__epiphone-logo {
  width: 44%;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_fv__epiphone-logo {
    width: min(calc(186 / 402 * 100vw), 186px);
  }
}

.ekm_fv__kv {
  flex: 1;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  .ekm_fv__kv {
    flex: none;
    width: 100%;
    aspect-ratio: 402/603;
  }
}

.ekm_fv__kv-main {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .ekm_fv__kv-main {
    height: 100%;
  }
}
.ekm_fv__kv-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ekm_fv__kv-subs {
  position: absolute;
  bottom: 0;
  left: min(calc(40 / 1280 * 100vw), 40px);
  right: min(calc(59 / 1280 * 100vw), 59px);
  display: flex;
  gap: min(calc(16 / 1280 * 100vw), 16px);
  justify-content: space-between;
}
@media (max-width: 768px) {
  .ekm_fv__kv-subs {
    display: none;
  }
}

.ekm_fv__kv-sub {
  width: min(calc(204 / 1280 * 100vw), 204px);
  height: min(calc(136 / 1280 * 100vw), 136px);
}
.ekm_fv__kv-sub img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ============================
   sec-about: ABOUT THE FILM
   ============================ */
.ekm_about {
  position: relative;
  padding-top: min(calc(80 / 1280 * 100vw), 80px);
  padding-bottom: 0;
}
@media (max-width: 768px) {
  .ekm_about {
    padding-top: min(calc(60 / 402 * 100vw), 60px);
  }
}

.ekm_about__inner {
  position: relative;
  max-width: var(--content-width);
  margin: 0 auto;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_about__inner {
    max-width: 100%;
  }
}

.ekm_about__scroll {
  width: min(calc(863 / 1280 * 100vw), 863px);
  height: min(calc(333 / 1280 * 100vw), 333px);
  margin: min(calc(32 / 1280 * 100vw), 32px) auto 0;
  overflow-y: auto;
  position: relative;
}
.ekm_about__scroll::-webkit-scrollbar {
  width: 2px;
}
.ekm_about__scroll::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.5);
  border-radius: 1px;
}
.ekm_about__scroll::-webkit-scrollbar-track {
  background: transparent;
}
@media (max-width: 768px) {
  .ekm_about__scroll {
    width: min(calc(331 / 402 * 100vw), 331px);
    height: min(calc(461 / 402 * 100vw), 461px);
    margin-top: min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_about__scroll-content p {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-sage);
  text-align: center;
}
.ekm_about__scroll-content p + p {
  margin-top: min(calc(16 / 1280 * 100vw), 16px);
}
@media (max-width: 768px) {
  .ekm_about__scroll-content p {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    line-height: 2;
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
  }
  .ekm_about__scroll-content p + p {
    margin-top: min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_about__deco-bg {
  position: absolute;
  top: min(calc(98 / 1280 * 100vw), 98px);
  left: 50%;
  transform: translateX(-50%);
  width: min(calc(1468 / 1280 * 100vw), 1468px);
  opacity: 0.14;
  z-index: 0;
  pointer-events: none;
}

.ekm_about__images {
  display: flex;
  justify-content: center;
  gap: min(calc(24 / 1280 * 100vw), 24px);
  margin-top: min(calc(80 / 1280 * 100vw), 80px);
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_about__images {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: min(calc(16 / 402 * 100vw), 16px);
    padding: 0;
    margin-top: min(calc(40 / 402 * 100vw), 40px);
  }
}

.ekm_about__image {
  width: min(calc(350 / 1280 * 100vw), 350px);
}
.ekm_about__image img {
  width: 100%;
  height: min(calc(233 / 1280 * 100vw), 233px);
  object-fit: cover;
}
@media (max-width: 768px) {
  .ekm_about__image {
    width: min(calc(193 / 402 * 100vw), 193px);
  }
  .ekm_about__image:nth-child(3) {
    margin-top: 0;
    margin-left: auto;
    margin-right: auto;
  }
  .ekm_about__image img {
    height: min(calc(129 / 402 * 100vw), 129px);
  }
}

.ekm_about__casino-text {
  position: relative;
  z-index: 1;
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-sage);
  text-align: center;
  margin-top: min(calc(40 / 1280 * 100vw), 40px);
}
@media (max-width: 768px) {
  .ekm_about__casino-text {
    font-size: min(calc(16 / 402 * 100vw), 16px);
    letter-spacing: min(calc(1.6 / 402 * 100vw), 1.6px);
    line-height: 2;
    margin-top: min(calc(40 / 402 * 100vw), 40px);
    padding: 0 min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_about__youtube {
  width: min(calc(800 / 1280 * 100vw), 800px);
  margin: min(calc(64 / 1280 * 100vw), 64px) auto 0;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_about__youtube {
    width: min(calc(338 / 402 * 100vw), 338px);
    margin-top: min(calc(40 / 402 * 100vw), 40px);
  }
}

.ekm_about__youtube-inner {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
}
.ekm_about__youtube-inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* COMMENT */
.ekm_comment {
  position: relative;
  z-index: 1;
  margin-top: min(calc(64 / 1280 * 100vw), 64px);
  padding-bottom: min(calc(80 / 1280 * 100vw), 80px);
}
@media (max-width: 768px) {
  .ekm_comment {
    margin-top: min(calc(40 / 402 * 100vw), 40px);
    padding-bottom: min(calc(60 / 402 * 100vw), 60px);
  }
}

.ekm_comment__columns {
  display: grid;
  grid-template-columns: min(calc(540 / 1280 * 100vw), 540px) min(calc(540 / 1280 * 100vw), 540px);
  justify-content: center;
  gap: min(calc(40 / 1280 * 100vw), 40px);
  margin-top: min(calc(32 / 1280 * 100vw), 32px);
}
@media (max-width: 768px) {
  .ekm_comment__columns {
    grid-template-columns: 1fr;
    padding: 0 min(calc(32 / 402 * 100vw), 32px);
    gap: min(calc(40 / 402 * 100vw), 40px);
    margin-top: min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_comment__column {
  flex: 1;
}

.ekm_comment__name {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-sage);
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_comment__name {
    font-size: min(calc(20 / 402 * 100vw), 20px);
    letter-spacing: min(calc(2 / 402 * 100vw), 2px);
  }
}

.ekm_comment__text {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(18 / 1280 * 100vw), 18px);
  font-weight: 700;
  font-style: italic;
  line-height: 1.8;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-sage);
  margin-top: min(calc(16 / 1280 * 100vw), 16px);
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_comment__text {
    font-size: min(calc(16 / 402 * 100vw), 16px);
    line-height: 1.6;
    letter-spacing: min(calc(1.6 / 402 * 100vw), 1.6px);
    margin-top: min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_comment__readmore {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: min(calc(42 / 1280 * 100vw), 42px);
  margin-top: min(calc(16 / 1280 * 100vw), 16px);
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 700;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  color: var(--color-white);
  background-color: var(--color-sage);
  border: none;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
@media (hover: hover) {
  .ekm_comment__readmore:hover {
    opacity: 0.8;
  }
}
@media (max-width: 768px) {
  .ekm_comment__readmore {
    height: min(calc(42 / 402 * 100vw), 42px);
    margin-top: min(calc(16 / 402 * 100vw), 16px);
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
  }
}

.ekm_comment__image {
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
  aspect-ratio: 540/360;
  overflow: hidden;
  background-color: var(--color-sage);
}
.ekm_comment__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.ekm_comment__image--kameda img {
  transform: scale(1.1);
  transform-origin: bottom;
}
@media (max-width: 768px) {
  .ekm_comment__image {
    margin-top: min(calc(24 / 402 * 100vw), 24px);
    aspect-ratio: 338/225;
  }
}

/* ============================
   sec-tac: TALKING ABOUT CASINO
   ============================ */
.ekm_tac {
  position: relative;
  background-color: var(--color-dark-navy);
  padding: min(calc(80 / 1280 * 100vw), 80px) 0;
}
@media (max-width: 768px) {
  .ekm_tac {
    padding: min(calc(60 / 402 * 100vw), 60px) 0;
  }
}

.ekm_tac__bg {
  position: absolute;
  inset: 0;
  opacity: 0.6;
  z-index: 0;
}
.ekm_tac__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ekm_tac__inner {
  position: relative;
  max-width: var(--content-width);
  margin: 0 auto;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_tac__inner {
    max-width: 100%;
    padding: 0 min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_tac__desc {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 700;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
  text-align: center;
  margin-top: min(calc(17 / 1280 * 100vw), 17px);
}
@media (max-width: 768px) {
  .ekm_tac__desc {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    line-height: 2;
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(17 / 402 * 100vw), 17px);
  }
  .ekm_tac__desc br {
    display: none;
  }
}

.ekm_tac__article {
  display: flex;
  margin-top: min(calc(48 / 1280 * 100vw), 48px);
  margin-left: auto;
  margin-right: auto;
  max-width: min(calc(960 / 1280 * 100vw), 960px);
}
@media (max-width: 768px) {
  .ekm_tac__article {
    flex-direction: column;
    max-width: 100%;
    margin-top: min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_tac__article-image {
  width: min(calc(480 / 1280 * 100vw), 480px);
  height: min(calc(480 / 1280 * 100vw), 480px);
  flex-shrink: 0;
}
.ekm_tac__article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 35% center;
}
@media (max-width: 768px) {
  .ekm_tac__article-image {
    width: 100%;
    height: min(calc(338 / 402 * 100vw), 338px);
  }
}

.ekm_tac__article-body {
  width: min(calc(480 / 1280 * 100vw), 480px);
  height: min(calc(480 / 1280 * 100vw), 480px);
  background-color: var(--color-sage);
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
  padding: 0 min(calc(30 / 1280 * 100vw), 30px);
}
@media (max-width: 768px) {
  .ekm_tac__article-body {
    width: 100%;
    height: auto;
    align-items: stretch;
    padding: min(calc(24 / 402 * 100vw), 24px);
  }
}

.ekm_tac__article-title {
  font-family: var(--font-family-museo);
  font-size: min(calc(24 / 1280 * 100vw), 24px);
  font-weight: 900;
  line-height: 1.333;
  letter-spacing: min(calc(2.4 / 1280 * 100vw), 2.4px);
  color: var(--color-white);
  text-align: left;
}
@media (max-width: 768px) {
  .ekm_tac__article-title {
    font-size: min(calc(20 / 402 * 100vw), 20px);
    letter-spacing: min(calc(2 / 402 * 100vw), 2px);
  }
}

.ekm_tac__article-text {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  color: var(--color-white);
  margin-top: min(calc(16 / 1280 * 100vw), 16px);
}
@media (max-width: 768px) {
  .ekm_tac__article-text {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_tac__article-readmore {
  margin-top: min(calc(30 / 1280 * 100vw), 30px);
}
@media (max-width: 768px) {
  .ekm_tac__article-readmore {
    margin-top: min(calc(24 / 402 * 100vw), 24px);
  }
  .ekm_tac__article-readmore .ekm_btn {
    width: 100%;
  }
}

.ekm_tac__movie {
  margin-top: min(calc(64 / 1280 * 100vw), 64px);
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_tac__movie {
    margin-top: min(calc(40 / 402 * 100vw), 40px);
  }
}

.ekm_tac__movie-thumb {
  width: min(calc(540 / 1280 * 100vw), 540px);
  height: min(calc(304 / 1280 * 100vw), 304px);
  margin: 0 auto;
  position: relative;
  display: inline-block;
}
.ekm_tac__movie-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .ekm_tac__movie-thumb {
    width: min(calc(338 / 402 * 100vw), 338px);
    height: min(calc(190 / 402 * 100vw), 190px);
  }
}

.ekm_tac__movie-overlay {
  position: absolute;
  inset: 0;
  background: var(--color-overlay-light);
}

.ekm_tac__movie-play-area {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: min(calc(8 / 1280 * 100vw), 8px);
  cursor: pointer;
}
@media (hover: hover) {
  .ekm_tac__movie-play-area:hover {
    opacity: 0.8;
  }
}
@media (max-width: 768px) {
  .ekm_tac__movie-play-area {
    gap: min(calc(8 / 402 * 100vw), 8px);
  }
}

.ekm_tac__movie-play {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: min(calc(16 / 1280 * 100vw), 16px) 0 min(calc(16 / 1280 * 100vw), 16px) min(calc(32 / 1280 * 100vw), 32px);
  border-color: transparent transparent transparent var(--color-white);
}
@media (max-width: 768px) {
  .ekm_tac__movie-play {
    border-width: min(calc(16 / 402 * 100vw), 16px) 0 min(calc(16 / 402 * 100vw), 16px) min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_tac__movie-logo {
  width: min(calc(120 / 1280 * 100vw), 120px);
}
.ekm_tac__movie-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 768px) {
  .ekm_tac__movie-logo {
    width: min(calc(80 / 402 * 100vw), 80px);
  }
}

/* ============================
   sec-store: 店頭展示/キャンペーン情報
   ============================ */
.ekm_store {
  position: relative;
  padding: min(calc(80 / 1280 * 100vw), 80px) 0;
}
@media (max-width: 768px) {
  .ekm_store {
    padding: min(calc(60 / 402 * 100vw), 60px) 0;
  }
}

.ekm_store__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.ekm_store__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ekm_store__inner {
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_store__inner {
    padding: 0 min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_store__content {
  max-width: var(--content-width);
  margin: 0 auto;
  background-color: rgba(19, 34, 41, 0.9);
  padding: min(calc(64 / 1280 * 100vw), 64px);
}
@media (max-width: 768px) {
  .ekm_store__content {
    max-width: 100%;
    padding: min(calc(40 / 402 * 100vw), 40px) min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_store__desc {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
  text-align: center;
  margin-top: min(calc(17 / 1280 * 100vw), 17px);
}
@media (max-width: 768px) {
  .ekm_store__desc {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(17 / 402 * 100vw), 17px);
  }
}

.ekm_store__layout {
  display: flex;
  gap: min(calc(40 / 1280 * 100vw), 40px);
  margin-top: min(calc(48 / 1280 * 100vw), 48px);
  align-items: flex-start;
  max-width: min(calc(800 / 1280 * 100vw), 800px);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 768px) {
  .ekm_store__layout {
    flex-direction: column;
    gap: min(calc(24 / 402 * 100vw), 24px);
    margin-top: min(calc(32 / 402 * 100vw), 32px);
    max-width: 100%;
  }
}

.ekm_store__image-area {
  flex-shrink: 0;
}

.ekm_store__photo {
  width: min(calc(508 / 1280 * 100vw), 508px);
  height: min(calc(339 / 1280 * 100vw), 339px);
  position: relative;
  overflow: hidden;
}
.ekm_store__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .ekm_store__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 338/225;
  }
}

.ekm_store__photo-mask {
  position: absolute;
  inset: 0;
  background: var(--color-overlay-dark);
}

.ekm_store__caption {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 700;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
  margin-top: min(calc(16 / 1280 * 100vw), 16px);
}
@media (max-width: 768px) {
  .ekm_store__caption {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(16 / 402 * 100vw), 16px);
  }
}

.ekm_store__text-area {
  flex: 1;
  color: var(--color-white);
}

.ekm_store__heading {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(24 / 1280 * 100vw), 24px);
  font-weight: 700;
  line-height: 1.333;
  letter-spacing: min(calc(2.4 / 1280 * 100vw), 2.4px);
  color: var(--color-white);
}
@media (max-width: 768px) {
  .ekm_store__heading {
    font-size: min(calc(20 / 402 * 100vw), 20px);
    letter-spacing: min(calc(2 / 402 * 100vw), 2px);
  }
}

.ekm_store__body {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
}
@media (max-width: 768px) {
  .ekm_store__body {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
  }
}

.ekm_store__table-title {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-white);
  text-align: center;
  margin-top: min(calc(32 / 1280 * 100vw), 32px);
}
@media (max-width: 768px) {
  .ekm_store__table-title {
    font-size: min(calc(18 / 402 * 100vw), 18px);
    letter-spacing: min(calc(1.8 / 402 * 100vw), 1.8px);
    margin-top: min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_store__table {
  width: 100%;
  border-collapse: collapse;
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
}
.ekm_store__table tr + tr {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.ekm_store__table th, .ekm_store__table td {
  font-family: var(--font-family-noto-sans-jp);
  color: var(--color-white);
  padding: min(calc(16 / 1280 * 100vw), 16px) 0;
  vertical-align: top;
  text-align: left;
}
.ekm_store__table th {
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  white-space: nowrap;
  width: min(calc(100 / 1280 * 100vw), 100px);
}
.ekm_store__table td {
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  padding-left: min(calc(24 / 1280 * 100vw), 24px);
}
.ekm_store__table a {
  color: var(--color-white);
  text-decoration: underline;
  transition: opacity 0.3s ease;
}
@media (hover: hover) {
  .ekm_store__table a:hover {
    opacity: 0.7;
  }
}
@media (max-width: 768px) {
  .ekm_store__table {
    margin-top: min(calc(24 / 402 * 100vw), 24px);
  }
  .ekm_store__table th, .ekm_store__table td {
    display: block;
    font-size: min(calc(14 / 402 * 100vw), 14px);
    padding: 0;
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    width: 100%;
    text-align: center;
  }
  .ekm_store__table th {
    padding: min(calc(4 / 402 * 100vw), 4px) min(calc(16 / 402 * 100vw), 16px);
    font-size: min(calc(16 / 402 * 100vw), 16px);
    color: rgb(19, 34, 41);
    background: rgba(255, 255, 255, 0.85);
  }
  .ekm_store__table td {
    padding: min(calc(28 / 402 * 100vw), 28px) 0 min(calc(32 / 402 * 100vw), 32px);
  }
  .ekm_store__table tr + tr {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }
}

.ekm_store__area {
  font-weight: 700;
  margin-right: 0.5em;
}

/* ============================
   sec_present: プレゼントキャンペーン
   ============================ */
.ekm_present {
  position: relative;
  padding: min(calc(80 / 1280 * 100vw), 80px) 0;
}
@media (max-width: 768px) {
  .ekm_present {
    padding: min(calc(60 / 402 * 100vw), 60px) 0;
  }
}

.ekm_present__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: var(--color-dark-navy);
  opacity: 0.9;
}

.ekm_present__inner {
  position: relative;
  max-width: var(--content-width);
  margin: 0 auto;
  z-index: 1;
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_present__inner {
    padding: 0;
  }
}

.ekm_present__desc {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
  text-align: left;
  margin-top: min(calc(17 / 1280 * 100vw), 17px);
}
@media (max-width: 768px) {
  .ekm_present__desc {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(17 / 402 * 100vw), 17px);
  }
}

.ekm_present__body {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-white);
  text-align: left;
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
  max-width: min(calc(800 / 1280 * 100vw), 800px);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 768px) {
  .ekm_present__body {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(24 / 402 * 100vw), 24px);
    max-width: 100%;
  }
}

.ekm_present__prizes {
  margin-top: min(calc(48 / 1280 * 100vw), 48px);
}
@media (max-width: 768px) {
  .ekm_present__prizes {
    margin-top: min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_present__prizes-title {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-white);
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_present__prizes-title {
    font-size: min(calc(18 / 402 * 100vw), 18px);
    letter-spacing: min(calc(1.8 / 402 * 100vw), 1.8px);
  }
}

.ekm_present__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(calc(40 / 1280 * 100vw), 40px) min(calc(24 / 1280 * 100vw), 24px);
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
  max-width: min(calc(800 / 1280 * 100vw), 800px);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 768px) {
  .ekm_present__grid {
    display: flex;
    flex-direction: column;
    gap: min(calc(32 / 402 * 100vw), 32px) min(calc(32 / 402 * 100vw), 32px);
    margin-top: min(calc(24 / 402 * 100vw), 24px);
    max-width: 100%;
  }
}

.ekm_present__item--full {
  grid-column: 1/-1;
}
.ekm_present__item--full picture {
  aspect-ratio: 7/4.3;
}
.ekm_present__item--full img {
  object-fit: cover;
  object-position: top center;
}
@media (max-width: 768px) {
  .ekm_present__item--full {
    width: 100%;
  }
  .ekm_present__item--full picture {
    aspect-ratio: 1;
    display: block;
  }
  .ekm_present__item--full img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 67% center;
  }
}

.ekm_present__item-visual {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
}
.ekm_present__item-visual picture {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.ekm_present__item-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ekm_present__item-blur {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #444;
  background-size: cover;
  background-position: center;
  filter: blur(20px);
  transform: scale(1.1);
}

.ekm_present__item--full .ekm_present__item-visual {
  aspect-ratio: 7/4.3;
}
.ekm_present__item--full .ekm_present__item-visual img {
  object-fit: cover;
  object-position: top center;
}
@media (max-width: 768px) {
  .ekm_present__item--full .ekm_present__item-visual {
    aspect-ratio: 1;
  }
}

.ekm_present__item-caption {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  color: var(--color-white);
  margin-top: min(calc(8 / 1280 * 100vw), 8px);
}
@media (max-width: 768px) {
  .ekm_present__item-caption {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.2 / 402 * 100vw), 1.2px);
    margin-top: min(calc(8 / 402 * 100vw), 8px);
  }
}

.ekm_present .ekm_btn {
  margin-top: min(calc(40 / 1280 * 100vw), 40px);
}
@media (max-width: 768px) {
  .ekm_present .ekm_btn {
    margin-top: min(calc(32 / 402 * 100vw), 32px);
    width: 100%;
  }
}

.ekm_present__outline {
  margin-top: min(calc(48 / 1280 * 100vw), 48px);
  text-align: left;
  max-width: min(calc(800 / 1280 * 100vw), 800px);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 768px) {
  .ekm_present__outline {
    margin-top: min(calc(32 / 402 * 100vw), 32px);
    max-width: 100%;
  }
}

.ekm_present__outline-title {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-white);
  text-align: center;
  margin-bottom: min(calc(24 / 1280 * 100vw), 24px);
}
@media (max-width: 768px) {
  .ekm_present__outline-title {
    font-size: min(calc(18 / 402 * 100vw), 18px);
    letter-spacing: min(calc(1.8 / 402 * 100vw), 1.8px);
    margin-bottom: min(calc(24 / 402 * 100vw), 24px);
  }
}

.ekm_present__outline-table {
  width: 100%;
  border-collapse: collapse;
}
.ekm_present__outline-table tr + tr {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.ekm_present__outline-table th, .ekm_present__outline-table td {
  font-family: var(--font-family-noto-sans-jp);
  color: var(--color-white);
  padding: min(calc(16 / 1280 * 100vw), 16px) 0;
  vertical-align: top;
  text-align: left;
}
.ekm_present__outline-table th {
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  white-space: nowrap;
  width: min(calc(100 / 1280 * 100vw), 100px);
}
.ekm_present__outline-table td {
  font-size: min(calc(14 / 1280 * 100vw), 14px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: min(calc(1.4 / 1280 * 100vw), 1.4px);
  padding-left: min(calc(24 / 1280 * 100vw), 24px);
}
@media (max-width: 768px) {
  .ekm_present__outline-table th, .ekm_present__outline-table td {
    display: block;
    font-size: min(calc(14 / 402 * 100vw), 14px);
    padding: 0;
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    width: 100%;
    text-align: center;
  }
  .ekm_present__outline-table th {
    padding: min(calc(4 / 402 * 100vw), 4px) min(calc(16 / 402 * 100vw), 16px);
    font-size: min(calc(16 / 402 * 100vw), 16px);
    color: rgb(19, 34, 41);
    background: rgba(255, 255, 255, 0.85);
  }
  .ekm_present__outline-table td {
    padding: min(calc(28 / 402 * 100vw), 28px) 0 min(calc(32 / 402 * 100vw), 32px);
  }
  .ekm_present__outline-table tr + tr {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }
}

/* ============================
   sec-mov-iti: 著作権表記
   ============================ */
.ekm_copyright {
  background-color: var(--color-dark-navy);
  height: min(calc(80 / 1280 * 100vw), 80px);
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 768px) {
  .ekm_copyright {
    height: min(calc(80 / 402 * 100vw), 80px);
  }
}

.ekm_copyright__text {
  font-family: var(--font-family-museo);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-white);
}
@media (max-width: 768px) {
  .ekm_copyright__text {
    font-size: min(calc(16 / 402 * 100vw), 16px);
    letter-spacing: min(calc(1.6 / 402 * 100vw), 1.6px);
  }
}

/* ============================
   banner_mov + footer
   ============================ */
.ekm_banner {
  padding: min(calc(56 / 1280 * 100vw), 56px) 0 0;
}
@media (max-width: 768px) {
  .ekm_banner {
    padding: 2.8rem 0 0;
  }
}

.ekm_banner__inner {
  max-width: min(calc(800 / 1280 * 100vw), 800px);
  margin: 0 auto;
}
@media (max-width: 768px) {
  .ekm_banner__inner {
    max-width: 100%;
    padding: 0 min(calc(16 / 402 * 100vw), 16px);
  }
}
.ekm_banner__inner a {
  display: block;
  transition: opacity 0.3s ease;
}
@media (hover: hover) {
  .ekm_banner__inner a:hover {
    opacity: 0.8;
  }
}

.ekm_footer {
  padding: min(calc(56 / 1280 * 100vw), 56px) 0 0;
}
@media (max-width: 768px) {
  .ekm_footer {
    padding: min(calc(32 / 402 * 100vw), 32px) 0 0;
  }
}

/* ============================
   Modal: コメント全文
   ============================ */
.ekm_modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-top: min(calc(100 / 1280 * 100vw), 100px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.ekm_modal.is-active {
  opacity: 1;
  visibility: visible;
}
@media (max-width: 768px) {
  .ekm_modal {
    padding-top: 77px;
  }
}

.ekm_modal__overlay {
  position: absolute;
  inset: 0;
  background: var(--color-overlay-dark);
}

.ekm_modal__container {
  padding: min(calc(64 / 1280 * 100vw), 64px) min(calc(32 / 1280 * 100vw), 32px) min(calc(64 / 1280 * 100vw), 64px) min(calc(64 / 1280 * 100vw), 64px);
  position: relative;
  width: 90%;
  max-width: 900px;
  max-height: calc(80vh - 100px);
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  z-index: 1;
}
@media (max-width: 768px) {
  .ekm_modal__container {
    width: 90%;
    max-height: calc(80vh - 77px);
    padding: min(calc(30 / 402 * 100vw), 30px) min(calc(32 / 402 * 100vw), 32px) min(calc(30 / 402 * 100vw), 30px) min(calc(32 / 402 * 100vw), 32px);
  }
}

.ekm_modal__close {
  position: absolute;
  top: min(calc(16 / 1280 * 100vw), 16px);
  right: min(calc(16 / 1280 * 100vw), 16px);
  width: min(calc(40 / 1280 * 100vw), 40px);
  height: min(calc(40 / 1280 * 100vw), 40px);
  background: none;
  border: none;
  font-size: min(calc(28 / 1280 * 100vw), 28px);
  line-height: 1;
  color: var(--color-sage);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease;
  z-index: 2;
}
@media (hover: hover) {
  .ekm_modal__close:hover {
    opacity: 0.6;
  }
}
@media (max-width: 768px) {
  .ekm_modal__close {
    top: min(calc(16 / 402 * 100vw), 16px);
    right: min(calc(16 / 402 * 100vw), 16px);
    width: min(calc(40 / 402 * 100vw), 40px);
    height: min(calc(40 / 402 * 100vw), 40px);
    font-size: min(calc(28 / 402 * 100vw), 28px);
  }
}

.ekm_modal__body {
  padding-right: min(calc(20 / 1280 * 100vw), 20px);
  overflow-y: scroll;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.3) rgba(0, 0, 0, 0.08);
}
.ekm_modal__body::-webkit-scrollbar {
  width: 2px;
}
.ekm_modal__body::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.3);
  border-radius: 1px;
}
.ekm_modal__body::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.08);
}
@media (max-width: 768px) {
  .ekm_modal__body {
    padding-right: min(calc(20 / 402 * 100vw), 20px);
  }
}

.ekm_modal__name {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(20 / 1280 * 100vw), 20px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(calc(2 / 1280 * 100vw), 2px);
  color: var(--color-sage);
  text-align: center;
}
@media (max-width: 768px) {
  .ekm_modal__name {
    font-size: min(calc(18 / 402 * 100vw), 18px);
    letter-spacing: min(calc(1.8 / 402 * 100vw), 1.8px);
  }
}

.ekm_modal__content {
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
}
@media (max-width: 768px) {
  .ekm_modal__content {
    margin-top: min(calc(24 / 402 * 100vw), 24px);
  }
}
.ekm_modal__content h4 {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-sage);
  margin-top: min(calc(24 / 1280 * 100vw), 24px);
}
.ekm_modal__content h4:first-child {
  margin-top: 0;
}
@media (max-width: 768px) {
  .ekm_modal__content h4 {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(24 / 402 * 100vw), 24px);
  }
}
.ekm_modal__content p {
  font-family: var(--font-family-noto-sans-jp);
  font-size: min(calc(16 / 1280 * 100vw), 16px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: min(calc(1.6 / 1280 * 100vw), 1.6px);
  color: var(--color-dark-navy);
  margin-top: min(calc(8 / 1280 * 100vw), 8px);
}
@media (max-width: 768px) {
  .ekm_modal__content p {
    font-size: min(calc(14 / 402 * 100vw), 14px);
    letter-spacing: min(calc(1.4 / 402 * 100vw), 1.4px);
    margin-top: min(calc(8 / 402 * 100vw), 8px);
  }
}

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