:root{--blue:#4a86c5;--blue-dark:#245b91;--red:#df534b;--ink:#202831;--muted:#566573;--pale:#f3f7fa;--line:#d9e1e7;--shell:min(1160px,calc(100% - 48px))}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--ink);background:#fff;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--blue-dark);outline-offset:4px}.skip-link{position:absolute;top:-60px;left:16px;z-index:30;padding:8px 12px;background:#fff}.skip-link:focus{top:8px}.section-shell{width:var(--shell);margin-inline:auto}.section-band{padding-block:104px}.eyebrow{margin-bottom:18px;color:var(--blue-dark);font-family:Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em}h2{font-size:clamp(2rem,3.4vw,3.25rem);font-weight:800;line-height:1.3}
.site-header{position:sticky;top:0;z-index:20;height:76px;border-bottom:1px solid var(--line);background:#fff}.header-inner{display:flex;align-items:center;justify-content:space-between;width:min(1280px,calc(100% - 48px));height:100%;margin:auto}.brand{display:inline-flex;align-items:center;gap:10px}.brand>span{display:grid;line-height:1.15}.brand strong{font-family:Arial,sans-serif;font-size:18px;letter-spacing:.1em}.brand small{margin-top:4px;color:var(--muted);font-size:11px}.main-nav{display:flex;align-items:center;gap:36px;font-size:14px;font-weight:700}.main-nav a:hover{color:var(--blue-dark)}.main-nav .nav-contact{display:inline-flex;align-items:center;gap:20px;padding:12px 16px;color:#fff;background:var(--red)}.main-nav .nav-contact:hover{color:#fff;background:#c8443d}.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:min(690px,calc(100svh - 106px));overflow:hidden;background:#f4f7f9}.hero-image,.hero-wash{position:absolute;inset:0;width:100%;height:100%}.hero-image{z-index:-2;object-fit:cover;object-position:center}.hero-wash{z-index:-1;background:rgba(255,255,255,.18)}.hero-content{padding-block:72px}.hero-kicker{margin-bottom:22px;color:var(--blue-dark);font-family:Arial,sans-serif;font-size:13px;font-weight:800;letter-spacing:.12em}.hero h1{max-width:650px;margin-bottom:24px;font-size:clamp(3.1rem,6vw,5.4rem);font-weight:800;line-height:1.17;text-wrap:balance}.mobile-break{display:none}.hero-statement{max-width:620px;margin-bottom:14px;font-size:clamp(1.4rem,2.3vw,2.1rem);font-weight:800;line-height:1.45}.hero-description{max-width:540px;margin-bottom:32px;color:#394651;font-size:17px;font-weight:600}.action-link{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-width:212px;padding:13px 17px;color:#fff;background:var(--red);font-size:15px;font-weight:800}.action-link:hover{background:#c8443d}.image-note{position:absolute;right:24px;bottom:14px;padding:2px 5px;color:#34414a;background:rgba(255,255,255,.8);font-size:11px}
.services{background:var(--pale)}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:56px}.section-intro>p{max-width:430px;color:var(--muted)}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-item{display:grid;grid-template-columns:7px 1fr;gap:24px;padding:34px 42px 34px 0}.service-item+.service-item{padding-left:42px;border-left:1px solid var(--line)}.service-marker{width:7px;height:56px}.service-marker-blue{background:var(--blue)}.service-marker-red{background:var(--red)}.service-category{margin-bottom:10px;color:var(--blue-dark);font-family:Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em}.service-item h3{margin-bottom:14px;font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.4}.service-item p:last-child{color:var(--muted)}
.belief{padding-block:124px;background:#fff}.belief-inner{display:grid;grid-template-columns:1fr 2fr;gap:0 56px}.belief .eyebrow{grid-row:span 2;padding-top:12px}.belief h2{margin-bottom:28px;font-size:clamp(2.1rem,4.2vw,4.25rem);line-height:1.3}.belief h2 span{color:var(--blue-dark)}.belief-inner>p:last-child{max-width:550px;color:var(--muted)}.about{background:var(--pale)}.about-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:72px}.about-lead{margin-top:24px;color:var(--muted)}.company-data{margin:0;border-top:1px solid var(--line)}.company-data>div{display:grid;grid-template-columns:132px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.company-data dt{color:var(--muted);font-size:14px}.company-data dd{margin:0;font-weight:700}
.future{display:grid;grid-template-columns:10px 1fr 1fr;gap:52px;align-items:center;padding-block:114px}.future-stripe{display:grid;grid-template-columns:1fr 1fr;gap:2px;height:120px}.future-stripe span:first-child{background:var(--blue)}.future-stripe span:last-child{background:var(--red)}.future>p{max-width:430px;color:var(--muted)}.contact{color:#fff;background:var(--ink)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:end}.contact .eyebrow{color:#8ebde8}.contact h2{margin-bottom:24px}.contact-grid>div:first-child>p:last-child{max-width:490px;color:#c6d0d8}.contact-details{display:grid;border-top:1px solid #65717d;padding-top:22px}.contact-details>span{color:#c6d0d8;font-size:14px}.contact-details a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;color:#fff;font-family:Arial,sans-serif;font-size:clamp(1.7rem,3.3vw,2.8rem);font-weight:700;line-height:1.3}.contact-details a:hover{color:#8ebde8}.contact-details small{color:#c6d0d8;font-size:13px}.site-footer{padding-block:26px;color:#566573;background:#fff}.footer-inner{display:flex;justify-content:space-between;gap:16px;font-size:13px}
@media(max-width:860px){html{scroll-padding-top:68px}.site-header{height:68px}.header-inner{width:calc(100% - 32px)}.menu-toggle{display:grid;align-content:center;justify-items:center;gap:5px;width:44px;height:44px;border:0;background:transparent;cursor:pointer}.menu-toggle span{width:22px;height:2px;background:var(--ink)}.main-nav{position:absolute;top:68px;right:0;left:0;display:none;gap:0;padding:12px 24px 22px;border-bottom:1px solid var(--line);background:#fff}.main-nav.is-open{display:grid}.main-nav a{padding:11px 0}.main-nav .nav-contact{justify-content:space-between;margin-top:8px;padding:11px 15px}.hero{min-height:min(700px,calc(100svh - 90px))}.hero-image{object-position:57% center}.hero-wash{background:rgba(255,255,255,.45)}.section-intro,.about-grid,.contact-grid{gap:32px}.future{grid-template-columns:10px 1fr;gap:30px}.future>p{grid-column:2}}
@media(max-width:640px){:root{--shell:calc(100% - 36px)}.section-band{padding-block:76px}.hero{min-height:min(620px,calc(100svh - 86px));align-items:flex-end}.hero-image{object-position:58% center}.hero-wash{background:rgba(255,255,255,.75)}.hero-content{padding-block:48px 68px}.hero-kicker{margin-bottom:15px;font-size:11px}.hero h1{margin-bottom:18px;font-size:clamp(2.5rem,10vw,3.6rem);line-height:1.2}.mobile-break{display:inline}.hero-statement{font-size:1.4rem}.hero-description{font-size:15px}.desktop-break{display:none}.image-note{right:10px;bottom:7px;font-size:10px}.section-intro,.about-grid,.contact-grid{grid-template-columns:1fr;gap:26px}.section-intro{margin-bottom:34px}.service-list{grid-template-columns:1fr}.service-item{padding:28px 0}.service-item+.service-item{padding:28px 0;border-top:1px solid var(--line);border-left:0}.belief{padding-block:80px}.belief-inner{grid-template-columns:1fr}.belief .eyebrow{grid-row:auto;padding-top:0}.belief h2{font-size:clamp(2rem,7vw,2.8rem)}.future{padding-block:82px}.company-data>div{grid-template-columns:100px 1fr;gap:12px}}
@media(max-width:360px){.hero h1{font-size:2.35rem}.hero-statement{font-size:1.22rem}.contact-details a{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(min-width:641px){.hero h1{max-width:none;font-size:clamp(3.1rem,4vw,3.9rem);white-space:nowrap;text-wrap:nowrap}}

@media(max-width:640px){.hero-image{object-position:10% center}.hero-wash{background:rgba(255,255,255,.58)}}

.brand strong,.eyebrow,.hero-kicker,.service-category{letter-spacing:0}
.brand > .brand-lockup{display:flex;flex-direction:column;line-height:1}
.brand-lockup img{width:160px;height:auto}
@media(max-width:640px){.brand-lockup img{width:145px}}

.belief-label{grid-row:span 2;padding-top:12px}
.belief-label .eyebrow{grid-row:auto;padding-top:0}
.belief-label h2{margin:0;font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.3}
.belief-statement{margin-bottom:28px;font-size:clamp(2.1rem,4.2vw,4.25rem);font-weight:800;line-height:1.3}
.belief-statement span{color:var(--blue-dark)}
@media(max-width:640px){.belief-label{grid-row:auto;margin-bottom:24px;padding-top:0}.belief-label h2{font-size:clamp(2rem,7vw,2.8rem)}.belief-statement{font-size:clamp(2rem,7vw,2.8rem)}}

.hero h1.hero-statement{max-width:540px;margin-bottom:18px;font-size:2.25rem;line-height:1.45;white-space:normal;text-wrap:wrap}
@media(max-width:640px){.hero h1.hero-statement{font-size:clamp(1.55rem,7vw,1.85rem)}}

.challenges { background: #fff; }
.challenge-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.challenge-list > div { display: flex; align-items: flex-start; gap: 20px; min-height: 145px; padding: 30px 24px 30px 0; }
.challenge-list > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.challenge-accent { flex: 0 0 7px; height: 42px; background: var(--blue); }
.challenge-list > div:nth-child(2) .challenge-accent { background: var(--red); }
.challenge-list p { max-width: 300px; font-size: 17px; font-weight: 700; line-height: 1.7; }

.service-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 84px); align-items: center; padding: 58px 0; border-top: 1px solid var(--line); }
.service-feature:last-child { border-bottom: 1px solid var(--line); }
.service-feature figure { margin: 0; }
.service-feature img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-feature figcaption { margin-top: 5px; color: var(--muted); font-size: 12px; text-align: right; }
.service-feature-reverse figure { grid-column: 2; grid-row: 1; }
.service-feature-reverse .feature-copy { grid-column: 1; grid-row: 1; }
.feature-copy h3 { margin-bottom: 18px; font-size: clamp(1.65rem, 2.7vw, 2.5rem); line-height: 1.35; }
.feature-copy > p:not(.service-category) { margin-bottom: 30px; color: var(--muted); }
.feature-facts { margin: 0; border-top: 1px solid var(--line); }
.feature-facts > div { display: grid; grid-template-columns: 100px 1fr; gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.feature-facts dt { color: var(--blue-dark); font-size: 14px; font-weight: 800; }
.feature-facts dd { margin: 0; font-size: 15px; }

.workflows { background: #fff; }
.process-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-list li { position: relative; padding: 28px 24px 32px 0; }
.process-list li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.process-list li:not(:last-child)::after { position: absolute; top: 30px; right: 12px; color: var(--red); content: "→"; font-size: 20px; }
.process-index { display: block; margin-bottom: 26px; color: var(--blue-dark); font-family: Arial, sans-serif; font-size: 13px; font-weight: 800; }
.process-list h3 { margin-bottom: 10px; font-size: 20px; }
.process-list p { color: var(--muted); font-size: 15px; }
.training-approach { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 74px; padding-top: 32px; border-top: 5px solid var(--red); }
.training-approach h3 { margin-bottom: 10px; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.training-approach > div > p:last-child { max-width: 700px; color: var(--muted); }
.training-approach ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.training-approach li { position: relative; padding: 16px 7px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-weight: 800; text-align: center; }
.training-approach li + li { border-left: 1px solid var(--line); }
.training-approach li:not(:last-child)::after { position: absolute; right: -8px; z-index: 1; color: var(--red); background: #fff; content: "→"; }

.message { background: var(--pale); }
.message-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 72px; }
.message-grid > div:last-child { max-width: 650px; }
.message-grid > div:last-child p + p { margin-top: 18px; }
.message-lead { font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 800; }
.message-signature { margin-top: 30px !important; font-size: 14px; font-weight: 800; text-align: right; }

@media (max-width: 860px) {
  .challenge-list { grid-template-columns: 1fr; }
  .challenge-list > div { min-height: 0; padding: 22px 0; }
  .challenge-list > div + div { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .challenge-list p { max-width: none; }
  .service-feature { gap: 26px; }
  .process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-list li:nth-child(3) { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .process-list li:nth-child(4) { border-top: 1px solid var(--line); }
  .process-list li:nth-child(2)::after { content: none; }
  .training-approach, .message-grid { gap: 32px; }
}

@media (max-width: 640px) {
  .service-feature { grid-template-columns: 1fr; gap: 24px; padding: 38px 0; }
  .service-feature-reverse figure, .service-feature-reverse .feature-copy { grid-column: 1; grid-row: auto; }
  .feature-copy h3 { font-size: 1.6rem; }
  .feature-facts > div { grid-template-columns: 1fr; gap: 5px; }
  .process-list { grid-template-columns: 1fr; }
  .process-list li, .process-list li + li, .process-list li:nth-child(3) { padding: 18px 0 22px; border-top: 1px solid var(--line); border-left: 0; }
  .process-list li:first-child { border-top: 0; }
  .process-list li:not(:last-child)::after { top: auto; right: 6px; bottom: 0; content: "↓"; }
  .process-index { margin-bottom: 8px; }
  .training-approach, .message-grid { grid-template-columns: 1fr; gap: 26px; }
  .training-approach { margin-top: 54px; }
  .training-approach ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-approach li:nth-child(3) { border-left: 0; }
  .training-approach li:nth-child(n+3) { border-top: 0; }
  .training-approach li:nth-child(2)::after { content: none; }
}
