/* COMPANY-based HERO: common spacing and typography, individual photography. */
.biz-hero { position: relative; overflow: hidden; padding: calc(var(--header-height) + 24px) 0 60px; border-bottom: 1px solid #d3dee6; background: linear-gradient(90deg, #f5f8fa, #edf5fa); }
.biz-hero > .sub-container { position: relative; z-index: 1; }
.biz-hero-en { margin: 42px 0 12px; color: #0a304e; font-size: clamp(42px, 8vw, 108px); font-weight: 800; line-height: 1.1; letter-spacing: .055em; }
.biz-hero .sub-eyebrow { margin-bottom: 8px; }
.biz-hero h1 { margin: 0; font-size: clamp(22px, 2.5vw, 30px); letter-spacing: .12em; }
.biz-hero-copy { margin: 36px 0; font-size: clamp(24px, 3vw, 38px); font-weight: 700; line-height: 1.8; letter-spacing: .06em; }
.biz-hero-photo-layer { position: absolute; inset: 0 0 0 40%; margin: 0; pointer-events: none; opacity: 1; mask-image: linear-gradient(90deg, transparent, #000 35%); }
.biz-hero-photo-layer img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.biz-hero-photo-layer::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,248,250,.94), rgba(245,248,250,.12) 75%); }
.biz-hero-layout { width: 60%; min-width: 0; }
.biz-hero-description { color: #344d60; font-size: 15px; line-height: 2.2; }
.biz-hero-visual { position: absolute; inset: 0; pointer-events: none; }
.biz-hero-visual .biz-blueprint { position: absolute; bottom: 36px; right: 8%; width: min(34%, 220px); padding: 12px; background-color: rgba(245,248,250,.9); border-color: #b7ccdb80; }
.biz-hero-visual .biz-blueprint p, .biz-hero-visual .biz-blueprint > span { font-size: 9px; line-height: 1.6; }
@media (max-width: 900px) {
  .biz-hero-photo-layer { position: relative; inset: auto; width: 100%; aspect-ratio: 4 / 3; margin: 0; mask-image: linear-gradient(180deg, transparent, #000 18%, #000 75%, transparent); }
  .biz-hero-photo-layer img { object-fit: contain; object-position: center; }
  .biz-hero-photo-layer::after { background: linear-gradient(180deg, rgba(245,248,250,.18), transparent 35%, rgba(245,248,250,.3)); }
  .biz-hero-copy { font-size: clamp(24px, 4.2vw, 38px); }
  .biz-hero-layout { width: 100%; }
  .biz-hero-visual { position: relative; inset: auto; margin: 28px 0 -60px; }
  .biz-hero-visual .biz-blueprint { bottom: 24px; right: 6%; width: min(34%, 180px); }
  .biz-hero-description { font-size: 16px; line-height: 2; }
}
@media (max-width: 600px) {
  .biz-hero-en { margin-top: 32px; }
}
/* BUSINESS only. Shared navigation, spacing and CTA come from subpage.css. */

.biz-flow-link { display: inline-flex; align-items: center; gap: 40px; min-height: 48px; margin-top: 12px; border-bottom: 1px solid #087fe5; font-size: 13px; }
.biz-blueprint { color: #236287; background-image: linear-gradient(#087fe50d 1px, transparent 1px), linear-gradient(90deg, #087fe50d 1px, transparent 1px); background-size: 24px 24px; border: 1px solid #b7ccdb; padding: 20px; }
.biz-blueprint p, .biz-blueprint > span { margin: 0; font-size: 10px; letter-spacing: .14em; }
.biz-blueprint svg { display: block; width: 100%; height: auto; }
.biz-blueprint-signal { stroke-dasharray: 200; animation: biz-draw 1.6s ease-out both; }

@keyframes biz-draw { from { stroke-dashoffset: 200; } to { stroke-dashoffset: 0; } }
.biz-intro { display: grid; grid-template-columns: 1fr 1.25fr; gap: 64px; }
.biz-prose { color: #344d60; font-size: 15px; line-height: 2.2; }
.biz-prose p { margin: 0 0 20px; }
.biz-prose p:last-child { margin-bottom: 0; }
.biz-section-note { margin: 20px 0 0; font-size: 15px; line-height: 2; }
.biz-label { margin: 0 0 10px; color: #0870be; font-size: 11px; font-weight: 700; letter-spacing: .12em; line-height: 1.8; }
.biz-engineering { background: #071b30; color: #f5f9fc; }
.biz-engineering .sub-eyebrow, .biz-engineering .biz-label { color: #79d9ff; }
.biz-engineering .biz-section-note { color: #c3d3df; }
.biz-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 0; margin: 0; padding: 0; list-style: none; }
.biz-step { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 0 28px 24px 0; }
.biz-step-description { flex: 1; }
.biz-step-photo { flex-shrink: 0; width: 100%; margin: 24px 0 0; border-bottom: 2px solid #58cfff; background: #0b2338; }
.biz-step-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.biz-step-line { display: block; position: absolute; top: 22px; left: 0; width: 100%; height: 2px; background: #315168; }
.biz-step-line::after { content: ""; display: block; width: 100%; height: 100%; background: #58cfff; transform-origin: left; }
.biz-step-number { position: relative; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #58cfff; background: #071b30; color: #91e5ff; font-size: 18px; margin-bottom: 26px; }
.biz-step-description > p { color: #ccdae4; font-size: 14px; line-height: 2; margin: 16px 0 0; }
.biz-flow.is-enhanced .biz-step-line::after { transform: scaleX(0); transition: transform .65s ease var(--signal-delay, 0ms); }
.biz-flow.is-enhanced .biz-step-number { border-color: #55758c; transition: border-color .4s ease var(--signal-delay, 0ms), box-shadow .4s ease var(--signal-delay, 0ms); }
.biz-flow.is-enhanced .biz-step.is-reached .biz-step-line::after { transform: scaleX(1); }
.biz-flow.is-enhanced .biz-step.is-reached .biz-step-number { border-color: #58cfff; box-shadow: 0 0 18px #58cfff25; }
.biz-products { background: #f2f5f7; }
.biz-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 24px; }
.biz-product { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #d4e0e8; }
.biz-product-visual { position: relative; flex-shrink: 0; aspect-ratio: 16 / 9; margin-bottom: 32px; padding: 0; background: linear-gradient(135deg, #edf5fa, #f8fafc); }
.biz-product-visual img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.biz-product:nth-child(1) .biz-product-visual img { object-position: 50% 60%; }
.biz-product:nth-child(2) .biz-product-visual img { object-position: 50% 48%; }
.biz-product:nth-child(3) .biz-product-visual img { object-position: 50% 50%; }
.biz-product:nth-child(4) .biz-product-visual img { object-position: 50% 42%; }
.biz-product:nth-child(5) .biz-product-visual img { object-position: 50% 45%; }
.biz-product-visual span { position: absolute; top: 100%; left: 0; right: 0; height: 32px; padding: 8px 16px; border-bottom: 1px solid #d4e0e8; background: linear-gradient(135deg, #edf5fa, #f8fafc); color: #516a7c; font-size: 10px; letter-spacing: .08em; line-height: 1.6; }
.biz-product-visual span b { color: #0870be; font-weight: 600; }
.biz-product-body { flex: 1; padding: 28px 24px; }
.biz-product-body .biz-label { min-height: 40px; }
.biz-product-body > p:last-child, .biz-other-grid article > p:last-child { color: #344d60; font-size: 14px; line-height: 2; margin: 16px 0 0; }
.biz-other-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.biz-other-grid article { padding: 28px; border-top: 2px solid #087fe5; background: #f2f5f7; }
.biz-scope-note { color: #506779; font-size: 13px; line-height: 2; margin: 24px 0 0; }
.biz-quality { border-top: 1px solid #d4e0e8; background: #f2f5f7; }
.biz-quality-grid { display: grid; grid-template-columns: 1.4fr 1fr; align-items: start; gap: 64px; }
.biz-inspection { background: #fff; border: 1px solid #d4e0e8; padding: 32px; }
.biz-inspection ul { list-style: none; margin: 24px 0 0; padding: 0; }
.biz-inspection li { border-top: 1px solid #d4e0e8; padding: 16px 0; font-size: 15px; }
.biz-inspection li:last-child { padding-bottom: 0; }
.biz-cta-text { color: #c3d3df; max-width: 640px; margin: 24px auto 0; font-size: 14px; line-height: 2; }

@media (max-width: 1199px) {
  .biz-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .biz-quality-grid { gap: 32px; }
}
@media (max-width: 900px) {
  .biz-intro { grid-template-columns: 1fr; gap: 32px; }
  .biz-flow { grid-template-columns: 1fr; gap: 0; }
  .biz-step { padding: 0 0 36px 72px; min-height: 120px; }
  .biz-step:last-child { padding-bottom: 0; }
  .biz-step-number { position: absolute; left: 0; top: 0; margin: 0; }
  .biz-step-line { top: 0; left: 22px; width: 2px; height: 100%; }
  .biz-step-line::after { transform-origin: top; }
  .biz-step:last-child .biz-step-line { display: none; }
  .biz-flow.is-enhanced .biz-step-line::after { transform: scaleY(0); }
  .biz-flow.is-enhanced .biz-step.is-reached .biz-step-line::after { transform: scaleY(1); }
  .biz-quality-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .biz-prose, .biz-section-note, .biz-step-description > p, .biz-product-body > p:last-child, .biz-other-grid article > p:last-child, .biz-scope-note, .biz-inspection li, .biz-cta-text { font-size: 16px; }
  .biz-prose { line-height: 2; }
  .biz-inspection li { line-height: 1.8; }
}
@media (max-width: 600px) {
  .biz-blueprint { max-width: 360px; width: 100%; justify-self: center; }
  .biz-blueprint svg { max-height: 220px; }
  .biz-product-grid, .biz-other-grid { grid-template-columns: 1fr; }
  .biz-step { padding-left: 60px; }
  .biz-other-grid article, .biz-inspection { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .biz-blueprint-signal { animation: none; stroke-dashoffset: 0; }
  .biz-flow.is-enhanced .biz-step-line::after { transform: none; }
}
