.business-page { background: var(--white); }
.business-page .site-header { color: var(--ink); }
.business-main { overflow: hidden; }

.business-hero { position: relative; display: flex; min-height: 560px; align-items: end; padding: calc(var(--header-height) + 80px) 0 90px; overflow: hidden; background: var(--greige); }
.business-hero::before { content: "BUSINESS"; position: absolute; left: -.035em; bottom: -.2em; color: rgba(41,41,35,.055); font-size: clamp(8rem, 19vw, 19rem); font-weight: 800; line-height: 1; letter-spacing: -.07em; white-space: nowrap; }
.business-hero::after { content: ""; position: absolute; right: 0; inset-block: 0; width: 28%; background: var(--navy); }
.business-hero-inner { position: relative; z-index: 1; width: 100%; }
.business-breadcrumb { margin: 0 0 60px; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.business-hero h1 { max-width: 70%; margin: 0; font-size: clamp(3.2rem, 7vw, 7rem); font-weight: 600; line-height: 1; letter-spacing: -.065em; }
.business-hero h1 span { display: block; margin-top: 22px; font-size: .82rem; font-weight: 500; letter-spacing: .12em; }

.business-intro { padding: clamp(100px, 13vw, 180px) 0; }
.business-intro-grid { display: grid; grid-template-columns: .6fr 1.4fr; gap: clamp(60px, 10vw, 150px); }
.business-intro h2 { max-width: 790px; margin: 0 0 48px; font-size: clamp(2.3rem, 4.7vw, 5rem); font-weight: 500; line-height: 1.35; letter-spacing: -.045em; }
.business-intro-grid > div > p { max-width: 720px; margin: 0 0 22px; color: var(--muted); }
.business-intro-grid .business-lead { color: var(--ink); font-size: clamp(1.12rem, 1.55vw, 1.4rem); line-height: 1.9; }

.business-visuals { padding: 0 0 clamp(100px, 12vw, 170px); background: var(--white); }
.business-visual { position: relative; aspect-ratio: 2.295 / 1; margin: 0; overflow: hidden; background: var(--navy); }
.business-visual::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(24,24,21,.12), transparent 58%); transition: opacity .45s ease; }
.business-visual img { display: block; width: 100%; height: 100%; object-fit: cover; filter: var(--image-tone); transition: filter .5s ease, transform .8s cubic-bezier(.2,.65,.3,1); }
.business-visual:hover img { filter: var(--image-tone-hover); transform: scale(1.014); }
.business-visual:hover::after { opacity: 0; }
.business-visual figcaption { position: absolute; z-index: 1; inset: auto 0 0; display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: clamp(44px, 7vw, 88px) clamp(22px, 4vw, 52px) clamp(22px, 3.4vw, 42px); color: var(--white); background: linear-gradient(transparent, rgba(20,20,18,.66)); }
.business-visual figcaption span { font-size: clamp(.68rem, .9vw, .78rem); font-weight: 700; letter-spacing: .18em; }
.business-visual figcaption small { color: rgba(255,255,255,.8); font-size: clamp(.72rem, 1vw, .88rem); letter-spacing: .05em; }

.business-services, .business-values, .business-method { padding: clamp(100px, 12vw, 170px) 0; background: var(--mist); }
.business-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 10vw, 140px); align-items: start; margin-bottom: 70px; }
.business-heading h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 500; line-height: 1.35; letter-spacing: -.04em; }
.business-heading > p:last-child { max-width: 620px; margin: 50px 0 0; color: var(--muted); }
.service-list { border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 70px 180px 1fr; gap: clamp(26px, 5vw, 80px); padding: clamp(38px, 5vw, 64px) 0; border-bottom: 1px solid var(--line); }
.service-number, .service-en { color: var(--blue); font-size: .68rem; font-weight: 700; line-height: 1.6; letter-spacing: .13em; }
.service-en { margin: 3px 0 0; }
.service-row h3 { margin: 0 0 18px; font-size: clamp(1.6rem, 2.6vw, 2.6rem); font-weight: 500; line-height: 1.4; letter-spacing: -.035em; }
.service-row div p { max-width: 700px; margin: 0; color: var(--muted); }

.export-model { padding: clamp(110px, 13vw, 180px) 0; color: var(--greige); background: #20211d; }
.export-model-heading { display: grid; grid-template-columns: .6fr 1.4fr; gap: clamp(60px, 10vw, 150px); margin-bottom: clamp(64px, 8vw, 108px); }
.export-status { display: inline-flex; align-items: center; gap: 9px; margin: 18px 0 0; color: rgba(214,210,196,.7); font-size: .65rem; font-weight: 700; letter-spacing: .14em; }
.export-status::before { width: 7px; height: 7px; border-radius: 50%; background: #a5ad91; content: ""; }
.export-model-heading h2 { max-width: 820px; margin: 0 0 30px; color: var(--white); font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 500; line-height: 1.3; letter-spacing: -.05em; }
.export-model-heading > div:last-child > p { max-width: 720px; margin: 0; color: rgba(214,210,196,.66); }
.export-route { display: grid; grid-template-columns: 1fr 1.35fr 1fr; border: 1px solid rgba(214,210,196,.24); }
.export-route article { position: relative; min-height: 340px; padding: clamp(28px, 3.5vw, 46px); }
.export-route article + article { border-left: 1px solid rgba(214,210,196,.24); }
.export-route article + article::before { position: absolute; left: -7px; top: 50%; width: 13px; height: 13px; border-top: 1px solid rgba(214,210,196,.55); border-right: 1px solid rgba(214,210,196,.55); background: #20211d; content: ""; transform: translateY(-50%) rotate(45deg); }
.export-route span { color: rgba(214,210,196,.56); font-size: .65rem; font-weight: 700; letter-spacing: .16em; }
.export-route h3 { margin: 86px 0 22px; color: var(--white); font-size: clamp(1.55rem, 2.5vw, 2.5rem); font-weight: 500; line-height: 1.35; letter-spacing: -.035em; }
.export-route-side p { margin: 0; color: rgba(214,210,196,.58); font-size: .86rem; }
.export-route-hub { background: rgba(214,210,196,.07); }
.export-route-hub h3 { color: var(--greige); font-size: clamp(1.4rem, 2.2vw, 2.1rem); letter-spacing: .015em; }
.export-route-hub ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.export-route-hub li { padding: 7px 11px; border: 1px solid rgba(214,210,196,.22); color: rgba(255,255,255,.74); font-size: .72rem; }
.export-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin: clamp(48px, 6vw, 76px) 0 0; padding: 0; border-top: 1px solid rgba(214,210,196,.22); list-style: none; }
.export-steps li { min-height: 270px; padding: 28px 24px; border-right: 1px solid rgba(214,210,196,.22); border-bottom: 1px solid rgba(214,210,196,.22); }
.export-steps li:first-child { border-left: 1px solid rgba(214,210,196,.22); }
.export-steps span { color: rgba(214,210,196,.46); font-size: .64rem; font-weight: 700; letter-spacing: .13em; }
.export-steps h3 { margin: 64px 0 16px; color: var(--white); font-size: clamp(1.15rem, 1.6vw, 1.45rem); font-weight: 500; }
.export-steps p { margin: 0; color: rgba(214,210,196,.6); font-size: .82rem; line-height: 1.85; }
.export-disclaimer { margin: 26px 0 0; color: rgba(214,210,196,.5); font-size: .74rem; }
.export-model-footer { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.export-page-link { display: flex; width: min(100%, 390px); align-items: center; justify-content: space-between; gap: 28px; padding: 20px 0; border-bottom: 1px solid rgba(214,210,196,.42); color: var(--white); font-size: .84rem; font-weight: 700; }
.export-page-link span:last-child { transition: transform .25s ease; }
.export-page-link:hover span:last-child { transform: translate(5px,-5px); }

.business-other { padding: clamp(100px, 12vw, 170px) 0; background: var(--white); }
.other-business-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.other-business-card { min-height: 360px; padding: 34px; background: var(--white); transition: color .3s, background .3s, transform .3s; }
.other-business-card:hover { z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-6px); }
.other-business-card > span { color: var(--blue); font-size: .67rem; font-weight: 700; letter-spacing: .13em; }
.other-business-card h3 { margin: 76px 0 22px; font-size: clamp(1.4rem, 2.2vw, 2rem); font-weight: 500; }
.other-business-card p { margin: 0; color: var(--muted); }
.other-business-card:hover p { color: rgba(255,255,255,.62); }

.business-flow { padding: clamp(110px, 13vw, 180px) 0; color: var(--greige); background: var(--navy); }
.flow-heading { display: grid; grid-template-columns: .6fr 1.4fr; gap: clamp(60px, 10vw, 150px); align-items: start; margin-bottom: clamp(70px, 9vw, 120px); }
.flow-heading h2 { max-width: 780px; margin: 0; color: var(--white); font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 500; line-height: 1.35; letter-spacing: -.045em; }
.flow-list { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-top: 1px solid rgba(214,210,196,.22); list-style: none; }
.flow-list li { min-height: 260px; padding: 30px 24px; border-right: 1px solid rgba(214,210,196,.22); }
.flow-list li:first-child { border-left: 1px solid rgba(214,210,196,.22); }
.flow-list span { display: block; margin-bottom: 68px; color: rgba(214,210,196,.46); font-size: .68rem; letter-spacing: .12em; }
.flow-list strong { display: block; color: var(--white); font-size: 1rem; letter-spacing: .09em; }
.flow-list p { margin: 10px 0 0; color: rgba(214,210,196,.62); font-size: .84rem; }

.business-values, .business-method { background: var(--white); }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.value-card { min-height: 310px; padding: 34px; background: var(--white); }
.value-card span { color: var(--blue); font-size: .68rem; font-weight: 700; letter-spacing: .12em; }
.value-card h3 { margin: 70px 0 18px; font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 500; }
.value-card p { margin: 0; color: var(--muted); }

.method-panel { position: relative; }
.method-panel-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(46px, 8vw, 120px); align-items: end; margin-bottom: 34px; }
.method-panel-heading span,
.method-process-heading > span { display: block; margin-bottom: 22px; color: var(--blue); font-size: .66rem; font-weight: 700; letter-spacing: .15em; }
.method-panel-heading h3,
.method-process-heading h3 { margin: 0; font-size: clamp(1.8rem, 3.2vw, 3.25rem); font-weight: 500; line-height: 1.38; letter-spacing: -.045em; }
.method-panel-heading > p { max-width: 620px; margin: 0 0 5px; color: var(--muted); }

.criteria-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 0; padding: 1px; background: var(--line); list-style: none; }
.criteria-grid li { min-height: 330px; padding: 32px 28px; background: var(--white); transition: color .32s ease, background .32s ease, transform .32s ease; }
.criteria-grid li > span { color: var(--blue); font-size: .66rem; font-weight: 700; letter-spacing: .14em; }
.criteria-grid h4 { margin: 74px 0 20px; font-size: clamp(1.15rem, 1.7vw, 1.55rem); font-weight: 500; line-height: 1.55; letter-spacing: -.025em; }
.criteria-grid p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.9; }
.criteria-grid li:hover { z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-5px); }
.criteria-grid li:hover > span { color: var(--greige); }
.criteria-grid li:hover p { color: rgba(255,255,255,.66); }

.method-process-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 32px); margin-top: clamp(70px, 9vw, 120px); }
.method-process { display: flex; min-height: 720px; flex-direction: column; padding: clamp(30px, 4vw, 52px); border: 1px solid var(--line); background: var(--mist); }
.method-process-heading { min-height: 260px; padding-bottom: 36px; }
.method-process-heading p { max-width: 540px; margin: 24px 0 0; color: var(--muted); }
.method-steps { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.method-steps li { display: grid; grid-template-columns: 42px 1fr; gap: 18px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--line); }
.method-steps li > span { color: var(--blue); font-size: .64rem; font-weight: 700; letter-spacing: .12em; }
.method-steps strong { display: block; font-size: .72rem; letter-spacing: .12em; }
.method-steps p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }
.method-link { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: auto; padding-top: 34px; font-size: .86rem; font-weight: 700; letter-spacing: .03em; }
.method-link span { font-size: 1rem; transition: transform .25s ease; }
.method-link:hover span { transform: translate(5px, -5px); }

.method-process-dark { color: var(--white); border-color: var(--navy); background: var(--navy); }
.method-process-dark .method-process-heading > span { color: var(--greige); }
.method-process-dark .method-process-heading p,
.method-process-dark .method-steps p { color: rgba(255,255,255,.62); }
.method-process-dark .method-steps { border-color: rgba(214,210,196,.2); }
.method-process-dark .method-steps li { border-color: rgba(214,210,196,.2); }
.method-process-dark .method-steps li > span { color: rgba(214,210,196,.7); }
.method-process-dark .method-link { border-color: rgba(214,210,196,.26); }

.business-resources { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 70px; background: var(--line); border: 1px solid var(--line); }
.business-resources a { position: relative; display: flex; min-height: 220px; flex-direction: column; justify-content: space-between; padding: 30px; overflow: hidden; background: var(--mist); transition: color .3s ease, background .3s ease; }
.business-resources a::before { position: absolute; inset: auto -20% -70% auto; width: 210px; aspect-ratio: 1; border: 1px solid rgba(41,41,35,.1); border-radius: 50%; content: ""; transition: transform .45s ease; }
.business-resources small { color: var(--blue); font-size: .64rem; font-weight: 700; letter-spacing: .13em; }
.business-resources strong { position: relative; max-width: 220px; font-size: clamp(1.15rem, 1.7vw, 1.55rem); font-weight: 500; line-height: 1.5; }
.business-resources span { position: absolute; right: 28px; bottom: 28px; font-size: 1rem; transition: transform .25s ease; }
.business-resources a:hover { color: var(--white); background: var(--navy); }
.business-resources a:hover small { color: var(--greige); }
.business-resources a:hover::before { border-color: rgba(255,255,255,.16); transform: scale(1.15); }
.business-resources a:hover span { transform: translate(5px, -5px); }
.business-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 70px; }
.business-links a { display: flex; align-items: center; justify-content: space-between; padding: 24px 0; border-bottom: 1px solid var(--ink); font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 600; }
.business-links span { transition: transform .25s; }
.business-links a:hover span { transform: translate(5px, -5px); }

@media (max-width: 900px) {
  .business-hero { min-height: 460px; }
  .business-hero::after { width: 14px; }
  .business-hero h1 { max-width: 100%; }
  .business-intro-grid, .business-heading, .flow-heading, .export-model-heading { grid-template-columns: 1fr; gap: 28px; }
  .business-heading > p:last-child { margin-top: 0; }
  .service-row { grid-template-columns: 54px 130px 1fr; gap: 24px; }
  .flow-list { grid-template-columns: repeat(2, 1fr); }
  .flow-list li:nth-child(3) { border-left: 1px solid rgba(214,210,196,.22); }
  .flow-list li { border-bottom: 1px solid rgba(214,210,196,.22); }
  .value-grid { grid-template-columns: 1fr; }
  .method-panel-heading { grid-template-columns: 1fr; gap: 20px; align-items: start; }
  .criteria-grid { grid-template-columns: repeat(2, 1fr); }
  .criteria-grid li { min-height: 280px; }
  .method-process-grid { grid-template-columns: 1fr; }
  .method-process { min-height: 0; }
  .method-process-heading { min-height: 0; }
  .method-link { margin-top: 38px; }
  .business-resources { grid-template-columns: 1fr; }
  .business-resources a { min-height: 170px; }
  .other-business-grid { grid-template-columns: 1fr; }
  .other-business-card { min-height: 0; }
  .value-card { min-height: 0; }
  .export-route { grid-template-columns: 1fr; }
  .export-route article { min-height: 250px; }
  .export-route article + article { border-top: 1px solid rgba(214,210,196,.24); border-left: 0; }
  .export-route article + article::before { left: 50%; top: -7px; transform: translateX(-50%) rotate(135deg); }
  .export-route h3 { margin-top: 58px; }
  .export-steps { grid-template-columns: repeat(2, 1fr); }
  .export-steps li:nth-child(3) { border-left: 1px solid rgba(214,210,196,.22); }
  .export-model-footer { align-items: start; flex-direction: column; gap: 12px; }
}

@media (max-width: 560px) {
  .business-visual { aspect-ratio: 1 / 1.12; }
  .business-visual img { object-position: 61% 50%; }
  .business-visual figcaption { align-items: flex-start; flex-direction: column; gap: 5px; padding: 36px 18px 16px; }
  .business-visual figcaption small { font-size: .68rem; }
  .service-row { grid-template-columns: 42px 1fr; }
  .service-en { grid-column: 2; }
  .service-row div { grid-column: 2; }
  .flow-list { grid-template-columns: 1fr; }
  .flow-list li, .flow-list li:nth-child(3) { min-height: 0; border-left: 1px solid rgba(214,210,196,.22); }
  .flow-list span { margin-bottom: 38px; }
  .value-card { padding: 28px 24px; }
  .value-card h3 { margin-top: 36px; }
  .criteria-grid { grid-template-columns: 1fr; }
  .criteria-grid li { min-height: 0; padding: 28px 24px; }
  .criteria-grid h4 { margin-top: 38px; }
  .method-process { padding: 30px 24px; }
  .method-steps li { grid-template-columns: 34px 1fr; gap: 12px; }
  .other-business-card { padding: 28px 24px; }
  .other-business-card h3 { margin-top: 36px; }
  .business-links { grid-template-columns: 1fr; gap: 8px; }
  .export-route article { min-height: 0; padding: 28px 24px; }
  .export-route h3 { margin-top: 38px; }
  .export-steps { grid-template-columns: 1fr; }
  .export-steps li, .export-steps li:nth-child(3) { min-height: 0; border-left: 1px solid rgba(214,210,196,.22); }
  .export-steps h3 { margin-top: 38px; }
}
