@charset "UTF-8";
:root{--ink:#172c3c;--muted:#5e6b74;--accent:#d34b2b;--orange:#ed613d;--line:#dce1e4;--paper:#fff;--soft:#f2f5f7;--gutter:clamp(1.5rem,5.2vw,6rem);--max:1320px;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-size:1rem;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}h2{font-size:clamp(1.8rem,2.7vw,2.5rem);line-height:1.7;letter-spacing:.05em}h3{font-size:1.25rem;line-height:1.65}ul,ol{list-style:none;margin:0;padding:0}.section-wrap{width:100%;max-width:calc(var(--max) + var(--gutter)*2);padding-inline:var(--gutter);margin-inline:auto}.skip-link{position:fixed;top:-100px;left:12px;background:var(--ink);color:white;padding:12px 20px;z-index:100}.skip-link:focus{top:12px}.accent{color:var(--accent)}
.site-header{height:96px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem;background:#fff;position:relative;z-index:20;border-bottom:1px solid rgba(23,44,60,.07)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-symbol{height:43px;width:38px;font-family:Arial,sans-serif;font-size:48px;line-height:43px;font-weight:700;position:relative;text-align:center}.brand-symbol>span{position:absolute;width:7px;height:7px;background:var(--orange);top:3px;left:0}.brand-name{font-size:1.35rem;font-weight:700;letter-spacing:.09em;line-height:1.45}.brand-name small{display:block;font-size:.75rem;letter-spacing:.28em;font-weight:500;margin-top:2px}.main-nav{display:flex;align-items:center;gap:2rem;font-size:.875rem;font-weight:500;white-space:nowrap}.main-nav>a{transition:color .2s}.main-nav>a:hover{color:var(--accent)}.main-nav .nav-contact{background:var(--ink);color:#fff;padding:13px 23px;display:flex;gap:30px;align-items:center}.main-nav .nav-contact:hover{background:#294356;color:#fff}.nav-contact>span{font-size:1.25rem}.menu-toggle{display:none}
.hero{height:auto;min-height:660px;padding-bottom:80px;position:relative;overflow:hidden;background:#f5f7f8}.hero-image{position:absolute;inset:0 0 0 42%;background:#314c63}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,20,40,.08),transparent 60%,rgba(0,20,40,.1))}.hero-image img{height:100%;width:100%;object-fit:cover;object-position:75% center}.image-note{position:absolute;bottom:28px;right:26px;color:#fff;text-shadow:0 1px 5px #142331;font-size:.75rem;letter-spacing:.05em;z-index:1}.hero-copy{position:relative;z-index:2;width:53%;padding:108px 3rem 72px var(--gutter);background:#f5f7f8;margin-top:38px;min-height:475px;clip-path:polygon(0 0,calc(100% - 35px) 0,100% 100%,0 100%)}.eyebrow{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.16em;display:flex;align-items:center;gap:12px;font-weight:600}.eyebrow>span{height:1px;width:32px;background:var(--accent)}.hero h1{font-size:clamp(2.25rem,3.8vw,3.75rem);line-height:1.65;letter-spacing:.055em;margin-top:23px;white-space:nowrap}.hero-description{font-size:1rem;line-height:2.05;margin-top:24px;color:var(--muted)}.text-link{margin-top:35px;font-size:.875rem;display:inline-flex;align-items:center;gap:40px;border-bottom:1px solid var(--ink);padding-bottom:9px}.text-link>span{font-size:1.5rem;line-height:1}.text-link:hover{color:var(--accent);border-color:var(--accent)}.hero-bottom{position:absolute;bottom:27px;left:var(--gutter);width:calc(42% - var(--gutter) - 28px);display:flex;align-items:center;gap:1.3rem;font-size:.75rem;letter-spacing:.07em}.hero-bottom>span:first-child{display:none}.hero-bottom>a{margin-left:auto;font-family:Arial,sans-serif;font-size:.75rem;display:flex;gap:18px;align-items:center}.hero-bottom>a>span{font-size:1.15rem}
.section-label{display:flex;gap:20px;align-items:flex-start;font-family:Arial,sans-serif;font-size:.875rem;font-weight:600;letter-spacing:.06em;line-height:1.5}.section-number{color:var(--accent);font-size:.75rem;padding-top:2px}.section-label small{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;display:block;font-size:.875rem;font-weight:400;letter-spacing:.03em;margin-top:7px}.about{display:grid;grid-template-columns:1fr 3fr;gap:45px;padding-block:112px 120px}.about-content{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}.about h2{font-size:clamp(1.65rem,2.3vw,2.15rem);white-space:nowrap}.about-copy{padding-top:4px;color:var(--muted);line-height:2.05}.about-copy p+p{margin-top:20px}.wide-break{display:none}
.services{background:var(--soft);padding-block:92px 55px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:48px}.section-heading h2{font-size:clamp(1.75rem,2.5vw,2.3rem)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#fff}.service-card{padding:34px 32px 32px;min-width:0;position:relative;border-top:2px solid var(--ink)}.service-card+.service-card{border-left:1px solid var(--line)}.service-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:15px}.service-top>span{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.service-top svg{width:48px;height:48px;color:var(--ink);flex-shrink:0}.service-card h3{font-size:clamp(1.05rem,1.55vw,1.4rem);letter-spacing:.015em;margin-bottom:20px}.service-card p{font-size:1rem;line-height:1.95;color:var(--muted)}.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px;font-size:.8125rem;color:var(--muted)}.service-tags li{border:1px solid #dce1e5;padding:2px 9px;white-space:nowrap}.software{margin-top:37px;display:flex;justify-content:center;align-items:center;gap:44px}.software>span{font-size:.875rem;color:var(--muted)}.software>div{display:flex;align-items:center;gap:35px}.software strong{font-family:Arial,sans-serif;font-size:1.15rem;font-weight:500;letter-spacing:.025em}.software-divider{height:18px;width:1px;background:#c4ccd2}.mobile-break{display:none}
.process{background:var(--ink);color:#fff;padding-block:98px 96px}.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}.process .section-number{color:#ff8b69}.process .section-label{color:#d4dce1}.process h2{margin-top:40px;font-size:clamp(1.7rem,2.4vw,2.35rem)}.process-intro>p{font-size:1rem;color:#b9c6cf;line-height:2.05;margin-top:23px}.process-list{padding-top:4px}.process-list li{display:flex;gap:28px;padding:26px 0;border-top:1px solid #49606f}.process-list li:first-child{padding-top:8px;border-top:none}.process-list li:last-child{padding-bottom:0}.step-number{font-family:Arial,sans-serif;font-size:.875rem;color:#ff8b69;letter-spacing:.03em;padding-top:4px}.process-list h3{font-size:1.125rem;font-weight:500;margin-bottom:11px;letter-spacing:.03em}.process-list p{font-size:1rem;line-height:1.95;color:#b9c6cf}
.company{padding-block:112px 115px;display:grid;grid-template-columns:1fr 1.35fr;gap:100px}.company h2{font-size:2rem;letter-spacing:.075em;margin-top:43px}.company-reading{font-size:.8125rem;color:var(--muted);letter-spacing:.1em;margin-top:7px}.company-details{margin:0;border-top:1px solid var(--ink)}.company-details>div{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:22px 0;border-bottom:1px solid var(--line)}.company-details dt{font-size:.875rem;color:var(--muted)}.company-details dd{margin:0;font-size:1rem;line-height:1.9}.company-details a{overflow-wrap:anywhere}.company-details a>span{margin-left:12px}.company-details a:hover{color:var(--accent)}
.contact{background:#edf1f4;position:relative;overflow:hidden}.contact:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--orange)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-block:76px 84px}.contact .eyebrow{color:var(--accent);font-size:.8125rem}.contact h2{font-size:clamp(1.8rem,2.7vw,2.65rem);margin-top:17px;line-height:1.5}.contact p:last-child{font-size:1rem;color:var(--muted);margin-top:22px;max-width:400px}.contact-actions{width:100%}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--ink);color:#fff;padding:28px 33px;font-size:1.25rem;transition:background .2s}.contact-email:hover{background:#294356}.contact-email small{display:block;font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.12em;color:#b9c6cf;margin-bottom:4px}.contact-arrow{font-size:2.25rem;font-family:Arial,sans-serif;font-weight:300}.contact-phone{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:19px;padding:13px 0;border-bottom:1px solid #b4c0c9}.contact-phone>span{font-size:.875rem;color:var(--muted)}.contact-phone strong{font-size:1.5rem;font-family:Arial,sans-serif;font-weight:400;letter-spacing:.035em;white-space:nowrap}.contact-phone:hover{color:var(--accent)}
.site-footer{padding:31px var(--gutter);display:flex;align-items:center;gap:30px;min-height:104px}.footer-brand{font-size:1.1rem;font-weight:600;letter-spacing:.06em}.footer-brand span{font-family:Arial,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:.13em;margin-left:13px}.site-footer p{font-size:.75rem;color:var(--muted);margin-left:auto}.back-top{font-size:1.5rem;margin-left:18px;padding:0 12px}
@media(min-width:1550px){.hero-copy{padding-left:max(var(--gutter),calc((100vw - var(--max))/2));}.hero-bottom{left:max(var(--gutter),calc((100vw - var(--max))/2));}.hero{min-height:720px}.hero-copy{margin-top:68px;padding-top:105px}}
@media(max-width:1150px){.main-nav{gap:1.2rem}.main-nav .nav-contact{padding-inline:16px;gap:18px}.hero{min-height:620px}.hero-copy{padding-top:90px;padding-right:2rem}.hero h1{font-size:3.8vw}.about{grid-template-columns:1fr 3.3fr;gap:30px}.about-content{gap:28px;grid-template-columns:1fr 1.2fr}.about h2{font-size:1.75rem}.desktop-break{display:none}.service-card{padding-inline:25px}.process-layout,.company,.contact-inner{gap:65px}.company-details>div{grid-template-columns:100px 1fr;gap:20px}.contact-phone strong{font-size:1.3rem}}
@media(max-width:900px){.site-header{height:82px}.brand-name{font-size:1.15rem}.main-nav{gap:1rem;font-size:.8125rem}.main-nav .nav-contact{padding:10px 12px;gap:10px}.main-nav>a:first-child{display:none}.hero{min-height:580px}.hero-copy{width:57%;margin-top:45px;padding-top:66px;padding-bottom:60px;min-height:420px}.hero h1{font-size:4vw}.hero-description{font-size:.9375rem}.about{grid-template-columns:1fr;padding-block:76px 80px;gap:32px}.about-content{grid-template-columns:1fr 1.25fr;gap:38px}.about h2{font-size:2rem}.services{padding-top:72px}.section-heading h2{font-size:1.7rem}.service-card{padding:27px 22px}.service-top{margin-bottom:20px;align-items:flex-start;flex-direction:column;gap:22px}.service-top svg{width:40px;height:40px}.service-card h3{font-size:1.025rem;white-space:nowrap}.service-card p{font-size:1rem}.process-layout{gap:45px}.process{padding-block:78px}.process h2{font-size:1.65rem}.process-list li{gap:20px}.company{grid-template-columns:1fr 1.4fr;gap:40px;padding-block:80px}.company h2{font-size:1.75rem}.company-details>div{grid-template-columns:78px 1fr;gap:16px}.contact-inner{gap:40px;padding-block:65px}.contact-email{padding:24px;font-size:1.1rem}.contact-phone{flex-direction:column;align-items:flex-start;gap:3px}.contact-phone strong{font-size:1.5rem}}
@media(max-width:680px){:root{--gutter:1.5rem}html{scroll-padding-top:18px}.site-header{height:78px;gap:15px}.brand-symbol{height:36px;width:31px;font-size:42px;line-height:37px}.brand-symbol>span{height:6px;width:6px}.brand{gap:10px}.brand-name{font-size:1.125rem}.brand-name small{font-size:.75rem}.menu-toggle{display:flex;align-items:center;gap:11px;cursor:pointer;background:none;border:0;padding:10px 0 10px 10px;color:var(--ink);font-size:.875rem}.menu-toggle i{width:21px;height:13px;display:block;border-top:1px solid currentColor;border-bottom:1px solid currentColor;position:relative}.menu-toggle[aria-expanded="true"] i{height:1px;border:0;background:currentColor;transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] i:after{content:"";position:absolute;inset:0;background:currentColor;transform:rotate(90deg)}.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:white;box-shadow:0 12px 18px #172c3c14;padding:10px var(--gutter) 25px;gap:0;align-items:stretch;font-size:1rem;white-space:normal}.main-nav.is-open{display:flex;flex-direction:column}.main-nav>a,.main-nav>a:first-child{display:block;padding:14px 0;border-bottom:1px solid var(--line)}.main-nav .nav-contact{display:flex;margin-top:17px;justify-content:space-between;padding:14px 20px;border:0}.hero{height:auto;min-height:0;padding-bottom:0;background:#f5f7f8;display:flex;flex-direction:column}.hero-image{position:relative;inset:auto;height:310px;order:2}.hero-image img{object-position:52% 48%}.hero-copy{width:100%;margin:0;clip-path:none;min-height:0;padding:43px var(--gutter) 41px;order:1;background:transparent}.hero .eyebrow{font-size:.75rem}.hero h1{font-size:clamp(1.9rem,7.9vw,3rem);margin-top:18px;line-height:1.6;letter-spacing:.04em}.hero-description{margin-top:18px;font-size:1rem}.text-link{margin-top:23px;gap:35px}.hero-bottom{position:relative;bottom:auto;left:auto;order:3;width:100%;padding:18px var(--gutter);font-size:.75rem}.hero-bottom>span:first-child{display:block;font-size:.75rem}.hero-bottom>a{font-size:.75rem;gap:13px}.image-note{bottom:13px;right:16px;font-size:.75rem}.section-label{font-size:.875rem;gap:16px}.section-label small{font-size:.8125rem;margin-top:4px}.about{padding-block:63px 69px;gap:28px}.about-content{grid-template-columns:1fr;gap:23px}.about h2{font-size:1.9rem}.about-copy{font-size:1rem;line-height:2}.about-copy p+p{margin-top:15px}.services{padding-block:60px 38px}.section-heading{display:block;margin-bottom:29px}.section-heading h2{font-size:1.7rem;margin-top:27px;line-height:1.7}.mobile-break{display:block}.service-grid{grid-template-columns:1fr;background:transparent;gap:20px}.service-card{padding:26px;background:#fff;border-top-width:2px}.service-card+.service-card{border-left:none}.service-top{flex-direction:row;align-items:center;margin-bottom:19px}.service-top svg{width:42px;height:42px}.service-card h3{font-size:1.35rem;white-space:normal;margin-bottom:15px}.service-card p{font-size:1rem}.service-tags{margin-top:22px;font-size:.8125rem}.software{flex-direction:column;gap:11px;margin-top:30px}.software>div{gap:23px}.software strong{font-size:1.05rem}.software>span{font-size:.875rem}.process{padding-block:62px 68px}.process-layout{grid-template-columns:1fr;gap:37px}.process h2{font-size:1.85rem;margin-top:28px;line-height:1.65}.process-intro>p{margin-top:17px}.process-list li{gap:23px;padding-block:25px}.process-list li:first-child{padding-top:25px;border-top:1px solid #49606f}.process-list h3{font-size:1.125rem}.company{grid-template-columns:1fr;gap:30px;padding-block:64px 65px}.company h2{margin-top:26px;font-size:1.8rem}.company-details>div{grid-template-columns:86px 1fr;gap:16px;padding-block:20px}.company-details dd{font-size:1rem}.company-details dt{font-size:.875rem}.company-details a>span{margin-left:3px}.contact-inner{grid-template-columns:1fr;gap:29px;padding-block:57px 60px}.contact h2{font-size:2rem;margin-top:15px}.contact p:last-child{margin-top:19px}.contact-email{font-size:1.15rem;padding:23px 25px}.contact-phone{flex-direction:row;align-items:center;gap:13px;margin-top:13px}.contact-phone>span{font-size:.8125rem}.contact-phone strong{font-size:1.3rem}.site-footer{display:grid;grid-template-columns:1fr auto;gap:13px;padding-block:29px}.footer-brand{font-size:1rem}.footer-brand span{font-size:.75rem;margin-left:10px}.site-footer p{margin:0;grid-row:2;font-size:.75rem}.back-top{grid-column:2;grid-row:1/3;margin:0;padding:5px}}
@media(max-width:360px){:root{--gutter:1.15rem}.hero h1{font-size:1.8rem}.hero-description{font-size:.9375rem}.hero-bottom{gap:12px}.company-details>div{grid-template-columns:70px 1fr;gap:12px}.contact-phone{align-items:flex-start;flex-direction:column;gap:2px}.service-card{padding:23px}.company-details dd{font-size:.9375rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.service-card:nth-child(odd){border-left:0}.service-top{min-height:48px}.service-card h3{white-space:normal}

/* Company profile and brochure examples */
.gensun{margin-top:32px;padding:28px 32px;background:#fff;border-left:3px solid var(--accent)}.gensun h3{font-size:1.25rem;margin:0 0 10px}.gensun p{max-width:960px;color:var(--muted);margin:0}
.examples{padding-block:90px}.section-intro{color:var(--muted);margin:0 0 32px}.examples-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px}.example{margin:0;min-width:0}.example-image{aspect-ratio:4/3;background:#f5f7f8;border:1px solid var(--line);padding:18px;overflow:hidden}.example-image img{width:100%;height:100%;object-fit:contain;display:block}.example figcaption{padding-top:16px}.example h3{font-size:1.125rem;margin:0 0 5px}.example p{font-size:1rem;color:var(--muted);margin:0}
.team{background:var(--soft);padding-block:80px}.team-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.team-copy h2{font-size:2rem;line-height:1.6;margin:26px 0}.team-copy p{color:var(--muted);margin-top:18px}.team-photo{margin:0}.team-photo img{width:100%;height:auto;display:block}.team-photo figcaption{font-size:.875rem;color:var(--muted);margin-top:10px}.contact-person{display:flex;align-items:baseline;gap:24px;margin:0 0 18px!important}.contact-person span{font-size:.875rem}.contact-person strong{font-size:1.3rem}.contact-email .contact-address{font-size:1rem;letter-spacing:0;text-transform:none;margin-top:6px;overflow-wrap:anywhere}.inquiry-guide{font-size:1rem;max-width:480px}.main-nav{gap:22px}
@media(max-width:1100px) and (min-width:861px){.main-nav{gap:12px;font-size:.875rem}.site-header{padding-inline:24px}}
@media(max-width:860px){.examples{padding-block:60px}.examples-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.team-layout{grid-template-columns:1fr;gap:30px}.team{padding-block:60px}.team-copy h2{font-size:1.8rem}.main-nav{gap:0}}
@media(max-width:560px){.examples-grid{grid-template-columns:1fr}.gensun{padding:24px}.example-image{aspect-ratio:4/3}.contact-person{flex-wrap:wrap;gap:8px 20px}.contact-email{padding:22px 18px}.contact-email .contact-address{font-size:.9375rem}}
