/* ============================================================
   CodeClimb 下層ページ リッチレイヤー（add-on / ブランドカラーのみ）
   トップ(.cc-page-home)以外の main.cc-site 配下に scroll reveal とホバーを付与
   NOTE: .cc-site は header/main/footer の3要素に付くため main に限定する
   ============================================================ */
.cc-lower-ready .cc-rvl{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.cc-lower-ready .cc-rvl.cc-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){ .cc-lower-ready .cc-rvl{opacity:1 !important;transform:none !important;transition:none} }
.cc-lower-ready main.cc-page-blog .cc-blog-grid .service-card.cc-rvl{opacity:1;transform:none}

/* グリッド内カードのスタッガー */
main.cc-site:not(.cc-page-home) .grid-3 .cc-rvl:nth-child(2),
main.cc-site:not(.cc-page-home) .grid-4 .cc-rvl:nth-child(2){transition-delay:.07s}
main.cc-site:not(.cc-page-home) .grid-3 .cc-rvl:nth-child(3),
main.cc-site:not(.cc-page-home) .grid-4 .cc-rvl:nth-child(3){transition-delay:.14s}
main.cc-site:not(.cc-page-home) .grid-4 .cc-rvl:nth-child(4){transition-delay:.21s}

/* card ホバーリフト */
main.cc-site:not(.cc-page-home) .card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
main.cc-site:not(.cc-page-home) .card:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft);border-color:var(--brand-main-24)}

/* ============================================================
   FLOW / 手順 を トップMETHOD(zoroya process-02)風にリッチ化
   .steps / .step（HTML非編集・CSSカウンター・ブランドカラーのみ）
   特大番号(明朝) ＋ reveal で伸びるヘアライン ＋ 明朝見出し
   ============================================================ */
main.cc-site:not(.cc-page-home) .steps{
  grid-template-columns:repeat(3,1fr);
  gap:36px 40px;
  counter-reset:step;
}
main.cc-site:not(.cc-page-home) .step{
  background:transparent;
  border:0;
  border-radius:0;
  padding:62px 0 0;
  position:relative;
  transform:none;
}
/* 特大番号（Shippori Mincho） */
main.cc-site:not(.cc-page-home) .step::before,
main.cc-site:not(.cc-page-home) .steps--process .step::before{
  counter-increment:step;
  content:counter(step,decimal-leading-zero);
  position:absolute;
  top:2px;left:0;
  font-family:"Shippori Mincho",serif;
  font-weight:700;
  font-size:42px;
  line-height:1;
  letter-spacing:.01em;
  color:var(--brand-main);
  margin:0;
}
/* reveal で左→右に伸びるヘアライン */
main.cc-site:not(.cc-page-home) .step::after{
  content:"";
  position:absolute;
  top:27px;left:66px;right:6px;
  height:2px;
  background:var(--brand-main);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .9s cubic-bezier(.22,.61,.36,1) .2s;
}
main.cc-site:not(.cc-page-home) .step.cc-in::after{transform:scaleX(1)}
@media (prefers-reduced-motion: reduce){
  main.cc-site:not(.cc-page-home) .step::after{transition:none;transform:scaleX(1)}
}
/* 見出し・本文（明朝見出しでトップMETHODと統一） */
main.cc-site:not(.cc-page-home) .step h3{
  font-family:"Shippori Mincho",serif;
  font-size:19px;
  color:var(--ink);
  font-weight:700;
  margin:18px 0 10px;
  line-height:1.6;
  word-break:auto-phrase;
}
main.cc-site:not(.cc-page-home) .step p{
  color:var(--ink-soft);
  font-size:14px;
  line-height:1.95;
  margin:0;
}
/* 旧カード型ホバーは打ち消し（エディトリアル化したため） */
main.cc-site:not(.cc-page-home) .step:hover{transform:none;box-shadow:none;border-color:transparent}
@media (max-width:880px){
  main.cc-site:not(.cc-page-home) .steps{grid-template-columns:1fr;gap:32px}
  main.cc-site:not(.cc-page-home) .step{padding:54px 0 0}
}

/* ===== sec-reasons-01 参考: 階段状 画像トップカード (.cc-rsn) 2026-06-17 ===== */
.cc-site .cc-rsn{padding:clamp(72px,9vw,116px) 0;background:var(--cloud);position:relative;overflow:hidden}
.cc-site .cc-rsn__inner{width:min(1180px,calc(100% - 48px));margin:0 auto}
.cc-site .cc-rsn__head{max-width:780px;margin-bottom:clamp(40px,5vw,60px)}
.cc-site .cc-rsn__eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-en);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-main);font-weight:600}
.cc-site .cc-rsn__eyebrow::before{content:"";width:34px;height:1px;background:var(--brand-main)}
.cc-site .cc-rsn__title{font-size:clamp(27px,3.6vw,44px);line-height:1.4;font-weight:700;color:var(--brand-sub);letter-spacing:.02em;margin:16px 0 0}
.cc-site .cc-rsn__mk{color:var(--brand-main)}
.cc-site .cc-rsn__lead{margin:16px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.95}
.cc-site .cc-rsn__note{margin:12px 0 0;color:var(--ink-soft);font-size:12px;opacity:.8}
.cc-site .cc-rsn__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start}
.cc-site .cc-rsn__card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden}
.cc-site .cc-rsn__card:nth-child(2){margin-top:56px}
.cc-site .cc-rsn__card:nth-child(3){margin-top:112px}
.cc-site .cc-rsn__pic{position:relative;aspect-ratio:4/3}
.cc-site .cc-rsn__link{position:absolute;inset:0;display:block}
.cc-site .cc-rsn__pic img{width:100%;height:100%;object-fit:cover;display:block}
.cc-site .cc-rsn__ph{position:absolute;inset:0;background:linear-gradient(135deg,#d4e3ec,#bcd2de)}
.cc-site .cc-rsn__no{position:absolute;top:14px;left:18px;font-family:var(--font-en);font-size:38px;font-weight:600;color:rgba(255,255,255,.92);text-shadow:0 2px 16px rgba(0,0,0,.35);line-height:1;pointer-events:none}
.cc-site .cc-rsn__zoom{position:absolute;right:14px;bottom:14px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--brand-main);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.2);pointer-events:none}
.cc-site .cc-rsn__bd{padding:24px 24px 30px}
.cc-site .cc-rsn__bd h3{font-size:17px;font-weight:700;color:var(--brand-sub);line-height:1.6;margin:0 0 10px}
.cc-site .cc-rsn__bd p{font-size:14px;line-height:1.95;color:var(--ink-soft);margin:0}
@media(max-width:880px){
  .cc-site .cc-rsn__grid{grid-template-columns:1fr;gap:20px}
  .cc-site .cc-rsn__card:nth-child(2),.cc-site .cc-rsn__card:nth-child(3){margin-top:0}
  .cc-site .cc-rsn__no{font-size:32px}
}

/* ============================================================
   ZOROYA SECTION CATALOG — 下層ページ統一リニューアル 2026-06
   sec-faq-03 / sec-numbers-02 / sec-cta-01 / parts-catalog
   ============================================================ */

/* ─── page-hero--simple: --rich 同等 グリッド背景 + 光彩 ─── */
main.cc-site:not(.cc-page-home) .page-hero--simple{
  background:
    linear-gradient(135deg,rgba(32,140,186,.10) 0%,rgba(255,255,255,0) 52%),
    linear-gradient(180deg,#f6fbfd 0%,var(--paper) 100%);
  isolation:isolate;
}
main.cc-site:not(.cc-page-home) .page-hero--simple::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(32,140,186,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(32,140,186,.06) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(0deg,rgba(0,0,0,.04),rgba(0,0,0,.5));
  pointer-events:none;z-index:-1;
}
main.cc-site:not(.cc-page-home) .page-hero--simple::after{
  content:"";position:absolute;
  top:-80px;right:-80px;
  width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(32,140,186,.15) 0%,transparent 68%);
  pointer-events:none;z-index:-1;
}
main.cc-site:not(.cc-page-home) .page-hero--simple .eyebrow{
  background:#fff;
  border:1px solid rgba(32,140,186,.18);
  box-shadow:0 10px 30px rgba(51,101,122,.08);
}

/* ─── section-eyebrow: ラインデコレーション（parts-catalog準拠） ─── */
main.cc-site:not(.cc-page-home) .section-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
}
main.cc-site:not(.cc-page-home) .section-eyebrow::before{
  content:"";flex-shrink:0;
  width:28px;height:2px;background:var(--brand-main);
}

/* ─── stats: sec-numbers-02 ブロークングリッド特大数字 ─── */
main.cc-site:not(.cc-page-home) .stats{
  background:linear-gradient(135deg,#0d1b2a 0%,#1b3347 100%);
  padding:clamp(72px,9vw,110px) 0;
  position:relative;overflow:hidden;
}
main.cc-site:not(.cc-page-home) .stats::before{
  content:"";position:absolute;
  top:50%;left:50%;transform:translate(-50%,-50%);
  width:700px;height:340px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(32,140,186,.14) 0%,transparent 70%);
  pointer-events:none;
}
main.cc-site:not(.cc-page-home) .stats-grid{
  gap:40px 48px;text-align:left;align-items:start;position:relative;
}
main.cc-site:not(.cc-page-home) .stats-grid .stat:nth-child(2){margin-top:52px}
main.cc-site:not(.cc-page-home) .stats-grid .stat:nth-child(3){margin-top:100px}
main.cc-site:not(.cc-page-home) .stats-grid::after{
  content:"";position:absolute;
  top:180px;left:0;right:0;height:1px;
  background:rgba(255,255,255,.07);pointer-events:none;
}
main.cc-site:not(.cc-page-home) .stats .stat .num{
  font-family:"Shippori Mincho",serif;
  font-weight:800;
  font-size:clamp(76px,12vw,148px);
  color:#fff;line-height:.85;letter-spacing:-.02em;
  display:flex;align-items:flex-start;margin-bottom:12px;
}
main.cc-site:not(.cc-page-home) .stats .stat .num small{
  font-family:var(--font-en);
  font-size:.27em;color:var(--brand-main);
  font-weight:700;margin-top:.44em;margin-left:.12em;
  display:inline-block;letter-spacing:0;opacity:1;
}
main.cc-site:not(.cc-page-home) .stats .stat .label{
  font-size:13px;line-height:1.85;color:rgba(255,255,255,.68);
}
@media(max-width:720px){
  main.cc-site:not(.cc-page-home) .stats-grid{gap:36px;text-align:left}
  main.cc-site:not(.cc-page-home) .stats-grid .stat:nth-child(2),
  main.cc-site:not(.cc-page-home) .stats-grid .stat:nth-child(3){margin-top:0}
  main.cc-site:not(.cc-page-home) .stats-grid::after{display:none}
}

/* ─── final-cta: sec-cta-01 全幅背景画像＋動く光 ─── */
main.cc-site:not(.cc-page-home) .final-cta .container{transform:translateZ(0)}

/* ─── FAQ: sec-faq-03 番号付きアコーディオン ─── */
main.cc-site:not(.cc-page-home) .faq{
  counter-reset:faq-q;max-width:none;
  display:block;border-top:1px solid var(--line);
}
main.cc-site:not(.cc-page-home) .faq details{
  background:transparent;border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;overflow:visible;
  counter-increment:faq-q;
}
main.cc-site:not(.cc-page-home) .faq summary{
  display:grid;
  grid-template-columns:44px 1fr 24px;
  gap:12px;padding:22px 0;align-items:center;
}
main.cc-site:not(.cc-page-home) .faq summary::before{
  content:counter(faq-q,decimal-leading-zero);
  font-family:var(--font-en);
  font-size:12px;color:var(--brand-main);letter-spacing:.08em;
}
main.cc-site:not(.cc-page-home) .faq summary::after{
  content:"+";
  font-size:20px;color:var(--brand-main);
  font-family:var(--font-en);font-weight:400;
  justify-self:end;transition:transform .3s;line-height:1;
}
main.cc-site:not(.cc-page-home) .faq details[open] summary::after{
  content:"+";transform:rotate(45deg);
}
main.cc-site:not(.cc-page-home) .faq .a{
  padding:0 0 24px 56px;font-size:14.5px;
}

/* ─── faq-cat-title: 罫線スタイル ─── */
main.cc-site:not(.cc-page-home) .faq-cat-title{
  font-size:11px;letter-spacing:.24em;text-align:left;
  margin:52px 0 0;display:flex;align-items:center;gap:12px;
}
main.cc-site:not(.cc-page-home) .faq-cat-title::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(90deg,rgba(32,140,186,.35),transparent);
}
main.cc-site:not(.cc-page-home) .faq-cat-title:first-child{margin-top:0}

/* ─── cc-rsn__card/head: サブページ reveal（JS拡張の前準備） ─── */
.cc-lower-ready .cc-rsn__card.cc-rvl,
.cc-lower-ready .cc-rsn__head.cc-rvl{
  transition-delay:0s;
}
.cc-lower-ready .cc-rsn__card.cc-rvl:nth-child(2){transition-delay:.1s}
.cc-lower-ready .cc-rsn__card.cc-rvl:nth-child(3){transition-delay:.2s}

/* ─── .plans: プランカード スタッガー ─── */
main.cc-site:not(.cc-page-home) .plans .plan.cc-rvl:nth-child(2){transition-delay:.08s}
main.cc-site:not(.cc-page-home) .plans .plan.cc-rvl:nth-child(3){transition-delay:.16s}

/* ─── .two-col .visual: ブランドフレーム ─── */
main.cc-site:not(.cc-page-home) .two-col .visual{
  border:1px solid rgba(32,140,186,.14);
  box-shadow:0 28px 64px rgba(51,101,122,.12);
}

/* ─── .profile .photo: ブランドフレーム ─── */
main.cc-site:not(.cc-page-home) .profile .photo{
  border:1px solid rgba(32,140,186,.12);
}
