@charset "UTF-8";
/* Preloader */
.preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 42%, rgba(243, 175, 205, 0.22) 0%, rgba(243, 175, 205, 0) 55%), linear-gradient(180deg, #fffcfd 0%, #faf4f7 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.7s ease, visibility 0.7s ease;
  pointer-events: all;
}
.preloader.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader-inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.spinner {
  width: 42px;
  height: 42px;
  border-radius: 100%;
  background-color: #f3afcd;
  animation: sk-scaleout 1.05s infinite ease-in-out;
  will-change: transform, opacity;
}

@keyframes sk-scaleout {
  0% {
    transform: scale(0);
    opacity: 0.85;
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}
body.is-loading {
  overflow: hidden;
}

#wrapper {
  opacity: 0;
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-ready #wrapper {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .preloader,
  #wrapper {
    transition: none;
  }
}

/* reset */
article, aside, details, figcaption, figure, footer, header, hgroup, hr, menu, nav, section {
  display: block;
}

a, hr {
  padding: 0;
}

abbr, address, article, aside, audio, b, blockquote, body, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section, small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: 0 0;
}

ins, mark {
  background-color: #ff9;
  color: #000;
}

body {
  line-height: 1;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

li, ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:after, blockquote:before, q:after, q:before {
  content: "";
  content: none;
}

a {
  margin: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: 0 0;
}

ins {
  text-decoration: none;
}

mark {
  font-style: italic;
  font-weight: 700;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

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

hr {
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
}

input, select {
  vertical-align: middle;
}

.sp {
  display: block;
}

@media screen and (min-width: 960px) {
  .sp {
    display: none;
  }
}
.pc {
  display: none;
}

@media screen and (min-width: 960px) {
  .pc {
    display: block;
  }
}
/*-------------------------------

html

-------------------------------*/
html, body {
  font: 14px/1 "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  letter-spacing: 1px;
  word-break: break-all;
  word-wrap: break-word;
  color: #000;
  /*-webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;*/
  font-feature-settings: "palt"; /*文字間詰め*/
  -webkit-text-size-adjust: 100%; /* adjust */
  overflow-x: hidden;
}

@media screen and (min-width: 960px) {
  html, body {
    font: 16px/1 "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  }
}
/* Lenis 利用時: ドキュメント高さを維持（style.css 単体でも有効になるよう記述） */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

*::selection {
  color: #fff;
  background: #f3afcd;
}

.hover {
  -webkit-transition: opacity 0.35s ease, color 0.35s ease, background 0.35s ease;
  transition: opacity 0.35s ease, color 0.35s ease, background 0.35s ease;
}

.click {
  -webkit-transition: opacity 0.35s ease, color 0.35s ease, background 0.35s ease;
  transition: opacity 0.35s ease, color 0.35s ease, background 0.35s ease;
}

.click:active {
  opacity: 0.75;
  transform: none;
}

html, body {
  width: 100%;
  min-height: 100%;
  background-color: #fffcfd;
  background-image: radial-gradient(circle at 18% 32%, rgba(243, 175, 205, 0.18) 0%, rgba(243, 175, 205, 0) 55%), radial-gradient(circle at 78% 55%, rgba(208, 226, 238, 0.28) 0%, rgba(208, 226, 238, 0) 58%), radial-gradient(circle at 48% 88%, rgba(247, 197, 217, 0.16) 0%, rgba(247, 197, 217, 0) 50%), linear-gradient(180deg, #fffcfd 0%, #fdf8fa 52%, #f6f9fb 100%);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}

#commentpage {
  background: transparent !important;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  color: #6a6568;
}
#commentpage #wrapper {
  background: transparent !important;
  position: relative;
  width: 100%;
  display: block;
}
#commentpage #comment-main {
  position: relative;
  z-index: 2;
  background: transparent !important;
}

.contents-inner {
  padding: 0 5%;
}

.section-heading {
  width: 100%;
  text-align: center;
  margin: 0 auto;
  padding: 48px 0 24px;
  color: #f3afcd;
  font-weight: bold;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-size: 1rem;
  letter-spacing: 0.28em;
}
@media screen and (min-width: 960px) {
  .section-heading {
    padding: 50px 0 40px;
    font-size: 0.95rem;
  }
}
.section-heading span {
  display: block;
  width: fit-content;
  margin: 0 auto 6px;
  font-family: din-next-w01-light, YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  color: #f3afcd;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 1.5rem;
  letter-spacing: 0.28em;
  padding: 0;
}
@media screen and (min-width: 960px) {
  .section-heading span {
    font-size: 1.7rem;
    padding: 0;
  }
}
.section-heading.post-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 56px 16px 28px;
}
@media screen and (min-width: 960px) {
  .section-heading.post-heading {
    padding: 96px 0 40px;
  }
}
.section-heading.post-heading span {
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  text-transform: none;
  font-weight: normal;
  line-height: 1.45;
}
.section-heading.post-heading .post-hashtag {
  display: inline-block;
  color: #f19dc1;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 1.75rem;
  letter-spacing: 0.12em;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(243, 175, 205, 0.45);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
@media screen and (min-width: 960px) {
  .section-heading.post-heading .post-hashtag {
    font-size: 1.75rem;
    letter-spacing: 0.16em;
    padding-bottom: 16px;
  }
}
.section-heading.post-heading .post-sub-ttl {
  display: block;
  margin-top: 16px;
  color: #6a6568;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 0.95rem;
  letter-spacing: 0.28em;
  opacity: 0.85;
}
@media screen and (min-width: 960px) {
  .section-heading.post-heading .post-sub-ttl {
    margin-top: 18px;
    font-size: 1.15rem;
    letter-spacing: 0.32em;
  }
}

.btn-share {
  display: block;
  width: 100%;
  height: 50px;
  line-height: 50px;
  color: #fff;
  text-decoration: none;
  text-align: center;
  transition: all 0.5s;
  font-size: 1.0625rem;
  letter-spacing: 2px;
  margin: 30px auto 0;
  cursor: pointer;
  background: #f7c5d9;
  border: none;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.btn-share:hover {
  color: #6a6568;
  background: #d0e2ee;
}

.tight-dash {
  letter-spacing: -0.1em;
  margin-right: 0.1em;
}

.campaign-top {
  background: linear-gradient(180deg, rgba(243, 175, 205, 0.18) 0%, rgba(234, 243, 248, 0.55) 100%);
}

.campaign-header {
  width: 100%;
  line-height: 0;
}
.campaign-header picture,
.campaign-header img {
  width: 100%;
  height: auto;
  vertical-align: top;
  display: block;
}
@media screen and (min-width: 960px) {
  .campaign-header {
    max-width: 1110px;
    margin: 0 auto;
  }
}

.opinion-teaser {
  width: 100%;
  padding: 20px 4% 18px;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .opinion-teaser {
    max-width: 1110px;
    margin: 0 auto;
    padding: 28px 0 26px;
  }
}

.opinion-teaser-swiper {
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  min-height: 180px;
}
@media screen and (min-width: 960px) {
  .opinion-teaser-swiper {
    min-height: 220px;
  }
}

.opinion-teaser-layer {
  display: flex;
  gap: 10px;
  align-items: stretch;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.2s ease-in-out;
  z-index: 1;
}
.opinion-teaser-layer.is-show {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}
@media screen and (min-width: 960px) {
  .opinion-teaser-layer {
    gap: 14px;
  }
}

.opinion-teaser-source {
  display: none;
}

.opinion-teaser-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  min-height: 180px;
  padding: 20px 12px 16px;
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
  text-align: center;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(243, 175, 205, 0.45);
  transition: background 0.35s ease;
}
.opinion-teaser-card:hover {
  background: rgba(255, 255, 255, 0.9);
}
.opinion-teaser-card:hover .opinion-teaser-more {
  color: #e89bbb;
}
@media screen and (min-width: 960px) {
  .opinion-teaser-card {
    min-height: 220px;
    padding: 28px 18px 22px;
  }
}

.opinion-teaser-text {
  margin: 0 0 14px;
  font-size: 0.92rem;
  line-height: 1.75;
  letter-spacing: 0.06em;
  color: #6a6568;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
  text-align: left;
}
@media screen and (min-width: 960px) {
  .opinion-teaser-text {
    font-size: 0.95rem;
    margin-bottom: 18px;
    -webkit-line-clamp: 3;
  }
}

.opinion-teaser-more {
  display: inline;
  margin-left: 0.15em;
  font-size: 0.9em;
  font-weight: bold;
  letter-spacing: 0.08em;
  color: #f3afcd;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  white-space: nowrap;
  transition: color 0.3s ease;
}

.opinion-teaser-author {
  margin: 0;
  align-self: flex-end;
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: #e89bbb;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
.opinion-teaser-author span {
  margin-left: 0.35em;
  font-size: 0.68em;
  font-weight: normal;
  letter-spacing: 0.06em;
  color: #9a9598;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .opinion-teaser-author {
    font-size: 1.1rem;
  }
}

.campaign-lead-band {
  width: 100%;
  margin: 0;
  padding: 8px 16px;
  font-weight: bold;
  box-sizing: border-box;
  text-align: center;
  background: #d0e2ee;
  color: #6a6568;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 1.1rem;
  letter-spacing: 0.08em;
  line-height: 1.55;
}
@media screen and (min-width: 960px) {
  .campaign-lead-band {
    max-width: 1110px;
    margin: 0 auto;
    padding: 13px 24px;
    font-size: 1.25rem;
    letter-spacing: 0.12em;
  }
}

.campaign-section {
  display: block;
  width: 100%;
  background: transparent;
  text-align: center;
  color: #6a6568;
  position: relative;
  z-index: 5;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  overflow: hidden;
}
.campaign-section > .campaign-inner {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 960px) {
  .campaign-section {
    padding: 0;
  }
}

.campaign-inner {
  padding: 0;
  position: relative;
  background: transparent;
  padding: 0 0 50px;
}
.campaign-gallery {
  overflow: hidden;
  width: 100%;
  margin-bottom: 25px;
}
@media screen and (min-width: 960px) {
  .campaign-gallery {
    margin-bottom: 40px;
  }
}
.campaign-gallery .gallery-track {
  display: flex;
  width: max-content;
  animation: marquee 100s linear infinite;
}
.campaign-gallery .gallery-track.is-reverse {
  animation: marquee-reverse 100s linear infinite;
  animation-delay: -50s;
}
@media screen and (min-width: 960px) {
  .campaign-gallery .gallery-track {
    animation-duration: 130s;
  }
}
.campaign-gallery img {
  height: 28vw;
  width: auto;
  margin-right: 5px;
  object-fit: contain;
  border: 1px solid #f7c5d9;
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .campaign-gallery img {
    height: 200px;
    margin-right: 10px;
    border-width: 2px;
  }
}

.campaign-text {
  width: 90%;
  max-width: 950px;
  margin: 0 auto;
}

.campaign-title {
  color: #f7c5d9;
  font-size: 2.7rem;
  font-weight: normal;
  margin: 20px 0;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 960px) {
  .campaign-title {
    font-size: 3.5rem;
    margin: 40px 0;
  }
}
.campaign-title .title-logo {
  display: block;
  margin: 35px auto 10px;
  width: 95%;
  max-width: 480px;
}
@media screen and (min-width: 960px) {
  .campaign-title .title-logo {
    width: 55%;
    max-width: 600px;
    margin: 50px auto 20px;
  }
}
.campaign-title .title-logo img {
  width: 100%;
  height: auto;
}

.campaign-lead {
  width: 100%;
  font-size: 1rem;
  letter-spacing: 0.1em;
  color: #f7c5d9;
  font-weight: bold;
  text-align: center;
  padding: 10px 0 30px;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  line-height: 1.8;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 960px) {
  .campaign-lead {
    font-size: 1.25rem;
    padding: 10px 0 40px;
  }
}

.campaign-description {
  color: #5E5E5E;
  font-size: 1.12rem;
  font-weight: bold;
  line-height: 2;
  margin-bottom: 25px;
  padding: 25px 0 0;
}
@media screen and (min-width: 960px) {
  .campaign-description {
    font-size: 1.25rem;
    line-height: 2.2;
    margin-bottom: 35px;
  }
}
.campaign-description .hashtag {
  color: #fff;
  font-size: 1.35rem;
  font-weight: bold;
  display: inline-block;
  margin: 0 4px 4px;
  background: #f3afcd;
  padding: 0 0.12em;
  line-height: 1.25;
  vertical-align: baseline;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 960px) {
  .campaign-description .hashtag {
    font-size: 1.65rem;
    margin-bottom: 0;
    line-height: 1.3;
  }
}
.campaign-description .campaign-emphasis {
  color: #e89bbb;
  font-weight: bold;
}
.campaign-description strong {
  color: #f7c5d9;
  font-size: 1.2rem;
  font-weight: bold;
  border-bottom: 1px solid #f7c5d9;
  padding-bottom: 4px;
}
@media screen and (min-width: 960px) {
  .campaign-description strong {
    font-size: 1.25rem;
  }
}

.campaign-period {
  display: block;
  color: #6a6568;
  padding: 8px 0 0;
  letter-spacing: 0.04em;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}
@media screen and (min-width: 960px) {
  .campaign-period {
    padding: 8px 0 0;
  }
}

.campaign-period-title {
  display: inline-block;
  text-align: center;
  font-size: 0.95rem;
  margin: 0 0 20px;
  letter-spacing: 0.2em;
  color: #f3afcd;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  padding-bottom: 10px;
  border-bottom: 1px solid #f3afcd;
}
@media screen and (min-width: 960px) {
  .campaign-period-title {
    font-size: 1rem;
    margin-bottom: 24px;
    padding-bottom: 12px;
  }
}

.campaign-period-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  width: 80%;
  max-width: 360px;
}
@media screen and (min-width: 960px) {
  .campaign-period-list {
    flex-direction: row;
    justify-content: center;
    align-items: stretch;
    gap: 14px;
    max-width: 980px;
  }
}
.campaign-period-list li {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 44px;
  overflow: hidden;
  border-radius: 3px;
}
@media screen and (min-width: 960px) {
  .campaign-period-list li {
    flex: 1 1 0;
    max-width: 300px;
    min-height: 52px;
    background: #fff;
    padding: 12px 14px;
    gap: 12px;
    align-items: center;
    box-sizing: border-box;
  }
}
.campaign-period-list li.is-ended {
  position: relative;
}
.campaign-period-list li.is-ended .campaign-period-ended-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.78);
  pointer-events: none;
}
.campaign-period-list li.is-ended .campaign-period-ended-text {
  margin: 0;
  padding: 0 10px;
  color: #e89bbb;
  font-size: 1.1rem;
  font-weight: bold;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-align: center;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
}
@media screen and (min-width: 960px) {
  .campaign-period-list li.is-ended .campaign-period-ended-text {
    font-size: 1.25rem;
    letter-spacing: 0.14em;
  }
}

.period-label {
  flex: 0 0 4.6em;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3afcd;
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  letter-spacing: 0.08em;
  font-size: 0.85rem;
  padding: 0 8px;
  white-space: nowrap;
}
@media screen and (min-width: 960px) {
  .period-label {
    flex: 0 0 auto;
    min-width: 3.6em;
    padding: 6px 10px;
    font-size: 0.8rem;
    height: auto;
  }
}

.period-date {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #6a6568;
  font-weight: bold;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  padding: 10px 12px;
  white-space: nowrap;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .period-date {
    flex: 1 1 auto;
    justify-content: flex-start;
    background: transparent;
    padding: 0;
    font-size: 0.9rem;
  }
}

.present-section {
  position: relative;
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 8px 5% 40px;
  box-sizing: border-box;
  background: #eaf3f8;
}
@media screen and (min-width: 960px) {
  .present-section {
    padding: 24px 5% 56px;
  }
}
.present-section > .section-heading,
.present-section > .present-content {
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
@media screen and (min-width: 960px) {
  .present-section > .section-heading,
  .present-section > .present-content {
    width: 90%;
  }
}

.present-content {
  text-align: center;
  color: #6a6568;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .present-content {
    padding: 0;
  }
}

.present-phases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
@media screen and (min-width: 960px) {
  .present-phases {
    gap: 18px;
    margin-bottom: 32px;
  }
}

.present-phase {
  position: relative;
  width: 100%;
  border: 1px solid rgba(243, 175, 205, 0.28);
  border-radius: 0;
  overflow: hidden;
  background: #FFFFFF;
  text-align: left;
  display: flex;
  flex-direction: column;
}
.present-phase.present-phase-featured {
  grid-column: 1/-1;
}
.present-phase.is-ended .present-phase-ended-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.78);
  pointer-events: none;
}
.present-phase.is-ended .present-phase-ended-text {
  margin: 0;
  padding: 0 20px;
  color: #e89bbb;
  font-size: 1.35rem;
  font-weight: bold;
  letter-spacing: 0.14em;
  line-height: 1.7;
  text-align: center;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
}
@media screen and (min-width: 960px) {
  .present-phase.is-ended .present-phase-ended-text {
    font-size: 1.65rem;
    letter-spacing: 0.18em;
  }
}
.present-phase.is-coming-soon {
  grid-column: 1/-1;
}
@media screen and (min-width: 960px) {
  .present-phase {
    min-width: 0;
    height: 100%;
  }
}
.present-phase.is-coming-soon .present-phase-body {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  background: rgba(255, 255, 255, 0.95);
  padding: 32px 16px;
  line-height: 1.4;
}
@media screen and (min-width: 960px) {
  .present-phase.is-coming-soon .present-phase-body {
    min-height: 220px;
    padding: 24px 16px;
  }
}

.present-coming-soon {
  font-family: din-next-w01-light, YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  color: #f3afcd;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 1.15rem;
  letter-spacing: 0.2em;
  text-align: center;
  margin: 0;
}
@media screen and (min-width: 960px) {
  .present-coming-soon {
    font-size: 1.2rem;
  }
}

.present-phase-head {
  background: rgba(243, 175, 205, 0.28);
  color: #6a6568;
  text-align: center;
  padding: 16px 12px 14px;
  border-bottom: 1px solid rgba(243, 175, 205, 0.28);
  flex-shrink: 0;
}
@media screen and (min-width: 960px) {
  .present-phase-head {
    padding: 18px 12px 15px;
    min-height: 84px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
  }
}

.present-phase-label {
  font-size: 1.45rem;
  letter-spacing: 0.12em;
  line-height: 1.2;
  margin-bottom: 4px;
  font-weight: bold;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .present-phase-label {
    font-size: 1.25rem;
  }
}

.present-phase-term {
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  line-height: 1.4;
}
@media screen and (min-width: 960px) {
  .present-phase-term {
    font-size: 0.8rem;
  }
}

.present-phase-body {
  padding: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.prize-visual {
  background: rgba(255, 221, 221, 0.22);
  padding: 16px 12px;
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  box-sizing: border-box;
}
.prize-visual img {
  width: 100%;
  max-width: 200px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
  display: block;
}
.prize-visual .prize-name {
  margin: 0;
  padding: 0 8px;
  flex: none;
}
@media screen and (min-width: 960px) {
  .prize-visual {
    min-height: 180px;
    padding: 18px 14px;
    margin-bottom: 16px;
  }
  .prize-visual img {
    max-width: 100%;
    max-height: 180px;
    width: auto;
  }
}

.present-phase-prizes {
  margin: 0;
  padding: 18px 14px 22px;
  list-style: none;
  text-align: center;
  background: #FFFFFF;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 12px;
}
.present-phase-prizes li {
  margin-bottom: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 960px) {
  .present-phase-prizes {
    padding: 22px 16px 28px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
    box-sizing: border-box;
  }
  .present-phase-prizes li {
    flex: 1;
  }
}

@media screen and (min-width: 960px) {
  .present-phase-featured .present-phase-prizes {
    gap: 20px;
  }
}

.prize-name {
  font-size: 1.15rem;
  font-weight: bold;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #6a6568;
  text-align: center;
  margin: 0 0 10px;
  padding: 0;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .prize-name {
    font-size: 0.88rem;
    margin-bottom: 10px;
    flex: 1;
  }
}

.prize-count {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  margin: 0 auto;
  padding: 8px 20px;
  border-radius: 0;
  background: #f3afcd;
  color: #FFFFFF;
  white-space: nowrap;
  line-height: 1;
}

.prize-count-num {
  font-family: din-next-w01-light, YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  font-size: 1.35rem;
  font-weight: bold;
  letter-spacing: 0.02em;
}

.prize-count-unit {
  font-size: 0.8rem;
  font-weight: bold;
  letter-spacing: 0.06em;
}

.present-phase-note {
  margin-top: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
  color: #9a9598;
}
@media screen and (min-width: 960px) {
  .present-phase-note {
    font-size: 0.7rem;
  }
}

.present-notes {
  font-size: 0.65rem;
  line-height: 1.5;
  margin-top: 14px;
}
@media screen and (min-width: 960px) {
  .present-notes {
    font-size: 0.7rem;
    margin-top: 18px;
  }
}
.present-notes p {
  margin-bottom: 4px;
  color: #9a9598;
}
.present-notes p:last-child {
  margin-bottom: 0;
}

#comment-section,
#post,
.comment-item {
  scroll-margin-top: 20px;
}

.howto-section {
  margin: 20px auto 2rem;
  max-width: 1140px;
  width: 95%;
}
@media screen and (min-width: 960px) {
  .howto-section {
    margin: 40px auto 2rem;
    width: 90%;
  }
}

.anchor-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 1140px;
  width: 95%;
  margin: 0 auto 4rem;
}
@media screen and (min-width: 960px) {
  .anchor-nav {
    flex-direction: row;
    justify-content: center;
    gap: 24px;
    width: 90%;
    margin: 0 auto 5rem;
  }
}

.anchor-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 320px;
  min-height: 54px;
  padding: 14px 18px;
  text-align: center;
  text-decoration: none;
  letter-spacing: 0.14em;
  color: #6a6568;
  background: rgba(208, 226, 238, 0.7);
  border: 1px solid rgba(243, 175, 205, 0.28);
  border-radius: 0;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 1rem;
  line-height: 1.4;
  transition: opacity 0.35s ease, background 0.35s ease;
  box-sizing: border-box;
  border-radius: 50px;
}
@media screen and (min-width: 960px) {
  .anchor-nav-btn {
    width: 300px;
    font-size: 0.95rem;
  }
}
.anchor-nav-btn::after {
  content: "";
  display: block;
  width: 14px;
  height: 8px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12' fill='none'%3E%3Cpath d='M2 2L12 10L22 2' stroke='%236a6568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  opacity: 0.7;
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.anchor-nav-btn:hover {
  opacity: 1;
  background: rgba(243, 175, 205, 0.32);
}
.anchor-nav-btn:hover::after {
  opacity: 1;
  transform: translateY(2px);
}

/*-------------------------------
投稿素材 / PICK UP
-------------------------------*/
.campaign-materials {
  max-width: 1024px;
  width: 95%;
  margin: 0 auto 4rem;
  text-align: center;
}
@media screen and (min-width: 960px) {
  .campaign-materials {
    width: 90%;
    margin-bottom: 5rem;
  }
}

.campaign-materials-intro {
  color: #6a6568;
  font-size: 0.85rem;
  line-height: 1.85;
  margin: 0 auto 1.6rem;
  max-width: 50em;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .campaign-materials-intro {
    font-size: 1rem;
    margin-bottom: 2rem;
  }
}

.campaign-materials-hashtag {
  color: #e89bbb;
  font-weight: 700;
}

.campaign-materials-lead {
  color: #6a6568;
  font-size: 0.85rem;
  line-height: 1.7;
  margin: -10px auto 20px;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .campaign-materials-lead {
    font-size: 1rem;
    margin-bottom: 24px;
  }
}
.campaign-materials-lead .campaign-materials-note {
  display: inline-block;
  margin-top: 6px;
  font-size: 0.75em;
  color: #9a9598;
  letter-spacing: 0.04em;
}

.campaign-share-guide {
  display: grid;
  gap: 16px;
  margin: 0 auto 3rem;
  max-width: 1000px;
  color: #6a6568;
  text-align: left;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .campaign-share-guide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}

.campaign-share-guide-item {
  border: 1px solid rgba(243, 175, 205, 0.28);
  background: #FFFFFF;
  box-sizing: border-box;
  box-shadow: 0 5px 18px rgba(106, 101, 104, 0.07);
}

.campaign-share-guide-name {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65em;
  margin: 0;
  padding: 14px 18px;
  background: rgba(243, 175, 205, 0.2);
  color: #6a6568;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.4;
}
.campaign-share-guide-name i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  background: #FFFFFF;
  border-radius: 50%;
  color: #e89bbb;
  font-size: 1.05em;
}
.campaign-share-guide-instagram .campaign-share-guide-name {
  background: rgba(208, 226, 238, 0.55);
}
.campaign-share-guide-instagram .campaign-share-guide-name i {
  color: #5f98bc;
}

.campaign-share-guide-body {
  padding: 18px 20px 20px;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.8;
}
.campaign-share-guide-body p + p {
  margin-top: 0.65em;
}
@media screen and (min-width: 960px) {
  .campaign-share-guide-body {
    padding: 20px 22px 22px;
    font-size: 0.95rem;
  }
}

.campaign-share-guide-caution {
  color: #e89bbb;
  font-weight: 700;
}

.campaign-share-guide-hashtag {
  color: #e89bbb;
  font-weight: 700;
}

.campaign-share-guide-body .campaign-share-guide-note {
  margin-top: 1em;
  color: #9a9598;
  font-size: 0.78em;
  font-weight: 400;
  line-height: 1.65;
}

.campaign-btns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  max-width: 500px;
  margin: 0 auto;
}
@media screen and (min-width: 960px) {
  .campaign-btns {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 30px;
    max-width: 1000px;
  }
}

.campaign-btn-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

@media screen and (min-width: 960px) {
  .campaign-btn-item-video {
    grid-column: 1/-1;
    width: calc((100% - 30px) / 2);
    justify-self: center;
  }
}

.campaign-preview {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: #000;
  border-radius: 0;
  overflow: hidden;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  color: inherit;
  text-align: left;
}
.campaign-preview img,
.campaign-preview video {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
  max-width: 100%;
  vertical-align: top;
  background: #000;
  pointer-events: none;
}
.campaign-preview:hover {
  opacity: 0.92;
}
.campaign-preview.is-youtube {
  cursor: default;
}
.campaign-preview.is-youtube:hover {
  opacity: 1;
}
.campaign-preview.is-video {
  cursor: pointer;
}
.campaign-preview.is-video video {
  pointer-events: none;
}
.campaign-preview.is-video.is-playing {
  cursor: default;
}
.campaign-preview.is-video.is-playing video {
  pointer-events: auto;
}
.campaign-preview .video-play-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 2em;
  text-shadow: 0 0 12px rgba(0, 0, 0, 0.45);
  pointer-events: none;
  z-index: 2;
  transition: opacity 0.25s ease;
}
.campaign-preview.is-playing .video-play-overlay {
  opacity: 0;
  visibility: hidden;
}

.campaign-youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.campaign-youtube iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.campaign-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: rgba(243, 175, 205, 0.4);
  color: #6a6568;
  border: 1px solid rgba(243, 175, 205, 0.28);
  border-radius: 0;
  padding: 14px 18px;
  font-size: 0.95em;
  font-weight: bold;
  cursor: pointer;
  transition: opacity 0.35s ease, background 0.35s ease;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  box-sizing: border-box;
  letter-spacing: 0.08em;
}
.campaign-btn.campaign-btn-theme {
  position: relative;
  background: #f3afcd;
  border-color: transparent;
  color: #6a6568;
  justify-content: center;
  padding: 14px 20px;
}
.campaign-btn:hover {
  opacity: 0.82;
  transform: none;
}
@media screen and (max-width: 960px) {
  .campaign-btn {
    padding: 12px 12px;
    font-size: 0.85em;
    gap: 6px;
  }
  .campaign-btn.campaign-btn-theme {
    display: block;
    padding: 13px 14px;
    font-size: 1em;
  }
}

.campaign-btn-label {
  flex: 0 1 auto;
  text-align: center;
}

.campaign-btn-theme .campaign-btn-label {
  width: 100%;
  padding: 0 7.5em;
  box-sizing: border-box;
  text-align: center;
}
@media screen and (max-width: 960px) {
  .campaign-btn-theme .campaign-btn-label {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0 7.4em 0 0;
    text-align: left;
    white-space: nowrap;
    font-size: 1.1em;
    letter-spacing: 0.02em;
    line-height: 1.2;
  }
}

.campaign-btn.campaign-btn-expect {
  background: #d0e2ee;
}
.campaign-btn.campaign-btn-expect .campaign-btn-post {
  color: #5f98bc;
}
.campaign-btn.campaign-btn-expect:hover .campaign-btn-post {
  color: #5f98bc;
}

.campaign-btn-label-expect {
  color: #6a6568;
}

.campaign-btn-post {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  padding: 0.45em 0.9em;
  background: #FFFFFF;
  color: #e89bbb;
  border-radius: 50px;
  box-shadow: 0 1px 3px rgba(106, 101, 104, 0.12);
  font-size: 0.8em;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  transition: color 0.35s ease;
  white-space: nowrap;
}
.campaign-btn-post .svg-inline--fa,
.campaign-btn-post i {
  font-size: 0.95em;
}
.campaign-btn:hover .campaign-btn-post {
  color: #6a6568;
}
@media screen and (max-width: 960px) {
  .campaign-btn-post {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.7em 1.15em;
    font-size: 0.92em;
    gap: 0.3em;
    letter-spacing: 0.04em;
  }
}

#share-sns-modal {
  overflow: visible !important;
}
#share-sns-modal .iziModal-content {
  padding: 0;
  overflow: visible;
}
#share-sns-modal .iziModal-wrap {
  overflow: visible;
}

.share-sns-modal-close {
  position: absolute;
  top: -48px;
  right: 0;
  z-index: 10;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  color: #f3afcd;
  font-size: 42px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.3s ease;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
.share-sns-modal-close:hover {
  opacity: 0.7;
}

.share-sns-modal-inner {
  padding: 36px 28px 28px;
  text-align: center;
  box-sizing: border-box;
}

.share-sns-modal-title {
  margin: 0 0 10px;
  font-size: 1.05em;
  font-weight: bold;
  color: #000000;
  letter-spacing: 0.06em;
  line-height: 1.5;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}

.share-sns-modal-hashtag {
  margin: 0 0 28px;
  font-size: 0.95em;
  font-weight: bold;
  color: #e17891;
  letter-spacing: 0.04em;
  line-height: 1.5;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
.share-sns-modal-hashtag span {
  white-space: nowrap;
}

.share-sns-modal-btns {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 320px;
  margin: 0 auto 22px;
}

.share-sns-modal-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #e17891;
  color: #fff;
  border: none;
  border-radius: 0;
  padding: 16px 18px;
  font-size: 1em;
  font-weight: bold;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: opacity 0.35s ease;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  box-sizing: border-box;
}
.share-sns-modal-btn.share_ig {
  background: rgba(225, 120, 145, 0.85);
}
.share-sns-modal-btn.share_x {
  background: rgba(106, 101, 104, 0.88);
}
.share-sns-modal-btn:hover {
  opacity: 0.85;
}

.share-sns-modal-btn-icon {
  font-size: 1.15em;
  line-height: 1;
}

.share-sns-modal-note {
  margin: 0;
  font-size: 0.72em;
  color: #9a9598;
  line-height: 1.6;
  letter-spacing: 0.02em;
  text-align: left;
}

#social-embed-section {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  width: 95%;
  margin: 0 auto 4rem;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  #social-embed-section {
    width: 90%;
    margin-bottom: 5rem;
  }
}

.social-embed-ttl {
  width: 100%;
  text-align: center;
  margin: 0 auto 28px;
  padding: 0;
  color: #f3afcd;
  font-weight: bold;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-size: 1rem;
  letter-spacing: 0.28em;
}
.social-embed-ttl span {
  display: block;
  width: fit-content;
  margin: 0 auto 6px;
  font-family: din-next-w01-light, YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  color: #f3afcd;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 1.5rem;
  letter-spacing: 0.28em;
  padding: 0;
}
@media screen and (min-width: 960px) {
  .social-embed-ttl span {
    font-size: 1.7rem;
  }
}

.social-embed-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 10px;
  width: 100%;
  max-width: 280px;
}
@media screen and (min-width: 960px) {
  .social-embed-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: 100%;
  }
}

.social-embed-item {
  margin: 0;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(243, 175, 205, 0.28);
  box-shadow: none;
}
@media screen and (min-width: 960px) {
  .social-embed-item {
    min-height: 1000px;
  }
}

.social-embed-frame {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: hidden;
}

.social-embed-scale {
  transform-origin: top left;
  will-change: transform;
}

.social-embed-frame blockquote {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

.social-embed-frame iframe {
  display: block !important;
  margin: 0 !important;
}

.howto-toggle {
  color: #6a6568;
  width: 100%;
  padding: 20px 44px;
  background: rgba(243, 175, 205, 0.38);
  border: 1px solid rgba(243, 175, 205, 0.28);
  cursor: pointer;
  text-align: center;
  font-size: 1.05rem;
  letter-spacing: 0.14em;
  font-weight: bold;
  transition: opacity 0.35s ease, background 0.35s ease;
  position: relative;
  margin: 0 auto 1rem;
  border-radius: 0;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  border-radius: 3px;
}
@media screen and (min-width: 960px) {
  .howto-toggle {
    padding: 22px 56px;
  }
}
.howto-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 16px;
  height: 9px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12' fill='none'%3E%3Cpath d='M2 2L12 10L22 2' stroke='%23e89bbb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}
@media screen and (min-width: 960px) {
  .howto-toggle::after {
    right: 24px;
    width: 18px;
    height: 10px;
  }
}
.howto-toggle.is-open::after {
  transform: translateY(-50%) rotate(180deg);
}
.howto-toggle .toggle-text {
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 1.3rem;
}

.howto-content {
  background: #FFFFFF;
  border-radius: 0;
}
.howto-content.is-always-open {
  max-height: none;
  overflow: visible;
}

.howto-notes-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.45s ease;
}
.howto-notes-content.is-open {
  max-height: 12000px;
}

.howto-wrapper {
  padding: 24px 3%;
  background: linear-gradient(180deg, rgba(243, 175, 205, 0.07), rgba(208, 226, 238, 0.08));
}
@media screen and (min-width: 960px) {
  .howto-wrapper {
    padding: 40px 5%;
  }
}

.howto-inner {
  display: flex;
  justify-content: center;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.howto-inner .howto-box {
  width: 100%;
  border: 1px solid rgba(243, 175, 205, 0.35);
  margin: 0 auto;
  padding: 0;
  background-color: #FFFFFF;
  box-shadow: 0 8px 24px rgba(106, 101, 104, 0.08);
}

.howto-subtitle {
  display: block;
  padding: 24px 18px 20px;
  margin: 0;
  background: rgba(243, 175, 205, 0.16);
  border-bottom: 1px solid rgba(243, 175, 205, 0.28);
  color: #6a6568;
  font-size: 1.3rem;
  line-height: 1.5;
  font-weight: bold;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  text-align: center;
}
@media screen and (min-width: 960px) {
  .howto-subtitle {
    padding: 26px 24px 22px;
    font-size: 1.4rem;
  }
}
.howto-subtitle .subtitle-note {
  font-size: 0.72rem;
  display: block;
  color: #9a9598;
  margin-top: 0.55rem;
  font-weight: normal;
  line-height: 1.6;
}

.howto-steps {
  display: grid;
  gap: 12px;
  padding: 22px 18px;
  margin: 0;
}
@media screen and (min-width: 960px) {
  .howto-steps {
    padding: 28px 5%;
  }
}
.howto-steps li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 18px;
  background: linear-gradient(135deg, #FFFFFF 0%, rgba(243, 175, 205, 0.08) 100%);
  border: 1px solid rgba(243, 175, 205, 0.32);
  border-radius: 3px;
  box-shadow: 0 3px 10px rgba(106, 101, 104, 0.05);
  line-height: 1.7;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
.howto-steps li p {
  width: 100%;
  padding-top: 0.05em;
  font-size: 0.95rem;
  line-height: 1.7;
  text-align: left;
  word-break: normal;
  overflow-wrap: break-word;
}
@media screen and (min-width: 960px) {
  .howto-steps li {
    display: grid;
    grid-template-columns: 84px 1fr;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
  }
}

.howto-step-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  min-height: 2.1em;
  padding: 0.15em 0.45em;
  background: #f3afcd;
  border: 1px solid #f3afcd;
  border-radius: 50px;
  color: #FFFFFF;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  box-sizing: border-box;
}

.howto-step-content {
  width: 100%;
  min-width: 0;
}

.howto-hashtag {
  color: #8fb8c9;
  font-weight: 700;
}

.howto-links {
  margin: 16px 0 0;
  padding: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
@media screen and (min-width: 960px) {
  .howto-links {
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    gap: 18px;
    padding: 0;
  }
}
.howto-links .link-label {
  color: #6a6568;
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 0;
  width: 100%;
  max-width: 350px;
  font-weight: bold;
}
@media screen and (min-width: 960px) {
  .howto-links .link-label {
    flex: 0 1 280px;
    max-width: 280px;
    margin-bottom: 0;
  }
}
.howto-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 7px;
  background: #fce0ec;
  padding: 14px 20px;
  border-radius: 0;
  color: #6a6568;
  font-size: 0.92rem;
  font-weight: bold;
  border: 1px solid rgba(243, 175, 205, 0.35);
  width: 100%;
  max-width: 350px;
  line-height: 1.5;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  text-decoration: none;
  box-sizing: border-box;
  border-radius: 50px;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
@media screen and (min-width: 960px) {
  .howto-links a {
    max-width: none;
  }
}
.howto-links a:hover {
  opacity: 0.82;
  transform: translateY(-1px);
}
.howto-links a i {
  font-size: 1.25rem;
  margin-right: 1rem;
  vertical-align: baseline;
}

.howto-notes {
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 960px) {
  .howto-notes {
    width: 90%;
  }
}
.howto-notes h4 {
  font-size: 1.125rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
}
.howto-notes .notes-expl {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1rem;
}
.howto-notes .notes-work-title,
.howto-notes .notes-campaign-title {
  font-weight: bold;
  margin-bottom: 0.35rem;
  line-height: 1.6;
}
.howto-notes .notes-campaign-title {
  margin-bottom: 1rem;
}
.howto-notes .notes-title {
  font-size: 0.9rem;
  line-height: 1.5;
  margin-bottom: 0.5rem;
  font-weight: bold;
}
.howto-notes p {
  font-size: 1rem;
  line-height: 1.5;
}
.howto-notes ul {
  margin-bottom: 1rem;
}
@media screen and (min-width: 960px) {
  .howto-notes ul {
    margin-bottom: 2rem;
  }
}
.howto-notes ul li {
  margin-bottom: 8px;
  font-size: 0.875rem;
  line-height: 1.5;
  text-indent: -1em;
  padding-left: 1em;
}
.howto-notes ul li a {
  display: inline;
  color: #04ace9;
  text-decoration: none;
}

.comment-section {
  padding: 40px 0 100px;
  min-height: auto;
  background: #eaf3f8;
  position: relative;
}
.comment-section .contents-inner {
  max-width: 1024px;
  margin: 0 auto;
  width: 95%;
}
@media screen and (min-width: 960px) {
  .comment-section .contents-inner {
    padding: 0;
    width: 90%;
  }
}

.comment-attribution {
  font-size: 0.75rem;
  text-align: center;
  margin: 0 auto 28px;
  line-height: 1.5;
  width: 100%;
  color: #9a9598;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .comment-attribution {
    font-size: 0.8rem;
    margin-bottom: 36px;
  }
}

.comment-list {
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}
@media screen and (min-width: 960px) {
  .comment-list {
    justify-content: flex-start;
  }
}
.comment-list li {
  color: #6a6568;
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  background: rgba(255, 255, 255, 0.72);
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .comment-list li {
    width: calc(50% - 10px);
  }
}

.comment-inner {
  padding: 28px 22px;
}

.comment-author {
  text-align: left;
  font-size: 1.4rem;
  font-feature-settings: "palt";
  padding: 0 0 0.9em;
  width: 100%;
  color: #e89bbb;
  font-weight: bold;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", "HGS明朝E", "MS PMincho", YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  letter-spacing: 0.08em;
}
.comment-author span {
  font-size: 0.57em;
  margin: 6px 0 0 0;
  line-height: 1.5;
  display: block;
  color: #9a9598;
  font-weight: normal;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
}
@media screen and (min-width: 960px) {
  .comment-author {
    font-size: 1.35rem;
  }
}

.comment-text {
  color: #6a6568;
  padding: 0;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
  margin: 0;
  text-align: justify;
  word-break: break-word;
}
.comment-text strong {
  font-size: 1.1em;
}
@media screen and (min-width: 960px) {
  .comment-text {
    font-size: 0.95rem;
  }
}

.post-section {
  padding: 0 0 80px 0;
}
@media screen and (min-width: 960px) {
  .post-section {
    padding: 0 0 150px 0;
  }
}

.post-inner {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .post-inner {
    max-width: none;
    width: 95%;
  }
}

.post-btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
  padding: 0 20px;
}
@media screen and (min-width: 960px) {
  .post-btns {
    flex-direction: row;
    justify-content: center;
    gap: 30px;
    padding: 0;
  }
}
.post-btns .btn-post, .post-btns .btn-more, .post-btns .btn-theater {
  display: block;
  width: 100%;
  max-width: 280px;
  height: 56px;
  line-height: 56px;
  background: rgba(208, 226, 238, 0.75);
  color: #6a6568;
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 1.05rem;
  letter-spacing: 0.14em;
  transition: opacity 0.35s ease, background 0.35s ease;
  cursor: pointer;
  border: 1px solid rgba(243, 175, 205, 0.28);
  border-radius: 50px;
}
@media screen and (min-width: 960px) {
  .post-btns .btn-post, .post-btns .btn-more, .post-btns .btn-theater {
    width: 300px;
    font-size: 0.95rem;
  }
}
.post-btns .btn-post:hover, .post-btns .btn-more:hover, .post-btns .btn-theater:hover {
  opacity: 1;
  background: rgba(243, 175, 205, 0.32);
}
.post-btns .btn-post:active, .post-btns .btn-more:active, .post-btns .btn-theater:active {
  box-shadow: none;
}
.post-btns .btn-more {
  background: rgba(243, 175, 205, 0.35);
  color: #6a6568;
}
.post-btns .btn-more:hover {
  opacity: 1;
  background: rgba(243, 175, 205, 0.48);
}
.post-btns .btn-post {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  line-height: 1.2;
  height: auto;
  min-height: 56px;
  padding: 0 18px;
  box-sizing: border-box;
}
.post-btns .btn-post i {
  font-size: 1.05rem;
  line-height: 1;
  color: inherit;
}
.post-btns .btn-post span {
  line-height: 1.2;
}

.grid {
  width: 100%;
  margin: 30px auto 0;
}
@media screen and (min-width: 960px) {
  .grid {
    margin-top: 40px;
  }
}

.grid-item {
  width: 280px;
  border-radius: 0;
  background: #FFFFFF;
  margin-bottom: 20px;
}
@media screen and (min-width: 960px) {
  .grid-item {
    width: calc((100% - 50px) / 5);
    margin-bottom: 30px;
  }
}
@media screen and (min-width: 1440px) {
  .grid-item {
    width: calc((100% - 60px) / 6);
  }
}

.post-img-container {
  width: 90%;
  margin: 10px auto;
  overflow: hidden;
}
.post-img-container a {
  display: block;
  overflow: hidden;
}
.post-img-container a:hover .post-img, .post-img-container a:focus-visible .post-img {
  transform: scale(1.035);
}

.post-img {
  width: 100%;
  border-radius: 0;
  padding: 0;
  display: block;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.post-img:hover {
  transform: scale(1.035);
}

.tweet-text {
  line-height: 1.8;
  text-align: justify;
  width: 90%;
  margin: 0 auto;
  font-size: 0.875rem;
}

.tweet-date {
  text-align: right;
  margin: 10px auto;
  width: 90%;
  font-size: 0.5rem;
  color: #9e9e9e;
}

.tweet-link {
  padding: 14px 0;
  border-radius: 0;
  font-size: 0.8125rem;
  background: #f7c5d9;
  text-align: right;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.tweet-link:hover {
  background: rgb(242.0545454545, 161.1454545455, 193.5090909091);
  color: #fff;
}
.tweet-link:hover a, .tweet-link:hover .post-from {
  color: #fff;
}
.tweet-link a {
  color: #6a6568;
  text-decoration: none;
  font-weight: bold;
}

.post-from {
  color: #6a6568;
  padding-left: 5px;
}

#footer {
  position: relative;
  padding: 70px 0 120px !important;
  z-index: 999;
  background: linear-gradient(180deg, rgba(243, 175, 205, 0.14) 0%, rgba(234, 243, 248, 0.7) 100%);
  min-height: auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
}
@media screen and (min-width: 960px) {
  #footer {
    padding: 90px 0 140px !important;
    min-height: auto;
  }
}

.footer-logo {
  text-align: center;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(94vw, 560px);
  padding: 0 10px;
  box-sizing: border-box;
}
.footer-logo .logo-main {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin-bottom: 12px;
}
.footer-logo .logo-roadshow {
  display: block;
  width: min(30vw, 100px);
  max-width: 100%;
  height: auto;
}
@media screen and (min-width: 960px) {
  .footer-logo {
    position: absolute;
    top: 50%;
    left: 29%;
    transform: translate(-50%, -50%);
    margin-bottom: 0;
    margin-top: 0;
    width: min(48vw, 760px);
    padding: 0 16px;
  }
  .footer-logo .logo-main {
    width: 100%;
    max-width: none;
    margin-bottom: 16px;
  }
  .footer-logo .logo-roadshow {
    width: min(14vw, 140px);
  }
}

.share-container {
  text-align: center;
}

.footer-link {
  text-align: center;
  margin-bottom: 2rem;
  padding: 0 20px;
}
@media screen and (min-width: 960px) {
  .footer-link {
    padding: 0;
  }
}
.footer-link .footer-official-btn {
  display: block;
  width: 100%;
  max-width: 280px;
  height: 60px;
  line-height: 60px;
  margin: 0 auto;
  border: 1px solid rgba(243, 175, 205, 0.28);
  color: #6a6568;
  background: #FFFFFF;
  font-size: 1.1rem;
  font-weight: bold;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  letter-spacing: 0.25em;
  text-decoration: none;
  transition: background 0.35s ease, border-color 0.35s ease;
  border-radius: 0;
  box-sizing: border-box;
  border-radius: 50px;
}
@media screen and (min-width: 960px) {
  .footer-link .footer-official-btn {
    width: 300px;
    font-size: 1rem;
  }
}
.footer-link .footer-official-btn:hover {
  background: #f7c5d9;
  border-color: #f7c5d9;
  color: #6a6568;
}
.footer-link .footer-sns {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin: 20px auto 0;
  padding: 0;
  list-style: none;
  width: 100%;
  max-width: 280px;
  box-sizing: border-box;
}
@media screen and (min-width: 960px) {
  .footer-link .footer-sns {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    max-width: 940px;
    gap: 14px;
    margin-top: 24px;
  }
}
.footer-link .footer-sns > li {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 960px) {
  .footer-link .footer-sns > li {
    width: 300px;
  }
}
.footer-link .footer-sns-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid rgba(243, 175, 205, 0.28);
  background: #FFFFFF;
  color: #6a6568;
  text-decoration: none;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: bold;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  box-sizing: border-box;
  transition: background 0.35s ease, border-color 0.35s ease;
  border-radius: 50px;
}
@media screen and (min-width: 960px) {
  .footer-link .footer-sns-btn {
    font-size: 0.9rem;
    min-height: 52px;
  }
}
.footer-link .footer-sns-btn i {
  font-size: 1.15rem;
  line-height: 1;
  color: #6a6568;
}
.footer-link .footer-sns-btn span {
  line-height: 1.2;
}
.footer-link .footer-sns-btn:hover {
  background: rgba(243, 175, 205, 0.32);
  border-color: #f7c5d9;
  color: #6a6568;
}
.footer-link .footer-sns-btn:hover i {
  color: #6a6568;
}
.footer-link .copyright {
  margin-top: 60px;
  font-size: 0.7rem;
  color: #9a9598;
  letter-spacing: 0.05em;
}

#social-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sns-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  margin: 0;
  border-radius: 0;
  border: 1px solid rgba(243, 175, 205, 0.55);
  background: rgba(255, 255, 255, 0.92);
  transition: all 0.3s ease;
  list-style: none;
  border-radius: 50px;
}
.sns-btn:hover {
  background: rgba(243, 175, 205, 0.28);
  border-color: #f3afcd;
}

.share-link-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  color: #6a6568;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.share-link-btn .share-link-btn-icon,
.share-link-btn i {
  display: block;
  font-size: 22px;
  line-height: 1;
  color: #6a6568;
  text-decoration: none;
}
.share-link-btn:hover, .share-link-btn:focus, .share-link-btn:active, .share-link-btn:visited {
  color: #6a6568;
  text-decoration: none !important;
}
.share-link-btn:hover .share-link-btn-icon,
.share-link-btn:hover i, .share-link-btn:focus .share-link-btn-icon,
.share-link-btn:focus i, .share-link-btn:active .share-link-btn-icon,
.share-link-btn:active i, .share-link-btn:visited .share-link-btn-icon,
.share-link-btn:visited i {
  color: #6a6568;
}

.custom-facebook-btn .icon-facebook3,
.custom-line-btn .icon-line,
.custom-twitter-btn .icon-xlogo {
  color: #6a6568;
}

.flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-center {
  justify-content: center;
}

.share-title {
  font-family: din-next-w01-light, YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  color: #e89bbb;
  font-weight: normal;
  text-transform: uppercase;
  font-size: 1rem;
  letter-spacing: 0.28em;
  margin: 0 auto 18px;
}
@media screen and (min-width: 960px) {
  .share-title {
    font-size: 1rem;
    margin: 0 auto 22px;
  }
}

.maeuri-container {
  position: fixed;
  right: 0;
  padding: 5px 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.58);
  width: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.5s ease;
  z-index: 1000;
}
.maeuri-container.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.maeuri-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  text-align: center;
  justify-content: center;
  gap: 5px;
}
.maeuri-container img {
  width: 110px;
  margin: 5px;
}
.maeuri-container img:hover {
  opacity: 0.5;
}
.maeuri-container .maeuri-theater-bnr {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 110px;
  height: 40px;
  margin: 5px;
  background: #f3afcd;
  color: #FFFFFF;
  text-decoration: none;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  transition: opacity 0.35s ease;
}
.maeuri-container .maeuri-theater-bnr:hover {
  opacity: 0.7;
}
@media screen and (min-width: 960px) {
  .maeuri-container img {
    width: 150px;
  }
  .maeuri-container .maeuri-theater-bnr {
    width: 150px;
    height: 48px;
    font-size: 0.95rem;
  }
}

.iziModal .iziModal-header {
  background: none !important;
  padding: 25px 0;
  box-shadow: none !important;
}
.iziModal .iziModal-header-title,
.iziModal .iziModal-header-subtitle {
  display: none;
}
.iziModal .iziModal-button-close {
  background: url(../img/close.png) no-repeat 50% 50%;
}

.preview {
  padding: 3% 10% 3%;
}

.preview-inner {
  box-shadow: none;
}
.preview-inner img {
  padding: 0 10% 10%;
}

.preview-txt {
  color: #000000;
  padding: 5% 10% 3%;
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, "Yu Gothic UI", Meiryo, "MS PGothic", sans-serif;
  line-height: 1.5;
  font-size: 0.8125rem;
}

.share-info {
  text-align: center;
  color: #607dff;
  font-weight: bold;
  font-size: 1.1875rem;
  line-height: 1.5;
  width: 92%;
  margin: 0 auto;
}
.share-info span {
  display: block;
  font-size: 0.8125rem;
  color: #000000;
}

.btn-share-modal-container {
  display: block;
  width: 80%;
  margin: 0 auto 28px;
  max-width: 390px;
  height: 60px;
  line-height: 60px;
  text-decoration: none;
  text-align: center;
  transition: all 0.5s;
  font-size: 1.0625rem;
  letter-spacing: 2px;
  cursor: pointer;
  background: #d0e2ee;
}
.btn-share-modal-container .entry-btn {
  color: #6a6568;
  width: 100%;
  display: block;
  cursor: pointer;
  text-decoration: none;
}
.btn-share-modal-container .entry-btn:hover {
  color: #6a6568;
  background: #f7c5d9;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes marquee-reverse {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}
.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}/*# sourceMappingURL=style.css.map */