/* Shared theme and navigation. No framework or build step required. */
.pp-site{--blue:#2c68c7;--blue-dark:#204f9c;--ink:#172632;--muted:#546575;--line:#dce6f3;--tint:#f0f6ff;margin:0;color:var(--ink);background:#fff;font:400 16px/1.9 'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}
.pp-site *{box-sizing:border-box}.pp-site img{display:block;max-width:100%;height:auto}.pp-site a{color:inherit;text-decoration:none}.pp-site button{font:inherit;cursor:pointer}.pp-site h1,.pp-site h2,.pp-site h3,.pp-site p,.pp-site figure{margin:0}.pp-site h1,.pp-site h2,.pp-site h3{font-family:'Zen Kaku Gothic New',sans-serif;line-height:1.45}.pp-site a,.pp-site button{-webkit-tap-highlight-color:transparent}.pp-site :focus-visible{outline:3px solid #d48518;outline-offset:5px}.pp-site section{scroll-margin-top:125px}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding:104px 0}.eyebrow{font:600 14px/1.5 'Outfit',sans-serif;letter-spacing:.18em;color:var(--blue);display:flex;align-items:center;gap:14px}.eyebrow:before{content:'';width:28px;height:1px;background:currentColor}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:48px}.section-head h2{font-size:clamp(30px,3.3vw,46px);font-weight:700;letter-spacing:.015em;margin-top:18px}.section-intro{max-width:340px;color:var(--muted)}.text-link{display:inline-block;font-weight:600;color:var(--blue)!important;border-bottom:1px solid #94b8eb;padding:7px 0;margin-top:20px;font-size:14px;transition:border-color .2s}.text-link:hover{border-color:var(--blue-dark)}.actions{display:flex;flex-wrap:wrap;gap:14px}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--blue);border:1px solid var(--blue);color:#fff!important;min-height:54px;padding:12px 28px;border-radius:3px;font-size:14px;font-weight:600;transition:background .25s,box-shadow .25s}.button:hover{background:var(--blue-dark);box-shadow:0 6px 22px #204f9c22}.button-outline{color:var(--blue)!important;background:#ffffffd9}.button-outline:hover{background:#eef5ff}.skip-link{position:fixed;top:-70px;left:15px;z-index:1000;padding:10px 20px;background:var(--blue);color:#fff!important}.skip-link:focus{top:8px}.site-header{position:absolute;z-index:50;top:24px;left:50%;transform:translateX(-50%);width:min(1420px,calc(100% - 64px));display:flex;align-items:center;justify-content:space-between;gap:28px;padding:19px 30px;background:#fffffff5;border:1px solid #f4f7fa;border-radius:70px;box-shadow:0 4px 28px #1635540a}.brand{flex-shrink:0}.brand img{width:185px;height:auto}.site-nav{display:flex;align-items:center;gap:24px}.site-nav a{font-size:14px;font-weight:600;white-space:nowrap}.site-nav a:hover{color:var(--blue)}.site-nav .nav-contact{background:var(--blue);color:#fff;padding:10px 20px;border-radius:30px}.menu-toggle{display:none;background:none;border:0;color:var(--blue)}
.site-footer{padding:58px 0 25px;border-top:1px solid var(--line);background:#fff}.footer-top{display:flex;justify-content:space-between;gap:48px}.footer-address{font-size:14px;line-height:1.9;color:var(--muted);margin-top:22px!important}.footer-nav{display:grid;grid-template-columns:repeat(3,auto);gap:16px 32px;align-content:start;font-size:14px}.footer-nav a:hover{color:var(--blue)}.footer-bottom{margin-top:45px;padding-top:23px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}.footer-bottom a{text-decoration:underline;text-underline-offset:4px}.section-intro p{line-height:2}
.js-motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .8s cubic-bezier(.22,.7,.25,1)}.js-motion .reveal.is-visible{opacity:1;transform:none}.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{opacity:1!important;transform:none!important}.motion-toggle{border:0;border-bottom:1px solid #aec5d5;background:transparent;color:var(--muted);font-size:12px!important;padding:5px 0}
@media(min-width:1550px){.site-header{width:calc(100% - 112px)}}
@media(max-width:1150px){.wrap{width:calc(100% - 72px)}.site-header{padding:17px 24px;gap:18px}.brand img{width:160px}.site-nav{gap:16px}.site-nav a{font-size:13px}.site-nav .nav-contact{padding:10px 15px}}
@media(max-width:1000px){.site-header{width:calc(100% - 40px);top:18px}.menu-toggle{display:flex;align-items:center;gap:12px;font-size:14px!important}.menu-toggle span{width:22px;height:8px;border-block:1px solid}.site-nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 10px);border:1px solid var(--line);padding:20px 26px;background:#fff;border-radius:20px;box-shadow:0 15px 25px #16355414}.site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-nav a{font-size:16px;padding:13px 0}.site-nav .nav-contact{text-align:center;margin-top:10px}.section{padding:76px 0}.footer-nav{grid-template-columns:repeat(2,auto)}}
@media(max-width:650px){.wrap{width:calc(100% - 40px)}.site-header{top:12px;padding:15px 20px;width:calc(100% - 24px)}.brand img{width:145px}.section{padding:62px 0}.section-head{display:block;margin-bottom:30px}.section-head h2{font-size:30px}.section-intro{margin-top:22px;max-width:none}.eyebrow{font-size:12px;letter-spacing:.14em}.button{padding:12px 20px}.actions{gap:10px}.footer-top{display:block}.footer-nav{margin-top:32px;gap:16px 24px}.footer-bottom{flex-wrap:wrap;margin-top:30px}.desktop-break{display:none}.pp-site section{scroll-margin-top:25px}}
@media(prefers-reduced-motion:reduce){.pp-site *{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}

/* Gentle left-to-right text entrance, without splitting Japanese sentences. */
.js-motion .text-enter{opacity:0;transform:translateX(-32px);transition:opacity .85s ease,transform .95s cubic-bezier(.2,.7,.2,1)}
.js-motion .text-enter.is-text-visible{opacity:1;transform:translateX(0)}
.motion-paused .text-enter{opacity:1!important;transform:none!important;transition:none!important}
@media(max-width:650px){.js-motion .text-enter{transform:translateX(-18px)}.js-motion .text-enter.is-text-visible{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.js-motion .text-enter{opacity:1;transform:none;transition:none}}
