:root{--ink:#011a3d;--teal:#3d8282;--yellow:#f2e98f;--blue:#f1f9fa;--pale:#f7fbfc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;font-size:15px;line-height:1.9}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #226b7b;outline-offset:5px}.skip{position:fixed;left:12px;top:-100px;z-index:20;background:white;padding:12px}.skip:focus{top:10px}header{background:#fff;border-bottom:1px solid #edf0f0}.header-inner{max-width:1120px;margin:auto;min-height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:block;line-height:0}.brand img{width:124px;height:auto}nav{display:flex;gap:34px}nav a{text-decoration:none;font-size:14px;font-weight:500}nav a:hover{color:var(--teal)}.menu-toggle{border:1px solid var(--teal);background:white;border-radius:4px;padding:7px 12px;color:var(--ink)}.hero{position:relative;isolation:isolate;min-height:480px;display:grid;align-items:center}.hero-image{display:block;width:100%;height:auto;grid-area:1/1;align-self:start;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.4);z-index:-1}.hero-copy{grid-area:1/1;width:min(1040px,calc(100% - 80px));margin:auto;padding:38px 0}h1{font-size:clamp(25px,2.65vw,38px);line-height:1.85;color:#090d10;margin:0 0 26px;font-weight:700;letter-spacing:.015em}h1 span{display:inline-block}.hero-copy p{color:#10151a;font-weight:600;margin:0 0 26px;line-height:1.9}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:132px;border:0;border-radius:40px;background:var(--yellow);color:#202719;padding:12px 24px;font-weight:600;text-decoration:none;cursor:pointer}.button:hover:not(:disabled){background:#e8df78}.button:disabled{cursor:not-allowed;opacity:.6}.section{padding:72px 24px;scroll-margin-top:15px}.about,.contact{background:var(--blue)}.services{background:var(--pale);padding-top:100px;padding-bottom:100px}.panel{max-width:940px;margin:auto;border:2px solid var(--teal);border-radius:24px;background:#fff;padding:30px 46px 40px;box-shadow:0 9px 24px #153c4510}h2{text-align:center;font-size:27px;font-weight:500;line-height:1.5;margin:0 0 26px}.about p{margin:0;line-height:2;font-weight:500}.accordion details{background:#f7fbfc;border:1px solid #e0e4e5;margin:12px 0;box-shadow:0 1px 2px #0000000d}.accordion summary{list-style:none;font-size:21px;font-weight:600;cursor:pointer;padding:17px 20px;position:relative;display:flex;gap:16px;align-items:center}.accordion summary::-webkit-details-marker{display:none}.accordion summary:before{content:'+';color:#9b8c23;font-size:26px;line-height:1;width:20px;flex-shrink:0}.accordion details[open] summary:before{content:'−'}.accordion summary:after{content:'';position:absolute;bottom:0;left:0;width:30%;height:2px;background:var(--yellow)}.service-body{padding:4px 25px 20px;background:#fff;line-height:2}.service-body p{margin:16px 0 0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;list-style:none;margin:36px 0 12px;padding:0;text-align:center}.steps img{display:block;width:72px;height:72px;margin:0 auto 32px}.steps h3{font-size:23px;font-weight:500;margin:0 0 16px}.steps p{margin:0;font-size:14px;font-weight:500}.contact .panel{padding:28px 36px 36px}.contact-intro{text-align:center;font-size:18px;margin:0 0 26px}.notice{background:#fffcdf;border-left:3px solid #c5b94e;padding:12px 16px;font-size:14px;line-height:1.8;margin:24px 0}form{max-width:800px;margin:auto}label{display:block;margin:21px 0 10px;font-weight:500;font-size:14px}input:not([type=checkbox]),textarea{display:block;width:100%;border:1px solid #cdd1d4;border-radius:4px;background:#fff;color:#273748;padding:9px 12px;min-height:42px}textarea{resize:vertical;min-height:180px}::placeholder{color:#747a7e;font-size:14px}.submit-row{text-align:center;margin-top:30px}#form-status{margin:16px 0 0;overflow-wrap:anywhere}#form-status[data-state=error]{color:#9b2525}#form-status[data-state=success]{color:#246448}footer{text-align:center;padding:38px 24px;color:#4b5c65;font-size:13px}.location{display:inline-block;margin-left:20px}footer small{font-size:12px}.back-top{position:fixed;right:20px;bottom:20px;width:42px;height:42px;display:grid;place-items:center;background:#3d595de6;color:white;text-decoration:none;border-radius:4px}.mobile-break{display:none}[hidden]{display:none!important}
.menu-toggle{display:none}
@media(min-width:1500px){.hero-copy{width:1120px}.hero{max-height:none}}
@media(max-width:760px){html{scroll-padding-top:20px}.header-inner{min-height:68px;flex-wrap:wrap;padding:0 20px}.brand img{width:100px}.menu-toggle{display:block}nav{width:100%;flex-direction:column;gap:0;padding:8px 0 20px}nav a{padding:10px;border-bottom:1px solid #edf1f1}.hero{min-height:0;display:flex;flex-direction:column}.hero-copy{order:0;width:100%;padding:35px 24px 18px}.hero-image{order:1;z-index:0;opacity:.8}.hero:after{display:none}h1{font-size:clamp(21px,4.9vw,32px);line-height:1.85;margin-bottom:18px}h1 span{display:inline}.hero-copy p{font-size:13px;margin-bottom:22px}.button{font-size:14px}.section,.services{padding:48px 18px}.panel,.contact .panel{padding:25px 22px 30px;border-radius:22px}h2{font-size:23px;margin-bottom:20px}.about p{font-size:14px;line-height:2}.accordion summary{font-size:17px;padding:16px 12px;gap:10px}.service-body{padding:2px 16px 18px;font-size:14px}.steps{grid-template-columns:repeat(2,1fr);gap:34px 20px;margin-top:30px}.steps img{margin-bottom:14px;width:64px;height:64px}.steps h3{font-size:20px;margin-bottom:10px}.steps p{font-size:13px}.contact-intro{font-size:15px}.mobile-break{display:block}.notice{font-size:13px}input:not([type=checkbox]),textarea{font-size:16px}.location{display:block;margin:4px 0 0}.back-top{right:10px;bottom:10px;width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero h1 .keep{white-space:nowrap;display:inline}
/* Keep the full illustration on desktop; frame the three people on mobile. */
.hero-art{grid-area:1/1;align-self:start;z-index:-2;width:100%}
@media(max-width:760px){
  .hero-art{order:1;z-index:0;position:relative;overflow:hidden;aspect-ratio:3/2}
  .hero-art .hero-image{position:absolute;width:190%;max-width:none;height:auto;left:-58%;bottom:0}
}
.captcha-area{margin-top:24px;font-size:13px}.captcha-area p{margin-bottom:12px}.form-note{font-size:13px;line-height:1.8;color:#4b5c65}main:focus{outline:none}
/* On phones and small tablets, overlap only the upper third of the illustration. */
@media(max-width:900px){
  .hero{min-height:0;display:flex;flex-direction:column}
  .hero:after{display:none}
  .hero-copy{order:0;position:relative;z-index:1;width:100%;margin:0 0 -22.222222%;padding:35px 24px 0}
  .hero-art{order:1;z-index:0;position:relative;overflow:hidden;aspect-ratio:3/2;flex-shrink:0}
  .hero-art .hero-image{position:absolute;width:190%;max-width:none;height:auto;left:-58%;bottom:0;opacity:.8}
}

/* Preserve the approved 1024px composition on larger desktop screens. */
@media(min-width:1025px){
  .hero{max-width:1024px;margin-inline:auto}
  .hero-copy{width:calc(100% - 80px)}
  .hero h1{font-size:27.136px}
}
