/* Elio Kokugo Kakomon override CSS — mechanically consolidated from inline <style> blocks. Order preserved. */

/* source-style-19 */
/* ============================================================
   2026-08-17 precision pass — canonical Figma 144:70
   Only source assets found under the supplied 素材 folder are used.
   ============================================================ */
:root{
  --f23-serif:"Noto Serif JP","Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;
  --f23-sans:"Noto Sans JP","Noto Sans CJK JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}
body.lp-latest{font-family:var(--f23-sans)}
.l-hero,.l-empathy,.l-feature-tabs,.final-school-analysis,.final-lesson-styles,.final-instructor-voices,.final-overview,.final-trial,.final-faq,.final-cta{font-family:var(--f23-serif)}
.l-header,.l-footer{font-family:var(--f23-sans)}

@media (min-width:781px){
  /* 01 HERO — Figma 144:74 absolute geometry */
  .l-hero{height:810.421875px!important;overflow:hidden!important;background:#f6f2ed!important}
  .l-hero::before,.l-hero::after{content:none!important;display:none!important;background:none!important}
  .l-hero__inner{position:relative!important;width:1440px!important;height:810.421875px!important;max-width:none!important;margin:0!important}
  .l-hero__evidence{position:absolute!important;z-index:0!important;left:0!important;top:-78px!important;width:1630px!important;height:892px!important;margin:0!important;overflow:hidden!important;pointer-events:none}
  .l-hero__crop{width:1630px!important;height:892px!important;overflow:hidden!important}
  .l-hero__evidence img{display:block!important;width:1630px!important;height:892px!important;max-width:none!important;object-fit:fill!important;object-position:0 0!important}
  .l-hero__copy{position:absolute!important;z-index:2!important;inset:0!important;width:1440px!important;height:810.421875px!important}
  .l-hero__name{left:92.296875px!important;top:56px!important;width:562px!important;height:48px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:36.1722px!important;font-weight:500!important;line-height:47.0239px!important;letter-spacing:3.27273px!important}
  .l-hero__name::after{left:0!important;bottom:-13px!important}
  .l-hero h1{left:88px!important;top:154.171875px!important;width:732.046875px!important;height:193.5px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:72px!important;font-weight:500!important;line-height:95.04px!important;letter-spacing:1.2px!important}
  .l-hero h1 em{font-size:73.072px!important;font-weight:500!important}
  .l-hero__concept{left:96.65625px!important;top:380.6875px!important;width:723px!important;height:77px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:24px!important;font-weight:600!important;line-height:38.2392px!important;letter-spacing:2.11005px!important}
  .l-label{left:96.609375px!important;top:490.6875px!important;width:683.8125px!important;height:44.78125px!important;margin:0!important;font-family:var(--f23-serif)!important}
  .l-label span{height:44.78125px!important;font-size:17.2249px!important;line-height:17.2249px!important;font-weight:600!important;letter-spacing:1.72249px!important}
  .l-button--primary{left:96.609375px!important;top:585.6875px!important;width:426.3125px!important;height:94.734375px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:26.6986px!important;font-weight:500!important;line-height:50.7273px!important;letter-spacing:2.15311px!important}

  /* 02 EMPATHY — Figma 144:103 absolute geometry */
  .l-empathy{height:1067px!important;min-height:1067px!important;aspect-ratio:auto!important;overflow:hidden!important;container-type:inline-size}
  .l-empathy__sheet{position:relative!important;width:1440px!important;height:1067px!important;max-width:none!important;margin:0!important}
  .l-empathy__voices{left:296px!important;top:-7.421875px!important;width:424.59375px!important;height:83px!important}
  .l-empathy__voices p,.l-empathy__voices p:nth-child(2){font-family:var(--f23-serif)!important;font-size:24px!important;font-weight:500!important;line-height:41.1188px!important;letter-spacing:1.07578px!important}
  .l-empathy__reframe{left:313px!important;top:117.578125px!important;width:648px!important;height:94px!important}
  .lp-latest .l-empathy__reframe h2{font-family:var(--f23-serif)!important;font-size:31.7563px!important;font-weight:500!important;line-height:46.9993px!important;letter-spacing:.635125px!important}
  .l-empathy__symptoms{left:313px!important;top:253.578125px!important;width:830px!important;height:113px!important;padding:2.8px 0 0 81.156px!important;font-family:var(--f23-serif)!important;font-size:20px!important;line-height:33.24px!important;letter-spacing:.61px!important}
  .l-empathy__diagnosis{left:313px!important;top:408.578125px!important;width:597px!important;height:auto!important}
  .l-empathy__diagnosis p{font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:500!important;line-height:29.3344px!important;letter-spacing:.534743px!important;white-space:nowrap!important}
  .l-empathy__possibility{left:313px!important;top:479.578125px!important;width:533px!important;height:109px!important;font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:500!important;line-height:36.2px!important;letter-spacing:.531563px!important;white-space:nowrap!important}
  .l-empathy__elio{left:313px!important;top:630.578125px!important;width:697px!important;height:76px!important}
  .l-empathy__elio p{font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:500!important;line-height:37.6px!important;letter-spacing:.540263px!important;white-space:nowrap!important}
  .l-empathy__handwritten{left:528px!important;top:730.578125px!important;width:748px!important;height:221px!important}
  .l-empathy__handwritten img{width:748px!important;height:221px!important;object-fit:contain!important}
  .lp-latest .l-empathy__decor--bottom{left:0!important;top:917.578125px!important;width:1440px!important;height:149.0625px!important;object-fit:cover!important}

  /* 03 FEATURES: preserve the canonical visible 01 layout and use supplied visual assets for all states. */
  .l-story-group>.l-feature-tabs.ft-precision{height:1029.328125px!important;padding-top:82px!important}
  .ft-precision,.ft-precision *{font-family:var(--f23-serif)}
  .ft-panel .f23-feature-visual-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
  .ft-panel--01 .final-feature-photo img{object-fit:cover!important;object-position:center!important}
  .ft-panel--02 .ft-panel__visual,.ft-panel--03 .ft-panel__visual,.ft-panel--04 .ft-panel__visual{height:562px!important;overflow:hidden!important;background:#f6f1e9!important}
  .ft-panel--02 .ft-panel__main,.ft-panel--03 .ft-panel__main,.ft-panel--04 .ft-panel__main{grid-template-columns:539px 539px!important;min-height:562px!important}

  /* 04 SCHOOL ANALYSIS — Figma 144:1016 geometry */
  .final-school-analysis{height:820px!important;padding:20px 30px!important;position:relative!important}
  .final-school-analysis__inner{position:relative!important;width:1380px!important;max-width:none!important;height:780px!important;margin:0!important;padding:0!important}
  .final-eyebrow{position:absolute!important;left:70px!important;top:22px!important;width:1240px!important;height:34px!important;line-height:34px!important;margin:0!important}
  .final-school-analysis h2{position:absolute!important;left:150px!important;top:58px!important;width:1080px!important;height:62px!important;margin:0!important;font-size:34px!important;line-height:48px!important;font-weight:600!important}
  .final-heading-rule{position:absolute!important;left:408px!important;top:112px!important;width:504px!important;height:16px!important;margin:0!important}
  .final-school-analysis__lead{position:absolute!important;left:330px!important;top:145px!important;width:720px!important;height:76px!important;margin:0!important;font-size:18px!important;line-height:32px!important}
  .final-school-featured{position:absolute!important;left:70px!important;top:240px!important;width:1238px!important;height:214px!important;display:grid!important;grid-template-columns:repeat(4,296px)!important;gap:18px!important;margin:0!important}
  .final-school-featured__card{width:296px!important;height:214px!important;padding:0!important}
  .final-school-featured__card h3{position:absolute!important;left:28px!important;top:89px!important;width:240px!important;height:38px!important;margin:0!important;font-size:20px!important;line-height:28px!important;font-weight:600!important}
  .final-school-featured__card p{position:absolute!important;left:28px!important;top:124px!important;width:240px!important;height:56px!important;margin:0!important;font-size:15px!important;line-height:25px!important}
  .final-school-featured__card b{left:28px!important;bottom:15px!important}
  .school-mark-img{position:absolute!important;display:block!important;object-fit:contain!important}
  .school-mark-img--01{left:83px!important;top:34.896px!important;width:130px!important;height:44.209px!important}
  .school-mark-img--02{left:83px!important;top:30.976px!important;width:130px!important;height:52.05px!important}
  .school-mark-img--03{left:109px!important;top:38.958px!important;width:78px!important;height:40.083px!important}
  .school-mark-img--04{left:115px!important;top:30.154px!important;width:66px!important;height:57.692px!important}
  .final-school-list{position:absolute!important;left:70px!important;top:486px!important;width:1238px!important;height:188px!important;display:grid!important;grid-template-columns:repeat(4,296px)!important;grid-auto-rows:52px!important;gap:16px 18px!important;margin:0!important}
  .final-school-list a{position:relative!important;width:296px!important;height:52px!important;padding:0!important;display:block!important}
  .school-list-icon{position:absolute!important;display:block!important;object-fit:contain!important}
  .school-list-icon--05{left:18.645px;top:8px;width:36.71px;height:36px}.school-list-icon--06{left:18px;top:10.205px;width:38px;height:31.59px}.school-list-icon--07{left:19.966px;top:8px;width:34.067px;height:36px}.school-list-icon--08{left:20.146px;top:8px;width:33.707px;height:36px}.school-list-icon--09{left:20.532px;top:8px;width:32.936px;height:36px}.school-list-icon--10{left:18.187px;top:8px;width:37.626px;height:36px}.school-list-icon--11{left:20.403px;top:8px;width:33.195px;height:36px}.school-list-icon--12{left:20.49px;top:8px;width:33.019px;height:36px}.school-list-icon--13{left:18px;top:11.045px;width:38px;height:29.91px}
  .final-school-list a span{position:absolute!important;left:70px!important;top:6px!important;width:190px!important;height:40px!important;line-height:40px!important;font-size:15px!important}
  .final-school-list a b{position:absolute!important;right:13px!important;top:5px!important;height:40px!important;line-height:40px!important}
  .final-school-analysis__cta{position:absolute!important;left:425px!important;top:690px!important;width:530px!important;height:64px!important;margin:0!important}

  /* 05 LESSON STYLE — Figma 144:592 exact card frame geometry */
  
  
  
  
  
  
  
  
  

  /* 06 INSTRUCTOR — current typography is already aligned; correct only the canonical evidence geometry. */
  .final-instructor{grid-template-columns:639px 1fr!important}
  .final-instructor__photo{width:639px!important}
  .final-instructor__photo>img:first-child{width:639px!important;height:960px!important;object-fit:cover!important;object-position:38% center!important}
  .final-instructor__copy{margin-left:1px!important;padding-left:72px!important;padding-right:42px!important}
  

  /* 07-10 lower sections: keep measured geometry; make the single Figma step-03 icon explicit. */
  .final-trial__steps li:nth-child(3) .final-trial__icons img{width:50px!important;height:50px!important;object-fit:contain!important}
  .final-trial__steps li:nth-child(3) .final-trial__icons{gap:0!important}

  /* Canonical font fallbacks for offline local-file review. */
  .l-hero__name,.l-hero h1,.l-hero__concept,.l-label,.l-button--primary,.l-empathy__sheet,.ft-precision,.final-school-analysis,.final-lesson-styles,.final-instructor-voices,.final-overview,.final-trial,.final-faq,.final-cta{font-family:var(--f23-serif)!important}
  .l-header,.l-footer,.final-school-badge,.final-voices blockquote>span{font-family:var(--f23-sans)!important}
}

/* source-style-20 */
:root{
  --f23-serif:"Noto Serif JP","Noto Serif CJK JP","Yu Mincho",YuMincho,"Hiragino Mincho ProN",serif;
  --f23-sans:"Noto Sans JP","Noto Sans CJK JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
}

@media (min-width:781px){
  /* SCHOOL ANALYSIS — Figma 144:1016 */
  .final-school-analysis,.final-school-analysis *{box-sizing:border-box}
  .final-school-analysis .final-eyebrow{font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:600!important;line-height:normal!important;letter-spacing:0!important}
  .final-school-analysis h2#school-analysis-title{font-family:var(--f23-serif)!important;font-size:34px!important;font-weight:600!important;line-height:48px!important;letter-spacing:0!important}
  .final-school-analysis__lead{font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:400!important;line-height:32px!important;letter-spacing:0!important}
  .final-school-badge{font-family:var(--f23-serif)!important;font-size:14px!important;font-weight:600!important;line-height:normal!important;letter-spacing:0!important}
  .final-school-featured__card h3{font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:600!important;line-height:28px!important;letter-spacing:0!important}
  .final-school-featured__card p{font-family:var(--f23-serif)!important;font-size:15px!important;font-weight:400!important;line-height:25px!important;letter-spacing:0!important}
  .final-school-featured__card b{font-family:var(--f23-serif)!important;font-size:14px!important;font-weight:600!important;line-height:normal!important;letter-spacing:0!important}
  .final-school-list a span{font-family:var(--f23-serif)!important;font-size:15px!important;font-weight:600!important;line-height:normal!important;letter-spacing:0!important}
  .final-school-list a>b{font-family:var(--f23-serif)!important;font-size:25px!important;font-weight:400!important;line-height:normal!important}
  .final-school-analysis__cta{font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:600!important;line-height:normal!important}
  .final-school-analysis__cta>span{display:flex!important;width:44px!important;height:44px!important;align-items:center!important;justify-content:center!important;margin-right:10px!important}
  .final-school-analysis__cta>span img{width:39px!important;height:36px!important;object-fit:contain!important;filter:brightness(0) invert(1)!important}
  .final-school-analysis__cta>b{font-family:var(--f23-serif)!important;font-size:27px!important;font-weight:400!important}

  /* LESSON STYLE — Figma 144:592 */
  
  
  
  
  
  
  
  
  
  

  /* INSTRUCTOR — preserve measured geometry; ensure CTA is a real 372×58 block. */
  .final-instructor{overflow:visible!important}
  .final-instructor__cta{display:flex!important;position:relative!important;width:372px!important;height:58px!important;margin:63px 0 0 144px!important;align-items:center!important;justify-content:center!important;background:#ad171a!important;color:#fff!important;font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:600!important;line-height:22.4px!important;text-decoration:none!important}

  /* OVERVIEW — Figma 152:2 y=0..326 */
  .final-overview{position:relative!important;height:326px!important;padding:0!important;background:#f8f4ed!important;overflow:hidden!important}
  .final-overview__inner{position:relative!important;width:1440px!important;height:326px!important;max-width:none!important;margin:0!important}
  .final-section-heading{position:absolute!important;left:0!important;top:23px!important;width:1440px!important;height:56px!important;display:block!important}
  .final-section-heading h2{position:absolute!important;inset:0!important;margin:0!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:40px!important;font-weight:700!important;line-height:54px!important}
  .final-section-heading>span{position:absolute!important;top:30px!important;width:112px!important;height:1px!important;background:#c7933e!important}
  .final-section-heading>span:first-child{left:438px!important}.final-section-heading>span:last-child{left:890px!important}
  .final-section-heading>span:first-child:after{right:-4px!important}.final-section-heading>span:last-child:after{left:-4px!important}
  .final-overview__lead{position:absolute!important;left:0!important;top:82px!important;width:1440px!important;height:31px!important;margin:0!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:400!important;line-height:30px!important}
  .final-overview__grid{position:absolute!important;left:74px!important;top:125.578125px!important;width:1292px!important;height:129px!important;margin:0!important;display:block!important;border:1px solid #d7c8b4!important;border-radius:7px!important;background:rgba(255,255,255,.56)!important;box-shadow:0 4px 9px rgba(45,33,22,.08)!important}
  .final-overview__grid>div{position:absolute!important;top:0!important;height:128px!important;display:block!important;padding:0!important;border:0!important}
  
  
  
  
  
  .final-overview__grid>div+div:before{position:absolute!important;left:0!important;top:21px!important;height:83px!important;bottom:auto!important}
  .final-overview__grid img{position:absolute!important;left:24px!important;top:41px!important;width:52px!important;height:52px!important;object-fit:contain!important}
  
  
  
  
  
  
  
  
  
  .final-overview__note{position:absolute!important;left:0!important;top:267.578125px!important;width:1440px!important;height:23px!important;margin:0!important;text-align:center!important;font-family:var(--f23-sans)!important;font-size:16px!important;font-weight:400!important;line-height:20px!important;color:#77706a!important}

  /* TRIAL — Figma 152:36..79 (local y = combined y - 326) */
  .final-trial{position:relative!important;height:754px!important;padding:0!important;overflow:hidden!important}
  .final-trial__inner{position:relative!important;width:1440px!important;height:754px!important;max-width:none!important;margin:0!important;padding:0!important}
  .final-trial h2{position:absolute!important;left:95px!important;top:64px!important;width:910px!important;height:132px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:46px!important;font-weight:600!important;line-height:66px!important;letter-spacing:0!important}
  .final-trial h2 em{font:inherit!important;color:#b90f13!important}
  .final-trial__lead{position:absolute!important;left:95px!important;top:209px!important;width:880px!important;height:34px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:400!important;line-height:28px!important}
  .final-trial__steps{position:absolute!important;left:0!important;top:0!important;width:1440px!important;height:0!important;margin:0!important;padding:0!important;display:block!important;list-style:none!important}
  .final-trial__steps>li{position:absolute!important;width:320px!important;height:246px!important;margin:0!important;padding:0!important;background:#fff!important}
  .final-trial__steps>li:nth-child(1){left:126px!important;top:253px!important}
  .final-trial__steps>li:nth-child(2){left:510px!important;top:259px!important}
  .final-trial__steps>li:nth-child(3){left:895px!important;top:253px!important}
  .final-trial__no{position:absolute!important;left:18px!important;top:6px!important;width:85px!important;height:60px!important;font-family:var(--f23-serif)!important;font-size:50px!important;font-weight:400!important;line-height:56px!important;color:#c8953b!important}
  .final-trial__icons{position:absolute!important;left:100px!important;top:49px!important;width:120px!important;height:60px!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .final-trial__steps>li:nth-child(1) .final-trial__icons{left:101.8057px!important;top:49.4302px!important;width:60px!important}
  .final-trial__steps>li:nth-child(2) .final-trial__icons{left:111.0576px!important;top:54.9468px!important;width:100px!important;height:50px!important}
  .final-trial__steps>li:nth-child(3) .final-trial__icons{left:136.8027px!important;top:49.2559px!important;width:50px!important;height:50px!important}
  .final-trial__icons img{object-fit:contain!important}
  .final-trial__steps>li:nth-child(1) .final-trial__icons img{width:60px!important;height:60px!important}
  .final-trial__steps>li:nth-child(2) .final-trial__icons img{width:50px!important;height:50px!important}
  .final-trial__steps>li:nth-child(3) .final-trial__icons img{width:50px!important;height:50px!important}
  .final-trial__steps h3{position:absolute!important;left:32px!important;top:117px!important;width:264px!important;margin:0!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:20px!important;font-weight:600!important;line-height:29px!important}
  .final-trial__steps>li:nth-child(2) h3{left:28px!important;top:111.5068px!important;width:260px!important;line-height:28px!important}
  .final-trial__steps>li:nth-child(3) h3{left:34px!important;top:117.8804px!important;width:260px!important}
  .final-trial__steps>li>p{position:absolute!important;left:39px!important;top:156.7173px!important;width:252px!important;margin:0!important;text-align:center!important;font-family:var(--f23-sans)!important;font-size:14px!important;font-weight:400!important;line-height:22px!important}
  .final-trial__steps>li:nth-child(2)>p{left:30.8535px!important;top:180.5659px!important}
  .final-trial__steps>li:nth-child(3)>p{left:41.6318px!important;top:160.645px!important;width:248px!important}
  .final-trial__steps>li:not(:last-child):after{content:"→"!important;position:absolute!important;display:block!important;width:58px!important;height:58px!important;font-family:var(--f23-serif)!important;font-size:46px!important;font-weight:400!important;line-height:52px!important;color:#c8953b!important;background:none!important}
  .final-trial__steps>li:nth-child(1):after{left:325px!important;top:85.578px!important}
  .final-trial__steps>li:nth-child(2):after{left:326px!important;top:85.578px!important}
  .final-trial__band{position:absolute!important;left:55px!important;top:514px!important;width:1330px!important;height:151px!important;margin:0!important;display:block!important;padding:0!important;border:1px solid #c8953b!important;border-radius:8px!important;background:#fff9ef!important}
  .final-trial__outcomes{position:absolute!important;left:0!important;top:0!important;width:570px!important;height:149px!important;border:0!important;padding:0!important}
  .final-trial__outcomes strong{position:absolute!important;left:36px!important;top:18px!important;width:112px!important;height:112px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;background:#b6090c!important;color:#fff!important;font-family:var(--f23-serif)!important;font-size:17px!important;font-weight:600!important;line-height:28px!important}
  .final-trial__outcomes ul{position:absolute!important;left:185px!important;top:15px!important;width:380px!important;margin:0!important;padding:0!important;list-style:none!important}
  .final-trial__outcomes li{position:relative!important;height:36px!important;margin:0!important;padding-left:34px!important;font-family:var(--f23-serif)!important;font-size:17px!important;font-weight:400!important;line-height:28px!important}
  .final-trial__outcomes li:before{content:"✓"!important;position:absolute!important;left:0!important;top:0!important;color:#c8953b!important;font-family:var(--f23-serif)!important;font-size:23px!important;font-weight:600!important;line-height:28px!important}
  .final-trial__decision{position:absolute!important;left:570px!important;top:19px!important;width:341px!important;height:110px!important;padding:8px 0 0 26px!important;border-left:1px solid #d7c8b4!important}
  
  .final-trial__decision p{margin:10px 0 0!important;font-family:var(--f23-sans)!important;font-size:13px!important;font-weight:400!important;line-height:23px!important}
  .final-trial__action{position:absolute!important;left:911px!important;top:23px!important;width:358px!important;height:108px!important;padding:0!important;display:block!important}
  .final-trial__action a{display:flex!important;width:358px!important;height:76px!important;align-items:center!important;justify-content:center!important;background:#b90f13!important;color:#fff!important;font-family:var(--f23-serif)!important;font-size:21px!important;font-weight:600!important;line-height:34px!important;text-decoration:none!important}
  
  
  
  

  /* FAQ — canonical chevron remains down in shown-open state. */
  .final-faq details summary:after{content:"⌄"!important;transform:none!important}
  .final-faq details[open] summary:after{content:"⌄"!important;transform:none!important}

  /* FINAL CTA — Figma 144:1235 */
  .final-cta{position:relative!important;height:352px!important;padding:0!important;overflow:hidden!important}
  .final-cta__inner{position:relative!important;width:1440px!important;height:352px!important;max-width:none!important;margin:0!important;display:block!important}
  .final-cta__copy{position:absolute!important;left:80px!important;top:72px!important;width:576px!important;height:172px!important}
  .final-cta__copy h2{margin:0!important;width:576px!important;height:121px!important;font-family:var(--f23-serif)!important;font-size:42px!important;font-weight:600!important;line-height:56.7px!important;white-space:normal!important}
  .final-cta__copy p{position:absolute!important;left:0!important;top:142px!important;width:520px!important;height:30px!important;margin:0!important;font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:400!important;line-height:29.7px!important}
  .final-cta__box{position:absolute!important;left:685px!important;top:82px!important;width:630px!important;height:172px!important;margin:0!important;padding:0!important;display:block!important;background:#fbf8f2!important}
  .final-cta__box>strong{position:absolute!important;left:28px!important;top:45px!important;width:140px!important;height:64px!important;display:block!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:22px!important;font-weight:600!important;line-height:31.9px!important;color:#a71417!important}
  .final-cta__box:before{content:""!important;position:absolute!important;left:180px!important;top:28px!important;width:1px!important;height:116px!important;background:#d7c8b4!important}
  .final-cta__box>div{position:absolute!important;left:205px!important;top:28px!important;width:390px!important;height:116px!important;padding:0!important}
  
  
  .final-cta__box a{position:absolute!important;left:0!important;top:70px!important;width:390px!important;height:52px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#ad171a!important;color:#fff!important;font-family:var(--f23-serif)!important;font-size:16px!important;font-weight:600!important;line-height:22.4px!important;text-decoration:none!important}

  /* FOOTER — use source logo color, not a synthetic white filter. */
  .l-footer img{filter:none!important;opacity:1!important}
}

/* source-style-21 */
@media (min-width:781px){
  /* Figma 144:1112 — instructor + parent voices. Absolute coordinates are the Figma frame coordinates. */
  .final-instructor-voices{
    position:relative!important;
    width:1440px!important;
    height:1703px!important;
    overflow:visible!important;
    background:#fff!important;
    color:#2c2925!important;
  }
  .final-instructor{
    position:absolute!important;
    left:0!important; top:0!important;
    width:1440px!important; height:960px!important;
    display:block!important;
    overflow:visible!important;
    background:#fff!important;
  }
  .final-instructor__photo{
    position:absolute!important;
    left:0!important; top:0!important;
    width:639px!important; height:960px!important;
    overflow:visible!important;
    background:#fff!important;
  }
  .final-instructor__photo>img:first-child{
    position:absolute!important;
    left:0!important; top:0!important;
    width:639px!important; height:960px!important;
    display:block!important;
    object-fit:cover!important;
    object-position:33.33% center!important;
  }
  
  .final-instructor__copy{
    position:absolute!important;
    left:688px!important; top:0!important;
    width:734px!important; height:655px!important;
    margin:0!important; padding:0!important;
    overflow:visible!important;
    background:#fff!important;
    font-family:var(--f23-serif)!important;
  }
  .final-instructor__eyebrow{
    position:absolute!important;
    left:24px!important; top:54.765625px!important;
    width:170px!important; height:22px!important;
    margin:0!important; padding:0!important;
    display:block!important;
    color:#a30e0b!important;
    font-family:var(--f23-serif)!important;
    font-size:16px!important; font-weight:600!important;
    line-height:22px!important; letter-spacing:3px!important;
    text-transform:none!important;
  }
  .final-instructor__eyebrow span{
    position:absolute!important;
    left:144px!important; top:12.234375px!important;
    width:60px!important; height:1px!important;
    background:#a30e0b!important;
  }
  .final-instructor__name{
    position:absolute!important;
    left:24px!important; top:86.765625px!important;
    width:516px!important; height:49px!important;
    margin:0!important; padding:0!important;
    color:#11100d!important;
    font-family:var(--f23-serif)!important;
    font-weight:600!important; line-height:34px!important;
    letter-spacing:0!important; white-space:nowrap!important;
  }
  .final-instructor__name-person{font-size:24px!important;}
  .final-instructor__name-role{font-size:20px!important;}
  .final-instructor__copy h2{
    position:absolute!important;
    left:-1px!important; top:135.765625px!important;
    width:640px!important; height:145px!important;
    margin:0!important; padding:0!important;
    color:#11100d!important;
    font-family:var(--f23-serif)!important;
    font-size:50px!important; font-weight:600!important;
    line-height:68px!important; letter-spacing:0!important;
    white-space:nowrap!important;
  }
  .final-instructor__copy h2 em{color:#9c171a!important;font-style:normal!important;}
  .final-instructor__headline-line2{display:inline-block!important;margin-left:25px!important;}
  .final-instructor__statement{
    position:absolute!important;
    left:24px!important; top:289px!important;
    width:686px!important; height:351px!important;
    margin:0!important; padding:0!important;
    color:#2e2924!important;
    font-family:var(--f23-serif)!important;
    font-size:16px!important; font-weight:400!important;
    line-height:27px!important; letter-spacing:0!important;
    text-align:justify!important; text-justify:inter-ideograph!important;
    overflow:visible!important;
  }
  .final-instructor__statement p{
    margin:0 0 27px!important; padding:0!important;
    color:#2e2924!important;
    font-family:var(--f23-serif)!important;
    font-size:16px!important; font-weight:400!important;
    line-height:27px!important; letter-spacing:0!important;
    white-space:nowrap!important;
    text-align:justify!important; text-justify:inter-ideograph!important;
  }
  .final-instructor__statement p:last-child{margin-bottom:0!important;}
  .final-instructor__facts{
    position:absolute!important;
    left:24px!important; top:672px!important;
    width:624px!important; height:212px!important;
    margin:0!important; padding:0!important;
    display:grid!important;
    grid-template-columns:352px 239px!important;
    gap:33px!important;
  }
  .final-instructor__facts>div{position:relative!important;width:100%!important;height:212px!important;}
  .final-instructor__facts h3{
    position:absolute!important; left:0!important; top:0!important;
    width:100%!important; height:30px!important;
    margin:0!important; padding:0!important;
    border:0!important;
    color:#9c171a!important;
    font-family:var(--f23-serif)!important;
    font-size:20px!important; font-weight:400!important;
    line-height:30px!important; letter-spacing:0!important;
  }
  .final-instructor__facts h3 small{
    font-size:15px!important; font-weight:400!important; line-height:30px!important;
  }
  .final-instructor__facts>div:after{
    content:""!important;
    position:absolute!important; left:0!important; top:47px!important;
    width:100%!important; height:1px!important;
    background:#a30e0b!important;
  }
  .final-instructor__facts p{
    position:absolute!important; left:0!important; top:60px!important;
    width:100%!important; height:152px!important;
    margin:0!important; padding:0!important;
    color:#2e2924!important;
    font-family:var(--f23-serif)!important;
    font-size:16px!important; font-weight:400!important;
    line-height:30px!important; letter-spacing:0!important;
    text-align:justify!important; text-justify:inter-ideograph!important;
  }
  .final-instructor__cta{
    position:absolute!important;
    left:168px!important; top:947px!important;
    width:372px!important; height:58px!important;
    margin:0!important; padding:0!important;
    display:block!important;
    background:#9c171a!important; color:#fff!important;
    font-family:var(--f23-serif)!important;
    font-size:20px!important; font-weight:600!important;
    line-height:22.4px!important; letter-spacing:0!important;
    text-align:center!important; text-indent:0!important;
    opacity:1!important; visibility:visible!important;
    border-radius:0!important; box-shadow:none!important;
    text-decoration:none!important; z-index:4!important;
  }
  .final-instructor__cta-label{
    position:absolute!important; left:43px!important; top:15px!important;
    width:264px!important; height:22.4px!important;
    display:block!important; margin:0!important; padding:0!important;
    color:#fff!important; font:inherit!important; line-height:22.4px!important;
    text-align:center!important; white-space:nowrap!important;
  }

  /* Figma 144:1125 — parent voices starts at y=1076. */
  .final-voices{
    position:absolute!important;
    left:0!important; top:1076px!important;
    width:1440px!important; height:627px!important;
    margin:0!important; padding:0!important;
    background:#fff!important;
  }
  .final-voices>h2{
    position:absolute!important;
    left:130px!important; top:15.1875px!important;
    width:1180px!important; height:54px!important;
    margin:0!important; padding:0!important;
    color:#2c2925!important;
    font-family:var(--f23-serif)!important;
    font-size:40px!important; font-weight:600!important;
    line-height:54px!important; letter-spacing:0!important;
    text-align:center!important;
  }
  .final-voices>p{
    position:absolute!important;
    left:250px!important; top:85.1875px!important;
    width:940px!important; height:32.4px!important;
    margin:0!important; padding:0!important;
    color:#6b645d!important;
    font-family:var(--f23-serif)!important;
    font-size:18px!important; font-weight:600!important;
    line-height:32.4px!important; letter-spacing:0!important;
    text-align:center!important;
  }
  .final-voices__grid{
    position:absolute!important;
    left:130px!important; top:168.953125px!important;
    width:1180px!important; height:359px!important;
    margin:0!important; padding:0!important;
    display:grid!important;
    grid-template-columns:381px 382px 381px!important;
    gap:18px!important;
  }
  .final-voices blockquote{
    position:relative!important;
    width:100%!important; height:359px!important;
    margin:0!important; padding:0!important;
    overflow:hidden!important;
    background:#fdfcf9!important;
    border:1px solid #d9cfc2!important;
    color:#2c2925!important;
  }
  .final-voices blockquote>span{
    position:absolute!important;
    left:25px!important; top:23px!important;
    width:155px!important; height:28px!important;
    margin:0!important; padding:0!important;
    display:block!important;
    background:#9c171a!important; color:#fff!important;
    font-family:var(--f23-sans)!important;
    font-size:16px!important; font-weight:700!important;
    line-height:14.4px!important; letter-spacing:0!important;
  }
  .final-voices blockquote.is-gold>span{background:#b98d2c!important;}
  .final-voices blockquote h3{
    position:absolute!important;
    left:25px!important; top:77px!important;
    width:329.3333px!important; height:auto!important;
    margin:0!important; padding:0!important;
    border:0!important;
    color:#2c2925!important;
    font-family:var(--f23-serif)!important;
    font-size:24px!important; font-weight:600!important;
    line-height:37.2px!important; letter-spacing:0!important;
    white-space:normal!important;
  }
  .final-voices blockquote:after{
    content:""!important;
    position:absolute!important;
    left:25px!important; top:162.765625px!important;
    width:329.3333px!important; height:1px!important;
    background:#d9cfc2!important;
  }
  .final-voices blockquote:nth-child(2):after{top:163.765625px!important;}
  .final-voices blockquote:nth-child(3):after{top:164.765625px!important;}
  .final-voices blockquote p{
    position:absolute!important;
    left:25px!important; top:175px!important;
    width:329.3333px!important; height:auto!important;
    margin:0!important; padding:0!important;
    color:#423d38!important;
    font-family:var(--f23-sans)!important;
    font-size:16px!important; font-weight:400!important;
    line-height:30.4px!important; letter-spacing:0!important;
    text-align:left!important;
  }
}

/* source-style-23 */
/* 2026-08-17 — visual canonical:
   07_LESSON_STYLE_授業スタイル個別化_完成イメージ rev1.png (1672×941)
   Desktop geometry is expressed in canonical-image coordinates via cqw.
*/
.lesson-personalization-v2,
.lesson-personalization-v2 *{box-sizing:border-box}
.lesson-personalization-v2{
  container-type:inline-size;
  position:relative;
  width:100%;
  aspect-ratio:1672/941;
  margin:0;
  padding:0;
  overflow:hidden;
  background:#fefcf8;
  color:#282326;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;
}
.lesson-personalization-v2 .lpv2-stage{
  --u:calc(100cqw / 1672);
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.lesson-personalization-v2 h2,
.lesson-personalization-v2 h3,
.lesson-personalization-v2 p{margin:0;padding:0}

/* headline */
.lesson-personalization-v2 .lpv2-title{
  position:absolute;
  left:0;
  top:calc(73 * var(--u));
  width:100%;
  color:#231e22;
  text-align:left;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:calc(49 * var(--u))!important;
  font-weight:500!important;
  line-height:calc(62 * var(--u))!important;
  letter-spacing:calc(1.55 * var(--u))!important;
  white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-title__pre{
  position:absolute;left:calc(342 * var(--u));top:calc(6 * var(--u));white-space:nowrap;letter-spacing:calc(1.9 * var(--u));
}
.lesson-personalization-v2 .lpv2-title em{
  position:absolute;left:calc(845 * var(--u));top:0;
  font-size:calc(51 * var(--u));
  margin:0;color:#971a27;font-style:normal;font-weight:600;
  letter-spacing:calc(6.2 * var(--u))!important;white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-lead{
  position:absolute;
  left:0;
  top:calc(155 * var(--u));
  width:100%;
  color:#2d292a;
  text-align:center;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:calc(18 * var(--u))!important;
  font-weight:400!important;
  line-height:calc(31 * var(--u))!important;
  letter-spacing:calc(.5 * var(--u))!important;
  white-space:nowrap;
}

/* input-factor cards */
.lesson-personalization-v2 .lpv2-factor{
  position:absolute;
  top:calc(227 * var(--u));
  height:calc(89 * var(--u));
  border:calc(1 * var(--u)) solid #dfc5b6;
  border-radius:calc(11 * var(--u));
  background:rgba(255,255,255,.14);
  box-shadow:0 calc(5 * var(--u)) calc(15 * var(--u)) rgba(78,48,38,.06);
}
.lesson-personalization-v2 .lpv2-factor--understanding{left:calc(271 * var(--u));width:calc(340 * var(--u))}
.lesson-personalization-v2 .lpv2-factor--school{left:calc(668 * var(--u));width:calc(335 * var(--u))}
.lesson-personalization-v2 .lpv2-factor--timing{left:calc(1062 * var(--u));width:calc(340 * var(--u))}
.lesson-personalization-v2 .lpv2-factor__icon{
  position:absolute;
  left:calc(25 * var(--u));
  top:50%;
  width:calc(67 * var(--u));
  height:calc(60 * var(--u));
  transform:translateY(-50%);
  display:grid;
  place-items:center;
}
.lesson-personalization-v2 .lpv2-factor__icon img{
  display:block;
  width:auto;
  height:auto;
  max-width:calc(70 * var(--u));
  max-height:calc(69 * var(--u));
  object-fit:contain;
}
.lesson-personalization-v2 .lpv2-factor__copy{
  position:absolute;
  left:calc(112 * var(--u));
  top:calc(16 * var(--u));
  white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-factor__copy strong{
  display:block;
  color:#8f1723;
  font-size:calc(24 * var(--u));
  font-weight:600;
  line-height:calc(32 * var(--u));
  letter-spacing:calc(1.2 * var(--u));
}
.lesson-personalization-v2 .lpv2-factor__copy span{
  display:block;
  margin-top:calc(2 * var(--u));
  color:#30292b;
  font-size:calc(15.5 * var(--u));
  font-weight:400;
  line-height:calc(24 * var(--u));
  letter-spacing:calc(.25 * var(--u));
}

/* dotted connectors */
.lesson-personalization-v2 .lpv2-connector{
  position:absolute;
  border-color:#aa2935;
  border-style:dotted;
  opacity:.98;
}
.lesson-personalization-v2 .lpv2-connector--top-h{
  left:calc(441 * var(--u));top:calc(331 * var(--u));
  width:calc(791 * var(--u));height:0;
  border-width:calc(2 * var(--u)) 0 0;
}
.lesson-personalization-v2 .lpv2-connector--top-v1{
  left:calc(441 * var(--u));top:calc(315 * var(--u));
  width:0;height:calc(17 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}
.lesson-personalization-v2 .lpv2-connector--top-v2{
  left:calc(835 * var(--u));top:calc(315 * var(--u));
  width:0;height:calc(36 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}
.lesson-personalization-v2 .lpv2-connector--top-v3{
  left:calc(1232 * var(--u));top:calc(315 * var(--u));
  width:0;height:calc(17 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}

/* optimization pill */
.lesson-personalization-v2 .lpv2-optimize{
  position:absolute;
  left:calc(627 * var(--u));
  top:calc(350 * var(--u));
  width:calc(418 * var(--u));
  height:calc(77 * var(--u));
  border-radius:calc(39 * var(--u));
  background:linear-gradient(180deg,#aa1d31 0%,#841525 100%);
  box-shadow:0 calc(4 * var(--u)) calc(10 * var(--u)) rgba(82,15,25,.10);
  color:#fff;
}
.lesson-personalization-v2 .lpv2-optimize:before,
.lesson-personalization-v2 .lpv2-optimize:after{
  content:"";
  position:absolute;
  top:50%;
  width:calc(5 * var(--u));
  height:calc(5 * var(--u));
  margin-top:calc(-2.5 * var(--u));
  border-radius:50%;
  background:#fff;
}
.lesson-personalization-v2 .lpv2-optimize:before{left:calc(14 * var(--u))}
.lesson-personalization-v2 .lpv2-optimize:after{right:calc(14 * var(--u))}
.lesson-personalization-v2 .lpv2-optimize__icon{
  position:absolute;
  left:calc(20 * var(--u));
  top:calc(6 * var(--u));
  width:calc(72 * var(--u));
  height:calc(58 * var(--u));
  display:grid;
  place-items:center;
}
.lesson-personalization-v2 .lpv2-optimize__icon img{
  display:block;
  width:calc(71 * var(--u));
  height:calc(56 * var(--u));
  object-fit:contain;
}
.lesson-personalization-v2 .lpv2-optimize__copy{
  position:absolute;
  left:calc(102 * var(--u));
  top:calc(8 * var(--u));
  width:calc(287 * var(--u));
  text-align:center;
}
.lesson-personalization-v2 .lpv2-optimize__copy strong{
  display:block;
  font-size:calc(28 * var(--u));
  font-weight:500;
  line-height:calc(36 * var(--u));
  letter-spacing:calc(1.4 * var(--u));
  white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-optimize__copy span{
  display:block;
  font-size:calc(15.5 * var(--u));
  font-weight:500;
  line-height:calc(22 * var(--u));
  letter-spacing:calc(.9 * var(--u));
}

/* lower connectors */
.lesson-personalization-v2 .lpv2-connector--bottom-h{
  left:calc(344 * var(--u));top:calc(433 * var(--u));
  width:calc(979 * var(--u));height:0;border-width:calc(2 * var(--u)) 0 0;
}
.lesson-personalization-v2 .lpv2-connector--bottom-v0{
  left:calc(835 * var(--u));top:calc(427 * var(--u));
  width:0;height:calc(25 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}
.lesson-personalization-v2 .lpv2-connector--bottom-v1{
  left:calc(344 * var(--u));top:calc(433 * var(--u));
  width:0;height:calc(19 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}
.lesson-personalization-v2 .lpv2-connector--bottom-v2{
  left:calc(835 * var(--u));top:calc(433 * var(--u));
  width:0;height:calc(19 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}
.lesson-personalization-v2 .lpv2-connector--bottom-v3{
  left:calc(1323 * var(--u));top:calc(433 * var(--u));
  width:0;height:calc(19 * var(--u));border-width:0 0 0 calc(2 * var(--u));
}

/* type cards */
.lesson-personalization-v2 .lpv2-card{
  position:absolute;
  top:calc(451 * var(--u));
  height:calc(478 * var(--u));
  border:calc(1 * var(--u)) solid #e1d0c5;
  border-radius:calc(17 * var(--u));
  background:rgba(255,255,255,.14);
  box-shadow:0 calc(6 * var(--u)) calc(18 * var(--u)) rgba(79,56,43,.055);
  color:#2c2828;
}
.lesson-personalization-v2 .lpv2-card--a{left:calc(63 * var(--u));width:calc(493 * var(--u))}
.lesson-personalization-v2 .lpv2-card--b{left:calc(573 * var(--u));width:calc(493 * var(--u))}
.lesson-personalization-v2 .lpv2-card--c{left:calc(1085 * var(--u));width:calc(523 * var(--u))}

.lesson-personalization-v2 .lpv2-type{
  position:absolute;
  left:calc(29 * var(--u));
  top:calc(20 * var(--u));
  width:calc(79 * var(--u));
  height:calc(79 * var(--u));
  border:calc(2 * var(--u)) solid #9f1928;
  border-radius:50%;
  background:#9d1828;
  box-shadow:inset 0 0 0 calc(3 * var(--u)) #fff, inset 0 0 0 calc(4.5 * var(--u)) #9d1828;
  color:#fff;
  text-align:center;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;
  padding-top:calc(12 * var(--u));
}
.lesson-personalization-v2 .lpv2-type small{
  display:block;
  font-size:calc(11 * var(--u));
  font-weight:600;
  line-height:calc(14 * var(--u));
}
.lesson-personalization-v2 .lpv2-type strong{
  display:block;
  margin-top:calc(-1 * var(--u));
  font-family:Georgia,"Times New Roman",serif;
  font-size:calc(29 * var(--u));
  font-weight:400;
  line-height:calc(34 * var(--u));
}

.lesson-personalization-v2 .lpv2-card h3{
  position:absolute;
  top:calc(28 * var(--u));
  color:#941a27;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:calc(25.5 * var(--u))!important;
  font-weight:500!important;
  line-height:calc(32 * var(--u))!important;
  letter-spacing:calc(1.15 * var(--u))!important;
  white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-card--a h3{left:calc(138 * var(--u))}
.lesson-personalization-v2 .lpv2-card--b h3{left:calc(126 * var(--u))}
.lesson-personalization-v2 .lpv2-card--c h3{left:calc(125 * var(--u))}

.lesson-personalization-v2 .lpv2-person{
  position:absolute;
  object-fit:contain;
  object-position:center bottom;
}
.lesson-personalization-v2 .lpv2-card--a .lpv2-person{
  left:calc(19 * var(--u));top:calc(100 * var(--u));
  width:calc(132 * var(--u));height:calc(151 * var(--u));
}
.lesson-personalization-v2 .lpv2-card--b .lpv2-person{
  left:calc(20 * var(--u));top:calc(99 * var(--u));
  width:calc(136 * var(--u));height:calc(153 * var(--u));
}
.lesson-personalization-v2 .lpv2-card--c .lpv2-person{
  left:calc(18 * var(--u));top:calc(99 * var(--u));
  width:calc(133 * var(--u));height:calc(153 * var(--u));
}
.lesson-personalization-v2 .lpv2-status{
  position:absolute;
  top:calc(124 * var(--u));
  color:#312d2d;
  font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:calc(16.2 * var(--u))!important;
  font-weight:400!important;
  line-height:calc(29 * var(--u))!important;
  letter-spacing:calc(.15 * var(--u))!important;
}
.lesson-personalization-v2 .lpv2-card--a .lpv2-status{left:calc(174 * var(--u));width:calc(286 * var(--u))}
.lesson-personalization-v2 .lpv2-card--b .lpv2-status{left:calc(192 * var(--u));width:calc(260 * var(--u))}
.lesson-personalization-v2 .lpv2-card--c .lpv2-status{left:calc(165 * var(--u));width:calc(325 * var(--u))}

.lesson-personalization-v2 .lpv2-focus{
  position:absolute;
  left:calc(15 * var(--u));
  right:calc(15 * var(--u));
  top:calc(245 * var(--u));
  height:calc(135 * var(--u));
  border:calc(1 * var(--u)) solid #e3cfc6;
  border-radius:calc(8 * var(--u));
  background:rgba(255,255,255,.28);
}
.lesson-personalization-v2 .lpv2-focus__label{
  position:absolute;
  left:50%;
  top:calc(-14 * var(--u));
  transform:translateX(-50%);
  min-width:calc(129 * var(--u));
  height:calc(31 * var(--u));
  padding:calc(2 * var(--u)) calc(15 * var(--u)) 0;
  border-radius:calc(4 * var(--u));
  background:linear-gradient(#9f1827,#851320);
  box-shadow:0 calc(2 * var(--u)) calc(5 * var(--u)) rgba(92,21,24,.12);
  color:#fff;
  text-align:center;
  font-size:calc(16.5 * var(--u));
  font-weight:500;
  line-height:calc(28 * var(--u));
  letter-spacing:calc(.7 * var(--u));
  white-space:nowrap;
}
.lesson-personalization-v2 .lpv2-steps{
  position:absolute;
  inset:calc(17 * var(--u)) calc(5 * var(--u)) calc(4 * var(--u));
  display:grid;
  grid-template-columns:repeat(3,1fr);
  align-items:start;
}
.lesson-personalization-v2 .lpv2-step{
  position:relative;
  min-width:0;
  text-align:center;
}
.lesson-personalization-v2 .lpv2-step+.lpv2-step:before{
  content:"";
  position:absolute;
  left:calc(-7 * var(--u));
  top:calc(36 * var(--u));
  width:0;height:0;
  border-top:calc(6 * var(--u)) solid transparent;
  border-bottom:calc(6 * var(--u)) solid transparent;
  border-left:calc(7 * var(--u)) solid #3f3a39;
}
.lesson-personalization-v2 .lpv2-step__icon{
  width:calc(58 * var(--u));
  height:calc(58 * var(--u));
  margin:0 auto calc(2 * var(--u));
  border:calc(1 * var(--u)) solid #edd3cc;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,251,249,.60);
}
.lesson-personalization-v2 .lpv2-step__icon img{
  display:block;
  max-width:calc(55 * var(--u));
  max-height:calc(55 * var(--u));
  transform:translateY(calc(7 * var(--u)));
  width:auto;
  height:auto;
  object-fit:contain;
}
.lesson-personalization-v2 .lpv2-step span{
  display:block;
  color:#312d2d;
  margin-top:calc(7 * var(--u));
  font-size:calc(14.5 * var(--u));
  font-weight:400;
  line-height:calc(21.5 * var(--u));
  letter-spacing:calc(.05 * var(--u));
  white-space:nowrap;
}

.lesson-personalization-v2 .lpv2-goal{
  position:absolute;
  left:calc(14 * var(--u));
  right:calc(14 * var(--u));
  bottom:calc(22 * var(--u));
  height:calc(68 * var(--u));
  border-radius:calc(8 * var(--u));
  background:linear-gradient(90deg,#fff1ef 0%,#fff8f6 48%,#fff1ef 100%);
  color:#971923;
}
.lesson-personalization-v2 .lpv2-goal img{
  position:absolute;
  left:calc(14 * var(--u));
  top:calc(50% + 7 * var(--u));
  width:calc(60 * var(--u));
  height:calc(60 * var(--u));
  object-fit:contain;
  transform:translateY(-50%);
}
.lesson-personalization-v2 .lpv2-goal p{
  position:absolute;
  left:calc(88 * var(--u));
  top:calc(17 * var(--u));
  font-size:calc(22 * var(--u))!important;
  font-weight:500!important;
  line-height:calc(27 * var(--u))!important;
  letter-spacing:calc(.65 * var(--u))!important;
  white-space:nowrap;
}

/* Mobile: preserve meaning, not the desktop coordinate system. */
@media(max-width:780px){
  .lesson-personalization-v2{
    aspect-ratio:auto;
    overflow:visible;
    padding:48px 16px 54px;
    background:#fefcf8;
  }
  .lesson-personalization-v2 .lpv2-stage{position:relative;inset:auto;width:100%;height:auto;--u:1px}
  .lesson-personalization-v2 .lpv2-title,
  .lesson-personalization-v2 .lpv2-lead,
  .lesson-personalization-v2 .lpv2-factor,
  .lesson-personalization-v2 .lpv2-optimize,
  .lesson-personalization-v2 .lpv2-card{
    position:relative!important;
    left:auto!important;top:auto!important;width:auto!important;height:auto!important;
  }
  .lesson-personalization-v2 .lpv2-title{
    font-size:29px!important;line-height:1.55!important;white-space:normal;margin:0 auto 14px;
  }
  .lesson-personalization-v2 .lpv2-title em{display:block;margin:0}
  .lesson-personalization-v2 .lpv2-lead{
    font-size:14px!important;line-height:1.9!important;white-space:normal;margin:0 auto 26px;
  }
  .lesson-personalization-v2 .lpv2-lead br{display:none}
  .lesson-personalization-v2 .lpv2-factor{
    min-height:84px;margin:0 0 10px;padding:14px 16px 14px 94px;
  }
  .lesson-personalization-v2 .lpv2-factor__icon{left:18px;top:50%;width:58px;height:58px}
  .lesson-personalization-v2 .lpv2-factor__icon img{max-width:50px;max-height:50px}
  .lesson-personalization-v2 .lpv2-factor__copy{position:static;white-space:normal}
  .lesson-personalization-v2 .lpv2-factor__copy strong{font-size:20px;line-height:1.45}
  .lesson-personalization-v2 .lpv2-factor__copy span{font-size:13px;line-height:1.7}
  .lesson-personalization-v2 .lpv2-connector{display:none}
  .lesson-personalization-v2 .lpv2-optimize{
    min-height:74px;margin:18px 0 24px;padding:10px 18px 10px 84px;
    border-radius:40px;
  }
  .lesson-personalization-v2 .lpv2-optimize__icon{left:15px;top:8px;width:60px;height:56px}
  .lesson-personalization-v2 .lpv2-optimize__icon img{width:58px;height:50px}
  .lesson-personalization-v2 .lpv2-optimize__copy{position:static;width:auto;text-align:left}
  .lesson-personalization-v2 .lpv2-optimize__copy strong{font-size:21px;line-height:1.45}
  .lesson-personalization-v2 .lpv2-optimize__copy span{font-size:13px;line-height:1.5}
  .lesson-personalization-v2 .lpv2-card{
    min-height:570px;margin:0 0 18px;padding:20px 16px 18px;
  }
  .lesson-personalization-v2 .lpv2-type{left:18px;top:20px;width:70px;height:70px;padding-top:10px}
  .lesson-personalization-v2 .lpv2-type small{font-size:11px}
  .lesson-personalization-v2 .lpv2-type strong{font-size:28px}
  .lesson-personalization-v2 .lpv2-card h3{left:108px!important;top:25px!important;font-size:20px!important;line-height:1.5!important;white-space:normal}
  .lesson-personalization-v2 .lpv2-person{left:18px!important;top:112px!important;width:118px!important;height:150px!important}
  .lesson-personalization-v2 .lpv2-status{left:152px!important;top:128px!important;width:calc(100% - 170px)!important;font-size:14px!important;line-height:1.9!important}
  .lesson-personalization-v2 .lpv2-focus{left:16px;right:16px;top:285px;height:158px}
  .lesson-personalization-v2 .lpv2-focus__label{top:-16px;min-width:124px;height:30px;font-size:15px;line-height:27px}
  .lesson-personalization-v2 .lpv2-steps{inset:17px 2px 4px}
  .lesson-personalization-v2 .lpv2-step__icon{width:54px;height:54px}
  .lesson-personalization-v2 .lpv2-step__icon img{max-width:43px;max-height:43px}
  .lesson-personalization-v2 .lpv2-step span{font-size:11px;line-height:1.65;white-space:normal}
  .lesson-personalization-v2 .lpv2-step+.lpv2-step:before{left:-4px;top:31px}
  .lesson-personalization-v2 .lpv2-goal{left:16px;right:16px;bottom:20px;height:92px}
  .lesson-personalization-v2 .lpv2-goal img{left:18px;width:42px;height:42px}
  .lesson-personalization-v2 .lpv2-goal p{left:73px;top:13px;font-size:14px!important;line-height:1.8!important;white-space:normal}
}

/* precision placement for trimmed student assets */
.lesson-personalization-v2 .lpv2-card--a .lpv2-person{left:calc(17 * var(--u));top:calc(97 * var(--u));width:calc(132 * var(--u));height:calc(150 * var(--u))}
.lesson-personalization-v2 .lpv2-card--b .lpv2-person{left:calc(18 * var(--u));top:calc(96 * var(--u));width:calc(133 * var(--u));height:calc(150 * var(--u))}
.lesson-personalization-v2 .lpv2-card--c .lpv2-person{left:calc(25 * var(--u));top:calc(98 * var(--u));width:calc(112 * var(--u));height:calc(145 * var(--u))}
.lesson-personalization-v2 .lpv2-card--a .lpv2-focus__label{margin-left:calc(-8 * var(--u))}

@media(max-width:780px){
  .lesson-personalization-v2 .lpv2-title{text-align:center!important}
  .lesson-personalization-v2 .lpv2-title__pre,
  .lesson-personalization-v2 .lpv2-title em{position:static!important;display:block!important;left:auto!important;top:auto!important;font-size:inherit!important;letter-spacing:.03em!important;margin:0!important}
  .lesson-personalization-v2 .lpv2-card--a .lpv2-person,
  .lesson-personalization-v2 .lpv2-card--b .lpv2-person,
  .lesson-personalization-v2 .lpv2-card--c .lpv2-person{left:18px!important;top:112px!important;width:118px!important;height:150px!important}
  .lesson-personalization-v2 .lpv2-card--a .lpv2-focus__label{margin-left:0}
}

/* source-style-24 */
@media (max-width: 780px){
  .l-hero__evidence{height:350px!important;aspect-ratio:auto!important;overflow:hidden!important;background:#f6f2ed!important;}
  .l-hero__crop{position:absolute!important;inset:0!important;overflow:hidden!important;}
  .lp-latest .l-hero__crop img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:100% 50%!important;}
}

/* source-style-25 */
@media (max-width: 767px) {
  .lp-latest .l-hero {
    position: relative;
    min-height: 0;
    height: auto;
    background: #f7f2e9;
    overflow: hidden;
  }
  .lp-latest .l-hero::before {
    display: none;
  }
  .lp-latest .l-hero__inner {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
  }
  .lp-latest .l-hero__evidence {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    overflow: hidden;
  }
  .lp-latest .l-hero__crop {
    position: absolute;
    inset: 0;
    overflow: hidden;
  }
  .lp-latest .l-hero__crop img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 54% 46%;
    filter: saturate(.88) contrast(.94);
  }
  .lp-latest .l-hero__crop::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    background:
      linear-gradient(180deg,
        rgba(255,253,249,.54) 0%,
        rgba(255,253,249,.60) 35%,
        rgba(255,253,249,.68) 66%,
        rgba(255,253,249,.82) 100%);
    pointer-events: none;
  }
  .lp-latest .l-hero__copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 42px 18px 34px;
  }
  .lp-latest .l-hero__name {
    margin: 0 0 30px;
    color: #2d2824;
  }
  .lp-latest .l-hero h1 {
    margin: 0 0 20px;
    color: #171310;
    text-shadow: 0 1px 0 rgba(255,255,255,.55);
  }
  .lp-latest .l-hero__concept {
    margin: 0 0 24px;
    color: #27211d;
    font-weight: 600;
    text-shadow: 0 1px 0 rgba(255,255,255,.5);
  }
  .lp-latest .l-hero .l-label {
    margin-top: 4px;
  }
  .lp-latest .l-hero .l-label span {
    background: rgba(255,253,249,.68);
    backdrop-filter: blur(1.5px);
    -webkit-backdrop-filter: blur(1.5px);
  }
  .lp-latest .l-hero .l-button--primary {
    margin-top: 18px;
  }
}

/* source-style-26 */
@media (max-width:780px){
  /* SP改善02: 注目記事4カードを1列の横長カードへ再構成 */
  .final-school-featured{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin:0 0 24px!important;
  }
  .final-school-featured__card{
    width:100%!important;
    height:172px!important;
    padding:38px 18px 16px 118px!important;
    display:block!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .final-school-featured__card .school-mark-img{
    position:absolute!important;
    left:20px!important;
    top:48px!important;
    width:82px!important;
    height:56px!important;
    object-fit:contain!important;
    display:block!important;
  }
  .final-school-featured__card h3{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0 0 5px!important;
    font-size:17px!important;
    line-height:1.45!important;
    font-weight:600!important;
    white-space:normal!important;
  }
  .final-school-featured__card p{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1.6!important;
  }
  .final-school-featured__card b{
    left:118px!important;
    right:auto!important;
    bottom:13px!important;
    font-size:12.5px!important;
  }
  .final-school-featured__card em{display:none!important}
  .final-school-badge{
    padding:4px 13px!important;
    font-size:13px!important;
  }
}

/* source-style-27 */
/* SP改善02 v2: 注目5記事は横スワイプ、その他8校は2列一覧。PCは現行を維持。 */
.sp-featured-only{display:none!important;}
@media (max-width:780px){
  .final-school-featured{
    display:flex!important;
    grid-template-columns:none!important;
    gap:12px!important;
    width:auto!important;
    max-width:none!important;
    margin:0 -16px 25px 0!important;
    padding:0 16px 7px 0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-left:0!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }
  
  .final-school-featured__card,
  .final-school-featured__card.sp-featured-only{
    position:relative!important;
    display:block!important;
    flex:0 0 84%!important;
    width:84%!important;
    min-width:0!important;
    height:188px!important;
    padding:37px 16px 17px 105px!important;
    overflow:hidden!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    box-sizing:border-box!important;
  }
  .final-school-featured__card .school-mark-img{
    position:absolute!important;
    left:18px!important;
    top:50px!important;
    width:72px!important;
    height:54px!important;
    max-width:none!important;
    object-fit:contain!important;
    display:block!important;
  }
  .final-school-featured__card h3{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0 0 6px!important;
    font-size:17px!important;
    line-height:1.42!important;
    font-weight:600!important;
    white-space:normal!important;
  }
  .final-school-featured__card p{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1.58!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    overflow:hidden!important;
  }
  .final-school-featured__card b{
    position:absolute!important;
    left:105px!important;
    right:auto!important;
    bottom:14px!important;
    font-size:12.5px!important;
    line-height:1.4!important;
  }
  .final-school-featured__card em{display:none!important;}
  .final-school-badge{
    padding:4px 13px!important;
    font-size:12.5px!important;
  }

  .final-school-list{
    position:relative!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:auto!important;
    width:100%!important;
    height:auto!important;
    gap:8px!important;
    margin:0 0 18px!important;
    padding-top:31px!important;
  }
  .final-school-list::before{
    content:"学校別記事一覧";
    position:absolute;
    left:0;
    top:0;
    color:#6f6258;
    font-family:var(--f23-sans,"Noto Sans JP",sans-serif);
    font-size:12px;
    font-weight:600;
    letter-spacing:.08em;
  }
  .final-school-list .sp-list-nishiyamato{display:none!important;}
  .final-school-list a{
    position:relative!important;
    width:100%!important;
    height:70px!important;
    min-width:0!important;
    padding:0 8px!important;
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) 12px!important;
    column-gap:6px!important;
    align-items:center!important;
    box-sizing:border-box!important;
  }
  .final-school-list .school-list-icon{
    position:static!important;
    left:auto!important;
    top:auto!important;
    width:34px!important;
    height:34px!important;
    max-width:34px!important;
    object-fit:contain!important;
    justify-self:center!important;
  }
  .final-school-list a span{
    min-width:0!important;
    font-size:12.5px!important;
    line-height:1.4!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .final-school-list a b{
    position:static!important;
    font-size:20px!important;
    line-height:1!important;
    font-weight:400!important;
    justify-self:end!important;
  }
}

/* source-style-28 */
.teacher-join-sp{display:none;}
@media (max-width: 767px){
  #teacher-title{
    font-size:27.5px!important;
    line-height:1.48!important;
    letter-spacing:0!important;
  }
  #teacher-title em{
    display:block!important;
    white-space:nowrap!important;
  }
  #teacher-title .teacher-join-pc{display:none!important;}
  #teacher-title .teacher-join-sp{display:inline!important;}
  #teacher-title > br{display:none!important;}
  #teacher-title .final-instructor__headline-line2{
    display:block!important;
    white-space:nowrap!important;
  }
}

/* source-style-29 */
/* SP改善03: 講師写真をメッセージ後〜Profile直前へ移し、Profileと一体の講師カードにする。PCは維持。 */
.final-instructor__profile-photo{display:none;}
@media (max-width:780px){
  .final-instructor__photo{display:none!important;}
  .final-instructor__copy{padding-top:42px!important;}
  .final-instructor__profile-photo{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:238px!important;
    margin:30px 0 0!important;
    overflow:hidden!important;
    border:1px solid #dbcab8!important;
    border-bottom:0!important;
    border-radius:12px 12px 0 0!important;
    background:#f3eee7!important;
    box-shadow:0 8px 24px rgba(51,37,25,.07)!important;
  }
  .final-instructor__profile-photo img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:47% 43%!important;
  }
  .final-instructor__profile-photo:after{
    content:"";
    position:absolute;
    left:0;right:0;bottom:0;
    height:34%;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,253,249,.14));
  }
  .final-instructor__facts{
    display:block!important;
    margin:0 0 0!important;
    padding:24px 18px 22px!important;
    border:1px solid #dbcab8!important;
    border-top:0!important;
    border-radius:0 0 12px 12px!important;
    background:rgba(255,253,249,.96)!important;
    box-shadow:0 8px 24px rgba(51,37,25,.07)!important;
  }
  .final-instructor__facts>div{
    padding:0!important;
    margin:0!important;
  }
  .final-instructor__facts>div+div{
    margin-top:22px!important;
    padding-top:20px!important;
    border-top:1px solid rgba(173,23,26,.28)!important;
  }
  .final-instructor__facts h3{
    margin:0 0 12px!important;
    padding:0!important;
    border:0!important;
  }
  .final-instructor__facts p{
    margin:0!important;
  }
  .final-instructor__cta{margin-top:28px!important;}
}

/* source-style-30 */
@media (max-width:780px){
  .final-cta{
    padding:42px 18px 38px!important;
    background:#9b0e12!important;
  }
  .final-cta__inner{
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
  }
  .final-cta__copy{
    position:static!important;
    width:auto!important;
    height:auto!important;
  }
  .final-cta__copy h2{
    width:auto!important;
    height:auto!important;
    margin:0 0 14px!important;
    font-size:26px!important;
    line-height:1.5!important;
    font-weight:500!important;
    letter-spacing:.01em!important;
    white-space:normal!important;
  }
  .final-cta__copy p{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0 0 24px!important;
    font-size:14px!important;
    line-height:1.8!important;
  }
  .final-cta__box{
    position:static!important;
    width:100%!important;
    height:auto!important;
    margin:0!important;
    padding:20px 18px 18px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    background:#fbf8f2!important;
    color:#332c27!important;
    box-shadow:0 6px 18px rgba(80,0,0,.12)!important;
  }
  .final-cta__box:before{display:none!important;}
  .final-cta__box>strong{
    position:static!important;
    width:max-content!important;
    height:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:6px 10px!important;
    border:1px solid #ad171a!important;
    border-radius:999px!important;
    color:#ad171a!important;
    font-size:13px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:.06em!important;
    text-align:center!important;
  }
  .final-cta__box>strong br{display:none!important;}
  .final-cta__box>div{
    position:static!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
  }
  
  
  .final-cta__box a{
    position:static!important;
    width:100%!important;
    height:56px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    background:#ad171a!important;
    color:#fff!important;
    font-size:15px!important;
    font-weight:600!important;
    line-height:1!important;
    letter-spacing:.02em!important;
    text-decoration:none!important;
  }
}

/* source-style-31 */
@media(max-width:780px){
  /* SP-only re-composition of the A/B/C card upper halves.
     Keep the lesson focus/goal content intact; prioritize readable status copy. */
  .lesson-personalization-v2 .lpv2-card{
    min-height:626px!important;
    padding:18px 16px 18px!important;
  }
  .lesson-personalization-v2 .lpv2-type{
    left:18px!important;
    top:18px!important;
    width:64px!important;
    height:64px!important;
    padding-top:8px!important;
  }
  .lesson-personalization-v2 .lpv2-type small{font-size:10px!important;line-height:14px!important}
  .lesson-personalization-v2 .lpv2-type strong{font-size:27px!important;line-height:30px!important}
  .lesson-personalization-v2 .lpv2-card h3{
    left:99px!important;
    top:18px!important;
    right:16px!important;
    width:auto!important;
    min-height:64px!important;
    display:flex!important;
    align-items:center!important;
    font-size:19px!important;
    line-height:1.48!important;
    letter-spacing:.015em!important;
    white-space:normal!important;
  }
  /* The state description now gets the full card width instead of a narrow PC-derived column. */
  .lesson-personalization-v2 .lpv2-status{
    left:18px!important;
    top:101px!important;
    width:calc(100% - 36px)!important;
    min-height:76px!important;
    padding:11px 14px!important;
    border-radius:8px!important;
    background:rgba(255,255,255,.62)!important;
    border:1px solid rgba(219,202,190,.62)!important;
    font-size:13.5px!important;
    line-height:1.82!important;
    letter-spacing:.01em!important;
  }
  /* Student illustration becomes a centered visual beat between 'state' and 'lesson focus'. */
  .lesson-personalization-v2 .lpv2-card--a .lpv2-person,
  .lesson-personalization-v2 .lpv2-card--b .lpv2-person,
  .lesson-personalization-v2 .lpv2-card--c .lpv2-person{
    left:50%!important;
    top:188px!important;
    width:96px!important;
    height:106px!important;
    transform:translateX(-50%)!important;
    object-fit:contain!important;
    object-position:center bottom!important;
  }
  .lesson-personalization-v2 .lpv2-card--c .lpv2-person{width:88px!important}
  .lesson-personalization-v2 .lpv2-focus{
    left:16px!important;
    right:16px!important;
    top:315px!important;
    height:158px!important;
  }
  .lesson-personalization-v2 .lpv2-goal{
    left:16px!important;
    right:16px!important;
    bottom:18px!important;
    height:92px!important;
  }
}

/* source-style-32 */
/* SP: A/B/C cards become a horizontal snap carousel. Desktop geometry stays untouched. */
.lesson-personalization-v2 .lpv2-card-scroll{display:contents;}
@media(max-width:780px){
  .lesson-personalization-v2 .lpv2-card-scroll{
    display:flex;
    gap:12px;
    width:calc(100% + 16px);
    margin:0 -16px 0 0;
    padding:0 16px 10px 0;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  
  .lesson-personalization-v2 .lpv2-card-scroll .lpv2-card{
    flex:0 0 calc(100% - 28px)!important;
    width:calc(100% - 28px)!important;
    min-width:0!important;
    margin:0!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  /* Let the next card peek in, making the horizontal interaction self-evident. */
  .lesson-personalization-v2 .lpv2-card-scroll .lpv2-card:last-child{margin-right:0!important;}
}

/* source-style-33 */
@media(max-width:780px){
  /* SP: make the three lesson-focus items readable instead of compressing them into 3 tiny columns. */
  .lesson-personalization-v2 .lpv2-card-scroll .lpv2-card{
    min-height:665px!important;
  }
  .lesson-personalization-v2 .lpv2-focus{
    top:315px!important;
    height:214px!important;
    padding:0!important;
  }
  .lesson-personalization-v2 .lpv2-focus__label{
    top:-15px!important;
  }
  .lesson-personalization-v2 .lpv2-steps{
    position:absolute!important;
    inset:20px 12px 8px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:0!important;
  }
  .lesson-personalization-v2 .lpv2-step{
    flex:1 1 0!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:11px!important;
    padding:5px 4px!important;
    text-align:left!important;
  }
  .lesson-personalization-v2 .lpv2-step+.lpv2-step{
    border-top:1px solid rgba(160,122,109,.18)!important;
  }
  .lesson-personalization-v2 .lpv2-step+.lpv2-step:before{
    display:none!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon{
    width:44px!important;
    height:44px!important;
    margin:0!important;
    justify-self:center!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon img{
    max-width:35px!important;
    max-height:35px!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child{
    font-size:13.5px!important;
    line-height:1.55!important;
    letter-spacing:.01em!important;
    text-align:left!important;
    white-space:normal!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child br{display:none!important;}
  .lesson-personalization-v2 .lpv2-goal{
    height:92px!important;
    bottom:18px!important;
  }
}

/* source-style-34 */
.ft-tab__sp-break{display:none;}
@media (max-width:720px){
  /* SP改善08：4つの秘訣を一覧として瞬時に把握できる2×2タブへ */
  .l-feature-tabs.ft-precision .ft-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    margin:0;
  }
  .l-feature-tabs.ft-precision .ft-tab{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:8px;
    min-width:0;
    min-height:82px;
    padding:11px 10px;
    border:1px solid #cfb29b!important;
    border-radius:7px;
    background:rgba(255,253,249,.78);
    text-align:left;
    box-shadow:none;
  }
  .l-feature-tabs.ft-precision .ft-tab[aria-selected="true"]{
    margin:0;
    border:1px solid #78151d!important;
    background:linear-gradient(145deg,#8e1b25,#72121a);
    box-shadow:0 5px 12px rgba(92,22,27,.12);
  }
  .l-feature-tabs.ft-precision .ft-tab[aria-selected="true"]::after{display:none;}
  .l-feature-tabs.ft-precision .ft-tab__num{
    display:block;
    min-width:0;
    color:#a12831;
    font-family:Georgia,"Times New Roman",serif;
    font-size:27px;
    font-weight:400;
    line-height:1;
    letter-spacing:-.02em;
  }
  .l-feature-tabs.ft-precision .ft-tab[aria-selected="true"] .ft-tab__num{color:#e9c76d;}
  .l-feature-tabs.ft-precision .ft-tab__label{
    display:block;
    min-width:0;
    color:#38302b;
    font-family:var(--ft-serif);
    font-size:12.5px;
    font-weight:500;
    line-height:1.48;
    letter-spacing:.015em;
    white-space:normal;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  .l-feature-tabs.ft-precision .ft-tab[aria-selected="true"] .ft-tab__label{color:#fffaf3;}
  .ft-tab__sp-break{display:inline;}
}

/* source-style-35 */
@media (max-width:720px){
  /* SP改善09：秘訣01を「見出し→要約→観察シーン→説明→診断項目→結論」に再編集し、縦間延びを解消 */
  #feature-panel-01 .ft-panel__main{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }
  #feature-panel-01 .ft-panel__copy{display:contents!important;}
  #feature-panel-01 .ft-panel__titleline{
    order:1;
    margin-bottom:12px!important;
  }
  #feature-panel-01 .ft-panel__hero{
    order:2;
    margin:0!important;
    font-size:18px!important;
    line-height:1.75!important;
  }
  #feature-panel-01 .ft-panel__rule{
    order:3;
    margin:14px 0 0!important;
  }
  #feature-panel-01 .ft-panel__visual{
    order:4;
    width:100%!important;
    height:174px!important;
    margin:16px 0 18px!important;
    overflow:hidden!important;
    border-radius:4px!important;
    box-shadow:none!important;
  }
  #feature-panel-01 .ft-panel__visual img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 47%!important;
  }
  #feature-panel-01 .ft-panel__body{
    order:5;
    margin:0 0 13px!important;
    font-size:13.5px!important;
    line-height:1.8!important;
  }
  #feature-panel-01 .ft-panel__checks{
    order:6;
    gap:0!important;
    margin:0!important;
  }
  #feature-panel-01 .ft-panel__checks li{
    min-height:0!important;
    padding:11px 0 11px 31px!important;
    font-size:12.5px!important;
    line-height:1.55!important;
  }
  #feature-panel-01 .ft-panel__checks li::before{
    top:11px!important;
  }
  #feature-panel-01 .ft-closing{
    margin:15px -10px 0!important;
    padding:16px 12px!important;
    min-height:0!important;
    font-size:14px!important;
    line-height:1.65!important;
  }
}

/* source-style-36 */
@media (max-width:780px){
  :root{--sp-gutter:18px;}

  /* SPの主要コンテンツレールを左右18pxに統一 */
  .l-feature-tabs{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .ft-shell{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .final-school-analysis{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .final-school-analysis__inner{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .lesson-personalization-v2{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .lpv2-stage{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  /* 横スクロールは右端まで開き、次カードの存在を見せる */
  .lpv2-card-scroll{
    width:calc(100% + var(--sp-gutter))!important;
  }

  .final-instructor__copy{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .final-voices{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }

  .final-overview{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .final-overview__inner{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .final-trial__inner{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }

  .final-faq{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
  .final-faq__inner{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .final-cta{
    padding-left:var(--sp-gutter)!important;
    padding-right:var(--sp-gutter)!important;
  }
}

/* source-style-37 */
@media (max-width:780px){
  :root{
    --sp-type-h2:28px;
    --sp-type-h3:18px;
    --sp-type-lead:15px;
    --sp-type-body:14px;
    --sp-type-note:12.5px;
    --sp-type-caption:11.5px;
  }

  /* 1｜セクション見出し：ページ全体で同じ強さに揃える */
  .l-feature-tabs .ft-heading h2,
  .final-school-analysis h2,
  .lesson-personalization-v2 .lpv2-title,
  .final-voices > h2,
  .final-overview .final-section-heading h2,
  .final-trial h2,
  .final-faq h2{
    font-size:var(--sp-type-h2)!important;
    line-height:1.48!important;
    letter-spacing:.015em!important;
  }
  /* メッセージ性の強い見出しだけ一段強くする */
  .final-instructor__copy h2{
    font-size:27.5px!important;
    line-height:1.48!important;
    letter-spacing:.01em!important;
  }
  .final-cta__copy h2{
    font-size:27px!important;
    line-height:1.5!important;
    letter-spacing:.01em!important;
  }

  /* 2｜カード／小見出し */
  .ft-panel__titleline h3{
    font-size:21px!important;
    line-height:1.5!important;
    letter-spacing:.01em!important;
  }
  .final-school-featured__card h3{
    font-size:17.5px!important;
    line-height:1.48!important;
  }
  .lesson-personalization-v2 .lpv2-card h3{
    font-size:18.5px!important;
    line-height:1.5!important;
  }
  .final-instructor__facts h3,
  .final-trial__steps h3{
    font-size:18px!important;
    line-height:1.5!important;
  }
  .final-voices .final-voices__grid blockquote h3{
    font-size:19px!important;
    line-height:1.6!important;
  }

  /* 3｜リード文 */
  .ft-heading__lead,
  .final-school-analysis__lead,
  .lesson-personalization-v2 .lpv2-lead,
  .final-voices > p,
  .final-overview__lead,
  .final-trial__lead{
    font-size:var(--sp-type-lead)!important;
    line-height:1.8!important;
    letter-spacing:.01em!important;
  }

  /* 4｜本文：主要カードの本文を14px基準へ */
  .ft-panel__body,
  .lesson-personalization-v2 .lpv2-status,
  .lesson-personalization-v2 .lpv2-step > span:last-child,
  .lesson-personalization-v2 .lpv2-goal p,
  .final-instructor__facts p,
  .final-voices .final-voices__grid blockquote p,
  .final-overview__item p,
  .final-trial__steps p,
  .final-faq p,
  .final-cta__copy p{
    font-size:var(--sp-type-body)!important;
    line-height:1.8!important;
    letter-spacing:.005em!important;
  }
  /* 注目記事はカード幅を優先しつつ、従来より一段読みやすく */
  .final-school-featured__card p{
    font-size:13.5px!important;
    line-height:1.65!important;
    -webkit-line-clamp:2!important;
  }
  /* 秘訣の導入コピーは本文より一段上 */
  .ft-panel__hero{
    font-size:18px!important;
    line-height:1.72!important;
  }

  /* 5｜補足情報 */
  .ft-panel__checks li,
  .final-overview__note,
  .final-trial__contact{
    font-size:var(--sp-type-note)!important;
    line-height:1.7!important;
  }
  .final-overview__note{font-size:12px!important;}
  

  /* 6｜ラベル・カードキャプション */
  .ft-heading__kicker,
  .final-school-badge,
  .final-eyebrow,
  .final-instructor__eyebrow{
    font-size:var(--sp-type-caption)!important;
    line-height:1.55!important;
    letter-spacing:.08em!important;
  }

  /* 学校一覧・授業スタイル上部の小要素も同じ階層へ */
  
  .lesson-personalization-v2 .lpv2-factor__copy{
    font-size:13.5px!important;
    line-height:1.65!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy strong{
    font-size:18px!important;
    line-height:1.45!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy{
    font-size:13.5px!important;
    line-height:1.6!important;
  }
  .lesson-personalization-v2 .lpv2-focus__label{
    font-size:14px!important;
    line-height:1.5!important;
  }

  /* FAQは質問→回答の差を明確に */
  .final-faq summary{
    font-size:15.5px!important;
    line-height:1.55!important;
  }
}

/* source-style-38 */
@media (max-width:780px){
  /* 講師紹介：内容は削らず、メッセージ→人物→経歴のリズムを圧縮 */
  .final-instructor__copy{
    padding-top:34px!important;
    padding-bottom:34px!important;
  }
  .final-instructor__eyebrow{margin-bottom:5px!important;}
  .final-instructor__name{
    margin-bottom:8px!important;
    line-height:1.55!important;
  }
  .final-instructor__copy h2{
    margin-bottom:16px!important;
  }
  .final-instructor__statement{
    margin:0!important;
    font-size:14px!important;
    line-height:1.75!important;
  }
  .final-instructor__statement p{
    margin:0 0 9px!important;
    font-size:14px!important;
    line-height:1.75!important;
  }
  .final-instructor__statement br{display:none!important;}
  .final-instructor__statement p:nth-child(2){
    margin:2px 0 10px!important;
    padding:10px 12px!important;
    border-left:2px solid rgba(173,23,26,.58)!important;
    background:rgba(173,23,26,.035)!important;
  }
  .final-instructor__statement p:nth-child(5){
    margin:14px 0 13px!important;
    color:#9c171a!important;
    font-family:var(--f23-serif)!important;
    font-size:18px!important;
    font-weight:600!important;
    line-height:1.55!important;
    letter-spacing:.02em!important;
  }
  .final-instructor__statement p:last-child{
    margin-bottom:0!important;
    padding-top:11px!important;
    border-top:1px solid rgba(173,23,26,.18)!important;
  }
  .final-instructor__profile-photo{
    height:210px!important;
    margin-top:22px!important;
  }
  .final-instructor__profile-photo img{object-position:47% 40%!important;}
  .final-instructor__facts{
    padding:18px 16px 18px!important;
  }
  .final-instructor__facts>div+div{
    margin-top:15px!important;
    padding-top:15px!important;
  }
  .final-instructor__facts h3{
    margin-bottom:8px!important;
  }
  .final-instructor__facts p{
    font-size:13.5px!important;
    line-height:1.7!important;
  }
  .final-instructor__cta{
    margin-top:22px!important;
    height:48px!important;
  }
}

/* source-style-39 */
@media (max-width:720px){
  /* 13 — 保護者の声: parallel testimonials become a compact horizontal snap rail. */
  .final-voices{
    height:auto!important;
    padding:42px 0 34px!important;
    overflow:hidden!important;
  }
  .final-voices>h2{
    margin:0 18px 8px!important;
    padding:0!important;
    font-size:28px!important;
    line-height:1.45!important;
  }
  .final-voices>p{
    margin:0 18px 24px!important;
    padding:0!important;
    font-size:14px!important;
    line-height:1.8!important;
  }
  .final-voices__grid{
    display:flex!important;
    grid-template-columns:none!important;
    gap:12px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-left:18px!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
    padding:0 18px 10px!important;
    margin:0!important;
    align-items:stretch!important;
  }
  
  .final-voices blockquote{
    flex:0 0 318px!important;
    width:318px!important;
    min-width:318px!important;
    height:auto!important;
    min-height:0!important;
    scroll-snap-align:start!important;
    margin:0!important;
    padding:20px 20px 21px!important;
    border-radius:8px!important;
    box-sizing:border-box!important;
  }
  .final-voices blockquote>span{
    margin:0 0 14px!important;
    padding:5px 10px!important;
    font-size:12px!important;
    line-height:1.2!important;
  }
  .final-voices blockquote h3{
    margin:0 0 14px!important;
    padding:0 0 12px!important;
    font-size:19px!important;
    line-height:1.55!important;
  }
  .final-voices blockquote p{
    margin:0!important;
    padding:0!important;
    font-size:14px!important;
    line-height:1.8!important;
  }
}

/* source-style-40 */
@media (max-width:720px){
  /* SP改善14：受講概要を2列グリッド化。料金だけ全幅にして一覧性と圧縮を両立 */
  .final-overview{padding-top:30px!important;padding-bottom:26px!important;}
  .final-overview__lead{margin:3px 0 16px!important;}
  .final-overview__grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0!important;
    height:auto!important;
    border-radius:7px!important;
    overflow:hidden!important;
  }
  .final-overview__grid>div{
    min-height:94px!important;
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    gap:10px!important;
    align-items:center!important;
    padding:13px 12px!important;
    box-sizing:border-box!important;
    border:0!important;
  }
  .final-overview__grid>div:nth-child(odd):not(:last-child){
    border-right:1px solid #dcc8af!important;
  }
  .final-overview__grid>div:nth-child(n/**/+3){
    border-top:1px solid #dcc8af!important;
  }
  .final-overview__grid>div:last-child{
    grid-column:1 / -1!important;
    min-height:78px!important;
    grid-template-columns:44px auto!important;
    justify-content:center!important;
    column-gap:14px!important;
    padding:11px 18px!important;
    border-right:0!important;
  }
  .final-overview__grid>div+div:before{display:none!important;}
  .final-overview__grid img{
    width:40px!important;
    height:40px!important;
    object-fit:contain!important;
    margin:0!important;
  }
  .final-overview__grid p{margin:0!important;min-width:0!important;}
  .final-overview__grid b{
    margin:0 0 3px!important;
    font-size:12px!important;
    line-height:1.35!important;
    letter-spacing:.04em!important;
  }
  .final-overview__grid span{
    font-size:14px!important;
    line-height:1.48!important;
    letter-spacing:0!important;
  }
  .final-overview__grid span br{display:none!important;}
  .final-overview__grid small{
    margin-top:3px!important;
    font-size:10px!important;
    line-height:1.45!important;
  }
  .final-overview__grid small br{display:none!important;}
  .final-overview__note{
    margin:11px 2px 0!important;
    font-size:10.5px!important;
    line-height:1.65!important;
  }
}

/* source-style-41 */
@media (max-width:720px){
  /* SP改善15：無料体験3STEPを縦長カードから横長ステップ行へ */
  .final-trial__steps{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    gap:10px!important;
    width:auto!important;
    margin:22px 0 18px!important;
    padding:0!important;
    list-style:none!important;
  }
  .final-trial__steps>li{
    position:relative!important;
    display:grid!important;
    grid-template-columns:42px 58px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:10px!important;
    row-gap:3px!important;
    align-items:center!important;
    width:100%!important;
    height:auto!important;
    min-height:112px!important;
    margin:0!important;
    padding:14px 14px 14px 12px!important;
    background:rgba(255,255,255,.9)!important;
    border:1px solid rgba(197,148,59,.26)!important;
    border-radius:7px!important;
    box-shadow:0 2px 7px rgba(73,45,25,.06)!important;
    transform:none!important;
    text-align:left!important;
    box-sizing:border-box!important;
  }
  .final-trial__no{
    position:static!important;
    grid-column:1!important;
    grid-row:1 / 3!important;
    align-self:center!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    color:#c8953b!important;
    font-family:Georgia,var(--f23-serif)!important;
    font-size:32px!important;
    font-weight:400!important;
    line-height:1!important;
    letter-spacing:-.04em!important;
  }
  .final-trial__icons,
  .final-trial__steps>li:nth-child(1) .final-trial__icons,
  .final-trial__steps>li:nth-child(2) .final-trial__icons,
  .final-trial__steps>li:nth-child(3) .final-trial__icons{
    position:static!important;
    grid-column:2!important;
    grid-row:1 / 3!important;
    align-self:center!important;
    justify-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:54px!important;
    height:54px!important;
    margin:0!important;
    gap:1px!important;
  }
  .final-trial__icons img,
  .final-trial__steps>li:nth-child(1) .final-trial__icons img,
  .final-trial__steps>li:nth-child(3) .final-trial__icons img{
    width:52px!important;
    height:52px!important;
    object-fit:contain!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons img{
    width:31px!important;
    height:31px!important;
    object-fit:contain!important;
  }
  .final-trial__steps h3,
  .final-trial__steps>li:nth-child(2) h3,
  .final-trial__steps>li:nth-child(3) h3{
    position:static!important;
    grid-column:3!important;
    grid-row:1!important;
    align-self:end!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    color:#2f2924!important;
    font-family:var(--f23-serif)!important;
    font-size:17px!important;
    font-weight:600!important;
    line-height:1.5!important;
    text-align:left!important;
  }
  .final-trial__steps h3 br{display:none!important;}
  .final-trial__steps>li>p,
  .final-trial__steps>li:nth-child(2)>p,
  .final-trial__steps>li:nth-child(3)>p{
    position:static!important;
    grid-column:3!important;
    grid-row:2!important;
    align-self:start!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    color:#5b534c!important;
    font-family:var(--f23-sans)!important;
    font-size:12.5px!important;
    font-weight:400!important;
    line-height:1.65!important;
    text-align:left!important;
    letter-spacing:0!important;
  }
  .final-trial__steps>li>p br{display:none!important;}
  .final-trial__steps>li:not(:last-child):after,
  .final-trial__steps>li:nth-child(1):after,
  .final-trial__steps>li:nth-child(2):after{
    content:"↓"!important;
    position:absolute!important;
    z-index:3!important;
    left:24px!important;
    right:auto!important;
    top:auto!important;
    bottom:-17px!important;
    width:20px!important;
    height:20px!important;
    display:grid!important;
    place-items:center!important;
    color:#c8953b!important;
    background:#faf6ef!important;
    font-family:var(--f23-serif)!important;
    font-size:17px!important;
    font-weight:400!important;
    line-height:1!important;
    transform:none!important;
  }
}

/* source-style-42 */
@media (max-width:780px){
  .final-faq details p{
    color:#4f4944!important;
    font-weight:400!important;
  }
  .final-faq details[open]{
    background:rgba(255,255,255,.42)!important;
  }
}

/* source-style-43 */
@media (max-width:780px){
  
  .l-header__inner{
    width:calc(100% - 36px)!important;
    gap:14px!important;
  }
  .l-header__brand{
    width:auto!important;
    flex:0 0 auto!important;
  }
  .l-header__brand img{
    width:120px!important;
    height:auto!important;
    object-fit:contain!important;
  }
  .l-header__brand span,
  .l-header__nav{display:none!important;}
  .l-button--header{
    width:auto!important;
    min-width:150px!important;
    min-height:38px!important;
    margin-left:auto!important;
    padding:7px 10px!important;
    font-size:10.5px!important;
    line-height:1.35!important;
    letter-spacing:.035em!important;
    white-space:nowrap!important;
  }
  .l-button--header::after{
    margin-left:6px!important;
    font-size:11px!important;
  }
}

/* source-style-44 */
/* PC-only local refinement for 05 lesson styles.
   Keeps SP and content structure unchanged; fixes collisions and awkward wraps. */
@media (min-width:781px){
  .lesson-personalization-v2{
    aspect-ratio:1672/1070!important;
  }

  /* headline / lead: retain current visual direction */
  .lesson-personalization-v2 .lpv2-title{
    top:calc(69 * var(--u))!important;
    font-size:calc(51 * var(--u))!important;
    line-height:calc(64 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-title em{
    font-size:calc(53 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-lead{
    top:calc(151 * var(--u))!important;
    font-size:calc(20.5 * var(--u))!important;
    line-height:calc(34 * var(--u))!important;
    letter-spacing:calc(.45 * var(--u))!important;
  }

  /* upper factors */
  .lesson-personalization-v2 .lpv2-factor{
    top:calc(229 * var(--u))!important;
    height:calc(94 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy{top:calc(14 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-factor__copy strong{
    font-size:calc(25.5 * var(--u))!important;
    line-height:calc(34 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy span{
    margin-top:calc(1 * var(--u))!important;
    font-size:calc(17.5 * var(--u))!important;
    line-height:calc(26 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-connector--top-h{top:calc(338 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--top-v1,
  .lesson-personalization-v2 .lpv2-connector--top-v2,
  .lesson-personalization-v2 .lpv2-connector--top-v3{top:calc(322 * var(--u))!important;}

  .lesson-personalization-v2 .lpv2-optimize{
    top:calc(357 * var(--u))!important;
    height:calc(82 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy{top:calc(7 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-optimize__copy strong{
    font-size:calc(29.5 * var(--u))!important;
    line-height:calc(38 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy span{
    font-size:calc(17 * var(--u))!important;
    line-height:calc(24 * var(--u))!important;
  }

  /* lower connectors: finish clearly before cards */
  .lesson-personalization-v2 .lpv2-connector--bottom-h{top:calc(448 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--bottom-v0{top:calc(439 * var(--u))!important;height:calc(29 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--bottom-v1,
  .lesson-personalization-v2 .lpv2-connector--bottom-v2,
  .lesson-personalization-v2 .lpv2-connector--bottom-v3{
    top:calc(448 * var(--u))!important;
    height:calc(21 * var(--u))!important;
  }

  /* cards: more vertical breathing room */
  .lesson-personalization-v2 .lpv2-card{
    top:calc(472 * var(--u))!important;
    height:calc(575 * var(--u))!important;
    border-color:#dec9be!important;
    box-shadow:0 calc(5 * var(--u)) calc(15 * var(--u)) rgba(79,56,43,.04)!important;
  }

  /* type mark and title */
  .lesson-personalization-v2 .lpv2-type{
    left:calc(27 * var(--u))!important;
    top:calc(20 * var(--u))!important;
    width:calc(82 * var(--u))!important;
    height:calc(82 * var(--u))!important;
    padding-top:calc(12 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-type small{
    font-size:calc(11.5 * var(--u))!important;
    line-height:calc(15 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-type strong{
    font-size:calc(30 * var(--u))!important;
    line-height:calc(35 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-card h3{
    top:calc(28 * var(--u))!important;
    font-size:calc(27.5 * var(--u))!important;
    line-height:calc(35 * var(--u))!important;
    letter-spacing:calc(.75 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-card--a h3{left:calc(140 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-card--b h3{left:calc(132 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-card--c h3{left:calc(132 * var(--u))!important;}

  /* person / status: guaranteed separation from focus label */
  .lesson-personalization-v2 .lpv2-card--a .lpv2-person,
  .lesson-personalization-v2 .lpv2-card--b .lpv2-person{
    top:calc(110 * var(--u))!important;
    width:calc(132 * var(--u))!important;
    height:calc(150 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-card--c .lpv2-person{
    left:calc(24 * var(--u))!important;
    top:calc(112 * var(--u))!important;
    width:calc(118 * var(--u))!important;
    height:calc(146 * var(--u))!important;
  }

  .lesson-personalization-v2 .lpv2-status{
    top:calc(129 * var(--u))!important;
    font-size:calc(18.5 * var(--u))!important;
    line-height:calc(30.5 * var(--u))!important;
    letter-spacing:calc(.1 * var(--u))!important;
    text-wrap:pretty;
  }
  .lesson-personalization-v2 .lpv2-status br{display:none!important;}
  .lesson-personalization-v2 .lpv2-card--a .lpv2-status{
    left:calc(174 * var(--u))!important;
    width:calc(296 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-card--b .lpv2-status{
    left:calc(184 * var(--u))!important;
    width:calc(286 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-card--c .lpv2-status{
    left:calc(164 * var(--u))!important;
    width:calc(342 * var(--u))!important;
  }

  /* focus block: lower it so no person/icon collision occurs */
  .lesson-personalization-v2 .lpv2-focus{
    left:calc(16 * var(--u))!important;
    right:calc(16 * var(--u))!important;
    top:calc(302 * var(--u))!important;
    height:calc(160 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-focus__label{
    top:calc(-16 * var(--u))!important;
    min-width:calc(138 * var(--u))!important;
    height:calc(33 * var(--u))!important;
    padding:calc(2 * var(--u)) calc(16 * var(--u)) 0!important;
    font-size:calc(17.5 * var(--u))!important;
    line-height:calc(30 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-steps{
    inset:calc(30 * var(--u)) calc(12 * var(--u)) calc(8 * var(--u))!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:calc(14 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-step{
    min-width:0!important;
    padding:0 calc(2 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon{
    width:calc(58 * var(--u))!important;
    height:calc(58 * var(--u))!important;
    margin:0 auto calc(7 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon img{
    max-width:calc(46 * var(--u))!important;
    max-height:calc(46 * var(--u))!important;
    transform:none!important;
  }
  .lesson-personalization-v2 .lpv2-step span{
    margin-top:0!important;
    font-size:calc(16.3 * var(--u))!important;
    line-height:calc(22.5 * var(--u))!important;
    letter-spacing:0!important;
    white-space:normal!important;
    text-wrap:balance;
  }
  .lesson-personalization-v2 .lpv2-step span br{display:none!important;}
  .lesson-personalization-v2 .lpv2-step+.lpv2-step:before{
    left:calc(-9 * var(--u))!important;
    top:calc(28 * var(--u))!important;
  }

  /* goal: distinct from focus, with enough text room */
  .lesson-personalization-v2 .lpv2-goal{
    left:calc(16 * var(--u))!important;
    right:calc(16 * var(--u))!important;
    bottom:calc(20 * var(--u))!important;
    height:calc(84 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-goal img{
    left:calc(16 * var(--u))!important;
    top:50%!important;
    width:calc(58 * var(--u))!important;
    height:calc(58 * var(--u))!important;
    transform:translateY(-50%)!important;
  }
  .lesson-personalization-v2 .lpv2-goal p{
    left:calc(88 * var(--u))!important;
    top:50%!important;
    width:calc(370 * var(--u))!important;
    transform:translateY(-50%)!important;
    font-size:calc(21.5 * var(--u))!important;
    line-height:calc(29 * var(--u))!important;
    letter-spacing:calc(.25 * var(--u))!important;
    white-space:normal!important;
    text-wrap:balance;
  }
  .lesson-personalization-v2 .lpv2-card--c .lpv2-goal p{
    width:calc(405 * var(--u))!important;
  }
}

/* source-style-45 */
@media (min-width:781px){
  /* Focus icons: no circles; icon + copy share one exact vertical axis. */
  .lesson-personalization-v2 .lpv2-steps{
    inset:calc(29 * var(--u)) calc(12 * var(--u)) calc(8 * var(--u))!important;
    align-items:start!important;
  }
  .lesson-personalization-v2 .lpv2-step{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-width:0!important;
    text-align:center!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon{
    width:calc(66 * var(--u))!important;
    height:calc(64 * var(--u))!important;
    margin:0 auto calc(8 * var(--u))!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon img{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:calc(60 * var(--u))!important;
    max-height:calc(60 * var(--u))!important;
    margin:0 auto!important;
    transform:none!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
  .lesson-personalization-v2 .lpv2-step span:not(.lpv2-step__icon){
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0 calc(2 * var(--u))!important;
    text-align:center!important;
  }
  .lesson-personalization-v2 .lpv2-step+.lpv2-step:before{
    top:calc(27 * var(--u))!important;
  }
}

/* source-style-46 */
@media (min-width:721px){
  /* PC局所改善 02：保護者の声。構成・コピーは維持し、階層・整列・余白だけ精緻化 */
  .final-voices{
    height:780px!important;
    padding:68px 102px 74px!important;
  }
  .final-voices>h2{
    font-size:42px!important;
    line-height:1.35!important;
    margin:0 0 10px!important;
    letter-spacing:.03em!important;
  }
  .final-voices>p{
    font-size:18px!important;
    line-height:1.8!important;
    margin:0 0 42px!important;
  }
  .final-voices__grid{
    gap:20px!important;
    align-items:stretch!important;
  }
  .final-voices blockquote{
    height:426px!important;
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
    padding:30px 30px 28px!important;
    border:1px solid #ddd4c8!important;
    box-shadow:0 8px 24px rgba(48,38,26,.035)!important;
    background:#fff!important;
  }
  .final-voices blockquote>span,
  .final-voices blockquote.is-gold>span{
    align-self:flex-start!important;
    min-height:28px!important;
    display:inline-flex!important;
    align-items:center!important;
    margin:0 0 20px!important;
    padding:6px 12px!important;
    background:#aa1519!important;
    color:#fff!important;
    font-size:13px!important;
    line-height:1.2!important;
    font-weight:700!important;
    letter-spacing:.03em!important;
  }
  .final-voices blockquote h3{
    min-height:112px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:flex-start!important;
    margin:0 0 20px!important;
    padding:0 0 20px!important;
    border-bottom:1px solid #e6ddd1!important;
    font-size:26px!important;
    line-height:1.55!important;
    font-weight:500!important;
    letter-spacing:.015em!important;
  }
  .final-voices blockquote h3 br{
    display:none!important;
  }
  .final-voices blockquote p{
    margin:0!important;
    font-size:17px!important;
    line-height:1.85!important;
    letter-spacing:.01em!important;
    color:#37322d!important;
  }
}

/* source-style-47 */
@media (min-width:781px){
  /* PC-only: preserve Figma-fixed geometry. Never use em-u here; this section is fixed at 1440px on PC. */
  .l-empathy__diagnosis{width:620px!important;}
  .l-empathy__diagnosis p{
    font-size:20px!important;
    line-height:30px!important;
    letter-spacing:.48px!important;
  }
  .l-empathy__possibility{
    font-size:20px!important;
    line-height:36.2px!important;
    letter-spacing:.48px!important;
  }
  .l-empathy__elio{width:720px!important;}
  .l-empathy__elio p{
    font-size:20px!important;
    line-height:37.6px!important;
    letter-spacing:.48px!important;
  }
}

/* source-style-48 */
@media (min-width:781px){
  /* PC局所改善05｜4つの秘訣：現行構造を保ったまま整列・可読性・面の強さを整理 */
  #features .ft-tabs{
    grid-template-columns:repeat(4,minmax(0,1fr));
    width:calc(100% - 84px);
    height:100px;
    margin:0 auto;
    border-color:#c4b09b;
    background:#fdfbf7;
  }
  #features .ft-tab{
    gap:13px;
    padding:0 18px;
    color:#3b332e;
    border-right-color:#d3c5b7;
    background:#fdfbf7;
  }
  #features .ft-tab__num{
    font-size:35px;
    color:#84202a;
  }
  #features .ft-tab__label{
    font-size:18.5px;
    line-height:1.45;
    letter-spacing:.025em;
    color:#3a322d;
    white-space:nowrap;
  }
  #features .ft-tab__sp-break{display:none!important;}
  #features .ft-tab[aria-selected="true"]{
    margin:0;
    border:0!important;
    border-top:4px solid #861a23!important;
    background:linear-gradient(180deg,#73151e 0%,#651018 100%);
    box-shadow:none;
  }
  #features .ft-tab[aria-selected="true"]::after{display:none;}
  #features .ft-tab[aria-selected="true"] .ft-tab__num{color:#ddb967;}
  #features .ft-tab[aria-selected="true"] .ft-tab__label{color:#fffaf4;}

  #features .ft-stage{
    border-width:1px;
    border-color:#c3a8aa;
    box-shadow:none;
  }

  #features .ft-panel--01 .ft-panel__body{
    width:505px!important;
  }
  #features .ft-panel--03 .ft-panel__titleline h3{
    font-size:30px!important;
    letter-spacing:.015em;
  }
  #features .ft-panel--01 .final-feature-photo{
    border-radius:3px;
    box-shadow:0 8px 22px rgba(52,39,29,.08);
  }
  #features .ft-closing{
    font-size:30px!important;
    line-height:1.45!important;
    letter-spacing:.025em;
  }
  #features .ft-closing strong{
    margin-left:16px;
    font-size:1.05em;
  }
}

/* source-style-49 */
@media (min-width:781px){
  /* 07 受講概要：構造を維持し、視認性と整列のみ改善 */
  .final-overview__grid{
    border-color:#d8ccb9;
    box-shadow:0 2px 6px rgba(45,33,22,.055);
  }
  .final-overview__grid>div{
    grid-template-columns:74px 1fr;
    padding:12px 18px;
  }
  .final-overview__grid>div+div:before{
    top:19px; bottom:19px; background:#dfd2c1;
  }
  .final-overview__grid img{
    width:61px; height:61px; justify-self:center;
  }
  .final-overview__grid b{
    font-size:17px!important; line-height:23px!important; font-weight:600!important; margin-bottom:5px;
  }
  .final-overview__grid span{
    font-size:19px!important; line-height:26px!important;
  }
  .final-overview__grid small{
    font-size:11px!important; line-height:16px!important; margin-top:3px;
  }
  .final-overview__note{font-size:14px!important; line-height:22px!important; margin-top:14px!important;}

  /* 08 無料体験：番号の主張を少し抑え、タイトル・本文を読みやすく */
  .final-trial__steps li{
    padding:34px 24px 18px!important;
    box-shadow:0 2px 5px rgba(80,45,20,.06);
  }
  .final-trial__no{
    font-size:49px; left:19px; top:12px;
  }
  .final-trial__icons{height:74px;}
  .final-trial__icons img{width:64px;height:64px;}
  .final-trial__icons--pair img{width:50px;height:50px;}
  .final-trial__steps h3{
    font-size:21px!important; line-height:29px!important; margin-bottom:8px!important;
  }
  .final-trial__steps p{
    font-size:15px!important; line-height:23px!important;
  }
  .final-trial__steps li:not(:last-child):after{
    top:107px; font-size:38px; color:#c39a51;
  }
  .final-trial__band{
    border-color:#d8ad65; background:#fbf8f2;
  }
  .final-trial__outcomes li{
    font-size:16px!important; line-height:31px!important;
  }
  .final-trial__outcomes li:before{margin-right:13px;}
  .final-trial__decision{padding:22px 26px;}
  
  .final-trial__decision p{font-size:14px!important; line-height:25px!important; margin-top:12px!important;}
  .final-trial__action{padding:22px 24px;}
  .final-trial__action a{
    height:74px; font-size:20px; box-shadow:0 3px 6px rgba(70,20,10,.18);
  }
  
}

/* source-style-50 */
/* 2026-08-17 19:51 PC micro refinements requested by user. */


@media (min-width:781px){
  /* 学校別・国語入試分析：灰色背景へ。最外周の額縁は撤去。 */
  .final-school-analysis{
    background:#ebebeb!important;
  }
  .final-school-analysis__inner{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .final-school-analysis .final-heading-rule i{
    background:#ebebeb!important;
  }

  /* 授業スタイル見出し：読点後の空きをなくし、前後を同じ文字サイズに。 */
  .lesson-personalization-v2 .lpv2-title{
    display:flex!important;
    align-items:baseline!important;
    justify-content:center!important;
    gap:0!important;
  }
  .lesson-personalization-v2 .lpv2-title__pre,
  .lesson-personalization-v2 .lpv2-title em{
    position:static!important;
    left:auto!important;
    top:auto!important;
    margin:0!important;
    font-size:inherit!important;
    line-height:inherit!important;
  }
  .lesson-personalization-v2 .lpv2-title em{
    letter-spacing:calc(2.2 * var(--u))!important;
    margin-left:calc(-10 * var(--u))!important;
  }

  /* 3要素：アイコンを外し、コピーをボックス中心へ。 */
  .lesson-personalization-v2 .lpv2-factor__icon{
    display:none!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy{
    left:50%!important;
    top:50%!important;
    width:calc(100% - 24 * var(--u))!important;
    transform:translate(-50%,-50%)!important;
    text-align:center!important;
    white-space:nowrap!important;
  }

  /* 最適化ピル：ノート＋ペンと補足文を撤去し、主コピーを中央へ。 */
  .lesson-personalization-v2 .lpv2-optimize__icon,
  .lesson-personalization-v2 .lpv2-optimize__copy>span{
    display:none!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy{
    left:0!important;
    top:50%!important;
    width:100%!important;
    transform:translateY(-50%)!important;
    text-align:center!important;
  }

  /* 授業の重点：HTMLにある自然な句単位の改行を復活。文字は一段だけ小さく。 */
  .lesson-personalization-v2 .lpv2-step span:not(.lpv2-step__icon){
    width:calc(100% + 16 * var(--u))!important;
    margin-left:calc(-8 * var(--u))!important;
    padding-left:0!important;
    padding-right:0!important;
    font-size:calc(15.2 * var(--u))!important;
    line-height:calc(21.4 * var(--u))!important;
    letter-spacing:0!important;
    white-space:normal!important;
    text-wrap:normal!important;
  }
  .lesson-personalization-v2 .lpv2-step span:not(.lpv2-step__icon) br{
    display:inline!important;
  }
}

/* source-style-51 */
@media (min-width:781px){
  /* 05 個別化：状態文の改行、重点までの間隔、セクション下地 */
  .lesson-personalization-v2{
    background:#fefcf8!important;
    box-shadow:0 72px 0 #fefcf8!important;
  }
  .lesson-personalization-v2 .lpv2-status br{display:inline!important;}
  .lesson-personalization-v2 .lpv2-status{
    white-space:normal!important;
    text-wrap:pretty!important;
  }
  .lesson-personalization-v2 .lpv2-focus{
    top:calc(294 * var(--u))!important;
  }
  .lesson-personalization-v2 .lpv2-goal p{
    left:calc(88 * var(--u))!important;
  }

  /* 06 保護者の声：ラベル→見出し→本文の垂直間隔を同じリズムへ */
  .final-voices blockquote{
    padding-bottom:20px!important;
  }
  .final-voices blockquote>span,
  .final-voices blockquote.is-gold>span{
    margin-bottom:18px!important;
  }
  .final-voices blockquote h3{
    min-height:96px!important;
    margin-bottom:18px!important;
    padding-bottom:18px!important;
  }

  /* 07 受講概要：対象コピーを一行で収める */
  .final-overview__grid>div:first-child span{
    font-size:16.5px!important;
    line-height:24px!important;
    letter-spacing:-.015em!important;
    white-space:nowrap!important;
  }

  /* 08 無料体験：判断コピー、チェック項目、問い合わせ導線 */
  .final-trial__outcomes ul{
    margin-top:8px!important;
  }
  .final-trial__outcomes li,
  .final-trial__outcomes li:first-child,
  .final-trial__outcomes li:last-child{
    padding:10px 0!important;
    font-weight:600!important;
  }
  .final-trial__decision{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:86px!important;
  }
  .final-trial__decision p{
    margin:0!important;
    font-size:14px!important;
    line-height:1.75!important;
  }
  .final-trial__decision p strong{
    display:block!important;
    margin-bottom:5px!important;
    color:#82161d!important;
    font-family:var(--f23-serif)!important;
    font-size:21px!important;
    font-weight:700!important;
    line-height:1.45!important;
    letter-spacing:.02em!important;
  }
  .final-trial__action{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
  }
  .final-trial__inquiry{
    margin:10px 0 0!important;
    color:#5b534c!important;
    font-family:var(--f23-serif)!important;
    font-size:12.5px!important;
    line-height:1.6!important;
    letter-spacing:.01em!important;
    text-align:center!important;
  }
  .final-trial__inquiry a{
    display:inline!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    background:none!important;
    box-shadow:none!important;
    color:#8d171c!important;
    font-size:inherit!important;
    font-weight:500!important;
    line-height:inherit!important;
    text-decoration:underline!important;
    text-underline-offset:2px!important;
  }
  

  /* 03 4つの秘訣：02〜04を01と同じ高さに固定し、次セクションへの潜り込みを防止 */
  #features .ft-stage{
    min-height:642px!important;
    height:642px!important;
    overflow:hidden!important;
  }
  #features .ft-panel--01,
  #features .ft-panel--02,
  #features .ft-panel--03,
  #features .ft-panel--04{
    height:606px!important;
    max-height:606px!important;
    overflow:hidden!important;
  }
  #features .ft-panel--02 .ft-panel__main,
  #features .ft-panel--03 .ft-panel__main,
  #features .ft-panel--04 .ft-panel__main{
    grid-template-columns:539px 539px!important;
    min-height:495px!important;
    height:495px!important;
    max-height:495px!important;
    align-items:stretch!important;
  }
  #features .ft-panel--02 .ft-panel__visual,
  #features .ft-panel--03 .ft-panel__visual,
  #features .ft-panel--04 .ft-panel__visual{
    position:relative!important;
    width:539px!important;
    height:495px!important;
    min-height:495px!important;
    max-height:495px!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#f6f1e9!important;
  }
  #features .ft-panel--02 .ft-panel__visual .f23-feature-visual-img,
  #features .ft-panel--03 .ft-panel__visual .f23-feature-visual-img,
  #features .ft-panel--04 .ft-panel__visual .f23-feature-visual-img{
    position:absolute!important;
    inset:0!important;
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  #features .ft-panel--02 .ft-panel__body,
  #features .ft-panel--03 .ft-panel__body,
  #features .ft-panel--04 .ft-panel__body{
    width:100%!important;
    margin-bottom:18px!important;
    font-size:14.2px!important;
    line-height:1.9!important;
    text-align:justify!important;
    text-align-last:left!important;
    text-justify:inter-ideograph!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  
  #features .ft-panel--02 .ft-closing,
  #features .ft-panel--03 .ft-closing,
  #features .ft-panel--04 .ft-closing{
    height:71px!important;
    min-height:71px!important;
    margin-top:19px!important;
    overflow:hidden!important;
  }
}

/* 共通コピー変更のみ。SPレイアウトは既存を維持。 */
@media (max-width:780px){
  
  .final-trial__decision p strong{
    display:block!important;
    color:#82161d!important;
    font-size:17px!important;
    line-height:1.55!important;
  }
  .final-trial__inquiry{
    margin:9px 0 0!important;
    font-size:11px!important;
    line-height:1.6!important;
    text-align:center!important;
  }
  .final-trial__inquiry a{color:#8d171c!important;text-decoration:underline!important;}
  
}

/* source-style-52 */
/* v16 — requested content/layout corrections. */
/* Explicitly correct the slightly off-center body copy in the lesson-style cards. */
@media (min-width:781px){
  .lesson-personalization-v2 .lpv2-status,
  .lesson-personalization-v2 .lpv2-card--b .lpv2-status,
  .lesson-personalization-v2 .lpv2-card--c .lpv2-status{
    left:calc(36 * var(--u))!important;
    width:calc(388 * var(--u))!important;
    text-align:center!important;
  }
}


/* Voices — remove legacy absolute separator, then place a safe separator below each heading. */
.final-voices blockquote::after,
.final-voices blockquote:nth-child(2)::after,
.final-voices blockquote:nth-child(3)::after,
.final-voices blockquote:nth-child(4)::after{display:none!important;content:none!important;}
@media (min-width:781px){
  .final-voices blockquote h3{
    display:block!important;
    min-height:84px!important;
    margin:0 0 15px!important;
    padding:0 0 15px!important;
    border:0!important;
    border-bottom:1px solid #e6ddd1!important;
    box-sizing:border-box!important;
    font-size:23px!important;
    line-height:1.48!important;
  }
}
@media (max-width:780px){
  .final-voices blockquote h3{
    min-height:76px!important;
    margin:0 0 14px!important;
    padding:0 0 14px!important;
    border:0!important;
    border-bottom:1px solid #e6ddd1!important;
    box-sizing:border-box!important;
  }
}

/* Lesson flow — align both cards and make the two consecutive 50-minute lessons explicit. */
.lesson-flow-v2__loop>span{
  position:absolute;
  left:50%;
  bottom:-17px;
  transform:translateX(-50%);
  z-index:2;
  padding:0 14px;
  background:#fff;
  color:#8c4a45;
  font:600 14px/1.55 var(--f23-sans,"Noto Sans JP",sans-serif);
  letter-spacing:.035em;
  white-space:nowrap;
}

@media (min-width:781px){
  
  .lesson-flow-v2__card h3{
    min-height:88px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0 0 12px!important;
    box-sizing:border-box!important;
  }
  .lesson-flow-v2__card>p:not(.lesson-flow-v2__time){
    min-height:112px!important;
    margin-bottom:0!important;
    box-sizing:border-box!important;
  }
  .lesson-flow-v2__card ul{
    min-height:136px!important;
    margin-top:18px!important;
    box-sizing:border-box!important;
  }
  
}
@media (max-width:780px){
  .lesson-flow-v2__loop>span{
    width:min(340px,92vw);
    bottom:-21px;
    padding:0 8px;
    text-align:center;
    font-size:11px;
    line-height:1.6;
    white-space:normal;
  }
  
}

/* Overview — equal visual breathing room above and below; support facts flow naturally. */
.final-overview{
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:72px 74px!important;
  overflow:visible!important;
}
.final-overview__inner{height:auto!important;min-height:0!important;overflow:visible!important;}
.final-overview__support{
  position:static!important;
  left:auto!important;right:auto!important;top:auto!important;
  width:min(1140px,100%)!important;
  margin:30px auto 0!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
}
@media (max-width:720px){
  .final-overview{padding:52px 16px!important;}
  .final-overview__support{margin-top:26px!important;gap:0!important;}
}

/* Global persistent CTA: same current offer on LP, article index, all articles and privacy. */

.float-cta{
  transform:none!important;
  visibility:visible!important;
  opacity:1!important;
}
@media (max-width:620px){
  .float-cta{gap:8px!important;padding:8px 10px!important;}
  .float-cta__text{display:block!important;font-size:10.5px!important;line-height:1.35!important;letter-spacing:.02em!important;white-space:nowrap!important;}
  .float-cta .btn{flex:0 0 auto!important;min-height:40px!important;padding:8px 11px!important;font-size:11.5px!important;white-space:nowrap!important;}
}

/* source-style-53 */
/* Final overview reset: legacy Figma absolute positioning is incompatible with natural section height. */
.final-overview__inner{
  position:relative!important;
  width:min(1292px,100%)!important;
  max-width:1292px!important;
  margin:0 auto!important;
  height:auto!important;
  min-height:0!important;
}
.final-overview .final-section-heading{
  position:relative!important;
  left:auto!important;top:auto!important;
  width:100%!important;height:auto!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
}
.final-overview .final-section-heading h2{
  position:static!important;inset:auto!important;
  width:auto!important;height:auto!important;
}
.final-overview__lead{
  position:static!important;left:auto!important;top:auto!important;
  width:auto!important;height:auto!important;
  margin:10px 0 22px!important;
}
.final-overview__grid{
  position:relative!important;left:auto!important;top:auto!important;
  width:100%!important;max-width:1292px!important;height:130px!important;
  margin:0!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;
}
.final-overview__grid>div,
.final-overview__grid>div:nth-child(1),
.final-overview__grid>div:nth-child(2),
.final-overview__grid>div:nth-child(3),
.final-overview__grid>div:nth-child(4),
.final-overview__grid>div:nth-child(5){
  position:relative!important;left:auto!important;top:auto!important;
  width:auto!important;height:auto!important;
  display:grid!important;grid-template-columns:72px minmax(0,1fr)!important;align-items:center!important;
  padding:12px 22px!important;box-sizing:border-box!important;
}
.final-overview__note{
  position:static!important;left:auto!important;top:auto!important;
  width:auto!important;height:auto!important;
  margin:26px 0 0!important;text-align:center!important;
}
.final-overview__support{margin-top:30px!important;}
@media(max-width:720px){
  .final-overview .final-section-heading{display:flex!important;}
  .final-overview__grid{height:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .final-overview__grid>div,
  .final-overview__grid>div:nth-child(1),
  .final-overview__grid>div:nth-child(2),
  .final-overview__grid>div:nth-child(3),
  .final-overview__grid>div:nth-child(4),
  .final-overview__grid>div:nth-child(5){
    min-height:94px!important;grid-template-columns:44px minmax(0,1fr)!important;gap:10px!important;padding:13px 12px!important;
  }
  .final-overview__grid>div:last-child{grid-column:1/-1!important;grid-template-columns:44px auto!important;justify-content:center!important;}
  .final-overview__note{margin-top:14px!important;}
}

/* source-style-54 */
@media(min-width:781px){
  .final-overview{position:relative!important;height:590px!important;min-height:590px!important;padding:0!important;margin:0!important;overflow:hidden!important;}
  .final-overview__inner{position:relative!important;width:1440px!important;max-width:1440px!important;height:590px!important;margin:0 auto!important;padding:0!important;overflow:visible!important;}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* source-style-55 */
@media (max-width:780px){
  .final-trial__band{
    margin-top:20px!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    overflow:visible!important;
    display:block!important;
  }
  .final-trial__outcomes{
    display:block!important;
    padding:17px 16px 14px!important;
    border:1px solid rgba(174,21,23,.18)!important;
    border-radius:11px!important;
    background:rgba(255,251,244,.96)!important;
  }
  .final-trial__outcomes strong{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    padding:7px 13px 8px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#ad1518!important;
    color:#fff!important;
    font-size:13px!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.06em!important;
    text-align:left!important;
  }
  .final-trial__outcomes strong br{display:none!important}
  .final-trial__outcomes ul{
    margin:12px 0 0!important;
    padding:0!important;
    list-style:none!important;
  }
  .final-trial__outcomes li{
    position:relative!important;
    display:flex!important;
    align-items:flex-start!important;
    min-height:0!important;
    margin:0!important;
    padding:10px 0!important;
    border-top:1px solid rgba(132,108,88,.13)!important;
    color:#302824!important;
    font-size:14px!important;
    font-weight:500!important;
    line-height:1.6!important;
    white-space:normal!important;
  }
  .final-trial__outcomes li:first-child{border-top:0!important;padding-top:4px!important}
  .final-trial__outcomes li:last-child{padding-bottom:2px!important}
  .final-trial__outcomes li:before{
    content:"✓"!important;
    flex:0 0 22px!important;
    width:22px!important;
    height:22px!important;
    margin:0 10px 0 0!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    background:#f2e1d4!important;
    color:#a8191b!important;
    font-size:12px!important;
    font-weight:800!important;
    line-height:1!important;
  }
  .final-trial__decision{
    margin-top:11px!important;
    padding:15px 16px 14px!important;
    border:1px solid rgba(132,108,88,.18)!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.72)!important;
    text-align:center!important;
  }
  
  .final-trial__decision p{
    margin:6px 0 0!important;
    color:#5f5751!important;
    font-size:12.5px!important;
    line-height:1.75!important;
  }
  .final-trial__decision p br{display:none!important}
  .final-trial__action{
    margin-top:12px!important;
    padding:0!important;
    text-align:center!important;
  }
  .final-trial__action a{
    width:100%!important;
    height:56px!important;
    border-radius:4px!important;
    background:#ae1517!important;
    box-shadow:0 4px 10px rgba(93,25,18,.15)!important;
    font-size:15px!important;
    font-weight:700!important;
    letter-spacing:.02em!important;
  }
  
}

/* source-style-56 */
@media (min-width:781px){
  /* v4: lesson-focus icons — remove rings and align each icon with its copy axis. */
  .lesson-personalization-v2 .lpv2-steps{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:calc(16 * var(--u))!important;
    align-items:start!important;
  }
  .lesson-personalization-v2 .lpv2-step{
    display:grid!important;
    grid-template-rows:calc(54 * var(--u)) auto!important;
    justify-items:center!important;
    align-items:start!important;
    min-width:0!important;
    padding:0 calc(2 * var(--u))!important;
    text-align:center!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon{
    width:calc(54 * var(--u))!important;
    height:calc(54 * var(--u))!important;
    margin:0 auto!important;
    border:0!important;
    border-radius:0!important;
    background:none!important;
    box-shadow:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    place-items:unset!important;
    overflow:visible!important;
  }
  .lesson-personalization-v2 .lpv2-step__icon img{
    display:block!important;
    width:calc(52 * var(--u))!important;
    height:calc(52 * var(--u))!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:50% 50%!important;
    transform:none!important;
    margin:0!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child{
    width:100%!important;
    margin:calc(8 * var(--u)) 0 0!important;
    text-align:center!important;
    justify-self:stretch!important;
    white-space:normal!important;
  }
  .lesson-personalization-v2 .lpv2-step+.lpv2-step:before{
    top:calc(23 * var(--u))!important;
  }
}

/* source-style-57 */
@media (min-width:781px){
  /* PC局所改善03: 学校別・国語入試分析 — 構成を維持し、装飾の強さと整列精度だけを調整。 */
  .final-school-analysis__inner{
    border-color:rgba(165,28,29,.24)!important;
    background:rgba(255,255,255,.30)!important;
  }
  .final-school-featured__card{
    border-color:#ded3c5!important;
    box-shadow:0 1px 4px rgba(40,25,15,.045)!important;
  }
  .final-school-featured__card p{
    line-height:26px!important;
  }
  .final-school-featured__card b{
    bottom:15px!important;
  }
  .final-school-featured__card em{
    display:none!important;
  }
  .final-school-list a{
    border-color:#ded3c5!important;
    box-shadow:0 1px 3px rgba(40,25,15,.04)!important;
    background:rgba(255,255,255,.92)!important;
  }
  .final-school-list .school-list-icon{
    left:18px!important;
    top:8px!important;
    width:38px!important;
    height:36px!important;
    max-width:38px!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .final-school-list a span{
    left:68px!important;
    width:194px!important;
  }
  .final-school-analysis__cta{
    box-shadow:0 2px 6px rgba(78,20,20,.12)!important;
  }
}

/* source-style-58 */
@media (min-width:781px){
  /* PC final detail pass: preserve fixed section geometry; only remove remaining visual roughness. */

  /* Instructor: keep the established Figma geometry. */
  
  .final-instructor__facts p{
    color:#3f3934!important;
  }
  .final-instructor__cta{
    box-shadow:0 4px 11px rgba(94,24,24,.14)!important;
  }

  /* Subtle section boundaries in the lower half. */
  .final-overview,
  .final-trial,
  .final-faq{
    border-top:1px solid rgba(139,111,83,.08)!important;
  }

  /* FAQ: improve the only remaining low-contrast body copy. */
  .final-faq{
    height:638px!important;
    padding-top:49px!important;
    padding-bottom:49px!important;
  }
  .final-faq h2{
    margin-bottom:27px!important;
  }
  .final-faq summary{
    font-size:18.5px!important;
    letter-spacing:.01em!important;
  }
  .final-faq details p{
    color:#5e5751!important;
    font-size:16px!important;
    line-height:29px!important;
    padding-left:48px!important;
    padding-right:48px!important;
    padding-bottom:17px!important;
  }
  .final-faq details[open]{
    height:122px!important;
  }

  /* Final CTA: retain the fixed composition, only increase the conversion box's visual weight. */
  .final-cta__box{
    width:660px!important;
    box-shadow:0 7px 20px rgba(64,10,12,.12)!important;
  }
  .final-cta__box>strong{
    left:31px!important;
    width:145px!important;
  }
  .final-cta__box:before{
    left:188px!important;
  }
  .final-cta__box>div{
    left:215px!important;
    width:415px!important;
  }
  
  .final-cta__box a{
    width:415px!important;
    box-shadow:0 3px 8px rgba(99,16,17,.14)!important;
  }
}

/* source-style-59 */
@media (min-width:781px){
  /* 04 学校分析：一覧と下部CTAの軸を整理 */
  .final-school-analysis__cta{
    gap:0!important;
  }
  .final-school-analysis__cta>span{
    display:none!important;
  }
  .final-school-list a span{
    top:0!important;
    height:52px!important;
    line-height:1.35!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:nowrap!important;
  }
  .final-school-list a b{
    top:0!important;
    height:52px!important;
    line-height:52px!important;
  }

  /* 05 授業スタイル：背景と次セクションまでの呼吸 */
  .lesson-personalization-v2{
    background:#fefcf8!important;
    margin-bottom:72px!important;
  }
  .final-instructor-voices{
    margin-top:0!important;
  }

  /* 02 問題提起：テキスト群の垂直間隔を約36pxで揃える */
  .l-empathy__reframe{top:112px!important;}
  .l-empathy__symptoms{top:242px!important;}
  .l-empathy__diagnosis{top:391px!important;}
  .l-empathy__possibility{top:486px!important;}
  .l-empathy__elio{top:631px!important;}

  /* 06 保護者の声：本文を明朝に統一し、カード下部の空きを圧縮 */
  .final-instructor-voices{
    height:1676px!important;
  }
  .final-voices{
    height:600px!important;
  }
  .final-voices>h2{
    width:1180px!important;
    font-size:40px!important;
    white-space:nowrap!important;
  }
  .final-voices__grid{
    height:342px!important;
  }
  .final-voices blockquote{
    height:342px!important;
  }
  .final-voices blockquote h3{
    font-size:24px!important;
    line-height:37px!important;
  }
  .final-voices blockquote p{
    font-family:var(--f23-serif)!important;
    font-size:16px!important;
    line-height:29.5px!important;
    letter-spacing:.01em!important;
  }

  /* 07 受講概要：見出しの飾り線を外し、前セクションとの余白を増やす */
  .final-overview{
    margin-top:72px!important;
    border-top:0!important;
  }
  .final-section-heading>span{
    display:none!important;
  }

  /* 08 無料体験：補足の「1分」を削除した後もCTAを中央に保つ */
  .final-trial__action{
    justify-content:center!important;
  }

  /* 09 FAQ：開いた内容に応じてセクション自体を伸ばす */
  .final-faq{
    height:auto!important;
    min-height:638px!important;
    overflow:visible!important;
    padding-top:49px!important;
    padding-bottom:49px!important;
  }
  .final-faq__inner{
    height:auto!important;
    min-height:540px!important;
    overflow:visible!important;
  }
  .final-faq details,
  .final-faq details[open]{
    height:auto!important;
    min-height:63px!important;
    overflow:visible!important;
  }
  .final-faq details[open] summary{
    height:auto!important;
    min-height:51px!important;
  }
  .final-faq details[open] p{
    display:block!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  /* 10 FINAL CTA：商品名＋主コピーへ。説明文は撤去 */
  .final-cta__copy{
    top:83px!important;
    height:150px!important;
  }
  .final-cta__copy .final-cta__course{
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin:0 0 18px!important;
    color:#f5e9df!important;
    font-family:var(--f23-serif)!important;
    font-size:18px!important;
    font-weight:600!important;
    line-height:28px!important;
    letter-spacing:.05em!important;
  }
  .final-cta__copy h2{
    width:610px!important;
    height:auto!important;
    font-size:43px!important;
    line-height:1.45!important;
    white-space:nowrap!important;
  }
  .final-cta__copy h2 em{
    color:#f0d39a!important;
    font-style:normal!important;
  }
  .final-cta__box>div{
    top:60px!important;
    height:52px!important;
  }
  .final-cta__box>div>a{
    top:0!important;
  }

  /* フッター：ロゴ・文字・並びの密度を見直す */
  .l-footer{
    height:auto!important;
    min-height:282px!important;
    padding:48px 0 24px!important;
  }
  .l-footer__grid{
    grid-template-columns:1.05fr 1.25fr auto!important;
    gap:72px!important;
    align-items:start!important;
  }
  .l-footer img{
    width:190px!important;
    height:auto!important;
  }
  .l-footer__grid>div:first-child p{
    margin-top:13px!important;
    color:#d4cdc3!important;
    font-size:14px!important;
    line-height:1.7!important;
    letter-spacing:.04em!important;
  }
  .l-footer__grid>div:nth-child(2) p,
  .l-footer__grid>div:nth-child(2) a,
  .l-footer nav a{
    color:#c8c0b5!important;
    font-size:13px!important;
    line-height:1.8!important;
  }
  .l-footer__grid>div:nth-child(2) p{
    margin:0 0 8px!important;
  }
  .l-footer nav{
    gap:12px!important;
    padding-top:2px!important;
  }
  .l-footer__copy{
    margin:30px 0 0!important;
    padding-top:17px!important;
    font-size:12px!important;
    line-height:1.6!important;
  }
}

/* Shared copy changes only; SP layout remains untouched. */
@media (max-width:780px){
  .final-cta__copy .final-cta__course{
    margin:0 0 8px!important;
    color:#f5e9df!important;
    font-family:var(--f23-serif)!important;
    font-size:12px!important;
    line-height:1.6!important;
    letter-spacing:.04em!important;
  }
  .final-cta__copy h2 em{
    color:#f0d39a!important;
    font-style:normal!important;
  }
  
}

/* source-style-60 */
@media (min-width:781px){
  /* 03｜4つの秘訣：01を少し小さくし、01〜04の本文サイズを統一 */
  #features .ft-panel--01 .ft-panel__body,
  #features .ft-panel--02 .ft-panel__body,
  #features .ft-panel--03 .ft-panel__body,
  #features .ft-panel--04 .ft-panel__body{
    font-size:15px!important;
    line-height:1.86!important;
    letter-spacing:.012em!important;
  }

  /* 04｜学校別分析：前後に明確な呼吸を追加 */
  .final-school-analysis{
    margin-top:58px!important;
    margin-bottom:64px!important;
  }

  /* 06｜保護者の声：線は1本。ラベルと見出しを意味的に近接 */
  .final-voices blockquote>span,
  .final-voices blockquote.is-gold>span{
    top:23px!important;
    margin:0!important;
  }
  .final-voices blockquote h3{
    top:64px!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  .final-voices blockquote:after,
  .final-voices blockquote:nth-child(2):after,
  .final-voices blockquote:nth-child(3):after{
    top:151px!important;
    height:1px!important;
  }
  .final-voices blockquote p{
    top:166px!important;
  }

  /* 07｜受講概要：対象を意図した2行へ */
  .final-overview__grid>div:first-child span{
    white-space:normal!important;
    font-size:17px!important;
    line-height:24px!important;
    letter-spacing:0!important;
  }
  .final-overview__grid>div:first-child span br{
    display:inline!important;
  }

  /* 08｜無料体験：3列の軸・余白・左揃えを再構成 */
  .final-trial__band{
    top:514px!important;
    height:160px!important;
    overflow:hidden!important;
  }
  .final-trial__outcomes{
    left:0!important;
    top:0!important;
    width:570px!important;
    height:158px!important;
    padding:0!important;
    border-right:1px solid #d7c8b4!important;
    box-sizing:border-box!important;
  }
  .final-trial__outcomes strong{
    left:36px!important;
    top:23px!important;
    width:108px!important;
    height:108px!important;
    font-size:17px!important;
    line-height:27px!important;
  }
  .final-trial__outcomes ul{
    left:182px!important;
    top:22px!important;
    width:350px!important;
    height:116px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:9px!important;
  }
  .final-trial__outcomes li,
  .final-trial__outcomes li:first-child,
  .final-trial__outcomes li:last-child{
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0 0 0 30px!important;
    display:block!important;
    font-size:16px!important;
    font-weight:600!important;
    line-height:1.55!important;
    text-align:left!important;
    white-space:nowrap!important;
  }
  .final-trial__outcomes li:before{
    left:0!important;
    top:-1px!important;
    font-size:21px!important;
    line-height:1.55!important;
  }
  .final-trial__decision{
    left:570px!important;
    top:0!important;
    width:340px!important;
    height:158px!important;
    padding:0 28px!important;
    border-left:0!important;
    border-right:1px solid #d7c8b4!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
    text-align:left!important;
  }
  .final-trial__decision p{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    color:#302924!important;
    font-family:var(--f23-serif)!important;
    font-size:14px!important;
    line-height:1.7!important;
    text-align:left!important;
  }
  .final-trial__decision p strong{
    display:block!important;
    margin:0 0 8px!important;
    color:#8a171c!important;
    font-size:19px!important;
    font-weight:700!important;
    line-height:1.55!important;
    letter-spacing:.01em!important;
    text-align:left!important;
  }
  .final-trial__action{
    left:910px!important;
    top:0!important;
    width:418px!important;
    height:158px!important;
    padding:23px 28px 18px!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    align-items:stretch!important;
    text-align:left!important;
  }
  .final-trial__action>a{
    position:static!important;
    width:100%!important;
    height:59px!important;
    min-height:59px!important;
    font-size:20px!important;
    line-height:1!important;
  }
  .final-trial__inquiry{
    width:100%!important;
    margin:10px 0 0!important;
    padding:0!important;
    color:#625950!important;
    font-size:11.5px!important;
    line-height:1.55!important;
    text-align:left!important;
  }
  .final-trial__inquiry a{
    display:inline!important;
    width:auto!important;
    height:auto!important;
    color:#8d171c!important;
    font-size:inherit!important;
    line-height:inherit!important;
    text-align:left!important;
  }

  /* 09｜FAQ：初期状態はHTML側で全閉じ。開閉時は既存の可変高を維持 */
  .final-faq details:not([open]) p{
    display:none!important;
  }

  /* 10｜FINAL CTA：縦線は1本だけ。情報量に合わせて高さを圧縮 */
  .final-cta{
    height:292px!important;
  }
  .final-cta__inner{
    height:292px!important;
  }
  .final-cta__copy{
    top:64px!important;
    height:130px!important;
  }
  .final-cta__copy .final-cta__course{
    margin-bottom:13px!important;
  }
  .final-cta__copy h2{
    font-size:41px!important;
    line-height:1.42!important;
  }
  .final-cta__box{
    top:60px!important;
    height:160px!important;
  }
  .final-cta__box>strong{
    top:47px!important;
    height:58px!important;
    border-right:0!important;
  }
  .final-cta__box:before{
    top:24px!important;
    height:112px!important;
  }
  .final-cta__box>div{
    top:54px!important;
    height:52px!important;
  }
}

/* source-style-61 */
@media (min-width:781px){
  /* 04｜４つの秘訣：本文の可読性を上げ、01の改行位置を少し左へ */
  .ft-panel__body{
    font-size:18px!important;
    line-height:2.02!important;
    letter-spacing:.01em!important;
  }
  .ft-panel--01 .ft-panel__body{
    width:456px!important;
    max-width:456px!important;
  }

  /* 08｜無料体験：カード上部のアイコン位置・サイズと判断メッセージを調整 */
  .final-trial__steps>li .final-trial__icons{
    left:50%!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .final-trial__steps>li:nth-child(1) .final-trial__icons{
    top:39px!important;
    width:74px!important;
    height:74px!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons{
    top:43px!important;
    width:132px!important;
    height:60px!important;
    gap:6px!important;
  }
  .final-trial__steps>li:nth-child(3) .final-trial__icons{
    top:39px!important;
    width:72px!important;
    height:72px!important;
  }
  .final-trial__steps>li:nth-child(1) .final-trial__icons img{
    width:74px!important;
    height:74px!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons img{
    width:58px!important;
    height:58px!important;
  }
  .final-trial__steps>li:nth-child(3) .final-trial__icons img{
    width:72px!important;
    height:72px!important;
  }
  .final-trial__decision p{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    gap:10px!important;
  }
  .final-trial__decision strong{
    display:block!important;
    line-height:1.42!important;
  }
  .final-trial__decision-note{
    display:block!important;
    margin-top:1px!important;
  }

  /* 10｜FINAL CTA：講座名の視認性を少し上げる */
  .final-cta__copy .final-cta__course{
    font-size:21px!important;
    line-height:31px!important;
    letter-spacing:.055em!important;
  }

  /* Footer：指定ロゴへ差し替え、見やすいサイズへ */
  .l-footer img{
    width:270px!important;
    height:auto!important;
  }
}

/* source-style-62 */
@media (min-width:781px){
  /* 03｜４つの秘訣：01本文の折返し位置と本文サイズを微調整 */
  #feature-panel-01 .ft-panel__body{
    width:470px!important;
    max-width:470px!important;
    font-size:18.6px!important;
    line-height:2.0!important;
    letter-spacing:.012em!important;
  }
  .ft-panel--02 .ft-panel__body,
  .ft-panel--03 .ft-panel__body,
  .ft-panel--04 .ft-panel__body{
    font-size:18.6px!important;
    line-height:2.0!important;
    letter-spacing:.012em!important;
  }

  /* 04｜学校別入試分析：見出し間隔を整え、黄色線を外す */
  .final-school-analysis h2{
    top:68px!important;
  }
  .final-school-analysis .final-heading-rule{
    display:none!important;
  }
  .final-school-analysis__lead{
    top:139px!important;
  }

  /* 05｜授業スタイル個別化：リードと上段ボックスの間隔を少し拡げる */
  .lesson-personalization-v2 .lpv2-factor{top:calc(245 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--top-h{top:calc(354 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--top-v1,
  .lesson-personalization-v2 .lpv2-connector--top-v2,
  .lesson-personalization-v2 .lpv2-connector--top-v3{top:calc(338 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-optimize{top:calc(373 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--bottom-h{top:calc(464 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--bottom-v0{top:calc(455 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-connector--bottom-v1,
  .lesson-personalization-v2 .lpv2-connector--bottom-v2,
  .lesson-personalization-v2 .lpv2-connector--bottom-v3{top:calc(464 * var(--u))!important;}
  .lesson-personalization-v2 .lpv2-card{top:calc(488 * var(--u))!important;}

  /* 08｜無料体験：アイコンをさらに大きくして中央に配置、文言更新に合わせて文字位置を調整 */
  .final-trial__steps>li:nth-child(1) .final-trial__icons{
    top:31px!important;width:88px!important;height:88px!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons{
    top:35px!important;width:148px!important;height:68px!important;gap:8px!important;
  }
  .final-trial__steps>li:nth-child(3) .final-trial__icons{
    top:31px!important;width:84px!important;height:84px!important;
  }
  .final-trial__steps>li:nth-child(1) .final-trial__icons img{
    width:88px!important;height:88px!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons img{
    width:66px!important;height:66px!important;
  }
  .final-trial__steps>li:nth-child(3) .final-trial__icons img{
    width:84px!important;height:84px!important;
  }
  .final-trial__steps>li:nth-child(2) h3{top:120px!important;}
  .final-trial__steps>li:nth-child(3) h3{top:122px!important;}
  .final-trial__steps>li:nth-child(2)>p{top:177px!important;width:262px!important;left:29px!important;}
  .final-trial__steps>li:nth-child(3)>p{top:175px!important;width:266px!important;left:27px!important;}

  /* Footer：添付ロゴを適正サイズで表示 */
  .l-footer img{
    width:360px!important;
    height:auto!important;
    filter:none!important;
    opacity:1!important;
    display:block!important;
  }
}

/* source-style-63 */
@media (min-width:781px){
  /* 03｜4つの秘訣：01本文→チェック群の距離を02〜04のリズムへ寄せる */
  #feature-panel-01 .ft-panel__checks{
    top:342px!important;
  }
  /* セクション最下部の装飾横線を削除 */
  #features .ft-bottom-rule{
    display:none!important;
  }

  /* 07｜受講概要：見出し・リード周辺の呼吸を他セクションに合わせる */
  .final-overview{
    height:348px!important;
  }
  .final-overview__inner{
    height:348px!important;
  }
  .final-section-heading{
    top:32px!important;
  }
  .final-overview__lead{
    top:96px!important;
  }
  .final-overview__grid{
    top:142px!important;
  }
  .final-overview__note{
    top:284px!important;
  }

  /* 08｜無料体験：アイコンはサイズ維持、カード中央軸へ厳密に配置 */
  .final-trial__steps>li .final-trial__icons{
    transform:none!important;
  }
  .final-trial__steps>li:nth-child(1) .final-trial__icons{
    left:116px!important;
    top:31px!important;
  }
  .final-trial__steps>li:nth-child(2) .final-trial__icons{
    left:86px!important;
    top:35px!important;
  }
  .final-trial__steps>li:nth-child(3) .final-trial__icons{
    left:118px!important;
    top:31px!important;
  }
  /* 02・03本文：指定の2行で自然に収める */
  .final-trial__steps>li:nth-child(2)>p,
  .final-trial__steps>li:nth-child(3)>p{
    left:17px!important;
    width:286px!important;
    font-size:13.5px!important;
    line-height:21.5px!important;
    white-space:normal!important;
  }
  .final-trial__steps>li:nth-child(2)>p{top:178px!important;}
  .final-trial__steps>li:nth-child(3)>p{top:176px!important;}

  /* 問い合わせURLは次行へ */
  .final-trial__inquiry{
    line-height:1.65!important;
  }
  .final-trial__inquiry a{
    display:inline-block!important;
    margin-top:2px!important;
  }
}

/* source-style-64 */
@media (max-width:780px){
  /* 01｜ヘッダー：CTAの可読性 */
  .l-button--header{
    font-size:12px!important;
    line-height:1.25!important;
    padding-inline:15px!important;
    letter-spacing:.01em!important;
  }

  /* 03｜4つの秘訣：本文階層を読みやすくし、末尾装飾を整理 */
  #features .ft-panel__body{
    font-size:14.5px!important;
    line-height:1.88!important;
    letter-spacing:.005em!important;
  }
  #features .ft-panel__checks li{
    font-size:13.5px!important;
    line-height:1.6!important;
  }
  #features .ft-bottom-rule{display:none!important;}

  /* 04｜学校別分析：PCで確定した方向をSPにも反映 */
  .final-school-analysis{
    background:#ebebeb!important;
    padding:42px 18px 46px!important;
  }
  .final-school-analysis__inner{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    padding:0!important;
  }
  .final-school-analysis .final-heading-rule{display:none!important;}
  .final-school-analysis h2{
    margin:14px 0 18px!important;
  }
  .final-school-analysis__lead{
    margin:0 0 26px!important;
  }
  .final-school-featured{
    margin-top:0!important;
    padding-bottom:4px!important;
  }
  .final-school-featured__card{
    height:188px!important;
  }
  .final-school-featured__card p{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    overflow:hidden!important;
    min-height:64px!important;
  }
  .final-school-featured__card b{bottom:14px!important;}
  .final-school-analysis__cta{margin-top:18px!important;}

  /* 05｜授業スタイル：モバイルでも情報を絞り、上段を読みやすく */
  .lesson-personalization-v2{
    background:#fefcf8!important;
    padding-top:52px!important;
    padding-bottom:56px!important;
  }
  .lesson-personalization-v2 .lpv2-lead{
    margin-bottom:28px!important;
  }
  .lesson-personalization-v2 .lpv2-factor{
    min-height:84px!important;
    padding:17px 18px!important;
  }
  .lesson-personalization-v2 .lpv2-factor__icon,
  .lesson-personalization-v2 .lpv2-optimize__icon,
  .lesson-personalization-v2 .lpv2-optimize__copy>span{
    display:none!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy{
    position:static!important;
    width:100%!important;
    text-align:center!important;
    transform:none!important;
  }
  .lesson-personalization-v2 .lpv2-optimize{
    min-height:66px!important;
    padding:15px 20px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy{
    position:static!important;
    width:100%!important;
    transform:none!important;
    text-align:center!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__copy strong{
    font-size:20px!important;
  }
  .lesson-personalization-v2 .lpv2-status{
    font-size:14px!important;
    line-height:1.78!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child{
    font-size:12.5px!important;
    line-height:1.55!important;
  }

  /* 06｜保護者の声：見出しを1行で見せ、カード階層を整える */
  .final-voices>h2{
    font-size:25px!important;
    line-height:1.5!important;
    white-space:nowrap!important;
    letter-spacing:0!important;
  }
  .final-voices>p{margin-top:10px!important;}
  .final-voices blockquote>span{margin-bottom:10px!important;}
  .final-voices blockquote h3{margin-top:0!important;margin-bottom:15px!important;}
  .final-voices blockquote p{font-size:14.5px!important;line-height:1.85!important;}

  /* 07｜受講概要：装飾を減らし、見出し・値の可読性を上げる */
  .final-overview{
    padding-top:52px!important;
    padding-bottom:46px!important;
  }
  .final-overview .final-section-heading>span{display:none!important;}
  .final-overview .final-section-heading h2{
    font-size:29px!important;
    margin:0!important;
  }
  .final-overview__lead{
    margin:12px 0 22px!important;
  }
  .final-overview__grid b{font-size:12.5px!important;}
  .final-overview__grid span{font-size:14px!important;line-height:1.5!important;}
  
  .final-overview__note{font-size:11.5px!important;line-height:1.65!important;}

  /* 08｜無料体験：問い合わせリンクがCTAボタン化される問題を解消 */
  .final-trial__action>a{
    width:100%!important;
  }
  .final-trial__inquiry{
    margin:10px 0 0!important;
    color:#5d554f!important;
    font-size:11.5px!important;
    line-height:1.65!important;
    text-align:center!important;
  }
  .final-trial__inquiry>a{
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:2px 0 0!important;
    padding:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#8d171c!important;
    font-family:inherit!important;
    font-size:11.5px!important;
    font-weight:500!important;
    line-height:1.5!important;
    text-decoration:underline!important;
  }
  .final-trial__decision b,
  .final-trial__decision strong{font-size:16.5px!important;}

  /* 09｜FAQ：全閉じ初期状態＋可変高を保証 */
  .final-faq{height:auto!important;min-height:0!important;overflow:visible!important;}
  .final-faq__inner{height:auto!important;min-height:0!important;overflow:visible!important;}
  .final-faq details,.final-faq details[open]{height:auto!important;min-height:0!important;overflow:visible!important;}
  .final-faq details p{font-size:14px!important;line-height:1.8!important;}

  /* 10｜FINAL CTA：SPで商品名を少し読みやすく */
  .final-cta__copy .final-cta__course{
    font-size:14.5px!important;
    line-height:1.6!important;
  }

  /* Footer：ロゴと文字の視認性・密度 */
  .l-footer{
    padding:42px 18px 22px!important;
  }
  .l-footer__grid{margin:0!important;}
  .l-footer img{
    width:min(310px,100%)!important;
    height:auto!important;
    filter:none!important;
    opacity:1!important;
    display:block!important;
  }
  .l-footer__grid>div:first-child p{
    margin-top:10px!important;
    font-size:13px!important;
  }
  .l-footer p,.l-footer a{
    font-size:12.5px!important;
    line-height:1.8!important;
  }
  .l-footer__grid>div,.l-footer__grid nav{margin-bottom:24px!important;}
  .l-footer__copy{margin-top:24px!important;font-size:11.5px!important;}
}

/* source-style-65 */
@media (max-width:780px){
  /* 学校別分析：CTAに残っていたアイコンを除去 */
  .final-school-analysis__cta>span{display:none!important;}
  .final-school-analysis__cta{
    gap:10px!important;
    justify-content:center!important;
  }

  /* 受講概要：対象を明確な2行に収める */
  .final-overview__grid>div:first-child{
    grid-template-columns:36px minmax(0,1fr)!important;
    column-gap:8px!important;
    padding-left:10px!important;
    padding-right:8px!important;
  }
  .final-overview__grid>div:first-child img{
    width:34px!important;
    height:34px!important;
  }
  .final-overview__grid>div:first-child span{
    font-size:13.2px!important;
    line-height:1.52!important;
    letter-spacing:-.01em!important;
    white-space:nowrap!important;
  }
  .final-overview__grid>div:first-child span br{display:block!important;}

  /* 無料体験：ステップ文の読みやすさを微調整 */
  .final-trial__steps>li>p{
    font-size:13px!important;
    line-height:1.62!important;
  }
  .final-trial__decision{
    padding-top:16px!important;
    padding-bottom:14px!important;
  }

  /* FAQ：質問行のタップ領域を一定に */
  .final-faq summary{
    min-height:62px!important;
    display:flex!important;
    align-items:center!important;
  }

  /* Footer：カラム間の余白を均等化 */
  .l-footer__grid>div,.l-footer__grid nav{
    margin-bottom:22px!important;
  }
  .l-footer nav{gap:4px!important;}
}

/* source-style-66 */
@media (max-width:780px){
  /* 微小文字の底上げ */
  .lesson-personalization-v2 .lpv2-type small{
    font-size:11px!important;
    line-height:1.25!important;
  }
  .final-overview__grid small{
    font-size:11px!important;
    line-height:1.45!important;
  }

  /* スクロールカードの操作感を明確化 */
  .final-school-featured,
  .lesson-personalization-v2 .lpv2-card-scroll,
  .final-voices__grid{
    scroll-snap-type:x proximity!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .final-school-featured__card,
  .lesson-personalization-v2 .lpv2-card,
  .final-voices blockquote{
    scroll-snap-align:start!important;
  }

  /* 主要CTAのタップ領域を統一 */
  .l-hero__cta,
  .final-school-analysis__cta,
  .final-instructor__cta,
  .final-trial__action>a,
  .final-cta__box a{
    min-height:56px!important;
  }

  /* 受講概要の注記と無料体験の問い合わせを読みやすく */
  .final-overview__note{
    color:#6a625b!important;
  }
  .final-trial__inquiry,
  .final-trial__inquiry>a{
    font-size:12px!important;
  }

  /* CTAとフッターのつながりを整理 */
  .final-cta{
    padding-top:42px!important;
    padding-bottom:46px!important;
  }
  .l-footer{
    border-top:0!important;
  }

  /* フッターのブランド表記 */
  .l-footer__grid>div:first-child p{
    font-size:13.5px!important;
    line-height:1.7!important;
  }
  .l-footer__copy{
    color:#aaa39a!important;
  }
}

/* source-style-67 */
/* PC/SP共通：ヘッダーをチャコールへ統一 */
.l-header{
  background:#272727!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  backdrop-filter:none!important;
  overflow:visible!important;
}
.l-header__brand span{
  color:#fff!important;
  border-left-color:rgba(255,255,255,.32)!important;
}
.l-header__nav{display:none!important;}
.l-header a,
.l-header button{color:#fff;}
.l-button--header,
.l-button--header:visited,
.l-button--header:hover,
.l-button--header:focus{color:#fff!important;}

/* LPからエリオブランドサイトへ戻る上位導線 */
.l-header__brand-site-link{display:none;}
.header-drawer__brand-site{display:none!important;}

@media (min-width:781px){
  .l-header__brand-site-link{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 2px;
    color:rgba(255,255,255,.82)!important;
    font:600 12px/1.4 var(--f23-sans,"Noto Sans JP",sans-serif);
    letter-spacing:.04em;
    white-space:nowrap;
    text-decoration:none!important;
    transition:color .18s ease,opacity .18s ease;
  }
  .l-header__brand-site-link::after{
    content:"›";
    margin-left:7px;
    color:rgba(255,255,255,.55);
    font-size:16px;
    line-height:1;
  }
  .l-header__brand-site-link:hover,
  .l-header__brand-site-link:focus-visible{
    color:#fff!important;
    outline:none;
  }
}

.header-menu-wrap{
  position:relative;
  flex:0 0 auto;
  z-index:180;
}
.header-menu-wrap::after{
  content:"";
  position:absolute;
  top:100%;
  right:0;
  width:100%;
  height:18px;
}
.header-menu-toggle{
  height:44px;
  min-width:72px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.44);
  border-radius:2px;
  background:transparent;
  color:#fff!important;
  font:600 10px/1 var(--f23-sans,"Noto Sans JP",sans-serif);
  letter-spacing:.12em;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease;
}
.header-menu-toggle:hover,
.header-menu-toggle:focus-visible,
.header-menu-wrap.is-open .header-menu-toggle{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.75);
  outline:none;
}
.header-menu-toggle__bars{
  width:22px;
  height:16px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.header-menu-toggle__bars i{
  display:block;
  width:22px;
  height:1px;
  background:#fff;
  transition:transform .2s ease,opacity .2s ease;
}




.header-drawer{
  position:fixed;
  z-index:190;
  top:var(--header-h,76px);
  right:0;
  width:clamp(320px,25vw,400px);
  height:calc(100dvh - var(--header-h,76px));
  padding:28px 28px 34px;
  background:#343434;
  box-shadow:-12px 18px 32px rgba(0,0,0,.20);
  transform:translateX(104%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:transform .26s ease,opacity .2s ease,visibility .26s;
  overflow-y:auto;
}
.header-drawer a{
  min-height:54px;
  padding:15px 8px;
  display:flex;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.13);
  color:#fff!important;
  text-decoration:none!important;
  font-family:var(--f23-serif,"Noto Serif JP",serif);
  font-size:16px;
  line-height:1.45;
  letter-spacing:.035em;
  transition:padding-left .18s ease,color .18s ease,background .18s ease;
}
.header-drawer a:first-child{border-top:1px solid rgba(255,255,255,.13);}
.header-drawer a:hover,
.header-drawer a:focus-visible{
  padding-left:16px;
  color:#f0d39a!important;
  background:rgba(255,255,255,.04);
  outline:none;
}
@media (min-width:781px){
  .l-header__inner{gap:16px!important;}
  .l-header__brand{margin-right:auto!important;}
  .l-button--header{margin-left:0!important;}
  .header-menu-wrap.is-open .header-drawer{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}

.header-menu-overlay{display:none;}
body.header-menu-open{overflow:hidden;}

@media (max-width:780px){
  :root{--header-h:64px;}
  .l-header{height:64px!important;}
  .l-header__inner{
    width:calc(100% - 24px)!important;
    gap:8px!important;
  }
  .l-header__brand{
    width:92px!important;
    flex:0 0 92px!important;
  }
  .l-header__brand img{
    width:92px!important;
    max-width:92px!important;
    height:auto!important;
  }
  .l-header__brand span{display:none!important;}
  .l-button--header{
    width:auto!important;
    min-width:142px!important;
    min-height:40px!important;
    margin-left:auto!important;
    padding:7px 9px!important;
    font-size:10.5px!important;
    line-height:1.3!important;
    letter-spacing:.02em!important;
    white-space:nowrap!important;
  }
  .l-button--header::after{margin-left:5px!important;}
  .header-menu-toggle{
    width:42px;
    min-width:42px;
    height:40px;
    padding:0;
    border-color:rgba(255,255,255,.46);
  }
  .header-menu-toggle__label{display:none;}
  .header-menu-toggle__bars{width:20px;height:15px;}
  .header-menu-toggle__bars i{width:20px;}
  .header-menu-wrap::after{display:none;}
  .header-drawer{
    top:64px;
    width:min(86vw,340px);
    height:calc(100dvh - 64px);
    padding:22px 20px 30px;
  }
  .header-drawer a{
    min-height:52px;
    padding:14px 6px;
    font-size:15px;
  }
  .header-drawer .header-drawer__brand-site{
    display:flex!important;
    margin-top:18px;
    padding-top:20px;
    border-top:1px solid rgba(240,211,154,.55);
    border-bottom:0;
    color:#f0d39a!important;
    font-family:var(--f23-sans,"Noto Sans JP",sans-serif);
    font-size:13px;
    font-weight:600;
    letter-spacing:.05em;
  }
  .header-drawer .header-drawer__brand-site::after{
    content:"›";
    margin-left:auto;
    font-size:18px;
    line-height:1;
  }
  
  .header-menu-overlay{
    position:fixed;
    z-index:185;
    display:block;
    top:64px;
    right:0;
    bottom:0;
    left:0;
    background:rgba(0,0,0,.38);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s;
  }
  

  /* SP講師紹介：指定2箇所の装飾だけを通常本文へ戻す */
  .final-instructor__statement p:nth-child(2){
    margin:0 0 9px!important;
    padding:0!important;
    border:0!important;
    background:none!important;
    color:inherit!important;
    font-family:inherit!important;
    font-size:14px!important;
    font-weight:400!important;
    line-height:1.75!important;
    letter-spacing:normal!important;
  }
  .final-instructor__statement p:last-child{
    margin-bottom:0!important;
    padding-top:0!important;
    border-top:0!important;
  }
}

/* source-style-68 */
/* 2026-08-18: restore useful information from earlier LPs without disturbing established sections. */
.answer-gallery,.lesson-flow-v2{box-sizing:border-box;color:#342d29;font-family:var(--f23-sans,"Noto Sans JP",sans-serif)}
.answer-gallery{background:#fff;padding:78px 32px 82px;border-top:1px solid rgba(124,95,65,.08)}
.answer-gallery__inner,.lesson-flow-v2__inner{width:min(1180px,calc(100% - 24px));margin:0 auto}
.answer-gallery__kicker,.lesson-flow-v2__kicker{margin:0 0 10px;color:#9c171a;font:700 12px/1.4 var(--f23-sans,"Noto Sans JP",sans-serif);letter-spacing:.18em;text-align:center}
.answer-gallery h2,.lesson-flow-v2 h2{margin:0;text-align:center;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:38px;line-height:1.35;font-weight:600;letter-spacing:.06em;color:#332b27}
.answer-gallery__lead,.lesson-flow-v2__lead{max-width:760px;margin:18px auto 36px;text-align:center;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:16px;line-height:2;color:#665c55}
.answer-gallery__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.answer-gallery__thumb{display:block;width:100%;height:322px;padding:10px;border:1px solid #ded7ce;border-radius:3px;background:#f8f6f2;box-shadow:0 10px 30px rgba(58,39,26,.06);cursor:zoom-in;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.answer-gallery__thumb:hover{transform:translateY(-3px);box-shadow:0 15px 36px rgba(58,39,26,.11);border-color:#cbbdaf}
.answer-gallery__thumb img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.answer-gallery__hint{margin:15px 0 0;text-align:center;font-size:13px;color:#8b8179}
.answer-lightbox[hidden]{display:none!important}
.answer-lightbox{position:fixed;inset:0;z-index:20000;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;padding:34px;background:rgba(20,16,13,.91);backdrop-filter:blur(4px)}
.answer-lightbox figure{margin:0;min-width:0;height:min(88vh,980px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.answer-lightbox figure img{display:block;max-width:100%;max-height:calc(100% - 34px);width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.4)}
.answer-lightbox figcaption{color:#fff;font:500 13px/1.3 var(--f23-sans,"Noto Sans JP",sans-serif);letter-spacing:.08em}
.answer-lightbox__close,.answer-lightbox__nav{appearance:none;border:0;color:#fff;background:rgba(255,255,255,.12);cursor:pointer;display:grid;place-items:center}
.answer-lightbox__close{position:absolute;right:24px;top:20px;width:46px;height:46px;border-radius:50%;font-size:28px;line-height:1}
.answer-lightbox__nav{width:52px;height:66px;border-radius:4px;font-size:46px;line-height:1;justify-self:center}
.answer-lightbox__close:hover,.answer-lightbox__nav:hover{background:rgba(255,255,255,.22)}

.lesson-flow-v2{background:#f7f4ef;padding:82px 32px 86px;border-top:1px solid rgba(124,95,65,.08)}
.lesson-flow-v2__grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;margin-top:38px}
.lesson-flow-v2__card{position:relative;background:#fff;border:1px solid #e1d8cc;border-radius:5px;padding:0 32px 30px;box-shadow:0 10px 32px rgba(60,42,28,.045);overflow:hidden}
.lesson-flow-v2__time{margin:0 -32px 27px;padding:13px 18px;color:#fff;text-align:center;font-size:15px;letter-spacing:.03em}
.lesson-flow-v2__time strong{font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:22px;margin-right:4px}
.lesson-flow-v2__card--practice .lesson-flow-v2__time{background:linear-gradient(90deg,#8e1015,#b41920)}
.lesson-flow-v2__card--coaching .lesson-flow-v2__time{background:linear-gradient(90deg,#a87928,#c79b49)}
.lesson-flow-v2__card h3{margin:0 0 16px;text-align:center;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:23px;line-height:1.55;font-weight:600;letter-spacing:.02em;color:#8e1015}
.lesson-flow-v2__card--coaching h3{color:#8a6727}
.lesson-flow-v2__card>p:not(.lesson-flow-v2__time){margin:0 0 20px;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:15px;line-height:2;color:#5e554e}
.lesson-flow-v2__card ul{list-style:none;margin:0;padding:17px 18px;background:#faf8f5;border:1px solid #eee7df;border-radius:4px}
.lesson-flow-v2__card li{position:relative;margin:0;padding:5px 0 5px 24px;font-size:14px;line-height:1.65;font-weight:600;color:#514840}
.lesson-flow-v2__card li::before{content:"✓";position:absolute;left:2px;top:5px;color:#9c171a;font-weight:800}
.lesson-flow-v2__card--coaching li::before{color:#ae8436}
.lesson-flow-v2__total{position:absolute;z-index:3;left:50%;top:35px;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;background:#fff;border:3px solid #9c171a;box-shadow:0 7px 22px rgba(49,34,23,.12);display:flex;align-items:baseline;justify-content:center;gap:2px;padding-top:28px;box-sizing:border-box;color:#7d161a;font-family:var(--f23-serif,"Noto Serif JP",serif)}
.lesson-flow-v2__total::before{content:"";position:absolute;inset:-3px;border-radius:50%;border-right-color:#bd913e}
.lesson-flow-v2__total span{font-size:12px}.lesson-flow-v2__total strong{font-size:28px;line-height:1}
.lesson-flow-v2__transition{max-width:930px;margin:30px auto 0;padding:18px 26px;border-left:3px solid #9c171a;background:rgba(255,255,255,.72);font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:16px;line-height:1.9;color:#504741}

/* Extra conclusion for personalized lesson styles. */
.lesson-personalization-v2{aspect-ratio:1672/1200!important;margin-bottom:72px!important}
.lesson-personalization-v2 .lpv2-exam-note{position:absolute;left:calc(270 * var(--u));right:calc(270 * var(--u));bottom:calc(40 * var(--u));margin:0;padding:calc(18 * var(--u)) calc(26 * var(--u));background:rgba(255,255,255,.76);border-left:calc(4 * var(--u)) solid #9c171a;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:calc(18 * var(--u));line-height:1.75;color:#514740;box-sizing:border-box}

/* Four testimonials: use a calm 2x2 evidence grid on desktop. */
@media (min-width:781px){
  .final-instructor-voices{height:1980px!important;overflow:visible!important}
  .final-voices{height:904px!important;overflow:visible!important}
  .final-voices__grid{height:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
  .final-voices blockquote{height:330px!important;padding:24px 28px 23px!important;overflow:hidden!important;box-sizing:border-box!important}
  .final-voices blockquote>span{position:static!important;display:inline-block!important;width:auto!important;height:auto!important;margin:0 0 13px!important;padding:6px 12px!important}
  .final-voices blockquote h3{position:static!important;width:auto!important;height:auto!important;margin:0 0 13px!important;font-size:23px!important;line-height:1.5!important}
  .final-voices blockquote p{position:static!important;width:auto!important;height:auto!important;margin:0!important;font-size:15.5px!important;line-height:1.85!important}
}

/* Overview: preserve the compact summary table and add visible decision-support facts. */
.final-overview{height:590px!important;margin-top:0!important;overflow:visible!important}
.final-overview__inner{height:590px!important;overflow:visible!important}
.final-overview__support{position:absolute;left:130px;right:130px;top:326px;display:grid;grid-template-columns:1fr 1fr;gap:12px 30px;margin:0;padding:0;list-style:none}
.final-overview__support li{position:relative;margin:0;padding-left:20px;font-family:var(--f23-serif,"Noto Serif JP",serif);font-size:15.5px;line-height:1.75;color:#514942}
.final-overview__support li::before{content:"✓";position:absolute;left:0;top:0;color:#9c171a;font-weight:800}
.final-overview__support strong{font-weight:700;text-decoration:underline;text-decoration-color:#9c171a;text-decoration-thickness:2px;text-underline-offset:4px}

/* FAQ now contains all current-relevant historical questions; keep it naturally sized. */
.final-faq{height:auto!important;min-height:0!important;overflow:visible!important;padding-top:62px!important;padding-bottom:66px!important}
.final-faq__inner{height:auto!important;min-height:0!important;overflow:visible!important}
.final-faq details,.final-faq details[open]{height:auto!important;min-height:63px!important;overflow:visible!important}

@media (max-width:780px){
  .answer-gallery{padding:54px 18px 58px}.lesson-flow-v2{padding:58px 18px 62px}
  .answer-gallery__inner,.lesson-flow-v2__inner{width:100%}
  .answer-gallery h2,.lesson-flow-v2 h2{font-size:29px;line-height:1.45}
  .answer-gallery__lead,.lesson-flow-v2__lead{font-size:14px;line-height:1.85;margin:13px auto 27px}
  .answer-gallery__grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 1px 10px;-webkit-overflow-scrolling:touch}
  .answer-gallery__thumb{flex:0 0 82%;height:288px;scroll-snap-align:start;padding:8px}
  .answer-gallery__hint{font-size:12px}
  .answer-lightbox{grid-template-columns:42px minmax(0,1fr) 42px;padding:18px 8px}
  .answer-lightbox__nav{width:38px;height:56px;font-size:36px}.answer-lightbox__close{right:12px;top:10px;width:42px;height:42px}
  .lesson-flow-v2__grid{grid-template-columns:1fr;gap:22px;margin-top:28px}
  .lesson-flow-v2__card{padding:0 19px 23px}.lesson-flow-v2__time{margin:0 -19px 22px;font-size:12px;padding:12px 8px}.lesson-flow-v2__time strong{font-size:18px}
  .lesson-flow-v2__card h3{font-size:19px}.lesson-flow-v2__card>p:not(.lesson-flow-v2__time){font-size:14px;line-height:1.85}.lesson-flow-v2__card li{font-size:13px}
  .lesson-flow-v2__total{position:relative;left:auto;top:auto;transform:none;margin:-11px auto;width:72px;height:72px;padding-top:22px}.lesson-flow-v2__total strong{font-size:23px}
  .lesson-flow-v2__transition{margin-top:25px;padding:15px 18px;font-size:14px;line-height:1.85}
  .lesson-personalization-v2{aspect-ratio:auto!important;margin-bottom:0!important;padding-bottom:58px!important}
  .lesson-personalization-v2 .lpv2-exam-note{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:auto!important;margin:28px 18px 0!important;padding:15px 17px!important;font-size:14px!important;line-height:1.8!important}
  .final-instructor-voices{height:auto!important;overflow:visible!important}
  .final-voices{height:auto!important;overflow:visible!important;padding-bottom:58px!important}
  .final-voices__grid{height:auto!important}
  .final-overview{height:auto!important;overflow:visible!important;margin-top:0!important;padding-bottom:52px!important}
  .final-overview__inner{height:auto!important;overflow:visible!important}
  .final-overview__support{position:static!important;display:block!important;margin:25px 0 0!important;padding:0!important}
  .final-overview__support li{font-size:14px!important;line-height:1.8!important;margin:0 0 12px!important;padding-left:20px!important}
  .final-faq{padding-top:52px!important;padding-bottom:56px!important}
  .final-faq summary{font-size:15.5px!important;line-height:1.55!important;padding-right:42px!important}
  .final-faq details p{padding-left:18px!important;padding-right:18px!important;font-size:14px!important;line-height:1.85!important}
}

/* source-style-69 */
/* 2026-08-18 rev2 — user-directed refinement. Keep this block last. */

/* Instructor: clean source photo only. */

.final-instructor__photo>img:first-child{object-position:50% center!important}

/* Annotated answers: image rail only, embedded immediately before voices. */
.answer-gallery.answer-gallery--embedded{
  border-top:0!important;
  background:#fff!important;
  padding:54px 72px 30px!important;
}
.answer-gallery--embedded .answer-gallery__inner{width:min(1180px,calc(100% - 24px))!important}
.answer-gallery--embedded .answer-gallery__grid{gap:18px!important}
.answer-gallery--embedded .answer-gallery__thumb{height:300px!important}
.answer-gallery--embedded .answer-gallery__hint{margin-top:14px!important}
.final-voices{padding-top:46px!important}

/* Lesson flow: restore section rhythm and show that the 50-minute cycle repeats. */
.lesson-flow-v2{
  padding:76px 32px 78px!important;
  background:#fff!important;
}
.lesson-flow-v2__inner{width:min(1180px,calc(100% - 24px))!important}
.lesson-flow-v2__kicker{margin-bottom:12px!important}
.lesson-flow-v2 h2{margin:0!important}
.lesson-flow-v2__lead{margin:20px auto 48px!important}
.lesson-flow-v2__grid{position:relative!important;margin-top:0!important}
.lesson-flow-v2__loop{
  position:relative;
  width:61%;
  height:46px;
  margin:12px auto 0;
  border-right:2px solid #9c171a;
  border-bottom:2px solid #9c171a;
  border-left:2px solid #9c171a;
  border-radius:0 0 26px 26px;
  opacity:.88;
}
.lesson-flow-v2__loop::before{
  content:"";
  position:absolute;
  left:-7px;
  top:-2px;
  width:12px;
  height:12px;
  border-top:2px solid #9c171a;
  border-left:2px solid #9c171a;
  transform:rotate(45deg);
  background:#fff;
}
.lesson-flow-v2__loop::after{
  content:"次の50分へ";
  position:absolute;
  left:50%;
  bottom:-15px;
  transform:translateX(-50%);
  padding:0 12px;
  background:#fff;
  color:#8f7770;
  font:500 12px/1.4 var(--f23-sans,"Noto Sans JP",sans-serif);
  letter-spacing:.08em;
  white-space:nowrap;
}
.lesson-flow-v2__transition{margin-top:52px!important}

/* Overview: four supporting facts in a single, readable vertical list. */
.final-overview{height:680px!important;min-height:680px!important;overflow:visible!important}
.final-overview__inner{height:680px!important;overflow:visible!important}
.final-overview__support{
  left:150px!important;
  right:150px!important;
  top:326px!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
}
.final-overview__support li{font-size:15.5px!important;line-height:1.75!important}

/* Lesson personalization — desktop visual trace of the supplied rev2 reference. */
@media (min-width:781px){
  .lesson-personalization-v2{
    container-type:inline-size!important;
    position:relative!important;
    width:100%!important;
    aspect-ratio:auto!important;
    height:calc(1088 * (100cqw / 1536))!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fefcf8!important;
  }
  .lesson-personalization-v2 .lpv2-stage{
    --u:calc(100cqw / 1536)!important;
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }
  .lesson-personalization-v2 .lpv2-title{
    position:absolute!important;
    left:0!important;top:calc(29 * var(--u))!important;width:100%!important;height:auto!important;
    text-align:center!important;
    font-size:calc(50 * var(--u))!important;
    line-height:calc(62 * var(--u))!important;
    font-weight:500!important;
    letter-spacing:calc(1.2 * var(--u))!important;
    white-space:nowrap!important;
  }
  .lesson-personalization-v2 .lpv2-title__pre,
  .lesson-personalization-v2 .lpv2-title em{
    position:static!important;display:inline!important;margin:0!important;
    font-size:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;
  }
  .lesson-personalization-v2 .lpv2-title em{color:#94171d!important;font-weight:600!important}
  .lesson-personalization-v2 .lpv2-lead{
    position:absolute!important;left:0!important;top:calc(105 * var(--u))!important;width:100%!important;
    text-align:center!important;font-size:calc(18.5 * var(--u))!important;line-height:calc(31 * var(--u))!important;
    letter-spacing:calc(.35 * var(--u))!important;white-space:nowrap!important;
  }
  .lesson-personalization-v2 .lpv2-factor{
    position:absolute!important;top:calc(190 * var(--u))!important;height:calc(96 * var(--u))!important;
    border:calc(1 * var(--u)) solid #c77d61!important;border-radius:calc(9 * var(--u))!important;
    background:rgba(255,255,255,.08)!important;box-shadow:none!important;
  }
  .lesson-personalization-v2 .lpv2-factor--understanding{left:calc(205 * var(--u))!important;width:calc(350 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-factor--school{left:calc(596 * var(--u))!important;width:calc(350 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-factor--timing{left:calc(993 * var(--u))!important;width:calc(350 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-factor__icon{display:none!important}
  .lesson-personalization-v2 .lpv2-factor__copy{
    position:absolute!important;left:0!important;top:calc(16 * var(--u))!important;width:100%!important;text-align:center!important;white-space:nowrap!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy strong{
    font-size:calc(26 * var(--u))!important;line-height:calc(34 * var(--u))!important;color:#8f171c!important;font-weight:600!important;
  }
  .lesson-personalization-v2 .lpv2-factor__copy span{
    margin-top:calc(3 * var(--u))!important;font-size:calc(17 * var(--u))!important;line-height:calc(25 * var(--u))!important;color:#282326!important;
  }
  .lesson-personalization-v2 .lpv2-connector{display:block!important;position:absolute!important;border-color:#a01820!important;opacity:.92!important}
  .lesson-personalization-v2 .lpv2-connector--top-h{left:calc(379 * var(--u))!important;top:calc(311 * var(--u))!important;width:calc(790 * var(--u))!important;height:0!important;border-top:calc(1 * var(--u)) dashed #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--top-v1{left:calc(379 * var(--u))!important;top:calc(286 * var(--u))!important;width:0!important;height:calc(26 * var(--u))!important;border-left:calc(1 * var(--u)) dashed #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--top-v2{left:calc(771 * var(--u))!important;top:calc(286 * var(--u))!important;width:0!important;height:calc(46 * var(--u))!important;border-left:calc(1 * var(--u)) dashed #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--top-v3{left:calc(1168 * var(--u))!important;top:calc(286 * var(--u))!important;width:0!important;height:calc(26 * var(--u))!important;border-left:calc(1 * var(--u)) dashed #a01820!important}
  .lesson-personalization-v2 .lpv2-optimize{
    position:absolute!important;left:calc(550 * var(--u))!important;top:calc(331 * var(--u))!important;width:calc(445 * var(--u))!important;height:calc(73 * var(--u))!important;
    border:0!important;border-radius:calc(37 * var(--u))!important;background:linear-gradient(90deg,#8e0910,#ad151c,#8e0910)!important;box-shadow:none!important;
    padding:0!important;
  }
  .lesson-personalization-v2 .lpv2-optimize__icon{display:none!important}
  .lesson-personalization-v2 .lpv2-optimize__copy{position:absolute!important;inset:0!important;width:100%!important;text-align:center!important;display:grid!important;place-items:center!important}
  .lesson-personalization-v2 .lpv2-optimize__copy strong{font-size:calc(31 * var(--u))!important;line-height:1!important;color:#fff!important;font-weight:500!important;letter-spacing:calc(1 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-optimize__copy span{display:none!important}
  .lesson-personalization-v2 .lpv2-connector--bottom-h{left:calc(277 * var(--u))!important;top:calc(383 * var(--u))!important;width:calc(1007 * var(--u))!important;height:0!important;border-top:calc(1 * var(--u)) solid #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--bottom-v0{left:calc(771 * var(--u))!important;top:calc(404 * var(--u))!important;width:0!important;height:calc(15 * var(--u))!important;border-left:calc(1 * var(--u)) solid #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--bottom-v1{left:calc(277 * var(--u))!important;top:calc(383 * var(--u))!important;width:0!important;height:calc(35 * var(--u))!important;border-left:calc(1 * var(--u)) solid #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--bottom-v2{left:calc(771 * var(--u))!important;top:calc(383 * var(--u))!important;width:0!important;height:calc(35 * var(--u))!important;border-left:calc(1 * var(--u)) solid #a01820!important}
  .lesson-personalization-v2 .lpv2-connector--bottom-v3{left:calc(1283 * var(--u))!important;top:calc(383 * var(--u))!important;width:0!important;height:calc(35 * var(--u))!important;border-left:calc(1 * var(--u)) solid #a01820!important}
  .lesson-personalization-v2 .lpv2-card-scroll{position:static!important;display:block!important;width:100%!important;height:100%!important;overflow:visible!important}
  .lesson-personalization-v2 .lpv2-card{
    position:absolute!important;top:calc(418 * var(--u))!important;height:calc(552 * var(--u))!important;
    padding:0!important;border:calc(1 * var(--u)) solid #c77d61!important;border-radius:calc(8 * var(--u))!important;background:rgba(255,255,255,.08)!important;box-shadow:none!important;
  }
  .lesson-personalization-v2 .lpv2-card--a{left:calc(49 * var(--u))!important;width:calc(459 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-card--b{left:calc(529 * var(--u))!important;width:calc(478 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-card--c{left:calc(1026 * var(--u))!important;width:calc(460 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-type{
    position:absolute!important;left:calc(23 * var(--u))!important;top:calc(17 * var(--u))!important;width:calc(84 * var(--u))!important;height:calc(84 * var(--u))!important;
    padding-top:calc(13 * var(--u))!important;border-radius:50%!important;background:#981017!important;color:#fff!important;border:calc(2 * var(--u)) solid #981017!important;box-shadow:inset 0 0 0 calc(3 * var(--u)) #f7e2dc!important;
  }
  .lesson-personalization-v2 .lpv2-type small{font-size:calc(13 * var(--u))!important;line-height:calc(18 * var(--u))!important;color:#fff!important}
  .lesson-personalization-v2 .lpv2-type strong{font-size:calc(33 * var(--u))!important;line-height:calc(37 * var(--u))!important;color:#fff!important;font-weight:500!important}
  .lesson-personalization-v2 .lpv2-card h3{
    position:absolute!important;left:calc(133 * var(--u))!important;top:calc(27 * var(--u))!important;width:calc(300 * var(--u))!important;
    font-size:calc(26 * var(--u))!important;line-height:calc(39 * var(--u))!important;letter-spacing:calc(.6 * var(--u))!important;color:#8f171c!important;font-weight:500!important;white-space:normal!important;
  }
  .lesson-personalization-v2 .lpv2-card--b h3{left:calc(126 * var(--u))!important;width:calc(330 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-card--c h3{left:calc(124 * var(--u))!important;width:calc(316 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-person{display:none!important}
  .lesson-personalization-v2 .lpv2-status{
    position:absolute!important;left:calc(40 * var(--u))!important;top:calc(121 * var(--u))!important;width:calc(379 * var(--u))!important;
    text-align:center!important;font-size:calc(18 * var(--u))!important;line-height:calc(30 * var(--u))!important;color:#272123!important;letter-spacing:0!important;white-space:normal!important;
  }
  .lesson-personalization-v2 .lpv2-card--b .lpv2-status{left:calc(46 * var(--u))!important;width:calc(386 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-card--c .lpv2-status{left:calc(36 * var(--u))!important;width:calc(388 * var(--u))!important}
  .lesson-personalization-v2 .lpv2-status br{display:none!important}
  .lesson-personalization-v2 .lpv2-focus{
    position:absolute!important;left:calc(13 * var(--u))!important;right:calc(13 * var(--u))!important;top:calc(228 * var(--u))!important;height:calc(200 * var(--u))!important;
    border:calc(1 * var(--u)) solid #c77d61!important;border-radius:calc(5 * var(--u))!important;background:rgba(255,255,255,.1)!important;
  }
  .lesson-personalization-v2 .lpv2-focus__label{
    position:absolute!important;left:50%!important;top:calc(-27 * var(--u))!important;transform:translateX(-50%)!important;min-width:calc(145 * var(--u))!important;height:calc(40 * var(--u))!important;
    padding:0 calc(17 * var(--u))!important;border-radius:calc(5 * var(--u))!important;background:#9a0e14!important;color:#fff!important;font-size:calc(18 * var(--u))!important;line-height:calc(40 * var(--u))!important;font-weight:500!important;text-align:center!important;
  }
  .lesson-personalization-v2 .lpv2-steps{position:absolute!important;inset:calc(30 * var(--u)) calc(7 * var(--u)) calc(9 * var(--u))!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;align-items:start!important}
  .lesson-personalization-v2 .lpv2-step{position:relative!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center!important;min-width:0!important}
  .lesson-personalization-v2 .lpv2-step__icon{width:calc(60 * var(--u))!important;height:calc(60 * var(--u))!important;margin:0 auto calc(12 * var(--u))!important;display:grid!important;place-items:center!important}
  .lesson-personalization-v2 .lpv2-step__icon img{max-width:calc(56 * var(--u))!important;max-height:calc(56 * var(--u))!important;width:auto!important;height:auto!important}
  .lesson-personalization-v2 .lpv2-step>span:last-child{font-size:calc(15.5 * var(--u))!important;line-height:calc(26 * var(--u))!important;color:#282326!important;white-space:normal!important}
  .lesson-personalization-v2 .lpv2-step+.lpv2-step::before{content:"›"!important;position:absolute!important;left:calc(-6 * var(--u))!important;top:calc(15 * var(--u))!important;color:#1b1719!important;font-size:calc(34 * var(--u))!important;line-height:1!important}
  .lesson-personalization-v2 .lpv2-goal{
    position:absolute!important;left:calc(13 * var(--u))!important;right:calc(13 * var(--u))!important;bottom:calc(15 * var(--u))!important;height:calc(101 * var(--u))!important;
    border-radius:calc(5 * var(--u))!important;background:#f7eee9!important;color:#8f171c!important;
  }
  .lesson-personalization-v2 .lpv2-goal img{position:absolute!important;left:calc(18 * var(--u))!important;top:50%!important;transform:translateY(-50%)!important;width:calc(56 * var(--u))!important;height:calc(56 * var(--u))!important;object-fit:contain!important}
  .lesson-personalization-v2 .lpv2-goal p{position:absolute!important;left:calc(87 * var(--u))!important;right:calc(14 * var(--u))!important;top:50%!important;transform:translateY(-50%)!important;font-size:calc(20 * var(--u))!important;line-height:calc(31 * var(--u))!important;color:#8f171c!important;font-weight:500!important;white-space:normal!important}
  .lesson-personalization-v2 .lpv2-exam-note{
    position:absolute!important;left:calc(228 * var(--u))!important;right:calc(228 * var(--u))!important;top:calc(994 * var(--u))!important;width:auto!important;margin:0!important;padding:calc(14 * var(--u)) calc(18 * var(--u))!important;
    border:calc(1 * var(--u)) solid rgba(156,23,26,.22)!important;border-radius:calc(6 * var(--u))!important;background:rgba(255,255,255,.48)!important;
    text-align:center!important;font-size:calc(15 * var(--u))!important;line-height:calc(24 * var(--u))!important;color:#5e514c!important;
  }
}

/* Mobile: preserve the same information hierarchy without reintroducing removed illustrations. */
@media (max-width:780px){
  .answer-gallery.answer-gallery--embedded{padding:34px 0 18px!important}
  .answer-gallery--embedded .answer-gallery__inner{width:100%!important}
  .answer-gallery--embedded .answer-gallery__grid{padding-left:18px!important;padding-right:18px!important}
  .answer-gallery--embedded .answer-gallery__hint{margin-left:18px!important;margin-right:18px!important}
  .final-voices{padding-top:38px!important}

  .lesson-flow-v2{padding:54px 18px 62px!important}
  .lesson-flow-v2__lead{margin:15px auto 34px!important}
  .lesson-flow-v2__loop{width:100%;height:58px;margin:8px auto 0;border:0!important;border-radius:0!important;opacity:1!important}
  .lesson-flow-v2__loop::before{content:"↻"!important;left:50%!important;top:0!important;transform:translateX(-50%)!important;width:auto!important;height:auto!important;border:0!important;background:transparent!important;color:#9c171a!important;font:400 32px/1 serif!important}
  .lesson-flow-v2__loop::after{content:"次の50分へ｜20分演習に戻る"!important;left:50%!important;bottom:0!important;transform:translateX(-50%)!important;background:transparent!important;color:#9c171a!important;font-size:11px!important;letter-spacing:.06em!important}
  .lesson-flow-v2__transition{margin-top:46px!important}

  .final-overview{height:auto!important;min-height:0!important}
  .final-overview__inner{height:auto!important}
  .final-overview__support{display:block!important;margin-top:26px!important}
  .final-overview__support li{margin-bottom:13px!important}

  .lesson-personalization-v2{padding:48px 18px 54px!important;background:#fefcf8!important}
  .lesson-personalization-v2 .lpv2-stage{position:relative!important;height:auto!important}
  .lesson-personalization-v2 .lpv2-title{text-align:center!important;margin-bottom:14px!important}
  .lesson-personalization-v2 .lpv2-title__pre,.lesson-personalization-v2 .lpv2-title em{position:static!important;display:block!important}
  .lesson-personalization-v2 .lpv2-lead{margin-bottom:28px!important}
  .lesson-personalization-v2 .lpv2-factor{min-height:78px!important;margin-bottom:10px!important;padding:13px 15px!important;text-align:center!important;border-color:#c77d61!important;background:rgba(255,255,255,.15)!important}
  .lesson-personalization-v2 .lpv2-factor__icon{display:none!important}
  .lesson-personalization-v2 .lpv2-factor__copy{position:static!important;text-align:center!important}
  .lesson-personalization-v2 .lpv2-factor__copy strong{font-size:19px!important;color:#8f171c!important}
  .lesson-personalization-v2 .lpv2-factor__copy span{font-size:13px!important}
  .lesson-personalization-v2 .lpv2-optimize{min-height:58px!important;margin:18px 0 22px!important;padding:0!important;background:linear-gradient(90deg,#8e0910,#ad151c,#8e0910)!important;border-radius:32px!important}
  .lesson-personalization-v2 .lpv2-optimize__icon,.lesson-personalization-v2 .lpv2-optimize__copy span{display:none!important}
  .lesson-personalization-v2 .lpv2-optimize__copy{position:static!important;width:100%!important;height:58px!important;display:grid!important;place-items:center!important;text-align:center!important}
  .lesson-personalization-v2 .lpv2-optimize__copy strong{font-size:20px!important;color:#fff!important}
  .lesson-personalization-v2 .lpv2-optimize::before,.lesson-personalization-v2 .lpv2-optimize::after{display:none!important;content:none!important}
  .lesson-personalization-v2 .lpv2-card-scroll{display:flex!important;gap:12px!important;overflow-x:auto!important;padding:2px 0 10px!important;scroll-snap-type:x mandatory!important}
  .lesson-personalization-v2 .lpv2-card{position:relative!important;flex:0 0 88%!important;min-height:500px!important;margin:0!important;padding:0!important;border-color:#c77d61!important;background:rgba(255,255,255,.12)!important;scroll-snap-align:start!important}
  .lesson-personalization-v2 .lpv2-person{display:none!important}
  .lesson-personalization-v2 .lpv2-type{left:18px!important;top:18px!important;width:72px!important;height:72px!important;background:#981017!important;color:#fff!important;box-shadow:inset 0 0 0 3px #f7e2dc!important}
  .lesson-personalization-v2 .lpv2-card h3{left:106px!important;top:23px!important;width:calc(100% - 124px)!important;font-size:18.5px!important;line-height:1.55!important;color:#8f171c!important}
  .lesson-personalization-v2 .lpv2-status{left:20px!important;top:116px!important;width:calc(100% - 40px)!important;text-align:center!important;font-size:14px!important;line-height:1.8!important}
  .lesson-personalization-v2 .lpv2-status br{display:none!important}
  .lesson-personalization-v2 .lpv2-focus{left:14px!important;right:14px!important;top:214px!important;height:170px!important;border-color:#c77d61!important}
  .lesson-personalization-v2 .lpv2-focus__label{top:-16px!important;min-width:122px!important;height:31px!important;line-height:31px!important;background:#9a0e14!important}
  .lesson-personalization-v2 .lpv2-steps{inset:24px 2px 5px!important}
  .lesson-personalization-v2 .lpv2-step__icon{width:40px!important;height:40px!important;margin-bottom:0!important;border:0!important;background:transparent!important}
  .lesson-personalization-v2 .lpv2-step__icon img{max-width:36px!important;max-height:36px!important}
  .lesson-personalization-v2 .lpv2-step>span:last-child{font-size:13.5px!important;line-height:1.55!important}
  .lesson-personalization-v2 .lpv2-goal{left:14px!important;right:14px!important;bottom:16px!important;height:86px!important;background:#f7eee9!important}
  .lesson-personalization-v2 .lpv2-goal img{left:16px!important;width:43px!important;height:43px!important}
  .lesson-personalization-v2 .lpv2-goal p{left:70px!important;right:12px!important;font-size:14px!important;line-height:1.75!important;color:#8f171c!important}
  .lesson-personalization-v2 .lpv2-exam-note{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;margin:26px 0 0!important;padding:14px 16px!important;font-size:13.5px!important;line-height:1.8!important}
}

/* source-style-70 */
/* PC: instructor is absolutely positioned in the canonical layout, so the embedded
   answer rail also needs an explicit slot between instructor and testimonials. */
@media (min-width:781px){
  .final-instructor-voices{height:2304px!important;min-height:2304px!important;overflow:visible!important}
  .answer-gallery.answer-gallery--embedded{
    position:absolute!important;left:0!important;top:960px!important;width:1440px!important;z-index:2!important;
    box-sizing:border-box!important;
  }
  .final-voices{top:1400px!important}
}

/* source-style-71 */
@media (min-width:781px){
  /* Neutralize legacy centering transforms that survived from the earlier layout. */
  .lesson-personalization-v2 .lpv2-factor__copy{transform:none!important}
  .lesson-personalization-v2 .lpv2-optimize__copy{transform:none!important}
  /* Reference uses one small solid triangle between each focus step, not the legacy chevron. */
  .lesson-personalization-v2 .lpv2-step+.lpv2-step::before{
    content:""!important;position:absolute!important;left:calc(-5 * var(--u))!important;top:calc(25 * var(--u))!important;
    width:0!important;height:0!important;border:0!important;border-top:calc(5 * var(--u)) solid transparent!important;
    border-bottom:calc(5 * var(--u)) solid transparent!important;border-left:calc(7 * var(--u)) solid #1b1719!important;
    color:transparent!important;font-size:0!important;line-height:0!important;
  }
  /* Type C / step 2: match the reference hierarchy icon. */
  .lesson-personalization-v2 .lpv2-card--c .lpv2-step:nth-child(2) .lpv2-step__icon img{
    width:calc(52 * var(--u))!important;height:calc(52 * var(--u))!important;max-width:none!important;max-height:none!important;
  }
}

/* source-style-72 */
/* Last-in-document overrides: this file intentionally carries legacy body-level styles. */
.final-voices>p,.lesson-flow-v2__lead,.final-overview__lead{text-align:center!important;}
.final-voices blockquote::after,.final-voices blockquote:nth-child(2)::after,.final-voices blockquote:nth-child(3)::after,.final-voices blockquote:nth-child(4)::after{display:none!important;content:none!important;}
@media(min-width:781px){
  .lesson-personalization-v2 .lpv2-status,.lesson-personalization-v2 .lpv2-card--a .lpv2-status,.lesson-personalization-v2 .lpv2-card--c .lpv2-status{left:calc(36 * var(--u))!important;width:calc(388 * var(--u))!important;text-align:center!important;}
  .lesson-personalization-v2 .lpv2-card--b .lpv2-status{left:calc(45 * var(--u))!important;width:calc(388 * var(--u))!important;text-align:center!important;}
  .final-voices blockquote h3{position:static!important;display:block!important;width:auto!important;height:auto!important;min-height:84px!important;margin:0 0 15px!important;padding:0 0 15px!important;border:0!important;border-bottom:1px solid #e6ddd1!important;box-sizing:border-box!important;font-size:23px!important;line-height:1.48!important;}
  .lesson-flow-v2__card{display:flex!important;flex-direction:column!important;}
  .lesson-flow-v2__card h3{min-height:88px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 0 12px!important;box-sizing:border-box!important;}
  .lesson-flow-v2__card>p:not(.lesson-flow-v2__time){min-height:112px!important;margin-bottom:0!important;box-sizing:border-box!important;}
  .lesson-flow-v2__card ul{min-height:136px!important;margin-top:18px!important;box-sizing:border-box!important;}
  .lesson-flow-v2__transition{margin-top:58px!important;}

  /* Overview: preserve the known-good fixed internal geometry, but vertically center it in the section. */
  .final-overview{position:relative!important;height:590px!important;min-height:590px!important;margin:0!important;padding:0!important;overflow:hidden!important;}
  .final-overview__inner{position:relative!important;width:1440px!important;max-width:1440px!important;height:590px!important;min-height:590px!important;margin:0 auto!important;padding:0!important;overflow:visible!important;}
  .final-overview .final-section-heading{position:absolute!important;left:0!important;top:78px!important;width:1440px!important;height:56px!important;display:block!important;}
  .final-overview .final-section-heading h2{position:absolute!important;inset:0!important;margin:0!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:40px!important;font-weight:700!important;line-height:54px!important;}
  .final-overview .final-section-heading>span{display:none!important;}
  .final-overview__lead{position:absolute!important;left:0!important;top:137px!important;width:1440px!important;height:31px!important;margin:0!important;text-align:center!important;font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:400!important;line-height:30px!important;}
  .final-overview__grid{position:absolute!important;left:74px!important;top:181px!important;width:1292px!important;height:129px!important;margin:0!important;display:block!important;border:1px solid #d7c8b4!important;border-radius:7px!important;background:rgba(255,255,255,.56)!important;box-shadow:0 4px 9px rgba(45,33,22,.08)!important;}
  .final-overview__grid>div,.final-overview__grid>div:nth-child(1),.final-overview__grid>div:nth-child(2),.final-overview__grid>div:nth-child(3),.final-overview__grid>div:nth-child(4),.final-overview__grid>div:nth-child(5){position:absolute!important;top:0!important;height:128px!important;display:block!important;padding:0!important;border:0!important;}
  .final-overview__grid>div:nth-child(1){left:0!important;width:249px!important}.final-overview__grid>div:nth-child(2){left:249px!important;width:267px!important}.final-overview__grid>div:nth-child(3){left:516px!important;width:267px!important}.final-overview__grid>div:nth-child(4){left:783px!important;width:267px!important}.final-overview__grid>div:nth-child(5){left:1050px!important;width:242px!important}
  .final-overview__grid>div+div:before{position:absolute!important;left:0!important;top:21px!important;height:83px!important;bottom:auto!important;}
  .final-overview__grid img{position:absolute!important;left:24px!important;top:41px!important;width:52px!important;height:52px!important;object-fit:contain!important;}
  .final-overview__grid>div:nth-child(2) img,.final-overview__grid>div:nth-child(3) img,.final-overview__grid>div:nth-child(4) img{left:41px!important}.final-overview__grid>div:nth-child(5) img{left:50.65px!important;top:48px!important;width:52px!important;height:52px!important}
  .final-overview__grid p{position:absolute!important;top:21px!important;margin:0!important;width:120px!important;height:auto!important}.final-overview__grid>div:nth-child(1) p{left:88px!important}.final-overview__grid>div:nth-child(2) p,.final-overview__grid>div:nth-child(3) p,.final-overview__grid>div:nth-child(4) p{left:105px!important}.final-overview__grid>div:nth-child(5) p{left:117.65px!important}
  .final-overview__grid b{font-family:var(--f23-sans)!important;font-size:16px!important;font-weight:700!important;line-height:22px!important;margin:0 0 6px!important;color:#b11317!important}.final-overview__grid span{font-family:var(--f23-serif)!important;font-size:18px!important;font-weight:600!important;line-height:25px!important}.final-overview__grid small{font-family:var(--f23-sans)!important;font-size:10px!important;font-weight:400!important;line-height:15px!important;margin-top:2px!important}
  .final-overview__note{position:absolute!important;left:0!important;top:323px!important;width:1440px!important;height:23px!important;margin:0!important;text-align:center!important;font-family:var(--f23-sans)!important;font-size:16px!important;font-weight:400!important;line-height:20px!important;color:#77706a!important;}
  .final-overview__support{position:absolute!important;left:150px!important;right:150px!important;top:363px!important;width:auto!important;margin:0!important;display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
}
.lesson-flow-v2__loop>span{position:absolute!important;left:50%!important;bottom:-17px!important;transform:translateX(-50%)!important;z-index:2!important;padding:0 14px!important;background:#fff!important;color:#8c4a45!important;font:600 14px/1.55 var(--f23-sans,"Noto Sans JP",sans-serif)!important;letter-spacing:.035em!important;white-space:nowrap!important;}
.lesson-flow-v2__loop::after{content:none!important;display:none!important;}
@media(max-width:780px){
  .final-voices .final-voices__grid blockquote h3{position:static!important;display:block!important;width:auto!important;height:auto!important;min-height:72px!important;margin:0 0 14px!important;padding:0 0 14px!important;border:0!important;border-bottom:1px solid #e6ddd1!important;box-sizing:border-box!important;font-size:17px!important;line-height:1.55!important;font-weight:500!important;}
  .lesson-flow-v2__loop>span{width:min(340px,92vw)!important;bottom:-21px!important;padding:0 8px!important;text-align:center!important;font-size:11px!important;line-height:1.6!important;white-space:normal!important;}
  .lesson-flow-v2__transition{margin-top:58px!important;}
  .final-overview{height:auto!important;min-height:0!important;margin:0!important;padding:52px 16px!important;overflow:visible!important;}
  .final-overview__inner{height:auto!important;min-height:0!important;overflow:visible!important;}
  .final-overview__support{position:static!important;display:block!important;margin:26px 0 0!important;padding:0!important;}
}
body{padding-bottom:70px!important;}
.float-cta{transform:none!important;visibility:visible!important;opacity:1!important;}
@media(max-width:620px){.float-cta{gap:8px!important;padding:8px 10px!important}.float-cta__text{display:block!important;font-size:10.5px!important;line-height:1.35!important;letter-spacing:.02em!important;white-space:nowrap!important}.float-cta .btn{flex:0 0 auto!important;min-height:40px!important;padding:8px 11px!important;font-size:11.5px!important;white-space:nowrap!important}}

/* source-style-73 */
/* v17 final UI fixes — requested 2026-08-18. */

/* Persistent/footer CTAs: button labels must stay white in every state. */
.float-cta .btn,
.float-cta .btn:link,
.float-cta .btn:visited,
.float-cta .btn:hover,
.float-cta .btn:focus,
.final-cta__box a,
.final-cta__box a:link,
.final-cta__box a:visited,
.final-cta__box a:hover,
.final-cta__box a:focus{color:#fff!important;}

/* Lesson personalization: only the central optimize pill is filled. */
.lesson-personalization-v2 .lpv2-factor,
.lesson-personalization-v2 .lpv2-card,
.lesson-personalization-v2 .lpv2-status,
.lesson-personalization-v2 .lpv2-focus,
.lesson-personalization-v2 .lpv2-goal,
.lesson-personalization-v2 .lpv2-exam-note{background:#fff!important;}
.lesson-personalization-v2 .lpv2-optimize{
  background:linear-gradient(90deg,#8e0910,#ad151c,#8e0910)!important;
}
.lesson-personalization-v2 .lpv2-exam-note{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  color:#433a36!important;
  font-weight:500!important;
  letter-spacing:.025em!important;
}
.lesson-personalization-v2 .lpv2-exam-note::before{
  content:none;
  display:none;
}

/* Voices: one brand-red result badge and deliberate Japanese line breaks. */
.final-voices blockquote>span,
.final-voices blockquote.is-gold>span{
  background:#aa1519!important;
  color:#fff!important;
}

/* Overview: remove the pale-red tint from the summary table. */
.final-overview__grid,
.final-overview__grid>div{background:#fff!important;}

/* Trial: straight, equally-spaced cards. */
.final-trial__steps>li,
.final-trial__steps>li:nth-child(1),
.final-trial__steps>li:nth-child(2),
.final-trial__steps>li:nth-child(3){transform:none!important;}

@media (min-width:781px){
  /* Instructor → answer samples: restore enough visual breathing room. */
  .final-instructor-voices{height:2374px!important;min-height:2374px!important;}
  .answer-gallery.answer-gallery--embedded{top:1020px!important;}
  .final-voices{top:1470px!important;}

  /* Exam-period note sits directly under the type cards as a plain caption line. */
  .lesson-personalization-v2{height:calc(1125 * (100cqw / 1536))!important;}
  .lesson-personalization-v2 .lpv2-exam-note{
    left:calc(250 * var(--u))!important;
    right:calc(250 * var(--u))!important;
    top:calc(1014 * var(--u))!important;
    padding:0 calc(24 * var(--u))!important;
    font-size:calc(18 * var(--u))!important;
    line-height:calc(28 * var(--u))!important;
  }

  /* Trial cards share one baseline and one 64px gap. */
  .final-trial__steps>li:nth-child(1){left:126px!important;top:253px!important;}
  .final-trial__steps>li:nth-child(2){left:510px!important;top:253px!important;}
  .final-trial__steps>li:nth-child(3){left:894px!important;top:253px!important;}
  .final-trial__steps>li{width:320px!important;height:246px!important;}
}

@media (max-width:780px){
  /* Fix the Type A/B/C cards inheriting the legacy 665px minimum height. */
  .lesson-personalization-v2 .lpv2-card-scroll .lpv2-card,
  .lesson-personalization-v2 .lpv2-card{
    height:500px!important;
    min-height:500px!important;
  }
  .lesson-personalization-v2 .lpv2-goal{bottom:16px!important;}
  .lesson-personalization-v2 .lpv2-exam-note{
    margin:26px 0 0!important;
    padding:0 4px!important;
    font-size:15.5px!important;
    line-height:1.85!important;
    text-align:left!important;
  }

  /* Instructor CTA → answer gallery spacing. */
  .answer-gallery.answer-gallery--embedded{padding-top:62px!important;}

  /* Voice cards: all school labels use the same red and heading rhythm. */
  .final-voices blockquote>span,
  .final-voices blockquote.is-gold>span{background:#aa1519!important;}
  .final-voices .final-voices__grid blockquote h3{
    min-height:76px!important;
    line-height:1.58!important;
  }

  /* Trial cards remain parallel, equal-size and evenly spaced in the vertical stack. */
  .final-trial__steps{gap:12px!important;}
  .final-trial__steps>li{
    width:100%!important;
    min-height:132px!important;
    height:132px!important;
    transform:none!important;
  }
}

/* Responsive fix: instructor/voices block was pinned to a fixed 1440px canvas with
   no scaling for viewports between 781-1439px, causing horizontal overflow. Scale
   the whole block uniformly instead of touching its internal Figma coordinates. */
@media (min-width:781px){
  .final-instructor-voices{
    container-type:inline-size!important;
    width:100%!important;
    height:calc(2374px * (100cqw / 1440px))!important;
    min-height:0!important;
  }
  .final-instructor-voices > .final-instructor{
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .final-instructor-voices > .answer-gallery.answer-gallery--embedded{
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
    left:0!important;
    top:calc(1020px * (100cqw / 1440px))!important;
  }
  .final-instructor-voices > .final-voices{
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
    left:0!important;
    top:calc(1470px * (100cqw / 1440px))!important;
  }
}

/* Responsive fix continued: same fixed-1440px-canvas issue affects the hero,
   problem-statement, school-analysis, overview, trial and final-CTA sections.
   l-hero and l-empathy already have container-type:inline-size on the outer
   section, so only their inner wrapper needs the scale fix. The other four
   sections need container-type + a responsive (aspect-ratio-based) height
   added to the outer section as well, since it was still a fixed px height. */
@media (min-width:781px){
  .l-hero{
    width:100%!important;
    height:auto!important;
    --fv-u:1px!important;
  }
  .l-hero__inner{
    position:absolute!important;
    top:0!important; left:0!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .l-empathy{
    height:calc(1067px * (100cqw / 1440px))!important;
    min-height:0!important;
    --em-u:1.40625px!important;
  }
  .l-empathy > .l-empathy__sheet{
    position:absolute!important;
    top:0!important; left:0!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .final-school-analysis{
    container-type:inline-size!important;
    width:100%!important;
    height:calc(820px * (100cqw / 1440px))!important;
  }
  .final-school-analysis > .final-school-analysis__inner{
    position:absolute!important;
    top:calc(20px * (100cqw / 1440px))!important;
    left:calc(30px * (100cqw / 1440px))!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .final-overview{
    container-type:inline-size!important;
    width:100%!important;
    height:calc(590px * (100cqw / 1440px))!important;
    min-height:0!important;
  }
  .final-overview > .final-overview__inner{
    position:absolute!important;
    top:0!important; left:0!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .final-trial{
    container-type:inline-size!important;
    width:100%!important;
    height:calc(754px * (100cqw / 1440px))!important;
  }
  .final-trial > .final-trial__inner{
    position:absolute!important;
    top:0!important; left:0!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
  .final-cta{
    container-type:inline-size!important;
    width:100%!important;
    height:calc(292px * (100cqw / 1440px))!important;
  }
  .final-cta > .final-cta__inner{
    position:absolute!important;
    top:0!important; left:0!important;
    transform-origin:top left!important;
    transform:scale(calc(100cqw / 1440px))!important;
  }
}

/* lesson-flow-v2's content column was capped at a flat 1180px past the 1440px
   reference width, so it stopped growing while every neighboring section kept
   scaling with the viewport. This component uses normal document flow (not
   absolute Figma coordinates), so transform:scale would visually grow it
   without growing the flow height it reserves, causing overlap with the next
   section. zoom scales text/spacing AND correctly grows the flow height, so
   it doesn't have that mismatch. max(1, ...) keeps it a no-op at/under the
   1440px reference, leaving the already-correct narrower-width behavior untouched. */
@media (min-width:1441px){
  .lesson-flow-v2__inner{
    zoom:max(1, calc(100vw / 1440px))!important;
  }
}

/* Unrelated pre-existing gap (not part of the fixed-canvas issue above): the
   "得点力を伸ばす4つの秘訣" tabs only switch to a 2-column layout below 720px,
   but the 4-column layout above that was never tuned for widths under ~1100px,
   so tab labels overlap; and the closing-statement line keeps a fixed 29px
   font-size across the whole 781px+ range, wrapping awkwardly once the box
   narrows. Both only needed a fix for the 781-1100px gap. */
@media (min-width:781px) and (max-width:1100px){
  .ft-tabs{grid-template-columns:repeat(2,1fr)!important;height:auto!important}
  .ft-tab{min-height:68px!important;border-right:0!important;border-bottom:1px solid #c6ab93!important}
  .ft-tab__label{font-size:13px!important;white-space:normal!important}
  #features .ft-closing{font-size:19px!important;line-height:1.5!important}
}

/* 2026-08-18 ChatGPT responsive polish: feature panels, voices, lesson focus */
/* 01: keep Feature 01 copy and image in separate columns on narrower desktop widths. */
@media (min-width:1101px) and (max-width:1279px){
  #features .ft-panel--01 .ft-panel__main{grid-template-columns:minmax(0,54%) minmax(0,46%)!important;}
  #features .ft-panel--01 .ft-panel__copy{width:100%!important;min-width:0!important;}
  #features .ft-panel--01 .ft-panel__titleline,
  #features .ft-panel--01 .ft-panel__hero,
  #features .ft-panel--01 .ft-panel__rule,
  #features .ft-panel--01 .ft-panel__body,
  #features .ft-panel--01 .ft-panel__checks{width:calc(100% - 20px)!important;max-width:none!important;}
  #features .ft-panel--01 .ft-panel__visual{width:100%!important;min-width:0!important;}
}
@media (min-width:781px) and (max-width:1100px){
  #features .ft-panel--01 .ft-panel__main{grid-template-columns:minmax(0,60%) minmax(0,40%)!important;}
  #features .ft-panel--01 .ft-panel__copy{width:100%!important;min-width:0!important;}
  #features .ft-panel--01 .ft-panel__titleline,
  #features .ft-panel--01 .ft-panel__hero,
  #features .ft-panel--01 .ft-panel__rule,
  #features .ft-panel--01 .ft-panel__body,
  #features .ft-panel--01 .ft-panel__checks{width:calc(100% - 20px)!important;max-width:none!important;}
  #features .ft-panel--01 .ft-panel__visual{width:100%!important;min-width:0!important;}
  #features .ft-panel--01 .ft-panel__number{font-size:54px!important;}
  #features .ft-panel--01 .ft-panel__titleline i{height:48px!important;margin:0 20px 0 14px!important;}
  #features .ft-panel--01 .ft-panel__titleline h3{font-size:clamp(24px,2.7vw,30px)!important;}
  #features .ft-panel--01 .ft-panel__hero{font-size:clamp(20px,2.35vw,26px)!important;line-height:1.35!important;letter-spacing:.02em!important;}
  #features .ft-panel--01 .ft-panel__body{font-size:clamp(12.5px,1.35vw,14px)!important;line-height:1.82!important;}
  #features .ft-panel--01 .ft-panel__checks li{font-size:clamp(13px,1.5vw,16px)!important;line-height:1.5!important;}
}

/* 02: keep the four closing messages on one natural line throughout desktop narrowing. */
@media (min-width:781px) and (max-width:1399px){
  #features .ft-closing{font-size:clamp(18px,2.05vw,28px)!important;line-height:1.35!important;}
  #features .ft-closing span{white-space:nowrap!important;}
  #features .ft-closing strong{margin-left:clamp(7px,1vw,14px)!important;}
}

/* 03: use deliberate Japanese phrase breaks on desktop, natural wrapping on mobile. */
@media (min-width:781px){
  .final-voices blockquote h3{font-size:clamp(20px,1.7vw,23px)!important;}
  .final-voices blockquote h3 .voice-title-line{display:block;}
}
@media (max-width:780px){
  .final-voices blockquote h3 .voice-title-line{display:inline;}
}

/* 04: vertically center each icon/text row and keep dividers clear of the icons on SP. */
@media (max-width:780px){
  .lesson-personalization-v2 .lpv2-card-scroll .lpv2-card{min-height:530px!important;height:530px!important;}
  .lesson-personalization-v2 .lpv2-focus{top:214px!important;height:192px!important;}
  .lesson-personalization-v2 .lpv2-steps{inset:26px 10px 8px!important;display:flex!important;flex-direction:column!important;gap:0!important;}
  .lesson-personalization-v2 .lpv2-step{flex:1 1 0!important;display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;grid-template-rows:1fr!important;align-items:center!important;column-gap:12px!important;padding:6px 8px!important;text-align:left!important;}
  .lesson-personalization-v2 .lpv2-step+.lpv2-step{border-top:1px solid rgba(160,122,109,.28)!important;}
  .lesson-personalization-v2 .lpv2-step__icon{width:34px!important;height:34px!important;margin:0!important;justify-self:center!important;align-self:center!important;display:grid!important;place-items:center!important;border:0!important;background:transparent!important;}
  .lesson-personalization-v2 .lpv2-step__icon img{width:auto!important;height:auto!important;max-width:32px!important;max-height:32px!important;}
  .lesson-personalization-v2 .lpv2-step>span:last-child{margin:0!important;padding:0!important;align-self:center!important;font-size:13.5px!important;line-height:1.5!important;text-align:left!important;}
}


/* 2026-08-18 ChatGPT final alignment polish: voices / FAQ / school list */
@media (min-width:781px){
  /* Voices: lock the four evidence cards to identical internal vertical rhythm. */
  .final-voices__grid blockquote{
    display:grid!important;
    grid-template-rows:28px 92px minmax(0,1fr)!important;
    row-gap:12px!important;
    align-content:start!important;
  }
  .final-voices blockquote>span,
  .final-voices blockquote.is-gold>span{
    height:28px!important;
    min-height:28px!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    justify-self:start!important;
    box-sizing:border-box!important;
  }
  .final-voices blockquote h3{
    height:92px!important;
    min-height:92px!important;
    margin:0!important;
    padding:0 0 14px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    box-sizing:border-box!important;
    border-bottom:1px solid #e6ddd1!important;
  }
  .final-voices blockquote p{
    margin:0!important;
    align-self:start!important;
  }

  /* FAQ: scale with desktop viewport like the other major section headings. */
  .final-faq h2{
    font-size:clamp(29px,2.8vw,40px)!important;
    line-height:1.45!important;
  }

  /* School list: crop the baked-in horizontal backing strip and center icon/arrow. */
  .final-school-list .school-list-icon{
    top:50%!important;
    clip-path:inset(25% 0 5% 0)!important;
    transform:translateY(-50%) scale(1.35)!important;
    transform-origin:center 55%!important;
  }
  .final-school-list a b{
    top:50%!important;
    height:auto!important;
    line-height:1!important;
    transform:translateY(-50%)!important;
    display:grid!important;
    place-items:center!important;
  }
}

@media (max-width:780px){
  .final-faq h2{
    font-size:clamp(25px,7.2vw,30px)!important;
    line-height:1.48!important;
  }
  .final-school-list .school-list-icon{
    clip-path:inset(25% 0 5% 0)!important;
    transform:scale(1.35) translateY(-1px)!important;
    transform-origin:center 55%!important;
    align-self:center!important;
    justify-self:center!important;
  }
  .final-school-list a b{
    height:100%!important;
    min-height:0!important;
    line-height:1!important;
    display:grid!important;
    place-items:center!important;
    align-self:stretch!important;
    transform:none!important;
  }
}


/* 2026-08-18 ChatGPT alignment + FAQ + 5-answer gallery */
@media (max-width:780px){
  .lesson-personalization-v2 .lpv2-step__icon img{
    transform:none!important;
    margin:0!important;
    object-position:center center!important;
  }
  .lesson-personalization-v2 .lpv2-step{
    min-height:0!important;
    align-items:center!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child{
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    min-height:34px!important;
  }

  .lesson-personalization-v2 .lpv2-goal{
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:12px!important;
    padding:0 16px!important;
  }
  .lesson-personalization-v2 .lpv2-goal img{
    position:static!important;
    left:auto!important;
    top:auto!important;
    width:42px!important;
    height:42px!important;
    margin:0!important;
    transform:none!important;
    justify-self:center!important;
    align-self:center!important;
    object-position:center center!important;
  }
  .lesson-personalization-v2 .lpv2-goal p{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    align-self:center!important;
  }

  .final-faq summary{
    font-size:clamp(14.5px,4.15vw,16px)!important;
    line-height:1.6!important;
  }
  .final-faq details p{
    font-size:clamp(13px,3.65vw,14.5px)!important;
    line-height:1.85!important;
  }
  .final-faq details[open]{height:auto!important;}
}

@media (min-width:781px){
  .final-faq summary{
    font-size:clamp(16px,1.35vw,19px)!important;
    line-height:1.6!important;
  }
  .final-faq details p{
    font-size:clamp(14px,1.12vw,16px)!important;
    line-height:1.8!important;
  }
  .final-faq details[open]{height:auto!important;}
  .answer-gallery--embedded .answer-gallery__grid{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }
}

.answer-lightbox__nav:disabled,
.answer-lightbox__nav[aria-disabled="true"]{
  opacity:.22!important;
  cursor:default!important;
  pointer-events:none!important;
}


/* 2026-08-18 ChatGPT lightbox viewport + SP lesson-card readability */
@media (min-width:781px){
  .answer-lightbox{
    padding:18px 34px 58px!important;
  }
  .answer-lightbox figure{
    height:min(88vh,980px)!important;
    transform:translateY(-12px)!important;
  }
}

/* Type A-C cards: explicitly use the LP's serif face and raise SP legibility. */
@media (max-width:780px){
  .lesson-personalization-v2 .lpv2-card{
    font-family:var(--f23-serif,"Noto Serif JP","Noto Serif CJK JP","Yu Mincho",serif)!important;
  }
  .lesson-personalization-v2 .lpv2-card h3{
    font-family:inherit!important;
    font-size:20.5px!important;
    line-height:1.5!important;
  }
  .lesson-personalization-v2 .lpv2-status{
    font-family:inherit!important;
    font-size:15.5px!important;
    line-height:1.75!important;
  }
  .lesson-personalization-v2 .lpv2-focus__label{
    font-family:inherit!important;
    font-size:16px!important;
  }
  .lesson-personalization-v2 .lpv2-step>span:last-child{
    font-family:inherit!important;
    font-size:15.5px!important;
    line-height:1.55!important;
  }
  .lesson-personalization-v2 .lpv2-goal p{
    font-family:inherit!important;
    font-size:15.5px!important;
    line-height:1.65!important;
  }
}

/* 2026-08-18 ChatGPT polish: lesson phrase / compact school list / FAQ serif */
@media (max-width:780px){
  /* Type A first focus item: keep the intended two-line Japanese phrase intact. */
  .lesson-personalization-v2 .lpv2-card--a .lpv2-step:first-child>span:last-child{
    font-size:14.5px!important;
    line-height:1.48!important;
    letter-spacing:-.025em!important;
    white-space:nowrap!important;
  }
  .lesson-personalization-v2 .lpv2-card--a .lpv2-step:first-child>span:last-child br{
    display:block!important;
  }

  /* Compact school links: no decorative icon; left-aligned names scan better at mixed lengths. */
  .final-school-list a{
    grid-template-columns:minmax(0,1fr) 14px!important;
    column-gap:8px!important;
    padding:0 12px 0 14px!important;
    align-items:center!important;
  }
  .final-school-list a span{
    position:static!important;
    left:auto!important;
    top:auto!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    font-size:clamp(13.5px,3.75vw,15px)!important;
    line-height:1.45!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .final-school-list a b{
    position:static!important;
    right:auto!important;
    top:auto!important;
    width:14px!important;
    height:auto!important;
    justify-self:end!important;
    align-self:center!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
    transform:none!important;
  }
}

@media (min-width:781px){
  .final-school-list a{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 22px!important;
    column-gap:8px!important;
    align-items:center!important;
    padding:0 14px 0 20px!important;
    box-sizing:border-box!important;
  }
  .final-school-list a span{
    position:static!important;
    left:auto!important;
    top:auto!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    font-size:clamp(15.5px,1.05vw,17px)!important;
    line-height:1.35!important;
    text-align:left!important;
    white-space:nowrap!important;
  }
  .final-school-list a b{
    position:static!important;
    right:auto!important;
    top:auto!important;
    width:22px!important;
    height:auto!important;
    justify-self:end!important;
    align-self:center!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
    transform:none!important;
  }
}

/* FAQ: use the same serif family as the LP's editorial body copy. */
.final-faq summary,
.final-faq details p{
  font-family:var(--f23-serif,"Noto Serif JP","Noto Serif CJK JP","Yu Mincho",serif)!important;
}



/* 2026-08-19 SP symptom-list marker alignment: vertically center checkmarks with each line. */
@media (max-width:767px){
  .l-empathy__symptoms li::before{
    top:50%!important;
    transform:translate(-100%,-50%)!important;
    line-height:1!important;
  }
}

/* 2026-08-19 ChatGPT SP vertical rhythm system
   Purpose: give mobile sections clear semantic breathing room without changing PC geometry. */
@media (max-width:780px){
  :root{
    --sp-space-section:80px;
    --sp-space-section-major:88px;
    --sp-space-heading-body:28px;
    --sp-space-body-content:40px;
    --sp-space-block:44px;
    --sp-leading-body:1.82;
    --sp-leading-card:1.68;
  }

  /* 01 FV: leave a clearer pause before the problem section begins. */
  .lp-latest .l-hero__copy{
    padding-bottom:56px!important;
  }

  /* 02 Problem statement: restore hierarchy between distinct thought blocks. */
  .l-empathy__voices{margin-top:40px!important;}
  .l-empathy__reframe{margin-top:48px!important;}
  .l-empathy__symptoms{margin-top:40px!important;}
  .l-empathy__diagnosis{margin-top:40px!important;}
  .l-empathy__possibility{margin-top:44px!important;}
  .l-empathy__elio{margin-top:24px!important;}
  .l-empathy__handwritten{margin-top:56px!important;}
  .lp-latest .l-empathy__decor--bottom{margin-top:44px!important;}
  .l-empathy__diagnosis p,
  .l-empathy__elio p{line-height:var(--sp-leading-body)!important;}

  /* 03 Four strengths: section > heading group > panel content. */
  .l-feature-tabs.ft-precision{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .l-feature-tabs .ft-heading{margin-bottom:36px!important;}
  .l-feature-tabs .ft-heading__lead{margin-top:12px!important;}
  #features .ft-panel__titleline{margin-bottom:20px!important;}
  #features .ft-panel__body{
    margin-bottom:24px!important;
    line-height:var(--sp-leading-body)!important;
  }
  #features .ft-panel__visual{margin-top:32px!important;}
  #features .ft-closing{margin-top:24px!important;}

  /* 04 School analysis: separate intro, featured articles, list and CTA. */
  .final-school-analysis{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .final-school-analysis h2{margin:16px 0 var(--sp-space-heading-body)!important;}
  .final-school-analysis__lead{margin:0 0 var(--sp-space-body-content)!important;}
  .final-school-featured{
    margin-bottom:32px!important;
  }
  .final-school-list{margin-bottom:28px!important;}
  .final-school-analysis__cta{margin-top:24px!important;}
  .final-school-featured__card p{line-height:1.7!important;}

  /* 05 Lesson personalization: the explanatory header and the interactive cards read as separate blocks. */
  .lesson-personalization-v2{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .lesson-personalization-v2 .lpv2-title{margin-bottom:var(--sp-space-heading-body)!important;}
  .lesson-personalization-v2 .lpv2-lead{margin-bottom:var(--sp-space-body-content)!important;}
  .lesson-personalization-v2 .lpv2-optimize{margin-top:24px!important;margin-bottom:32px!important;}
  .lesson-personalization-v2 .lpv2-exam-note{margin-top:32px!important;}
  .lesson-personalization-v2 .lpv2-status{line-height:1.82!important;}
  .lesson-personalization-v2 .lpv2-step>span:last-child,
  .lesson-personalization-v2 .lpv2-goal p{line-height:var(--sp-leading-card)!important;}

  /* 06 Instructor + proof: preserve one chapter, but give each evidence block a clear pause. */
  .final-instructor__copy{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:72px!important;
  }
  .final-instructor__copy h2{margin-bottom:24px!important;}
  .final-instructor__statement p{line-height:1.82!important;}
  .final-instructor__profile-photo{margin-top:32px!important;}
  .final-instructor__facts{padding-top:24px!important;padding-bottom:24px!important;}
  .final-instructor__facts>div+div{margin-top:22px!important;padding-top:22px!important;}
  .final-instructor__facts p{line-height:1.78!important;}
  .final-instructor__cta{margin-top:32px!important;}
  .answer-gallery.answer-gallery--embedded{
    padding-top:72px!important;
    padding-bottom:48px!important;
  }
  .answer-gallery--embedded .answer-gallery__hint{margin-top:18px!important;}
  .final-voices{
    padding-top:72px!important;
    padding-bottom:var(--sp-space-section)!important;
  }
  .final-voices>h2{margin-bottom:16px!important;}
  .final-voices>p{margin-bottom:32px!important;}
  .final-voices blockquote p{line-height:1.85!important;}

  /* 06b Lesson flow: use a full section beat before/after the 50-minute cycle. */
  .lesson-flow-v2{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .lesson-flow-v2__lead{margin:20px auto var(--sp-space-body-content)!important;}
  .lesson-flow-v2__grid{gap:24px!important;}
  .lesson-flow-v2__card>p:not(.lesson-flow-v2__time){line-height:1.82!important;}
  .lesson-flow-v2__transition{margin-top:72px!important;line-height:1.82!important;}

  /* 07 Overview: undo the previous compression and restore a normal section cadence. */
  .final-overview{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section)!important;
  }
  .final-overview__lead{margin:20px 0 36px!important;}
  .final-overview__note{margin-top:16px!important;}
  .final-overview__support{margin-top:36px!important;}
  .final-overview__support li{margin-bottom:16px!important;line-height:1.82!important;}
  .final-overview__grid span{line-height:1.58!important;}

  /* 08 Trial: conversion section gets the strongest vertical separation. */
  .final-trial__inner{
    padding-top:var(--sp-space-section-major)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .final-trial h2{margin-bottom:var(--sp-space-heading-body)!important;}
  .final-trial__lead{margin-bottom:var(--sp-space-body-content)!important;}
  .final-trial__steps{
    gap:18px!important;
    margin-top:0!important;
    margin-bottom:36px!important;
  }
  .final-trial__steps>li>p{line-height:1.72!important;}
  .final-trial__band{margin-top:0!important;}
  .final-trial__inquiry{margin-top:14px!important;}

  /* 09 FAQ: questions are a new chapter, not an appendix jammed against the trial CTA. */
  .final-faq{
    padding-top:var(--sp-space-section)!important;
    padding-bottom:var(--sp-space-section-major)!important;
  }
  .final-faq h2{margin-bottom:36px!important;}
  .final-faq details p{line-height:1.88!important;}

  /* 10 Final CTA: compact conversion block, but not visually cramped. */
  .final-cta{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }
  .final-cta__copy .final-cta__course{margin-bottom:16px!important;}
  .final-cta__copy h2{margin-bottom:28px!important;}
  .final-cta__box{margin-top:0!important;}
}

/* 2026-08-19 ChatGPT SP vertical rhythm refinement — upper story tempo.
   Keep the generous lower-page system; tighten only FV through 4-strengths intro. */
@media (max-width:780px){
  /* FV: retain a pause, but avoid an oversized gap before the problem statement. */
  .lp-latest .l-hero__copy{
    padding-bottom:46px!important;
  }

  /* Problem statement: these are consecutive steps in one argument, not separate sections. */
  .l-empathy__voices{margin-top:30px!important;}
  .l-empathy__reframe{margin-top:36px!important;}
  .l-empathy__symptoms{margin-top:30px!important;}
  .l-empathy__diagnosis{margin-top:32px!important;}
  .l-empathy__possibility{margin-top:36px!important;}
  .l-empathy__elio{margin-top:22px!important;}
  .l-empathy__handwritten{margin-top:40px!important;}
  .lp-latest .l-empathy__decor--bottom{margin-top:32px!important;}

  /* 4 strengths: clear chapter change, but faster than the lower conversion sections. */
  .l-feature-tabs.ft-precision{
    padding-top:64px!important;
  }
  .l-feature-tabs .ft-heading{margin-bottom:32px!important;}
}

/* 2026-08-19 PC school analysis: remove faint white inner backing panel. */
@media (min-width:781px){
  .final-school-analysis__inner{
    background:transparent!important;
  }
}


/* 2026-08-19 SP header menu: restore open-state visibility. */
@media (max-width:780px){
  .header-menu-wrap.is-open .header-drawer{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .header-menu-wrap.is-open .header-menu-overlay{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}

/* 2026-08-19 SP header logo legibility: enlarge brand mark without changing CTA/menu geometry. */
@media (max-width:780px){
  .l-header__brand{
    width:124px!important;
    flex:0 0 124px!important;
  }
  .l-header__brand img{
    width:124px!important;
    max-width:124px!important;
    height:auto!important;
  }
}
@media (max-width:347px){
  .l-header__brand{
    width:104px!important;
    flex-basis:104px!important;
  }
  .l-header__brand img{
    width:104px!important;
    max-width:104px!important;
  }
}


/* 2026-08-19 SP vertical rhythm pass 2 — one-step-up spacing.
   Increase outer/section rhythm by roughly 10-15% while keeping text leading and tightly related elements stable. */

/* 2026-08-19 ChatGPT — heading weight + SP instructor/proof flow refinement. */
/* Common: all semantic page headings use a clear bold weight. */
body.lp-latest h1,
body.lp-latest h2,
body.lp-latest h3{
  font-weight:700!important;
}
body.lp-latest h1 *,
body.lp-latest h2 *,
body.lp-latest h3 *{
  font-weight:inherit!important;
}

/* The duplicated CTA is SP-only; desktop keeps the established instructor layout. */
.final-instructor__cta--sp-after-gallery{
  display:none!important;
}

@media (max-width:780px){
  /* Instructor promise: slightly larger and unmistakably bold on mobile. */
  #teacher-title{
    font-size:30px!important;
    line-height:1.45!important;
    font-weight:700!important;
    margin-bottom:24px!important;
  }
  #teacher-title *{font-weight:inherit!important;}

  /* Treat profile -> annotated answers -> CTA as one continuous proof block. */
  .final-instructor__copy{
    padding-bottom:24px!important;
  }
  .final-instructor__profile-photo{margin-top:28px!important;}
  .final-instructor__copy > .final-instructor__cta{
    display:none!important;
  }
  .answer-gallery.answer-gallery--embedded{
    padding-top:20px!important;
    padding-bottom:0!important;
  }
  .answer-gallery--embedded .answer-gallery__hint{
    margin-top:16px!important;
    margin-bottom:0!important;
  }
  .final-instructor__cta--sp-after-gallery{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    display:flex!important;
    width:calc(100% - 36px)!important;
    max-width:340px!important;
    height:56px!important;
    min-height:56px!important;
    margin:24px auto 0!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
    background:#ad171a!important;
    color:#fff!important;
    font-family:var(--f23-serif)!important;
    font-size:16px!important;
    font-weight:600!important;
    line-height:1.2!important;
    text-decoration:none!important;
    box-shadow:0 4px 11px rgba(94,24,24,.14)!important;
  }
  .final-instructor__cta--sp-after-gallery .final-instructor__cta-label{
    position:static!important;
    width:auto!important;
    height:auto!important;
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .final-voices{
    padding-top:64px!important;
  }
}


/* 2026-08-19 ChatGPT — SP overview -> trial continuity cue. */
@media (max-width:780px){
  /* Overview and free trial are one continuous conversion flow: tighten the boundary. */
  .final-overview{
    padding-bottom:36px!important;
  }
  .final-trial::before{
    content:"↓";
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:48px;
    margin:0;
    color:#ad171a;
    font-family:var(--f23-serif)!important;
    font-size:34px;
    font-weight:700;
    line-height:1;
  }
  .final-trial__inner{
    padding-top:36px!important;
  }
}

/* 2026-08-19 ChatGPT — heading bold specificity fix.
   The global h1/h2/h3 rule was losing to older selector-specific !important declarations. */
.lp-latest .l-empathy__reframe h2#empathy-title,
.lp-latest .final-school-analysis h2#school-analysis-title,
body.lp-latest .lesson-personalization-v2 h2#lesson-styles-title,
body.lp-latest .lesson-personalization-v2 .lpv2-card h3,
body.lp-latest .final-voices .final-voices__grid blockquote h3,
body.lp-latest .final-trial .final-trial__steps > li h3{
  font-weight:700!important;
}

/* 2026-08-20 intermediate header CTA fix: keep 781–980px CTA inside the 68px header without changing header height. */
@media (min-width:781px) and (max-width:980px){
  .l-button--header{
    width:auto!important;
    min-width:0!important;
    min-height:44px!important;
    flex:0 0 auto!important;
    padding:8px 14px!important;
    font-size:13px!important;
    line-height:1.3!important;
    letter-spacing:.02em!important;
    white-space:nowrap!important;
  }
  .l-button--header::after{margin-left:8px!important;}
}
