.apply-button{font-family:inherit;font-size:20px;font-weight:700;text-decoration:none}
.school-label{display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.page-top{width:54px;height:54px;padding:0;overflow:hidden;background:transparent;box-shadow:none}
.page-top img{display:block;width:100%;height:100%;object-fit:contain}
.hero-cta{transition:opacity .2s ease}
.hero-cta b{font-weight:400}
.hero-cta:hover{opacity:.72}
.hero-slides{position:absolute;inset:0}
.hero-slides .hero-photo{opacity:0;transition:opacity 1.5s ease-in-out}
.hero-slides .hero-photo.is-active{opacity:1}
.hero-cta span{display:flex;align-items:center;justify-content:center;line-height:1}
.hero-cta span svg{display:block;width:24px;height:14px;overflow:visible;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){.hero-cta,.hero-slides .hero-photo{transition:none}}
@media(min-width:761px){
  .hero-cta{width:490px}
  .classes h2{margin-bottom:34px}
  .classes .class-grid{gap:33px}
  .lessons{padding-bottom:30px}
  .lessons h2{margin-bottom:26px}
  .profile{padding-top:12px}
  .profile-card{grid-template-columns:322px 720px;gap:53px}
  .profile-top picture{display:block;width:322px;height:274px;margin-bottom:12px}
  .profile-top picture img{width:100%;height:100%;margin:0;border-radius:0;object-fit:contain}
  .profile-intro{width:324px;margin:0;font-size:15px;line-height:24px}
  .profile-body{width:720px;padding-top:8px}
  .profile-body p{margin:0;font-size:18px;line-height:32px}
  .flow{padding-top:20px;padding-bottom:27px}
  .flow h2{margin-bottom:17px}
  .flow-card{grid-template-rows:213px 52px;height:265px}
  .flow-card article{grid-template-columns:112px 1fr;gap:11px;align-items:start;min-height:213px;padding:36px 26px 0;border:0}
  .flow-card img{width:112px;height:112px;margin-top:16px;padding:16px;border-radius:50%;background:#fff;box-shadow:0 3px 6px rgb(0 0 0 / .161);object-fit:contain}
  .flow-card h3{margin:0 0 10px;font-size:24px;line-height:29px}
  .flow-card h3 time,.flow-card h3 span{display:block}
  .flow-card h3 time{margin-bottom:16px}
  .flow-card time{font-size:24px;line-height:29px}
  .flow-card p{font-size:16px;line-height:23px}
  .flow-note{display:flex;align-items:flex-start;justify-content:center;margin:0;padding:0;border:0;font-size:16px;line-height:24px}
  .voices{padding-top:35px;padding-bottom:61px}
  .voice-label{margin:0;color:#d66e15;font-size:20px;line-height:24px;font-weight:700}
  .voices h2{margin:9px 0;color:#539a38;font-size:38px;line-height:46px}
  .voice-lead{margin:0 0 28px;font-size:20px;line-height:24px}
  .voice-grid{grid-template-columns:582px 582px;gap:26px 36px}
  .voice-grid article{position:relative;width:582px;height:252px;padding:34px 35px 67px 95px;border-radius:14px}
  .voice-grid h3{display:block;margin:0 0 16px;color:#809865;font-size:24px;line-height:29px}
  .voice-grid .green h3{color:#809865}
  .voice-grid .orange h3{color:#d66e15}
  .voice-grid h3 img{position:absolute;top:34px;left:20px;width:55px;height:55px}
  .voice-grid article>p{height:auto;margin:0;font-size:18px;line-height:28px}
  .voice-grid footer{position:absolute;right:29px;bottom:0;left:20px;align-items:flex-start;height:68px;padding:10px 0 0;border-top:1px dashed #cfc8b9;color:#809865;font-size:18px;line-height:32px}
  .voice-grid .orange footer{color:#d66e15}
  .voice-grid footer img{width:32px;height:32px;transform:scale(2.1)}
  .voice-grid .orange footer img{width:35px;height:35px;transform:scale(1.85)}
  .latest-title{align-items:flex-start;gap:26px;margin-bottom:52px}
  .latest-title>span{flex:0 0 170px;width:170px;height:170px;font-size:37px}
  .latest-title h3{width:840px;margin-top:0;font-size:35px;line-height:55px}
  .latest-body{position:relative;display:block}
  .schedule-list{width:833px}
  .schedule-list article{grid-template-columns:140px 1fr;gap:23px;align-items:start;height:242px;padding:0}
  .schedule-list article+article{height:250px;padding-top:21px;border-top:1px dashed var(--line)}
  .schedule-list img{width:140px;height:140px;margin-top:5px;border-radius:12px;object-fit:cover}
  .schedule-list h4{margin:0 0 20px;font-size:26px;line-height:31px}
  .schedule-list p{font-size:20px;line-height:30px}
  .schedule-list .schedule-date{display:block;margin-bottom:11px;font-size:24px;line-height:29px}
  .schedule-list .schedule-date+br{display:none}
  .walker{position:absolute;top:19px;right:0;width:333px;height:469px;margin:0;object-fit:contain;object-position:bottom}
  .latest-note{width:833px;margin:0;padding:15px 0;border-top:1px dashed var(--line)}
  .latest-note p{font-size:20px;line-height:30px}
  .latest-note .keep-line{white-space:nowrap}
  .apply{position:relative;width:1200px;height:945px;margin-top:35px;padding:30px 56px 57px;border-radius:20px}
  .apply h2{margin:0 0 43px;font-size:28px;line-height:34px}
  .apply-steps p{margin:0 0 20px;font-size:20px;line-height:34px}
  .apply-steps small{font-size:20px;line-height:34px}
  .apply-button{position:absolute;left:50%;bottom:58px;width:617px;height:99px;margin:0;padding:0 105px 0 81px;justify-content:flex-start;border-radius:5px;font-size:34px;line-height:41px;transform:translateX(-50%);transition:opacity .2s ease;cursor:pointer}
  .apply-button:hover{opacity:.72}
  .apply-button span{position:absolute;top:15px;right:0;display:flex;align-items:center;justify-content:center;width:106px;height:68px;margin:0;padding:0;border-left:1px solid rgb(255 255 255 / .65);font-size:0}
  .apply-button span svg{display:block;width:16px;height:26px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
  .about{grid-template-columns:620px 514px;gap:60px;align-items:start;margin-top:63px;padding:0 0 79px 10px}
  .about h2{margin:0 0 19px;font-size:31px;line-height:37px}
  .about p{width:620px;margin:0;font-size:20px;line-height:34px}
  .about p:nth-of-type(1){margin-bottom:38px}
  .about p:nth-of-type(2){margin-bottom:34px}
  .about img{width:514px;height:286px;margin-top:4px;border:2px solid #fff;border-radius:0;box-shadow:0 3px 6px rgb(0 0 0 / .16);object-fit:cover}
  .site-footer{justify-content:flex-start;gap:0;min-height:186px;padding:27px 0 27px max(24px,calc((100% - 1200px)/2 + 4px));background:#f4f2f2;text-align:left}
  .site-footer img{width:332px;height:100px;margin:0 88px 0 0;object-fit:contain}
  .site-footer::before{content:none}
  .site-footer>div{position:relative;margin:0}
  .site-footer>div::before{content:"";position:absolute;left:-40px;top:50%;width:1px;height:132px;background:#9b9b9b;transform:translateY(-50%)}
  .site-footer b{font-size:31px;line-height:37px}
  .site-footer span,.site-footer a{font-size:20px;line-height:34px}
  .worry-heading{position:relative;z-index:3}
  .worry-cards{top:240px;z-index:3}
  .worry-bottom{z-index:1;pointer-events:none}
  .worry-copy{left:0;top:428px;bottom:auto;z-index:3;font-family:Inter,"Noto Sans JP",sans-serif;font-size:20px;font-weight:400;line-height:34px}
  .worry-copy span{display:block}
  .worry-copy .sp-only{display:none}
  .worry-person{right:-147px;bottom:0;width:629px;height:651px}
  .worry-pattern{position:absolute;inset:0;z-index:0;display:block;width:629px;height:651px}
  .worry-pattern img{position:static;width:100%;height:100%;object-fit:contain}
  .worry-person .worry-mother{left:210px;right:auto;top:141px;bottom:auto;z-index:1;width:389px;height:510px;object-fit:contain}
  .worry-cards article{position:relative;padding:0;overflow:visible}
  .worry-cards picture{position:absolute;top:-20px;left:50%;display:block;width:78px;height:78px;transform:translateX(-50%)}
  .worry-cards picture img{width:100%;height:100%;margin:0;object-fit:contain}
  .worry-cards p{position:absolute;top:77px;left:0;width:100%;font-size:22px;font-weight:400;line-height:1.5}
  .worry-cards article:nth-child(4) p{left:6px;width:calc(100% - 12px);font-size:20px;white-space:nowrap}
  .hero-pills span{border:1px solid #707070}
  .hero-pills span:nth-child(1){background:#ffe0f7}
  .hero-pills span:nth-child(2){background:#dbf8ff}
  .hero-pills span:nth-child(3){background:#d6ffce}
}
@media(max-width:760px){
  .profile-top picture{display:block;width:112px;height:153px}
  .profile-top picture img{width:100%;height:100%;margin:0;border-radius:14px;object-fit:contain}
  .profile-intro{width:176px;margin:0;font-size:11px;line-height:17px}
  .profile-intro .pc-break{display:none}
  .profile-body p{margin:0;font-size:12px;line-height:19px}
  .flow-card article{border:0}
  .flow-card img{padding:8px;border-radius:50%;background:#fff;box-shadow:0 3px 6px rgb(0 0 0 / .161);object-fit:contain}
  .flow-card h3 time,.flow-card h3 span{display:inline}
  .flow-card h3 span{margin-left:10px}
  .flow-note{border:0}
  .worry-copy{left:20px;top:450px;bottom:auto;width:350px;font-family:"Noto Sans JP",sans-serif;font-size:12.5px;font-weight:400;line-height:23px}
  .worry-copy span{display:block}
  .worry-copy .sp-only{display:inline}
  .worry-person{left:82px;right:auto;bottom:16px;width:330px;height:260px}
  .worry-pattern{position:absolute;inset:0;display:block;width:330px;height:260px}
  .worry-pattern img{position:static;width:100%;height:100%;object-fit:contain}
  .worry-person .worry-mother{left:84px;right:auto;top:-4px;bottom:auto;width:214px;height:280px;object-fit:contain}
  .worry-cards picture{display:block;width:58px;height:58px;margin:0 auto 7px}
  .worry-cards picture img{width:100%;height:100%;margin:0;object-fit:contain}
  .worry-cards p{font-size:13px;font-weight:500;line-height:20px}
  .hero-cta span svg{width:18px;height:11px;stroke-width:4}
  .hero-photo{object-position:66% center}
  .apply-steps p,.apply-steps small{font-size:10.7px;line-height:16.5px;font-weight:700}
  .apply-button{height:54px;font-size:16px}
  .lesson-list{display:grid;gap:11px;height:544px}
  .lesson-list article{height:174px;padding:12px 0}
  .schedule-list{margin-top:10px}
  .schedule-list article{height:160px}
  .latest-note{margin-top:17px}
  .about{display:flex;flex-direction:column;gap:14px;width:350px;height:420px;margin-top:17px;padding:22px 20px 20px;border-radius:20px;background:#fff}
  .about h2{margin:0;text-align:center;font-size:21px;line-height:30px}
  .about p{width:310px;margin:0 0 12px;font-size:11.5px;line-height:18px}
  .about img{width:310px;height:150px;margin:0;border-radius:14px;object-fit:cover}
  .site-footer{min-height:179px}
}

/* Mobile rebuild — current desktop content/assets are the single source of truth. */
@media(max-width:760px){
  html,body{overflow-x:hidden}
  body{min-width:320px}
  .content,.wide{width:min(100% - 40px,390px);margin-inline:auto}

  .hero{height:610px;background:#f7f4ed}
  .hero-slides{height:292px}
  .hero-slides .hero-photo{height:292px;object-position:70% center}
  .hero-stage{width:100%;height:610px}
  .hero-card{top:238px;left:50%;width:calc(100% - 40px);height:356px;min-height:0;padding:17px 14px 69px;border-radius:20px;transform:translateX(-50%)}
  .school-label{width:100%;height:36px;margin-bottom:10px;font-size:12px;font-weight:700}
  .hero-kicker{margin:0 0 4px;font-size:18.5px;line-height:25px;font-weight:700;letter-spacing:-.025em}
  .hero h1{width:100%;margin:0 0 7px;font-size:clamp(32px,10.5vw,41px);line-height:1.12;letter-spacing:-.03em;white-space:nowrap}
  .hero-copy{width:100%;margin:0 0 10px;font-size:12.5px;line-height:19px}
  .hero-pills{gap:7px;margin:0 0 14px}
  .hero-pills span{flex:1;width:auto;height:32px;border:1px solid #707070;font-size:10.5px}
  .hero-pills span:nth-child(1){background:#ffe0f7}
  .hero-pills span:nth-child(2){background:#dbf8ff}
  .hero-pills span:nth-child(3){background:#d6ffce}
  .hero-cta{right:50%;top:528px;bottom:auto;width:calc(100% - 76px);height:49px;padding-left:0;font-size:14.5px;transform:translateX(50%)}
  .hero-cta b{flex:1;text-align:center}
  .hero-cta span{width:48px;height:29px}

  .worries{height:auto;min-height:750px;padding:25px 0 0}
  .worries .wide{height:725px;padding:0}
  .worry-heading{padding:0}
  .worry-heading small{font-size:15px;line-height:22px}
  .worry-heading h2{width:100%;font-size:25px;line-height:38px}
  .worry-heading em{font-size:36px}
  .worry-cards{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-top:12px}
  .worry-cards article{width:auto;height:128px}
  .worry-cards p{font-size:15px;line-height:22px}
  .worry-copy{left:0;top:400px;z-index:5;width:100%;font-size:14px;line-height:23px}
  .worry-copy p{position:relative;z-index:5}
  .worry-person{left:auto;right:-15px;bottom:-8px;z-index:1;width:280px;height:220px}
  .worry-pattern{width:280px;height:220px}
  .worry-person .worry-mother{left:72px;top:1px;width:180px;height:235px}

  .classes{padding:30px 0 22px}
  .classes h2,.lessons h2{width:100%;margin:0 0 15px;text-align:left}
  .class-grid{display:grid;grid-template-columns:1fr;gap:16px}
  .class-card{width:100%;height:auto;padding:14px 15px 15px}
  .class-card+.class-card{margin-top:0}
  .class-card>img{width:100%;height:150px}
  .class-card>div{padding-top:9px}
  .class-card h3{display:flex;align-items:center;gap:9px;margin-bottom:3px;font-size:18px}
  .class-card h3 span{margin:0;white-space:nowrap}
  .class-card p{font-size:14px;line-height:22px}

  .lessons{padding:22px 0 25px}
  .lesson-list{display:grid;width:100%;height:auto;gap:0}
  .lesson-list article{grid-template-columns:118px minmax(0,1fr);gap:15px;height:auto;min-height:164px;padding:11px 0;border-bottom:1px solid #d9d3c6}
  .lesson-list article:last-child{border-bottom:0}
  .lesson-list img{width:118px;height:142px}
  .lesson-list article:nth-child(1) img{object-position:45% center}
  .lesson-list article:nth-child(2) img{object-position:50% center}
  .lesson-list article:nth-child(3) img{object-position:60% center}
  .lesson-list h3{font-size:15px;line-height:22px}
  .lesson-list p{font-size:14px;line-height:22px}

  .profile{padding:18px 0 24px}
  .profile-card{display:block;width:100%;height:auto;padding:20px;border-radius:18px}
  .profile-top{display:grid;grid-template-columns:106px minmax(0,1fr);gap:14px;height:auto;margin-bottom:14px;align-items:start}
  .profile-top picture{width:106px;height:145px}
  .profile-top picture img{width:106px;height:145px}
  .profile-top .profile-intro{width:auto;margin:0;font-size:14.5px;line-height:22.5px}
  .profile-body p{font-size:14.5px;line-height:22.5px}

  .flow{padding:22px 0 20px}
  .flow h2{margin-bottom:12px}
  .flow-card{display:block;width:100%;border-radius:17px}
  .flow-card article{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:94px;padding:9px 14px;border:0}
  .flow-card img{width:58px;height:58px}
  .flow-card h3{margin-bottom:2px;font-size:16.5px;line-height:23px}
  .flow-card time{font-size:15px;line-height:22px}
  .flow-card p{font-size:14.5px;line-height:21.5px}
  .flow-note{padding:10px 14px 13px;font-size:13.5px;line-height:21px}

  .voices{height:auto;padding:24px 0 32px}
  .voices .content{width:min(100% - 40px,390px)}
  .voice-label{margin:0;font-size:12px}
  .voices h2{margin:2px 0 4px;font-size:26px;line-height:36px;text-align:left}
  .voice-lead{margin:0 0 20px;font-size:14.5px;line-height:22.5px;text-align:left;white-space:normal}
  .voice-grid{display:grid;grid-template-columns:1fr;gap:14px}
  .voice-grid article{width:100%;height:auto;min-height:166px;margin:0;padding:16px 18px 12px}
  .voice-grid h3{display:grid;grid-template-columns:31px 1fr;gap:9px;min-height:31px;margin-bottom:9px;font-size:15.5px;line-height:22px;align-items:center}
  .voice-grid h3 img{position:static;width:31px;height:31px}
  .voice-grid article>p{height:auto;min-height:66px;font-size:14.5px;line-height:22px}
  .voice-grid footer{position:static;height:48px;margin-top:8px;padding-top:5px;border-top:1px dashed #cfc8b9;font-size:12.5px;align-items:center;overflow:visible}
  .voice-grid footer img,.voice-grid .orange footer img{flex:0 0 42px;width:42px;height:42px;transform:scale(1.18)}

  .latest{padding:27px 0 30px}
  .latest>.content{width:min(100% - 40px,390px)}
  .latest-bar{width:100%;height:42px;margin-bottom:17px}
  .latest-title{position:relative;display:grid;grid-template-columns:72px 1fr;gap:11px;width:100%;height:auto;min-height:0;margin-bottom:4px;align-items:start}
  .latest-title>span{position:static;width:72px;height:72px;margin-top:5px;font-size:17px}
  .latest-title h3{position:static;width:auto;font-size:16.5px;line-height:24px}
  .latest-body{position:relative;display:block}
  .schedule-list{width:100%;margin:0}
  .schedule-list article,.schedule-list article+article{grid-template-columns:94px minmax(0,1fr);gap:13px;align-items:start;width:100%;height:auto;min-height:0;padding:12px 0 14px}
  .schedule-list article+article{border-top:1px dashed var(--line)}
  .schedule-list img{align-self:start;width:94px;height:94px;margin:0;border-radius:12px}
  .schedule-list h4{margin-bottom:7px;font-size:15.5px;line-height:23px}
  .schedule-list p{font-size:14px;line-height:21px}
  .schedule-list .schedule-date{margin-bottom:4px;font-size:14px;line-height:21px}
  .walker{position:absolute;right:0;bottom:-126px;width:88px;height:126px;margin:0}
  .latest-note{width:100%;min-height:132px;margin:0;padding:17px 94px 13px 0;border-top:1px dashed var(--line)}
  .latest-note p{font-size:13px;line-height:20px}
  .latest-note .keep-line{white-space:normal}

  .apply{position:relative;width:100%;height:auto;margin-top:18px;padding:24px 20px 74px;border-radius:18px}
  .apply h2{margin-bottom:18px;font-size:21px}
  .apply-steps p{margin-bottom:9px;font-size:13.5px;line-height:21px}
  .apply-steps small{font-size:12px;line-height:19px}
  .apply-button{position:absolute;left:20px;right:auto;bottom:14px;display:flex;align-items:center;justify-content:center;width:calc(100% - 40px);height:50px;margin:0;padding:0 58px 0 20px;border:0;border-radius:6px;color:#fff;background:var(--red);font-size:15px;font-weight:700;line-height:1;text-align:center;transform:none}
  .apply-button span{position:absolute;top:9px;right:0;display:grid;place-items:center;width:52px;height:32px;margin:0;padding:0;border-left:1px solid rgb(255 255 255 / .65)}
  .apply-button span svg{display:block;width:11px;height:18px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
  .apply-button:hover{opacity:.72}

  .about{display:flex;width:100%;height:auto;gap:15px;margin-top:18px;padding:20px;border-radius:18px}
  .about h2{font-size:20px}
  .about p{width:100%;font-size:13.5px;line-height:21px}
  .about img{width:100%;height:150px}

  .site-footer{min-height:166px;padding:20px;text-align:center}
  .site-footer img{width:190px;height:58px;margin:0 auto 13px}
  .site-footer>div::before{content:none}
  .site-footer b{font-size:13px;line-height:20px}
  .site-footer span,.site-footer a{font-size:11.5px;line-height:18px}
  .page-top{right:12px;bottom:12px;width:48px;height:48px}
}
