:root { --ink:#171716; --paper:#f4f2eb; --paper-2:#ebe9e1; --line:#c7c5bd; --soft:#66645f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; line-height:1.5; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
h1,h2,h3,p { margin-top:0; }
.site-header { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 5.3vw; }
.brand { font-size:17px; font-weight:800; letter-spacing:-.6px; white-space:nowrap; }
nav { display:flex; gap:31px; font-size:14px; } nav a:hover,.back-link:hover,footer a:hover { opacity:.65; }
.header-cta { padding:12px 18px; border-radius:10px; background:var(--ink); color:var(--paper); font-size:14px; white-space:nowrap; }.header-cta span { margin-left:18px; }
.header-actions { display:flex; align-items:center; gap:24px; }
.language-switch { display:flex; align-items:center; gap:8px; flex-shrink:0; font-size:12px; letter-spacing:.04em; }
.language-switch a { padding:8px 2px; color:var(--soft); }
.language-switch a[aria-current="page"] { color:var(--ink); font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.language-switch a:hover { color:var(--ink); }
.english-hero { max-width:1000px; line-height:1.2!important; }
.email-link { overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:4px; }
.contact-email { display:block; margin-top:24px; font-size:15px; }
.company.company-en dl div { grid-template-columns:130px minmax(0,1fr); }
.company dd { min-width:0; }
.building { border-top:1px solid var(--line); }
.building-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:7vw; }
.building h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(30px,3.2vw,48px); font-weight:400; letter-spacing:-.035em; line-height:1.25; }
.building ul { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.building li { padding:16px 0; border-bottom:1px solid var(--line); font-size:16px; }
.building-grid .eyebrow { margin-bottom:24px; }
.hero { padding:clamp(64px,7vw,110px) 5.3vw clamp(72px,8vw,120px); }
.hero-copy { max-width:1200px; }
.eyebrow { margin:0 0 32px; font-size:12px; font-weight:600; letter-spacing:.06em; }
.hero h1 { margin:0; font-family:Georgia,"Times New Roman","Yu Mincho",serif; font-size:clamp(36px,4.2vw,64px); font-weight:400; letter-spacing:-.035em; line-height:1.5; }
.hero h1 > span { display:block; }
.phrase { display:inline-block; }
.hero-description { max-width:640px; margin:28px 0 0; color:#3f3e3a; font-size:16px; line-height:1.9; }
.section { padding:112px 10.5vw; }
.intro { background:var(--ink); color:var(--paper); }.intro-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:7vw; }.intro h2,.company h2 { margin:0; font-family:Georgia,"Times New Roman","Yu Mincho",serif; font-size:clamp(40px,5vw,76px); font-weight:400; letter-spacing:-.045em; line-height:1.25; }.intro-grid p { margin:0; padding-top:9px; font-size:16px; line-height:2; }
.services { padding-bottom:120px; }.section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:32px; margin-bottom:64px; }.section-heading > p:last-child { margin:0; font-family:Georgia,"Times New Roman","Yu Mincho",serif; font-size:22px; line-height:1.6; }.service-list { border-top:1px solid var(--ink); }.service-card { display:grid; grid-template-columns:7% 1fr 1.25fr 28px; gap:20px; align-items:start; padding:35px 0 39px; border-bottom:1px solid var(--line); }.service-card span { font-size:12px; }.service-card h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:28px; font-weight:400; letter-spacing:-.025em; line-height:1.25; }.service-card p { max-width:440px; margin:0; font-size:16px; line-height:1.8; }.service-card i { font-style:normal; font-size:23px; text-align:right; }
.company { background:var(--paper-2); }.company-grid { display:grid; grid-template-columns:1fr 1.75fr; gap:9vw; }.company dl { margin:0; }.company dl div { display:grid; grid-template-columns:110px 1fr; min-height:62px; gap:12px; padding:20px 0; border-top:1px solid #b5b3ab; font-size:16px; line-height:1.8; }.company dt { color:#5c5b56; }.company dd { margin:0; }
.contact { border-top:1px solid var(--line); }.contact-row { display:flex; justify-content:space-between; align-items:end; gap:48px; }.contact h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(58px,7vw,106px); font-weight:400; line-height:1; letter-spacing:-.06em; }.contact h2 em { font-weight:400; }.contact-row > div { max-width:340px; }.contact-row p { margin:0; font-size:16px; line-height:1.9; }
footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:30px 5.3vw; background:var(--ink); color:var(--paper); } footer div { display:flex; gap:30px; align-items:center; font-size:12px; } footer a { font-size:14px; } footer .brand { font-size:15px; }
.notice-page { min-height:100vh; display:flex; flex-direction:column; }.back-link { font-size:14px; }.notice-content { flex:1; padding:clamp(64px,8vw,120px) 10.5vw; }.notice-content h1 { margin-bottom:48px; font-family:Georgia,"Times New Roman","Yu Mincho",serif; font-size:clamp(48px,7vw,90px); font-weight:400; letter-spacing:-.04em; line-height:1.25; }.notice-box { max-width:760px; padding:40px; border-top:3px solid var(--ink); background:#fff; }.notice-box h2 { margin-bottom:24px; font-size:20px; }.notice-box p { font-size:16px; line-height:1.9; }.notice-note { margin:24px 0 0; color:var(--soft); }
@media (max-width:900px) {
  .header-actions { gap:16px; }
  .header-actions .header-cta { display:none; }
  .site-header nav { gap:20px; }
  .building-grid { grid-template-columns:1fr; gap:36px; }
  .section { padding:80px 6vw; }
  .intro-grid,.company-grid { grid-template-columns:1fr; gap:36px; }
  .intro-grid p { max-width:640px; padding:0; }
  .contact-row { align-items:start; flex-direction:column; gap:36px; }
  .service-card { grid-template-columns:32px 1fr 26px; gap:12px; }
  .service-card p { grid-column:2/4; max-width:640px; }
  .service-card i { grid-column:3; grid-row:1; }
}
@media (max-width:600px) {
  .company.company-en dl div { grid-template-columns:1fr; gap:4px; }
  .english-hero { font-size:clamp(36px,9.5vw,52px)!important; }
  .site-header { min-height:68px; padding:16px 6vw; gap:12px; }
  nav,.header-cta { display:none; }
  .hero { padding:48px 6vw 56px; }
  .hero .eyebrow { margin-bottom:24px; }
  .hero h1 { font-size:clamp(26px,6.9vw,36px); letter-spacing:-.04em; line-height:1.6; }
  .hero-description { margin-top:24px; line-height:1.9; }
  .section { padding:64px 6vw; }
  .intro h2,.company h2 { font-size:clamp(36px,10vw,52px); }
  .section-heading { display:block; margin-bottom:40px; }
  .section-heading .eyebrow { margin-bottom:24px; }
  .company dl div { grid-template-columns:76px 1fr; }
  .contact h2 { font-size:clamp(50px,14vw,78px); }
  .notice-content { padding:48px 6vw 64px; }
  .notice-content h1 { margin-bottom:32px; }
  .notice-box { padding:24px; }
  footer { padding:24px 6vw; flex-wrap:wrap; }
  footer div { flex-wrap:wrap; gap:20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
