/* ===== Footer CTA Band ===== */
.footer-cta-band { background: var(--c-block-deep-purple); color: #fff; padding: 56px 24px; text-align: center; }
.footer-cta-band__inner { max-width: var(--max-w); margin: 0 auto; }
.footer-cta-band__title { font-family: "Noto Serif SC", "Source Han Serif SC", serif; font-size: clamp(28px, 4vw, 42px); font-weight: 700; margin-bottom: 12px; line-height: 1.2; }
.footer-cta-band__subtitle { font-size: 18px; color: rgba(255,255,255,0.75); margin-bottom: 36px; }
.footer-cta-band__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.footer-cta-band__actions .btn-pill { color: #fff; border-color: rgba(255,255,255,0.5); }

/* ===== Footer: 4列 ===== */
.footer { background: var(--c-primary); color: rgba(255,255,255,0.80); padding: 48px 24px 24px; }
.footer-inner { max-width: var(--max-w); margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1fr; gap: 40px; margin-bottom: 48px; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: 1.2fr 1fr 1fr 1fr; } }
.footer-col h4 { font-family: "Noto Serif SC", "Source Han Serif SC", serif; font-size: 18px; font-weight: 600; color: #fff; margin-bottom: 20px; }
.footer-col p, .footer-col a { font-size: 14px; line-height: 1.8; color: rgba(255,255,255,0.70); }
.footer-col a:hover { color: var(--c-gold); }
.footer-links { display: flex; flex-direction: column; gap: 10px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.15); padding-top: 24px; display: flex; flex-direction: column; gap: 8px; font-size: 12px; color: rgba(255,255,255,0.50); }
@media (min-width: 768px) { .footer-bottom { flex-direction: row; justify-content: space-between; } }
.footer-slogan { font-family: "Noto Serif SC", "Source Han Serif SC", serif; font-style: italic; letter-spacing: 0.05em; }
.footer-disclaimer { font-size: 12px; color: rgba(255,255,255,0.50); margin-top: 12px; line-height: 1.6; }
.footer-disclaimer-v6 { background: none; color: #999; font-size: 12px; line-height: 1.6; padding: 16px 0; border-top: 1px solid #e8e8e8; text-align: center; }
