/* JII corporate shared stylesheet - extracted Phase 5b (2026-07-12) from the Phase 4 common style block.
   Tokens: ink #1a2a4a/#172641 / gold #9a7838 / rules #d6dee8/#e8edf3 / type scale 11/13/15/18/22/30/40px / breakpoints 1100/900/760. */
:root{--ink:#1a2a4a;--ink-mid:#172641;--ink-soft:#304466;--rule:#d6dee8;--bg:#fff;--bg-mid:#f5f7fa;--bg-soft:#fafbfc;--text:#1f2937;--text-mid:#4a5566;--text-dim:#5f6875;--accent:#9a7838;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--mono:'DM Mono',monospace;--max:1100px;--gutter:48px;--pad:64px;--nav-h:64px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.7}a{color:inherit}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}section{padding:var(--pad) 0}.label{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft)}.rule-accent{width:32px;height:2px;background:var(--accent);margin:14px 0 22px}.mincho-xl{font-family:var(--serif);font-size:clamp(30px,4vw,40px);font-weight:300;line-height:1.45;letter-spacing:0.04em;color:var(--ink)}.mincho-lg{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);font-weight:300;line-height:1.5;color:var(--ink)}@media(max-width:760px){:root{--gutter:22px;--pad:48px}}nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:rgba(255,255,255,0.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--rule);display:flex;align-items:center}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.nav-logo{text-decoration:none;font-family:var(--serif);font-size:18px;color:var(--ink);letter-spacing:0.04em}.nav-links{display:flex;gap:34px;list-style:none}.nav-links a{font-size:13px;color:var(--text);text-decoration:none;letter-spacing:0.04em}.nav-right{display:flex;align-items:center;gap:8px}.nav-en-link{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;color:var(--text-dim);border:1px solid var(--rule);padding:6px 10px;text-decoration:none}@media(max-width:900px){.nav-links{display:none}}.btn{display:inline-block;text-decoration:none;font-family:var(--sans);font-size:13px;letter-spacing:0.06em;padding:13px 28px;cursor:pointer;border:none}.btn-primary{background:var(--ink);color:#fff}.btn-outline{border:1px solid var(--ink-mid);color:var(--ink);background:transparent}.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-dim);padding:calc(var(--nav-h) + 32px) 0 0}.crumbs a{color:var(--text-dim);text-decoration:none}.crumbs span{margin:0 8px;color:var(--rule)}#top{padding:calc(var(--nav-h) + 44px) 0 60px;border-bottom:1px solid var(--rule);background:var(--bg-soft)}#top h1{margin:0 0 22px}.section-head{max-width:720px;margin-bottom:32px}.section-head p{font-size:15px;line-height:1.85;margin-top:12px}.scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--rule)}@media(max-width:900px){.scope-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.scope-grid{grid-template-columns:1fr}}.scope-card{background:var(--bg-soft);padding:22px 24px;min-height:140px}.scope-card .num{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;color:var(--ink-soft)}.scope-card h4{font-family:var(--sans);font-size:15px;color:var(--ink);margin:8px 0;font-weight:500;line-height:1.5}.scope-card p{font-size:13px;line-height:1.7}.deliv{background:#fff;border:1px solid var(--rule);padding:28px 32px}.deliv ul{list-style:none}.deliv li{position:relative;padding:10px 0 10px 24px;border-bottom:1px solid #e8edf3;font-size:15px;line-height:1.7}.deliv li::before{content:'◇';position:absolute;left:0;top:10px;color:var(--ink-soft);font-size:11px}.deliv li:last-child{border-bottom:none}.faq-list{max-width:720px}.faq-item{border-top:1px solid var(--rule)}.faq-item:last-child{border-bottom:1px solid var(--rule)}.faq-q{padding:22px 0;font-weight:500;color:var(--ink);line-height:1.5;font-size:15px}.faq-a{padding:0 0 22px;font-size:15px;line-height:1.85;max-width:720px}.cta-band{margin-top:36px;padding:28px 32px;border:1px solid var(--rule);background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}.cta-band h3{font-family:var(--serif);color:var(--ink);font-size:clamp(18px,2vw,22px);font-weight:400;line-height:1.5;margin:6px 0}.cta-band p{font-size:13px;color:var(--text-mid)}@media(max-width:760px){.cta-band{grid-template-columns:1fr}}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}@media(max-width:760px){.related-grid{grid-template-columns:1fr}}.related-card{background:#fff;border:1px solid var(--rule);padding:22px 24px;text-decoration:none}.related-card:hover{border-color:var(--ink-mid)}.related-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:var(--ink-soft);text-transform:uppercase}.related-card h4{font-family:var(--sans);color:var(--ink);font-size:15px;margin:8px 0 6px;font-weight:500;line-height:1.5}.related-card p{font-size:13px;line-height:1.65}footer{background:var(--ink);color:#cfd6e2;padding:48px 0 30px;font-size:13px;line-height:1.8}footer a{color:#cfd6e2;text-decoration:none}.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:30px}@media(max-width:760px){.footer-grid{grid-template-columns:1fr}}.footer-col h5{color:#fff;font-size:13px;letter-spacing:0.06em;margin-bottom:14px;font-weight:500}.footer-col ul{list-style:none}.footer-col li{margin-bottom:6px}.footer-bottom{padding-top:24px;border-top:1px solid rgba(255,255,255,0.12);font-family:var(--mono);font-size:11px;letter-spacing:0.08em;color:rgba(255,255,255,0.5)}

/* Canonical main navigation support */
nav { transition: box-shadow 0.3s; }
nav.scrolled { box-shadow: 0 4px 24px rgba(15,31,58,0.08); }
.nav-logo { display: inline-flex; align-items: center; flex: 0 0 auto; min-width: max-content; white-space: nowrap; }
.nav-logo-img { display: block; width: auto; height: 40px; max-width: none; object-fit: contain; object-position: left center; }
.nav-logo-img--mobile { display: none; width: 32px; height: 32px; object-fit: contain; }
.nav-center { flex: 1; display: flex; justify-content: center; }
.nav-links { flex-wrap: nowrap; white-space: nowrap; }
.nav-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; margin-left: auto; }
.nav-cta { padding: 7px 11px; font-size:11px; letter-spacing: 0.05em; }
.locale-switcher { display: inline-flex; align-items: center; gap: 0; font-family: var(--mono); font-size:11px; letter-spacing: 0.12em; }
.locale-switcher a { color: var(--text-dim); border: 1px solid var(--rule); padding: 6px 9px; text-decoration: none; transition: all 0.2s; }
.locale-switcher a + a { margin-left: -1px; }
.locale-switcher a:hover, .locale-switcher a.current { color: var(--ink); border-color: var(--ink-mid); background: var(--bg-soft); position: relative; z-index: 1; }
.hamburger { display: none; flex-shrink: 0; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.hamburger span { display: block; width: 22px; height: 1px; background: var(--ink); transition: all 0.25s; }
.mobile-menu { display: none; position: fixed; top: var(--nav-h); left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--rule); z-index: 99; padding: 8px var(--gutter) 20px; flex-direction: column; gap: 0; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-size:15px; color: var(--text); text-decoration: none; padding: 14px 0; border-bottom: 1px solid var(--rule); letter-spacing: 0.04em; }
.mobile-menu a:last-child { border-bottom: none; }
.mobile-menu .mobile-menu-cta { margin-top: 12px; padding: 13px 18px; text-align: center; color: #fff; border-bottom: none; }
@media (max-width: 900px) { .nav-center, .nav-right .nav-cta { display: none; } .hamburger { display: flex; } }
@media (max-width: 760px) { .nav-logo-img--desktop { display: none; } .nav-logo-img--mobile { display: block; } }
@media (max-width: 760px) { .nav-inner { gap: 12px; } .nav-right { gap: 6px; } }


.footer-row{list-style:none;display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 26px;padding:0}
.footer-row a{color:#cfd6e2;text-decoration:none;font-size:13px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
@media(max-width:760px){.hero-ctas{flex-direction:column}.hero-ctas .btn{width:100%;text-align:center}}
.lead{max-width:720px;font-size:15px;line-height:1.9;margin-top:16px}
.svc-section{border-top:1px solid var(--rule)}
.svc-section h2{margin-bottom:14px}
.svc-section .body-copy{max-width:720px;font-size:15px;line-height:1.9;margin-bottom:18px}
.bullets{list-style:none;max-width:720px}
.bullets li{position:relative;padding:8px 0 8px 22px;font-size:15px;line-height:1.75;border-bottom:1px solid #e8edf3}
.bullets li::before{content:'◇';position:absolute;left:0;top:8px;color:var(--ink-soft);font-size:11px}
.bullets li:last-child{border-bottom:none}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--rule);counter-reset:step}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.steps{grid-template-columns:1fr}}
.step{background:var(--bg-soft);padding:20px 22px}
.step .num{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;color:var(--ink-soft)}
.step h3{font-size:15px;color:var(--ink);margin:8px 0 6px;font-weight:500;line-height:1.5}
.step p{font-size:13px;line-height:1.7}
details.acc{border-top:1px solid var(--rule);max-width:720px}
details.acc:last-of-type{border-bottom:1px solid var(--rule)}
details.acc summary{padding:20px 28px 20px 0;font-weight:500;color:var(--ink);line-height:1.55;font-size:15px;cursor:pointer;list-style:none;position:relative}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:'+';position:absolute;right:4px;top:18px;color:var(--ink-soft);font-family:var(--mono)}
details.acc[open] summary::after{content:'−'}
details.acc .acc-a{padding:0 0 20px;font-size:15px;line-height:1.85;max-width:720px}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.plan-grid{grid-template-columns:1fr}}
.plan-card{background:#fff;border:1px solid var(--rule);padding:22px 24px}
.plan-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:var(--ink-soft);text-transform:uppercase}
.plan-card h4{font-family:var(--sans);color:var(--ink);font-size:15px;margin:8px 0 4px;font-weight:500}
.plan-card .price{font-family:var(--serif);color:var(--ink);font-size:18px;margin:4px 0 8px}
.plan-card p{font-size:13px;line-height:1.7}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.inq-form{background:var(--bg-soft);border:1px solid var(--rule);padding:28px}
.inq-form .field{margin-bottom:14px}
.inq-form label{display:block;font-size:11px;color:var(--ink-soft);margin-bottom:6px;font-family:var(--mono);letter-spacing:0.06em}
.inq-form input,.inq-form textarea,.inq-form select{width:100%;padding:10px 12px;border:1px solid var(--rule);background:#fff;font-family:var(--sans);font-size:15px;color:var(--text)}
.inq-form textarea{min-height:120px;resize:vertical}
.inq-form .note{font-size:13px;color:var(--text-dim);margin-top:12px;line-height:1.7}
.inq-form [data-state="error"]{color:#a8322a}
.id-card{border:1px solid var(--rule);background:#fff;padding:24px 26px;font-size:15px;line-height:1.9}
.id-card h3{font-family:var(--serif);font-weight:400;color:var(--ink);font-size:18px;margin-bottom:12px}
.id-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 18px}
.id-card dt{color:var(--ink-soft);font-size:13px;white-space:nowrap}
.id-card dd{margin:0;font-size:13px}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.voice-grid{grid-template-columns:1fr}}
.voice-card2{background:#fff;border:1px solid var(--rule);padding:24px}
.voice-card2 blockquote{font-size:13px;line-height:1.85;color:var(--text-mid);margin-bottom:14px}
.voice-card2 figcaption{font-size:13px;color:var(--ink);font-weight:500}
.voice-card2 .voice-firm{display:block;font-weight:400;font-size:11px;color:var(--text-dim)}
.fam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.fam-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.fam-grid{grid-template-columns:1fr}}
.fam-card{background:#fff;border:1px solid var(--rule);padding:24px;text-decoration:none;display:block}
.fam-card:hover{border-color:var(--ink-mid)}
.fam-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:var(--ink-soft);text-transform:uppercase}
.fam-card h3{font-family:var(--sans);color:var(--ink);font-size:15px;margin:8px 0 8px;font-weight:500;line-height:1.5}
.fam-card p{font-size:13px;line-height:1.7;color:var(--text-mid)}
.fam-card.urgent{border-left:3px solid #a8322a}
.contact-band{border:1px solid var(--rule);background:var(--bg-soft);padding:28px 32px}

/* ===== Phase 5b — visual layer ===== */
.hero-fig{margin-top:36px}
.hero-fig svg{display:block;width:100%;height:auto}
@media(max-width:760px){.hero-fig{margin-top:26px}}
.fam-card,.related-card,.plan-card,.scope-card,.voice-card2,.step{transition:transform .25s ease,box-shadow .25s ease,border-color .2s ease}
.fam-card:hover,.related-card:hover,.plan-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(15,31,58,0.08)}
@media(prefers-reduced-motion:reduce){.fam-card,.related-card,.plan-card,.scope-card,.voice-card2,.step{transition:none}.fam-card:hover,.related-card:hover,.plan-card:hover{transform:none}}

.svc-photos .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:6px}@media(max-width:760px){.svc-photos .svc-grid{grid-template-columns:1fr}}.svc-card{display:block;background:#fff;border:1px solid var(--rule);text-decoration:none;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s}.svc-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -22px rgba(15,31,58,.35);border-color:var(--accent)}.svc-ph{position:relative;height:172px;background:var(--ink-mid);overflow:hidden}.svc-ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(1.07) contrast(1.02);transition:transform .5s}.svc-card:hover .svc-ph img{transform:scale(1.06)}.svc-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(23,38,65,.5) 0%,rgba(23,38,65,.08) 46%,rgba(23,38,65,.1) 100%)}.svc-ph .svc-n{position:absolute;left:16px;bottom:12px;z-index:2;font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:#fff;opacity:.92}.svc-b{padding:20px 22px 24px}.svc-b h3{font-family:var(--serif);font-size:19px;font-weight:400;color:var(--ink);margin:0 0 8px;line-height:1.4}.svc-b p{font-size:13px;line-height:1.7;color:var(--text-mid)}.svc-all{margin-top:22px;font-size:.9rem}.svc-all a{color:var(--ink-soft);border-bottom:1px solid var(--accent);padding-bottom:1px}
.hero-2col{display:grid;grid-template-columns:1.14fr .72fr;gap:20px;align-items:center}@media(max-width:760px){.hero-2col{grid-template-columns:1fr;gap:14px}}.hero-loop-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}.hl-loop{width:100%;max-width:262px;height:auto}.hero-2col .mincho-xl{font-size:clamp(27px,3.4vw,36px);line-height:1.5}.hl-en .hl-nt{font-size:12.5px}.hl-en .hl-ctext{font-size:15px;letter-spacing:.02em}.hl-ring{fill:none;stroke:var(--rule);stroke-width:1.4;stroke-dasharray:1.5 7}.hl-nd{fill:#fff;stroke:var(--ink);stroke-width:1.5;transition:fill .2s}.hl-nt{fill:var(--ink-mid);font-family:var(--serif);font-size:16px;transition:fill .2s}.hl-center{fill:#fff;stroke:var(--accent);stroke-width:1.6;opacity:.96}.hl-ctext{fill:var(--ink);font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.04em}.hl-csub{fill:var(--ink-soft);font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:.1em}.hl-comet{fill:var(--accent)}.hl-glow{fill:var(--accent);opacity:.16}.hl-pr{fill:none;stroke:var(--accent);stroke-width:1.4}.hl-node{cursor:pointer}.hl-node:hover .hl-nd{fill:var(--ink-mid)}.hl-node:hover .hl-nt{fill:#fff}.hl-orbit{transform-box:view-box;transform-origin:170px 170px;animation:hl-orbit 6.5s linear infinite}.hero-loop-wrap:hover .hl-orbit{animation-duration:3s}@keyframes hl-orbit{to{transform:rotate(360deg)}}.hl-p1{transform-box:fill-box;transform-origin:center;animation:hl-pulse 6.5s ease-out infinite}.hl-p2{transform-box:fill-box;transform-origin:center;animation:hl-pulse 6.5s ease-out infinite;animation-delay:2.17s}.hl-p3{transform-box:fill-box;transform-origin:center;animation:hl-pulse 6.5s ease-out infinite;animation-delay:4.33s}@keyframes hl-pulse{0%{opacity:0;transform:scale(.75)}6%{opacity:.6;transform:scale(1)}24%{opacity:0;transform:scale(1.7)}100%{opacity:0;transform:scale(1.7)}}.hero-loop-hint{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;text-align:center}.hero-loop-hint b{color:var(--accent)}.svc-card{scroll-margin-top:84px}@media(prefers-reduced-motion:reduce){.hl-orbit,.hl-p1,.hl-p2,.hl-p3{animation:none}}