/* =========================
   Sponsor Page
========================= */
/* ===== PAGE LAYOUT OVERRIDE ===== */
.container { max-width: 1080px; padding: 0 32px; }

/* ===== 1. HERO ===== */
#sp-hero{ position: relative; min-height: 40vh;
  display: flex; align-items: center; overflow: hidden;
  background: var(--navy2);
}
#sp-hero::before{ content: ''; position: absolute; inset: 0;
  background: linear-gradient(130deg, rgba(15,30,66,.95) 0%, rgba(27,45,94,.80) 55%, rgba(40,176,210,.15) 100%);
}
#sp-hero::after{ content: ''; position: absolute; top: -120px; right: -120px;
  width: 560px; height: 560px;
  background: radial-gradient(circle, rgba(40,176,210,.22) 0%, transparent 65%);
  border-radius: 50%;
}
.hero-grid-lines{ position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.hero-grid-lines::before{ content: ''; position: absolute; top: 0; left: 50%; width: 1px; height: 100%; background: linear-gradient(to bottom, transparent, rgba(40,176,210,.12), transparent); }
.hero-grid-lines::after{ content: ''; position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: linear-gradient(to right, transparent, rgba(40,176,210,.12), transparent); }
.c-hero-content{ position: relative; z-index: 2; width: 100%; padding: 120px 0 72px; }
.c-hero-eyebrow{ display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.c-hero-eyebrow-bar{ width: 40px; height: 2px; background: var(--blue); flex-shrink: 0; }
.c-hero-eyebrow-text{ font-size: 11px; font-weight: 700; letter-spacing: .22em; color: var(--blue); text-transform: uppercase; font-family: 'Helvetica Neue', Arial, sans-serif; }
.c-hero-title{ font-size: clamp(32px, 7vw, 96px); font-weight: 900; color: #fff;
  line-height: 1.05; letter-spacing: -.03em; margin-bottom: 18px;
}
.c-hero-title span{ color: var(--blue); }
/* ===== 2. 想い・メッセージ ===== */
#sp-message{ padding: 80px 0 60px; background: #fff; text-align: center; }
.sp-msg-catch{ font-size: clamp(24px, 4vw, 42px); font-weight: 900; color: var(--navy); margin-bottom: 40px; letter-spacing: -.02em; line-height: 1.4; }
.sp-msg-catch span{ color: var(--blue); }
.sp-msg-text{ max-width: 800px; margin: 0 auto; font-size: clamp(15px, 2vw, 16px); font-weight: 500; color: var(--gray700); line-height: 2; text-align: left; }
/* ===== 3. 詳細付きスポンサー ===== */
#sp-featured{ padding: 40px 0 80px; background: #fff; }
.sp-feat-list{ max-width: 800px; margin: 0 auto; }
.sp-feat-item{ padding: 56px 0; border-bottom: 1px solid var(--gray100); display: flex; flex-direction: column; gap: 20px; }
.sp-feat-item:first-child{ border-top: 1px solid var(--gray100); }
.sp-feat-name{ font-size: 24px; font-weight: 900; color: var(--navy); letter-spacing: -.02em; line-height: 1.4; }
.sp-feat-desc{ font-size: 14.5px; color: var(--gray700); line-height: 1.9; }
.sp-feat-name,
.sp-text-item {
  overflow-wrap: anywhere;
}
.sp-feat-links{ display: flex; gap: 12px; margin-top: 8px; }
.sp-link-btn{ display: inline-flex; align-items: center; justify-content: center; padding: 6px 20px; border: 1.5px solid var(--gray300); font-size: 12px; font-weight: 700; color: var(--gray500); transition: all .2s; }
.sp-link-btn:hover{ border-color: var(--blue); color: var(--blue); background: rgba(40,176,210,.05); }
.sp-empty{ text-align: center; color: var(--gray500); font-size: 14px; padding: 56px 0; border-top: 1px solid var(--gray100); border-bottom: 1px solid var(--gray100); }
/* ===== 4. テキストリスト (社名・個人名) ===== */
#sp-others{ padding: 40px 0 100px; background: #fff; }
.sp-text-list{ display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 48px; max-width: 900px; margin: 0 auto 64px; }
.sp-text-item{ font-size: 16px; font-weight: 700; color: var(--gray700); position: relative; }
.sp-text-item::before{ content: ''; position: absolute; left: -12px; top: 50%; transform: translateY(-50%); width: 4px; height: 4px; background: var(--blue); border-radius: 50%; }
/* お問い合わせボタンエリア */
.sp-contact-wrap{ text-align: center; margin-top: 64px; padding-top: 64px; border-top: 1px dashed var(--gray300); max-width: 800px; margin-left: auto; margin-right: auto;}
.sp-contact-wrap p{ font-size: 15px; color: var(--gray700); margin-bottom: 24px; font-weight: 700;}
.sp-crowdfunding-cta { text-align: center; margin-top: 48px; }
/* ===== RESPONSIVE ===== */
@media (max-width: 768px) { .c-hero-content{ padding: 100px 0 56px; }
}
@media (max-width: 767px) {
  .sp-feat-links {
    flex-direction: column;
    align-items: stretch;
  }
  .sp-link-btn {
    width: 100%;
  }
}
@media (max-width: 480px) { .sp-text-list{ flex-direction: column; align-items: center; gap: 12px; }
}
@media (max-width: 768px) { .container { padding: 0 20px; } }
@media (max-width: 520px) {
  .sp-contact-wrap p {
    text-align: left;
  }
}
