@charset "UTF-8";
:root{--color-primary:#087fc5;--color-secondary:#39a94b;--color-accent:#ff8a18;--color-yellow:#ffd43b;--color-background:#f8fcff;--color-text:#17334a;--color-muted:#587083;--color-white:#fff;--border-radius:24px;--shadow:0 12px 35px rgba(26,91,125,.14);--section-spacing:clamp(4.5rem,8vw,8rem);--header-height:76px;--max-width:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 18px)}body{margin:0;color:var(--color-text);background-color:var(--color-background);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.8;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;z-index:-1;background-image:linear-gradient(rgba(248,252,255,.62),rgba(248,252,255,.62)),url(../public/images/site-background.png);background-repeat:no-repeat;background-position:center center;background-size:cover}img{display:block;max-width:100%;height:auto}a{color:inherit}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.35;letter-spacing:.03em}h2{font-size:clamp(1.9rem,4vw,3rem);margin-bottom:1rem}h3{font-size:1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-100px;z-index:999;background:#fff;padding:.8rem 1rem;border-radius:8px}.skip-link:focus{top:1rem}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:4px solid #5b2dde;outline-offset:3px}
.site-header{height:var(--header-height);position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 max(1.25rem,calc((100vw - var(--max-width))/2));background:rgba(255,255,255,.94);border-bottom:1px solid rgba(8,127,197,.13);backdrop-filter:blur(15px)}.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;font-weight:900;font-size:clamp(.95rem,2vw,1.2rem);white-space:nowrap}.brand>span:first-child{font-size:1.55rem}.global-nav{display:flex;align-items:center;gap:clamp(.45rem,1.2vw,1.25rem)}.global-nav>a{text-decoration:none;font-weight:700;font-size:.88rem;white-space:nowrap}.global-nav>a:not(.button):hover{color:var(--color-primary)}.nav-toggle{display:none;background:none;border:0;font-size:1.8rem;padding:.5rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.72rem 1.35rem;border:0;border-radius:999px;background:var(--color-primary);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 7px 0 #075e91;cursor:pointer;transition:transform .18s,box-shadow .18s}.button:hover{transform:translateY(-3px);box-shadow:0 10px 0 #075e91}.button:active{transform:translateY(3px) scale(.97);box-shadow:0 3px 0 #075e91}.button-small{min-height:42px;padding:.5rem 1rem}.button-accent{background:var(--color-accent);box-shadow:0 7px 0 #b95105}.button-accent:hover{box-shadow:0 10px 0 #b95105}.button-accent:active{box-shadow:0 3px 0 #b95105}.button-large{min-height:60px;padding:1rem 2rem;font-size:1.05rem}
.hero{max-width:1500px;margin:0 auto;padding:calc(var(--header-height) + 20px) clamp(1rem,3vw,2.5rem) 2.5rem;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:1.25rem;min-height:95vh}.hero-visual{position:relative;align-self:start;border-radius:32px;overflow:hidden;box-shadow:var(--shadow);background:#54bdee}.hero-visual>img{width:100%;aspect-ratio:1/1;object-fit:contain;max-height:min(620px,calc(100vh - var(--header-height) - 4rem))}.hero-copy{position:absolute;left:clamp(1rem,4vw,3.2rem);top:clamp(1rem,4vw,3.2rem);max-width:570px;padding:clamp(1rem,3vw,2rem);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 10px 35px rgba(0,60,100,.18);backdrop-filter:blur(7px)}.hero-copy h1{font-size:clamp(2rem,4vw,4rem);margin:.35rem 0 .8rem}.hero-copy h1 em{font-style:normal;color:#e45d08}.hero-copy p:not(.eyebrow){font-size:clamp(.95rem,1.6vw,1.15rem);font-weight:700}.eyebrow,.section-kicker{margin:0;color:var(--color-primary);font-size:.78rem;font-weight:900;letter-spacing:.16em}.hero-menu{position:absolute;inset:auto 1.2rem 1.2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.hero-menu button{min-height:62px;border:3px solid rgba(255,255,255,.9);border-radius:18px;background:rgba(255,255,255,.93);color:var(--color-text);font-weight:900;box-shadow:0 7px 18px rgba(0,68,99,.18);cursor:pointer;transition:.2s}.hero-menu button:hover{transform:translateY(-4px);background:#fff}.hero-menu button:active{transform:scale(.97)}.quick-panel{position:sticky;top:calc(var(--header-height) + 20px);align-self:start;min-height:420px;padding:clamp(1.4rem,3vw,2.5rem);border-radius:32px;background:linear-gradient(155deg,#fff 55%,#e8f8ff);box-shadow:var(--shadow);border:3px solid #d8f3ff}.quick-panel:before{content:"🌈";display:block;font-size:4rem;margin-bottom:1rem}.quick-panel h2{font-size:clamp(1.6rem,3vw,2.35rem)}.panel-close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border:0;border-radius:50%;background:#e7f5fb;font-size:1.5rem;cursor:pointer}.text-link{display:inline-block;color:#075f96;font-weight:900;margin-top:.5rem}.quick-panel.is-active{animation:panel-in .35s ease both}@keyframes panel-in{from{opacity:.5;transform:translateX(12px)}to{opacity:1;transform:none}}
.section{max-width:var(--max-width);margin:0 auto;padding:var(--section-spacing) clamp(1.25rem,4vw,2rem)}.section-tint{max-width:none;padding-left:max(1.25rem,calc((100% - var(--max-width))/2 + 2rem));padding-right:max(1.25rem,calc((100% - var(--max-width))/2 + 2rem));background:#eaf8ff}.section-wave{position:relative}.section-heading{display:flex;justify-content:space-between;align-items:center}.section-heading-band{margin-bottom:1.6rem;padding:1.3rem 1.7rem;border-radius:22px;background:rgba(255,255,255,.74);box-shadow:0 8px 26px rgba(15,45,64,.07)}.section-heading-band>*:last-child{margin-bottom:0}.heading-emoji{font-size:clamp(3rem,8vw,6rem)}.lead{max-width:820px;font-size:clamp(1rem,2vw,1.2rem)}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}.card,.learning-card,.price-card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s}.card:hover,.learning-card:hover,.price-card:hover{transform:translateY(-7px);box-shadow:0 18px 40px rgba(26,91,125,.2)}.card{padding:1.5rem;border-top:7px solid var(--color-primary)}.card:nth-child(2){border-color:var(--color-secondary)}.card:nth-child(3){border-color:var(--color-yellow)}.card:nth-child(4){border-color:var(--color-accent)}.card-icon{display:block;font-size:2.5rem;margin-bottom:.7rem}.skill-list{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.5rem}.skill-list>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:155px;padding:1rem;text-align:center;background:#fff;border-radius:50% 50% 45% 45%;font-size:2.2rem;box-shadow:var(--shadow)}.skill-list span{font-size:.95rem;font-weight:900;line-height:1.5}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.check-card{padding:2rem;border-radius:var(--border-radius);background:#fff7d1;border:3px solid var(--color-yellow)}.info-card{padding:2rem;border-radius:var(--border-radius);background:rgba(255,255,255,.82);border:3px solid #d8f3ff;box-shadow:0 8px 26px rgba(15,45,64,.06)}.check-list{list-style:none;padding:0;margin:0}.check-list li{margin:.7rem 0;font-weight:700}.check-list li:before{content:"✓";display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;margin-right:.6rem;border-radius:50%;background:var(--color-secondary);color:#fff}.tag-list{display:flex;flex-wrap:wrap;gap:.65rem}.tag-list span{padding:.55rem .9rem;border-radius:99px;background:#daf3ff;font-weight:700}.info-list{margin-top:2rem}.info-list>div,.footer-info>div{display:grid;grid-template-columns:8rem 1fr;border-bottom:1px dashed #abc;padding:.65rem 0}.info-list dt,.footer-info dt{font-weight:900}.info-list dd,.footer-info dd{margin:0}.learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem}.learning-card{padding:clamp(1.5rem,4vw,2.5rem);border:4px solid #60bced}.learning-card.lego{border-color:#f1be23}.learning-card li{margin:.65rem 0}.note{display:inline-block;font-size:.85rem;color:var(--color-muted);margin-top:1.5rem;padding:.7rem 1.1rem;border-radius:14px;background:rgba(255,255,255,.74)}
.calendar-widget{margin-top:2rem}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:1.2rem;width:fit-content;margin:0 auto 1rem;padding:.5rem .8rem;border-radius:999px;background:rgba(255,255,255,.74);box-shadow:0 6px 18px rgba(15,45,64,.06)}.calendar-nav{width:44px;height:44px;flex:none;border:0;border-radius:50%;background:#eaf8ff;color:var(--color-primary);font-size:1.5rem;font-weight:900;line-height:1;cursor:pointer}.calendar-nav:hover{background:#d8f3ff}.calendar-nav:disabled{opacity:.4;cursor:not-allowed}.calendar-month-label{margin:0;min-width:9rem;text-align:center;font-size:1.25rem}.calendar-status{padding:1.4rem;border-radius:var(--border-radius);background:#eaf8ff;font-weight:700;text-align:center}.calendar-status-error{background:#fff0ec;color:#a5341a}.calendar-status[hidden]{display:none}#calendar-retry{margin-top:1.2rem}#calendar-retry[hidden]{display:none}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;margin-bottom:.4rem;font-weight:900;text-align:center;font-size:.85rem;color:var(--color-muted)}.calendar-weekday-sun{color:#c94520}.calendar-weekday-sat{color:var(--color-primary)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}.calendar-grid[hidden]{display:none}.calendar-day{min-height:96px;padding:.4rem;border-radius:14px;background:#fff;border:2px solid #e3f2fa;display:flex;flex-direction:column;gap:.25rem;overflow:hidden}.calendar-day.is-outside{background:#f4f8fa;color:#9fb2bd}.calendar-day.is-today{border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(255,138,24,.25) inset}.calendar-day-number{font-weight:900;font-size:.85rem}.calendar-event-pill{display:block;width:100%;padding:.2rem .4rem;border:0;border-radius:8px;background:#eaf8ff;color:var(--color-text);font-size:.72rem;font-weight:700;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-pill:hover{background:#d8f3ff}.calendar-day-more{border:0;background:none;padding:0;font-size:.7rem;font-weight:900;color:var(--color-primary);cursor:pointer;text-align:left}.calendar-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.calendar-modal[hidden]{display:none}.calendar-modal-backdrop{position:absolute;inset:0;background:rgba(15,45,64,.55)}.calendar-modal-dialog{position:relative;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;padding:2rem;border-radius:28px;background:#fff;box-shadow:var(--shadow)}.calendar-modal-close{position:absolute;right:1rem;top:1rem;width:40px;height:40px;border:0;border-radius:50%;background:#eaf8ff;font-size:1.3rem;cursor:pointer}.calendar-event-detail{border-top:6px solid var(--color-secondary);border-radius:16px;padding:1.2rem;background:#f7fdff;margin-top:1rem}.calendar-event-detail h4{margin:0 0 .5rem}.calendar-event-detail .calendar-event-time{color:var(--color-primary);font-weight:900}.calendar-event-detail .calendar-event-meta{margin:.4rem 0;font-size:.9rem;color:var(--color-muted)}
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}.price-card{padding:1.5rem;text-align:center;border:2px solid #d4ebf5}.price-card.featured{border:4px solid var(--color-accent);position:relative}.price{min-height:3.5rem;margin:.6rem 0;color:#c84d08;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:900;line-height:1.3}.trial{max-width:var(--max-width);margin:var(--section-spacing) auto 0;padding:clamp(2rem,5vw,4rem);border-radius:36px;background:linear-gradient(120deg,#087fc5,#1bad72);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:2rem;box-shadow:var(--shadow)}.trial .section-kicker{color:#fff4a6}.inline-points{display:flex;flex-wrap:wrap;gap:.6rem;padding:0;list-style:none}.inline-points li{padding:.45rem .85rem;border-radius:99px;background:rgba(255,255,255,.18);font-weight:700}.faq-list{margin-top:2rem}.faq-item{background:rgba(255,255,255,.78);border-radius:18px;margin-bottom:.8rem;box-shadow:0 6px 18px rgba(15,45,64,.05);overflow:hidden}.faq-item:last-child{margin-bottom:0}.faq-item h3{margin:0}.faq-item button{width:100%;display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border:0;background:transparent;text-align:left;font-weight:800;cursor:pointer}.faq-item button b,.faq-answer b{color:var(--color-primary)}.faq-answer{padding:0 2.5rem 1.25rem 1.5rem}.contact{display:grid;grid-template-columns:.65fr 1.35fr;gap:3rem;max-width:var(--max-width);margin-bottom:var(--section-spacing);padding:clamp(2rem,5vw,4rem);background:#fff;border-radius:36px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}.form-grid label,.consent{font-weight:800}.form-grid label>span,.consent span{font-size:.7rem;padding:.18rem .4rem;border-radius:4px;background:#c94520;color:#fff}.form-grid small{color:var(--color-muted);font-weight:400}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:.35rem;padding:.8rem;border:2px solid #9bb8c7;border-radius:10px;background:#fff}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--color-primary)}.form-grid .full{grid-column:1/-1}.consent{display:block;margin:1.4rem 0}.consent input{width:1.25rem;height:1.25rem;vertical-align:middle}.form-status{margin:1rem 0;border-radius:12px}.form-status.success,.form-status.error{padding:1rem}.form-status.success{background:#ddf6df;border:2px solid #55a760}.form-status.error{background:#fff0ec;border:2px solid #c94520}.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}.contact-confirm-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.contact-confirm-actions .button-small{flex:none}.contact-confirm-actions .button-large{flex:1 1 auto}footer{display:grid;grid-template-columns:1.1fr 1fr .8fr;gap:3rem;padding:3.5rem max(1.25rem,calc((100% - var(--max-width))/2));background:#12384f;color:#fff}footer>*{min-width:0}footer a{color:#fff}.footer-brand{margin-bottom:1rem}.footer-info{margin:0}.footer-info>div{grid-template-columns:5rem 1fr;border-color:#537083}footer nav{display:flex;flex-direction:column;gap:.6rem}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1050px){.global-nav{display:none;position:absolute;top:var(--header-height);right:1rem;left:1rem;flex-direction:column;align-items:stretch;padding:1rem;border-radius:0 0 20px 20px;background:#fff;box-shadow:var(--shadow)}.global-nav.is-open{display:flex}.global-nav a{padding:.65rem}.nav-toggle{display:block}.hero{grid-template-columns:1fr}.quick-panel{position:relative;top:auto;min-height:0}.price-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){:root{--header-height:66px}.site-header{padding-inline:1rem}.hero{padding-inline:.7rem;padding-top:calc(var(--header-height) + 10px);min-height:0}.hero-visual{border-radius:22px;overflow:visible;background:transparent;box-shadow:none}.hero-visual>img{border-radius:22px;box-shadow:var(--shadow);object-fit:contain}.hero-copy{position:relative;left:auto;top:auto;max-width:none;margin:-1.5rem .7rem 0;padding:1.25rem;z-index:2}.hero-copy h1 br{display:none}.hero-menu{position:relative;inset:auto;grid-template-columns:1fr 1fr;margin:1rem .2rem}.hero-menu button{min-height:64px;padding:.5rem;font-size:.85rem}.quick-panel{margin-inline:.2rem;border-radius:22px}.card-grid,.skill-list,.learning-grid,.about-layout,.price-grid,.contact{grid-template-columns:1fr 1fr}.features{grid-template-columns:1fr 1fr}.skill-list>div{border-radius:22px;min-height:130px}.skill-list>div:last-child{grid-column:1/-1}.trial{margin-inline:1rem;flex-direction:column;align-items:flex-start;border-radius:28px}.contact{margin-inline:1rem;gap:2rem}.contact-copy{grid-column:1/-1}footer{grid-template-columns:1fr;gap:1.5rem}.footer-info>div{grid-template-columns:5rem 1fr}}
@media(max-width:500px){.brand{font-size:.82rem}.brand>span:first-child{font-size:1.25rem}.hero-copy h1{font-size:1.8rem}.features,.card-grid,.learning-grid,.about-layout,.price-grid,.contact,.form-grid{grid-template-columns:1fr}.skill-list{grid-template-columns:1fr 1fr}.section{padding-inline:1.1rem}.form-grid .full{grid-column:auto}.info-list>div{grid-template-columns:1fr}.info-list dd{margin-top:.15rem}.trial{padding:2rem 1.25rem}.button-large{width:100%}.calendar-day{min-height:60px;padding:.25rem;border-radius:10px}.calendar-day-number{font-size:.75rem}.calendar-event-pill{font-size:.62rem;padding:.15rem .3rem}.calendar-day-more{font-size:.6rem}.calendar-weekdays{font-size:.72rem}.calendar-month-label{font-size:1.05rem;min-width:7rem}.calendar-modal-dialog{padding:1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* 長い日本語ラベルでもグリッド幅を押し広げない */
.hero-menu{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-menu button,.quick-panel{min-width:0}.hero-menu button{overflow-wrap:anywhere}
@media(max-width:720px){.hero-visual,.hero-copy{min-width:0}.hero-copy{overflow:hidden}.hero-copy h1 br{display:block}.hero-menu{grid-template-columns:repeat(2,minmax(0,1fr))}}
