:root{--ink:#0f1c2e;--cream:#f4f7fb;--gold:#3b82f6;--gold-light:#60a5fa;--charcoal:#1e2d42;--mid:#5a7a99;--border:#3b82f633;--white:#fff;--navy:#0f1c2e;--navy-mid:#1a3152;--blue-accent:#3b82f6;--blue-light:#60a5fa;--surface:#f4f7fb}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:Noto Sans JP,sans-serif;overflow-x:hidden}nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border-bottom:1px solid #3b82f61f;justify-content:space-between;align-items:center;height:72px;padding:0 5vw;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 20px #0f1c2e0f}.nav-logo-svg{flex-shrink:0;width:32px;height:36px}.nav-logo-text{color:var(--navy);letter-spacing:.22em;text-transform:uppercase;font-family:Noto Serif JP,serif;font-size:1.1rem;font-weight:700}.nav-links{gap:3.8rem;list-style:none;display:flex}.nav-links a{letter-spacing:.18em;color:var(--charcoal);padding-bottom:4px;font-size:.82rem;text-decoration:none;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--gold);width:0;height:1px;transition:width .35s;position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--gold)}.nav-links a:hover:after{width:100%}.nav-cta{letter-spacing:.1em;color:var(--white);background:var(--blue-accent);cursor:pointer;border:none;border-radius:4px;padding:10px 24px;font-size:.78rem;text-decoration:none;transition:background .3s}.nav-cta:hover{background:var(--blue-light)}.hero{grid-template-columns:1fr 1fr;min-height:100vh;display:grid;position:relative;overflow:hidden}.hero-left{z-index:2;background:var(--white);flex-direction:column;justify-content:center;padding:120px 8vw;display:flex;position:relative}.hero-eyebrow{letter-spacing:.3em;color:var(--blue-accent);text-transform:uppercase;align-items:center;gap:1rem;margin-bottom:2rem;font-size:.72rem;display:flex}.hero-eyebrow:before{content:"";background:var(--blue-accent);width:40px;height:2px;display:block}.hero-title{letter-spacing:.05em;color:var(--ink);margin-bottom:1.8rem;font-family:Shippori Mincho,serif;font-size:clamp(2.4rem,4vw,3.6rem);font-weight:700;line-height:1.55}.hero-title em{color:var(--blue-accent);font-style:normal}.hero-sub{color:var(--mid);max-width:420px;margin-bottom:3rem;font-size:.95rem;line-height:2}.hero-btns{flex-wrap:wrap;gap:1.2rem;display:flex}.btn-primary{background:var(--navy);color:var(--white);letter-spacing:.18em;padding:16px 40px;font-size:.82rem;text-decoration:none;transition:color .35s;display:inline-block;position:relative;overflow:hidden}.btn-primary:before{content:"";background:var(--gold);transform-origin:0;transition:transform .4s;position:absolute;inset:0;transform:scaleX(0)}.btn-primary:hover:before{transform:scaleX(1)}.btn-primary span{z-index:1;position:relative}.btn-outline{border:1px solid var(--ink);color:var(--ink);letter-spacing:.18em;padding:16px 40px;font-size:.82rem;text-decoration:none;transition:background .3s,color .3s;display:inline-block}.btn-outline:hover{background:var(--ink);color:var(--white)}.hero-right{background:var(--navy);position:relative;overflow:hidden}.hero-pattern{background:repeating-linear-gradient(45deg,#0000,#0000 40px,#3b82f60f 40px 41px);position:absolute;inset:0}.hero-right-content{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-kanji{color:#3b82f61f;letter-spacing:.1em;writing-mode:vertical-rl;text-orientation:mixed;-webkit-user-select:none;user-select:none;font-family:Shippori Mincho,serif;font-size:clamp(6rem,14vw,12rem);font-weight:700;line-height:1}.hero-badge{text-align:center;background:#3b82f614;border:1px solid #3b82f680;padding:16px 28px;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.hero-badge-num{color:var(--blue-light);font-family:Shippori Mincho,serif;font-size:2.2rem;font-weight:700;display:block}.hero-badge-num sup{vertical-align:super;font-size:1rem;font-weight:600}.hero-badge-label{letter-spacing:.2em;color:#ffffffa6;margin-top:4px;font-size:.72rem;display:block}section{padding:100px 8vw}.section-label{letter-spacing:.35em;color:var(--blue-accent);text-transform:uppercase;margin-bottom:1rem;font-size:.68rem}.section-title{letter-spacing:.06em;margin-bottom:1.2rem;font-family:Shippori Mincho,serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;line-height:1.5}.section-desc{color:var(--mid);text-wrap:balance;max-width:540px;font-size:.9rem;line-height:1.9}.services{background:var(--white);padding:100px 8vw}.services-header{grid-template-columns:1fr 1fr;align-items:end;gap:4rem;margin-bottom:5rem;display:grid}.services-grid{background:#3b82f61a;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.service-card{background:var(--white);cursor:pointer;padding:48px 40px;transition:box-shadow .45s;position:relative;overflow:hidden}.service-card:after{content:"";opacity:0;z-index:0;transition:opacity .45s;position:absolute;inset:0}.service-card:hover:after{opacity:1}.service-card:hover{box-shadow:0 16px 48px #0f1c2e29}.sc-1:after{background:linear-gradient(135deg,#0f1c2e 0%,#1e3a5f 60%,#2d5a8e 100%)}.sc-2:after{background:linear-gradient(135deg,#0d2137 0%,#0e4d6e 55%,#0891b2 100%)}.sc-3:after{background:linear-gradient(135deg,#1a1060 0%,#3730a3 55%,#6366f1 100%)}.sc-4:after{background:linear-gradient(135deg,#0c2d1a 0%,#166534 55%,#16a34a 100%)}.sc-5:after{background:linear-gradient(135deg,#1c1008 0%,#92400e 55%,#d97706 100%)}.sc-6:after{background:linear-gradient(135deg,#2d0a1e 0%,#7f1d4e 55%,#be185d 100%)}.service-card:hover .service-num{color:#ffffff26}.service-card:hover h3{color:#fff}.service-card:hover p{color:#ffffffad}.service-card:hover .service-icon path,.service-card:hover .service-icon rect,.service-card:hover .service-icon circle,.service-card:hover .service-icon polyline,.service-card:hover .service-icon line{stroke:#ffffffbf}.service-card .sc-bar{z-index:3;width:0;height:3px;transition:width .45s;position:absolute;bottom:0;left:0}.sc-1 .sc-bar{background:#60a5fa}.sc-2 .sc-bar{background:#22d3ee}.sc-3 .sc-bar{background:#a5b4fc}.sc-4 .sc-bar{background:#4ade80}.sc-5 .sc-bar{background:#fbbf24}.sc-6 .sc-bar{background:#f472b6}.service-card:hover .sc-bar{width:100%}.service-card>*{z-index:2;position:relative}.service-num{color:#3b82f61a;font-family:Shippori Mincho,serif;font-size:3.5rem;font-weight:700;line-height:1;position:absolute;top:32px;right:32px}.service-icon{width:44px;height:44px;margin-bottom:2rem}.service-card h3{letter-spacing:.05em;margin-bottom:1rem;font-family:Shippori Mincho,serif;font-size:1.15rem;font-weight:600;line-height:1.6}.service-card p{color:var(--mid);font-size:.83rem;line-height:1.9}.process{background:var(--navy);color:var(--white)}.process .section-title{color:var(--white)}.process .section-desc{color:#ffffff8c}.process .section-label{color:var(--blue-light)}.process-header{grid-template-columns:1fr 1fr;align-items:end;gap:4rem;margin-bottom:5rem;display:grid}.process-steps{grid-template-columns:repeat(6,1fr);gap:0;display:grid;position:relative}.process-steps:before{content:"";background:linear-gradient(to right, var(--blue-accent), #3b82f626);height:1px;position:absolute;top:28px;left:40px;right:40px}.step{text-align:center;padding:0 16px;position:relative}.step-circle{border:1px solid var(--blue-accent);width:56px;height:56px;color:var(--blue-light);background:var(--navy);z-index:1;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-family:Shippori Mincho,serif;font-size:1rem;display:flex;position:relative}.step h4{letter-spacing:.08em;margin-bottom:.5rem;font-size:.82rem;font-weight:500}.step p{color:#ffffff73;font-size:.72rem;line-height:1.6}.why{background:var(--surface)}.why-header{text-align:center;margin-bottom:5rem}.why-header .section-desc{margin:0 auto}.why-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.why-card{background:var(--white);padding:52px 44px;transition:transform .35s;position:relative;overflow:hidden}.why-card:after{content:"";background:var(--blue-accent);transform-origin:0;width:100%;height:3px;transition:transform .4s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.why-card:hover:after{transform:scaleX(1)}.why-card:hover{transform:translateY(-4px)}.why-card-num{letter-spacing:.25em;color:var(--blue-accent);margin-bottom:2rem;font-family:Shippori Mincho,serif;font-size:.7rem}.why-card h3{letter-spacing:.05em;margin-bottom:1.2rem;font-family:Shippori Mincho,serif;font-size:1.25rem;font-weight:600}.why-card p{color:var(--mid);font-size:.84rem;line-height:2}.numbers{background:var(--navy-mid);grid-template-columns:repeat(4,1fr);gap:0;padding:80px 8vw;display:grid}.number-item{text-align:center;border-right:1px solid #ffffff1a;padding:20px}.number-item:last-child{border-right:none}.number-val{color:var(--white);margin-bottom:.5rem;font-family:Shippori Mincho,serif;font-size:3.2rem;font-weight:700;line-height:1}.number-val sup{color:var(--blue-light);font-size:1.4rem}.number-label{letter-spacing:.18em;color:#fff9;font-size:.78rem}.contact{background:var(--white);grid-template-columns:1fr 1fr;min-height:480px;padding:0;display:grid}.contact-left{background:var(--navy);flex-direction:column;justify-content:center;padding:80px 7vw;display:flex}.contact-left .section-label{color:var(--blue-light)}.contact-left .section-title{color:var(--white);font-size:2rem}.contact-details{flex-direction:column;gap:1.2rem;margin-top:2.5rem;display:flex}.contact-row{color:#ffffffa6;letter-spacing:.06em;align-items:center;gap:1rem;font-size:.85rem;display:flex}.contact-row strong{color:var(--blue-light);letter-spacing:.18em;min-width:60px;font-size:.72rem}.contact-right{flex-direction:column;justify-content:center;padding:80px 7vw;display:flex}.contact-right .section-title{font-size:1.8rem}.contact-right p{color:var(--mid);margin-bottom:2.5rem;font-size:.88rem;line-height:2}footer{background:var(--navy);color:#ffffff80;padding:56px 8vw 36px}.footer-top{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;margin-bottom:3rem;padding-bottom:3rem;display:flex}.footer-logo{align-items:center;gap:10px;text-decoration:none;display:flex}.footer-logo-svg{flex-shrink:0;width:28px;height:32px}.footer-logo-text{color:var(--white);letter-spacing:.22em;text-transform:uppercase;font-family:Noto Serif JP,serif;font-size:1.1rem;font-weight:700}.footer-nav{gap:3rem;display:flex}.footer-nav-col h5{letter-spacing:.2em;color:var(--blue-light);margin-bottom:1.2rem;font-size:.72rem;font-weight:500}.footer-nav-col a{color:#ffffff80;margin-bottom:.7rem;font-size:.8rem;text-decoration:none;transition:color .2s;display:block}.footer-nav-col a:hover{color:var(--white)}.footer-bottom{letter-spacing:.06em;justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.footer-address{line-height:1.8}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-up{opacity:0;animation:.8s forwards fadeUp}.hero-eyebrow{animation-delay:.1s}.hero-title{animation-delay:.3s}.hero-sub{animation-delay:.5s}.hero-btns{animation-delay:.7s}.hero-kanji{opacity:0;animation:1.2s .4s forwards fadeUp}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal.visible{opacity:1;transform:none}@media (width<=900px){.hero{grid-template-columns:1fr;min-height:auto}.hero-right{display:none}.hero-left{padding:120px 6vw 60px}.hero-title{font-size:2rem}.hero-sub{font-size:.9rem}.services-header,.process-header{grid-template-columns:1fr}.services-grid{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:1fr}.process-steps{grid-template-columns:repeat(3,1fr);gap:2rem}.process-steps:before{display:none}.numbers{grid-template-columns:repeat(2,1fr)}.number-item:nth-child(2){border-right:none}.contact{grid-template-columns:1fr}.contact-left,.contact-right{padding:60px 8vw}.footer-top{flex-direction:column;gap:2.5rem}.footer-bottom{text-align:center;flex-direction:column;gap:1rem}nav{padding:0 6vw}.nav-links{display:none}}@media (width<=768px){.number-val{font-size:2.4rem}}@media (width<=600px){.services-grid{grid-template-columns:1fr}.process-steps{grid-template-columns:repeat(2,1fr);gap:2rem}section{padding:80px 6vw}}.nav-logo{align-items:center;gap:12px;text-decoration:none;display:flex}.logo-icon{width:36px;height:36px}.logo-icon svg{width:100%;height:100%}.nav-logo-text{letter-spacing:.2em;color:var(--ink);font-weight:800}.nowrap{white-space:nowrap}
