#gp-prog.gp{--green:#17803A;--green-dk:#0F5F2A;--lime:#8DC21F;--leaf:#EEF6E6;--orange:#F39800;--orange-tx:#8A5200;--sun:#FFF4E0;--ink:#222222;--sub:#444;--line:#D9E6CC;--line-green:#06C755;--maru:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Hiragino Sans','Meiryo',sans-serif;--body:'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic Medium','游ゴシック Medium',YuGothic,'Meiryo',sans-serif;container-type:inline-size;background:#FAFCF6;color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.85;letter-spacing:0;text-align:left;border-radius:20px;overflow:hidden}
#gp-prog.gp *{box-sizing:border-box}
#gp-prog.gp h1,#gp-prog.gp h2,#gp-prog.gp h3,#gp-prog.gp p,#gp-prog.gp ul,#gp-prog.gp ol,#gp-prog.gp li,#gp-prog.gp figure,#gp-prog.gp figcaption,#gp-prog.gp span,#gp-prog.gp div,#gp-prog.gp b,#gp-prog.gp a{font-family:inherit;letter-spacing:inherit;text-transform:none;text-shadow:none;background-image:none}
#gp-prog.gp h1,#gp-prog.gp h2,#gp-prog.gp h3{font-family:var(--maru);line-height:1.4;margin:0;padding:0;border:0;background:none;font-style:normal}
#gp-prog.gp h1::before,#gp-prog.gp h1::after,#gp-prog.gp h2::before,#gp-prog.gp h2::after,#gp-prog.gp h3::before,#gp-prog.gp h3::after{content:none;display:none}
#gp-prog.gp p{margin:0;padding:0;color:inherit;font-size:inherit;line-height:inherit}
#gp-prog.gp ul{margin:0;padding:0 0 0 1.2em;list-style:disc}
#gp-prog.gp ol{margin:0;padding:0;list-style:none}
#gp-prog.gp li{margin:0;padding:0;border:0;background:none}
#gp-prog.gp img{max-width:100%;height:auto;display:block;border:0;box-shadow:none;margin:0;padding:0}
#gp-prog.gp figure{margin:0;padding:0}
#gp-prog.gp a{color:var(--green);text-decoration:underline}
#gp-prog.gp a:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
#gp-prog.gp .wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}
#gp-prog.gp .narrow{max-width:760px}
#gp-prog.gp .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;text-decoration:none;border-radius:999px;padding:12px 22px;line-height:1.3;text-align:center;font-size:16px;border:0}
#gp-prog.gp .btn-green{background:var(--green);color:#fff}
#gp-prog.gp .btn-green:hover{background:var(--green-dk);color:#fff}
#gp-prog.gp .btn-line{background:var(--line-green);color:#fff}
#gp-prog.gp .btn-line:hover{background:#05A847;color:#fff}
#gp-prog.gp .btn-ghost{background:#fff;color:var(--green);border:2px solid #fff}
#gp-prog.gp .btn-ghost:hover{background:var(--leaf);color:var(--green)}
#gp-prog.gp .hero{padding:36px 0 48px}
#gp-prog.gp .hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:36px;align-items:center}
#gp-prog.gp .hero-kicker{display:inline-block;background:var(--green);color:#fff;font-weight:700;font-size:14px;line-height:1.5;padding:6px 16px;border-radius:999px;margin-bottom:18px}
#gp-prog.gp .hero h1{font-size:clamp(22px,3.1cqi,40px);font-weight:900;color:var(--green)}
#gp-prog.gp .hero h1 span{display:block;white-space:nowrap}
#gp-prog.gp .hero-lead{margin-top:18px;font-size:17px}
#gp-prog.gp .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
#gp-prog.gp .hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;border-radius:24px}
#gp-prog.gp section{padding:48px 0;margin:0;border:0}
#gp-prog.gp .sec-alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#gp-prog.gp .sec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:10px;flex-wrap:wrap}
#gp-prog.gp .sec-num{font-family:var(--maru);font-weight:900;font-size:40px;color:var(--lime);line-height:1}
#gp-prog.gp .sec-head h2{font-size:clamp(22px,3cqi,30px);color:var(--green);font-weight:900}
#gp-prog.gp .sec-sub{font-weight:700;color:var(--sub)}
#gp-prog.gp .sec-lead{max-width:760px;margin:6px 0 28px}
#gp-prog.gp h2{font-size:24px;color:var(--green);font-weight:900}
#gp-prog.gp h3{font-size:19px;color:var(--green);font-weight:700}
#gp-prog.gp .concerns{display:grid;gap:14px}
#gp-prog.gp .concern{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff}
#gp-prog.gp .concern-q{background:var(--sun);padding:20px 24px;font-weight:700;color:#6B4200;display:flex;align-items:center}
#gp-prog.gp .concern-a{padding:18px 24px}
#gp-prog.gp .concern-a b{display:block;color:var(--green);font-size:14px}
#gp-prog.gp .concern-a a{font-weight:700;font-size:14px}
#gp-prog.gp .reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
#gp-prog.gp .reason{background:var(--leaf);border-radius:18px;padding:20px 22px}
#gp-prog.gp .reason h3{font-size:18px;margin-bottom:6px}
#gp-prog.gp .reason p{font-size:15px;line-height:1.75}
#gp-prog.gp .stairs{margin:10px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end}
#gp-prog.gp .stair{display:flex;flex-direction:column;gap:10px}
#gp-prog.gp .stair-block{background:var(--green);color:#fff;border-radius:14px 14px 4px 4px;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-family:var(--maru);font-weight:900;font-size:22px;line-height:1.2}
#gp-prog.gp .stair:nth-child(1) .stair-block{height:48px;background:#6FAE33}
#gp-prog.gp .stair:nth-child(2) .stair-block{height:72px;background:#5DA22E}
#gp-prog.gp .stair:nth-child(3) .stair-block{height:96px;background:#4A962B}
#gp-prog.gp .stair:nth-child(4) .stair-block{height:120px;background:#368B31}
#gp-prog.gp .stair:nth-child(5) .stair-block{height:144px;background:#258437}
#gp-prog.gp .stair:nth-child(6) .stair-block{height:168px;background:#17803A}
#gp-prog.gp .stair:nth-child(7) .stair-block{height:192px;background:#0F6B30}
#gp-prog.gp .stair-body{min-height:190px}
#gp-prog.gp .stair-body h3{font-size:16px;line-height:1.45;margin-bottom:6px}
#gp-prog.gp .stair-body p{font-size:14px;line-height:1.7}
#gp-prog.gp .stairs-base{height:6px;background:var(--line);border-radius:3px;margin:0 0 16px}
#gp-prog.gp .photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0}
#gp-prog.gp .photo-pair img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px}
#gp-prog.gp figcaption{font-size:14px;color:var(--sub);margin-top:8px;line-height:1.6}
#gp-prog.gp .note-box{background:var(--leaf);border-radius:20px;padding:22px 26px}
#gp-prog.gp .note-box h3{margin-bottom:8px}
#gp-prog.gp .note-box li+li{margin-top:4px}
#gp-prog.gp .tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#gp-prog.gp .tool{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px}
#gp-prog.gp .tool h3{font-size:18px;margin-bottom:6px}
#gp-prog.gp .tool p{font-size:15px;line-height:1.75}
#gp-prog.gp .scene{background:var(--sun);border-radius:22px;padding:24px 26px;margin-top:22px}
#gp-prog.gp .scene h3{color:#6B4200;margin-bottom:14px}
#gp-prog.gp .scene ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:gps}
#gp-prog.gp .scene li{background:#fff;border-radius:14px;padding:16px 18px;font-size:15px;line-height:1.7;counter-increment:gps}
#gp-prog.gp .scene li::before{content:counter(gps);display:block;font-family:var(--maru);font-weight:900;font-size:22px;color:#B86A00;line-height:1.2;margin-bottom:4px}
#gp-prog.gp .goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
#gp-prog.gp .goal{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;text-align:center}
#gp-prog.gp .goal .before{color:var(--sub);font-size:15px}
#gp-prog.gp .goal svg{margin:6px auto;display:block}
#gp-prog.gp .goal .after{color:var(--green);font-weight:700}
#gp-prog.gp .acts{display:grid;gap:10px}
#gp-prog.gp .act{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 22px;align-items:center}
#gp-prog.gp .act h3{font-size:18px}
#gp-prog.gp .act p{font-size:15px;line-height:1.75}
#gp-prog.gp .act .aim{color:var(--orange-tx);font-weight:700;font-size:14px}
#gp-prog.gp .words{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
#gp-prog.gp .words span{background:#fff;border:2px solid var(--lime);color:var(--green);font-weight:700;border-radius:999px;padding:6px 16px;line-height:1.5}
#gp-prog.gp .flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:gpf}
#gp-prog.gp .flow li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;counter-increment:gpf}
#gp-prog.gp .flow li::before{content:counter(gpf);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;font-family:var(--maru);font-weight:900;font-size:20px;margin-bottom:10px}
#gp-prog.gp .flow h3{font-size:17px;margin-bottom:4px}
#gp-prog.gp .flow p{font-size:15px;line-height:1.75}
#gp-prog.gp .ages{display:grid;gap:12px;margin-top:30px}
#gp-prog.gp .age{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 24px}
#gp-prog.gp .age .tag{display:inline-block;margin-top:6px;background:var(--leaf);color:#3F6B2A;font-size:13px;font-weight:700;border-radius:999px;padding:3px 12px;line-height:1.5}
#gp-prog.gp .age ul{font-size:15px;line-height:1.8}
#gp-prog.gp .tips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#gp-prog.gp .tip{background:var(--sun);border-radius:18px;padding:20px 22px}
#gp-prog.gp .tip h3{color:var(--orange-tx);font-size:18px;margin-bottom:6px}
#gp-prog.gp .tip p{font-size:15px;line-height:1.75}
#gp-prog.gp .stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
#gp-prog.gp .stages div{background:#fff;border-radius:14px;padding:16px 18px;font-size:15px;line-height:1.75}
#gp-prog.gp .stages b{display:block;color:var(--green)}
#gp-prog.gp .info-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
#gp-prog.gp .bases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
#gp-prog.gp .base{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-decoration:none;color:var(--ink)}
#gp-prog.gp .base:hover{border-color:var(--green)}
#gp-prog.gp .base b{display:block;color:var(--green);font-size:16px}
#gp-prog.gp .base span{font-size:14px;line-height:1.6;display:block}
#gp-prog.gp .prep{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#gp-prog.gp .prep span{background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 12px;font-size:14px;font-weight:700;line-height:1.5}
#gp-prog.gp .cta{background:var(--green);color:#fff;border-radius:24px;padding:36px 40px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:center}
#gp-prog.gp .cta h2{color:#fff;font-size:clamp(22px,2.8cqi,28px)}
#gp-prog.gp .cta-tel{font-family:var(--maru);font-weight:900;font-size:clamp(28px,4cqi,38px);color:#fff;text-decoration:none;display:inline-block;margin-top:12px;letter-spacing:.03em;line-height:1.3}
#gp-prog.gp .cta-hours{font-size:14px;color:#fff}
#gp-prog.gp .cta-btns{display:grid;gap:12px}
#gp-prog.gp .line-box{margin-top:24px;background:#fff;border:2px solid var(--line-green);border-radius:22px;padding:22px 26px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center}
#gp-prog.gp .line-badge{background:var(--line-green);color:#fff;font-weight:700;border-radius:8px;padding:4px 12px;font-size:14px;line-height:1.5}
#gp-prog.gp .line-box h3{color:var(--ink);font-size:19px}
#gp-prog.gp .pdf-link{margin-top:22px;text-align:center;font-size:15px}
#gp-prog.gp .faq{display:grid;gap:10px}
#gp-prog.gp .faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 22px}
#gp-prog.gp .faq-item summary{cursor:pointer;font-weight:700;padding:16px 0;list-style:none;color:var(--ink)}
#gp-prog.gp .faq-item summary::-webkit-details-marker{display:none}
#gp-prog.gp .faq-item summary::before{content:"Q.";color:var(--green);font-family:var(--maru);font-weight:900;margin-right:8px}
#gp-prog.gp .faq-item p{padding:0 0 16px;font-size:15px;line-height:1.8}
#gp-prog.gp .faq-item p::before{content:"A.";color:var(--orange-tx);font-weight:700;margin-right:8px}
@container (max-width:860px){
#gp-prog.gp .hero h1{font-size:clamp(20px,5.9cqi,40px)}
#gp-prog.gp .hero .wrap,#gp-prog.gp .info-grid,#gp-prog.gp .cta{grid-template-columns:minmax(0,1fr)}
#gp-prog.gp .hero-photo{order:-1}
#gp-prog.gp .reasons,#gp-prog.gp .scene ol,#gp-prog.gp .goals,#gp-prog.gp .stages{grid-template-columns:minmax(0,1fr)}
#gp-prog.gp .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
#gp-prog.gp .stairs{grid-template-columns:minmax(0,1fr);gap:10px}
#gp-prog.gp .stair{flex-direction:row;align-items:stretch;gap:14px}
#gp-prog.gp .stair .stair-block{height:auto !important;width:calc(34px + var(--i) * 6px);flex-shrink:0;border-radius:4px 12px 12px 4px;align-items:center;padding-top:0}
#gp-prog.gp .stair-body{min-height:0;padding:4px 0}
#gp-prog.gp .stairs-base{display:none}
#gp-prog.gp .line-box{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:600px){
#gp-prog.gp .hero,#gp-prog.gp section{font-size:15px}
#gp-prog.gp section{padding:36px 0}
#gp-prog.gp .wrap{padding:0 16px}
#gp-prog.gp .concern,#gp-prog.gp .act,#gp-prog.gp .age{grid-template-columns:minmax(0,1fr)}
#gp-prog.gp .act,#gp-prog.gp .age{gap:6px}
#gp-prog.gp .tools,#gp-prog.gp .tips,#gp-prog.gp .photo-pair,#gp-prog.gp .flow,#gp-prog.gp .bases{grid-template-columns:minmax(0,1fr)}
#gp-prog.gp .cta{padding:28px 22px}
}

/* ===== 2026-09-29 スマホ表示修正:見出しが画面幅を押し広げて端が切れる問題 ===== */
#gp-prog.gp{max-width:100%}
#gp-prog.gp .hero .wrap>*{min-width:0}
#gp-prog.gp .hero h1{font-size:clamp(22px,3.1cqi,40px) !important;line-height:1.4 !important;letter-spacing:0 !important;overflow-wrap:anywhere}
@container (max-width:860px){
#gp-prog.gp .hero h1{font-size:clamp(20px,5.9cqi,40px) !important}
}
@container (max-width:600px){
#gp-prog.gp .hero h1 span{white-space:normal}
#gp-prog.gp .hero-kicker{font-size:13px;border-radius:14px}
}
