/* =========================================================
   En MUSUBI NARA - CAMPAIGN PAGE
   campaign.html 専用
   ========================================================= */
.campaign-hero {
  padding: 110px 0 105px;
  background: linear-gradient(135deg, #fff 0%, #FFFAF2 52%, rgba(255,184,220,.18) 100%);
  border-bottom: 1px solid var(--line);
  text-align: center;
}
.campaign-hero__inner { max-width: 900px; }
.campaign-hero h1 { margin: .25rem 0 1.3rem; font-family: "Noto Serif JP",serif; font-size: clamp(2.5rem,5vw,4rem); line-height: 1.5; letter-spacing: .04em; }
.campaign-hero h1 span { color: #E978AE; }
.campaign-hero__lead { margin: 0 auto; max-width: 760px; color: var(--muted); font-size: 1rem; line-height: 2.05; }
.campaign-benefits { background:#fff; }
.campaign-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; max-width:1040px; margin:0 auto; }
.campaign-card { position:relative; padding:44px 40px 40px; border-radius:26px; border:1px solid var(--line); text-align:center; box-shadow:var(--shadow); overflow:hidden; }
.campaign-card--pink { background:linear-gradient(180deg,#fff 0%,rgba(255,184,220,.14) 100%); border-color:rgba(255,184,220,.85); }
.campaign-card--green { background:linear-gradient(180deg,#fff 0%,rgba(183,217,196,.18) 100%); border-color:rgba(183,217,196,.95); }
.campaign-card__number { margin:0 0 12px; color:#E978AE; font-size:.76rem; font-weight:700; letter-spacing:.18em; }
.campaign-card--green .campaign-card__number { color:#79A98C; }
.campaign-card h3 { margin:0 0 16px; font-family:"Noto Serif JP",serif; font-size:clamp(1.65rem,2.8vw,2.2rem); line-height:1.5; }
.campaign-card__catch { margin:0 0 26px; color:var(--muted); font-size:.95rem; }
.campaign-benefit { margin:0 0 26px; padding:24px 18px; border-radius:20px; background:#fff; }
.campaign-benefit span { display:block; margin-bottom:8px; font-weight:600; }
.campaign-benefit strong { display:block; font-family:"Noto Serif JP",serif; font-size:clamp(1.3rem,2.2vw,1.75rem); line-height:1.5; }
.campaign-benefit em { display:block; margin-top:4px; color:#E978AE; font-size:clamp(3rem,5vw,4.4rem); font-style:normal; line-height:1.15; }
.campaign-card--green .campaign-benefit em { color:#79A98C; }
.campaign-card__text { margin:0; color:#665d5a; font-size:.9rem; line-height:1.95; text-align:left; }
.campaign-message { background:#FFFAF2; }
.campaign-message h2 { margin:.25rem 0 1.4rem; font-family:"Noto Serif JP",serif; font-size:clamp(2rem,4vw,3rem); line-height:1.5; }
.campaign-message p:not(.eyebrow) { margin:0 auto 14px; max-width:760px; color:#665d5a; line-height:2.05; text-align:left; }
.campaign-howto { background:#fff; }
.campaign-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; max-width:1040px; margin:0 auto; }
.campaign-step { position:relative; padding:34px 28px; border:1px solid var(--line); border-radius:22px; background:#fff; text-align:center; box-shadow:0 10px 30px rgba(80,58,56,.05); }
.campaign-step span { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 18px; border-radius:50%; background:#FFB8DC; color:#fff; font-family:"Noto Serif JP",serif; font-weight:700; }
.campaign-step:nth-child(2) span { background:#B7D9C4; }
.campaign-step h3 { margin:0 0 10px; font-family:"Noto Serif JP",serif; font-size:1.15rem; }
.campaign-step p { margin:0; color:var(--muted); font-size:.88rem; line-height:1.9; }
.campaign-notes { padding-top:20px; background:#fff; }
.campaign-notes__box { padding:38px 42px; border:1px solid var(--line); border-radius:22px; background:#FFFAF2; }
.campaign-notes__box h2 { margin:.2rem 0 18px; font-family:"Noto Serif JP",serif; font-size:1.65rem; }
.campaign-notes__box ul { margin:0; padding-left:1.35em; color:#665d5a; font-size:.9rem; line-height:2; }
.campaign-cta { padding:100px 0; background:linear-gradient(135deg,rgba(255,184,220,.16),#fff 48%,rgba(183,217,196,.16)); }
.campaign-cta h2 { margin:.25rem 0 1rem; font-family:"Noto Serif JP",serif; font-size:clamp(2rem,4vw,3rem); line-height:1.55; }
.campaign-cta p:not(.eyebrow) { margin:0 0 28px; color:var(--muted); line-height:1.9; }
.campaign-cta .btn-primary { background:#fff; border:1px solid #FFB8DC; color:#000; box-shadow:none; }
.campaign-cta .btn-primary:hover,.campaign-cta .btn-primary:focus-visible { background:#FFB8DC; color:#000; }
@media (max-width:800px) { .campaign-card-grid,.campaign-steps { grid-template-columns:1fr; } .campaign-card-grid { max-width:620px; } }
@media (max-width:680px) { .campaign-hero { padding:72px 0 68px; } .campaign-hero h1 { font-size:clamp(2rem,10vw,2.7rem); } .campaign-hero__lead br { display:none; } .campaign-card { padding:34px 24px 30px; border-radius:20px; } .campaign-notes__box { padding:28px 22px; } .campaign-cta { padding:78px 0; } }
