/* 深田塾ページ 共通デザイン */
.fj{
  --fj-ink:#1d3a52; --fj-soft:#4c6577; --fj-sky:#d6edf8; --fj-sky2:#f2f9fc;
  --fj-dawn:#f9dcc6; --fj-rose:#c23a5e; --fj-rose-d:#a42d4e; --fj-leaf:#4f8f6e;
  font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Noto Sans JP","Noto Sans CJK JP",sans-serif;
  color:var(--fj-ink); font-size:17px; line-height:1.9; font-weight:500;
  max-width:860px; margin:0 auto; padding:0 0 96px; letter-spacing:.02em;
}
.fj *{box-sizing:border-box}
.fj img{max-width:100%; height:auto; display:block}
.fj h1,.fj h2,.fj h3{font-family:inherit; color:var(--fj-ink); font-weight:700; line-height:1.5; margin:0 0 .6em; letter-spacing:.04em}
.fj h2{font-size:1.45rem}
.fj h3{font-size:1.1rem}
.fj p{margin:0 0 1em}
.fj a{color:var(--fj-rose)}
.fj a:focus-visible{outline:3px solid var(--fj-leaf); outline-offset:3px}

/* トップの大きな絵 */
.fj-hero{background:linear-gradient(180deg,var(--fj-sky) 0%,var(--fj-sky2) 100%); border-radius:0 0 28px 28px; overflow:hidden; text-align:center; padding-bottom:20px}
.fj-hero-img{width:100%}
.fj .fj-hero-title{font-size:1.15rem; margin:18px 16px 0; color:var(--fj-soft); font-weight:500}

/* ページ移動 */
.fj-nav{margin:20px 0 8px; overflow-x:auto; -webkit-overflow-scrolling:touch}
.fj-nav ul{display:flex; gap:4px; list-style:none; margin:0; padding:0 12px; white-space:nowrap}
.fj-nav a{display:block; padding:10px 14px; text-decoration:none; color:var(--fj-soft); font-size:.95rem; border-bottom:3px solid transparent}
.fj-nav a[aria-current="page"]{color:var(--fj-ink); font-weight:700; border-bottom-color:var(--fj-rose)}

/* 理念（縦書き） */
.fj-rinen{margin:28px 12px; padding:40px 20px 32px; border-radius:28px; text-align:center;
  background:linear-gradient(180deg,#cfe6f3 0%,#eef4f4 45%,var(--fj-dawn) 100%)}
.fj .fj-rinen-text{writing-mode:vertical-rl; -webkit-writing-mode:vertical-rl; display:inline-block; text-align:start; font-size:2.3rem; font-weight:700; line-height:1.7; letter-spacing:.2em; margin:0 auto 24px;
  text-shadow:0 0 18px rgba(255,255,255,.9)}
.fj-rinen-text span{display:block}
.fj-rinen-text span:nth-child(2){padding-top:1.6em}
.fj .fj-rinen-note{font-size:1rem; color:var(--fj-soft); margin:0}
.fj-rinen-sm .fj-rinen-text{font-size:1.8rem}
@media (prefers-reduced-motion:no-preference){
  .fj-rinen-text span{animation:fjGlow 2.4s ease-out both}
  .fj-rinen-text span:nth-child(2){animation-delay:.9s}
}
@keyframes fjGlow{from{opacity:0; filter:blur(6px)} to{opacity:1; filter:blur(0)}}

/* 区切り */
.fj-sec{padding:32px 18px}
.fj-sec + .fj-sec{border-top:1px solid #e3edf2}
.fj-sub{color:var(--fj-soft); font-size:.95rem}
.fj-img-wide{width:100%; margin:8px 0 20px}

.fj-list{list-style:none; margin:0; padding:0}
.fj-list li{padding:14px 0 14px 22px; position:relative; border-bottom:1px dashed #d4e3ea}
.fj-list li::before{content:""; position:absolute; left:2px; top:1.35em; width:9px; height:9px; border-radius:50%; background:var(--fj-dawn); box-shadow:0 0 0 3px #fbeee3}
.fj-list b{display:block; font-size:1.05rem}

.fj-ways-grid{display:grid; gap:18px}
.fj-ways-grid h3{border-left:4px solid var(--fj-leaf); padding-left:10px}
.fj-ways-grid p{margin:0; color:var(--fj-soft)}

/* Zoomコース */
.fj-feature{background:var(--fj-sky2); border-radius:24px; margin:12px; border:none!important}
.fj .fj-price{margin:0 0 .2em; font-size:1.1rem}
.fj-yen{font-size:2.6rem; font-weight:700; letter-spacing:.02em; color:var(--fj-ink)}
.fj-price small{font-size:.9rem; color:var(--fj-soft)}
.fj-dl{display:grid; grid-template-columns:4em 1fr; gap:6px 12px; margin:18px 0 24px}
.fj-dl dt{font-weight:700} .fj-dl dd{margin:0}

/* 先生 */
.fj-teacher{display:grid; gap:20px}
.fj-teacher-img{border-radius:24px; max-height:440px; width:100%; object-fit:cover}

.fj-prose p{max-width:36em}
.fj-quote{margin:0 0 1em; padding:18px 20px; background:#fbf1ea; border-radius:16px; font-size:1.2rem; font-weight:700}
.fj-point{font-size:1.25rem; font-weight:700; padding:16px 20px; background:var(--fj-sky2); border-radius:16px; line-height:1.7}

/* 料金 */
.fj-plans{display:grid; gap:0}
.fj-plan{padding:22px 0; border-bottom:1px solid #e3edf2}
.fj-plan p{margin:0}
.fj-plan .fj-yen{font-size:2rem}
.fj-plan-main{background:var(--fj-sky2); border:2px solid var(--fj-sky); border-radius:24px; padding:22px 20px; margin-bottom:8px}
.fj-plan-main .fj-yen{font-size:2.6rem}

.fj-steps{counter-reset:s; list-style:none; margin:0; padding:0}
.fj-steps li{counter-increment:s; position:relative; padding:0 0 22px 52px}
.fj-steps li::before{content:counter(s); position:absolute; left:0; top:0; width:36px; height:36px; border-radius:50%; background:var(--fj-sky); font-weight:700; display:flex; align-items:center; justify-content:center}
.fj-steps li:not(:last-child)::after{content:""; position:absolute; left:17px; top:40px; bottom:4px; width:2px; background:var(--fj-sky)}
.fj-steps b{display:block}

/* ボタン */
.fj-btn{display:inline-block; background:var(--fj-rose); color:#fff!important; text-decoration:none; font-weight:700; padding:15px 32px; border-radius:999px; font-size:1.05rem; min-height:48px}
.fj-btn:hover{background:var(--fj-rose-d)}
.fj-btn-ghost{background:#fff; color:var(--fj-rose)!important; border:2px solid var(--fj-rose)}
.fj-btn-ghost:hover{background:#fff4f7}
.fj-link{font-weight:700}
.fj-cta{margin:24px 12px 0; padding:36px 20px; text-align:center; border-radius:28px; background:linear-gradient(180deg,var(--fj-sky2),var(--fj-dawn))}
.fj-cta p{color:var(--fj-soft)}
.fj-contact{text-align:center}
.fj-mail{font-size:1.1rem; font-weight:700; margin-top:14px; word-break:break-all}
.fj-line{margin-top:28px}
.fj-btn-line{background:#06c755}
.fj-btn-line:hover{background:#05a648}

/* 動画 */
.fj-videos{display:grid; gap:20px; padding:0 18px 12px}
.fj-video{position:relative; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:#000}
.fj-video iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.fj-empty{margin:0 18px; padding:22px; border:2px dashed var(--fj-sky); border-radius:16px; color:var(--fj-soft); text-align:center}

/* 下の案内 */
.fj-foot{margin-top:40px; padding:24px 18px; text-align:center; font-size:.9rem; color:var(--fj-soft)}
.fj-sns{display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; margin:0 0 10px; padding:0; list-style:none}
.fj-sticky{position:fixed; left:12px; right:12px; bottom:12px; z-index:999; text-align:center; box-shadow:0 6px 20px rgba(29,58,82,.25)}

@media (min-width:768px){
  .fj{font-size:18px}
  .fj-sticky{display:none}
  .fj-ways-grid{grid-template-columns:repeat(3,1fr)}
  .fj-teacher{grid-template-columns:300px 1fr; align-items:center}
  .fj-plans{grid-template-columns:1fr 1fr; gap:0 32px}
  .fj-plan-main{grid-column:1 / -1}
  .fj-videos{grid-template-columns:1fr 1fr}
  .fj .fj-rinen-text{font-size:3rem}
  .fj-nav ul{justify-content:center}
}
/* トップページではテーマのページ題名を隠す */
body.fj-is-top .entry-title, body.fj-is-top .page-title, body.fj-is-top h1.wp-block-post-title{display:none}

/* ===== v1.1 文字とイラストを大きく見やすく ===== */
.fj{font-size:19px; line-height:2; max-width:960px}
.fj h2{font-size:1.65rem}
.fj h3{font-size:1.25rem}
.fj-sub{font-size:1rem}
.fj-nav a{font-size:1.05rem; padding:12px 16px}
.fj .fj-hero-title{font-size:1.35rem; color:var(--fj-ink); font-weight:700}
.fj .fj-hero-title span{display:block; font-size:1.05rem; color:var(--fj-soft); font-weight:500}
.fj .fj-rinen-text{font-size:2.6rem}
.fj .fj-rinen-note{font-size:1.1rem; margin-bottom:24px}
.fj-list b{font-size:1.15rem}
.fj-btn{font-size:1.15rem; padding:17px 36px; min-height:56px}
.fj-btn-big{font-size:1.25rem; padding:20px 40px; width:100%; max-width:420px}
.fj-img-wide{border-radius:20px}
.fj-teacher-img{max-height:560px}
.fj [id]{scroll-margin-top:90px}

/* ページの見出し（各ページに1つの大見出し） */
.fj-pagehead{margin:0 12px; padding:40px 20px 28px; text-align:center; border-radius:0 0 28px 28px;
  background:linear-gradient(180deg,var(--fj-sky) 0%,var(--fj-sky2) 100%)}
.fj .fj-pagehead h1{font-size:2rem; margin:0 0 .3em}
.fj-pagehead p{margin:0; color:var(--fj-soft)}

/* 押せるカード */
.fj-cards{display:grid; gap:14px}
.fj a.fj-card{display:block; text-decoration:none; color:var(--fj-ink); background:#fff; border:2px solid var(--fj-sky);
  border-radius:20px; padding:18px 20px; transition:transform .2s, box-shadow .2s}
.fj a.fj-card:hover{transform:translateY(-2px); box-shadow:0 8px 20px rgba(29,58,82,.12)}
.fj a.fj-card h3::after{content:" →"; color:var(--fj-rose)}
.fj a.fj-card p{margin:0; color:var(--fj-soft)}
.fj-list-link a{display:block; color:var(--fj-ink); text-decoration:none}
.fj-list-link a b::after{content:" →"; color:var(--fj-rose)}
.fj-ways-2{grid-template-columns:1fr}

/* よくある質問 */
.fj-faq details{border-bottom:1px solid #e3edf2; padding:6px 0}
.fj-faq summary{cursor:pointer; font-weight:700; padding:12px 0; font-size:1.1rem; list-style:none}
.fj-faq summary::before{content:"Q. "; color:var(--fj-rose)}
.fj-faq summary::-webkit-details-marker{display:none}
.fj-faq details p{margin:0 0 12px; padding-left:1.6em}

.fj-cta-sub{margin:16px 0 0}
.fj-cta-sub a{color:var(--fj-soft)}
.fj-contact h2{margin-bottom:.3em}

/* ボタンが他の部品の下に隠れて押せない、を防ぐ */
.fj a, .fj .fj-btn{position:relative; z-index:2; pointer-events:auto}
.fj-sticky{position:fixed!important; z-index:9999}

@media (min-width:768px){
  .fj{font-size:20px}
  .fj-cards{grid-template-columns:repeat(3,1fr)}
  .fj-ways-2{grid-template-columns:1fr 1fr}
  .fj-teacher{grid-template-columns:360px 1fr}
  .fj .fj-rinen-text{font-size:3.3rem}
  .fj .fj-pagehead h1{font-size:2.4rem}
}
/* 深田塾ページではテーマのページ題名を隠し、ページ内の大見出しを使う */
body.fj-is-fj .entry-title, body.fj-is-fj .page-title, body.fj-is-fj h1.wp-block-post-title{display:none}
/* メニューを折り返して、スマホでも全部見えて押せるように */
.fj-nav{overflow:visible}
.fj-nav ul{flex-wrap:wrap; justify-content:center; white-space:normal; gap:4px 2px}
.fj-nav a{padding:10px 12px}
.fj-btn-big + .fj-sub{margin-top:10px}
