/* Corporate audience: Kyosankon Photo is the primary business. */
.core-hero {
  display: grid;
  grid-template-columns: 46fr 54fr;
  max-width: 1760px;
  margin: 14px auto 0;
}
.core-copy { padding: 48px 38px 52px var(--pad); align-self: center; }
.core-copy .hero-kicker { margin-bottom: 25px; }
.core-copy h1 { line-height: 1.3; margin-bottom: 24px; }
.core-copy h1 .kyosan-wordmark { font-size: clamp(48px,4.65vw,76px); font-weight: 400; letter-spacing: .045em; }
.core-message { font: 400 clamp(27px,2.45vw,40px)/1.7 var(--serif); letter-spacing: .02em; margin-bottom: 24px; }
.core-description { font-size: 15px; line-height: 2.05; color: var(--body); }
.core-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 31px; }
.core-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; padding: 16px 23px; background: var(--ink); color: white; font-size: 14px; line-height: 1.6; min-height: 54px; transition: background .25s; }
.core-cta:hover { background: #3e5a4b; }
.core-cta svg { width: 22px; height: 22px; transition: transform .25s; }
.core-cta:hover svg { transform: translateX(4px); }
.core-discover { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; min-height: 44px; }
.core-discover svg { width: 18px; height: 18px; }
.core-photo { height: 650px; min-height: 100%; overflow: hidden; position: relative; }
.core-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 67%; transform: scale(1.12); transform-origin: center 80%; animation: heroImage 1.1s cubic-bezier(.22,1,.36,1) both; }
.core-photo figcaption { position: absolute; bottom: 20px; left: 27px; right: 27px; display: flex; justify-content: space-between; gap: 20px; color: white; font-size: 10px; text-shadow: 0 1px 6px #0008; }
.core-photo figcaption span:first-child { font: 500 9px/1.8 var(--latin); letter-spacing: .12em; }
.core-copy { animation: heroText .9s cubic-bezier(.22,1,.36,1) both; }
.business-jump { display: grid; grid-template-columns: 1fr 1.3fr 1.1fr 1.1fr; align-items: center; margin-block: 32px 0; padding-block: 26px; border-bottom: 1px solid var(--line); }
.business-jump>.eyebrow { font-size: 9px; color: var(--muted); letter-spacing: .09em; }
.business-jump>a { display: flex; align-items: center; gap: 13px; padding: 8px 27px; font-size: 13px; border-left: 1px solid var(--line); min-height: 44px; }
.business-jump>a>small { font: 400 10px var(--latin); color: var(--muted); }
.business-jump svg { width: 16px; height: 16px; margin-left: auto; }
.business-jump a:hover { color: #637d68; }
.core-business { margin-top: 100px; padding-block: 75px 58px; background: var(--sage); }
.core-intro { display: grid; grid-template-columns: 1fr 1.25fr; gap: 80px; align-items: end; margin-bottom: 55px; }
.core-intro h2 { font: 400 34px/1.7 var(--serif); letter-spacing: .03em; margin-top: 26px; }
.core-intro>p { font-size: 15px; line-height: 2.15; color: var(--body); }
.business-model { display: grid; grid-template-columns: repeat(3,1fr); border-block: 1px solid #c5d2c4; padding-block: 32px; }
.model-step { position: relative; padding: 5px 36px; border-left: 1px solid #c5d2c4; }
.model-step:first-child { border-left: 0; padding-left: 0; }
.model-step:last-child { padding-right: 0; }
.model-step:not(:last-child)::after { content: '→'; position: absolute; right: -13px; top: 37px; width: 26px; text-align: center; background: var(--sage); color: #738972; font-size: 20px; z-index: 1; }
.model-number { font: 400 12px var(--latin); color: #627762; display: block; margin-bottom: 20px; }
.model-role { font-size: 13px; color: #60715f; display: block; margin-bottom: 10px; }
.model-step h3 { font-size: 20px; font-weight: 500; line-height: 1.6; margin-bottom: 16px; }
.model-step p { font-size: 14px; color: var(--body); line-height: 2; }
.operator-role { display: grid; grid-template-columns: 1fr 2.1fr; align-items: center; gap: 55px; padding: 32px 0 38px; border-bottom: 1px solid #c5d2c4; }
.operator-role .eyebrow { font-size: 9px; margin-bottom: 10px; color: #60715f; }
.operator-role h3 { font-size: 18px; font-weight: 500; }
.operator-role p { font-size: 14px; color: var(--body); line-height: 2; }
.service-customer { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-top: 28px; }
.service-customer>div>span { font-size: 13px; }
.service-customer p { font-size: 12px; margin-top: 7px; color: #60715f; line-height: 1.9; }
.service-customer .text-link { margin-top: 0; white-space: nowrap; flex-shrink: 0; font-size: 13px; gap: 26px; }
.partners-section { padding-block: 105px 10px; }
.partners-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 45px; margin-bottom: 50px; }
.partners-intro h2 { font-size: 34px; font-weight: 500; line-height: 1.6; margin-top: 25px; }
.partners-intro>p { font: 400 24px/1.8 var(--serif); letter-spacing: .03em; }
.partner-row { display: grid; grid-template-columns: .8fr 1.5fr 65px; gap: 65px; padding-block: 42px 45px; border-top: 1px solid var(--line); }
.partner-row:last-child { border-bottom: 1px solid var(--line); }
.partner-title .eyebrow { font-size: 9px; color: var(--muted); }
.partner-title h3 { margin-top: 18px; font-size: 27px; font-weight: 500; line-height: 1.65; }
.partner-description p { font-size: 15px; line-height: 2.1; color: var(--body); }
.partner-description .text-link { margin-top: 20px; }
.partner-index { font: 400 40px/1.2 var(--latin); color: #a8b8a8; text-align: right; }
.home-company { padding-block: 100px; }
.secondary-ec { background: #f0f3ed; padding-block: 66px 75px; }
.ec-intro { display: flex; justify-content: space-between; align-items: end; gap: 35px; margin-bottom: 38px; }
.ec-intro .eyebrow { font-size: 10px; color: var(--muted); }
.ec-intro h2 { font-size: 24px; font-weight: 500; margin-top: 15px; line-height: 1.7; }
.ec-intro>p { font-size: 14px; color: var(--body); line-height: 1.9; }
.ec-brand-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.ec-brand { display: grid; grid-template-columns: .88fr 1fr; gap: 27px; align-items: center; border-top: 1px solid #cdd6c9; padding-top: 29px; }
.ec-brand-photo { display: block; overflow: hidden; }
.ec-brand-photo img { width: 100%; aspect-ratio: 1.12; object-fit: cover; object-position: center; transition: transform .6s; }
.ec-brand-photo:hover img { transform: scale(1.025); }
.ec-mireu .ec-brand-photo img { aspect-ratio: 16/9; object-fit: contain; }
.ec-brand .brand-heading { gap: 14px; margin-bottom: 19px; min-height: 39px; }
.ec-brand .brand-heading .velune-logo { width: 135px; }
.ec-brand .brand-heading .mireu-wordmark { font-size: 53px; }
.ec-brand .brand-heading>span { font-size: 10px; }
.ec-brand-copy>p { font-size: 13px; line-height: 1.9; color: var(--body); }
.ec-mireu .ec-brand-copy>p { font-family: var(--serif); color: var(--mireu); }
.ec-brand .text-link { font-size: 12px; gap: 32px; padding-block: 9px; margin-top: 13px; }
.page-service .core-business { margin-top: 0; }
.page-service .partners-section { padding-bottom: 95px; }
.business-contact-aside { display: block; }
.individual-contact { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
.individual-contact h3 { font-size: 16px; font-weight: 500; margin-bottom: 14px; }
.individual-contact p { font-size: 13px; }
.individual-contact .contact-store-links { gap: 0 23px; }
.individual-contact .text-link { gap: 16px; font-size: 12px; }

@media (max-width:1100px) {
  .core-copy { padding-right: 30px; }
  .core-copy h1 .kyosan-wordmark { font-size: 55px; }
  .core-message { font-size: 28px; }
  .core-description { font-size: 14px; }
  .core-photo { height: 645px; }
  .core-actions { gap: 12px; }
  .core-cta { padding-inline: 18px; font-size: 13px; }
  .core-discover { font-size: 11px; }
  .business-jump { grid-template-columns: .85fr 1.3fr 1.1fr 1.1fr; }
  .business-jump>a { padding-inline: 15px; gap: 10px; font-size: 12px; }
  .core-intro { gap: 50px; }
  .core-intro h2 { font-size: 30px; }
  .core-intro>p { font-size: 14px; }
  .model-step { padding-inline: 25px; }
  .model-step h3 { font-size: 18px; }
  .operator-role { grid-template-columns: 1fr 2fr; gap: 35px; }
  .partner-row { gap: 40px; grid-template-columns: .9fr 1.6fr 45px; }
  .ec-brand-grid { gap: 35px; }
  .ec-brand { grid-template-columns: .7fr 1fr; gap: 20px; }
  .ec-brand .brand-heading { gap: 10px; flex-wrap: wrap; }
  .ec-brand .brand-heading .velune-logo { width: 120px; }
}
@media (max-width:800px) {
  .core-hero { grid-template-columns: 1fr; margin-top: 0; }
  .core-copy { padding: 43px var(--pad) 38px; }
  .core-copy h1 .kyosan-wordmark { font-size: 62px; }
  .core-message { font-size: 31px; line-height: 1.65; }
  .core-description { max-width: 550px; }
  .core-actions { gap: 25px; }
  .core-photo { margin-left: var(--pad); height: 455px; min-height: 0; }
  .business-jump { margin-top: 15px; grid-template-columns: repeat(3,1fr); row-gap: 14px; padding-block: 23px; }
  .business-jump>.eyebrow { grid-column: 1/-1; }
  .business-jump>a { padding: 8px 15px; gap: 9px; }
  .business-jump>a:first-of-type { border: 0; padding-left: 0; }
  .business-jump>a:last-of-type { padding-right: 0; }
  .core-business { margin-top: 65px; padding-block: 53px 40px; }
  .core-intro { grid-template-columns: 1fr; gap: 27px; margin-bottom: 34px; }
  .core-intro h2 { margin-top: 20px; font-size: 29px; }
  .business-model { padding-block: 24px; }
  .model-step { padding-inline: 19px; }
  .model-step h3 { font-size: 16px; }
  .model-step p { font-size: 13px; }
  .model-role { font-size: 12px; }
  .operator-role { grid-template-columns: 1fr; gap: 17px; padding-block: 27px; }
  .operator-role p { font-size: 13px; }
  .service-customer { display: block; padding-top: 23px; }
  .service-customer .text-link { margin-top: 14px; }
  .partners-section { padding-top: 70px; }
  .partners-intro { margin-bottom: 32px; }
  .partners-intro h2 { font-size: 29px; }
  .partners-intro>p { font-size: 20px; }
  .partner-row { grid-template-columns: .85fr 1.5fr; column-gap: 40px; position: relative; }
  .partner-title h3 { font-size: 23px; }
  .partner-index { display: none; }
  .partner-description p { font-size: 14px; }
  .home-company { padding-block: 75px; }
  .ec-intro { display: block; }
  .ec-intro>p { margin-top: 15px; font-size: 13px; }
  .ec-brand-grid { gap: 30px; }
  .ec-brand { grid-template-columns: 1fr; gap: 23px; align-content: start; }
  .ec-brand-photo img { aspect-ratio: 16/9; }
  .ec-brand .brand-heading { margin-bottom: 15px; }
  .page-service .partners-section { padding-bottom: 70px; }
  .business-contact-aside .direct-contact { margin-top: 25px; padding-top: 23px; border-top: 1px solid var(--line); }
}
@media (max-width:600px) {
  .core-copy { padding: 30px var(--pad) 31px; }
  .core-copy .hero-kicker { font-size: 9px; margin-bottom: 18px; }
  .core-copy h1 { margin-bottom: 18px; }
  .core-copy h1 .kyosan-wordmark { font-size: 49px; letter-spacing: .025em; }
  .core-message { font-size: 25px; line-height: 1.65; margin-bottom: 19px; }
  .core-description { font-size: 14px; line-height: 1.95; max-width: 370px; }
  .core-actions { margin-top: 24px; }
  .core-cta { font-size: 13px; padding: 14px 20px; min-height: 50px; gap: 35px; }
  .core-discover { display: none; }
  .core-photo { height: 330px; }
  .core-photo figcaption { left: 15px; right: 15px; bottom: 14px; font-size: 9px; }
  .core-photo figcaption span:first-child { font-size: 8px; }
  .business-jump { display: block; padding-block: 23px 13px; margin-top: 0; }
  .business-jump>.eyebrow { margin-bottom: 15px; font-size: 8px; }
  .business-jump>a { border: 0; border-top: 1px solid var(--line); padding: 13px 0; font-size: 13px; gap: 18px; }
  .business-jump>a:first-of-type { border-top: 1px solid var(--line); }
  .core-business { margin-top: 47px; padding-block: 42px 35px; }
  .core-intro { gap: 22px; margin-bottom: 28px; }
  .core-intro h2 { font-size: 27px; margin-top: 19px; }
  .core-intro>p { font-size: 14px; line-height: 2; }
  .business-model { grid-template-columns: 1fr; padding-block: 0; }
  .model-step,.model-step:first-child,.model-step:last-child { display: grid; grid-template-columns: 35px 1fr; column-gap: 16px; padding: 27px 0; border-left: 0; border-top: 1px solid #c5d2c4; }
  .model-step:first-child { border-top: 0; }
  .model-step:not(:last-child)::after { display: none; }
  .model-number { grid-row: 1/4; grid-column: 1; font-size: 12px; margin-top: 3px; }
  .model-role,.model-step h3,.model-step p { grid-column: 2; }
  .model-role { font-size: 12px; margin-bottom: 7px; }
  .model-step h3 { font-size: 18px; margin-bottom: 12px; }
  .model-step p { font-size: 14px; }
  .operator-role h3 { font-size: 18px; }
  .operator-role p { font-size: 14px; line-height: 2; }
  .service-customer p { font-size: 12px; }
  .service-customer .text-link { font-size: 13px; }
  .partners-section { padding-top: 55px; }
  .partners-intro { display: block; }
  .partners-intro h2 { font-size: 28px; margin-top: 20px; }
  .partners-intro>p { font-size: 20px; margin-top: 20px; }
  .partner-row { grid-template-columns: 1fr; gap: 22px; padding-block: 30px; }
  .partner-title h3 { font-size: 22px; margin-top: 12px; }
  .partner-description .text-link { font-size: 13px; gap: 23px; margin-top: 17px; }
  .home-company { padding-block: 65px; }
  .home-company-title>p { font-size: 14px; }
  .home-company-title>p br { display: none; }
  .secondary-ec { padding-block: 43px 50px; }
  .ec-intro { margin-bottom: 28px; }
  .ec-intro h2 { font-size: 22px; margin-top: 16px; }
  .ec-intro>p { font-size: 13px; }
  .ec-brand-grid { grid-template-columns: 1fr; gap: 30px; }
  .ec-brand { grid-template-columns: 1fr; gap: 20px; padding-top: 26px; }
  .ec-brand .brand-heading { min-height: 42px; gap: 16px; }
  .ec-brand .brand-heading .velune-logo { width: 145px; }
  .ec-brand .brand-heading .mireu-wordmark { font-size: 54px; }
  .ec-brand-copy>p { font-size: 14px; }
  .ec-brand .text-link { font-size: 13px; }
  .page-service .partners-section { padding-bottom: 55px; }
  .individual-contact { margin-top: 26px; padding-top: 23px; }
}
@media (prefers-reduced-motion:reduce) {
  .core-copy,.core-photo img { animation: none; }
  .core-cta,.core-cta svg,.ec-brand-photo img { transition: none; }
}
