/* =========================================================
   NCC 工場終活 60秒チェック
   Senior Contrast Edition v8
   高齢ユーザーを想定した「大きい文字・強いコントラスト・押しやすさ」
   ========================================================= */

.ncc-factory-check{
  --ncc-navy:#052b4f;
  --ncc-navy2:#0a416f;
  --ncc-blue:#0878b8;
  --ncc-sky:#19a9d8;
  --ncc-orange:#ff8800;
  --ncc-gold:#ffc23d;
  --ncc-ink:#142b3d;
  --ncc-muted:#526575;
  --ncc-line:#9fc8dd;
  --ncc-soft:#edf7fc;
  --ncc-white:#ffffff;

  max-width:940px;
  margin:46px auto;
  color:var(--ncc-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",
    "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:19px;
  line-height:1.9;
}

.ncc-factory-check *,
.ncc-factory-check *::before,
.ncc-factory-check *::after{
  box-sizing:border-box;
}

.ncc-factory-check [hidden]{
  display:none !important;
}

.nccfc-card{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  box-shadow:0 18px 48px rgba(6,43,79,.18);
}

/* =========================================================
   START
   ========================================================= */

.nccfc-start{
  position:relative;
  padding:62px 50px 54px;
  text-align:center !important;
  color:#fff;
  background:
    radial-gradient(circle at 90% 10%,rgba(27,182,232,.30),transparent 30%),
    radial-gradient(circle at 8% 100%,rgba(255,136,0,.22),transparent 28%),
    linear-gradient(135deg,#031a31 0%,#073e6f 50%,#0b7bb8 100%);
  border:1px solid rgba(255,255,255,.14);
}

.nccfc-start::before{
  content:"";
  position:absolute;
  top:-120px;
  right:-70px;
  width:290px;
  height:290px;
  border:42px solid rgba(255,255,255,.055);
  border-radius:50%;
  pointer-events:none;
}

.nccfc-start::after{
  content:"60 SEC";
  position:absolute;
  right:24px;
  bottom:12px;
  font-size:76px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
  color:rgba(255,255,255,.05);
  pointer-events:none;
}

.nccfc-start .nccfc-kicker{
  position:relative;
  z-index:2;
  display:inline-block !important;
  margin:0 auto 26px !important;
  padding:10px 20px !important;
  border:1px solid rgba(255,255,255,.38) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.11) !important;
  color:#fff !important;
  font-size:17px !important;
  font-weight:900 !important;
  letter-spacing:.07em !important;
  line-height:1.4 !important;
  text-align:center !important;
}

.ncc-factory-check .nccfc-start h2,
.ncc-factory-check .nccfc-start h2:first-child,
.ncc-factory-check .nccfc-start h2:last-child{
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  width:100% !important;
  max-width:800px !important;
  margin:0 auto 28px !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  color:#fff !important;
  font-size:46px !important;
  font-weight:900 !important;
  line-height:1.4 !important;
  letter-spacing:-.02em !important;
  text-align:center !important;
  text-indent:0 !important;
  text-shadow:0 3px 12px rgba(0,0,0,.25) !important;
}

.ncc-factory-check .nccfc-start h2::before{
  display:none !important;
  content:none !important;
}

.ncc-factory-check .nccfc-start h2::after{
  content:"" !important;
  display:block !important;
  width:130px !important;
  height:8px !important;
  margin:22px auto 0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,var(--ncc-orange),var(--ncc-gold)) !important;
}

.nccfc-lead{
  position:relative;
  z-index:2;
  max-width:740px;
  margin:0 auto 34px !important;
  color:rgba(255,255,255,.98) !important;
  font-size:22px !important;
  line-height:1.95 !important;
  font-weight:650 !important;
  text-align:center !important;
}

.nccfc-lead strong{
  color:#fff1ad !important;
  font-weight:900 !important;
}

/* 最重要CTA */

.nccfc-primary{
  position:relative;
  z-index:2;
  display:block !important;
  width:100% !important;
  max-width:700px !important;
  min-height:82px !important;
  margin:28px auto 18px !important;
  padding:24px 30px !important;
  border:0 !important;
  border-radius:17px !important;
  background:linear-gradient(135deg,#ff7600 0%,#ff9900 52%,#ffc23d 100%) !important;
  color:#fff !important;
  font-family:inherit !important;
  font-size:30px !important;
  font-weight:900 !important;
  line-height:1.3 !important;
  letter-spacing:.01em !important;
  text-align:center !important;
  cursor:pointer;
  background-size:220% 220% !important;
  background-position:0% 50%;
  box-shadow:
    0 14px 32px rgba(255,136,0,.42),
    0 0 0 0 rgba(255,194,61,.22) !important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
  animation:nccfcCtaPulse 1.65s ease-in-out infinite !important;
  will-change:transform,filter,background-position,box-shadow;
}

.nccfc-primary:hover,
.nccfc-primary:focus{
  transform:translateY(-2px) scale(1.01);
  filter:brightness(1.05);
  box-shadow:
    0 18px 38px rgba(255,136,0,.50),
    0 0 0 8px rgba(255,194,61,.10) !important;
}

@keyframes nccfcCtaPulse{
  0%,100%{
    background-position:0% 50%;
    filter:brightness(1) saturate(1);
    transform:scale(1);
    box-shadow:
      0 14px 32px rgba(255,136,0,.42),
      0 0 0 0 rgba(255,194,61,.06);
  }
  50%{
    background-position:100% 50%;
    filter:brightness(1.18) saturate(1.30);
    transform:scale(1.045);
    box-shadow:
      0 22px 46px rgba(255,136,0,.62),
      0 0 0 14px rgba(255,194,61,.18);
  }
}

.nccfc-note{
  position:relative;
  z-index:2;
  margin:16px auto 0 !important;
  color:rgba(255,255,255,.88) !important;
  font-size:17px !important;
  line-height:1.7 !important;
  text-align:center !important;
}

/* =========================================================
   QUESTIONS
   背景と明確に分離させる
   ========================================================= */

.nccfc-question-area{
  position:relative;
  padding:42px 40px 46px;
  border:3px solid #0878b8 !important;
  border-top:9px solid var(--ncc-orange) !important;
  border-radius:22px !important;
  background:
    radial-gradient(circle at 100% 0%,rgba(25,169,216,.10),transparent 27%),
    linear-gradient(180deg,#e5f3fa 0%,#f5fbfe 100%) !important;
  box-shadow:
    0 20px 42px rgba(6,43,79,.17),
    inset 0 1px 0 rgba(255,255,255,.90);
}

.nccfc-question-area::before{
  display:none !important;
  content:none !important;
}

.nccfc-progress-track{
  height:15px;
  margin:0 0 16px;
  overflow:hidden;
  border:1px solid #9abfd2;
  border-radius:999px;
  background:#d8e7ef;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.08);
}

.nccfc-progress-bar{
  width:0;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#066ca7 0%,#19a9d8 62%,#ff9300 100%);
  box-shadow:0 0 12px rgba(25,169,216,.20);
  transition:width .25s ease;
}

.nccfc-count{
  display:inline-block !important;
  margin:0 0 20px !important;
  padding:8px 15px !important;
  border:1px solid #f3a13a !important;
  border-radius:999px !important;
  background:#fff1dc !important;
  color:#834400 !important;
  font-size:19px !important;
  font-weight:900 !important;
  line-height:1.3 !important;
  letter-spacing:.04em !important;
}

.ncc-factory-check .nccfc-question-area h3{
  margin:0 0 30px !important;
  padding:22px 24px !important;
  border:0 !important;
  border-radius:14px !important;
  background:linear-gradient(135deg,#052b4f 0%,#0b5b91 100%) !important;
  color:#fff !important;
  font-size:30px !important;
  font-weight:900 !important;
  line-height:1.55 !important;
  letter-spacing:-.01em !important;
  text-align:left !important;
  text-shadow:0 1px 3px rgba(0,0,0,.18);
  box-shadow:0 8px 18px rgba(6,43,79,.16);
}

.nccfc-answer{
  position:relative;
  display:block;
  width:100%;
  min-height:78px;
  margin:16px 0;
  padding:21px 60px 21px 26px;
  border:2px solid #7eb6d2 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#102a3d !important;
  font-family:inherit;
  font-size:23px !important;
  font-weight:800 !important;
  line-height:1.55 !important;
  text-align:left;
  cursor:pointer;
  box-shadow:
    0 6px 14px rgba(6,43,79,.09),
    inset 0 1px 0 rgba(255,255,255,.9);
  transition:
    transform .14s ease,
    border-color .14s ease,
    box-shadow .14s ease,
    background .14s ease;
}

.nccfc-answer::after{
  content:"›";
  position:absolute;
  top:50%;
  right:22px;
  transform:translateY(-52%);
  color:#0878b8;
  font-size:40px;
  font-weight:700;
  line-height:1;
}

.nccfc-answer:hover,
.nccfc-answer:focus{
  transform:translateY(-1px);
  border-color:#ff9300 !important;
  background:#fff5e6 !important;
  box-shadow:
    0 10px 22px rgba(6,43,79,.14),
    0 0 0 3px rgba(255,147,0,.11);
}

/* =========================================================
   RESULT
   結論・要点を「遠慮なく大きく」
   ========================================================= */

.nccfc-result{
  position:relative;
  padding:58px 46px 50px;
  background:
    radial-gradient(circle at 100% 0%,rgba(255,194,61,.25),transparent 27%),
    radial-gradient(circle at 0% 100%,rgba(25,169,216,.12),transparent 28%),
    linear-gradient(180deg,#fff 0%,#f2faff 100%);
  border:2px solid #bfd9e8;
  border-top:9px solid var(--ncc-orange);
  box-shadow:0 20px 52px rgba(6,43,79,.18);
}

/* 「あなたのチェック結果」 */

.nccfc-result .nccfc-kicker{
  position:relative;
  z-index:2;
  display:table !important;
  margin:0 auto 26px !important;
  padding:12px 22px !important;
  border:0 !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,#06355e,#0878b8) !important;
  color:#fff !important;
  font-size:22px !important;
  font-weight:900 !important;
  line-height:1.35 !important;
  letter-spacing:.04em !important;
  text-align:center !important;
  box-shadow:0 8px 18px rgba(8,120,184,.22);
}

/* 結果タイトル */

.ncc-factory-check .nccfc-result h2.nccfc-result-title{
  display:block !important;
  width:100% !important;
  max-width:820px !important;
  margin:0 auto 34px !important;
  padding:0 0 26px !important;
  border:0 !important;
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  color:var(--ncc-navy) !important;
  font-size:38px !important;
  font-weight:900 !important;
  line-height:1.46 !important;
  letter-spacing:-.02em !important;
  text-align:center !important;
  text-indent:0 !important;
}

.ncc-factory-check .nccfc-result h2.nccfc-result-title::before{
  display:none !important;
  content:none !important;
}

.ncc-factory-check .nccfc-result h2.nccfc-result-title::after{
  content:"" !important;
  display:block !important;
  width:170px !important;
  height:8px !important;
  margin:22px auto 0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,var(--ncc-orange),var(--ncc-gold),var(--ncc-sky)) !important;
}

/* 結果本文 */

.nccfc-result-text{
  max-width:800px;
  margin:0 auto 32px;
}

.nccfc-result-text p{
  margin:0 0 20px !important;
  color:#243747 !important;
  font-size:20px !important;
  line-height:1.95 !important;
  font-weight:550 !important;
}

.nccfc-result-text p:first-child{
  color:#163a59 !important;
  font-size:21px !important;
  font-weight:850 !important;
}

/* ポイント */

.nccfc-focus{
  max-width:800px;
  margin:34px auto !important;
  padding:27px 30px 27px 32px !important;
  border:0 !important;
  border-left:9px solid var(--ncc-orange) !important;
  border-radius:14px !important;
  background:linear-gradient(135deg,#fff0d2 0%,#fff9ec 100%) !important;
  color:#50350f !important;
  font-size:24px !important;
  font-weight:900 !important;
  line-height:1.75 !important;
  box-shadow:0 9px 22px rgba(255,136,0,.13);
}

/* 今、確認しておきたいこと */

.nccfc-todo{
  max-width:800px;
  margin:34px auto !important;
  padding:30px 32px 32px !important;
  border:2px solid #abd1e4 !important;
  border-radius:17px !important;
  background:linear-gradient(135deg,#e6f5fc 0%,#fff 100%) !important;
  box-shadow:0 9px 22px rgba(8,120,184,.09);
}

.nccfc-todo > strong{
  display:block !important;
  margin:0 0 20px !important;
  color:#0878b8 !important;
  font-size:26px !important;
  font-weight:900 !important;
  line-height:1.45 !important;
}

.nccfc-todo > strong::before{
  content:"✓";
  display:inline-block;
  margin-right:10px;
  color:var(--ncc-orange);
  font-size:25px;
  font-weight:900;
}

.nccfc-todo ul{
  margin:0 !important;
  padding:0 0 0 1.5em !important;
}

.nccfc-todo li{
  margin:13px 0 !important;
  padding-left:4px;
  color:#243747 !important;
  font-size:22px !important;
  font-weight:700 !important;
  line-height:1.75 !important;
}

/* 結果リンク */

.nccfc-result-links{
  max-width:800px;
  margin:34px auto 0;
}

.nccfc-link{
  display:block !important;
  width:100% !important;
  min-height:70px !important;
  margin:15px 0 !important;
  padding:21px 24px !important;
  border:2px solid var(--ncc-blue) !important;
  border-radius:14px !important;
  background:#fff !important;
  color:var(--ncc-blue) !important;
  font-size:22px !important;
  font-weight:900 !important;
  line-height:1.45 !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:0 8px 18px rgba(8,120,184,.10);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}

.nccfc-link:hover,
.nccfc-link:focus{
  transform:translateY(-2px);
  background:#eef8fd !important;
  box-shadow:0 12px 24px rgba(8,120,184,.16);
}

.nccfc-link.nccfc-link-primary{
  border:0 !important;
  background:linear-gradient(135deg,#07518c 0%,#0a84c2 100%) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(8,120,184,.25);
}

/* 再診断 */

.nccfc-restart-wrap{
  margin-top:32px;
  text-align:center;
}

.nccfc-restart{
  padding:11px 15px;
  border:0;
  background:transparent;
  color:#4d6272;
  font-family:inherit;
  font-size:19px !important;
  font-weight:800;
  line-height:1.5;
  text-decoration:underline;
  cursor:pointer;
}

/* フォーカス */

.nccfc-primary:focus-visible,
.nccfc-answer:focus-visible,
.nccfc-restart:focus-visible,
.nccfc-link:focus-visible{
  outline:4px solid rgba(255,136,0,.48);
  outline-offset:4px;
}

/* 動きを減らす設定の利用者にはアニメーションを止める */

@media (prefers-reduced-motion: reduce){
  .nccfc-primary{
    animation:nccfcCtaColorOnly 2.6s ease-in-out infinite !important;
    transform:none !important;
  }

  .nccfc-answer,
  .nccfc-link{
    transition:none !important;
  }
}

@keyframes nccfcCtaColorOnly{
  0%,100%{
    background-position:0% 50%;
    filter:brightness(1) saturate(1);
    box-shadow:
      0 14px 32px rgba(255,136,0,.42),
      0 0 0 0 rgba(255,194,61,.06);
  }
  50%{
    background-position:100% 50%;
    filter:brightness(1.13) saturate(1.25);
    box-shadow:
      0 18px 38px rgba(255,136,0,.54),
      0 0 0 8px rgba(255,194,61,.12);
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:640px){

  .ncc-factory-check{
    margin:18px auto;
    font-size:18px;
  }

  .nccfc-start{
    padding:42px 20px 36px;
  }

  .nccfc-start .nccfc-kicker{
    font-size:15px !important;
  }

  .ncc-factory-check .nccfc-start h2{
    font-size:33px !important;
    line-height:1.48 !important;
  }

  .nccfc-lead{
    font-size:19px !important;
    line-height:1.9 !important;
  }

  .nccfc-primary{
    max-width:100% !important;
    min-height:74px !important;
    padding:21px 16px !important;
    font-size:25px !important;
  }

  .nccfc-note{
    font-size:15px !important;
  }

  .nccfc-question-area{
    padding:28px 16px 32px;
    border-radius:18px !important;
  }

  .nccfc-count{
    font-size:17px !important;
  }

  .ncc-factory-check .nccfc-question-area h3{
    padding:19px 17px !important;
    font-size:24px !important;
    line-height:1.6 !important;
  }

  .nccfc-answer{
    min-height:68px;
    padding:18px 50px 18px 18px;
    font-size:20px !important;
    line-height:1.55 !important;
  }

  .nccfc-answer::after{
    right:16px;
    font-size:34px;
  }

  .nccfc-result{
    padding:34px 18px 36px;
  }

  .nccfc-result .nccfc-kicker{
    font-size:18px !important;
    padding:10px 16px !important;
  }

  .ncc-factory-check .nccfc-result h2.nccfc-result-title{
    font-size:31px !important;
    line-height:1.5 !important;
  }

  .nccfc-result-text p{
    font-size:19px !important;
    line-height:1.9 !important;
  }

  .nccfc-result-text p:first-child{
    font-size:20px !important;
  }

  .nccfc-focus{
    padding:22px 21px 22px 23px !important;
    font-size:20px !important;
  }

  .nccfc-todo{
    padding:24px 20px 26px !important;
  }

  .nccfc-todo > strong{
    font-size:22px !important;
  }

  .nccfc-todo li{
    font-size:19px !important;
    line-height:1.8 !important;
  }

  .nccfc-link{
    min-height:62px !important;
    padding:18px 16px !important;
    font-size:19px !important;
  }

  .nccfc-restart{
    font-size:17px !important;
  }
}
