:root{--green:#175d52;--green-dark:#0d4039;--mint:#e8f3ef;--yellow:#f6bd45;--yellow-soft:#fff4d5;--ink:#28251f;--red:#a84735;--paper:#fffdfa;--line:#dedbd3;--muted:#6c6a64;--shadow:0 18px 50px rgba(20,55,48,.12)}
:root{--green:#1976b9;--green-dark:#0f5f9b;--mint:#eaf6ff;--yellow:#ffd05a;--yellow-soft:#fff7d7;--ink:#293643;--red:#4f94cc;--paper:#fcfeff;--line:#dce7ef;--muted:#64717c;--shadow:0 18px 50px rgba(25,118,185,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;line-height:1.75}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.prototype-bar{display:flex;justify-content:center;gap:24px;padding:7px 16px;background:var(--green-dark);color:white;font-size:12px;letter-spacing:.06em}.site-header{height:82px;display:flex;align-items:center;gap:28px;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,253,250,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;margin-right:auto;white-space:nowrap}.brand b{display:block;font-size:20px;letter-spacing:.05em;line-height:1.3}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em}.brand-mark{width:43px;height:34px;border:3px solid var(--green);border-radius:6px;display:flex;align-items:center;justify-content:center;gap:3px;position:relative}.brand-mark:before{content:"";position:absolute;left:4px;right:4px;height:2px;background:var(--green)}.brand-mark i{width:7px;height:7px;border-radius:50%;background:var(--yellow);z-index:1}.view-nav{display:flex;gap:4px}.view-nav :is(button,a){border:0;background:transparent;padding:10px 12px;color:#555;border-bottom:2px solid transparent}.view-nav :is(button,a).active{color:var(--green);border-color:var(--yellow);font-weight:700}.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid transparent;font-weight:700;transition:.2s}.header-cta{padding:11px 19px;background:var(--yellow);color:#3d2c04}.button{padding:13px 24px}.button:hover,.header-cta:hover{transform:translateY(-2px)}.primary{background:var(--green);color:#fff}.secondary{border-color:var(--green);background:transparent;color:var(--green)}.light{background:white;color:var(--green-dark)}.ink{background:var(--red);color:white}.page-view{display:none}.page-view.active{display:block}.home-hero,.sub-hero{max-width:1280px;margin:auto;min-height:610px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:70px 50px}.home-hero{background:linear-gradient(110deg,#f4f8f4 0%,#fffaf0 100%);border-radius:0 0 50px 50px}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.18em;color:var(--green);margin:0 0 11px;text-transform:uppercase}.hero-copy h1,.sub-hero h1,.classroom-hero h1{font-size:clamp(42px,5vw,72px);line-height:1.25;letter-spacing:.03em;margin:0 0 22px}.lead{font-size:18px;max-width:580px;color:#56534d}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.trust-row{display:flex;gap:12px;padding:0;margin:26px 0 0;list-style:none}.trust-row li{font-size:13px;background:white;border:1px solid var(--line);border-radius:99px;padding:5px 12px}.hero-visual{display:grid;grid-template-columns:1fr 1fr;gap:14px;transform:rotate(-2deg)}.course-tile{min-height:390px;border-radius:26px;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow);overflow:hidden}.course-tile strong{font-size:22px}.course-tile small{font-size:13px}.abacus-tile{background:var(--green);color:white}.writing-tile{background:#f4dfc8;color:#4b281d;transform:translateY(34px)}.tile-label{margin-bottom:auto;font-size:11px;letter-spacing:.2em;opacity:.7}.abacus-object{height:156px;border:8px solid #6d3b21;border-radius:12px;display:flex;justify-content:space-around;padding:10px 14px;margin-bottom:38px;background:#ebcc91}.abacus-object span{height:100%;width:4px;background:#7c654c;position:relative}.abacus-object span:before,.abacus-object span:after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:29px;height:16px;border-radius:50%;background:#2d7668}.abacus-object span:before{top:22px}.abacus-object span:after{bottom:25px}.paper-sample{background:#fffdf8;border:1px solid #d8c8ba;min-height:210px;margin-bottom:22px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;text-align:center;color:#3f2f2b;font-family:serif;font-size:38px;background-image:linear-gradient(#eadfd4 1px,transparent 1px),linear-gradient(90deg,#eadfd4 1px,transparent 1px);background-size:33.33% 100%}.section{max-width:1180px;margin:0 auto;padding:95px 24px}.section-heading{max-width:710px;margin-bottom:42px}.section-heading h2,.proof-copy h2,.quote-section h2{font-size:clamp(30px,4vw,48px);line-height:1.35;margin:0 0 15px}.section-heading>p:last-child{color:var(--muted)}.course-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.course-card{position:relative;padding:42px;border-radius:24px;border:1px solid var(--line);overflow:hidden}.course-card:after{content:"";position:absolute;right:-45px;top:-45px;width:140px;height:140px;border-radius:50%;background:var(--mint)}.writing-card:after{background:#f4dfc8}.course-card .number{position:absolute;right:25px;top:12px;font-size:60px;font-weight:900;color:rgba(23,93,82,.11)}.course-card h3{font-size:28px;line-height:1.45;margin:0 0 15px}.course-card ul{padding-left:20px}.text-link{border:0;background:none;color:var(--green);padding:8px 0;font-weight:800}.proof-section{max-width:none;background:var(--green-dark);color:white;display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2))}.proof-copy .eyebrow{color:#9bd5c7}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);align-self:center}.proof-grid div{padding:30px 20px;border-left:1px solid rgba(255,255,255,.2)}.proof-grid strong,.proof-grid span{display:block}.proof-grid strong{font-size:30px;color:var(--yellow)}.proof-grid span{font-size:13px}.flow-section{text-align:center}.flow-section .section-heading{margin-left:auto;margin-right:auto}.flow{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0 0 38px}.flow li{display:flex;align-items:center;gap:16px;padding:22px;border-right:1px solid var(--line);text-align:left}.flow li:last-child{border:0}.flow b{font-size:34px;color:var(--yellow)}.flow span,.flow strong,.flow small{display:block}.flow small{color:var(--muted)}.sub-hero{min-height:620px}.abacus-sub{background:linear-gradient(120deg,#e9f4f0,#fdfdf9)}.app-showcase{padding:35px;position:relative}.device{max-width:420px;margin:auto;background:#fff;border:10px solid #183b36;border-radius:32px;padding:18px;box-shadow:var(--shadow)}.device-top{display:flex;justify-content:space-between;font-weight:800;color:var(--green)}.device-top i{width:10px;height:10px;border-radius:50%;background:#58aa6a}.flash-screen{height:270px;margin:17px 0;background:linear-gradient(145deg,var(--green),#2c8d7d);border-radius:18px;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center}.flash-screen strong{font-size:92px;line-height:1}.flash-screen small,.flash-screen span{opacity:.75}.mode-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.mode-pills span{font-size:11px;text-align:center;background:var(--mint);padding:8px 2px;border-radius:6px}.app-note{position:absolute;right:0;bottom:5px;background:var(--yellow);padding:14px 18px;border-radius:12px;box-shadow:var(--shadow)}.app-note b,.app-note span{display:block}.app-note span{font-size:12px}.split-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.feature-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.feature-pair article{padding:30px;background:#f2f7f5;border-radius:20px}.feature-pair article:nth-child(2){background:#fff4d5}.feature-pair span,.stage-grid>article>span{display:inline-block;font-weight:800;font-size:12px;letter-spacing:.15em;color:var(--green)}.feature-pair h3{font-size:23px;line-height:1.45}.milestone-section{padding-top:20px}.milestones{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}.milestones div{background:white;padding:28px}.milestones b,.milestones strong,.milestones span{display:block}.milestones b{color:var(--yellow);font-size:26px}.milestones strong{margin:10px 0}.milestones span{font-size:13px;color:var(--muted)}.course-cta{padding:55px 24px;background:var(--green);color:white;text-align:center}.course-cta p{font-size:26px;font-weight:800;margin:0 0 20px}.writing-sub{background:linear-gradient(120deg,#fff9f1,#f0e0ce)}.writing-sub .eyebrow{color:var(--red)}.writing-visual{position:relative;padding:30px}.practice-paper{min-height:370px;background:#fffdfa;padding:55px 40px;border:1px solid #ddcbbd;box-shadow:var(--shadow);transform:rotate(2deg);text-align:center;background-image:linear-gradient(#eee6dc 1px,transparent 1px),linear-gradient(90deg,#eee6dc 1px,transparent 1px);background-size:25% 25%}.practice-paper p{font-family:serif;font-size:52px;letter-spacing:.3em;margin:80px 0 45px}.practice-paper small{color:var(--muted)}.stamp{position:absolute;right:48px;color:var(--red);border:2px solid var(--red);padding:3px 7px;font-size:12px}.pencil{position:absolute;width:280px;height:17px;background:#d8a63b;right:-20px;bottom:50px;transform:rotate(-38deg);border-radius:4px}.pencil:after{content:"";position:absolute;right:-27px;border-left:28px solid #e0c49c;border-top:8px solid transparent;border-bottom:8px solid transparent}.stage-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stage-grid article{padding:40px;border-top:5px solid var(--red);background:#fffaf4;box-shadow:0 8px 30px rgba(74,40,20,.08)}.stage-grid article:nth-child(2){border-color:#36302a}.stage-grid h3{font-size:28px}.stage-grid li{margin-bottom:7px}.quote-section{display:grid;grid-template-columns:230px 1fr;gap:60px;align-items:center}.big-char{font-family:serif;font-size:140px;text-align:center;color:#302b27;border:1px solid #d9cec3;background:#fffaf3}.ink-bg{background:#3b302b}.classroom-hero{padding:80px 24px;text-align:center;background:#edf5f2}.classroom-hero h1{font-size:56px}.filters{display:inline-flex;gap:7px;margin-top:25px;background:white;border:1px solid var(--line);padding:6px;border-radius:999px}.filters button{border:0;background:transparent;padding:8px 20px;border-radius:999px}.filters button.active{background:var(--green);color:white}.classroom-list{display:grid;gap:26px}.class-card{display:grid;grid-template-columns:320px 1fr;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:white;box-shadow:0 9px 30px rgba(20,55,48,.06)}.class-map{min-height:330px;display:flex;align-items:center;justify-content:center;position:relative;background-color:#e7eee9;background-image:linear-gradient(30deg,transparent 49%,rgba(23,93,82,.16) 50%,transparent 51%),linear-gradient(-40deg,transparent 48%,rgba(23,93,82,.12) 49%,transparent 50%);background-size:75px 75px}.class-map:before{content:"";width:30px;height:30px;border-radius:50% 50% 50% 0;background:var(--red);transform:rotate(-45deg);position:absolute;top:40%;left:47%}.class-map span{background:white;position:absolute;top:55%;padding:5px 12px;border-radius:99px;box-shadow:0 5px 12px rgba(0,0,0,.1);font-size:13px}.class-content{padding:30px}.class-title{display:flex;align-items:start;justify-content:space-between;gap:20px}.class-title p{font-size:12px;color:var(--muted);margin:0}.class-title h2{font-size:26px;margin:0}.availability{background:#e5f3e8;color:#25743a;border-radius:99px;padding:4px 11px;font-size:12px;font-weight:800}.availability.few{background:#fff1d1;color:#8a5d00}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{background:#f4f2ed;border-radius:5px;padding:3px 8px;font-size:12px}.schedule-preview{margin-top:18px;padding:15px;background:#f6f8f7;border-radius:10px}.schedule-preview b,.schedule-preview span{display:block;font-size:13px}.card-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.card-actions a,.card-actions :is(button,a){padding:8px 15px;border-radius:8px}.card-actions a{border:1px solid var(--line)}.card-actions :is(button,a){border:0;background:var(--yellow);font-weight:800}footer{background:#162e2a;color:white;padding:55px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:1fr auto;gap:25px;align-items:center}.footer-brand{color:white}.footer-brand small{color:#c5d3d0}footer>div:nth-child(2){display:flex;gap:20px}footer>small{grid-column:1/-1;color:#9db2ad}.mobile-cta{display:none}
@media(max-width:920px){.site-header{height:auto;min-height:72px;padding:12px 20px}.view-nav{position:fixed;left:0;right:0;bottom:58px;background:white;border-top:1px solid var(--line);justify-content:space-around;z-index:30}.view-nav :is(button,a){font-size:12px;padding:10px 5px}.header-cta{display:none}.home-hero,.sub-hero{grid-template-columns:1fr;padding:55px 24px;gap:42px}.hero-visual{max-width:620px}.course-tile{min-height:320px}.proof-section,.split-section{grid-template-columns:1fr}.proof-grid{max-width:600px}.milestones{grid-template-columns:1fr 1fr}.class-card{grid-template-columns:240px 1fr}.mobile-cta{position:fixed;z-index:31;left:0;right:0;bottom:0;height:58px;display:grid;grid-template-columns:1fr 1fr;background:white;box-shadow:0 -4px 18px rgba(0,0,0,.13)}.mobile-cta button,.mobile-cta a{border:0;display:flex;align-items:center;justify-content:center;font-weight:800}.mobile-cta button,.mobile-cta a.grn-link{background:var(--green);color:white}.mobile-cta a{background:var(--yellow)}body{padding-bottom:105px}}
@media(max-width:650px){.prototype-bar span:last-child{display:none}.brand small{display:none}.brand b{font-size:18px}.hero-copy h1,.sub-hero h1{font-size:42px}.lead{font-size:16px}.hero-visual,.course-cards,.feature-pair,.stage-grid{grid-template-columns:1fr}.writing-tile{transform:none}.course-tile{min-height:310px}.course-card{padding:30px 24px}.proof-grid{grid-template-columns:1fr}.proof-grid div{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:15px}.flow{grid-template-columns:1fr}.flow li{border-right:0;border-bottom:1px solid var(--line)}.milestones{grid-template-columns:1fr}.quote-section{grid-template-columns:1fr}.big-char{font-size:100px}.classroom-hero h1{font-size:38px}.class-card{grid-template-columns:1fr}.class-map{min-height:190px}.class-title{display:block}.availability{display:inline-block;margin-top:8px}.card-actions{justify-content:stretch;flex-direction:column;text-align:center}.filters button{padding:7px 13px;font-size:13px}footer{grid-template-columns:1fr;padding-bottom:130px}footer>div:nth-child(2){flex-direction:column;gap:7px}}
.tile-photo{width:100%;height:205px;object-fit:cover;border-radius:14px;margin-bottom:24px}.abacus-tile .tile-photo{filter:saturate(.75)}.writing-photo{width:100%;height:410px;object-fit:cover;border-radius:4px;box-shadow:var(--shadow);transform:rotate(2deg)}.writing-caption{position:absolute;left:0;bottom:4px;background:var(--red);color:white;padding:14px 20px;border-radius:10px;box-shadow:var(--shadow)}.writing-caption b,.writing-caption span{display:block}.writing-caption span{font-size:12px;opacity:.85}
.nihon-shuji-intro{max-width:none;padding:90px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;background:#3b302b;color:white}.nihon-shuji-intro .eyebrow{color:#e6aa91}.nihon-shuji-intro h2{font-size:clamp(30px,4vw,48px);line-height:1.4;margin:0 0 20px}.nihon-shuji-intro>div>p{color:#e3ddd9}.nihon-shuji-intro a{display:inline-block;margin-top:10px;color:#f0b395;font-weight:800}.shuji-facts{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.25);border-radius:18px;overflow:hidden}.shuji-facts div{padding:32px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.2)}.shuji-facts div:last-child{border-right:0}.shuji-facts strong,.shuji-facts span{display:block}.shuji-facts strong{font-size:25px;color:#f0b395}.shuji-facts span{font-size:12px}.writing-benefits{padding-bottom:30px}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.benefit-grid article{padding:32px;border:1px solid #e4d8cd;background:#fffaf4}.benefit-grid article>b{display:flex;width:52px;height:52px;align-items:center;justify-content:center;border:1px solid var(--red);color:var(--red);font-family:serif;font-size:26px}.benefit-grid h3{font-size:22px;margin:17px 0 8px}.benefit-grid p{color:var(--muted);margin:0}.two-stage{padding-top:65px}@media(max-width:920px){.nihon-shuji-intro{grid-template-columns:1fr;gap:40px}}@media(max-width:650px){.shuji-facts,.benefit-grid{grid-template-columns:1fr}.shuji-facts div{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.shuji-facts div:last-child{border-bottom:0}}
.proof-section{background:#dff6ef;color:var(--ink)}.proof-section .eyebrow{color:var(--green)}.proof-grid div{border-color:rgba(24,128,111,.2)}.proof-grid strong{color:var(--green)}.abacus-tile{background:#25a18e}.nihon-shuji-intro{background:#fff0e8;color:var(--ink)}.nihon-shuji-intro .eyebrow,.nihon-shuji-intro a{color:var(--red)}.nihon-shuji-intro>div>p{color:#635d58}.shuji-facts{background:#fff;border-color:#efd8cd}.shuji-facts div{border-color:#efd8cd}.shuji-facts strong{color:var(--red)}.course-cta{background:#25a18e}.course-cta.ink-bg{background:#f18b70}.footer-brand small{color:#e5f7f2}footer{background:#147466}.detail-hero{padding:38px max(24px,calc((100vw - 1132px)/2)) 75px;background:linear-gradient(120deg,#e5f8f2,#fff6db)}.detail-breadcrumb :is(button,a){border:0;background:transparent;color:var(--green);padding:0;margin-bottom:35px}.detail-hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center}.detail-hero h1{font-size:clamp(44px,6vw,72px);margin:0 0 15px}.detail-tags{margin-top:22px}.detail-glance{background:white;padding:30px;border-radius:20px;box-shadow:var(--shadow)}.detail-glance>p{font-weight:800;color:var(--green);margin-top:0}.detail-glance ul{list-style:none;padding:0;margin:0}.detail-glance li{padding:15px 0;border-top:1px solid var(--line)}.detail-glance b,.detail-glance span{display:block}.detail-glance span{font-size:13px;color:var(--muted)}.detail-section{padding-bottom:45px}.detail-course-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.detail-course{padding:34px;border:1px solid var(--line);border-radius:22px;background:white}.abacus-detail-card{border-top:7px solid var(--green)}.writing-detail-card{border-top:7px solid var(--red)}.detail-course-head{display:flex;justify-content:space-between;gap:15px}.detail-course-head p{margin:0;color:var(--muted)}.detail-course-head h3{font-size:25px;margin:2px 0 15px}.detail-course-head>span{height:max-content;background:var(--yellow-soft);padding:4px 9px;border-radius:99px;font-size:12px}.schedule-table{margin:8px 0 24px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.schedule-table>div{display:grid;grid-template-columns:1fr 58px 58px;text-align:center;border-top:1px solid var(--line)}.schedule-table>div:first-child{border:0}.schedule-table span,.schedule-table b{padding:9px}.schedule-table span:first-child{text-align:left}.schedule-table .head{background:#f6f6f2;font-size:13px;font-weight:800}.schedule-table .open{color:#279151}.schedule-table .few{color:#d88905}.schedule-table .full{color:#bd5945}.parent-note{font-size:13px;color:var(--red);background:#fff2ed;padding:8px 11px}.teacher-section{max-width:none;padding:80px max(24px,calc((100vw - 1132px)/2));background:#f3fbf8}.teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.teacher-grid article{display:flex;gap:22px;background:white;padding:28px;border-radius:18px}.teacher-grid article>span{flex:0 0 60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--mint);color:var(--green);font-size:25px;font-family:serif}.teacher-grid article:nth-child(2)>span{background:#fff0eb;color:var(--red)}.teacher-grid p{margin:0;color:var(--muted)}.teacher-grid h3{margin:1px 0 7px}.access-section{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.access-map{height:370px;background:#e8f2ee;background-image:linear-gradient(35deg,transparent 49%,rgba(24,128,111,.14) 50%,transparent 51%),linear-gradient(-35deg,transparent 49%,rgba(24,128,111,.12) 50%,transparent 51%);background-size:70px 70px;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center}.access-map span{font-size:12px;letter-spacing:.2em;color:var(--green)}.access-map b{font-size:22px}.access-map small{background:white;padding:4px 10px;border-radius:99px}.access-section h2{font-size:38px;line-height:1.4}.access-section a{color:var(--green);font-weight:800}.voice-section{padding-top:30px}.voice-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.voice-grid blockquote{margin:0;padding:30px;background:#fff8df;border-radius:18px;font-size:17px}.voice-grid cite{display:block;margin-top:14px;font-size:12px;color:var(--muted);font-style:normal}.detail-trial{text-align:center;padding:75px 24px;background:#e5f8f2}.detail-trial h2{font-size:clamp(29px,4vw,44px);margin:0 0 10px}.detail-trial>div{display:flex;justify-content:center;gap:12px;margin-top:25px}.outline-button{border:1px solid var(--green)!important;background:white!important;color:var(--green)!important}@media(max-width:920px){.detail-hero-grid,.access-section{grid-template-columns:1fr}.detail-course-grid,.teacher-grid{grid-template-columns:1fr}}@media(max-width:650px){.detail-hero{padding-top:24px}.detail-course-grid,.teacher-grid,.voice-grid{grid-template-columns:1fr}.detail-trial>div{flex-direction:column}.access-map{height:240px}}
.proof-section{background:#e5f4ff}.proof-grid div{border-color:#bedcf1}.abacus-tile{background:#2585c6}.course-cta{background:#2585c6}.course-cta.ink-bg{background:#4a8fca}.footer-brand small{color:#eaf6ff}footer{background:#125f94}.detail-hero{background:linear-gradient(120deg,#e7f5ff,#fff7dc)}.teacher-section,.detail-trial{background:#edf7ff}.access-map{background-color:#e8f4fb;background-image:linear-gradient(35deg,transparent 49%,rgba(25,118,185,.14) 50%,transparent 51%),linear-gradient(-35deg,transparent 49%,rgba(25,118,185,.12) 50%,transparent 51%)}.nihon-shuji-intro{background:#eef7ff}.philosophy-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:45px 75px}.philosophy-title h2,.home-learning h2,.explain-lead h2{font-size:clamp(30px,4vw,46px);line-height:1.4;margin:0}.philosophy-copy p:first-child{font-size:19px}.galileo-values{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.galileo-values div{display:flex;gap:13px;padding:20px;background:#f0f8ff;border-radius:14px}.galileo-values b{font-size:30px;color:var(--green)}.galileo-values span,.galileo-values strong{display:block}.galileo-values span{font-size:12px;color:var(--muted)}.galileo-values strong{font-size:15px;color:var(--ink)}.lesson-process{padding:85px max(24px,calc((100vw - 1132px)/2));background:#edf7ff}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.process-grid article{background:white;padding:30px;border-radius:18px;box-shadow:0 8px 25px rgba(25,118,185,.07)}.process-grid b{color:var(--green);font-size:26px}.process-grid h3{font-size:21px}.process-grid p{color:var(--muted)}.home-learning{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center;background:#fff9e7;border-radius:28px;margin-bottom:65px}.learning-points{display:grid;gap:10px}.learning-points div{display:flex;justify-content:space-between;background:white;border:1px solid #f1e2b6;border-radius:12px;padding:16px}.learning-points span{color:var(--muted)}.mini-faq{padding-top:35px}.faq-grid{display:grid;gap:12px}.faq-grid details{border:1px solid var(--line);border-radius:14px;background:white;padding:0 22px}.faq-grid summary{padding:18px 0;font-weight:800;cursor:pointer}.faq-grid p{padding:0 0 18px;margin:0;color:var(--muted)}.kakikata-explain{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;background:#edf7ff;max-width:none;padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2))}.explain-copy p:first-child{font-size:18px}.parent-friendly{padding-top:30px}.parent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.parent-grid article{padding:28px;background:#f1f8fd;border-radius:16px}.parent-grid h3{margin-top:0}.parent-grid p{color:var(--muted);margin-bottom:0}.writing-faq{padding-top:20px}@media(max-width:920px){.philosophy-section,.home-learning,.kakikata-explain{grid-template-columns:1fr}.galileo-values{grid-template-columns:1fr 1fr}.process-grid,.parent-grid{grid-template-columns:1fr}.home-learning{border-radius:0;margin-bottom:20px}}@media(max-width:650px){.galileo-values{grid-template-columns:1fr}.lesson-process{padding-top:65px;padding-bottom:65px}}
.writing-tile{background:#dcefff;color:#24465f}.writing-card:after{background:#dcefff}.writing-sub{background:linear-gradient(120deg,#edf8ff,#ddecf8)}.writing-sub .eyebrow{color:var(--green)}.writing-caption{background:var(--green)}.benefit-grid article{border-color:#cfe3f1;background:#f7fbff}.stage-grid article{background:#f7fbff;border-color:var(--green)}.stage-grid article:nth-child(2){border-color:#75add5}.big-char{color:#24465f;border-color:#cbdfea;background:#f6fbff}.home-learning{background:#eef7ff}.learning-points div{border-color:#d4e7f4}

/* そろばんは青、かきかたは山吹色で明確に区別 */
:root{--red:#e3a21a}
.abacus-tile{background:#1676bc}.abacus-card{border-top:6px solid #1676bc}.abacus-card .eyebrow,.abacus-card .text-link{color:#1267a7}
.writing-tile{background:#fff5d4;color:#956000}.writing-card{border-top:6px solid #e3a21a}.writing-card:after{background:#fff5d4}.writing-card .eyebrow,.writing-card .text-link{color:#956000}
.writing-sub{background:linear-gradient(120deg,#fffdf5,#fff5d4)}.writing-sub .eyebrow{color:#956000}.writing-caption{background:#e3a21a;color:#392901}.nihon-shuji-intro{background:#fff5d4}.nihon-shuji-intro .eyebrow,.nihon-shuji-intro a{color:#956000}.shuji-facts{border-color:#ead39c}.shuji-facts div{border-color:#ead39c}.shuji-facts strong{color:#956000}.benefit-grid article{border-color:#ead39c;background:#fffdf5}.stage-grid article{background:#fffdf5;border-color:#e3a21a}.stage-grid article:nth-child(2){border-color:#956000}.big-char{color:#956000;border-color:#ead39c;background:#fffdf5}.kakikata-explain{background:#fff5d4}.parent-grid article{background:#fff8e3}.course-cta.ink-bg{background:#956000}

/* スマホは教室名と写真を先に見せる */
.mobile-course-heading{display:none}
/* 写真を囲わず、色はコース名と細いラインに絞る */
#home .hero-visual{transform:none}
#home .course-tile{background:transparent;box-shadow:none;border-radius:0;padding:0;min-height:0;color:var(--ink);justify-content:flex-start}
#home .writing-tile{transform:none}
#home .tile-label{margin:0 0 12px;opacity:1}
#home .abacus-tile .tile-label,#home .abacus-tile strong{color:#1267a7}
#home .writing-tile .tile-label,#home .writing-tile strong{color:#956000}
#home .tile-photo{border-radius:4px;margin-bottom:18px}
#home .course-tile strong{border-top:3px solid #1976b9;padding-top:12px}
#home .writing-tile strong{border-color:#e3a21a}
.abacus-sub,.writing-sub{background:#fff;gap:40px}
.course-hero-photo,.writing-sub .writing-photo{display:block;width:100%;height:410px;object-fit:cover;border-radius:4px;box-shadow:none;transform:none}
.writing-sub .writing-visual{padding:0}
.writing-sub .writing-caption{position:static;background:transparent;color:#956000;box-shadow:none;border-radius:0;border-top:3px solid #e3a21a;margin-top:16px;padding:12px 0 0}
.course-app-section{padding-top:45px;padding-bottom:45px}
.course-app-section .app-showcase{max-width:520px;margin:auto}
@media(max-width:650px){
  #home .home-hero{padding:22px 18px 30px;min-height:0;gap:16px}
  #home .hero-copy{display:contents}
  #home .mobile-course-heading{display:block;order:0;margin:0;color:var(--green-dark);font-size:18px;font-weight:800;letter-spacing:0}
  #home .hero-copy>.eyebrow{order:3;margin:4px 0 0;font-size:12px;letter-spacing:0}
  #home .hero-copy h1{order:1;font-size:30px;line-height:1.3;margin:0}
  #home .hero-visual{order:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;transform:none;width:100%;max-width:none}
  #home .course-tile{min-height:0;padding:0;border-radius:0;justify-content:flex-start}
  #home .writing-tile{transform:none}
  #home .tile-label{margin:0 0 8px;font-size:12px;letter-spacing:.08em;opacity:1}
  #home .tile-photo{height:145px;margin-bottom:10px;border-radius:3px}
  #home .course-tile strong{font-size:clamp(14px,4vw,20px);line-height:1.5}
  #home .course-tile small{font-size:12px;line-height:1.6;margin-top:5px}
  #home .hero-copy>.lead{order:4;margin:0;font-size:16px}
  #home .hero-actions{order:5;margin:4px 0 0;gap:8px}
  #home .hero-actions .button{font-size:14px;padding:11px 16px}
  #home .trust-row{order:6;margin:0;gap:6px;flex-wrap:wrap}
  #abacus .sub-hero,#kakikata .sub-hero{padding:22px 18px 30px;min-height:0;gap:16px}
  .course-hero-copy{display:contents}
  .course-hero-copy>.eyebrow{order:0;font-size:16px;letter-spacing:0;margin:0}
  .course-hero-photo,.writing-sub .writing-visual{order:1}
  .course-hero-photo,.writing-sub .writing-photo{height:auto;aspect-ratio:4/3;border-radius:3px}
  .course-hero-copy>h1{order:2;font-size:32px;line-height:1.3;margin:0}
  .course-hero-copy>.lead{order:3;font-size:16px;margin:0}
  .course-hero-copy>.hero-actions{order:4;margin:4px 0 0}
  .writing-sub .writing-caption{font-size:14px;margin-top:10px;padding-top:8px}
}

/* 少人数制の強みを、濃紺と黄色で力強く表現 */
.proof-section{max-width:none;padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2));background:#0a2347;color:#fff;position:relative;overflow:hidden}
.proof-section:after{content:"";position:absolute;width:250px;height:250px;border:58px solid rgba(255,208,90,.12);border-radius:50%;right:-70px;top:-85px}
.proof-section .proof-copy{position:relative;z-index:1}.proof-section .eyebrow{color:#8fcaf3}.proof-section .proof-copy h2{font-size:clamp(38px,5vw,62px);line-height:1.22;color:#ffd05a;letter-spacing:.02em;text-shadow:0 3px 0 rgba(0,0,0,.12)}.proof-section .proof-copy>p:last-child{color:#e5edf8;font-size:17px}.proof-section .proof-grid{position:relative;z-index:1}.proof-section .proof-grid div{border-color:rgba(255,255,255,.2)}.proof-section .proof-grid strong{color:#ffd05a}

/* 実際の教室写真 */
.classroom-photo-section{padding-bottom:55px}.classroom-photo-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr 1fr;gap:18px}.classroom-photo-grid figure{margin:0;position:relative;min-height:250px;border-radius:22px;overflow:hidden;background:#dce7ef;box-shadow:var(--shadow)}.classroom-photo-grid .photo-wide{grid-row:1/3;min-height:520px}.classroom-photo-grid img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.classroom-photo-grid figcaption{position:absolute;left:16px;right:16px;bottom:16px;padding:12px 15px;border-radius:12px;background:rgba(8,28,53,.88);color:#fff;font-size:14px}.classroom-photo-grid figcaption b,.classroom-photo-grid figcaption span{display:block}.classroom-photo-grid figcaption span{font-size:12px;opacity:.85}

/* 運営会社・オフィシャルパートナー */
.activity-strip .instagram-teaser{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:12px;margin-bottom:0}.activity-strip .instagram-section .instagram-teaser h2{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:20px;line-height:1.3;color:#0a2347}.instagram-logo{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;border-radius:10px;background:linear-gradient(35deg,#f7a933,#e34170 48%,#8051bb)}.instagram-logo img{filter:brightness(0) invert(1)}.instagram-teaser-copy{min-width:0}.instagram-teaser-copy p{font-size:14px;line-height:1.5;margin:0 0 6px}.instagram-handle{font-size:14px;font-weight:700;color:#a62258;overflow-wrap:anywhere}.instagram-teaser-photos{display:grid;grid-template-columns:1fr}.instagram-teaser-photos img{display:block;width:100%;height:74px;object-fit:cover;border-radius:3px}.instagram-teaser:hover .instagram-handle{text-decoration:underline}.instagram-teaser:focus-visible{outline:2px solid var(--green);outline-offset:4px}@media(max-width:920px){.activity-strip .instagram-teaser{grid-template-columns:minmax(0,1fr) 144px;max-width:500px}.instagram-teaser-photos img{height:96px}}@media(max-width:650px){.activity-strip .instagram-teaser{grid-template-columns:minmax(0,1fr) 128px}.activity-strip .instagram-section .instagram-teaser h2{display:flex;margin:0 0 6px;font-size:20px}.instagram-logo{width:32px;height:32px}.instagram-logo img{width:22px;height:22px}.instagram-teaser-photos img{height:86px}}
.activity-strip{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,1fr);border-bottom:1px solid var(--line)}.activity-strip .section{margin:0;min-width:0;padding:24px}.activity-strip .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.activity-strip .section-heading h2{font-size:20px;line-height:1.4;margin:0}.activity-strip .text-link{font-size:14px;white-space:nowrap;padding:0}.activity-strip .blog-grid{gap:16px}.activity-strip .blog-grid a{display:grid;grid-template-columns:66px minmax(0,1fr);gap:4px 10px;align-content:start}.activity-strip .blog-grid img{width:66px;height:86px;grid-row:1/3}.activity-strip .blog-meta{margin:0;font-size:12px;gap:4px;flex-wrap:wrap;justify-content:flex-start}.activity-strip .blog-grid h3{font-size:14px;line-height:1.5;margin:0}.activity-strip .instagram-section{border-top:0;border-left:1px solid var(--line)}.activity-strip .instagram-section .section-heading{display:block}.activity-strip .instagram-section .eyebrow{font-size:12px;margin-bottom:4px}.activity-strip .instagram-section h2{font-size:16px;margin-bottom:6px}.instagram-posts summary{font-size:14px;cursor:pointer;color:var(--green);font-weight:700}.activity-strip:has(.instagram-posts[open]){grid-template-columns:1fr}.activity-strip .instagram-posts[open]{margin-top:12px}.activity-strip .instagram-posts[open] .instagram-grid{margin-top:16px}@media(max-width:920px){.activity-strip{grid-template-columns:1fr}.activity-strip .instagram-section{border-left:0;border-top:1px solid var(--line);padding-top:12px;padding-bottom:12px}.activity-strip .instagram-section .section-heading{margin-bottom:6px}.activity-strip .instagram-section .eyebrow{display:none}.activity-strip .instagram-section h2{display:inline;margin-right:12px}}@media(max-width:650px){.activity-strip .section{padding-left:18px;padding-right:18px}.activity-strip .blog-grid{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x proximity;padding-bottom:6px}.activity-strip .blog-grid article{flex:0 0 245px;scroll-snap-align:start}.activity-strip .blog-grid img{height:80px}.activity-strip .blog-grid h3{font-size:14px}.activity-strip .instagram-section{padding-top:12px;padding-bottom:12px}}
.blog-section{padding-top:45px;padding-bottom:45px}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.blog-grid article{min-width:0}.blog-grid img{display:block;width:100%;height:250px;object-fit:contain;background:#f2f6f9;border-radius:3px}.blog-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:16px;font-size:14px}.blog-meta span{color:#1267a7;font-weight:800}.blog-meta .writing-tag{color:#956000}.blog-meta time{color:var(--muted)}.blog-grid h3{font-size:20px;line-height:1.5;margin:10px 0 0}.social-actions{text-align:center;margin-top:32px}.instagram-section{padding-top:45px;padding-bottom:55px;border-top:1px solid var(--line)}.instagram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:960px;margin:auto}.instagram-grid article{min-width:0}.instagram-grid iframe{display:block;width:100%;height:650px;border:1px solid var(--line);background:white}.instagram-grid .text-link{display:block;font-size:14px;margin-top:10px}.embed-note{font-size:14px;color:var(--muted);text-align:center;margin:24px 0 0}@media(max-width:650px){.blog-grid,.instagram-grid{grid-template-columns:1fr}.blog-grid{gap:28px}.blog-grid img{height:280px}.blog-grid h3{font-size:20px}.instagram-grid iframe{height:620px}.blog-section,.instagram-section{padding-top:40px;padding-bottom:40px}}
.company-section{max-width:none;padding:90px max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;background:#f0f7fc}.company-section h2{font-size:clamp(30px,4vw,48px);line-height:1.35;margin:0 0 18px}.company-name{font-weight:800;color:#0a2347}.company-points{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.company-points span{padding:7px 12px;border:1px solid #bdd5e6;border-radius:999px;background:#fff;color:#174d73;font-size:13px;font-weight:700}.partner-card{display:grid;grid-template-columns:42% 58%;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 18px 45px rgba(10,35,71,.13);border-top:6px solid #df2e79}.partner-card img{width:100%;height:100%;min-height:300px;object-fit:cover}.partner-card>div{padding:28px}.partner-card small,.partner-card strong{display:block}.partner-card small{color:#df2e79;font-weight:800}.partner-card strong{margin:7px 0 13px;color:#0a2347;font-size:24px;line-height:1.35}.partner-card p{margin:0;color:var(--muted);font-size:14px}

@media(max-width:920px){.classroom-photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.classroom-photo-grid .photo-wide{grid-column:1/-1;grid-row:auto;min-height:400px}.company-section{grid-template-columns:1fr;gap:40px}}
@media(max-width:650px){.proof-section .proof-copy h2{font-size:38px}.classroom-photo-grid{grid-template-columns:1fr}.classroom-photo-grid .photo-wide{grid-column:auto;min-height:300px}.classroom-photo-grid figure{min-height:260px}.partner-card{grid-template-columns:1fr}.partner-card img{min-height:220px}.company-section{padding-top:65px;padding-bottom:65px}}

/* 固定ヘッダーでコース見出しを隠さず、装飾を文字の背面に置く */
#courses{scroll-margin-top:100px}.course-card:after{z-index:0}.course-card>*{position:relative;z-index:1}

/* コース詳細 */
.course-depth-section{padding-top:35px}.depth-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.depth-grid article{padding:28px;border:1px solid var(--line);border-top:4px solid #2585c6;border-radius:14px;background:#fff}.depth-grid h3{margin:0 0 8px;font-size:21px}.depth-grid p{margin:0;color:var(--muted)}.course-fee-section{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;background:#eef7ff;border-radius:24px;margin-bottom:60px}.course-fee-section h2{font-size:clamp(28px,4vw,42px);line-height:1.4;margin:0 0 14px}.fee-box{display:grid;grid-template-columns:1fr auto;gap:8px 18px;align-items:baseline;padding:25px;background:#fff;border:1px solid #c9dfee;border-radius:16px}.fee-box span{font-weight:700}.fee-box strong{font-size:21px;color:#1267a7;text-align:right}.fee-box small{grid-column:1/-1;color:var(--muted);text-align:right}.writing-fee{background:#fff7e9}.writing-fee .fee-box{border-color:#eed8b8}.writing-fee .fee-box strong{color:#956000}.transition-section{padding-top:35px}.transition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.transition-grid div{padding:23px;background:#fff7e9;border-left:4px solid #d39b30}.transition-grid strong,.transition-grid span{display:block}.transition-grid span{margin-top:7px;color:var(--muted);font-size:14px}@media(max-width:920px){.course-fee-section{grid-template-columns:1fr;gap:28px;border-radius:0}.depth-grid{grid-template-columns:1fr}.transition-grid{grid-template-columns:1fr}}@media(max-width:650px){.course-depth-section{padding-top:20px}.course-fee-section{margin-bottom:25px}.fee-box{grid-template-columns:1fr}.fee-box strong,.fee-box small{text-align:left}.transition-section{padding-top:20px}}
.learning-flow{grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);align-items:center}.learning-flow article:last-child{border-color:#36302a}.stage-arrow{text-align:center;color:#956000}.stage-arrow b,.stage-arrow span{display:block}.stage-arrow b{font-size:14px;line-height:1.5}.stage-arrow span{font-size:42px;line-height:1}@media(max-width:920px){.learning-flow{grid-template-columns:1fr}.stage-arrow{padding:4px 0}.stage-arrow span{transform:rotate(90deg)}}

/* 野田阪神の実地図と教室一覧 */
.classroom-list-heading{margin:0 0 22px}.classroom-list-heading .eyebrow{margin-bottom:4px}.classroom-list-heading h2{font-size:clamp(28px,4vw,40px);line-height:1.35;margin:0 0 8px}.classroom-list-heading>p:last-child{margin:0;color:var(--muted)}
.map-noda-real{background:#dce7ef;overflow:hidden;isolation:isolate;perspective:760px}.map-noda-real:before{display:none}.map-noda-real iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.82) contrast(1.04) brightness(1.03);transform:rotateX(22deg) scale(1.2);transform-origin:50% 58%;pointer-events:none}.map-noda-real .map-school-label{z-index:2;top:auto;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;white-space:nowrap;font-weight:800;color:#0a2347;box-shadow:0 8px 22px rgba(10,35,71,.24);pointer-events:none}.map-school-label i{display:block;width:12px;height:12px;border-radius:50%;background:#e3a21a;box-shadow:0 0 0 5px rgba(255,255,255,.9)}
@media(max-width:650px){.classroom-list{padding-top:55px}.classroom-list-heading{margin-bottom:18px}.map-noda-real{min-height:225px}.map-noda-real .map-school-label{bottom:14px}}

/* 全教室マップ */
.classroom-overview{margin-bottom:34px}.classroom-overview-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.classroom-overview-heading .eyebrow{margin-bottom:2px}.classroom-overview-heading h2{font-size:clamp(30px,4vw,44px);line-height:1.3;margin:0}.map-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;font-weight:700}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend span:before{content:"";width:10px;height:10px;border-radius:50%;background:#0a2347}.map-legend .abacus:before{background:#1976b9}.map-legend .writing:before{background:#d39b30}#all-classrooms-map{height:470px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#eef4f7;box-shadow:0 12px 34px rgba(10,35,71,.1)}.map-fallback{padding:30px;color:var(--muted)}.leaflet-popup-content-wrapper{border-radius:12px}.leaflet-popup-content b,.leaflet-popup-content span,.leaflet-popup-content a,.leaflet-popup-content button{display:block}.leaflet-popup-content b{font-size:15px;color:#0a2347}.leaflet-popup-content span{margin:3px 0 8px;color:var(--muted)}.leaflet-popup-content a,.leaflet-popup-content button{border:0;background:transparent;padding:0;color:var(--green);font-weight:800}.map-school-index{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.map-school-index button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 13px;color:var(--ink);font-size:13px}.map-school-index button:hover,.map-school-index button:focus-visible{border-color:var(--green);color:var(--green);outline:none}.classroom-list-heading{padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:650px){.classroom-overview-heading{display:block}.map-legend{margin-top:10px}#all-classrooms-map{height:360px;border-radius:12px}.map-school-index{gap:6px}.map-school-index button{padding:6px 10px;font-size:12px}}

/* スマホでは教室カードを一画面で確認 */
@media(max-width:650px){.class-card .class-map,.class-card .map-noda-real{min-height:150px}.map-noda-real .map-school-label{bottom:10px;padding:3px 10px}.class-content{padding:16px 18px}.class-title{display:flex;align-items:start}.class-title h2{font-size:23px;line-height:1.35}.availability{margin-top:0;font-size:11px}.class-content>p{margin:9px 0;font-size:14px;line-height:1.55}.tags{gap:5px}.tags span{padding:2px 7px;font-size:11px}.class-card .schedule-preview{display:none}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.card-actions a,.card-actions :is(button,a){padding:8px 6px;font-size:12px;line-height:1.35}}

/* 体験予約はコースカラーで区別 */
.button.ink{background:var(--yellow);color:#3d2c04}
.card-actions a.booking-link{border:0;background:var(--yellow);font-weight:800}

@media(max-width:650px){.schedule-table>div{grid-template-columns:1.2fr 1fr 1fr}}

.activity-strip .blog-grid{grid-template-columns:1fr}

/* モック内の予約画面・ブログ記事 */
.internal-page{max-width:1040px;margin:0 auto;padding:48px 24px 100px}.internal-back{border:0;background:transparent;padding:0;color:#1267a7;font-size:15px;font-weight:800;cursor:pointer}.booking-heading{margin:30px 0 24px}.booking-heading h1,.blog-article-header h1{font-size:clamp(34px,5vw,54px);line-height:1.3;margin:4px 0 12px}.booking-heading>p:last-child{color:var(--muted)}.booking-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;list-style:none;padding:0;margin:0 0 28px}.booking-steps li{display:flex;align-items:center;gap:9px;padding:13px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted)}.booking-steps li:first-child{border-left:1px solid var(--line);border-radius:12px 0 0 12px}.booking-steps li:last-child{border-right:1px solid var(--line);border-radius:0 12px 12px 0}.booking-steps li.active{background:#eaf5fd;color:#1267a7;border-color:#9bc7e6}.booking-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e8edf1;font-size:13px}.booking-steps .active b{background:#1976b9;color:#fff}.booking-panel{padding:30px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(10,35,71,.08)}.booking-course-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-course-tabs button{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.booking-course-tabs button:first-child.active{border-color:#1976b9;background:#eef7ff;color:#1267a7}.booking-course-tabs button:last-child.active{border-color:#e3a21a;background:#fff8e3;color:#956000}.booking-course-tabs span,.booking-course-tabs small{display:block}.booking-course-tabs span{font-size:18px;font-weight:800}.booking-course-tabs small{font-size:13px}.booking-selection{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 14px;align-items:center;margin:20px 0 32px;padding:14px 18px;background:#f5f8fa;border-radius:10px}.booking-selection span{font-size:13px;color:var(--muted)}.booking-calendar-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.booking-calendar-head h2{font-size:28px;margin:0}.booking-calendar-head>p{margin:0;color:var(--muted);font-size:14px}.booking-calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden}.booking-date-card{border-right:1px solid var(--line)}.booking-date-card:last-child{border-right:0}.booking-date-card h3{display:flex;justify-content:center;align-items:baseline;margin:0;padding:14px 5px;background:#f4f7f9;font-size:14px}.booking-date-card h3 b{font-size:19px}.booking-time-list{padding:9px}.booking-time-list button{display:flex;width:100%;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;margin:6px 0;color:var(--ink)}.booking-time-list button.open b{color:#368d58}.booking-time-list button.few b{color:#d7850b}.booking-time-list button.full{color:#9aa2aa;background:#f7f7f7}.booking-note{margin:18px 0 0;color:var(--muted);font-size:13px}body[data-active-view="booking"] .mobile-cta,body[data-active-view="blog-article"] .mobile-cta{display:none}
.blog-article-header{max-width:820px;margin:36px auto 34px}.blog-article-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px}.blog-article-meta span{padding:4px 8px;border-radius:999px;background:#eaf5fd;color:#1267a7;font-weight:700}.blog-article-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:55px;align-items:start}.blog-article-body{font-size:17px;line-height:2}.blog-article-body p{margin:0 0 26px;white-space:pre-line}.blog-article-photo{margin:0;position:sticky;top:120px}.blog-article-photo img{display:block;width:100%;max-height:520px;object-fit:contain;background:#f2f6f9;border-radius:4px}.blog-article-photo figcaption{margin-top:10px;color:var(--muted);font-size:13px}.blog-sync-status{padding-top:28px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.blog-adjacent{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:38px 0 58px}.blog-adjacent a{display:flex;flex-direction:column;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:#fff}.blog-adjacent a:last-child{text-align:right}.blog-adjacent small{color:#1267a7;font-weight:800}.blog-adjacent strong{margin:8px 0 5px;line-height:1.55}.blog-adjacent span{color:var(--muted);font-size:12px}.related-blog{padding-top:34px;border-top:1px solid var(--line)}.related-blog-heading h2{font-size:30px;margin:0 0 22px}.related-blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.related-blog-grid a{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.related-blog-grid img{width:120px;height:120px;object-fit:cover;border-radius:8px}.related-blog-grid div{display:flex;flex-direction:column;align-items:flex-start}.related-blog-grid time,.related-blog-grid span{color:var(--muted);font-size:12px}.related-blog-grid strong{margin:7px 0;line-height:1.55}.related-blog-grid span{margin-top:auto;color:#1267a7;font-weight:700}.footer-brand{gap:0}
@media(max-width:760px){.internal-page{padding:28px 18px 80px}.booking-heading{margin-top:22px}.booking-steps span{font-size:12px}.booking-steps li{justify-content:center;padding:10px 5px}.booking-panel{padding:18px 14px;border-radius:14px}.booking-course-tabs{grid-template-columns:1fr}.booking-selection{grid-template-columns:auto 1fr}.booking-calendar-head{display:block}.booking-calendar-head>p{margin-top:6px}.booking-calendar{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:10px}.booking-date-card{flex:0 0 150px;scroll-snap-align:start}.blog-article-header{margin-top:28px}.blog-article-layout{grid-template-columns:1fr;gap:28px}.blog-article-photo{grid-row:1;position:static}.blog-article-photo img{max-height:440px}.blog-article-body{font-size:16px;line-height:1.9}.blog-adjacent,.related-blog-grid{grid-template-columns:1fr}.blog-adjacent a:last-child{text-align:left}.related-blog-grid a{grid-template-columns:92px 1fr}.related-blog-grid img{width:92px;height:92px}}
.footer-actions{flex-direction:column;align-items:flex-end;max-width:650px}.footer-contact-note{width:100%;margin-top:16px;font-size:13px;line-height:1.65;color:#eaf6ff}.footer-contact-note p{margin:0}.footer-contact-note b,.footer-contact-note span,.footer-contact-note small{display:block}.footer-member-note{margin-top:14px}.footer-member-note p{margin:3px 0}.footer-link-row{display:flex;align-items:center;justify-content:flex-end;gap:20px}.footer-phone{display:inline-flex;padding:7px 14px;border:1px solid rgba(255,255,255,.55);border-radius:999px;font-size:18px;font-weight:800}.phone-dialog{width:min(620px,calc(100% - 32px));padding:0;border:0;border-radius:20px;box-shadow:0 24px 70px rgba(10,35,71,.28);color:var(--ink)}.phone-dialog::backdrop{background:rgba(8,25,46,.62);backdrop-filter:blur(3px)}.phone-dialog-content{padding:30px}.phone-dialog h2{margin:0 0 18px;font-size:25px}.phone-dialog p{margin:0}.phone-dialog p span,.phone-dialog small{display:block}.phone-dialog-member{margin-top:18px;padding:18px;background:#f1f7fb;border-radius:12px}.phone-dialog-member p{margin:4px 0}.phone-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.phone-dialog-actions form{margin:0}.phone-dialog-actions button,.phone-dialog-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:130px;padding:11px 18px;border-radius:999px;font-weight:800}.phone-dialog-actions button{border:1px solid var(--line);background:white;color:var(--ink)}.phone-dialog-actions a{background:#1976b9;color:white}@media(max-width:650px){.footer-actions{align-items:flex-start;max-width:none}.footer-link-row{align-items:flex-start;flex-direction:column;gap:7px}.footer-contact-note{font-size:12px}.footer-phone{margin-top:5px}.phone-dialog-content{padding:24px 20px}.phone-dialog h2{font-size:22px}.phone-dialog-actions{flex-direction:column-reverse}.phone-dialog-actions button,.phone-dialog-actions a{width:100%}}
.proof-grid strong{font-size:clamp(21px,2.2vw,30px);line-height:1.35}.live-app-frame{max-width:980px;margin:0 auto;border:1px solid #bcd8eb;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 18px 48px rgba(10,35,71,.12)}.live-app-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 18px;background:#0a2347;color:#fff;font-size:13px;font-weight:800}.live-app-toolbar span{display:flex;align-items:center;gap:8px}.live-app-toolbar i{width:9px;height:9px;border-radius:50%;background:#52d47b;box-shadow:0 0 0 4px rgba(82,212,123,.18)}.live-app-toolbar a{color:#ffe071}.live-app-frame iframe{display:block;width:100%;height:720px;border:0;background:#f3f7fa}.shuji-facts{grid-template-columns:180px repeat(3,1fr);align-items:stretch}.shuji-character{width:100%;height:100%;min-height:165px;object-fit:contain;padding:18px;background:#fff}.shuji-facts strong{font-size:clamp(18px,2vw,25px);line-height:1.35}.writing-benefits{max-width:none;padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start;background:linear-gradient(135deg,#fffdf7,#fff6d8)}.writing-benefits .section-heading{margin:0}.benefit-grid{grid-template-columns:1fr;gap:0}.benefit-grid article{display:grid;grid-template-columns:58px 1fr;gap:18px;align-items:start;padding:24px 0;border:0;border-top:1px solid #dfc77f;background:transparent}.benefit-grid article:last-child{border-bottom:1px solid #dfc77f}.benefit-grid article>b{display:block;width:auto;height:auto;border:0;color:#956000;font-family:inherit;font-size:12px;letter-spacing:.14em}.benefit-grid h3{margin:0 0 7px;font-size:24px}.fee-important{padding:13px 16px;border-left:4px solid #c48200;background:#fff1c8;color:#6c4900;font-weight:800}.fee-supplies{display:grid;gap:4px;margin-top:18px;padding-top:16px;border-top:1px solid #c9dfee}.fee-supplies b,.fee-supplies span{display:block}.fee-supplies span{color:var(--muted)}.writing-fee .fee-supplies{border-color:#e2c994}.info-page{max-width:960px}.info-page-header{margin:32px 0 48px}.info-page-header h1{font-size:clamp(38px,6vw,62px);line-height:1.25;margin:3px 0 14px}.info-page-header>p:last-child{color:var(--muted);font-size:17px}.faq-category{margin:0 0 54px}.faq-category h2{font-size:27px;margin:0 0 18px;padding-bottom:10px;border-bottom:2px solid #1976b9}.info-page-cta{margin-top:55px;padding:32px;border-radius:18px;background:#eef7ff;text-align:center}.info-page-cta p{font-size:19px;font-weight:800}.contact-methods{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:34px}.contact-methods article{display:flex;flex-direction:column;align-items:flex-start;padding:25px;border:1px solid var(--line);border-radius:16px;background:#fff}.contact-methods article>span{color:var(--muted);font-size:13px;font-weight:800}.contact-methods article>a{margin:5px 0 8px;color:#1267a7;font-size:21px;font-weight:800}.contact-methods .contact-phone{border-color:#1976b9}.contact-methods small{color:var(--muted)}.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:32px;border-radius:20px;background:#f3f8fc}.inquiry-form-heading,.inquiry-wide{grid-column:1/-1}.inquiry-form-heading h2{margin:0;font-size:28px}.inquiry-form-heading p{margin:3px 0 8px;color:var(--muted)}.inquiry-form label{display:grid;gap:7px;font-weight:800}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{width:100%;padding:12px;border:1px solid #bdcbd5;border-radius:8px;background:#fff;color:var(--ink);font:inherit}.inquiry-form textarea{resize:vertical}.inquiry-submit{display:flex;align-items:center;gap:16px}.inquiry-submit small{color:var(--muted)}body[data-active-view="faq"] .mobile-cta,body[data-active-view="contact"] .mobile-cta{display:none}@media(max-width:920px){.shuji-facts{grid-template-columns:1fr 1fr}.shuji-character{grid-column:1/-1;height:190px}.writing-benefits{grid-template-columns:1fr;gap:35px}.live-app-frame iframe{height:680px}}@media(max-width:650px){.live-app-toolbar{align-items:flex-start;flex-direction:column;gap:3px}.live-app-frame{border-radius:14px}.live-app-frame iframe{height:620px}.shuji-facts{grid-template-columns:1fr}.shuji-character{height:175px}.writing-benefits{padding-top:68px;padding-bottom:68px}.benefit-grid article{grid-template-columns:42px 1fr}.contact-methods,.inquiry-form{grid-template-columns:1fr}.inquiry-form{padding:22px 18px}.inquiry-form-heading,.inquiry-wide{grid-column:auto}.inquiry-submit{align-items:stretch;flex-direction:column}.contact-methods article>a{font-size:18px}}

/* 少人数制の見出しは明るい面で際立たせる */
.proof-section{background:#eaf6ff;color:var(--ink)}
.proof-section:after{border-color:rgba(255,208,90,.22)}
.proof-section .eyebrow{color:#1267a7}
.proof-section .proof-copy h2{color:#0a2347;text-shadow:none;text-decoration:underline;text-decoration-color:#ffd05a;text-decoration-thickness:.13em;text-underline-offset:.11em}
.proof-section .proof-copy>p:last-child{color:#455c70}
.proof-section .proof-grid div{border-color:#bedcf1}
.proof-section .proof-grid strong{color:#0f5f9b}

/* 予約を主導線に保ち、電話と問い合わせを見つけやすく */
.header-phone{display:none}
@media(max-width:920px){
  .view-nav :is(button,a)[data-view="contact"]{display:none}
  .header-phone{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin:0 0 0 auto;padding:0 2px;border:0;border-bottom:2px solid #ffd05a;background:transparent;color:#1267a7;font-size:14px;font-weight:800;line-height:1;white-space:nowrap}
  .header-phone svg{flex:none}
  .header-phone:focus-visible{outline:2px solid #1267a7;outline-offset:4px}
  .site-header .brand{margin-right:0}
}

/* トップのメッセージに明るさと動きを加える */
#home .home-hero{background:linear-gradient(115deg,#eaf6ff 0%,#f5fbff 42%,#fff4d0 100%)}
#home .hero-copy h1{color:#0a2347;font-weight:900;letter-spacing:.01em}
#home .hero-pop{display:inline-block;margin-right:.12em;color:#0f5f9b;background:linear-gradient(transparent 55%,#ffd05a 55%,#ffd05a 91%,transparent 91%);transform:rotate(-2deg);transform-origin:left center}
#home .hero-key{margin-right:.12em;color:#1976b9;text-decoration:underline;text-decoration-color:#ffd05a;text-decoration-thickness:.16em;text-underline-offset:.12em}

/* トップの写真を講座への入口として見せる */
#home .hero-visual{gap:18px;align-items:stretch}
#home .course-tile{padding:10px 10px 16px;border:1px solid #d7e7f3;border-top:5px solid #1976b9;border-radius:12px;background:#fff;box-shadow:0 14px 32px rgba(20,67,104,.14);transition:transform .2s,box-shadow .2s}
#home .writing-tile{border-color:#f0e0a1;border-top-color:#ffd05a}
#home .course-tile:hover,#home .course-tile:focus-visible{transform:translateY(-4px);box-shadow:0 20px 38px rgba(20,67,104,.2)}
#home .tile-label{margin:0 0 8px;padding-left:2px;font-weight:800}
#home .tile-photo{height:245px;margin-bottom:14px;border-radius:6px}
#home .course-tile strong{border:0;padding:0;font-size:23px;line-height:1.4}
#home .course-tile small{margin-top:4px}
#home .tile-action{display:block;margin-top:auto;padding-top:16px;color:#1267a7;font-size:14px;font-weight:800}
#home .writing-tile .tile-action{color:#8b6200}
@media(max-width:650px){
  #home .hero-visual{gap:10px}
  #home .course-tile{padding:7px 7px 11px;border-radius:10px}
  #home .tile-label{margin-bottom:5px;font-size:10px}
  #home .tile-photo{height:175px;margin-bottom:10px;border-radius:5px}
  #home .course-tile strong{font-size:clamp(15px,4.2vw,18px)}
  #home .course-tile small{font-size:11px}
  #home .tile-action{padding-top:10px;font-size:12px}
}
@media(max-width:650px){
  #home .hero-copy h1{font-size:clamp(30px,9vw,38px);line-height:1.3;letter-spacing:-.02em;margin:10px 0 16px}
}

/* 文字だけのロゴに控えめなアクセントを添える */
.brand .brand-accent{color:#0f5f9b;padding:0 .05em;background:linear-gradient(transparent 38%,#ffd05a 38%,#ffd05a 94%,transparent 94%)}

/* 教室だよりは横並びで複数見せ、スマホでは横スクロールにする */
.activity-strip .blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.activity-strip .blog-grid .blog-teaser{display:grid;grid-template-columns:66px minmax(0,1fr);gap:4px 10px;align-content:start}
.activity-strip .blog-grid .blog-meta small{color:var(--muted);font-size:11px}
@media(max-width:650px){.activity-strip .blog-grid{gap:14px}}

/* 少人数制の特徴と教室写真を見やすくする */
#home .proof-section{background:#d5e9f8}
#home .proof-section .proof-copy h2{color:#073e70;text-decoration-thickness:.2em}
#home .proof-section .proof-grid{gap:10px}
#home .proof-section .proof-grid div{padding:20px;background:rgba(255,255,255,.65);border:1px solid #b7d7ec;border-radius:12px}
#home .proof-section .proof-grid strong{color:#0b5b9f;font-size:clamp(27px,2.6vw,34px)}
#home .classroom-photo-grid figure{border:7px solid #fff;border-top-color:#1976b9;border-radius:17px;outline:1px solid #c5dbea;box-shadow:0 14px 32px rgba(12,61,103,.14)}
#home .classroom-photo-grid figure:last-child{border-top-color:#ffd05a}
#home .classroom-photo-grid figcaption{left:0;right:0;bottom:0;padding:11px 15px;border-radius:0;background:rgba(255,255,255,.94);color:#0a2347}

.mobile-cta a span{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.25}
.mobile-cta a b{font-size:15px}
.mobile-cta a small{font-size:12px;font-weight:700}
.phone-dialog .phone-web-note{margin:0 0 12px;color:#1267a7;font-weight:700}
.phone-dialog .phone-web-booking{display:inline-flex;align-items:center;justify-content:center;margin:0 0 22px;padding:11px 18px;border-radius:999px;background:#ffd05a;color:#0a2347;font-weight:800}
@media(max-width:650px){.phone-dialog .phone-web-booking{width:100%}}
.phone-dialog .phone-dialog-number{font-size:26px;line-height:1.3;font-weight:800;letter-spacing:.02em;color:#0a2347;user-select:all}

.booking-choose-title{margin:0 0 14px;font-size:21px;color:#0a2347}
.booking-course-tabs + .booking-choose-title{margin-top:30px}
.booking-classroom-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-classroom-list button{padding:15px 18px;border:1px solid #c8dce9;border-radius:12px;background:#f8fbfd;color:#0a2347;text-align:left;font-weight:800}
.booking-classroom-list button:hover,.booking-classroom-list button:focus-visible{border-color:#1976b9;background:#eaf5fd}
.booking-classroom-list p{margin:0;color:var(--muted)}
.booking-change-classroom{margin:0 0 20px;padding:0;border:0;background:transparent;color:#1267a7;font-weight:800}
.booking-view-classroom{float:right;margin:0 0 20px;padding:0;border:0;background:transparent;color:#1267a7;font-weight:800}
.other-detail-map{overflow:hidden;background:#e8f4fb}
.other-detail-map iframe{width:100%;height:100%;border:0}
#other-detail-courses .schedule-table>div{grid-template-columns:minmax(0,1.2fr) repeat(var(--day-count),minmax(0,1fr))}
#other-detail-courses .other-schedule-note{font-size:13px;color:var(--muted)}
#other-detail-courses .parent-note{color:#795300;background:#fff8e3}
#other-detail-courses .detail-course button{margin-top:12px}
#other-detail-teachers .teacher-icon{width:60px;height:60px;flex:0 0 60px;object-fit:cover;border-radius:50%;background:#fff}
#other-detail-access p{line-height:1.8}
@media(max-width:650px){.booking-view-classroom{float:none;display:block;margin-top:-10px}}
#booking-chooser[hidden],#booking-calendar-section[hidden]{display:none}
@media(max-width:650px){.booking-classroom-list{grid-template-columns:1fr}}

.phone-web-section{padding:20px;border-radius:13px;background:#fff7dc}
.phone-web-section>b,.phone-call-section>b{display:block;color:#0a2347;font-size:18px}
.phone-dialog .phone-web-note{margin:5px 0 0;color:#455c70;font-weight:400}
.phone-dialog .phone-web-booking{margin:14px 0 0}
.phone-call-section{margin-top:22px;padding-top:20px;border-top:1px solid #bcd6e8}
.phone-call-section .phone-dialog-number{margin:10px 0 5px}
.phone-dialog{max-height:calc(100dvh - 32px);overflow-y:auto}

/* 四つの考え方を、囲みのない短い読み物として並べる */
#home .galileo-values{display:flex;flex-direction:column;gap:14px;max-width:690px;margin:0 auto;padding:4px 0 12px}
#home .galileo-values div{display:flex;align-items:baseline;gap:18px;min-width:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;transform:none}
#home .galileo-values b{flex:0 0 1.1em;font-size:29px;line-height:1.4;color:#2f78ae;background:none;transform:none}
#home .galileo-values div:nth-child(even) b{color:#c58b0d}
#home .galileo-values span{font-size:14px;line-height:1.6;color:var(--muted)}
#home .galileo-values strong{display:inline;margin-right:1em;font-size:16px;color:var(--ink)}
/* そろばんの成長過程を、基礎から検定への一本の流れとして示す */
#abacus .milestones{position:relative;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;background:none;border:0;border-radius:0;overflow:visible}
#abacus .milestones:before{content:"";position:absolute;left:26px;right:26px;top:25px;height:3px;background:linear-gradient(90deg,#b9d9ef 70%,#f4d16a)}
#abacus .milestones div{position:relative;z-index:1;min-width:0;padding:0;background:none}
#abacus .milestones b{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#1976b9;color:#fff;font-size:19px;line-height:1}
#abacus .milestones div:last-child b{background:#f4c74f;color:#273747}
#abacus .milestones strong{margin:14px 0 3px;font-size:17px;line-height:1.45}
#abacus .milestones span{font-size:14px;line-height:1.55}
@media(max-width:800px){
  #abacus .milestones{grid-template-columns:1fr;gap:0}
  #abacus .milestones:before{left:25px;right:auto;top:25px;bottom:25px;width:3px;height:auto;background:linear-gradient(#b9d9ef 70%,#f4d16a)}
  #abacus .milestones div{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;column-gap:17px;align-items:center;padding:0 0 22px}
  #abacus .milestones div:last-child{padding-bottom:0}
  #abacus .milestones b{grid-row:1/3}
  #abacus .milestones strong{margin:0}
}
@media(max-width:650px){
  #home .galileo-values{gap:16px;padding:4px 4px 12px}
  #home .galileo-values div{gap:14px;padding:0}
  #home .galileo-values b{font-size:24px}
  #home .galileo-values span{font-size:14px}
  #home .galileo-values strong{display:block;margin-right:0;font-size:16px}
}

#abacus-app .live-app-display{max-width:830px;margin:0 auto;display:grid;grid-template-columns:300px minmax(0,1fr);gap:68px;align-items:center}
#abacus-app .live-app-frame{width:282px;max-width:none;margin:12px auto;border:7px solid #0a2347;border-radius:37px;padding:7px;background:#0a2347;overflow:hidden;box-shadow:18px 22px 42px rgba(10,35,71,.2);transform:rotate(-4deg)}
#abacus-app .live-app-phone-top{height:25px;position:relative}
#abacus-app .live-app-phone-top:after{content:"";position:absolute;width:54px;height:5px;border-radius:5px;background:#45617b;left:50%;top:6px;transform:translateX(-50%)}
#abacus-app .live-app-screen{width:254px;height:549px;position:relative;overflow:hidden;border-radius:12px;background:#f3f7fa}
#abacus-app .live-app-screen iframe{position:absolute;left:0;top:0;display:block;width:390px;height:844px;border:0;transform:scale(.65);transform-origin:top left;background:#f3f7fa}
#abacus-app .live-app-phone-bottom{height:20px;position:relative}
#abacus-app .live-app-phone-bottom:after{content:"";position:absolute;width:74px;height:4px;border-radius:4px;background:#708396;left:50%;bottom:5px;transform:translateX(-50%)}
#abacus-app .live-app-caption>span{display:block;color:#1976b9;font-size:14px;font-weight:800}
#abacus-app .live-app-caption h3{font-size:clamp(23px,2.7vw,32px);line-height:1.4;margin:10px 0 15px}
#abacus-app .live-app-caption p{color:var(--muted);margin:0 0 24px}
@media(max-width:700px){
  #abacus-app .live-app-display{grid-template-columns:1fr;gap:24px}
  #abacus-app .live-app-caption{text-align:center}
}

#contact .info-page-header>p:last-of-type{color:var(--muted);font-size:17px}
#contact .info-page-header .button{margin-top:10px}
@media(max-width:650px){
  #abacus .parent-friendly,#kakikata .parent-friendly{padding-top:36px;padding-bottom:36px}
  #abacus .parent-friendly .section-heading,#kakikata .parent-friendly .section-heading{margin-bottom:15px}
  #abacus .parent-friendly h2,#kakikata .parent-friendly h2{font-size:clamp(25px,6.8vw,29px);line-height:1.3;margin-bottom:0}
  #abacus .parent-grid,#kakikata .parent-grid{gap:0}
  #abacus .parent-grid article,#kakikata .parent-grid article{padding:11px 0;border-radius:0;border-top:1px solid #c9dfee;background:transparent}
  #kakikata .parent-grid article{border-color:#e2c994}
  #abacus .parent-grid article:last-child,#kakikata .parent-grid article:last-child{border-bottom:1px solid #c9dfee}
  #kakikata .parent-grid article:last-child{border-bottom-color:#e2c994}
  #abacus .parent-grid h3,#kakikata .parent-grid h3{font-size:17px;line-height:1.4;margin:0 0 3px}
  #abacus .parent-grid p,#kakikata .parent-grid p{font-size:14px;line-height:1.5;margin:0}
  #kakikata .writing-benefits{gap:0;padding-top:36px;padding-bottom:36px}
  #kakikata .writing-benefits .section-heading{margin:0 0 16px}
  #kakikata .writing-benefits h2{font-size:28px;line-height:1.3;margin-bottom:0}
  #kakikata .writing-benefits .section-heading>p:last-child{font-size:14px;line-height:1.55;margin:8px 0 0}
  #kakikata .writing-benefits .benefit-grid article{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:11px 0}
  #kakikata .writing-benefits .benefit-grid article>b{font-size:13px;padding-top:2px}
  #kakikata .writing-benefits .benefit-grid h3{font-size:17px;line-height:1.4;margin:0 0 3px}
  #kakikata .writing-benefits .benefit-grid p{font-size:14px;line-height:1.5}
}

@media(max-width:650px){
  #abacus .parent-grid,#kakikata .parent-grid{display:grid;gap:9px}
  #abacus .parent-grid article,#kakikata .parent-grid article{position:relative;padding:12px 14px 12px 44px;border:1px solid #c9dfee;border-left:3px solid var(--green);border-radius:14px;background:#f2f8fc;box-shadow:0 4px 12px rgba(26,77,111,.05)}
  #kakikata .parent-grid article{border-color:#f0dda7;border-left-color:var(--yellow);background:#fff9e9}
  #abacus .parent-grid article:last-child{border-bottom-color:#c9dfee}
  #kakikata .parent-grid article:last-child{border-bottom-color:#f0dda7}
  #abacus .parent-grid article::before,#kakikata .parent-grid article::before{content:"";position:absolute;left:16px;top:18px;width:14px;height:14px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #dceefa}
  #kakikata .parent-grid article::before{background:var(--yellow);box-shadow:0 0 0 4px #fff0bf}
  #abacus .parent-grid h3,#kakikata .parent-grid h3{margin:0 0 2px}
}
