/* Editorial layout, shared by both languages. */
:root{--navy:#102331;--ink:#162c3c;--red:#b43b34;--muted:#586671;--pale:#f3f6f8;--line:#dce3e8}
.header{max-width:1600px;margin:auto;height:100px;padding:0 5%;gap:28px}
.header nav{margin-left:auto;gap:28px}
.header-actions{display:flex;align-items:center;gap:28px}
.header-contact{border:1px solid var(--line);padding:13px 18px;gap:20px;border-radius:3px;transition:background .2s,color .2s,border-color .2s}
.header-contact:hover{background:var(--navy);color:white;border-color:var(--navy)}
.language-switch{gap:0;border:1px solid var(--line);padding:3px;border-radius:5px;background:#f8fafb}
.language-switch a{padding:7px 10px;border-radius:3px;font-size:.8125rem}
.language-switch a[aria-current="page"]{border:0;background:var(--navy);color:white}
.hero{margin:0 22px;border-radius:5px;min-height:690px;height:calc(100svh - 125px);max-height:850px}
.hero-image{object-position:center 53%}
.hero-shade{background:linear-gradient(90deg,rgba(8,22,34,.87) 0%,rgba(8,22,34,.55) 43%,rgba(8,22,34,.04) 85%),linear-gradient(0deg,rgba(8,22,34,.58),transparent 35%)}
.hero-content{padding:95px 7.5% 120px;max-width:1050px}
.hero .eyebrow{font-size:.75rem;letter-spacing:.19em;color:#d4dfe6}
html[lang="en"] .hero{height:calc(100svh - 125px);min-height:690px;max-height:850px}
html[lang="en"] .hero h1{font-size:clamp(3.8rem,6.8vw,6.65rem);font-weight:400;line-height:1.05;letter-spacing:-.045em;max-width:760px;margin:40px 0 28px;text-wrap:balance}
.hero h1{font-weight:400}
.hero-copy{color:#edf1f4;font-weight:400}
html[lang="en"] .hero-copy{font-size:1.1rem;max-width:500px;line-height:1.8}
.light-link{margin-top:22px;font-size:.9375rem;gap:55px;padding-bottom:14px}
.light-link:hover{border-color:white}
.hero-bottom{left:7.5%;right:7.5%;bottom:28px;padding-top:20px;border-top:1px solid #ffffff30;color:#e0e8ed}
.section{padding-top:115px;padding-bottom:115px}
.section-label{font-size:.75rem;color:#62717d;letter-spacing:.16em}
.red-mark{width:18px;height:2px;border-radius:0}
.intro{grid-template-columns:1fr;gap:0}
.intro-content{grid-template-columns:1.1fr 1fr;gap:95px}
.intro-content h2{max-width:490px}
html[lang="en"] h2{font-size:clamp(2.4rem,3.9vw,3.8rem);font-weight:400;line-height:1.12;text-wrap:balance;letter-spacing:-.035em}
.intro-text p,.partner-layout p{line-height:1.95}
.intro-text p:last-child,.partner-layout p:last-child{margin-bottom:0}
.services{margin:0 22px;border-radius:5px}
.section-heading{align-items:center;margin-bottom:60px}
.section-heading h2{max-width:540px}
.service-grid{gap:18px}
.service-grid article,.service-grid article+article{padding:28px 25px 32px;background:white;border:1px solid #e1e7ec;border-radius:4px;box-shadow:0 5px 20px #142f4510;transition:transform .2s,box-shadow .2s}
.service-number{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border:1px solid #dce3e8;border-radius:50%;color:var(--ink)}
.service-en{margin-top:45px;font-size:.75rem;letter-spacing:.17em;color:#8b4f48}
.service-grid h3{font-size:1.18rem;line-height:1.45;min-height:3em;letter-spacing:-.02em;font-weight:500}
.service-grid article>p:last-child{font-size:.9375rem;line-height:1.85}
.scope-note{margin-top:35px;font-size:.875rem;line-height:1.85}
.partner-layout{gap:105px;align-items:start}
.text-link{padding:18px 0;margin-top:25px;line-height:1.6}
.text-link:hover{color:var(--red);border-color:var(--red)}
.company{padding-top:85px;padding-bottom:100px;gap:90px}
.company dl>div{padding:25px 0}
.contact{margin:0 22px;border-radius:5px;padding-top:85px;padding-bottom:85px;position:relative}
.contact .eyebrow{font-size:.75rem;letter-spacing:.18em}
.contact-row{gap:60px;margin:27px 0}
html[lang="en"] .contact-row h2{max-width:680px;font-size:clamp(2.5rem,4.2vw,4rem)}
.contact-button{border-radius:3px;white-space:nowrap;min-width:230px;padding:22px 27px}
footer{max-width:1600px;margin:auto;padding-top:40px;padding-bottom:30px}
.photo-credit{color:#6e7982;padding-bottom:24px}
@media(hover:hover){.service-grid article:hover{transform:translateY(-4px);box-shadow:0 12px 30px #142f4518}}
@media(min-width:1600px){.hero,.services,.contact{max-width:1556px;margin-inline:auto}}
@media(max-width:1150px){.header{gap:20px}.header nav{gap:18px}.header-actions{gap:16px}.header nav a{font-size:.8125rem}.intro-content{gap:55px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-grid article:nth-child(n){padding:28px;border:1px solid #e1e7ec}.service-grid h3{min-height:0}.service-en{margin-top:28px}.partner-layout{gap:55px}.hero-content{padding-top:85px}}
@media(max-width:950px){.header nav{display:none}.header-actions{margin-left:auto}.section{padding-top:80px;padding-bottom:80px}.hero,html[lang="en"] .hero{min-height:680px;height:auto}.intro-content{gap:40px}.contact-row{gap:25px}}
@media(max-width:700px){.header{height:auto;min-height:85px;padding:18px 6%;gap:15px;flex-wrap:nowrap}.header .brand{font-size:2.1rem;margin-right:0}.header .brand-japan{font-size:.6rem;margin-left:8px}.header-actions{gap:0}.header-contact{display:none}.language-switch a{font-size:.8125rem;padding:7px 9px}.hero,.services,.contact{margin-inline:10px;border-radius:4px}.hero,html[lang="en"] .hero{height:auto;min-height:650px}.hero-content{padding:75px 7% 110px}.hero .eyebrow{font-size:.75rem;letter-spacing:.09em;max-width:280px}.hero-shade{background:linear-gradient(90deg,rgba(8,22,34,.82),rgba(8,22,34,.36)),linear-gradient(0deg,rgba(8,22,34,.55),transparent)}.hero-image{object-position:60% center}html[lang="en"] .hero h1{font-size:clamp(3.2rem,11vw,4.5rem);line-height:1.08;margin-top:34px;max-width:440px}html[lang="en"] .hero-copy{font-size:1rem;line-height:1.85}.hero-bottom{font-size:.75rem;letter-spacing:.07em}.section{padding:65px 7%}.section-label{margin-bottom:30px}.intro-content,.partner-layout,.company{grid-template-columns:1fr;gap:30px}html[lang="en"] h2{font-size:2.65rem;line-height:1.15}.section-heading{margin-bottom:35px}.section-heading>p{margin-top:25px}.service-grid,html[lang="en"] .service-grid{grid-template-columns:1fr;gap:16px}.service-grid article:nth-child(n),html[lang="en"] .service-grid article{padding:26px;border:1px solid #e1e7ec}.service-en{margin-top:24px}.service-grid h3{font-size:1.3rem;min-height:0;margin-bottom:15px}.company dl>div{grid-template-columns:95px 1fr;gap:18px}.contact-row{display:block}.contact-button{margin-top:32px;min-width:0;width:100%;white-space:normal}html[lang="en"] .contact-row h2{font-size:2.8rem;line-height:1.15}.contact-note{font-size:.875rem}footer{padding:30px 7%}.photo-credit{padding-inline:7%}}
@media(prefers-reduced-motion:reduce){.service-grid article:hover{transform:none}}

.header .brand,footer .brand{display:flex;align-items:center;flex-shrink:0;line-height:1;letter-spacing:normal}.brand-logo{display:block;width:86px;height:86px;object-fit:contain}.header{height:112px}footer .brand-logo{width:100px;height:100px}@media(max-width:700px){.header{height:98px;min-height:98px;padding-block:8px}.header .brand-logo{width:80px;height:80px}footer .brand-logo{width:90px;height:90px}}

.hero-image{object-position:center 55%}@media(max-width:700px){.hero-image{object-position:58% center}}

/* Keep hero text and caption in separate flow rows at every viewport size. */
.hero,html[lang="en"] .hero{display:flex;flex-direction:column;justify-content:space-between;height:auto;min-height:690px;max-height:none}
.hero-content{flex:1 0 auto;width:100%;padding-bottom:55px}
.hero-bottom{position:relative;inset:auto;flex:0 0 auto;margin:0 7.5% 28px;padding-top:20px;align-items:flex-start;line-height:1.8}
.hero-bottom span{min-width:0;overflow-wrap:anywhere}
.hero h1,html[lang="en"] .hero h1{overflow-wrap:normal;word-break:normal}
.hero .light-link{line-height:1.8;max-width:100%;white-space:normal}
@media(max-width:950px){.hero,html[lang="en"] .hero{min-height:640px}.hero-content{padding-bottom:50px}}
@media(max-width:700px){.hero,html[lang="en"] .hero{min-height:620px}.hero-content{padding-top:60px;padding-bottom:45px}.hero-bottom{margin:0 7% 24px;padding-top:18px}.hero h1{line-height:1.55}html[lang="en"] .hero h1{line-height:1.16}.hero .eyebrow{line-height:1.9}.hero .light-link{gap:24px}.hero-copy{overflow-wrap:break-word}}
