/* Keep the campaign title and first banner together without stacking section spacing. */
body[data-page="campaign"] .campaign-page-title.section-heading[data-atelier-tone="marble"] { min-height:0; padding:46px 20px 0; margin-bottom:0; }
body[data-page="campaign"] #campaigns { padding-top:0; }
body[data-page="campaign"] #campaigns .campaign-detail-list { margin-top:56px; }
@media (max-width:640px) {
  body[data-page="campaign"] .campaign-page-title.section-heading[data-atelier-tone="marble"] { padding:40px 18px 0; }
  body[data-page="campaign"] #campaigns .campaign-detail-list { margin-top:32px; }
}
.campaign-detail--data { scroll-margin-top:96px; display:block !important; min-height:0 !important; overflow:hidden; }
.campaign-detail__visual { display:grid; min-height:280px; margin:0; padding:24px; place-items:center; overflow:hidden; background:linear-gradient(135deg,#fbf8f7,#f4f1f0); border-bottom:1px solid rgba(54,59,65,.07); }
.campaign-image-empty { display:grid; width:100%; height:100%; min-height:180px; place-items:center; color:#b59da6; font-family:Georgia,serif; font-size:clamp(18px,3vw,34px); letter-spacing:.18em; background:linear-gradient(135deg,#fbf8f7,#f4f1f0); }
body[data-page="campaign"] .campaign-detail__visual img { display:block; width:auto; max-width:100%; height:auto; max-height:680px; object-fit:contain; object-position:center; }
.campaign-detail--data .campaign-detail__body { width:min(100%,780px); margin:0 auto; padding:38px 42px 42px !important; box-sizing:border-box; font-family:var(--font-display-jp); text-align:center; }
body[data-page="campaign"] .campaign-detail .campaign-detail__description { display:block; margin-top:18px; color:#51565e; font-family:var(--font-display-jp); font-size:.86rem; font-weight:400; line-height:1.9; letter-spacing:.02em; }
body[data-page="campaign"] .campaign-detail__description :is(div,p,h3,h4,span,small,ul,ol,li) { margin-top:0; font:inherit; color:inherit; letter-spacing:inherit; }
body[data-page="campaign"] .campaign-detail__description :is(strong,b) { margin-top:0; color:inherit; font-family:inherit; font-size:inherit; font-weight:700; line-height:inherit; letter-spacing:inherit; }
.campaign-detail__description > :first-child { margin-top:0; }
.campaign-detail__description > :last-child { margin-bottom:0; }
.campaign-detail__meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin:20px 0; }
.campaign-detail__meta div { padding-top:8px; border-top:1px solid rgba(54,59,65,.08); text-align:left; }
.campaign-detail__meta dt { font-family:var(--font-display-jp); font-size:.68rem; letter-spacing:.08em; color:#7a818b; }
.campaign-detail__meta dd { margin:4px 0 0; font-family:var(--font-display-jp); font-size:.8rem; font-weight:400; line-height:1.65; }
.campaign-detail__cta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:20px; }
.campaign-detail__cta a { display:grid; min-height:44px; place-items:center; border:1px solid rgba(45,49,51,.12); border-radius:999px; color:#303537; font-size:.73rem; text-decoration:none; }
.campaign-detail__cta a:nth-child(1) { background:rgba(128,204,241,.14); }
.campaign-detail__cta a:nth-child(2) { background:rgba(126,223,175,.14); }
.campaign-detail__cta a:nth-child(3) { background:rgba(246,148,185,.14); }
@media (max-width:640px) {
  .campaign-detail__visual { min-height:0; padding:12px; }
  body[data-page="campaign"] .campaign-detail__visual img { max-height:72vh; }
  .campaign-detail--data .campaign-detail__body { padding:24px 20px 28px !important; }
  body[data-page="campaign"] .campaign-detail .campaign-detail__description { font-size:.75rem; line-height:1.85; }
  .campaign-detail__meta { grid-template-columns:1fr; gap:5px; }
}
