:root{--sumi:#16181a;--sumi-soft:#1e2226;--shikkui:#f3efe7;--shikkui-dim:#c9c3b6;--ai:#2e5d8f;--ai-bright:#6fa3d8;--kin:#c9a76a;--line:hsla(40,33%,93%,.14);--serif:"Shippori Mincho",serif;--sans:"Zen Kaku Gothic New",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--sumi);color:var(--shikkui);font-family:var(--sans);font-size:16px;line-height:1.9;letter-spacing:.04em;overflow-x:hidden}::selection{background:var(--ai);color:var(--shikkui)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ai-bright);outline-offset:3px}header{position:fixed;inset:0 0 auto 0;z-index:100;justify-content:space-between;padding:18px clamp(20px,5vw,56px);background:linear-gradient(180deg,rgba(22,24,26,.94),rgba(22,24,26,0));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.brand,header{display:flex;align-items:center}.brand{font-family:var(--serif);font-weight:700;font-size:1.1rem;letter-spacing:.16em;color:var(--shikkui);text-decoration:none;gap:12px}.brand .mon{width:34px;height:34px;border:1.5px solid var(--kin);border-radius:50%;display:grid;place-items:center;font-size:.95rem;color:var(--kin);font-weight:600;flex-shrink:0}.gnav{display:flex;gap:clamp(14px,2.6vw,32px)}.gnav a{color:var(--shikkui-dim);text-decoration:none;font-size:.85rem;letter-spacing:.14em;transition:color .3s;position:relative}.gnav a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--kin);transition:width .3s}.gnav a.on,.gnav a:focus-visible,.gnav a:hover{color:var(--shikkui)}.gnav a.on:after,.gnav a:focus-visible:after,.gnav a:hover:after{width:100%}.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--shikkui);font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;padding:8px 14px;cursor:pointer}@media (max-width:720px){.gnav{display:none;position:absolute;top:100%;right:16px;flex-direction:column;gap:0;background:var(--sumi-soft);border:1px solid var(--line);min-width:200px}.gnav.open{display:flex}.gnav a{padding:14px 20px;border-bottom:1px solid var(--line)}.gnav a:after{display:none}.menu-btn{display:block}}.btn{display:inline-block;text-decoration:none;font-size:.88rem;letter-spacing:.2em;padding:15px 34px;transition:.35s;border:none;cursor:pointer;font-family:var(--sans)}.btn-fill{background:var(--ai);color:var(--shikkui);box-shadow:0 6px 24px rgba(46,93,143,.35)}.btn-fill:hover{background:#38709f;transform:translateY(-2px)}.btn-ghost{border:1px solid var(--line);color:var(--shikkui);background:none}.btn-ghost:hover{border-color:var(--kin);color:var(--kin)}section{padding:clamp(80px,11vh,140px) clamp(20px,6vw,72px)}.sec-head{max-width:1100px;margin:0 auto clamp(44px,6vh,72px)}.kanji-label{font-family:var(--serif);font-size:.85rem;letter-spacing:.5em;color:var(--kin);margin-bottom:14px}.sec-head h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:.14em}.sec-head p{color:var(--shikkui-dim);margin-top:16px;max-width:640px;font-size:.95rem}.page-hero{min-height:44svh;padding:140px clamp(20px,6vw,72px) 56px;position:relative;background:radial-gradient(ellipse 70% 60% at 80% 120%,rgba(46,93,143,.25),transparent 65%),var(--sumi);border-bottom:1px solid var(--line)}.page-hero,.page-hero .inner{display:flex;align-items:flex-end}.page-hero .inner{max-width:1100px;margin:0 auto;width:100%;gap:28px}.page-hero .tate-mini{writing-mode:vertical-rl;font-family:var(--serif);font-size:.85rem;letter-spacing:.4em;color:var(--kin);border-left:1px solid var(--line);padding-left:14px;height:120px}.page-hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(2rem,4.5vw,3rem);letter-spacing:.16em;line-height:1.5}.page-hero .en{font-size:.75rem;letter-spacing:.4em;margin-top:6px}.page-hero .en,footer{color:var(--shikkui-dim)}footer{border-top:1px solid var(--line);padding:56px clamp(20px,6vw,72px) 40px;display:grid;grid-template-columns:1fr auto;grid-gap:32px;gap:32px;align-items:end;font-size:.85rem}footer .f-brand{font-family:var(--serif);color:var(--shikkui);font-size:1.05rem;letter-spacing:.18em;margin-bottom:12px}footer nav{display:flex;gap:22px;flex-wrap:wrap}footer nav a{color:var(--shikkui-dim);text-decoration:none;transition:color .3s}footer nav a:hover{color:var(--kin)}footer .copy{grid-column:1/-1;margin-top:24px;font-size:.75rem;letter-spacing:.1em;color:hsla(40,33%,93%,.4)}footer .footer-link{color:inherit;text-decoration:none}@media (max-width:680px){footer{grid-template-columns:1fr}}.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}.hero{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 55% at 70% 110%,rgba(46,93,143,.28),transparent 65%),radial-gradient(ellipse 55% 40% at 15% -5%,hsla(39,47%,60%,.09),transparent 60%),var(--sumi)}.sea{inset:auto 0 0 0;height:32vh;overflow:hidden;pointer-events:none}.sea,.sea svg{position:absolute}.sea svg{bottom:-2px;left:0;width:200%;height:100%}.w1{animation:drift 26s linear infinite;opacity:.5}.w2{animation:drift 40s linear infinite reverse;opacity:.3}@keyframes drift{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.hero-inner{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(32px,7vw,110px);padding:0 24px}.tate{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:clamp(12px,1.8vw,24px);flex-shrink:0;border-right:1px solid var(--line);padding-right:clamp(18px,2.5vw,34px);animation:rise 1.4s cubic-bezier(.2,.7,.2,1) both}.tate-line{writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;font-family:var(--serif);font-weight:700;font-size:clamp(2rem,5.2vw,3.5rem);letter-spacing:.28em;line-height:1.7;white-space:nowrap;color:var(--shikkui)}.tate-line--accent{color:var(--ai-bright)}.hero-side{max-width:430px;animation:rise 1.4s cubic-bezier(.2,.7,.2,1) .25s both}.hero-side .eyebrow{font-size:.78rem;letter-spacing:.34em;color:var(--kin);margin-bottom:18px}.hero-side h1{font-family:var(--serif);font-weight:800;font-size:clamp(1.5rem,3vw,1.95rem);letter-spacing:.16em;line-height:1.6;margin-bottom:20px}.hero-side p{color:var(--shikkui-dim);font-size:.95rem;margin-bottom:34px}@keyframes rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.btn-row{display:flex;gap:16px;flex-wrap:wrap}.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;font-size:.7rem;letter-spacing:.4em;color:var(--shikkui-dim);writing-mode:vertical-rl}.scroll-cue:after{content:"";display:block;width:1px;height:44px;margin:12px auto 0;background:linear-gradient(var(--shikkui-dim),transparent);animation:cue 2.2s ease-in-out infinite}@keyframes cue{0%,to{opacity:.2}50%{opacity:1}}@media (max-width:820px){.hero-inner{flex-direction:column;gap:40px;text-align:center;padding-top:110px}.tate{border-right:none;padding-right:0}.tate-line{font-size:clamp(1.7rem,7vw,2.4rem)}.btn-row{justify-content:center}}.biz-wrap{max-width:1100px;margin:0 auto;display:grid;grid-gap:1px;gap:1px;background:var(--line)}.biz{background:var(--sumi);display:grid;grid-template-columns:110px 1fr auto;grid-gap:clamp(20px,4vw,48px);gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(34px,5vh,56px) clamp(20px,3vw,40px);position:relative;overflow:hidden;transition:background .4s}.biz:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(46,93,143,.16),transparent 55%);opacity:0;transition:opacity .4s}.biz:hover{background:var(--sumi-soft)}.biz:hover:before{opacity:1}.biz-num{writing-mode:vertical-rl;font-family:var(--serif);font-size:1.05rem;letter-spacing:.4em;color:var(--kin);border-left:1px solid var(--line);padding-left:16px;justify-self:center}.biz-body,.biz-num{position:relative;z-index:1}.biz-body .cat{font-size:.75rem;letter-spacing:.3em;color:var(--ai-bright);margin-bottom:8px}.biz-body h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.25rem,2.4vw,1.65rem);letter-spacing:.12em;margin-bottom:12px}.biz-body p{color:var(--shikkui-dim);font-size:.93rem;max-width:560px}.biz-link{position:relative;z-index:1;text-decoration:none;color:var(--shikkui);font-size:.85rem;letter-spacing:.18em;border:1px solid var(--line);border-radius:50%;width:92px;height:92px;display:grid;place-items:center;text-align:center;transition:.35s;flex-shrink:0}.biz-link:hover{border-color:var(--kin);color:var(--kin);transform:rotate(8deg)}@media (max-width:760px){.biz{grid-template-columns:1fr;gap:18px}.biz-num{writing-mode:horizontal-tb;border-left:none;border-top:1px solid var(--line);padding:12px 0 0;justify-self:start}.biz-link{width:auto;height:auto;border-radius:0;border:none;padding:0;justify-self:start}.biz-link:hover{transform:none}}.facts{background:var(--sumi-soft)}.facts-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.fact{background:var(--sumi-soft);padding:40px 24px;text-align:center}.fact .num{font-family:var(--serif);font-size:clamp(1.9rem,4vw,2.7rem);font-weight:600;letter-spacing:.06em}.fact .num span{font-size:1rem;color:var(--kin);margin-left:4px}.fact .lbl{font-size:.82rem;color:var(--shikkui-dim);letter-spacing:.16em;margin-top:8px}.cta{text-align:center;background:radial-gradient(ellipse 60% 70% at 50% 120%,rgba(46,93,143,.25),transparent 70%),var(--sumi)}.cta h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.6rem,3.2vw,2.2rem);letter-spacing:.18em;margin-bottom:18px}.cta p{color:var(--shikkui-dim);margin-bottom:40px}.cta--compact{padding-top:0}.detail{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:110px 1fr;grid-gap:clamp(24px,4vw,56px);gap:clamp(24px,4vw,56px);padding:clamp(48px,7vh,80px) 0;border-bottom:1px solid var(--line)}.detail:last-of-type{border-bottom:none}.detail .biz-num{align-self:start;height:150px}.detail .cat{font-size:.75rem;letter-spacing:.3em;color:var(--ai-bright);margin-bottom:8px}.detail h3{font-family:var(--serif);font-weight:700;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:.14em;margin-bottom:18px}.detail .lead{color:var(--shikkui);font-size:1rem;margin-bottom:14px}.detail p{color:var(--shikkui-dim);font-size:.95rem;margin-bottom:12px;max-width:680px}.detail blockquote{font-family:var(--serif);color:var(--kin);border-left:2px solid var(--kin);padding:6px 0 6px 20px;margin:24px 0;font-size:1.02rem;letter-spacing:.08em}.feat{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px;max-width:680px;padding:0}.feat,.feat li{list-style:none}.feat li{border:1px solid var(--line);font-size:.88rem;color:var(--shikkui-dim);position:relative;padding:14px 18px 14px 38px;transition:border-color .3s}.feat li:before{content:"";position:absolute;left:16px;top:22px;width:10px;height:10px;border:1.5px solid var(--kin);transform:rotate(45deg)}.feat li:hover{border-color:var(--kin)}@media (max-width:760px){.detail{grid-template-columns:1fr}.detail .biz-num{writing-mode:horizontal-tb;height:auto;border-left:none;border-top:1px solid var(--line);padding:12px 0 0}}.co-table{max-width:860px;margin:0 auto;border:1px solid var(--line)}.co-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--line)}.co-row:last-child{border-bottom:none}.co-row dt{background:var(--sumi-soft);padding:22px 26px;font-family:var(--serif);letter-spacing:.14em;color:var(--kin);font-size:.92rem}.co-row dd{padding:22px 26px;font-size:.95rem;color:var(--shikkui)}.co-row dd ul{list-style:none}.co-row dd li{padding-left:20px;position:relative}.co-row dd li:before{content:"—";position:absolute;left:0;color:var(--ai-bright)}@media (max-width:620px){.co-row{grid-template-columns:1fr}.co-row dt{padding:14px 20px}.co-row dd{padding:16px 20px}}.map-wrap{max-width:860px;margin:48px auto 0}.map-wrap iframe{width:100%;height:380px;border:1px solid var(--line);filter:grayscale(.4) contrast(1.05)}.sec-head--center{text-align:center;max-width:none}.news-list{max-width:900px;margin:0 auto}.news-item{display:grid;grid-template-columns:150px 1fr;grid-gap:clamp(16px,3vw,40px);gap:clamp(16px,3vw,40px);padding:34px 0;border-bottom:1px solid var(--line)}.news-item:first-child{border-top:1px solid var(--line)}.news-date{font-family:var(--serif);color:var(--shikkui-dim);font-size:.9rem;letter-spacing:.1em}.news-tag{display:inline-block;border:1px solid var(--kin);color:var(--kin);font-size:.7rem;letter-spacing:.2em;padding:2px 12px;margin-bottom:10px}.news-item h3{font-family:var(--serif);font-weight:600;font-size:1.1rem;letter-spacing:.1em;margin-bottom:8px}.news-item p{color:var(--shikkui-dim);font-size:.92rem}.news-item a.pdf{color:var(--ai-bright);text-decoration:none;border-bottom:1px solid var(--ai-bright);font-size:.9rem}.news-item a.pdf:hover{color:var(--kin);border-color:var(--kin)}@media (max-width:620px){.news-item{grid-template-columns:1fr;gap:8px}}.contact-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;grid-gap:clamp(32px,5vw,72px);gap:clamp(32px,5vw,72px);align-items:start}@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}.form{display:grid;grid-gap:22px;gap:22px}.field label{display:block;font-size:.85rem;letter-spacing:.16em;color:var(--shikkui-dim);margin-bottom:8px}.field label .req{color:var(--kin);margin-left:6px;font-size:.75rem}.field input,.field select,.field textarea{width:100%;background:var(--sumi-soft);border:1px solid var(--line);color:var(--shikkui);font-family:var(--sans);font-size:.95rem;padding:14px 16px;transition:border-color .3s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ai-bright)}.field textarea{min-height:170px;resize:vertical}.side-card{border:1px solid var(--line);padding:32px 28px}.side-card h3{font-family:var(--serif);font-size:1.05rem;letter-spacing:.16em;color:var(--kin);margin-bottom:18px}.side-card p{font-size:.9rem;color:var(--shikkui-dim);margin-bottom:14px}.side-card .big{font-family:var(--serif);font-size:1.5rem;color:var(--shikkui);letter-spacing:.08em}.side-card a{color:var(--ai-bright);text-decoration:none}.form-error,.side-card a:hover{color:var(--kin)}.form-error,.form-success{font-size:.85rem}.form-success{color:var(--ai-bright)}.form-iframe{display:none;width:0;height:0;border:0}.side-card .big a{color:inherit}.business-inner{max-width:1100px;margin:0 auto}