@charset "UTF-8";
@import "./reset.css";
:root {
  /* 2026年「ALICE×ALICE」：ステンドグラスの金・深緑・赤・青。 */
  --campaign-end-text-color: #a72835;
  --campaign-page-bg: #fdf9ee;
  --campaign-surface: #fffdf6;
  --campaign-ink: #30291f;
  --campaign-gold: #b4862b;
  --campaign-gold-light: #ead8a4;
  --campaign-green: #155d52;
  --campaign-green-dark: #0b4039;
  --campaign-red: #ad2d3b;
  --campaign-blue: #197f99;
  --campaign-prize-accent: #b4862b;
  --campaign-ezo-accent: #197f99;
}

body, html {
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

body {
  margin: 0 auto;
  justify-content: center;
  display: flex;
  flex-direction: column;
  position: relative;
  background: #fff;
}

.campaign-lp::before {
  position: fixed;
  top: 0;
  left: 50%;
  z-index: 0;
  width: min(100%, 430px);
  height: 100vh;
  transform: translateX(-50%);
  background-color: var(--campaign-page-bg);
  background-image:
    linear-gradient(rgba(253, 249, 238, 0.9), rgba(253, 249, 238, 0.9)),
    url("../images/bg-stained-glass.jpg");
  background-repeat: repeat;
  background-size: auto, 430px 430px;
  background-position: 0 0, center top;
  pointer-events: none;
  content: "";
}

.campaign-lp > .top-section,
.campaign-lp > .main-section,
.campaign-lp > .details-section,
.campaign-lp > .contact-section,
.campaign-lp > .top-footer {
  position: relative;
  z-index: 1;
}

.figure {
  margin: 0 auto;
  justify-content: center;
  align-items: center;
  display: flex;
  flex-direction: column;
  width: 100%;
}

a {
  word-break: break-all;
  text-decoration: none;
}

iframe {
  border: none;
}

.text {
  font-size: 14px;
  font-weight: 500;
  font-family: "Noto Sans JP", sans-serif;
  color: #3D3D3D;
  line-height: 2em;
  letter-spacing: 0.05em;
  margin-bottom: 0px;
  margin-top: 0px;
}

figcaption {
  font-size: 12px;
  font-weight: 500;
  text-align: left;
  margin-top: 5px;
}

.top-section {
  display: flex;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  padding: 0;
  height: auto;
  background: transparent;
}

.top-section-heading {
  margin: 0;
  width: 100%;
  line-height: 0;
}

.top-section-key-visual {
  display: block;
  width: 100%;
  height: auto;
}

.top-section-apply {
  position: fixed;
  bottom: 20px;
  right: 18px;
  z-index: 30;
  display: flex;
  width: 94px;
  height: 94px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  clip-path: polygon(25% 5%, 75% 5%, 95% 25%, 95% 75%, 75% 95%, 25% 95%, 5% 75%, 5% 25%);
  color: #fff;
  background: linear-gradient(145deg, #f4d77a, #9b6716);
  filter: drop-shadow(0 7px 7px rgba(48, 20, 17, 0.28));
  font-size: 10px;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
}

.top-section-apply::before {
  position: absolute;
  inset: 4px;
  z-index: -1;
  clip-path: inherit;
  background: linear-gradient(145deg, #cf4250, #861d2b);
  content: "";
}

.top-section-apply strong {
  font-size: 14px;
  letter-spacing: 0.04em;
}

.thankyou-top-section {
  height: 450px;
  overflow: hidden;
  width: 100%;
  position: relative;
  max-width: 430px;
  margin: 0 auto;
  justify-content: center;
}

.thankyou-top-section-bg-sp {
  margin: 0;
  width: 100%;
  display: block;
  z-index: 3;
}

.thankyou-top-section-title-sp {
  position: absolute;
  top: min(12.2666666667vw, 46px);
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: auto;
  z-index: 3;
}

.thankyou-top-section-thankyou-sp {
  position: absolute;
  top: min(79.7333333333vw, 299px);
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: auto;
  z-index: 3;
}

.thankyou-top-section-gradient-sp {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 345px;
  z-index: 2;
}

.thankyou-contact-section {
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  background-color: var(--campaign-green-dark);
  overflow-x: hidden;
  padding-bottom: 119px;
}

.thankyou-contact-section .section-wrapper {
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
}

.entry-top-section {
  height: 450px;
  overflow: hidden;
  width: 100%;
  position: relative;
  max-width: 430px;
  margin: 0 auto;
  justify-content: center;
  z-index: 1;
}

.entry-top-section-bg-sp {
  margin: 0;
  width: 100%;
  height: auto;
  display: block;
  z-index: 1;
}

.entry-top-section-companies-sp {
  position: absolute;
  top: min(12.2666666667vw, 46px);
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: auto;
}

.entry-top-section-title-sp {
  position: absolute;
  top: min(42.9333333333vw, 161px);
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: auto;
  z-index: 3;
}

.entry-top-section-gradient-sp {
  position: absolute;
  bottom: 0px;
  width: 100%;
  height: 154px;
  z-index: 2;
}

.entry-more-section-gradient-sp {
  position: absolute;
  top: 0px;
  width: 100%;
  height: 154px;
  z-index: 1;
  overflow: hidden;
}

.entry-collection-img {
  position: absolute;
  bottom: 0;
  margin-bottom: -10px;
  width: 100%;
  z-index: 20;
  overflow: visible;
}

.entry-form-img {
  position: absolute;
  width: 100%;
  max-width: 100%;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  height: auto;
}

.main-section {
  width: 100%;
  position: relative;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

.details-section {
  width: 100%;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  overflow-x: hidden;
}

.contact-section {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  background-color: var(--campaign-green-dark);
  background-image:
    linear-gradient(rgba(11, 64, 57, 0.9), rgba(11, 64, 57, 0.96)),
    url("../images/bg-stained-glass.jpg");
  background-size: auto, 430px 430px;
  overflow-x: hidden;
}

.top-footer {
  width: 100%;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  overflow-x: hidden;
}

.section-wrapper {
  width: 82%;
  justify-content: center;
}

.story-ornament {
  display: block;
  width: 112%;
  max-width: none;
  height: auto;
  margin-right: -6%;
  margin-left: -6%;
  object-fit: contain;
}

.campaign-period {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: 430px;
  padding: 24px 16px 26px;
  border-top: 3px solid var(--campaign-gold);
  border-bottom: 3px solid var(--campaign-gold);
  background-color: var(--campaign-green-dark);
  background-image:
    linear-gradient(rgba(11, 64, 57, 0.88), rgba(11, 64, 57, 0.93)),
    url("../images/bg-stained-glass.jpg");
  background-position: center;
  background-size: auto, 300px 300px;
  color: var(--campaign-surface);
  text-align: center;
}

.campaign-period::before,
.campaign-period::after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 13.8vw;
  max-height: 59px;
  background: url("../images/ornament-graphic.png") center / 100% 100% no-repeat;
  pointer-events: none;
  content: "";
}

.campaign-period::before {
  top: max(-6.9vw, -29px);
}

.campaign-period::after {
  bottom: max(-6.9vw, -29px);
}

.campaign-period__title {
  margin: 0;
  color: var(--campaign-gold-light);
  font-size: clamp(15px, 4.6vw, 18px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  white-space: nowrap;
}

.campaign-period__dates {
  margin: 5px 0 0;
  font-size: clamp(11px, 3.6vw, 15px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.6;
  white-space: nowrap;
}

.prize-intro {
  box-sizing: border-box;
  width: 100%;
  max-width: 430px;
  margin: 0 0 100px;
  padding: 34px 16px 0;
  color: var(--campaign-ink);
  text-align: center;
}

.prize-intro p {
  margin: 0;
}

.prize-intro__eyebrow {
  color: #896218;
  font-family: Georgia, serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-shadow: 0 1px 2px #fffdf6;
}

.prize-intro__title {
  margin-top: 12px !important;
  color: var(--campaign-green-dark);
  font-family: Georgia, "Noto Serif JP", serif;
  font-size: clamp(28px, 8.8vw, 38px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 0 rgba(180, 134, 43, 0.42), 0 0 14px #fffdf6;
}

.prize-intro__copy {
  margin-top: 22px !important;
  font-size: clamp(12px, 3.4vw, 14px);
  font-weight: 700;
  line-height: 2;
  text-shadow: 0 1px 3px #fffdf6, 0 0 10px #fffdf6;
}

.prize-intro__copy strong {
  color: var(--campaign-red);
  font-size: clamp(15px, 4vw, 18px);
}

.section-divider {
  position: relative;
  z-index: 10;
  width: min(100%, 430px);
  height: 0;
  margin: 0 auto;
}

.section-divider img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  transform: translateY(-50%);
}

.entry-container {
  display: flex;
  flex-direction: column;
  margin-top: 20px;
  margin-bottom: 30px;
  max-width: 75%;
  gap: 20px;
}

.left-aligned-text-area {
  align-self: flex-start;
  text-align: left;
  width: auto;
}

.center-aligned-text-area {
  align-self: flex-start;
  text-align: center;
  width: auto;
}

.left-right-pair {
  display: flex;
  flex-direction: row;
  gap: 5px;
  align-items: flex-start;
}

.left-side {
  padding-top: 1px;
  display: flex;
  white-space: nowrap;
  flex-shrink: 0;
  align-items: center;
}

.right-side {
  flex: 1;
}

.box-diagonal-left {
  left: -8px;
  bottom: 7px;
  position: absolute;
  height: 23px;
  width: 12px;
  background-color: var(--campaign-green);
  -webkit-mask: url("../images/bg-diagonal-left.png") center / contain no-repeat;
  mask: url("../images/bg-diagonal-left.png") center / contain no-repeat;
}
.box-diagonal-left-guest {
  left: -15px;
  bottom: 0px;
  position: absolute;
  height: 23px;
  width: auto;
}

.box-diagonal-right {
  right: -8px;
  bottom: 7px;
  position: absolute;
  height: 23px;
  width: 12px;
  background-color: var(--campaign-green);
  -webkit-mask: url("../images/bg-diagonal-right.png") center / contain no-repeat;
  mask: url("../images/bg-diagonal-right.png") center / contain no-repeat;
}
.box-diagonal-right-guest {
  right: -15px;
  bottom: 0px;
  position: absolute;
  height: 23px;
  width: auto;
}

.prize-a-feature {
  width: 100%;
  margin: 0 0 30px;
  color: var(--campaign-red);
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  text-shadow: 0 1px 0 #fffdf6;
}

.prize-a-feature__title,
.prize-a-feature__count {
  display: block;
}

.prize-a-feature__title {
  font-size: clamp(21px, 5.6vw, 26px);
  letter-spacing: 0.015em;
}

.prize-a-feature__count {
  margin-top: 10px;
  padding-top: 2px;
  border-top: 1px solid var(--campaign-red);
  font-size: clamp(16px, 4.5vw, 20px);
}

.prize-a-feature__count strong {
  font-size: 1.35em;
  font-weight: 900;
}

.img-fruitsbasket {
  margin-bottom: 5px;
  width: 80%;
  height: auto;
}

.img-performance-logo {
  margin-top: 15px;
  margin-bottom: 15px;
  width: 100%;
  height: auto;
}

.img-guest-centered {
  width: 100%;
  height: auto;
}

.prize-b-feature {
  width: 100%;
  margin: 0 0 16px;
  color: var(--campaign-ezo-accent);
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.prize-b-feature__title,
.prize-b-feature__count {
  display: block;
}

.prize-b-feature__title {
  font-size: clamp(23px, 6.5vw, 31px);
  white-space: nowrap;
}

.prize-b-feature__count {
  margin-top: 8px;
  padding-top: 5px;
  border-top: 1px solid var(--campaign-ezo-accent);
  font-size: clamp(19px, 5.2vw, 24px);
}

.prize-b-feature__title strong {
  font-size: 1.2em;
  font-weight: 900;
}

.prize-b-feature__count strong {
  font-size: 1.15em;
  font-weight: 900;
}

.box-apply .tax-note {
  font-size: 0.7em;
}

.box-apply .center-aligned-text-area {
  align-self: center;
  width: 100%;
}

.img-ezoca {
  width: 65%;
  height: auto;
  margin-top: 20px;
}

.img-naturelab {
  width: 80%;
  height: auto;
}

.img-suntory {
  margin-top: 40px;
  margin-bottom: 10px;
  width: 75%;
  height: auto;
}

.img-theatre {
  margin-top: 30px;
  margin-bottom: 30px;
  width: 100%;
  height: auto;
}

.img-entry {
  width: 100%;
  height: auto;
  margin-bottom: 5px;
}

.caution-heading {
  margin-top: 90px;
  margin-bottom: 24px;
  padding: 8px 0 10px;
  border-top: 1px solid var(--campaign-green);
  border-bottom: 1px solid var(--campaign-green);
  color: var(--campaign-green);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-align: center;
}

.img-contact {
  margin-bottom: 20px;
  margin-top: 30px;
  width: 73%;
  height: auto;
}

.img-footer-companies {
  width: 100%;
  height: auto;
  margin-bottom: 120px;
}

.details-box-wrapper {
  display: flex;
  flex-direction: column;
  margin-bottom: 60px;
}

.details-box {
  box-sizing: border-box;
  border: 1px solid var(--campaign-gold);
  padding: 75px 20px 40px 20px;
  background-color: rgba(255, 253, 246, 0.9);
  color: var(--campaign-ink);
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  position: relative;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  box-shadow: 0 10px 30px rgba(48, 41, 31, 0.08);
}

.details-box.box-prize-a {
  padding-bottom: 20px;
}

.venue-address {
  margin: 2px 0 0;
}

.venue-address a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--campaign-green);
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.center-preamble {
  margin: 0 auto;
  color: #FFFFFF;
}

.navy-box {
  color: #FFFFFF;
  background-color: var(--campaign-green);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  justify-content: center;
  align-items: center;
  height: 28px;
  padding: 0 10px 2px;
  display: inline-flex;
  width: 73px;
  min-width: -moz-fit-content;
  min-width: fit-content;
  margin-bottom: 5px;
}

.teal-box {
  color: #FFFFFF;
  background-color: var(--campaign-red);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5em;
  letter-spacing: 0.05em;
  justify-content: center;
  align-items: center;
  height: 62px;
  width: 100%;
}

.white-navy-box {
  display: inline-flex;
  color: var(--campaign-green);
  background-color: #FFFFFF;
  border: 1px var(--campaign-green) solid;
  font-weight: 500;
  font-size: 12px;
  line-height: 1.2;
  letter-spacing: 0.05em;
  justify-content: center;
  align-items: center;
  height: 20px;
  padding: 0 5px;
}

.white-pink-box {
  display: flex;
  color: var(--campaign-red);
  background-color: #FFFFFF;
  border: 1px var(--campaign-red) solid;
  border-radius: 5px;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  justify-content: center;
  align-items: center;
  min-height: 32px;
  width: 100%;
  padding: 4px 8px;
  text-align: center;
}

.btn {
  display: inline-flex;
  width: min(220px, 100%);
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  background: linear-gradient(135deg, #c63a45, #8f202e);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  border: 1px solid #f1d27a;
  border-radius: 90px;
  text-align: center;
  white-space: nowrap;
  word-break: keep-all;
  box-shadow: 0 5px 0 #641721, 0 9px 18px rgba(100, 23, 33, 0.2);
}

.accordion-button {
  width: 100%;
  color: var(--campaign-green);
  height: 40px;
  font-size: 18px;
  line-height: 2em;
  font-weight: 700;
  border-bottom: 1px solid var(--campaign-green);
  margin-top: 20px;
  margin-bottom: 20px;
  position: relative;
}

.accordion-close-img, .accordion-open-img {
  position: absolute;
  right: 0px;
  width: 14px;
  top: 50%;
  transform: translateY(-50%);
  height: auto;
}

.accordion {
  overflow: hidden;
}

.accordion-item {
  border-bottom: none;
}

.accordion-header {
  background: transparent;
  position: relative;
  color: var(--campaign-green);
  font-size: 18px;
  padding-block: 12px;
  font-weight: 700;
  border-bottom: 1px solid var(--campaign-green);
  cursor: pointer;
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0 12px;
}

.accordion-content.open {
  padding: 12px;
}

.accordion-open-img {
  display: block;
}

.accordion-close-img {
  display: none;
}

.accordion-header.open {
  border-bottom: none;
}

.btn-chevron {
  position: absolute;
  right: 0;
  width: 14px;
  top: 50%;
  transform: translateY(-50%);
  height: auto;
}

.accordion-entry {
  overflow: hidden;
}

.accordion-item-entry {
  border-bottom: none;
  overflow: hidden;
  height: auto;
}

.box-decoration-top-left {
  position: absolute;
  top: -50%;
  left: -50%;
}

.box-decoration-bottom-left {
  position: absolute;
  bottom: -20px;
  left: -20px;
  width: 220px;
  height: auto;
}

.box-decoration-top-right {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 220px;
  height: auto;
}

.box-decoration-top {
  position: absolute;
  top: -75px;
  left: 50%;
  transform: translateX(-50%);
  width: 110%;
  max-width: 350px;
  height: auto;
  filter: brightness(0) saturate(100%) invert(58%) sepia(57%) saturate(685%) hue-rotate(4deg) brightness(91%) contrast(90%);
}

.prize-badge {
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 115px;
  filter: drop-shadow(0 4px 4px rgba(48, 41, 31, 0.18));
}

.prize-badge__art {
  display: block;
  width: 100%;
  height: auto;
}

.prize-badge__text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.box-decoration-top-right,
.box-decoration-bottom-left {
  display: none;
}

.is-hide {
  display: none;
}

.is-show {
  display: flex;
}

.js-accordion-content-main-entry {
  justify-content: flex-start;
  max-height: 350px;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.js-expand-btn, .js-expand-main-btn, .js-expand-notice-btn {
  cursor: pointer;
}

.js-bottom-fade-navy {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: linear-gradient(to top, var(--campaign-page-bg), transparent);
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 30;
}

.js-bottom-fade-navy.hidden {
  opacity: 0;
  display: none;
}

.js-accordion-content-notice-entry {
  justify-content: flex-start;
  max-height: 350px;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.js-bottom-fade-white {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: linear-gradient(to top, white, transparent);
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.js-bottom-fade-white.hidden {
  opacity: 0;
  display: none;
}

.truncate-entry-btn-box {
  background-color: var(--campaign-page-bg);
  flex-direction: column;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  height: 100px;
  width: 100%;
  max-width: 430px;
  padding-top: 30px;
  padding-bottom: 60px;
}

.truncate-notice-btn-box {
  background-color: #FFFFFF;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  display: flex;
  height: 100px;
  width: 100%;
  max-width: 430px;
  padding-top: 30px;
  padding-bottom: 60px;
}

.btn-round-navy {
  display: flex;
  flex-direction: column;
  z-index: 30;
  background: var(--campaign-green);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 700;
  border: #FFFFFF 1px solid;
  border-radius: 25px;
  height: 30px;
  width: 255px;
  justify-content: center;
  align-content: center;
  text-align: center;
  position: relative;
}

.btn-round-white {
  display: flex;
  flex-direction: column;
  z-index: 30;
  background: #FFFFFF;
  color: var(--campaign-green);
  font-size: 14px;
  font-weight: 700;
  border: var(--campaign-green) 1px solid;
  border-radius: 25px;
  height: 30px;
  width: 255px;
  justify-content: center;
  align-content: center;
  text-align: center;
  position: relative;
}

.btn-chevron {
  position: absolute;
  right: 10px;
  height: 15px;
  width: 15px;
}

.btn-chevron.open {
  position: absolute;
  transform: rotate(180deg);
  top: 25%;
}

.image-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 3px;
}

.image-grid img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}

.u-navy {
  color: var(--campaign-green);
}

.u-dark {
  color: #3D3D3D;
}

.u-gold {
  color: #EBCD37;
}

.u-pink {
  color: var(--campaign-red);
}

.u-white {
  color: #FFFFFF;
}

.u-teal {
  color: var(--campaign-blue);
}

.u-light-blue {
  color: var(--campaign-blue);
}

.u-light-blue-link {
  color: var(--campaign-blue);
  text-decoration: underline;
}

.u-red {
  color: #FF0000;
}

.u-18px-500 {
  font-size: 18px;
  font-weight: 500;
}

.u-18px-700 {
  font-size: 18px;
  font-weight: 700;
}

.u-14px-900 {
  font-size: 14px;
  font-weight: 900;
}

.u-14px-500 {
  font-size: 14px;
  font-weight: 500;
}

.u-14px-700 {
  font-size: 14px;
  font-weight: 700;
}

.u-13px-700 {
  font-size: 13px;
  font-weight: 700;
}

.u-12px-500 {
  font-size: 12px;
  font-weight: 500;
}

.u-26px-700 {
  font-size: 24px;
  font-weight: 700;
}

.u-lh-200 {
  line-height: 2em;
}

.u-width-73px {
  width: min(19.4666666667vw, 73px);
}

.u-width-117px {
  width: min(31.2vw, 117px);
}

.u-width-138px {
  width: min(31.2vw, 138px);
}

.u-width-88px {
  width: min(23.4666666667vw, 88px);
}

.u-centered-children {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.u-margin-bottom-5px {
  margin-bottom: 5px;
}

.u-margin-bottom-10px {
  margin-bottom: 10px;
}

.u-margin-bottom-15px {
  margin-bottom: 15px;
}

.u-margin-bottom-20px {
  margin-bottom: 20px;
}

.u-margin-bottom-30px {
  margin-bottom: 30px;
}

.u-margin-bottom-119px {
  margin-bottom: 119px;
}

.u-shift-left-4px {
  margin-right: 4px;
  margin-left: -4px;
}

.list-double-maru {
  list-style: none;
  padding-left: 1.5em;
}

.list-double-maru li::before {
  content: "◎";
  margin-left: -1.5em;
  margin-right: 0.5em;
  color: inherit;
  display: inline-block;
  width: 1em;
}

.list-asterisk {
  list-style: none;
  padding-left: 1.5em;
}

.list-asterisk li::before {
  content: "※";
  margin-left: -1.5em;
  margin-right: 0.5em;
  color: inherit;
  display: inline-block;
  width: 1em;
}

ul {
  list-style: none;
  padding-left: 1em;
}

.list-squares {
  font-weight: 500;
  line-height: 2em;
  color: #3D3D3D;
}

.list-squares > li {
  position: relative;
  padding-left: 16px;
}

.list-squares > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 8px;
  height: 8px;
  background: #3D3D3D;
  display: inline-block;
}

.u-14px-squares li::before {
  top: 0.75em;
}

.list-squares ul > li {
  position: relative;
  padding-left: 14px;
}

.list-squares ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9em;
  width: 4px;
  height: 4px;
  background: #3D3D3D;
  border-radius: 50%;
  display: inline-block;
}

.list-pink-bullet > li {
  position: relative;
}

.list-pink-bullet li::before {
  content: "";
  position: absolute;
  left: -16px;
  top: 0.5em;
  width: 10px;
  height: 10px;
  background: var(--campaign-red);
  border-radius: 50%;
  display: inline-block;
}

.list-bullet-points {
  font-weight: 500;
  line-height: 2em;
  color: #3D3D3D;
}

.list-bullet-points > li {
  position: relative;
  padding-left: 16px;
}

.list-bullet-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9em;
  width: 4px;
  height: 4px;
  background: #3D3D3D;
  border-radius: 50%;
  display: inline-block;
}

.bracket-list {
  list-style: none;
  padding-left: 0;
  counter-reset: bracket-counter;
}

.bracket-list li {
  counter-increment: bracket-counter;
  margin-bottom: 10px;
  position: relative;
}

.bracket-list li::before {
  content: "(" counter(bracket-counter) ") ";
  font-weight: bold;
}

.box-prizea-navyintro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  text-align: center;
  margin-bottom: 15px;
}
.box-prizea-navyintro-guest {
  position: relative;
  flex-direction: row;
  margin-bottom: 20px;
}
.box-prizea-navyintro-guest p {
  text-align: center;
  color: var(--campaign-green);
}

.box-prizea-navyintro .box-diagonal-left {
  bottom: -1px;
  left: -20px;
}

.box-prizea-navyintro .box-diagonal-right {
  bottom: -1px;
  right: -20px;
}

.box-prizeb-navyintro {
  display: flex;
  flex-direction: row;
  justify-content: center;
  padding-inline: 10px;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  text-align: center;
  margin: 0 auto;
  margin-bottom: 15px;
}

.changes-to-row {
  display: flex;
  flex-direction: column;
}

.box-prizeb-navyintro .box-diagonal-left {
  bottom: -1px;
}

.box-prizeb-navyintro .box-diagonal-right {
  bottom: -1px;
}

.box-prizea-navyintro p {
  color: var(--campaign-green);
}

.box-prizeb-navyintro p {
  color: var(--campaign-green);
}

.box-prize-a {
  margin-bottom: 110px;
}

.box-prize-b {
  margin-bottom: 135px;
}

.box-apply {
  margin-bottom: 100px;
  padding-top: 30px;
  padding-bottom: 30px;
}

.box-goods {
  padding: 30px 20px;
  margin-bottom: 100px;
}

.box-shop {
  flex-direction: column;
  align-items: center;
  display: flex;
  justify-content: center;
  padding: 30px 20px;
  margin-bottom: 100px;
}

.box-about {
  padding-top: 30px;
  margin-bottom: 100px;
}

.date-heading {
  margin-bottom: 5px;
  margin-top: 10px;
}

.target-performance-note {
  margin: 0 0 4px;
  color: var(--campaign-red);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
}

.box-entry {
  margin-top: 50px;
  margin-bottom: 0px;
  padding: 30px 20px;
  overflow: visible;
  z-index: 20;
}

.details-section.box-caution {
  margin-bottom: 0;
  padding-bottom: 40px;
  position: relative;
}

.form-section {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  max-width: 430px;
  position: relative;
  margin: 0 auto;
  margin-top: -1px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background-color: var(--campaign-green-dark);
  background-clip: 1;
  overflow-x: hidden;
  overflow-y: visible;
  height: auto;
  background-image:
    linear-gradient(rgba(11, 64, 57, 0.9), rgba(11, 64, 57, 0.96)),
    url("../images/bg-stained-glass.jpg");
  background-repeat: repeat;
  background-size: auto, 430px 430px;
  background-position: top center;
}

.box-form {
  margin-top: 115px;
  width: 87%;
  padding: 20px 30px;
  overflow: visible;
}

.box-thankyou {
  display: flex;
  width: 100%;
  padding: 30px 20px;
  justify-content: center;
  text-align: center;
  position: relative;
}

.contact-section.box-contact {
  margin: 0 auto;
  padding-bottom: 36px;
  justify-content: center;
  text-align: center;
  position: relative;
}

.box-contact p {
  z-index: 3;
}

.box-footer p {
  margin-top: 0px;
}

.box-footer {
  padding-top: 60px;
  position: relative;
}

.contact-heading,
.contact-phone,
.contact-hours,
.contact-days {
  color: #FFFFFF;
  z-index: 4;
}

.contact-heading {
  margin-top: 20px;
  text-align: left;
  position: relative;
  color: #fff;
  margin: 0;
  padding-bottom: 10px;
}

.contact-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  border-bottom: 2px dotted #fff;
}

.campaign-end-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(61, 61, 61, 0.3490196078);
  justify-content: center;
  align-items: center;
  z-index: 9999;
  pointer-events: auto;
  margin: 0 auto;
  flex-direction: column;
}

.campaign-end-box {
  position: relative;
  box-sizing: border-box;
  border: 1px solid #EBCD37;
  padding: 30px 20px;
  background-color: rgba(255, 255, 255, 0.92);
  width: 82%;
  max-width: 350px;
  height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin: 0 auto;
}

.campaign-end-text {
  color: var(--campaign-end-text-color);
  font-size: 18px;
  font-weight: 700;
  line-height: 2em;
  letter-spacing: 0em;
  margin-block: 3px;
}

@media (min-width: 430px) {
  .top-section, .entry-top-section, .main-section, .details-section, .contact-section, footer {
    box-sizing: border-box;
    max-width: 430px;
    margin: 0 auto;
    width: 100%;
    overflow: hidden;
    z-index: 5;
  }
  .top-section-apply {
    position: fixed;
    left: 50%;
    transform: translateX(105px);
    width: 94px;
    height: 94px;
    max-width: 94px;
    z-index: 30;
  }
}
/* 対象商品の注釈・写真の出典 */
.goods-note {
  margin-top: 10px;
  text-align: left;
  line-height: 1.7;
}

.img-theatre + .photo-credit {
  margin: -22px 0 24px;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
}

.photo-credit a {
  color: var(--campaign-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* PC幅：LPの左右（白かった部分）にステンドグラスを敷く */
@media (min-width: 431px) {
  body.campaign-lp {
    background:
      linear-gradient(rgba(26, 11, 8, 0.45), rgba(26, 11, 8, 0.45)),
      url("../images/bg-pc-stained-glass.jpg") center / cover fixed no-repeat,
      #0b0615;
  }

  .campaign-lp::before {
    box-shadow: 0 0 0 4px var(--campaign-gold), 0 0 0 7px rgba(11, 6, 21, 0.85), 0 0 50px rgba(0, 0, 0, 0.6);
  }
}
/* ==========================================================
   2026 チラシ準拠テーマ（暗い配色）
   チラシ・ポスターの配色と素材に合わせるための上書き。
   暗さは --chirashi-* の値でまとめて調整する。
   ========================================================== */
.campaign-lp {
  --chirashi-bg: #170c10;
  --chirashi-tile-a: #1d0f0d;
  --chirashi-tile-b: #0e0807;
  /* チラシの膜：#1a0b08・乗算・不透明度30% */
  --chirashi-film: rgba(26, 11, 8, 0.3);
  --chirashi-panel: rgba(16, 8, 11, 0.86);
  --chirashi-text: #f4ecdb;
  --chirashi-text-sub: #d9ccb2;
  --chirashi-gold: #d3a117;
  --chirashi-gold-deep: #b8862b;
  --chirashi-gold-text: #d3a117;
  --chirashi-red: #a3192a;
  --chirashi-cream: #fffaf0;
  /* チラシの書体（Adobe Fonts）。読み込めないときは Noto Sans JP */
  --chirashi-font: "vdl-gigag", "Noto Sans JP", sans-serif;
  /* スマホ幅でも下地を暗くする（床の端の端数で白い線が見えないように） */
  background-color: #170c10;
}

/* チラシと同じ書体で組む文字 */
.campaign-lp .box-prizea-navyintro p,
.campaign-lp .box-prizeb-navyintro p,
.campaign-lp .prize-a-feature,
.campaign-lp .prize-b-feature {
  font-family: var(--chirashi-font);
  font-weight: 500;
}

/* 中央の列：チラシの床（カーペット）を画面の縦いっぱいに敷く。
   床の上端はFVの下辺につなげ、スクロールで画面の最上部まで来たらそこで止める（--floor-top は scripts.js が更新） */
.campaign-lp::before {
  background-color: var(--chirashi-bg);
  background-image:
    linear-gradient(var(--chirashi-film), var(--chirashi-film)),
    url("../images/chirashi/bg-floor-tall.jpg");
  background-blend-mode: multiply, normal;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top, center var(--floor-top, 0px);
}

/* チラシと同じく、帯の上端をFVに少し重ねる（本文側を持ち上げる。本文は overflow で切られるため） */
.campaign-lp > .main-section {
  margin-top: calc(min(100vw, 430px) * -0.025);
}

/* キャンペーン期間：チラシの帯画像（文字入り）。日付のテキストは読み上げ・検索用に残す */
.campaign-lp .campaign-period {
  padding: 0 10px 6px;
  border: 0;
  background: none;
}

.campaign-lp .campaign-period::before,
.campaign-lp .campaign-period::after {
  content: none;
}

.campaign-period__band {
  display: block;
  width: 100%;
  height: auto;
}

.campaign-lp .campaign-period__title,
.campaign-lp .campaign-period__dates {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* 概要 */
.campaign-lp .prize-intro {
  color: var(--chirashi-text);
}

.campaign-lp .prize-intro__eyebrow {
  color: var(--chirashi-gold);
  text-shadow: none;
}

.campaign-lp .prize-intro__title {
  color: var(--chirashi-text);
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.6), 0 0 18px rgba(211, 161, 23, 0.35);
}

.campaign-lp .prize-intro__copy {
  text-shadow: none;
}

.campaign-lp .prize-intro__copy strong {
  color: var(--chirashi-gold-text);
}

/* 各ボックス */
.campaign-lp .details-box {
  border-color: var(--chirashi-gold-deep);
  background-color: var(--chirashi-panel);
  color: var(--chirashi-text);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4), 0 12px 30px rgba(0, 0, 0, 0.45);
}

.campaign-lp .text,
.campaign-lp figcaption,
.campaign-lp .list-squares,
.campaign-lp .list-bullet-points {
  color: var(--chirashi-text);
}

/* 箇条書きを本文と同じ幅にそろえる（左だけの字下げをなくす） */
.campaign-lp .list-squares,
.campaign-lp .list-squares ul {
  padding-left: 0;
}

.campaign-lp .list-squares > li::before,
.campaign-lp .list-squares ul > li::before,
.campaign-lp .list-bullet-points li::before {
  background: var(--chirashi-gold);
}

/* 見出しラベル：チラシの白地＋黒文字の札 */
.campaign-lp .navy-box {
  background-color: #fff;
  color: #1a1a1a;
}

.campaign-lp .white-navy-box {
  background-color: transparent;
  border-color: var(--chirashi-gold);
  color: var(--chirashi-gold-text);
}

.campaign-lp .box-prizea-navyintro p,
.campaign-lp .box-prizeb-navyintro p,
.campaign-lp .u-navy {
  color: var(--chirashi-gold-text);
}

/* 賞品の見出し：斜線の飾りをやめ、チラシの金の二重線を下に引く */
.campaign-lp .box-diagonal-left,
.campaign-lp .box-diagonal-right {
  display: none;
}

/* 下線を文字の幅にぴったり合わせる：行末の「！」の右の空きを詰め、折り返しも止める */
.campaign-lp .box-prizea-navyintro p,
.campaign-lp .box-prizeb-navyintro p {
  white-space: nowrap;
}

.campaign-lp .box-prizea-navyintro .tight-mark,
.campaign-lp .box-prizeb-navyintro .tight-mark {
  margin-right: -0.4em;
}

.campaign-lp .box-prizeb-navyintro {
  padding-inline: 0;
}

.campaign-lp .box-prizea-navyintro,
.campaign-lp .box-prizeb-navyintro {
  padding-bottom: 8px;
  background: url("../images/chirashi/line-gold.png") center bottom / 100% 3px no-repeat;
}

/* 賞品の大きい文字（チラシの書体の画像を受け取るまでの仮表示） */
.campaign-lp .prize-a-feature,
.campaign-lp .prize-b-feature {
  color: var(--chirashi-gold-text);
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.5);
}

/* 賞品名と人数の間の線はなし */
.campaign-lp .prize-a-feature__count,
.campaign-lp .prize-b-feature__count {
  border-top: 0;
}

/* 数字のあとの単位（組・名様・EZOポイント）が数字に詰まって見えないよう、少しだけ空ける */
.campaign-lp .prize-a-feature strong,
.campaign-lp .prize-b-feature strong {
  margin-right: 0.07em;
}

/* 「500EZOポイント」は英字が続くので、空きを少し広めに */
.campaign-lp .prize-b-feature__title strong {
  margin-right: 0.12em;
}

/* チラシと同じく、A賞の人数は数字だけ金、「総計」「組」「名様」は白 */
.campaign-lp .prize-a-feature__unit {
  color: #fff;
}

/* B賞もチラシと同じく、数字だけ金、「名様」「EZOポイント」は白 */
.campaign-lp .prize-b-feature__title,
.campaign-lp .prize-b-feature__count {
  color: #fff;
}

.campaign-lp .prize-b-feature strong {
  color: var(--chirashi-gold-text);
}

/* 強調・リンク */
.campaign-lp .u-pink {
  color: var(--chirashi-gold-text);
}

.campaign-lp .u-teal,
.campaign-lp .u-light-blue,
.campaign-lp .u-light-blue-link,
.campaign-lp .venue-address a,
.campaign-lp .photo-credit a {
  color: var(--chirashi-gold-text);
}

/* 外部リンクの印も下線に含める（下線は文字とアイコンの下を通す） */
.campaign-lp .photo-credit a {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding-bottom: 1px;
  border-bottom: 1px solid currentColor;
  text-decoration: none;
}

/* ABOUTの写真：チラシと同じ金の細い枠 */
.campaign-lp .img-theatre {
  box-sizing: border-box;
  border: 2px solid var(--chirashi-gold);
}

/* 外部サイトへのリンクの印（Google の Material Symbols「open_in_new」） */
.photo-credit__icon {
  font-size: 14px;
  line-height: 1;
}

/* ご注意・お問い合わせ・フッター */
.campaign-lp .details-section,
.campaign-lp .top-footer {
  background-color: transparent;
}

.campaign-lp .caution-heading {
  border-color: var(--chirashi-gold);
  color: var(--chirashi-gold-text);
}

/* お問い合わせ先は床の背景に直接置く。見出しは「ご注意」と同じ、上下の線で挟む形 */
.campaign-lp .contact-section {
  background: none;
  border-top: 0;
}

.campaign-lp .contact-title {
  align-self: stretch;
  margin-top: 40px;
}

.campaign-lp .contact-section .left-aligned-text-area,
.campaign-lp .contact-section .contact-heading {
  text-align: center;
}

/* 「キャンペーン事務局」の下線：全幅の白い点線をやめ、中央に短い金の線 */
.campaign-lp .contact-heading {
  padding-bottom: 14px;
  margin-bottom: 12px;
}

.campaign-lp .contact-heading::after {
  left: 50%;
  width: 40px;
  border-bottom: 2px solid var(--chirashi-gold);
  transform: translateX(-50%);
}

/* お問い合わせ先から応募ボタンまでの間を詰める */
.campaign-lp .contact-section.box-contact {
  padding-bottom: 20px;
}

.campaign-lp .box-footer {
  padding-top: 36px;
}
/* ---------- FV：チラシの背景（膜込みの1枚）にロゴとタイトルを載せる ---------- */
.campaign-lp .fv {
  position: relative;
  display: block;
  aspect-ratio: 1290 / 1038;
  background: url("../images/chirashi/fv-bg.jpg") center / 100% 100% no-repeat, #0b0615;
}

/* FVの下辺を床の色へなじませる（期間の帯より少し上から） */
.campaign-lp .fv::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  height: 20%;
  background: linear-gradient(to bottom, rgba(10, 5, 3, 0), rgba(10, 5, 3, 0.55) 55%, rgba(10, 5, 3, 0.95));
  pointer-events: none;
  content: "";
}

/* 金の柱の内側（背景画像の左右9%・上16%より内側） */
.fv__panel {
  position: absolute;
  top: 16%;
  right: 9%;
  bottom: 2%;
  left: 9%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4%;
  text-align: center;
}

/* 共同企画ロゴは上のステンドグラスの帯の中央（画像は光彩の余白込みで帯より大きいが、ロゴ本体は帯に収まる） */
.fv__logo {
  position: absolute;
  top: 5.8%;
  left: 50%;
  display: block;
  width: 60%;
  height: auto;
  transform: translate(-50%, -50%);
}

.fv__heading {
  position: relative;
  z-index: 2;
  width: 86%;
}

.fv__title {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

/* 全角の「！」の前後の空きを詰める */
.tight-mark {
  margin-left: -0.3em;
  letter-spacing: 0;
}

/* 句の途中で改行しない */
.fv__phrase {
  display: inline-block;
}

/* 概要：チラシのキャッチ画像と説明文 */
.campaign-lp .prize-intro__title {
  margin-top: 6px !important;
  margin-bottom: 14px !important;
  text-shadow: none;
}

/* チラシの斜めのキャッチを、VDL-GigaG のテキストで組む */
.prize-intro__catch {
  position: relative;
  display: inline-block;
  padding: 4px 6px;
  color: #fff;
  font-family: var(--chirashi-font);
  font-size: clamp(24px, 7vw, 30px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
}

/* 左右を斜めの線で挟む（＼ … ／） */
.prize-intro__catch-brand {
  font-size: 1.12em;
}

/* 線の下端がテキストの下端より少しだけ下に出る位置 */
.prize-intro__catch::before,
.prize-intro__catch::after {
  position: absolute;
  bottom: 5px;
  width: 2px;
  height: 62%;
  background: rgba(255, 255, 255, 0.85);
  content: "";
}

.prize-intro__catch::before {
  left: -14px;
  transform: rotate(-22deg);
  transform-origin: bottom center;
}

.prize-intro__catch::after {
  right: -14px;
  transform: rotate(22deg);
  transform-origin: bottom center;
}

/* チラシは A1ゴシック（モリサワ・Webライセンスなし）。近い BIZ UDPゴシック で組む */
.campaign-lp .prize-intro__copy,
.campaign-lp .prize-intro__note {
  font-family: "BIZ UDPGothic", "Noto Sans JP", sans-serif;
}

.campaign-lp .prize-intro__copy {
  margin-top: 18px !important;
  color: var(--chirashi-text);
  font-size: clamp(15px, 4.2vw, 17px);
  font-weight: 700;
  line-height: 1.7;
}

.campaign-lp .prize-intro__copy strong {
  color: var(--chirashi-gold-text);
  font-size: inherit;
  font-weight: 700;
}

/* 金額の数字だけ少し大きく */
.campaign-lp .prize-intro__num {
  font-size: 1.2em;
}

.prize-intro__copy small {
  font-size: 0.7em;
}

.prize-intro__note {
  margin-top: 10px !important;
  color: var(--chirashi-text-sub);
  font-size: 11px;
  line-height: 1.6;
}

/* 「今年のミュージカルはこちら！」から公演ロゴまでのチラシの組み画像 */
.musical-logos {
  display: block;
  width: 100%;
  height: auto;
  margin: 4px auto 0;
}

.campaign-lp .musical-logos-note {
  margin-top: 10px;
  text-align: center;
}
/* 各ボックスの見出し：画像をやめ、テキストで組む */
.box-heading {
  position: absolute;
  top: -66px;
  left: 50%;
  display: flex;
  width: 100%;
  margin: 0;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
  text-align: center;
}

.box-heading__ja {
  color: var(--chirashi-gold, #b4862b);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

.box-heading__en {
  color: var(--chirashi-gold, #b4862b);
  font-family: "Noto Serif JP", Georgia, serif;
  font-size: clamp(26px, 7.4vw, 32px);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.2;
}
/* 応募ボタン：チラシの金と赤に合わせる（金の外枠＋深い赤） */
.campaign-lp .top-section-apply {
  background: linear-gradient(145deg, #f3dc8e, var(--chirashi-gold) 45%, #8a5d10);
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.55));
  font-family: var(--chirashi-font);
  font-weight: 500;
}

.campaign-lp .top-section-apply::before {
  inset: 3px;
  background: radial-gradient(circle at 50% 30%, #c42c3c, #921626 60%, #5e0b17);
}

.campaign-lp .top-section-apply span {
  color: #f6e3ae;
  font-size: 11px;
}

.campaign-lp .top-section-apply strong {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.02em;
}
/* 本文中の楕円の応募ボタンも、右下のボタンと同じ金の枠＋深い赤＋チラシの書体 */
.campaign-lp .btn {
  border: 3px solid transparent;
  background:
    radial-gradient(ellipse at 50% 30%, #c42c3c, #921626 60%, #5e0b17) padding-box,
    linear-gradient(145deg, #f3dc8e, var(--chirashi-gold) 45%, #8a5d10) border-box;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.5);
  font-family: var(--chirashi-font);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
/* 一番下：サツドラと劇団フルーツバスケットのロゴを横並び */
.campaign-lp .top-footer .btn {
  margin-bottom: 44px;
}

.footer-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  margin-bottom: 119px;
  padding-top: 28px;
  border-top: 1px solid rgba(211, 161, 23, 0.5);
}

.footer-logos__satsudora {
  width: 34%;
  height: auto;
}

.footer-logos__fb {
  width: 50%;
  height: auto;
}

.footer-logos__cross {
  color: #fff;
  font-size: 16px;
  line-height: 1;
}
/* レシート撮影例の見出し：応募ページと同じ金の枠。文字が下がって見えるので上下の余白で少し持ち上げる */
.campaign-lp .white-pink-box {
  padding: 3px 8px 5px;
  border-color: var(--chirashi-gold);
  color: var(--chirashi-gold);
  background-color: transparent;
}
/*# sourceMappingURL=styles.css.map */
