:root{--navy:#142b45;--blue:#1d5f91;--light:#f4f7fa;--text:#243240;--muted:#647382;--white:#fff;--line:#dce4eb;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.8;background:#fff}img{display:block;max-width:100%;height:auto}a{color:inherit}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.narrow{max-width:800px}.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:8px;z-index:100}.skip-link:focus{left:8px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.2}.brand-ja{font-weight:700}.brand-en{font-size:.75rem;letter-spacing:.22em;color:var(--blue);margin-top:5px}.global-nav{display:flex;gap:24px}.global-nav a,.back-link{text-decoration:none;font-size:.93rem;font-weight:600}.global-nav a:hover,.back-link:hover{color:var(--blue)}.menu-button{display:none;border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 12px}.hero{background:linear-gradient(135deg,#eef4f8,#fff);padding:76px 0}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:64px}.hero h1{font-size:clamp(1.8rem,3.55vw,3.2rem);line-height:1.35;margin:.25em 0}.hero-title-line{display:block;white-space:nowrap}.hero img{border-radius:12px;box-shadow:0 18px 45px rgba(20,43,69,.18)}.eyebrow,.section-label{font-size:.78rem;letter-spacing:.18em;color:var(--blue);font-weight:700}.hero-copy{font-size:1.08rem;color:var(--muted);max-width:620px}.button{display:inline-block;margin-top:18px;background:var(--navy);color:#fff;text-decoration:none;padding:12px 22px;border-radius:6px;font-weight:700}.section{padding:88px 0;scroll-margin-top:85px}.section-muted{background:var(--light)}.section-accent{background:var(--navy);color:#fff}.section h2{font-size:clamp(1.75rem,3vw,2.5rem);margin:.1em 0 .8em}.section h3{line-height:1.5}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.service-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 7px 20px rgba(20,43,69,.06)}.service-card img{width:100%;aspect-ratio:545/250;object-fit:cover}.service-card h3,.service-card p{margin-left:18px;margin-right:18px}.service-card h3{margin-top:16px;margin-bottom:6px}.service-card p{color:var(--muted);font-size:.92rem;margin-top:0;margin-bottom:20px}.company-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:50px;align-items:start}.company-list{margin:0}.company-list div{display:grid;grid-template-columns:130px 1fr;padding:18px 0;border-bottom:1px solid var(--line)}.company-list dt{font-weight:700}.company-list dd{margin:0}.company-photo img{border-radius:10px}.contact-phone{font-size:2rem;font-weight:700;letter-spacing:.03em}.contact-phone a{text-decoration:none}.site-footer{background:#0d1e30;color:#dce6ef;padding:40px 0}.footer-inner{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}.footer-inner nav a{color:#fff}.footer-inner small{grid-column:1/-1;color:#aebdcc}.policy-main{padding:72px 0}.policy h1{font-size:2.5rem;line-height:1.3}.policy h2{font-size:1.25rem;margin-top:2em}.policy-signature{margin:42px 0;padding:20px 24px;background:var(--light);border-left:4px solid var(--blue)}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,1fr)}.global-nav{gap:14px}.hero-grid,.company-grid{grid-template-columns:1fr}.hero img{max-width:650px}.company-photo{max-width:420px}}
@media(max-width:700px){.container{width:min(calc(100% - 28px),var(--max))}.header-inner{min-height:68px;flex-wrap:wrap}.menu-button{display:block}.global-nav{display:none;flex-basis:100%;flex-direction:column;gap:0;padding-bottom:12px}.global-nav.is-open{display:flex}.global-nav a{padding:10px 0;border-top:1px solid var(--line)}.hero{padding:50px 0}.section{padding:64px 0}.service-grid{grid-template-columns:1fr}.company-list div{grid-template-columns:1fr;gap:4px}.footer-inner{grid-template-columns:1fr}.footer-inner small{grid-column:auto}}

@media(max-width:420px){.hero h1{font-size:clamp(1.55rem,7.2vw,1.9rem)}}

.email-note {
  margin-top: 0.35rem;
  font-size: 0.88rem;
  color: #666;
}
.contact-email {
  margin-bottom: 0;
  font-weight: 600;
  letter-spacing: 0.02em;
}
