/* ============================================
   インフォメーション共通スタイル
   ============================================ */
.info-content-wrap {
  font-family: "Noto Sans JP", sans-serif;
  color: #1a2a3d;
  line-height: 1.8;
}

.info-lead-box {
  background: #ffffff;
  border: 1px solid rgba(15, 42, 68, 0.1);
  border-radius: 8px;
  padding: 1.5rem 2rem;
  margin-bottom: 3rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}
.info-lead-box p { margin-bottom: 1rem; }
.info-lead-box p:last-child { margin-bottom: 0; }

.info-section-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #0F2A44;
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #C99A47;
  display: inline-block;
}

/* ============================================
   料金表カード (Pricing)
   ============================================ */
.price-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.price-card-grid > br, .price-card-grid > p { display: none !important; }

@media (min-width: 768px) {
  .price-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.price-card {
  background: #ffffff;
  border: 1px solid rgba(15, 42, 68, 0.1);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.price-card.highlight-card {
  border: 2px solid #C99A47;
  box-shadow: 0 8px 24px rgba(201, 154, 71, 0.15);
  transform: translateY(-4px);
}

.price-header {
  background: #0F2A44;
  color: #ffffff;
  padding: 1.25rem;
  text-align: center;
}
.price-card.highlight-card .price-header {
  background: linear-gradient(135deg, #0F2A44 0%, #1a3a5c 100%);
}
.price-header .material-symbols-outlined {
  font-size: 2rem;
  color: #C99A47;
  margin-bottom: 0.5rem;
}
.price-header h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
}

.price-body {
  padding: 1.5rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.price-amount {
  font-size: 2rem;
  font-weight: 700;
  color: #0F2A44;
  text-align: center;
  margin-bottom: 0.25rem;
  font-family: "Noto Serif JP", serif;
}
.price-amount span {
  font-size: 1rem;
  font-family: "Noto Sans JP", sans-serif;
  margin-left: 0.2rem;
}
.price-amount .price-sub {
  font-size: 0.9rem;
  color: #5a6878;
  font-weight: 500;
}
.price-amount-alt {
  text-align: center;
  font-size: 0.9rem;
  color: #5a6878;
  margin-bottom: 1.5rem;
}
.price-amount-alt strong {
  font-size: 1.1rem;
  color: #0F2A44;
}

.price-details {
  list-style: none;
  padding: 0;
  margin: auto 0 0 0;
  border-top: 1px solid #eee;
  padding-top: 1.5rem;
}
.price-details li {
  font-size: 0.9rem;
  color: #1a2a3d;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}
.price-details li:last-child { margin-bottom: 0; }
.price-details li strong { color: #0F2A44; }

/* ============================================
   バナー表示例
   ============================================ */
.banner-example-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 3rem;
}
.banner-example-wrap > br, .banner-example-wrap > p { display: none !important; }

.banner-spec-box {
  background: #fdfaf5;
  border: 1px dashed #C99A47;
  border-radius: 8px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: center;
}
@media (min-width: 768px) {
  .banner-spec-box {
    flex-direction: row;
    align-items: flex-start;
  }
}
.banner-spec-img img {
  width: 100%;
  max-width: 320px;
  border: 1px solid #ddd;
  border-radius: 4px;
}
.banner-spec-text p {
  margin-bottom: 1rem;
  font-size: 0.95rem;
}
.banner-spec-text p:last-child { margin-bottom: 0; }
.banner-spec-text p.note {
  font-size: 0.85rem;
  color: #c53030;
}

.banner-card {
  background: #ffffff;
  border: 1px solid rgba(15, 42, 68, 0.1);
  border-radius: 8px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .banner-card {
    flex-direction: row;
    align-items: flex-start;
  }
}
.banner-card-img { flex-shrink: 0; }
.banner-card-img img {
  width: 100%;
  max-width: 320px;
  border: 1px solid #eee;
  border-radius: 4px;
}
.banner-card-info { flex-grow: 1; }
.banner-card-info h4 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
  color: #0F2A44;
  margin-bottom: 0.5rem;
}
.banner-card-info p {
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}
.banner-card-person {
  font-weight: 700;
  color: #5a6878 !important;
  text-align: right;
  margin-top: 1rem;
}

/* ============================================
   禁止事項リスト（アラートボックス）
   ============================================ */
.alert-box {
  background: #fff5f5;
  border-left: 4px solid #e53e3e;
  border-radius: 4px;
  padding: 1.5rem;
}
.alert-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #c53030;
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 1rem;
}
.prohibited-list {
  margin: 0;
  padding-left: 1.5rem;
  color: #2d3748;
}
.prohibited-list li {
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
}
.prohibited-list li:last-child { margin-bottom: 0; }

/* ============================================
   フォーム・PDFエリア
   ============================================ */
.form-section-box {
  background: #ffffff;
  border: 1px solid rgba(15, 42, 68, 0.1);
  border-radius: 8px;
  padding: 2rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}
.form-section-box h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
  color: #0F2A44;
  margin-bottom: 1rem;
  text-align: center;
}
.form-section-box > p {
  text-align: center;
  margin-bottom: 1rem;
}
.form-section-box .form-note {
  font-size: 0.85rem;
  color: #e53e3e;
  text-align: left;
  background: #fff5f5;
  padding: 1rem;
  border-radius: 4px;
  margin-bottom: 2rem;
}
.shortcode-wrap {
  margin-top: 2rem;
}
.pdf-wrap {
  border: 1px solid #eee;
  border-radius: 4px;
  padding: 1rem;
  background: #fafafa;
}