@charset "utf-8";
/* ============================================================
   Divine LP レスポンシブ（スマホ: max-width 767px）
   基準幅：375px　ターゲット：50代
   方針：
   ・word-break: normal で日本語を自然に折り返す
   ・手動<br>はスマホで非表示（.sp-br クラスのみ有効）
   ・見出しは中央揃え、本文は左揃え
   ・文字は大きめ（本文17px、重要テキスト18〜20px）
============================================================ */

/* PC（768px以上）では sp-br を非表示 */
@media (min-width: 768px) {
  br.sp-br { display: none !important; }
}

@media (max-width: 767px) {

  /* ======================================
     手動<br>をスマホでは非表示
     sp-br クラスのみスマホで有効
  ====================================== */
  br {
    display: none !important;
  }
  br.sp-br {
    display: block !important;
  }

  /* ======================================
     ベースリセット
  ====================================== */
  body {
    font-size: 16px !important;
    line-height: 1.9;
  }
  p {
    font-size: 17px !important;
    line-height: 1.95 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    margin-bottom: 1em !important;
  }
  li {
    font-size: 17px !important;
    line-height: 1.95 !important;
    word-break: normal !important;
  }
  h2 { font-size: 21px !important; line-height: 1.65 !important; word-break: normal !important; overflow-wrap: break-word !important; }
  h3 { font-size: 19px !important; line-height: 1.65 !important; word-break: normal !important; }
  h4 { font-size: 18px !important; line-height: 1.7  !important; word-break: normal !important; }
  h5 { font-size: 17px !important; line-height: 1.75 !important; }

  /* ======================================
     ヘッダー画像（スマホ縦長）
  ====================================== */
  .divine-header-img { aspect-ratio: auto; overflow: visible; }
  .divine-header-img .header-main-img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center top;
  }

  /* ======================================
     sec01 ヒーロー
  ====================================== */
  .sec01-divine {
    padding: 32px 0 28px !important;
  }
  .sec01-divine .block {
    padding: 0 20px !important;
  }
  .sec01-divine h2 {
    font-size: 20px !important;
    line-height: 1.75 !important;
    text-align: center !important;
    margin-bottom: 20px !important;
  }
  .sec01-thankyou {
    font-size: 18px !important;
    line-height: 1.9 !important;
    margin-bottom: 20px !important;
  }
  .next-campaign-box {
    padding: 24px 16px !important;
    margin: 0 0 20px !important;
  }
  .next-campaign-label {
    font-size: 16px !important;
  }
  .next-campaign-date {
    font-size: 24px !important;
    line-height: 1.6 !important;
  }
  .next-campaign-text {
    font-size: 17px !important;
    line-height: 1.9 !important;
  }

  .sec01-period {
    font-size: 19px !important;
    line-height: 2 !important;
    text-align: center !important;
    margin: 16px 0 !important;
  }
  .sec01-extended {
    font-size: 22px !important;
    line-height: 1.7 !important;
    margin-top: 8px !important;
  }
  .sec01-period s {
    font-size: 16px !important;
  }
  .sec01-eligible {
    font-size: 18px !important;
    line-height: 1.9 !important;
    text-align: center !important;
    margin: 16px 0 !important;
    font-weight: 700 !important;
  }
  .sec01-notice {
    font-size: 14px !important;
    line-height: 1.9 !important;
    text-align: center !important;
    margin-top: 16px !important;
    overflow-wrap: break-word !important;
  }

  /* ======================================
     sec02 書籍紹介
  ====================================== */
  .sec02 {
    margin: 32px 0 !important;
  }
  .sec02 .block {
    padding: 0 20px !important;
  }
  .sec02 h2 {
    font-size: 20px !important;
    line-height: 1.7 !important;
    text-align: left !important;
    margin-bottom: 16px !important;
  }
  .sec02 p {
    font-size: 17px !important;
    line-height: 1.95 !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
  }
  .sec02-recommend {
    font-size: 17px !important;
    margin: 16px 0 6px !important;
  }
  .sec02-list li {
    font-size: 17px !important;
    line-height: 1.9 !important;
  }
  .sec02 .book-spec {
    margin-top: 20px !important;
    padding: 14px 16px !important;
  }
  .sec02 .book-spec p.ti {
    font-size: 15px !important;
    line-height: 1.85 !important;
  }
  /* スマホでは書影を上・テキストを下 */
  .sec02 .box {
    display: flex !important;
    flex-direction: column !important;
  }
  .sec02 .box .text { order: 2; }
  .sec02 .box .img {
    order: 1;
    max-width: 70% !important;
    margin: 0 auto 20px !important;
  }

  /* ======================================
     sec03 特典
  ====================================== */
  .sec03 {
    padding: 32px 0 28px !important;
  }
  .sec03 .block {
    padding: 0 20px !important;
  }
  .sec03 h2 {
    font-size: 20px !important;
    line-height: 1.7 !important;
    text-align: center !important;
    margin-bottom: 16px !important;
  }
  .sec03 > .block > p {
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.9 !important;
    text-align: center !important;
    margin-bottom: 20px !important;
  }
  .tokuten-inner {
    padding: 0 4px !important;
    text-align: center !important;
  }
  .tokuten-label {
    font-size: 20px !important;
    line-height: 1.75 !important;
    margin-bottom: 16px !important;
    letter-spacing: 2px !important;
    text-align: center !important;
  }
  .tokuten-title {
    font-size: 21px !important;
    line-height: 1.7 !important;
    text-align: center !important;
    margin-bottom: 8px !important;
  }
  .tokuten-title .tokuten-invite {
    font-size: 0.88em !important;
    padding: 3px 12px !important;
    display: inline-block !important;
    margin-top: 4px !important;
  }
  .tokuten-archive {
    font-size: 15px !important;
    text-align: center !important;
    margin-bottom: 12px !important;
  }
  .tokuten-list {
    gap: 8px !important;
    margin-bottom: 20px !important;
  }
  .tokuten-list li {
    padding: 12px 14px !important;
    gap: 12px !important;
  }
  .tokuten-list__num {
    width: 30px !important;
    height: 30px !important;
    font-size: 12px !important;
  }
  .tokuten-list__text {
    font-size: 15px !important;
    line-height: 1.7 !important;
  }
  .tokuten-detail {
    padding: 14px 16px !important;
    margin: 0 auto 16px !important;
    text-align: left !important;
    display: inline-flex !important;
  }
  .tokuten-detail p {
    font-size: 17px !important;
    line-height: 1.9 !important;
    margin-bottom: 4px !important;
  }
  .tokuten-note {
    font-size: 14px !important;
    line-height: 1.9 !important;
    text-align: center !important;
    overflow-wrap: break-word !important;
  }
  .tokuten-box {
    padding: 28px 16px 24px !important;
    margin: 20px 0 0 !important;
    max-width: 100% !important;
  }

  /* ======================================
     応募ステップフロー
  ====================================== */
  .apply-flow-block {
    padding: 24px 16px 20px !important;
    margin: 28px 0 0 !important;
    border-radius: 14px !important;
  }
  .apply-flow-amazon {
    margin-top: 20px !important;
  }
  .apply-flow-title {
    font-size: 18px !important;
    line-height: 1.7 !important;
    margin-bottom: 18px !important;
    text-align: center !important;
  }
  .apply-steps li {
    gap: 12px !important;
    padding: 12px 0 !important;
  }
  .step-num {
    width: 32px !important;
    height: 32px !important;
    font-size: 14px !important;
    flex-shrink: 0 !important;
  }
  .step-text {
    font-size: 16px !important;
    line-height: 1.85 !important;
    padding-top: 4px !important;
  }

  /* ======================================
     応募フロー画像（書店購入版）
  ====================================== */
  .apply-flow-img-wrap {
    margin: 24px 0 0 !important;
    border-radius: 12px !important;
  }

  /* ======================================
     Amazon予約フロー枠
  ====================================== */
  .apply-flow-amazon-wrap {
    padding: 18px 14px 16px !important;
    border-radius: 14px !important;
    margin: 20px 0 0 !important;
  }
  .apply-flow-amazon-label {
    font-size: 16px !important;
    margin-bottom: 14px !important;
  }

  /* ======================================
     CTAボタン
  ====================================== */
  .cta-btn-wrap {
    gap: 14px !important;
    margin: 28px auto 8px !important;
  }
  .cta-btn {
    padding: 16px 18px !important;
    gap: 12px !important;
    border-radius: 12px !important;
  }
  .cta-btn__icon {
    font-size: 24px !important;
  }
  .cta-btn__main {
    font-size: 17px !important;
  }
  .cta-btn__sub {
    font-size: 12px !important;
  }

  /* ======================================
     sec04 ステップ
  ====================================== */
  .sec04 {
    margin: 32px 0 !important;
  }
  .sec04 .block {
    padding: 0 16px !important;
  }
  .sec04 h2 {
    font-size: 22px !important;
    line-height: 1.65 !important;
    text-align: center !important;
    margin-bottom: 20px !important;
  }
  .sec04 .step {
    padding: 16px !important;
  }
  .sec04 .step h3 {
    font-size: 18px !important;
    padding: 0.7rem 1rem !important;
    line-height: 1.6 !important;
    text-align: left !important;
    margin-bottom: 16px !important;
  }
  .sec04 .step h4 {
    font-size: 17px !important;
    line-height: 1.75 !important;
    text-align: center !important;
    margin-bottom: 12px !important;
  }
  .sec04 .step h4 span {
    padding: 8px 10px !important;
    display: inline-block !important;
  }
  .sec04 .step h5 {
    font-size: 16px !important;
    text-align: center !important;
    margin-bottom: 10px !important;
  }
  .sec04 .step p {
    font-size: 16px !important;
    line-height: 1.95 !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
    margin-bottom: 16px !important;
  }
  .sec04 .step .img img {
    max-width: 92% !important;
    margin: 12px auto 16px !important;
    display: block !important;
  }

  /* ======================================
     フッター前CTAセクション
  ====================================== */
  .sec-final-cta {
    padding: 40px 0 36px !important;
  }
  .sec-final-cta .block {
    padding: 0 20px !important;
  }
  .final-cta-lead {
    font-size: 18px !important;
    margin-bottom: 20px !important;
  }

  /* ======================================
     sec05 プロフィール
  ====================================== */
  .sec05 {
    padding: 32px 0 28px !important;
  }
  .sec05 .block {
    padding: 0 20px !important;
  }
  .sec05 .box {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }
  .sec05 .box .img {
    width: 50% !important;
    max-width: 160px !important;
    margin: 0 auto !important;
  }
  .sec05 .box .area {
    width: 100% !important;
  }
  .sec05 .box .area h2 {
    font-size: 19px !important;
    line-height: 1.75 !important;
    text-align: center !important;
    margin-bottom: 0 !important;
  }
  .sec05 .text p {
    font-size: 16px !important;
    line-height: 1.95 !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
    margin-bottom: 14px !important;
  }
  .sec05 .img-2 {
    max-width: 50% !important;
    margin: 20px auto !important;
  }
  .sec05 .ti {
    font-size: 13px !important;
    line-height: 1.9 !important;
    text-align: left !important;
    overflow-wrap: break-word !important;
  }

  /* ======================================
     ボタン
  ====================================== */
  .btn {
    padding: 0 !important;
    margin: 16px auto !important;
    max-width: 100% !important;
  }
  .btn a {
    font-size: 18px !important;
    letter-spacing: 0.06em !important;
    padding: 0.8em 1em !important;
    line-height: 1.6 !important;
    display: block !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* ======================================
     フッター リンクリスト（縦2列）
  ====================================== */
  .footer-001__list {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px 8px !important;
    padding: 0.5em 16px !important;
    width: 100% !important;
  }
  .footer-001__list li {
    text-align: center !important;
  }
  .footer-001__link {
    font-size: 13px !important;
    line-height: 1.6 !important;
    display: block !important;
    padding: 6px 4px !important;
    border: 1px solid rgba(245,217,138,0.3) !important;
    border-radius: 6px !important;
  }

}
