.page-label,.sec-label,.anniv-en{font-family:'Marcellus',serif !important;font-style:normal !important;}

:root{
  --serif-jp:'Noto Serif JP',serif; --serif-en:'Newsreader',serif; --sans-jp:'Noto Sans JP',sans-serif;
  --navy:#1B2A4A; --cream:#F5F0EB; --paper:#FBF9F6; --gold:#8B7355; --gold-soft:#B59C7E;
  --ink:#2B2B28; --ink-soft:#6B665E; --line:#DAD2C6; --line-soft:#EBE5DB;
  --sp-md:21px; --sp-lg:34px; --sp-xl:55px; --sp-2xl:89px; --sp-3xl:130px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--serif-jp);color:var(--ink);background:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1100px;margin:0 auto;padding:0 6vw;}
a{color:inherit;text-decoration:none;}

/* Nav（共通） */
nav#nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-md) 6vw;background:rgba(255,255,255,0.97);backdrop-filter:blur(10px);border-bottom:1px solid rgba(200,194,186,0.3);}
.nav-brand{display:flex;flex-direction:column;gap:0.15rem;}
.nav-brand-en{font-family:var(--serif-en);font-size:0.9rem;letter-spacing:0.14em;color:var(--navy);white-space:nowrap;}
.nav-brand-jp{font-family:var(--sans-jp);font-size:0.55rem;letter-spacing:0.18em;color:var(--gold);font-weight:300;}
.nav-links{display:flex;gap:1.5rem;align-items:center;list-style:none;}
.nav-links a{font-family:var(--serif-jp);font-weight:400;font-size:0.78rem;letter-spacing:0.06em;color:var(--navy);position:relative;display:flex;flex-direction:column;align-items:center;gap:0.1rem;transition:color 0.3s;white-space:nowrap;}
.nav-links a .nav-en{font-family:var(--serif-en);font-style:italic;font-size:0.62rem;letter-spacing:0.1em;color:var(--gold-soft);}
.nav-links a:not(.nav-contact)::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width 0.4s ease;}
.nav-links a:not(.nav-contact):hover{color:var(--gold);}
.nav-links a:not(.nav-contact):hover::after{width:100%;}
.nav-links a.is-current{color:var(--gold);}
.nav-links a.is-current::after{width:100%;}
.nav-contact{background:var(--gold);color:#FAF7F3;padding:0.7rem 1.3rem;border:1px solid var(--gold);transition:background 0.3s,border-color 0.3s;white-space:nowrap;flex-direction:row!important;}
.nav-contact .nav-en{color:rgba(250,247,243,0.8)!important;}
.nav-contact:hover{background:var(--navy);border-color:var(--navy);}
.nav-lang{font-family:var(--serif-en);font-size:0.7rem;letter-spacing:0.1em;color:var(--gold-soft);}
.nav-lang-divider{color:var(--line);font-size:0.7rem;}

/* ページャ */
.pager{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:var(--sp-xl);padding-top:var(--sp-lg);}
.pager a{display:flex;flex-direction:column;gap:3px;}
.pager .pe{font-family:var(--serif-en);font-style:italic;font-size:0.72rem;letter-spacing:0.12em;color:var(--gold-soft);}
.pager .pj{font-family:var(--serif-jp);font-size:0.9rem;color:var(--navy);}
.pager .next{text-align:right;}

/* Footer */
footer{padding:var(--sp-2xl) 6vw var(--sp-lg);background:var(--cream);border-top:1px solid var(--line);margin-top:var(--sp-2xl);}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-lg);margin-bottom:var(--sp-xl);}
.footer-brand-en{font-family:var(--serif-en);font-size:1.1rem;letter-spacing:0.16em;color:var(--navy);margin-bottom:0.3rem;}
.footer-brand-jp{font-family:var(--serif-jp);font-size:0.82rem;color:var(--gold);margin-bottom:var(--sp-md);}
.footer-address{font-size:0.78rem;line-height:1.95;color:rgba(27,42,74,0.68);}
.footer-col h4{font-family:var(--serif-en);font-size:0.66rem;letter-spacing:0.16em;color:var(--gold);text-transform:uppercase;margin-bottom:var(--sp-md);}
.footer-col a{display:block;font-size:0.82rem;color:rgba(27,42,74,0.72);margin-bottom:0.5rem;transition:color 0.3s;}
.footer-col a:hover{color:var(--gold);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:13px;padding-top:var(--sp-md);border-top:1px solid var(--line);}
.footer-copy{font-family:var(--serif-en);font-size:0.72rem;letter-spacing:0.1em;color:rgba(27,42,74,0.55);}
.footer-links{display:flex;gap:var(--sp-md);}
.footer-links a{font-size:0.72rem;color:rgba(27,42,74,0.55);}

/* ── Vision page ── */
.vz-crumb{position:static;display:flex;gap:.55rem;align-items:center;font-size:.76rem;color:var(--ink-soft);letter-spacing:.04em;padding-top:calc(var(--sp-3xl) + 20px);background:none;border:none;}
.vz-crumb a{color:var(--ink-soft);transition:color .3s;}
.vz-crumb a:hover{color:var(--gold);}
.vz-crumb .sep{color:var(--line);}
.vz-head{padding:var(--sp-lg) 0 var(--sp-xl);}
.vz-title{font-family:var(--serif-en);font-weight:400;font-size:clamp(3rem,6vw,4.4rem);letter-spacing:.03em;color:var(--navy);line-height:1;}
.vz-sub{font-family:var(--serif-jp);font-weight:400;font-size:1.05rem;letter-spacing:.16em;color:var(--gold);margin-top:.9rem;}
.vz-body{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-2xl);align-items:start;padding-bottom:var(--sp-2xl);}
.vz-lead-jp{font-family:var(--serif-jp);font-weight:500;font-size:1.42rem;letter-spacing:.06em;color:var(--gold);line-height:1.7;margin-bottom:1.1rem;}
.vz-lead-en{font-family:var(--serif-en);font-weight:600;font-size:1.02rem;letter-spacing:.03em;color:var(--ink);margin-bottom:3.5rem;}
.vz-text p:not(.vz-lead-en){font-size:.92rem;line-height:2.05;color:var(--ink);margin-bottom:1.6rem;letter-spacing:.02em;}
.vz-figure{position:relative;width:100%;max-width:520px;margin:0 auto;}
.vz-svg{width:100%;height:auto;display:block;overflow:visible;transform:translateZ(0);}
.vz-ring{fill:none;stroke:var(--gold-soft);stroke-width:.7;opacity:.5;}
.vz-link{fill:none;stroke:var(--gold);stroke-width:1.1;opacity:.55;stroke-linecap:round;stroke-linejoin:round;}
.vz-aim{fill:none;stroke:var(--gold-soft);stroke-width:.7;opacity:.38;stroke-linecap:round;}
.vz-sphere{fill:url(#vzSphere);stroke:rgba(139,115,85,.22);stroke-width:.6;transition:stroke .35s,stroke-width .35s;}
.vz-node-g{cursor:default;}
.vz-node-g:hover .vz-sphere{stroke:var(--gold);stroke-width:1.3;}
.vz-fen{font-family:var(--serif-en);font-weight:300;letter-spacing:.03em;fill:var(--navy);}
.vz-fjp{font-family:var(--serif-jp);font-weight:300;letter-spacing:.22em;fill:var(--gold);}
.vz-nen{font-family:var(--serif-en);letter-spacing:.02em;fill:var(--navy);}
.vz-njp{font-family:var(--serif-jp);letter-spacing:.05em;fill:var(--gold);}
.vz-dot{fill:var(--gold);}
.vz-ring,.vz-link,.vz-aim{stroke-dasharray:1;stroke-dashoffset:1;will-change:stroke-dashoffset;}
.vz-node-g{opacity:0;transform:scale(.6);transform-box:fill-box;transform-origin:center;will-change:transform,opacity;backface-visibility:hidden;}
.vz-future-g{opacity:0;}
@keyframes vzDraw{to{stroke-dashoffset:0;}}
@keyframes vzPop{0%{opacity:0;transform:scale(.6);}62%{opacity:1;transform:scale(1.06);}100%{opacity:1;transform:scale(1);}}
@keyframes vzFade{to{opacity:1;}}
.vz-figure.in .vz-ring{animation:vzDraw 1.3s ease .1s forwards;}
.vz-figure.in .n-r{animation:vzPop .55s cubic-bezier(.2,.8,.2,1) 0s forwards;}
.vz-figure.in .seg-rc{animation:vzDraw .5s ease .45s forwards;}
.vz-figure.in .n-c{animation:vzPop .55s cubic-bezier(.2,.8,.2,1) .85s forwards;}
.vz-figure.in .seg-cg,.vz-figure.in .seg-rg{animation:vzDraw .55s ease 1.25s forwards;}
.vz-figure.in .n-g{animation:vzPop .55s cubic-bezier(.2,.8,.2,1) 1.75s forwards;}
.vz-figure.in .vz-aim{animation:vzDraw .55s ease 2.15s forwards;}
.vz-figure.in .vz-future-g{animation:vzFade .6s ease 2.6s forwards;}
.vz-node-g:hover .vz-sphere{stroke:var(--gold);stroke-width:1.3;}
.vz-figure.in:hover .vz-future-g .vz-fen{fill:var(--gold);transition:fill .5s ease;}
@media(prefers-reduced-motion:reduce){.vz-ring,.vz-link,.vz-aim{stroke-dashoffset:0;animation:none;}.vz-node-g,.vz-future-g{opacity:1;transform:none;animation:none;}}

@media(max-width:900px){
  .nav-links{display:none;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .vz-body{grid-template-columns:1fr;gap:var(--sp-xl);}
}