@charset "UTF-8";
:root{--bg:#faf9f6;--ink:#2b3430;--sub:#59605b;--red:#a94132;--line:#d5d8d0;--pale:#eff0e9;--serif:'Shippori Mincho','Yu Mincho',serif;--sans:'Noto Sans JP','Yu Gothic',sans-serif;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--bg);font:1rem/1.95 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}a{color:inherit;text-underline-offset:5px}img{display:block;width:100%;height:auto}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}.wrap{width:min(1120px,90%);margin:auto}.skip{position:fixed;top:-100px;left:15px;background:white;z-index:99;padding:12px}.skip:focus{top:10px}header{position:sticky;top:0;z-index:30;background:#faf9f6f5;border-bottom:1px solid var(--line)}.nav{display:flex;justify-content:space-between;align-items:center;gap:24px;width:min(1240px,92%);margin:auto;min-height:94px}.logo{display:flex;flex-direction:column;text-decoration:none;line-height:1.3;flex-shrink:0}.brand-name{font:800 1.75rem/1.4 var(--serif);letter-spacing:.12em}.brand-place{font-size:.7rem;letter-spacing:.08em;margin-top:3px}.links{display:flex;align-items:center;gap:28px;font-size:.875rem}.links a{text-decoration:none;white-space:nowrap}.links a:hover{color:var(--red)}.links .nav-contact{border-bottom:1px solid var(--ink);padding:8px 0}.menu-button{display:none}.hero{padding:60px 0 70px!important;border:0}.hero .wrap{display:grid;grid-template-columns:46% 54%;align-items:center;gap:0;width:min(1240px,92%)}.hero .wrap>div{padding-right:25px;position:relative;z-index:2}.eyebrow,.kicker{font-size:.875rem;color:var(--red);letter-spacing:.09em;font-weight:500;margin-bottom:22px}.hero h1{font:800 clamp(1.9rem,3.1vw,2.65rem)/1.7 var(--serif);letter-spacing:.015em;margin-bottom:22px}.hero h1 span{white-space:nowrap}.lead{max-width:28em;color:var(--sub);line-height:2.15;margin-bottom:28px}.hero-figure{margin-left:10px;padding-bottom:12px}.hero-figure img{height:520px;object-fit:cover;object-position:45% 50%;border-radius:48% 48% 2px 2px}.hero-figure figcaption{text-align:right;font:600 1rem/1.8 var(--serif);margin-top:14px;letter-spacing:.07em}.cta{display:inline-block;background:var(--ink);color:white;text-decoration:none;padding:13px 24px;border-radius:2px;font-size:.9375rem;line-height:1.6}.cta:hover{background:var(--red)}.plain-link{display:inline-block;margin:15px 0 15px 20px;font-size:.875rem}.hero-actions{display:flex;flex-wrap:wrap;align-items:center}.hero-actions .plain-link{margin-left:20px}section{padding:85px 0}h2{font:800 2.15rem/1.65 var(--serif);letter-spacing:.045em;margin-bottom:32px}#next{padding:55px 0 80px}.split{display:grid;grid-template-columns:42% 1fr;gap:35px 8%;align-items:center}.split>img{aspect-ratio:4/3;object-fit:cover;transform:rotate(-2deg);border:8px solid white;box-shadow:0 8px 26px #29312c10}.quote{font:600 1.85rem/1.8 var(--serif)}.quote small{display:block;font:1rem/2.1 var(--sans);color:var(--sub);margin-top:22px;max-width:30em}.qualifications{grid-column:1/-1;border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:200px 1fr;gap:30px;margin-top:25px}.qualifications h3{font-size:.9375rem;font-weight:500}.taglist{display:flex;flex-wrap:wrap;gap:8px 18px}.taglist span{font-size:.875rem}.qualifications .taglist{color:var(--sub)}#works{background:#fff;padding:80px 0 75px}.duo{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;margin:35px 0 45px;align-items:end}.duo img{height:275px;object-fit:cover;object-position:center 38%}.duo figure:nth-child(2){padding-top:30px}.duo figure:nth-child(2) img{height:225px}.duo figcaption{font-size:.8125rem;color:var(--sub);margin-top:12px}.grid3{display:grid;grid-template-columns:1fr 1fr;gap:0 46px}.card{padding:25px 0;border-top:1px solid var(--line);position:relative}.card .tag{font-size:.8125rem;color:var(--red);margin-bottom:8px}.card h3{font:600 1.2rem/1.7 var(--serif);margin-bottom:12px}.card p{font-size:1rem;color:var(--sub);line-height:1.95}.grid3>.card:nth-child(3){grid-column:1/-1}.photo-card{margin-top:20px;padding-left:0;display:grid;grid-template-columns:130px 1fr;column-gap:22px;align-content:start}.photo-card img{grid-column:1;grid-row:1/5;height:175px;object-fit:cover;border-radius:2px}.photo-card .tag,.photo-card h3,.photo-card p,.photo-card .service-link{grid-column:2}.service-link{font-size:.875rem;margin-top:18px;justify-self:start}.service-link:hover{color:var(--red)}#strength{padding:70px 0}#strength h2{margin-bottom:28px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;padding:26px 0;border-block:1px solid var(--line)}.num{font:800 1.8rem/1.5 var(--serif)}.label{font-size:.875rem;color:var(--sub);margin-top:8px}.badges{display:flex;gap:40px;margin-top:25px}.certificate{flex:1;text-decoration:none}.badge{display:flex;gap:20px;align-items:center}.badge img{width:62px;height:82px;object-fit:contain}.badge span{font-size:.875rem;color:var(--sub)}section#company{background:var(--pale)}.about-split{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:start}.about-box p{line-height:2.15;color:var(--sub)}.info{display:grid;grid-template-columns:130px 1fr;gap:17px 15px;font-size:.9375rem;margin-top:30px}.info dt{color:var(--sub)}.info dd{margin:0}.maplink{display:inline-block;font-size:.875rem;margin-top:7px}.ceo-card{padding-top:35px}.ceo-card img{aspect-ratio:4/5;object-fit:cover;object-position:center;margin-bottom:18px}.ceo-card .name{font:600 1.2rem var(--serif)}.ceo-card .role{font-size:.875rem;color:var(--sub);margin-top:6px}.recruit{padding:75px max(5%,24px);text-align:center;background:#36483e;color:#fff}.recruit h2{color:inherit;margin-bottom:20px}.recruit p{color:#e7ece7;max-width:39em;margin:0 auto 27px;font-size:1rem}.recruit .cta{background:white;color:var(--ink)}.contact-section{background:var(--bg);border-bottom:1px solid var(--line)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.contact-inner h2{font-size:2rem}.contact-inner p:not(.kicker){color:var(--sub)}.contact-methods a{display:block;text-decoration:none;padding:23px 0;border-bottom:1px solid var(--line)}.contact-methods small{display:block;font-size:.875rem;font-weight:400;margin-bottom:7px}.contact-methods strong{display:block}.tel strong{font:500 clamp(1.8rem,3.2vw,2.6rem)/1.5 var(--sans);letter-spacing:.03em}.tel span{display:block;font-size:.875rem;color:var(--sub)}.mail strong{font:500 1.15rem/1.8 var(--sans);overflow-wrap:anywhere}.contact-methods a:hover strong{color:var(--red)}footer{padding:40px 0}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:24px 45px}footer address{font-style:normal;font-size:.875rem;color:var(--sub)}.footer-links{display:flex;gap:20px;font-size:.8125rem;margin-left:auto}footer small{display:block;width:100%;font-size:.75rem;color:var(--sub)}
/* Recruitment is a conversation first, then the practical details. */
[data-page=recruit] .hero .wrap{grid-template-columns:44% 56%;gap:0}[data-page=recruit] .hero h1{font-size:3.5rem;line-height:1.5}[data-page=recruit] .hero img{width:100%;height:500px;object-fit:cover;object-position:50% 45%;border-radius:2px 80px 2px 2px}[data-page=recruit] .hero .lead{max-width:25em}[data-page=recruit] section:not(.hero):not(.contact-section){border-top:1px solid var(--line)}.working-together{background:var(--pale)}.appeal{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.appeal .card{border:0;padding:0}.appeal .card h3{font-size:1.25rem}.appeal .card:nth-child(2){padding-top:30px}.appeal .card:nth-child(3){padding-top:60px}.reqtable{width:100%;border-collapse:collapse;font-size:1rem}.reqtable th,.reqtable td{padding:20px 16px;border-top:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.9}.reqtable th{font-weight:500;width:165px;background:#f0f1eb}.reqtable td{padding-left:28px}.network-story{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:15px;counter-reset:network}.network-story li{counter-increment:network;border-top:2px solid var(--line);padding:18px 0}.network-story li:before{content:'0' counter(network);display:block;color:var(--red);font-size:.875rem;margin-bottom:10px}.network-story strong,.network-story span{display:block}.network-story strong{font-size:1rem}.network-story span{font-size:.875rem;color:var(--sub)}.network-story li:last-child{border-color:var(--red)}.faq{max-width:900px}.faq-item{border-top:1px solid var(--line)}.faq-item:last-child{border-bottom:1px solid var(--line)}.faq-item summary{padding:22px 36px 22px 0;cursor:pointer;list-style:none;position:relative;font-size:1rem}.faq-item summary:after{content:'＋';position:absolute;right:0;color:var(--red)}.faq-item[open] summary:after{content:'−'}.faq-item summary::-webkit-details-marker{display:none}.faq-item p{padding:0 25px 25px 0;color:var(--sub);font-size:1rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.step{border-top:1px solid var(--line);padding:18px 0}.step .n{font:600 1.3rem var(--serif);color:var(--red);margin-bottom:15px}.step h4{font-size:1rem;margin-bottom:10px}.step p{font-size:.875rem;color:var(--sub)}[data-page=recruit] .taglist span{font-size:1rem;border-bottom:1px solid var(--line);padding:5px 0}[data-page=recruit] section .wrap>p[style]{font-size:1rem!important;line-height:2.05}
@media(max-width:1000px){.links{gap:18px}.hero h1{font-size:2rem}.hero .wrap{grid-template-columns:48% 52%}.hero-figure img{height:440px}.about-split{gap:40px}.photo-card{grid-template-columns:100px 1fr;column-gap:15px}.info{grid-template-columns:100px 1fr}[data-page=recruit] .hero h1{font-size:2.8rem}.plain-link{margin-left:0;margin-right:20px}.qualifications{grid-template-columns:170px 1fr}}
@media(max-width:760px){html{scroll-padding-top:90px}.nav{min-height:78px;width:90%}.brand-name{font-size:1.45rem}.brand-place{font-size:.65rem}.menu-button{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:12px 0;color:var(--ink);font-size:.875rem}.menu-button span{font-size:1.25rem}.links{display:none;position:absolute;top:78px;left:0;right:0;padding:16px 5% 25px;background:var(--bg);border-bottom:1px solid var(--line)}.links.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.links a{padding:13px 8px;font-size:1rem}.links .nav-contact{padding:13px 8px;border:0;color:var(--red)}.hero{padding:34px 0 40px!important}.hero .wrap,[data-page=recruit] .hero .wrap{display:flex;flex-direction:column;align-items:stretch;width:90%}.hero .wrap>div{padding:0}.hero h1{font-size:clamp(1.45rem,5.65vw,2.3rem);line-height:1.8;letter-spacing:0}.hero h1 span{white-space:nowrap}.eyebrow,.kicker{margin-bottom:15px;font-size:.8125rem}.lead{font-size:1rem;line-height:2;margin-bottom:20px;max-width:none}.hero-figure{margin:25px 0 0 0}.hero-figure img{height:auto;aspect-ratio:5/4;object-position:center;border-radius:2px 60px 2px 2px}.hero-figure figcaption{font-size:.875rem;margin-top:12px}.plain-link{margin:16px 0 0 18px;font-size:.875rem}.hero .cta{padding:12px 17px}.split{display:flex;flex-direction:column;gap:30px;align-items:stretch}#next{padding:30px 0 50px}.split>img{width:85%;align-self:flex-start;max-height:340px}.split>div{padding-left:7%}.quote{font-size:1.55rem}.quote small{font-size:1rem}.qualifications{margin:12px 0 0;display:block;padding-top:20px}.qualifications h3{margin-bottom:12px}.taglist{gap:8px 16px}.taglist span{font-size:.875rem}section,#works,#strength{padding:55px 0}h2{font-size:1.7rem;line-height:1.6;margin-bottom:25px}.duo{gap:15px;grid-template-columns:1fr 1fr;margin:25px 0}.duo img{height:180px}.duo figure:nth-child(2) img{height:140px}.duo figcaption{font-size:.75rem}.grid3{display:block}.card{padding:23px 0}.photo-card{display:grid;grid-template-columns:105px 1fr;gap:0 18px;margin-top:0}.photo-card img{height:165px}.photo-card h3{font-size:1.2rem}.photo-card .tag{font-size:.75rem}.photo-card p{font-size:1rem}.service-link{font-size:.875rem}.stats{grid-template-columns:1fr 1fr;gap:28px 22px}.num{font-size:1.6rem}.label{font-size:.8125rem}.badges{display:block;margin-top:20px}.certificate{display:block;margin-bottom:20px}.badge span{font-size:.8125rem}.about-split{display:flex;flex-direction:column;gap:25px}.ceo-card{order:-1;width:65%;align-self:flex-end;padding:0}.ceo-card img{aspect-ratio:4/3;object-position:center 35%}.ceo-card .name{font-size:1rem}.ceo-card .role{font-size:.8125rem}.info{grid-template-columns:1fr;gap:5px;margin-top:24px;font-size:1rem}.info dt{margin-top:12px;font-size:.875rem}.recruit{padding:55px 5%}.recruit h2{font-size:1.6rem}.contact-inner{display:block}.contact-inner h2{font-size:1.7rem}.contact-methods{margin-top:20px}.tel strong{font-size:2rem}.mail strong{font-size:1rem}footer{padding:35px 0}.footer-inner{display:block}footer address{margin-top:22px;font-size:.8125rem}.footer-links{margin:25px 0;flex-wrap:wrap;gap:20px}footer small{font-size:.75rem}[data-page=recruit] .hero h1{font-size:2.6rem}[data-page=recruit] .hero img{margin-top:25px;height:auto;aspect-ratio:5/4;object-position:center}[data-page=recruit] .hero .lead{max-width:none}.hero-actions .plain-link{margin:15px 0 0 20px}.appeal{display:block}.appeal .card,.appeal .card:nth-child(2),.appeal .card:nth-child(3){padding:23px 0;border-top:1px solid var(--line)}.appeal .card:first-child{border:0;padding-top:0}.reqtable,.reqtable tbody,.reqtable tr,.reqtable th,.reqtable td{display:block;width:100%}.reqtable th{padding:14px 12px 5px;border-top:1px solid var(--line);background:transparent;font-size:.875rem;color:var(--sub)}.reqtable td{padding:5px 12px 18px;border:0;font-size:1rem}.network-story{grid-template-columns:1fr 1fr;gap:15px 20px}.network-story strong{font-size:.9375rem}.network-story span{font-size:.8125rem}.steps{grid-template-columns:1fr 1fr;gap:20px}.step{padding-top:18px}.step h4{font-size:.9375rem}.step p{font-size:.875rem}.faq-item summary{padding-block:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.ceo-card img{aspect-ratio:3/2;object-position:70% center}

/* Supplied company logo, original proportions and transparency preserved. */
.logo .company-logo{display:block;width:270px;max-width:100%;height:auto;object-fit:contain}.nav{min-height:104px}footer .logo{width:240px}footer .company-logo{width:240px}@media(max-width:760px){.nav{min-height:78px;gap:12px}.nav .logo{width:clamp(170px,55vw,220px)}.logo .company-logo{width:100%}footer .logo{width:220px}}
