/* Shared design tokens, reset, typography and UI primitives. Loaded before page CSS. */
:root{--sp-ink:#142d32;--sp-teal:#0d7486;--sp-yellow:#f2c94c;--sp-muted:#526468;--sp-line:#d0dedd;--sp-paper:#edf3f1;--sp-font:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
html{scroll-behavior:auto}
.sp-faq-list details.is-animating{overflow:hidden}
body.sp-home{margin:0;background:#fff;color:var(--sp-ink);font-family:var(--sp-font);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}
.sp-home *{box-sizing:border-box}.sp-home a{color:inherit;text-decoration:none}.sp-home img{display:block;max-width:100%;height:auto}.sp-home h1,.sp-home h2,.sp-home h3,.sp-home p,.sp-home ul,.sp-home ol,.sp-home figure,.sp-home blockquote{margin:0}.sp-home ul,.sp-home ol{padding:0;list-style:none}.sp-home button{font:inherit}.sp-home [hidden]{display:none!important}.sp-home main{overflow:clip}.sp-home :is(a,button,summary):focus-visible{outline:3px solid var(--sp-teal);outline-offset:5px}.sp-home :is(.sp-hero,.sp-proposal,.sp-contact) a:focus-visible{outline-color:var(--sp-yellow)}
.sp-container{width:calc(100% - 96px);max-width:1200px;margin-inline:auto}.sp-section{padding-block:110px}.sp-home [id]{scroll-margin-top:110px}.sp-home h2{font-size:46px;line-height:1.5;font-weight:900;letter-spacing:.025em}.sp-home h3{font-weight:800;line-height:1.5}.sp-home em{font-style:normal;color:var(--sp-teal)}.sp-mobile-br{display:none}.sp-kicker{display:flex;align-items:center;gap:15px;color:var(--sp-teal);font:bold 12px/1.7 Arial,var(--sp-font);letter-spacing:.15em;margin-bottom:18px!important}.sp-kicker:before{content:"";width:27px;height:3px;background:currentColor}.sp-kicker>span{font-family:var(--sp-font);letter-spacing:.04em;font-size:12px}.sp-note{font-size:12px;line-height:1.8;color:var(--sp-muted);margin-top:18px!important}.sp-center{text-align:center}.sp-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:68px;padding:18px 25px;font-weight:800;font-size:16px;line-height:1.6;transition:background .18s,box-shadow .18s,transform .18s}.sp-button-yellow{background:var(--sp-yellow);color:var(--sp-ink)!important}.sp-button-yellow:hover{background:#ffdb68;transform:translateY(-2px);box-shadow:0 6px 0 #142d3220}.sp-button-outline{border:1px solid var(--sp-teal);color:var(--sp-teal)!important;background:transparent}.sp-button-outline:hover{background:#e1eeeb}.sp-arrow{font:27px/1 Arial,sans-serif;flex-shrink:0}.sp-text-link{display:inline-flex;align-items:center;gap:30px;font-size:15px;line-height:1.6;font-weight:800;min-height:44px;border-bottom:1px solid var(--sp-teal);color:var(--sp-teal)!important}.sp-text-link:hover{border-bottom-width:3px}.sp-text-link>span{font:24px/1 Arial,sans-serif}.sp-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:55px;margin-bottom:45px}.sp-heading-description{max-width:490px;color:var(--sp-muted);font-size:16px;line-height:2}.sp-heading-description .sp-text-link{margin-top:18px}.sp-centered-heading{text-align:center}.sp-centered-heading .sp-kicker{justify-content:center}.sp-centered-heading>p:last-child{font-size:17px;color:var(--sp-muted);line-height:1.95;margin-top:20px}.sp-illustration{width:100%;height:auto;display:block}
