:root{
  --ink:#102038;--muted:#59677a;--brand:#0b7468;--brand-deep:#073f49;
  --accent:#e9ad3d;--accent-soft:#fff2cf;--paper:#fff;--soft:#f2f7f7;
  --line:#dbe5e7;--shadow:0 18px 44px rgba(14,39,55,.08);
  --text-base:clamp(17px,0.42vw + 15px,19px);
  --text-body:clamp(1.08rem,0.28vw + 1.02rem,1.22rem);
  --text-lead:clamp(1.16rem,0.35vw + 1.08rem,1.32rem);
  --text-h3:clamp(1.3rem,0.45vw + 1.15rem,1.48rem);
  --text-h4:clamp(1.12rem,0.25vw + 1.02rem,1.24rem);
  --line-body:1.88;
  --line-tight:1.55;
  --content-width:min(920px,calc(100% - 48px));
  --content-measure:100%;
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  font-size:100%;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:clip;
}
body{
  margin:0;color:var(--ink);background:var(--paper);
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:var(--text-base);line-height:var(--line-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;width:100%;
}
img{display:block;max-width:100%}
a{color:inherit}
.hero{
  position:relative;display:block;width:100%;overflow:hidden;background:#fff;
  min-height:0;padding:0;margin:0;
}
.hero:before{display:none}
.hero-visual{
  position:relative;z-index:1;width:var(--content-width);max-width:100%;margin:0 auto;
  overflow:hidden;box-shadow:none;line-height:0;
}
.hero-visual:after{display:none}
.hero-image{
  display:block;width:100%;max-width:none;height:auto;object-fit:cover;object-position:center top;
}
.hero-copy{
  width:var(--content-width);margin:0 auto;padding:28px 0 4px;text-align:left;
}
.hero-copy h1{
  margin:0;font-size:clamp(1.5rem,1.2vw + 1.2rem,2.1rem);line-height:1.45;font-weight:900;
}
.hero-copy .hero-sub{
  margin:14px 0 0;font-size:var(--text-lead);color:var(--brand-deep);font-weight:700;
}
.hero-copy .hero-lead{margin:16px 0 0}
.hero-copy .bullet-panel{margin-top:18px}
.cta{
  display:inline-flex;align-items:center;justify-content:center;min-height:56px;margin-top:30px;
  padding:15px 34px;border-radius:999px;background:var(--accent);border:1px solid #d8941f;
  color:#172638;text-decoration:none;font-weight:1000;letter-spacing:.02em;
  box-shadow:0 10px 24px rgba(233,173,61,.22);transition:transform .2s ease,box-shadow .2s ease;
}
.cta:after{content:"→";margin-left:12px;font-size:1.25em}
.cta:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(233,173,61,.28)}
.sticky-purchase{
  position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:min(920px,calc(100% - 28px));min-height:64px;padding:10px 12px 10px 14px;
  border-radius:999px;border:1px solid rgba(255,255,255,.22);
  background:
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 42%),
    linear-gradient(180deg,#1eb4ad 0%,#129e97 42%,#0b7f7a 100%);
  box-shadow:
    0 10px 24px rgba(8,70,68,.32),
    0 2px 0 rgba(255,255,255,.28) inset,
    0 -2px 0 rgba(0,0,0,.12) inset;
  color:#fff;text-decoration:none;
  transform:translateX(-50%);
  transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease;
}
.sticky-purchase:hover{
  transform:translateX(-50%) translateY(-1px);
  box-shadow:
    0 14px 28px rgba(8,70,68,.36),
    0 2px 0 rgba(255,255,255,.3) inset,
    0 -2px 0 rgba(0,0,0,.12) inset;
}
.sticky-purchase-icon,.sticky-purchase-arrow{
  flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;
  border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(8,40,40,.16);
}
.sticky-purchase-icon{border:2px solid #e24a4a}
.sticky-purchase-icon svg{width:24px;height:24px;display:block}
.sticky-purchase-arrow{width:40px;height:40px}
.sticky-purchase-arrow svg{width:18px;height:18px;display:block}
.sticky-purchase-label{
  flex:1 1 auto;min-width:0;text-align:center;
  font-weight:900;font-size:clamp(.92rem,.35vw + .88rem,1.18rem);
  letter-spacing:.02em;line-height:1.25;
  text-shadow:0 1px 2px rgba(0,40,40,.28);
  overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}
.sticky-purchase[hidden],.sticky-purchase:not(.is-visible){display:none!important}
body.has-sticky-cta{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
main{overflow:hidden}
.sales-section{
  position:relative;padding:clamp(72px,8vw,118px) 0;background:#fff;
}
.sales-section::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Ccircle cx='40' cy='40' r='1.5' fill='%230b7468'/%3E%3C/svg%3E");
  background-size:32px 32px;
}
.sales-section:nth-child(even){background:#f5fafa}
.sales-section:nth-child(even):before{
  content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--brand);
  opacity:.45;
}
.section-inner{position:relative;z-index:1;width:var(--content-width);margin:auto}
.section-heading{margin:0 0 clamp(28px,4vw,44px)}
.section-heading>h2,.section-inner>h2{
  position:relative;margin:0;padding:0 0 18px;color:var(--ink);
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Shippori Mincho",serif;
  font-size:clamp(1.7rem,1.8vw + 1.15rem,2.45rem);line-height:var(--line-tight);
  letter-spacing:.01em;text-wrap:balance;font-weight:700;
}
.section-heading>h2:after,.section-inner>h2:after{
  content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:99px;
  background:var(--brand);
}
.section-content{font-size:var(--text-body);line-height:var(--line-body)}
.section-content>p:first-child{font-size:var(--text-lead)}
.section-lead{margin:0 0 18px;padding:0;border:none;background:transparent;border-radius:0}
.content-field{margin:36px 0}
.subhead{
  display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 16px;
  border-radius:12px;background:rgba(7,63,73,.04);line-height:var(--line-tight);
}
.subhead-bar{
  flex:0 0 auto;width:4px;align-self:stretch;min-height:1.1em;border-radius:99px;
  background:var(--brand);
}
.subhead-text{color:var(--brand-deep);font-size:var(--text-h3);font-weight:820}
.content-field h4.subhead .subhead-text{font-size:var(--text-h4);font-weight:760}
.subhead-body{padding-left:2px}
.content-field p,.section-content>p{
  margin:0 0 18px;max-width:var(--content-measure);
}
.section-content>p,.section-content>ul,.section-content>.bullet-panel,
.section-content>.content-field,.section-content>.feature-list{
  max-width:100%;
}
.bullet-panel{
  display:grid;gap:0;margin:8px 0 0;padding:8px;list-style:none;
  border:1px solid rgba(11,116,104,.14);border-radius:18px;background:#fff;
  box-shadow:0 12px 30px rgba(14,39,55,.05);
}
.bullet-panel li{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  margin:0;padding:16px 16px;border:none;border-radius:12px;background:transparent;
  font-size:inherit;line-height:var(--line-body);
}
.bullet-panel li+li{border-top:1px dashed rgba(16,32,56,.1)}
.bullet-panel li:before{display:none}
.bullet-check{
  position:relative;top:.15em;flex:0 0 auto;width:1.35em;height:1.35em;border-radius:50%;
  background:rgba(11,116,104,.12);border:1px solid rgba(11,116,104,.28);
}
.bullet-check:after{
  content:"";position:absolute;left:.38em;top:.28em;width:.42em;height:.7em;
  border-right:2.5px solid var(--brand);border-bottom:2.5px solid var(--brand);
  transform:rotate(40deg);
}
.bullet-index{
  display:inline-grid;place-items:center;min-width:2em;height:2em;padding:0 .35em;
  border-radius:10px;background:var(--brand-deep);color:#fff;
  font-size:.82rem;font-weight:900;letter-spacing:.04em;font-variant-numeric:tabular-nums;
}
.bullet-text{min-width:0}
.feature-list{
  display:grid;gap:0;margin:8px 0 0;padding:8px;
  border:1px solid rgba(11,116,104,.14);border-radius:18px;background:#fff;
  box-shadow:0 12px 30px rgba(14,39,55,.05);
}
.feature-item{
  display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;
  padding:16px 16px;border:none;border-radius:0;background:transparent;box-shadow:none;
}
.feature-item+.feature-item{border-top:1px dashed rgba(16,32,56,.1)}
.feature-index{
  display:inline-grid;place-items:center;width:2.4em;height:2.4em;border-radius:12px;
  background:var(--brand-deep);color:#fff;
  font-size:.86rem;font-weight:900;letter-spacing:.04em;
}
.feature-title{
  margin:0 0 6px;color:var(--brand-deep);font-size:clamp(1.08rem,.2vw + 1rem,1.2rem);
  line-height:var(--line-tight);font-weight:820;
}
.feature-desc{margin:0;color:var(--ink);font-size:var(--text-body);line-height:var(--line-body)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:26px 0}
.section--testimonials .card-grid,.section--recommender_testimonials .card-grid{
  grid-template-columns:1fr;
}
.content-card{
  position:relative;padding:26px 24px 24px 28px;border:1px solid rgba(11,116,104,.14);
  border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(14,39,55,.05);
  font-size:var(--text-body);line-height:var(--line-body);
}
.content-card:before{
  content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:0 4px 4px 0;
  background:var(--brand);
}
.section--problem{background:#fff8f3!important}
.section--problem:before{background:#c36a49;opacity:.65}
.section--problem .subhead-text{color:#a74d32}
.section--problem .section-heading>h2:after{background:#c36a49}
.section--solution,.section--offer{color:#fff;background:#073f49!important}
.section--solution::after,.section--offer::after{
  opacity:1;
  background-image:
    radial-gradient(circle at 15% 20%,rgba(255,255,255,.07) 0%,transparent 42%),
    radial-gradient(circle at 85% 80%,rgba(255,218,136,.06) 0%,transparent 38%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cpath d='M50 5L95 50L50 95L5 50Z' fill='none' stroke='%23ffffff' stroke-width='.4' opacity='.15'/%3E%3C/svg%3E");
  background-size:auto,auto,72px 72px;
}
.section--solution:before,.section--offer:before{display:none}
.section--solution .section-heading>h2,.section--offer .section-heading>h2{color:#fff}
.section--solution .section-heading>h2:after,.section--offer .section-heading>h2:after{background:#ffda88}
.section--solution .subhead,.section--offer .subhead{background:rgba(255,255,255,.08)}
.section--solution .subhead-text,.section--offer .subhead-text{color:#ffda88}
.section--solution .subhead-bar,.section--offer .subhead-bar{background:#ffda88}
.section--solution .section-content>p,.section--solution .subhead-body p,
.section--solution .content-field p,.section--offer .section-content>p,
.section--offer .subhead-body p,.section--offer .content-field p{color:#e7f4f2}
.section--solution .content-card,.section--offer .content-card,
.section--solution .bullet-panel,.section--offer .bullet-panel,
.section--solution .feature-list,.section--offer .feature-list,
.section--solution .feature-item,.section--offer .feature-item{
  color:var(--ink);background:#fff;border-color:rgba(255,255,255,.22);
}
.section--instructor_profile .section-inner,.section--recommender_testimonials .section-inner{
  padding:clamp(28px,5vw,52px);border:1px solid rgba(11,116,104,.14);border-radius:28px;
  background:#fff;box-shadow:var(--shadow);
}
.instructor-profile{
  display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:clamp(24px,4vw,40px);
  align-items:start;margin-top:8px;
}
.instructor-profile-photo{
  overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#f7fafb;
}
.instructor-profile-image{
  display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
}
.instructor-profile-body{min-width:0}
.instructor-profile-lead{margin-bottom:18px}
.instructor-profile-field{margin:22px 0 0}
.instructor-profile-field:first-child{margin-top:0}
.section--recommender_testimonials .content-card{font-size:var(--text-body)}
.faq-list{display:grid;gap:14px;margin-top:28px}
.faq-item{
  overflow:hidden;border:1px solid rgba(11,116,104,.14);border-radius:16px;background:#fff;
  box-shadow:0 8px 24px rgba(14,39,55,.04);
}
.faq-question{
  position:relative;margin:0;padding:18px 20px 18px 58px;font-size:var(--text-body);
  line-height:var(--line-tight);font-weight:820;color:var(--ink);
  background:linear-gradient(90deg,rgba(11,116,104,.06),#fff);
  border-bottom:1px solid rgba(11,116,104,.1);
}
.faq-answer{
  position:relative;display:block;padding:18px 20px 20px 58px;color:var(--muted);background:#fff;
  font-size:var(--text-body);line-height:var(--line-body);
}
.faq-mark{
  position:absolute;left:18px;top:16px;width:28px;height:28px;border-radius:9px;
  background:var(--brand-deep);color:#fff;font-size:.78rem;font-weight:900;
  display:grid;place-items:center;line-height:1;
}
.faq-answer .faq-mark{top:16px;background:var(--accent);color:#172638}
.faq-answer-body p{margin:0 0 12px}
.faq-answer-body p:last-child{margin:0}
.final-cta{
  position:relative;padding:clamp(78px,10vw,132px) 20px;background:#073f49;color:#fff;text-align:center;
}
.final-cta .section-kicker{color:#ffda88}
.final-cta h2{
  margin:0 auto 14px;max-width:820px;font-size:clamp(1.85rem,2.4vw + 1rem,2.85rem);
  line-height:var(--line-tight);color:#fff;
}
.final-cta p{
  margin:0 auto;max-width:680px;color:#d7e8ea;font-size:var(--text-body);line-height:var(--line-body);
}
.postscript-cta-section{
  display:flex;justify-content:center;align-items:center;
  padding:28px 24px;background:#f3f6f8;text-align:center;
}
.postscript-cta-section .postscript-cta-image-link{
  display:block;width:min(1000px,calc(100vw - 32px));margin:0 auto;text-decoration:none;line-height:0;
}
.postscript-cta-section .postscript-cta-image{
  display:block;width:100%;max-width:100%;height:auto;margin:0 auto;
}
.postscript-cta-section .postscript-cta-image-link:hover{opacity:.92}
.postscript-cta-section .postscript-cta-image-link:focus-visible{outline:3px solid #0b7f7a;outline-offset:4px}
.application-section{
  position:relative;padding:0;background:#f3f6f8;line-height:0;
}
.application-visual{
  display:block;width:var(--content-width);max-width:100%;margin:0 auto;
  text-decoration:none;color:inherit;
}
.application-image{
  display:block;width:100%;max-width:none;height:auto;object-fit:cover;object-position:center top;
}
footer{
  padding:30px;text-align:center;color:var(--muted);background:#f3f6f7;
  font-size:clamp(.88rem,.2vw + .82rem,.95rem);line-height:var(--line-body);
}
footer small{display:block}
.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:12px}
.legal-link{
  display:inline-block;color:var(--brand-deep);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;font-size:.92em;
}
.legal-link:hover{color:var(--brand)}
.legal-toggle{position:absolute;opacity:0;pointer-events:none}
.legal-modal{
  position:fixed;inset:0;z-index:12000;display:none;align-items:center;justify-content:center;
  padding:20px;box-sizing:border-box;
}
.legal-toggle:checked + .legal-modal{display:flex}
.legal-backdrop{
  position:absolute;inset:0;background:rgba(12,24,36,.55);cursor:pointer;
}
.legal-panel{
  position:relative;z-index:1;width:min(720px,100%);max-height:min(86vh,900px);
  overflow:auto;padding:0;border-radius:18px;background:#fff;color:var(--ink);
  box-shadow:0 24px 60px rgba(10,24,36,.28);text-align:left;
}
.legal-panel-head{
  position:sticky;top:0;display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;padding:22px 22px 16px;background:#fff;border-bottom:1px solid rgba(16,32,56,.08);
}
.legal-panel-head h2{
  margin:0;font-size:clamp(1.05rem,.3vw + 1rem,1.25rem);line-height:1.4;color:var(--brand-deep);
}
.legal-close{
  flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  background:#f1f4f6;color:var(--ink);font-size:1.35rem;line-height:1;cursor:pointer;
}
.legal-list{margin:0;padding:8px 22px 24px}
.legal-row{
  display:grid;grid-template-columns:minmax(8em,10.5em) 1fr;gap:12px 18px;
  padding:14px 0;border-bottom:1px solid rgba(16,32,56,.08);
}
.legal-row:last-child{border-bottom:none}
.legal-row dt{margin:0;font-weight:760;color:var(--brand-deep);line-height:1.55}
.legal-row dd{margin:0;color:var(--ink);line-height:1.7;word-break:break-word}
.privacy-body{padding:8px 22px 24px}
.privacy-section{padding:14px 0;border-bottom:1px solid rgba(16,32,56,.08)}
.privacy-section:last-child{border-bottom:none}
.privacy-section h3{
  margin:0 0 8px;font-size:1rem;line-height:1.45;color:var(--brand-deep);font-weight:760;
}
.privacy-section p{margin:0 0 10px;line-height:1.75;color:var(--ink)}
.privacy-section ul{margin:0 0 10px;padding-left:1.3em;line-height:1.7;color:var(--ink)}
.privacy-section li{margin:.25em 0}
/* 見出しの表示：PC・スマホともに、指定幅を超えた場合は自然に折り返す */
.wrap-unit{display:contents}
.section-heading>h2,.section-inner>h2{
  white-space:normal;
  font-size:clamp(.9rem, 2.9vw, 2.45rem);
  letter-spacing:0;
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
}

/* PC版・スマホ版で改行位置を個別指定する場合のみ使用 */
.pc-only-br,.sp-only-br{display:none}
@media screen and (min-width:641px){
  .pc-only-br{display:block}
}
@media screen and (max-width:640px){
  .sp-only-br{display:block}
}
.section-heading>h2,.section-inner>h2,.subhead-text,.feature-title,
.faq-question,.final-cta h2,.final-cta p{
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
}
.subhead-text{min-width:0}
.feature-title,.faq-question,.final-cta h2,.final-cta p{text-wrap:balance}
/* 本文：3?4行ごとに1行ぶんの余白を入れて、詰まって見えないようにする。 */
p.body-block{
  margin:0 0 calc(var(--line-body) * 1em);max-width:var(--content-measure);
  text-wrap:pretty;
}
p.body-block:last-child{margin-bottom:0}
/* 箇条書きの前に置く導入文：見出しと本文の中間の大きさで、太めに出す。 */
p.bullet-lead,.section-content>p.bullet-lead:first-child{
  margin:26px 0 10px;font-size:var(--text-h4);font-weight:800;
  color:var(--brand-deep);line-height:var(--line-tight);
}
.section--solution p.bullet-lead,.section--offer p.bullet-lead{color:#ffda88}
/* 推薦者の名前・肩書は右寄せにして、本文と区別する。 */
p.testimonial-signature{
  margin:2px 0 26px;text-align:right;font-size:.96em;font-weight:700;
  color:var(--brand-deep);line-height:var(--line-tight);
}
.section--solution p.testimonial-signature,
.section--offer p.testimonial-signature{color:#ffda88}
/* 推薦文の見出し（「」の行）は、小見出しと同じ見え方にする。 */
.section-content>h3.subhead{margin-top:32px}
@media(max-width:640px){
  .legal-row{grid-template-columns:1fr;gap:4px}
}
@media(min-width:1024px){
  :root{
    --content-width:min(960px,calc(100% - 64px));
    --line-body:1.9;
  }
  .content-card{padding:32px 32px 32px 36px;font-size:var(--text-body)}
  .feature-item{padding:20px 18px}
  .cta{min-height:60px;padding:16px 38px;font-size:clamp(1rem,.2vw + .95rem,1.08rem)}
}
@media(max-width:640px){
  :root{
    --content-width:min(100% - 32px,980px);
    --content-measure:100%;
    --line-body:1.82;
  }
  .hero-visual{max-width:100%}
  .application-visual{max-width:100%}
  .sales-section{padding:64px 0}
  .sales-section:nth-child(even):before{width:4px}
  .card-grid{grid-template-columns:1fr}
  .content-card{padding:22px 20px 20px 24px;font-size:var(--text-body)}
  .feature-item{grid-template-columns:auto 1fr;gap:12px;padding:14px 12px}
  .bullet-panel li{padding:14px 12px;gap:12px}
  .subhead{padding:10px 12px}
  .cta{display:flex;width:100%;min-height:54px;font-size:1rem}
  .sticky-purchase{
    width:calc(100% - 20px);min-height:58px;gap:8px;padding:8px 10px 8px 10px;
  }
  .sticky-purchase-icon{width:38px;height:38px}
  .sticky-purchase-icon svg{width:20px;height:20px}
  .sticky-purchase-arrow{width:34px;height:34px}
  .sticky-purchase-arrow svg{width:15px;height:15px}
  .sticky-purchase-label{font-size:.9rem}
  .faq-question,.faq-answer{padding-left:52px}
  .faq-mark{left:16px}
  .instructor-profile{grid-template-columns:1fr}
  .instructor-profile-photo{max-width:280px;margin:0 auto}
  .section-heading>h2,.section-inner>h2{font-size:clamp(1.35rem,5vw,2rem);white-space:normal;letter-spacing:0;overflow-wrap:break-word;word-break:normal}
  /* スマホでは表示幅に応じて自然に折り返す。 */
  .final-cta h2{font-size:clamp(1.5rem,5.6vw,1.95rem)}
  .final-cta{padding-left:16px;padding-right:16px}
}
@media print{
  .hero{display:flex;min-height:0;background:#fff}.hero-visual{box-shadow:none;max-width:100%}
  .hero-image{max-height:250mm;object-fit:contain}.sales-section{padding:12mm 0}
  .cta{border:1px solid var(--ink);box-shadow:none}.final-cta{background:#fff;color:var(--ink)}
  .sticky-purchase{display:none!important}
}


/* 推薦者の声：見出しは上、本文は画像の右側から開始 */
#section-block_10 .content-field {
  display: flow-root;
  margin: 0 0 32px;
}

#section-block_10 .content-field > .subhead {
  display: flex;
  width: 100%;
  margin: 0 0 16px;
}

#section-block_10 .testimonial-layout {
  display: flow-root;
  width: 100%;
}

#section-block_10 .testimonial-layout > .testimonial-image {
  float: left;
  display: block;
  width: 28%;
  max-width: 220px;
  height: auto;
  margin: 0 24px 12px 0 !important;
  clear: none;
  object-fit: contain;
}

/* 本文のラッパーをレイアウト上取り除き、段落を画像の右側から回り込ませる */
#section-block_10 .testimonial-layout > .subhead-body {
  display: contents !important;
}

#section-block_10 .testimonial-layout .body-block {
  width: auto;
  max-width: none;
}

#section-block_10 .testimonial-layout .testimonial-signature {
  text-align: right;
}

@media screen and (max-width: 768px) {
  #section-block_10 .testimonial-layout > .testimonial-image {
    width: 40%;
    max-width: 150px;
    margin: 0 16px 10px 0 !important;
  }
}


/* =========================================================
   スマートフォン最適化（PC表示には影響しない追加指定）
   ========================================================= */
@media screen and (max-width: 640px) {
  /* 横はみ出し防止・読みやすい基本設定 */
  html, body {
    max-width: 100%;
    overflow-x: clip;
  }
  body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  img, video, iframe, svg {
    max-width: 100%;
  }
  img {
    height: auto;
  }
  p, li, dd, .body-block, .faq-answer, .privacy-section p,
  .privacy-section li, .legal-row dd {
    /* 日本語の禁則処理を優先し、句読点などが行頭・行末に来るのを防ぐ */
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
  /* 本文は両端揃え。見出し・ボタン・署名などは既存の配置を維持 */
  .sales-section p:not(.testimonial-signature):not(.bullet-lead),
  .sales-section li,
  .sales-section .body-block,
  .sales-section .faq-answer,
  .privacy-section p,
  .privacy-section li,
  .legal-row dd {
    text-align: justify;
    text-justify: inter-ideograph;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
  .sales-section p.body-block {
    max-width: 100%;
    line-height: 1.85;
    margin-bottom: 1.15em;
  }
  .sales-section p.body-block:last-child {
    margin-bottom: 0;
  }
  /* セクション間の余白と左右の余白をスマホ向けに調整 */
  .sales-section {
    padding-top: 44px;
    padding-bottom: 44px;
  }
  .section-inner,
  .section-heading,
  .section-content {
    min-width: 0;
    max-width: 100%;
  }
  .section-heading,
  .section-inner > h2 {
    min-width: 0;
    white-space: normal;
    overflow-wrap: break-word;
  }
  .section-heading > h2,
  .section-inner > h2 {
    line-height: 1.45;
    letter-spacing: 0;
    white-space: normal;
    word-break: normal;
    line-break: strict;
    overflow-wrap: break-word;
  }
  .content-card {
    box-sizing: border-box;
    padding: 18px 16px;
    border-radius: 14px;
  }
  .subhead {
    box-sizing: border-box;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }
  .bullet-panel ul,
  .section-content ul,
  .section-content ol {
    padding-left: 1.25em;
  }
  .bullet-panel li {
    line-height: 1.75;
  }
  .feature-item {
    min-width: 0;
    box-sizing: border-box;
  }
  .feature-title,
  .faq-question,
  .final-cta h2,
  .final-cta p {
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
  .cta {
    box-sizing: border-box;
    white-space: normal;
    line-height: 1.5;
    padding: 14px 16px;
  }
  /* 推薦者の声：画像と本文が重ならず、スマホでも読みやすい幅を確保 */
  #section-block_10 .content-field {
    margin-bottom: 28px;
  }
  #section-block_10 .content-field > .subhead {
    margin-bottom: 12px;
    line-height: 1.55;
  }
  #section-block_10 .testimonial-layout {
    display: flow-root;
    min-width: 0;
  }
  #section-block_10 .testimonial-layout > .testimonial-image {
    float: left;
    width: 32%;
    max-width: 112px;
    height: auto;
    margin: 4px 12px 8px 0 !important;
    object-fit: contain;
  }
  #section-block_10 .testimonial-layout > .subhead-body {
    display: contents !important;
  }
  #section-block_10 .testimonial-layout .body-block {
    max-width: none;
    width: auto;
    line-height: 1.8;
    margin-bottom: 1em;
    text-align: justify;
    text-justify: inter-ideograph;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
  #section-block_10 .testimonial-layout .testimonial-signature {
    clear: both;
    margin: 12px 0 24px;
    text-align: right;
    line-height: 1.6;
    font-size: .9rem;
    overflow-wrap: anywhere;
  }
  /* FAQ・プロフィール・法定表示などの詰まりを軽減 */
  .faq-question,
  .faq-answer {
    line-height: 1.7;
  }
  .instructor-profile {
    gap: 18px;
  }
  .instructor-profile-photo {
    width: 100%;
    height: auto;
  }
  .legal-panel-head {
    padding: 16px;
  }
  .legal-list,
  .privacy-body {
    padding-left: 16px;
    padding-right: 16px;
  }
  .legal-panel {
    max-height: 88dvh;
    border-radius: 14px;
  }
}

@media screen and (max-width: 380px) {
  :root {
    --content-width: calc(100% - 24px);
  }
  .content-card {
    padding: 16px 13px;
  }
  #section-block_10 .testimonial-layout > .testimonial-image {
    width: 30%;
    max-width: 92px;
    margin-right: 10px !important;
  }
  #section-block_10 .testimonial-layout .body-block {
    font-size: .94rem;
    line-height: 1.78;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
  #section-block_10 .testimonial-layout .testimonial-signature {
    font-size: .84rem;
  }
  .sticky-purchase {
    width: calc(100% - 12px);
    bottom: 6px;
    min-height: 78px;
    gap: 10px;
    padding: 10px 12px;
  }
  .sticky-purchase-icon {
    width: 48px;
    height: 48px;
  }
  .sticky-purchase-icon svg {
    width: 26px;
    height: 26px;
  }
  .sticky-purchase-arrow {
    width: 46px;
    height: 46px;
  }
  .sticky-purchase-arrow svg {
    width: 21px;
    height: 21px;
  }
  .sticky-purchase-label {
    font-size: 1.05rem;
    line-height: 1.3;
  }
}

/* =========================================================
   スマホ本文：両端揃えを維持し、文字間隔の不自然な拡張を抑える
   ========================================================= */
@media screen and (max-width: 640px) {
  .sales-section p:not(.testimonial-signature):not(.bullet-lead),
  .sales-section li,
  .sales-section dd,
  .sales-section .body-block,
  .sales-section .faq-answer,
  .privacy-section p,
  .privacy-section li,
  .legal-row dd,
  #section-block_10 .testimonial-layout .body-block {
    text-align: justify !important;
    text-justify: inter-ideograph;
    letter-spacing: normal !important;
    word-spacing: normal !important;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
  }
}

/* 【ご提供内容・全体の特典】各画像の上に表示する見出し */
.section--block_11 .benefit-item {
  display: block;
}
.section--block_11 .benefit-heading {
  margin: 0 0 8px;
  color: var(--brand-deep);
  font-size: var(--text-h3);
  line-height: var(--line-tight);
  font-weight: 820;
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
}
.section--block_11 .benefit-image {
  width: 100%;
  height: auto;
}



/* 見出し：文節をHTMLで分割せず自然に折り返す。数字＋「か月」は途中で分割しない */
.section-heading > h2, .section-inner > h2 {
  white-space: normal;
  word-break: normal;
  line-break: strict;
  overflow-wrap: break-word;
}
.section-heading > h2, .section-inner > h2 {
  text-wrap: initial;
}

/* 見出し内の「3か月」など、数字と単位の途中では改行しない */
.section-heading > h2 .no-break, .section-inner > h2 .no-break {
  white-space: nowrap;
}


/* スマホ版のみ：PC専用の強制改行を無効にし、見出しを表示幅に応じて自然に折り返す */
@media screen and (max-width: 640px) {
  .section-heading > h2,
  .section-inner > h2 {
    white-space: normal;
    word-break: normal;
    line-break: strict;
    overflow-wrap: break-word;
    text-wrap: wrap;
  }

  .section-heading > h2 .pc-only-br,
  .section-inner > h2 .pc-only-br {
    display: none !important;
  }

  .section-heading > h2 .no-break,
  .section-inner > h2 .no-break {
    white-space: nowrap;
  }
}


@media (max-width: 640px) {
  .postscript-cta-section .postscript-cta-image-link {
    width: calc(100vw - 32px) !important;
    max-width: none !important;
  }
}


/* スマホ固定CTA：サイズを確実に拡大 */
@media screen and (max-width: 640px) {
  .sticky-purchase {
    width: calc(100% - 12px) !important;
    min-height: 86px !important;
    padding: 12px 14px !important;
    gap: 10px !important;
  }

  .sticky-purchase-icon {
    width: 52px !important;
    height: 52px !important;
  }

  .sticky-purchase-icon svg {
    width: 30px !important;
    height: 30px !important;
  }

  .sticky-purchase-arrow {
    width: 50px !important;
    height: 50px !important;
  }

  .sticky-purchase-arrow svg {
    width: 24px !important;
    height: 24px !important;
  }

  .sticky-purchase-label {
    font-size: 1.1rem !important;
    line-height: 1.35 !important;
  }

  body.has-sticky-cta {
    padding-bottom: calc(110px + env(safe-area-inset-bottom)) !important;
  }
}

/* スマホ版のみ：申込ボタン画像をかなり大きくし、緑色の詳細ボタンはさらに小さくする */
@media screen and (max-width: 640px) {
  /* images/application_button.png：「今すぐ実践塾に申し込む」 */
  .postscript-cta-section {
    padding: 12px 0 !important;
    overflow: visible !important;
  }

  .postscript-cta-section .postscript-cta-image-link {
    display: block !important;
    width: 108vw !important;
    max-width: none !important;
    margin-left: calc(50% - 54vw) !important;
    margin-right: 0 !important;
  }

  .postscript-cta-section .postscript-cta-image {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
  }

  /* 緑色の固定CTA：「6か月実践プログラムの詳細を見る」 */
  .sticky-purchase {
    width: calc(100% - 40px) !important;
    min-height: 46px !important;
    padding: 5px 8px !important;
    gap: 5px !important;
  }

  .sticky-purchase-icon {
    width: 25px !important;
    height: 25px !important;
    flex: 0 0 25px !important;
    border-width: 1px !important;
  }

  .sticky-purchase-icon svg {
    width: 15px !important;
    height: 15px !important;
  }

  .sticky-purchase-arrow {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
  }

  .sticky-purchase-arrow svg {
    width: 12px !important;
    height: 12px !important;
  }

  .sticky-purchase-label {
    font-size: 0.72rem !important;
    line-height: 1.15 !important;
  }

  body.has-sticky-cta {
    padding-bottom: calc(58px + env(safe-area-inset-bottom)) !important;
  }
}


/* 最終調整：スマホ版の申込画像を最大幅にし、緑色の固定CTAを小さくする */
@media screen and (max-width: 640px) {
  /* images/application_button.png：画面幅いっぱいに表示 */
  body main .postscript-cta-section {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body main .postscript-cta-section .postscript-cta-image-link {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
  }

  body main .postscript-cta-section .postscript-cta-image {
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
  }

  /* 緑色の固定CTA：「6か月実践プログラムの詳細を見る」をさらに縮小 */
  body > #stickyPurchase.sticky-purchase {
    width: calc(100% - 64px) !important;
    min-height: 40px !important;
    height: 40px !important;
    padding: 4px 8px !important;
    gap: 5px !important;
    border-radius: 999px !important;
  }

  body > #stickyPurchase .sticky-purchase-icon {
    width: 21px !important;
    height: 21px !important;
    flex: 0 0 21px !important;
    border-width: 1px !important;
  }

  body > #stickyPurchase .sticky-purchase-icon svg {
    width: 13px !important;
    height: 13px !important;
  }

  body > #stickyPurchase .sticky-purchase-arrow {
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
  }

  body > #stickyPurchase .sticky-purchase-arrow svg {
    width: 11px !important;
    height: 11px !important;
  }

  body > #stickyPurchase .sticky-purchase-label {
    font-size: 0.68rem !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
  }

  body.has-sticky-cta {
    padding-bottom: calc(50px + env(safe-area-inset-bottom)) !important;
  }
}
