/* V47 one source for all three brands and both React/static hosts. */
:root { --ne47-width:1180px; --ne47-gutter:24px; --ne47-ink:#26364f; --ne47-soft:#566279; --ne47-purple:#705591; --ne47-line:#ded6e6; --ne47-paper:#fcfcfa; --ne47-display:var(--studio-display,'Noto Serif JP','Yu Mincho',serif); --ne47-header-height:80px; }
.ne47 { box-sizing:border-box; color:var(--ne47-ink); font-family:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif; -webkit-font-smoothing:antialiased; }
.ne47 *, .ne47 *::before, .ne47 *::after { box-sizing:border-box; }
.ne47 [hidden] { display:none!important; }
.ne47 :is(a,button,summary,[tabindex]):focus-visible, .ne47.ne47-consult-button:focus-visible { outline:3px solid #80619e; outline-offset:5px; }
/* Combined class specificity also defeats legacy host wrap/anchor defaults. */
.ne47.ne47-container, .ne47.ne47-container.rw-wrap, .ne47.ne47-container.rw-container { width:min(var(--ne47-width),calc(100% - var(--ne47-gutter) * 2)); margin-inline:auto; }
.ne47.ne47-consult-button { display:inline-flex; align-items:center; justify-content:center; gap:17px; min-height:50px; padding:13px 20px; border:1px solid #69517f; border-radius:4px; background:#69517f; color:#fff; text-decoration:none; font:500 13px/1.7 'Noto Sans JP',sans-serif; white-space:nowrap; cursor:pointer; transition:background .2s,border-color .2s; }
.ne47.ne47-consult-button:hover { background:#533c68; border-color:#533c68; }
.ne47-consult-button > svg { flex:none; }
.ne47.ne47-site-header { position:sticky; top:0; z-index:200; width:100%; background:#fcfcfaf7; border-bottom:1px solid #e4dfea; backdrop-filter:blur(12px); isolation:isolate; }
.ne47.ne47-site-header[data-menu-open] { backdrop-filter:none; -webkit-backdrop-filter:none; }
.ne47 .ne47-header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--ne47-header-height); position:relative; z-index:3; }
.ne47 .ne47-brand { display:inline-flex; align-items:center; flex:none; padding:0; color:var(--ne47-ink); text-decoration:none; }
.ne47 .ne47-brand-logo { display:block; height:36px; width:auto; max-width:none; object-fit:contain; }
.ne47 .ne47-desktop-nav { display:flex; align-items:center; justify-content:flex-end; gap:18px; margin-left:auto; }
.ne47 .ne47-desktop-nav > a { color:#35415a; font-size:12px; font-weight:500; line-height:1.7; white-space:nowrap; text-decoration:none; }
.ne47 .ne47-desktop-nav > a:hover { color:#76558c; }
.ne47 .ne47-header-actions { display:flex; align-items:center; flex:none; gap:14px; }
.ne47 .ne47-header-consult { font-size:12px; min-height:45px; padding:11px 16px; gap:14px; }
.ne47 .ne47-menu-toggle { display:none; width:42px; height:42px; padding:8px; place-items:center; border:1px solid #d6cce1; border-radius:4px; background:#fff; color:#655078; cursor:pointer; }
.ne47 .ne47-menu-close-icon { display:none; }
.ne47 .ne47-menu-toggle[aria-expanded=true] .ne47-menu-open-icon { display:none; }
.ne47 .ne47-menu-toggle[aria-expanded=true] .ne47-menu-close-icon { display:block; }
.ne47 .ne47-mobile-menu { position:fixed; top:var(--ne47-header-height); left:0; right:0; z-index:2; max-height:calc(100dvh - var(--ne47-header-height)); overflow:auto; overscroll-behavior:contain; padding:18px max(var(--ne47-gutter),calc((100vw - var(--ne47-width)) / 2)) 26px; background:#fcfcfa; border-bottom:1px solid #ddd2e5; box-shadow:0 12px 25px #30243c0b; }
.ne47 .ne47-mobile-menu > a:not(.ne47-consult-button) { display:block; padding:13px 0; border-bottom:1px solid #e7deed; color:#4e3d61; text-decoration:none; font-size:14px; line-height:1.8; }
.ne47 .ne47-mobile-brands { display:flex; flex-wrap:wrap; gap:10px 22px; padding:21px 0; }
.ne47 .ne47-mobile-brands > a { color:#8b769e; text-decoration:none; font-size:12px; line-height:1.9; }
.ne47 .ne47-mobile-menu > .ne47-consult-button { width:100%; }
.ne47 .ne47-menu-overlay { position:fixed; top:var(--ne47-header-height); bottom:0; left:0; right:0; z-index:1; width:100%; border:0; padding:0; background:#1922394d; cursor:pointer; }
.ne47 .ne47-skip-link { position:fixed; left:24px; top:-100px; z-index:10; padding:12px 18px; border:2px solid #80619e; background:#fff; color:#4b375d; text-decoration:none; font-size:14px; }
.ne47 .ne47-skip-link:focus { top:10px; }
.ne47.ne47-site-footer { padding:52px 0 22px; background:#f7f8fa; border-top:1px solid #e2e6ed; }
.ne47 .ne47-footer-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:55px; }
.ne47 .ne47-footer-brand { display:inline-flex; color:inherit; text-decoration:none; }
.ne47 .ne47-footer-brand > img { display:block; height:44px; width:auto; max-width:none; object-fit:contain; }
.ne47 .ne47-footer-links { display:grid; grid-template-columns:repeat(2,max-content); gap:62px; }
.ne47 .ne47-footer-label { margin:0 0 14px; color:#8c8196; font-size:11px; font-weight:600; line-height:1.8; }
.ne47 .ne47-footer-links nav { display:grid; gap:10px; }
.ne47 .ne47-footer-links :is(a,span) { color:#5f6577; text-decoration:none; font-size:12px; line-height:1.9; }
.ne47 .ne47-footer-links a:hover { color:#72558b; text-decoration:underline; text-underline-offset:4px; }
.ne47 .ne47-footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:42px; padding-top:21px; border-top:1px solid #e1dce7; color:#97909f; font-size:10px; line-height:1.9; }
.ne47.ne47-section-heading { margin:0 0 34px; max-width:920px; }
.ne47.ne47-section-heading .ne47-eyebrow { margin:0 0 15px; color:#79608c; font-size:12px; font-weight:600; letter-spacing:.09em; line-height:1.8; }
.ne47.ne47-section-heading h2 { margin:0; color:#2c3b53; font:600 clamp(28px,2.85vw,38px)/1.7 var(--ne47-display); letter-spacing:-.025em; text-wrap:pretty; }
.ne47.ne47-section-heading .ne47-heading-lead { max-width:900px; margin:20px 0 0; color:#656272; font-size:14px; line-height:2.05; }
.ne47.ne47-related { padding:76px 0 62px; background:#fffdfa; scroll-margin-top:96px; isolation:isolate; }
.ne47 .ne47-related-note { margin:-20px 0 32px; color:#6a6574; font-size:13px; line-height:2; }
.ne47 .ne47-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.ne47 .ne47-related-card { display:flex; flex-direction:column; min-width:0; position:relative; margin:0; padding:0; border:1px solid #e4dbe9; border-radius:4px; background:#fff; text-decoration:none; overflow:hidden; color:inherit; transition:border-color .2s,transform .2s; }
.ne47 a.ne47-related-card:hover { border-color:#baa2cc; transform:translateY(-3px); }
.ne47 .ne47-related-card > img { display:block; width:100%; height:185px; object-fit:contain; background:#fcfafc; }
.ne47 .ne47-card-copy { position:relative; flex:1; padding:23px 25px 27px; border-top:1px solid #eee7f2; }
.ne47 .ne47-card-label { display:block; margin:0 0 9px; color:#8b719d; font-size:11px; letter-spacing:.12em; }
.ne47 .ne47-related-card h3 { margin:0 0 13px; color:#5c4370; font:500 23px/1.55 var(--ne47-display); letter-spacing:-.02em; }
.ne47 .ne47-related-card strong { display:block; margin:0 0 12px; font-size:14px; font-weight:600; line-height:1.9; color:#53465e; }
.ne47 .ne47-related-card p { margin:0; color:#706a79; font-size:13px; line-height:2; }
.ne47 .ne47-card-arrow { display:block; margin-top:20px; color:#9276a5; font-size:22px; line-height:1; text-align:right; }
.ne47.ne47-closing { padding:8px 0 72px; background:#fffdfa; scroll-margin-top:96px; isolation:isolate; }
.ne47 .ne47-closing-panel { display:grid; grid-template-columns:150px minmax(0,1fr) auto; gap:28px; align-items:center; padding:30px; background:linear-gradient(110deg,#efe6f7,#f8f3fb); border:1px solid #e0d1ea; border-radius:6px; }
.ne47 .ne47-consultation-art { display:block; width:150px; height:150px; background-image:url('/shared-v36-assets/consultation.png'); background-size:200% 200%; background-position:0 0; background-repeat:no-repeat; }
.ne47 .ne47-closing-label { margin:0 0 9px; color:#836397; font-size:11px; letter-spacing:.04em; }
.ne47.ne47-closing h2 { margin:0; color:#4a315d; font:600 27px/1.7 var(--ne47-display); letter-spacing:-.025em; }
.ne47 .ne47-closing-body { max-width:650px; margin:15px 0 0; color:#675973; font-size:13px; line-height:2; }
.ne47 .ne47-closing-note { margin:10px 0 0; color:#756880; font-size:11px; line-height:1.9; }
.ne47 .ne47-closing-button { max-width:100%; font-size:12px; gap:18px; white-space:nowrap; }
.ne47.ne47-faq { padding:85px 0; background:#f5f7fb; scroll-margin-top:96px; }
.ne47 .ne47-faq-layout { display:grid; grid-template-columns:.6fr 1fr; gap:90px; align-items:start; }
.ne47 .ne47-question-list { min-width:0; }
.ne47 .ne47-qa-item { border-top:1px solid #dadfea; }
.ne47 .ne47-qa-item:last-child { border-bottom:1px solid #dadfea; }
.ne47 .ne47-qa-item summary { position:relative; list-style:none; padding:25px 34px 25px 0; color:#26344b; font-size:14px; font-weight:600; line-height:1.8; cursor:pointer; }
.ne47 .ne47-qa-item summary::-webkit-details-marker { display:none; }
.ne47 .ne47-qa-item summary::after { content:'+'; position:absolute; right:3px; top:22px; color:#705591; font-size:22px; font-weight:400; }
.ne47 .ne47-qa-item[open] summary::after { content:'−'; }
.ne47 .ne47-qa-answer p { margin:0; padding:0 22px 25px 0; color:#566279; font-size:13px; line-height:2; }
.ne47.ne47-step-list { display:grid; list-style:none; margin:0; padding:0; gap:28px; }
.ne47.ne47-step-list-horizontal { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.ne47.ne47-step-list.ne47-step-list-six { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ne47.ne47-step-list-six > li:nth-child(3)::after { display:none; }
.ne47.ne47-step-list > li { position:relative; min-width:0; }
.ne47.ne47-step-list-horizontal > li:not(:last-child)::after { content:''; position:absolute; left:58px; right:0; top:27px; height:1px; background:#b9a8c9; }
.ne47 .ne47-step-number { display:block; margin:0 0 12px; color:#7b6194; font:400 38px/1.4 var(--ne47-display); letter-spacing:-.04em; }
.ne47.ne47-step-list h3 { margin:0 0 11px; color:#2e3c54; font-size:17px; font-weight:600; line-height:1.8; letter-spacing:-.025em; overflow-wrap:anywhere; }
.ne47.ne47-step-list p { margin:0; color:#5c687e; font-size:13px; line-height:2; }
.ne47 .ne47-step-badge { display:inline-block; padding:3px 7px; margin-bottom:7px; border-radius:3px; background:#ece5f2; color:#684d83; font-size:10px; line-height:1.7; }
.ne47.ne47-step-list .ne47-step-note { color:#684d83; margin-top:10px; font-size:12px; }
.ne47.ne47-step-list-vertical { grid-template-columns:1fr; gap:0; }
.ne47.ne47-step-list-vertical > li { display:grid; grid-template-columns:45px minmax(0,1fr); gap:22px; padding:24px 0; border-top:1px solid var(--ne47-line); }
@media(max-width:1180px) {
  .ne47 .ne47-desktop-nav { display:none; }
  .ne47 .ne47-menu-toggle { display:grid; }
  .ne47 .ne47-header-actions { margin-left:auto; }
}
@media(max-width:1080px) {
  .ne47 .ne47-closing-panel { grid-template-columns:135px minmax(0,1fr); gap:10px 25px; }
  .ne47 .ne47-consultation-art { grid-row:1/3; width:135px; height:135px; }
  .ne47 .ne47-closing-button { grid-column:2; justify-self:start; margin-top:8px; }
  .ne47 .ne47-related-grid { gap:19px; }
  .ne47 .ne47-related-card h3 { font-size:21px; }
}
@media(max-width:960px) {
  .ne47 .ne47-faq-layout { grid-template-columns:1fr; gap:24px; }
  .ne47 .ne47-faq-layout .ne47-section-heading { margin:0; }
  .ne47 .ne47-footer-inner { grid-template-columns:1fr; gap:34px; }
}
@media(max-width:760px) {
  :root { --ne47-header-height:72px; }
  .ne47 .ne47-brand-logo { height:32px; }
  .ne47 .ne47-header-consult { display:none; }
  .ne47 .ne47-header-inner { gap:15px; }
  .ne47.ne47-site-footer { padding-top:40px; }
  .ne47 .ne47-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
  .ne47 .ne47-footer-bottom { margin-top:31px; }
  .ne47.ne47-section-heading h2 { font-size:28px; line-height:1.7; }
  .ne47.ne47-section-heading .ne47-heading-lead { font-size:13px; }
  .ne47.ne47-related { padding:54px 0 45px; }
  .ne47 .ne47-related-note { font-size:12px; }
  .ne47 .ne47-related-grid { grid-template-columns:1fr; gap:20px; }
  .ne47 .ne47-related-card { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:center; }
  .ne47 .ne47-related-card > img { height:180px; max-height:100%; }
  .ne47 .ne47-card-copy { border-top:0; border-left:1px solid #eee7f2; padding:22px; }
  .ne47 .ne47-related-card h3 { font-size:23px; }
  .ne47.ne47-closing { padding-bottom:50px; }
  .ne47 .ne47-closing-panel { padding:25px; gap:18px 20px; grid-template-columns:110px minmax(0,1fr); }
  .ne47 .ne47-consultation-art { width:110px; height:110px; grid-row:auto; }
  .ne47.ne47-closing h2 { font-size:25px; }
  .ne47 .ne47-closing-button { grid-column:1/-1; justify-self:stretch; margin-top:0; }
  .ne47.ne47-faq { padding:58px 0; }
  .ne47.ne47-step-list, .ne47.ne47-step-list.ne47-step-list-six { grid-template-columns:1fr; gap:0; }
  .ne47.ne47-step-list > li { display:grid; grid-template-columns:43px minmax(0,1fr); gap:16px; padding:20px 0; border-top:1px solid #e0d7e8; }
  .ne47.ne47-step-list > li::after { display:none; }
  .ne47 .ne47-step-number { font-size:30px; line-height:1.6; margin:0; }
}
@media(max-width:520px) {
  .ne47 .ne47-related-card { grid-template-columns:1fr; }
  .ne47 .ne47-related-card > img { height:180px; max-height:none; }
  .ne47 .ne47-card-copy { border-left:0; border-top:1px solid #eee7f2; padding:23px; }
  .ne47 .ne47-closing-panel { grid-template-columns:1fr; gap:18px; padding:24px; }
  .ne47 .ne47-consultation-art { grid-column:1; grid-row:auto; width:160px; height:160px; justify-self:center; }
  .ne47 .ne47-closing-button { grid-column:1; }
}
@media(max-width:360px) {
  .ne47 .ne47-brand-logo { height:30px; }
  .ne47 .ne47-footer-brand > img { height:40px; }
  .ne47 .ne47-footer-links { gap:18px; }
  .ne47 .ne47-footer-bottom { flex-direction:column; gap:5px; }
}
@media(prefers-reduced-motion:reduce) {
  .ne47 *, .ne47 *::before, .ne47 *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .ne47 .ne47-related-card:hover { transform:none; }
}
