:root{--c-primary:#0f6483;--c-primary-dark:#12414f;--c-body:#3d6070;--c-sub:#526c78;--c-mark:#5e7c87;--c-faint:#8fa7b0;--c-line:#cddfe4;--c-surface:#e3edf0;--c-surface-pale:#f5fafb;--c-white:#fff;--c-footer-accent:#8fbece;--ff-latin:"Jost", sans-serif;--ff-mincho:"Zen Old Mincho", "Noto Serif JP", serif;--ff-sans:"Noto Sans JP", sans-serif;--wrap:1120px;--gutter:32px;--header-h:63px;--sp:1}.page-tail{height:calc(64px * var(--sp))}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--c-white);color:var(--c-primary-dark);font-family:var(--ff-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15.5px;line-height:2.15}a{color:var(--c-primary);text-decoration:none;transition:color .16s}a:hover{color:var(--c-primary-dark)}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button,input,textarea{font-family:var(--ff-sans)}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.jp{line-break:strict;word-break:normal;text-wrap:balance}.nb{display:inline-block}.skip-link{z-index:100;background:var(--c-primary);color:#fff;padding:10px 16px;position:absolute;top:0;left:-9999px}.skip-link:focus{color:#fff;top:16px;left:16px}.wrap{max-width:var(--wrap);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.wrap-820{max-width:820px}.wrap-860{max-width:860px}.wrap-900{max-width:900px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;display:grid}.grid-2-280{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;display:grid}.grid-cards{gap:24px;display:grid}.bg-surface{background:var(--c-surface)}.bg-pale{background:var(--c-surface-pale)}.bg-dark{background:var(--c-primary-dark);color:#fff}.bg-primary{background:var(--c-primary);color:#fff}.bt-surface{border-top:1px solid var(--c-surface)}.bt-line{border-top:1px solid var(--c-line)}.bb-line{border-bottom:1px solid var(--c-line)}.eyebrow{font-family:var(--ff-latin);letter-spacing:.28em;color:var(--c-sub);margin-bottom:22px;font-size:12px}.h1{font-family:var(--ff-mincho);letter-spacing:.06em;color:var(--c-primary-dark);font-size:clamp(30px,4vw,46px);font-weight:400;line-height:1.5}.h2{font-family:var(--ff-mincho);letter-spacing:.05em;color:var(--c-primary-dark);font-size:clamp(21px,2.6vw,26px);font-weight:400;line-height:1.6}.h2-lg{font-size:clamp(24px,3vw,31px)}.h2-xl{font-size:clamp(25px,3.3vw,33px)}.mincho{font-family:var(--ff-mincho)}.latin{font-family:var(--ff-latin)}.body{color:var(--c-body);font-size:16px;line-height:2.2}.body-md{color:var(--c-body);font-size:15.5px;line-height:2.15}.body-sm{color:var(--c-body);font-size:14.5px;line-height:2.05}.note{letter-spacing:.04em;color:var(--c-sub);font-size:13px;line-height:1.9}.strong{color:var(--c-primary-dark);font-weight:500}.dark .body,.dark .body-md,.dark .body-sm{color:var(--c-line)}.stack{flex-direction:column;display:flex}.subhead{letter-spacing:.04em;color:var(--c-primary-dark);font-size:16px;font-weight:500}.btn{letter-spacing:.1em;padding:17px 40px;font-size:15px;transition:background .18s,color .18s,border-color .18s;display:inline-block}.btn-primary{background:var(--c-primary);color:#fff}.btn-primary:hover{background:var(--c-primary-dark);color:#fff}.btn-outline{border:1px solid var(--c-line);color:var(--c-primary);padding:17px 32px}.btn-outline:hover{border-color:var(--c-primary);color:var(--c-primary)}.btn-white{color:var(--c-primary);background:#fff}.btn-white:hover{background:var(--c-surface);color:var(--c-primary)}.photo{background:var(--c-surface);width:100%;max-width:100%;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.photo-hover:hover img{transform:scale(1.03)}.next-link{border:1px solid var(--c-line);background:#fff;justify-content:space-between;align-items:center;gap:20px;padding:26px 28px;transition:border-color .2s,background .2s;display:flex}.next-link:hover{border-color:var(--c-primary);background:var(--c-surface-pale)}.next-link .label{letter-spacing:.03em;color:var(--c-primary);font-size:16.5px}.next-link .arrow{font-family:var(--ff-latin);color:var(--c-primary);flex-shrink:0;font-size:19px}.practical-tag{font-family:var(--ff-latin);letter-spacing:.24em;color:var(--c-primary);border:1px solid var(--c-primary);padding:5px 10px;font-size:11px}.practical-band{background:var(--c-surface-pale);border:1px solid var(--c-line);flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;display:flex}.practical-band .text{letter-spacing:.04em;color:var(--c-primary-dark);font-size:15px}.spec-row{border-top:1px solid var(--c-line);grid-template-columns:96px minmax(0,1fr);gap:20px;padding:18px 0;display:grid}.spec-row:last-child{border-bottom:1px solid var(--c-line)}.spec-row .k{color:var(--c-primary-dark);letter-spacing:.06em;font-size:14px;font-weight:500}.spec-row .v{color:var(--c-body);font-size:14.5px;line-height:1.95}.dash-list{flex-direction:column;gap:14px;display:flex}.dash-item{color:var(--c-body);grid-template-columns:20px minmax(0,1fr);gap:12px;font-size:15.5px;line-height:2.05;display:grid}.dash-item .dash{color:var(--c-sub)}.feature{border-top:2px solid var(--c-primary);flex-direction:column;gap:16px;padding-top:22px;display:flex}.feature .num{font-family:var(--ff-latin);letter-spacing:.24em;color:var(--c-primary);font-size:13px}.feature .title{letter-spacing:.04em;color:var(--c-primary-dark);font-size:18px;font-weight:500}.tag{letter-spacing:.04em;color:var(--c-primary);border:1px solid var(--c-line);background:#fff;padding:7px 14px;font-size:13px}.card{border:1px solid var(--c-line);background:#fff;flex-direction:column;gap:14px;padding:28px 26px;display:flex}.faq{flex-direction:column;display:flex}.faq details{border-top:1px solid var(--c-faint)}.faq details:last-child{border-bottom:1px solid var(--c-faint)}.faq summary{cursor:pointer;color:var(--c-primary-dark);letter-spacing:.03em;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px 0;font-size:16px;font-weight:500;line-height:1.8;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .plus{font-family:var(--ff-latin);color:var(--c-primary);flex-shrink:0;font-size:20px;line-height:1.4;transition:transform .24s}.faq details[open] summary .plus{transform:rotate(45deg)}.faq .answer{color:var(--c-body);padding:0 0 26px;font-size:15px;line-height:2.1}.site-header{z-index:30;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--c-surface);background:#fffffff0;position:sticky;top:0}.site-header .inner{min-height:var(--header-h);justify-content:space-between;align-items:stretch;gap:28px;display:flex}.site-header .brand{color:var(--c-primary);flex-shrink:0;align-items:center;gap:11px;padding:14px 0;display:flex}.site-header .brand .wordmark{font-family:var(--ff-latin);letter-spacing:.26em;color:var(--c-primary-dark);font-size:18px}.site-nav{justify-content:flex-end;align-items:stretch;gap:2px;display:flex}.site-nav a.item{letter-spacing:.02em;color:var(--c-body);white-space:nowrap;align-items:center;padding:0 11px;font-size:12.5px;display:flex;position:relative}.site-nav a.item:hover,.site-nav a.item[aria-current=page]{color:var(--c-primary)}.site-nav a.item[aria-current=page]:after{content:"";background:var(--c-primary);height:2px;position:absolute;bottom:0;left:11px;right:11px}.site-nav .cta-wrap{align-items:center;padding-left:10px;display:flex}.site-nav .cta{letter-spacing:.05em;color:var(--c-primary);border:1px solid var(--c-primary);white-space:nowrap;padding:9px 15px;font-size:12.5px;transition:background .16s,color .16s}.site-nav .cta:hover{background:var(--c-primary);color:#fff}.header-mobile-actions{align-items:center;gap:6px;display:none}.header-mobile-actions .cta{letter-spacing:.05em;color:#fff;background:var(--c-primary);white-space:nowrap;padding:9px 13px;font-size:12.5px}.header-mobile-actions .cta:hover{color:#fff;background:var(--c-primary-dark)}.menu-toggle{cursor:pointer;width:44px;color:var(--c-primary-dark);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none}.menu-toggle .bars{width:20px;height:12px;position:relative}.menu-toggle .bars:before,.menu-toggle .bars:after{content:"";background:currentColor;height:1px;transition:transform .2s;position:absolute;left:0;right:0}.menu-toggle .bars:before{top:0}.menu-toggle .bars:after{bottom:0}.menu-toggle[aria-expanded=true] .bars:before{transform:translateY(5.5px)rotate(45deg)}.menu-toggle[aria-expanded=true] .bars:after{transform:translateY(-5.5px)rotate(-45deg)}.mobile-nav{border-top:1px solid var(--c-surface);background:#fff;display:none}.mobile-nav a{letter-spacing:.04em;color:var(--c-primary-dark);border-bottom:1px solid var(--c-surface);padding:16px 0;font-size:14.5px;display:block}.mobile-nav a[aria-current=page]{color:var(--c-primary)}.mobile-nav .cta{border:1px solid var(--c-primary);color:var(--c-primary);letter-spacing:.06em;margin:20px 0 24px;padding:12px 22px;font-size:13.5px;display:inline-block}.site-footer{background:var(--c-primary-dark);color:#fff}.site-footer .cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px;padding-top:64px;padding-bottom:28px;display:grid}.site-footer .head{font-family:var(--ff-latin);letter-spacing:.24em;color:var(--c-footer-accent);font-size:11px}.site-footer a{color:#fff;font-size:13.5px}.site-footer a:hover{color:var(--c-line)}.site-footer .muted{color:var(--c-line);font-size:13.5px;line-height:2}.site-footer .copyright{border-top:1px solid var(--c-body)}.site-footer .copyright .inner{font-family:var(--ff-latin);letter-spacing:.1em;color:var(--c-footer-accent);padding-top:20px;padding-bottom:20px;font-size:11px}.cta-bar{z-index:40;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--c-line);pointer-events:none;background:#fffffff5;transition:transform .42s cubic-bezier(.22,.8,.3,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.cta-bar.is-visible{pointer-events:auto;transform:translateY(0)}.cta-bar .inner{justify-content:space-between;align-items:center;gap:32px;display:flex}.cta-bar .lead{align-items:center;gap:14px;min-width:0;padding:14px 0;display:flex}.cta-bar .tagline{font-family:var(--ff-mincho);letter-spacing:.08em;color:var(--c-primary-dark);white-space:nowrap;font-size:15px}.cta-bar .rule{background:var(--c-line);flex-shrink:0;width:1px;height:15px}.cta-bar .sub{letter-spacing:.04em;color:var(--c-sub);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.cta-bar .actions{flex-shrink:0;align-self:stretch;align-items:stretch;display:flex}.cta-bar .go{background:var(--c-primary);color:#fff;letter-spacing:.08em;white-space:nowrap;align-items:center;padding:0 30px;font-size:13.5px;transition:background .18s;display:flex}.cta-bar .go:hover{background:var(--c-primary-dark);color:#fff}.cta-bar .close{cursor:pointer;width:44px;color:var(--c-faint);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:color .16s;display:flex}.cta-bar .close:hover{color:var(--c-primary-dark)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.field{flex-direction:column;gap:9px;display:flex}.field .label{letter-spacing:.06em;color:var(--c-primary-dark);font-size:13px}.field .req{color:var(--c-primary)}.req-mark,.opt-mark{letter-spacing:.08em;vertical-align:1px;margin-left:8px;padding:2px 7px;font-size:11px;line-height:1.5;display:inline-block}.req-mark{background:var(--c-primary);color:#fff}.opt-mark{border:1px solid var(--c-line);color:var(--c-sub)}.form-intro{background:var(--c-surface-pale);border:1px solid var(--c-line);margin-bottom:28px;padding:18px 20px}.form-intro .req-mark{margin-left:0;margin-right:6px}.field .hint{color:var(--c-sub);font-size:12.5px;line-height:1.7}.field input::placeholder,.field textarea::placeholder{color:var(--c-faint)}.form-alert{color:var(--c-primary-dark);background:#fbf3ef;border:1px solid #b4573a;margin-bottom:24px;padding:18px 20px;font-size:14.5px;line-height:1.9}.form-alert:focus{outline-offset:2px;outline:2px solid #b4573a}.form-alert-title{color:#b4573a;margin-bottom:6px;font-weight:500}.form-alert ul{margin:0;padding-left:1.2em}.form-alert a{color:#b4573a;text-decoration:underline}.form-alert p+p{margin-top:8px}.form-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:28px;display:flex}.field input,.field textarea{border:1px solid var(--c-line);width:100%;color:var(--c-primary-dark);background:#fff;border-radius:0;outline:none;padding:13px 14px;font-size:15px;line-height:1.6;transition:border-color .16s,box-shadow .16s}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px #0f64831a}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#b4573a}.field .error{color:#b4573a;font-size:12.5px;line-height:1.7}.check{cursor:pointer;align-items:center;gap:12px;display:flex}.check input{width:17px;height:17px;accent-color:var(--c-primary);margin:0}.check span{letter-spacing:.03em;color:var(--c-primary-dark);font-size:15px}.submit{background:var(--c-primary);color:#fff;letter-spacing:.12em;cursor:pointer;border:none;padding:18px 56px;font-size:15px;transition:background .18s}.submit:hover{background:var(--c-primary-dark)}.submit:disabled{background:var(--c-faint);cursor:default}.form-status{font-size:14.5px;line-height:2}.form-status.error{color:#b4573a}.form-done{border:1px solid var(--c-line);background:var(--c-surface-pale);scroll-margin-top:calc(var(--header-h) + 16px);flex-direction:column;gap:18px;padding:36px 32px;display:flex}.form-done:focus{outline:none}.contact-notes{margin-top:24px}.contact-notes .dash-item{font-size:14.5px;line-height:2}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}@media (max-width:767px){:root{--gutter:20px;--sp:.6}.site-nav{display:none}.header-mobile-actions,.menu-toggle{display:flex}.contact-photo{display:none}.site-footer .cols{gap:32px}.site-footer .stack a{padding:6px 0}.form-done{padding:28px 20px}.mobile-nav.is-open{display:block}.grid-2,.grid-2-280{gap:36px}.cta-bar .sub,.cta-bar .rule{display:none}.cta-bar .inner{gap:12px}.cta-bar .tagline{font-size:13.5px}.cta-bar .go{padding:0 18px;font-size:12.5px}.spec-row{grid-template-columns:80px minmax(0,1fr);gap:14px}.submit{width:100%;padding:18px 20px}.field input,.field textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.photo img{transition:none}.photo-hover:hover img{transform:none}}
