@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/noto-sans-jp-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/noto-sans-jp-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/noto-sans-jp-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/noto-sans-jp-800.ttf) format('truetype');
}

:root{--blue:#1e50a2;--light:#e6efff;--line:#8eadde;--ink:#111}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;color:var(--ink);font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:hover,button:hover{opacity:.76}a:focus-visible,button:focus-visible{outline:3px solid #efb93c;outline-offset:5px}p,h1,h2,h3,dl,dd{margin:0}img{display:block}em{font-style:normal}mark{background:var(--light);color:inherit}button{padding:0}.page{max-width:1440px;margin:auto;overflow:hidden;position:relative;container-type:inline-size}.skip{position:fixed;top:-60px;left:15px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.header{height:120px;position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 38px}.brand{display:flex;gap:14.65px;align-items:center}.brand>span{display:grid;gap:4.33px}.header nav{display:flex;align-items:center;gap:75px;font-size:16px;font-weight:600;height:100%;background:#fff;padding-left:75px}.header nav>a{display:flex;align-items:center;gap:14px}.header .nav-contact{background:var(--blue);color:white;border-radius:5px;width:220px;height:65px;justify-content:center;gap:32px}.down{position:relative}.down img+img{position:absolute;left:6px;top:8px}.menu-toggle{display:none}.hero{height:69.3056cqw;position:relative;color:#fff}.hero-bg{position:absolute;inset:0;background:linear-gradient(#1e50a299,#1e50a299),url('../image/2a415.png') -1px -15px / 100% auto;background-blend-mode:multiply;mask:url('../image/64ae6.svg') 0 0 / 100% 100% no-repeat}.hero-photo{position:absolute;left:38.6806%;top:15.4309%;width:59.0972%;height:74.3487%;mask:url('../image/d7b0c.svg') center / 100% 100% no-repeat;overflow:hidden}.hero-photo img{position:absolute;max-width:none;object-fit:cover}.photo-under{width:151.59%;height:119.14%;left:-10.1%;top:-8.09%}.photo-main{width:139.13%;height:109.43%;left:-25.62%;top:-5.93%}.corner{position:absolute;transform-origin:top left;scale:calc(100cqw / 1440px)}.c1{left:40.5556%;top:17.3347%}.c2{left:96.5972%;top:17.3347%;transform:rotate(90deg)}.c3{left:40.5556%;top:88.477%;transform:scaleY(-1)}.c4{left:96.5972%;top:88.477%;transform:rotate(-90deg) scaleY(-1)}.hero-orbit{position:absolute;left:27.2222%;top:28.1563%;scale:calc(100cqw / 1440px);transform-origin:top left}.hero-copy{position:absolute;left:5.4861%;top:34.5691%;z-index:2}.hero h1,footer h2{font-size:3.8889cqw;line-height:1.45;font-weight:800;letter-spacing:.7778cqw}.hero h1 em{background:#fff;color:var(--blue)}.hero-copy>p{font-size:1.1111cqw;line-height:22px;letter-spacing:.1111cqw;margin-top:20px}.hero-actions{display:grid;gap:11px;margin-top:34px}.button{width:394px;min-height:65px;border:1px solid #5782c8;border-radius:5px;display:flex;align-items:center;justify-content:space-between;padding:0 44px;font-size:18px;font-weight:600;text-align:left;transition:background .2s,opacity .2s}.solid{background:#fff;color:var(--blue);border-color:#fff}.blue{color:var(--blue)}.button img{margin-right:-20px}.scroll{position:absolute;left:20px;top:621px;display:block}.scroll span{writing-mode:vertical-rl;font-family:'Kaiti SC',Georgia,serif;letter-spacing:3.2px}.scroll-line{position:absolute;top:69px;left:11px;transform:rotate(90deg);transform-origin:top left}.scroll-dot{position:absolute;left:5px;top:193px}.section{margin:0 40px}.about{display:grid;grid-template-columns:40.4% 59.6%;padding:107px 4px 93px;min-height:610px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.about h2{font-size:76px;font-weight:600;line-height:1.5;max-width:529px}.about h2 span{color:var(--blue)}.about-text{font-size:26px;letter-spacing:2.6px;line-height:52px;padding:22px 0 0 7px}.section-heading{display:flex;align-items:baseline;gap:24px;padding-bottom:19px;border-bottom:1px solid var(--line)}.section-heading h2,.company h2{font-family:'Kaiti SC',Georgia,serif;font-size:96px;line-height:1.1;color:var(--blue);font-weight:900}.section-heading>span{font-size:16px;font-weight:600}.middle{background:linear-gradient(to bottom,#fff 0%,#fff 23%,#e6efff 100%)}.service-layout{display:grid;grid-template-columns:minmax(0,642fr) minmax(0,666fr);gap:45px;padding-top:48px}.program-label{display:flex;align-items:center;gap:16px;width:max-content;max-width:100%;padding:5px 13px;background:linear-gradient(#1e50a266,#1e50a266),url('../image/2a415.png') center/1438px auto;background-blend-mode:multiply;color:white;font-size:26px;font-weight:600;line-height:40px;mask:url('../image/aecdd.svg') 0 0 / 100% 100% no-repeat}.service h3{color:var(--blue);font-size:56px;line-height:1.5;font-weight:600;white-space:nowrap;margin:12px 0 20px -36px;letter-spacing:-1.5px}.service-text{font-size:18px;line-height:36px;max-width:642px;padding-left:6px}.service-copy>.button{margin:36px 0 0 11px}.service-visual{width:100%;height:auto;object-fit:contain;align-self:start}.strengths{padding-top:132px}.strength-layout{display:grid;grid-template-columns:40.2% 53.8%;gap:6%;padding:32px 4px 0}.strength-photo{aspect-ratio:547/710;overflow:hidden;mask:url('../image/63286.svg') 0 0 / 100% 100% no-repeat}.strength-photo img{width:104.57%;height:120.7%;max-width:none;object-fit:cover;margin-left:-.73%;margin-top:-15.9%}.strength-card{padding:33px 30px 38px;border-bottom:1px solid #d9d9d9}.strength-card:last-child{border:0}.strength-card.featured{background:linear-gradient(#1e50a266,#1e50a266),url('../image/2a415.png') -3px -297px /735px 1304px;background-blend-mode:multiply;color:white;mask:url('../image/daf84.svg') 0 0 / 100% 100% no-repeat;min-height:284px}.strength-card .number{font-family:'Kaiti SC',Georgia,serif;color:var(--line);font-size:26px;margin-bottom:18px;line-height:1.2}.strength-card h3{font-size:36px;font-weight:600;line-height:46px;color:var(--blue);margin-bottom:26px}.strength-card.featured h3{color:#fff;margin-bottom:20px}.strength-card>p:not(.number){font-size:16px;line-height:28px}.narrow{max-width:1024px;margin-left:auto;margin-right:auto}.news{display:grid;grid-template-columns:170px 1fr;padding:75px 0 93px}.news h2{font-size:46px;color:var(--blue);font-family:'Kaiti SC',Georgia,serif;line-height:1.2}.news>div>p{font-size:16px;font-weight:600;margin-top:12px}.news article{border-top:1px solid #b5ccf2;padding:30px 5px 40px;min-height:213px}.news article:last-child{border-bottom:1px solid #b5ccf2}.news-meta{display:flex;gap:38px;align-items:center;margin-bottom:16px;font-size:14px}.news time{color:var(--line);font-family:'Kaiti SC',Georgia,serif;font-size:16px}.news h3{font-size:20px;font-weight:500;line-height:28px;margin-bottom:18px}.news article>p{font-size:16px;line-height:22px}.text-link,.news-link{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.news-link{font-weight:600}.company{padding-top:58px;padding-bottom:68px}.company-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:30px;margin-bottom:34px}.company-heading p{font-size:16px;font-weight:600;margin-top:13px}.company-heading button{display:flex;align-items:center;gap:22px;color:var(--blue);font-size:18px;font-weight:600;margin-bottom:20px}.company-table>div{display:grid;grid-template-columns:240px 1fr;padding:24px;min-height:71px;font-size:16px;line-height:24px}.company-table>div:nth-child(odd){background:linear-gradient(to right,#f4f7fc,#d3e3ff)}.company-table dd{min-width:0}.company-table .address{padding-bottom:40px}.map{display:block;overflow:hidden;aspect-ratio:723/351;margin-top:22px;mask:url('../image/5dcbe.svg') 0 0 / 100% 100% no-repeat}.map img{width:110.1%;height:151.85%;object-fit:cover;max-width:none;margin-left:-7.19%;margin-top:-12.58%}.contact{position:relative;min-height:526px;color:white;background:linear-gradient(#1e50a299,#1e50a299),url('../image/2a415.png') center -483px /1440px 2554px;background-blend-mode:multiply}.contact:before{content:'';position:absolute;inset:0;mask:url('../image/badfb.svg') 0 0/100% 100% no-repeat;pointer-events:none}.back-top{position:absolute;right:22px;top:-53px;width:106px;height:106px;transform:rotate(45deg);background:var(--blue);display:flex;align-items:flex-start;justify-content:flex-start;padding:22px}.back-top img{transform:rotate(-135deg);margin-top:8px}.contact-symbol{position:absolute;right:43px;top:27px}.contact-copy{position:relative;padding:125px 61px 120px;z-index:1}.contact h2{font-size:42px;line-height:52px;font-weight:600}.contact-copy>p{font-size:16px;line-height:36px;margin:8px 0 23px}.contact .button{border-color:#fff}.contact-english{position:absolute;bottom:10px;left:0;white-space:nowrap;color:#2e70db;font-family:'Kaiti SC',Georgia,serif;font-size:126px;line-height:52px;letter-spacing:12.6px;pointer-events:none}footer{position:relative;padding:71px 61px 40px;min-height:668px}footer h2 em{background:var(--blue);color:white}.footer-description{font-size:16px;line-height:22px;letter-spacing:1.6px;margin-top:22px}footer nav{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:40px;font-size:16px;line-height:36px}footer nav .sub-link{padding-left:19px;margin-top:-20px;margin-bottom:0}.footer-brand{position:absolute;bottom:15px;right:17px;display:grid;justify-items:end}.footer-brand small{color:#acacac;font-size:10px;letter-spacing:2px;line-height:36px}.footer-brand img{object-fit:contain}dialog{border:0;border-radius:10px;padding:40px;max-width:min(600px,90vw);color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#09234999}dialog h2{font-size:26px;color:var(--blue);margin:0 25px 24px 0}dialog p{line-height:1.9;margin:14px 0}dialog .button{max-width:100%;margin-top:24px}.dialog-close{position:absolute;right:16px;top:10px;font-size:32px}.dialog-phone{font-size:28px;color:var(--blue);font-weight:600}
@media(min-width:769px) and (max-width:1250px){.header{padding-left:24px}.header nav{gap:35px;padding-left:30px}.brand{transform:scale(.8);transform-origin:left center}.hero-actions{margin-top:20px}.hero-copy>p{line-height:1.6}.hero .button{width:28cqw;min-height:4.5cqw;font-size:1.25cqw;padding:0 3cqw}.scroll{top:43cqw}.about{min-height:520px;padding-top:80px}.about h2{font-size:5.28cqw}.about-text{font-size:1.8056cqw;line-height:3.61cqw;letter-spacing:.18cqw}.service h3{font-size:3.89cqw;margin-left:-20px}.program-label{font-size:1.8cqw}.service-text{font-size:16px;line-height:2}.narrow{width:calc(100% - 100px)}.strength-card{padding:25px 20px}.strength-card h3{font-size:2.5cqw;line-height:1.4}.company-table>div{grid-template-columns:180px 1fr}.contact-copy>p{max-width:75%}}
@media(max-width:768px){.header{height:90px;padding:0 20px;align-items:center}.brand{transform:scale(.72);transform-origin:left center;width:235px}.menu-toggle{display:block;color:#fff;border:1px solid #8eadde;padding:8px;font-size:12px}.header nav{display:none;position:absolute;top:80px;right:16px;height:auto;padding:20px;box-shadow:0 6px 20px #0002;gap:22px;align-items:stretch;flex-direction:column}.header nav.is-open{display:flex}.hero{height:auto;min-height:850px;background:#1e50a2}.hero-bg{mask:none;background-size:auto 1500px}.hero-photo{left:14%;top:115px;width:82%;height:380px}.hero-copy{left:24px;right:24px;top:455px}.hero h1,footer h2{font-size:clamp(22px,5.6vw,40px);letter-spacing:.08em;line-height:1.65}.hero h1{white-space:nowrap;text-shadow:0 1px 10px #16448955}.hero-copy>p{font-size:14px;line-height:1.9;letter-spacing:.04em;margin-top:20px}.hero-copy>p br{display:none}.hero-actions{margin-top:26px;gap:12px}.hero .button{width:100%;min-height:56px}.corner,.hero-orbit,.scroll{display:none}.section{margin:0 24px}.about{grid-template-columns:1fr;gap:30px;padding:65px 0 75px;min-height:0}.eyebrow{font-size:14px}.about h2{font-size:42px;line-height:1.55;max-width:330px;margin-top:14px}.about-text{padding:0;font-size:18px;line-height:2;letter-spacing:.08em}.section-heading{gap:18px;padding-bottom:18px;flex-wrap:wrap}.section-heading h2,.company h2{font-size:58px}.section-heading>span{font-size:13px}.service-layout{grid-template-columns:1fr;padding-top:28px;gap:30px}.program-label{font-size:clamp(11px,3.1vw,20px);line-height:30px;gap:8px;padding:6px 8px}.service h3{font-size:clamp(22px,5.3vw,36px);margin:24px 0;letter-spacing:0}.service-text{font-size:16px;line-height:2;padding:0}.service-copy>.button{margin:28px 0 0}.button{width:100%;min-height:60px;font-size:16px;padding:0 28px}.button img{margin-right:0}.service-visual{grid-row:1}.strengths{padding-top:75px}.strength-layout{grid-template-columns:1fr;gap:28px;padding:28px 0 0}.strength-photo{max-height:450px;aspect-ratio:auto;mask:none}.strength-photo img{width:100%;height:450px;margin:0;object-fit:cover}.strength-card{padding:28px 22px}.strength-card h3{font-size:26px;line-height:1.6;margin-bottom:16px}.strength-card .number{font-size:22px;margin-bottom:12px}.strength-card.featured{mask:none;background-size:cover;min-height:0}.narrow{width:auto;margin-left:24px;margin-right:24px}.news{grid-template-columns:1fr;gap:24px;padding:60px 0}.news>div:first-child{display:flex;align-items:center;gap:20px}.news>div>p{margin:0}.news article{padding:26px 0}.news h3{font-size:18px}.news article>p{font-size:14px;line-height:1.8}.company{padding:60px 0 90px}.company-heading{display:block;padding-bottom:24px;margin-bottom:24px}.company-heading button{margin:22px 0 0;font-size:15px}.company-table>div{grid-template-columns:1fr;gap:10px;padding:20px 16px;font-size:14px}.company-table dt{font-weight:600}.company-table .address{padding-bottom:20px}.map{margin-top:16px}.contact{min-height:440px;background-size:auto 1800px}.contact-copy{padding:65px 24px 80px}.contact h2{font-size:27px;line-height:1.6}.contact-copy>p{font-size:14px;line-height:1.9;margin:20px 0}.contact-symbol{right:-180px;top:0;opacity:.4}.contact-english{font-size:55px;letter-spacing:5px;bottom:0}.back-top{width:70px;height:70px;top:-35px;right:20px;padding:14px}.back-top img{margin-top:2px}footer{padding:55px 24px 30px;min-height:0}.footer-description{font-size:14px;line-height:2;letter-spacing:.04em;margin-top:24px}footer nav{font-size:14px;margin-top:28px;gap:12px}.footer-brand{position:static;margin-top:42px}.footer-brand img{width:280px;height:auto}.footer-brand small{font-size:8px;letter-spacing:0;line-height:2;margin-top:10px}dialog{padding:30px 24px}dialog h2{font-size:22px}.dialog-phone{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep the header outside the page's clipping/container context. */
html { scroll-padding-top: 155px; }
.header {
  position: fixed;
  max-width: 1440px;
  margin-inline: auto;
  z-index: 50;
  transition: background-color .2s, box-shadow .2s;
}
.brand .brand-scrolled { display: none; }
.header.is-scrolled {
  height: 130px;
  background: #fff;
  box-shadow: 0 4px 30px rgba(0, 0, 0, .15);
}
.header.is-scrolled .brand > img:not(.brand-scrolled),
.header.is-scrolled .brand > span { display: none; }
.header.is-scrolled .brand .brand-scrolled {
  display: block;
  width: 290px;
  height: 75px;
  object-fit: cover;
}
@media (max-width: 768px) {
  html { scroll-padding-top: 110px; }
  .header.is-scrolled { height: 90px; }
  .header.is-scrolled .menu-toggle { color: var(--blue); }
}

/* Mobile-only artwork and line breaks. */
.sp-break,.mobile-contact,.sp-chevron,.sp-small-chevron,.sp-strength-photo { display:none; }
.header.is-scrolled .brand>picture { display:none; }
picture { display:block; }
.map picture { display:contents; }

/* Desktop promotion card; artwork and measurements match Figma 31:368. */
.program-banner {
  position:fixed;
  right:13px;
  bottom:13px;
  width:341px;
  height:129px;
  z-index:40;
  border:1px solid #cfdbf0;
  border-radius:5px;
  background:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
}
.program-banner[hidden] { display:none; }
.banner-open { display:flex;width:100%;height:100%;text-align:left;border-radius:5px; }
.banner-photo { position:relative;flex:0 0 140px;height:129px;margin:-1px 0 0 -1px;overflow:hidden;border-radius:5px 0 0 5px;mask:url('../image/6065f.svg') 0 0/140px 129px no-repeat; }
.banner-photo>img { position:absolute;width:424px;height:238px;max-width:none;left:-79px;top:-23px;object-fit:cover; }
.banner-photo:after { content:'';position:absolute;inset:0;background:linear-gradient(135.74deg,rgba(30,80,162,0) 67%,rgba(0,97,255,.6)); }
.banner-copy { padding:18px 10px 0 11px;min-width:0; }
.banner-title { display:block;color:var(--blue);font-size:18px;font-weight:600;line-height:22px;white-space:nowrap; }
.banner-cta { display:flex;align-items:center;justify-content:space-between;width:179px;height:29px;margin-top:13px;padding:0 9px 0 12px;border-radius:3px;background:var(--blue);color:#fff;font-size:12px;line-height:22px;font-weight:600; }
.banner-close { position:absolute;right:-14.5px;top:-18.5px;width:44px;height:44px;display:grid;place-items:center; }
.banner-close>span { position:relative;display:block; }
.banner-close-mark { position:absolute;left:6.65px;top:6.65px; }
@media (max-width:768px) { .program-banner { display:none; } }
