/* Corporate detail pages follow the source site's 1440px frame and spacing. */
.sub-page { color: #3d4656; overflow-wrap: anywhere; }
.sub-container { width: 100%; max-width: 1440px; padding: 0 40px; margin: 0 auto; }
.sub-title { background: var(--gradient-ubie, linear-gradient(120deg,#edf0fb,#fce4ee)); padding: 36px 0 56px; }
.sub-title h1 { font-size: 28px; font-weight: 700; line-height: 1.75; }
.sub-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; margin-bottom: 24px; }
.sub-breadcrumb a:hover, .sub-bottom a:hover { text-decoration: underline; }
.sub-section { padding: 112px 0; border-bottom: 1px solid #eee; }
.sub-gray { background: #f5f5f5; }
.sub-eyebrow { color: #e84b88; font-size: 24px; font-weight: 700; margin-bottom: 28px; line-height: 1.4; }
.sub-page h2 { font-size: 30px; font-weight: 700; line-height: 1.65; margin-bottom: 28px; }
.sub-page p { font-size: 16px; line-height: 1.9; }
.sub-page p + p { margin-top: 20px; }
.sub-page .sub-eyebrow { font-size: 24px; line-height: 1.4; }
.sub-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
.sub-intro > * { min-width: 0; }
.sub-intro-text { display: block; max-width: 1120px; }
.sub-page .sub-lead { font-size: 38px; line-height: 1.6; letter-spacing: .025em; text-wrap: balance; }
.sub-visual { margin: 0; position: relative; overflow: hidden; border-radius: 24px; }
.sub-visual img { display: block; width: 100%; height: auto; aspect-ratio: 1000/563; object-fit: cover; }
.sub-visual figcaption { position: absolute; right: 8px; bottom: 8px; background: #ffffffeb; padding: 3px 6px; font-size: 10px; line-height: 1.5; border-radius: 4px; max-width: calc(100% - 16px); }
.sub-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 40px; }
.sub-card { background: white; border: 1px solid #e5e7ed; border-radius: 24px; padding: 36px; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
a.sub-card:hover { border-color: #3858ca; }
.sub-card-label { font-size: 13px; color: #636b7a; line-height: 1.8; }
.sub-card h3 { font-size: 23px; line-height: 1.6; font-weight: 700; }
.sub-card-arrow { color: #3858ca; font-weight: 700; font-size: 14px; margin-top: auto; }
.sub-items { list-style: none; display: grid; gap: 16px; margin-top: 36px; padding: 0; }
.sub-items li { display: grid; grid-template-columns: 48px 1fr; gap: 24px; align-items: start; padding: 28px 32px; border-radius: 20px; background: white; }
.sub-number { font-size: 24px; color: #3858ca; font-weight: 700; line-height: 1.5; }
.sub-inputs { list-style: disc; padding-left: 24px; margin: 24px 0; line-height: 2.2; }
.sub-stage { display: inline-block; color: #3858ca; border: 1px solid #d4dcf5; padding: 8px 18px; border-radius: 8px; }
.sub-faq { max-width: 1040px; }
.sub-faq details { padding: 24px 0; border-bottom: 1px solid #dce0e7; }
.sub-faq summary { cursor: pointer; font-weight: 700; font-size: 18px; line-height: 1.8; }
.sub-faq p { margin-top: 18px; }
.sub-cta { padding: 80px 0; background: var(--gradient-ubie,linear-gradient(120deg,#edf0fb,#fce4ee)); }
.sub-button { display: inline-flex; align-items: center; gap: 32px; background: #3858ca; color: white; border-radius: 12px; padding: 16px 28px; font-weight: 700; margin-top: 32px; }
.sub-button:hover { opacity: .88; }
.sub-text-link { display: inline-block; color: #3858ca; text-decoration: underline; margin-top: 24px; }
.sub-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 36px; padding-bottom: 36px; font-size: 14px; }
header a[aria-current=page] { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 1023px) {
  .sub-container { padding-left: 24px; padding-right: 24px; }
  .sub-section { padding: 64px 0; }
  .sub-intro { gap: 32px; }
  .sub-page .sub-lead { font-size: 30px; }
  .sub-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 639px) {
  .sub-container { padding-left: 16px; padding-right: 16px; }
  .sub-title { padding: 24px 0 36px; }
  .sub-title h1 { font-size: 23px; }
  .sub-intro { grid-template-columns: 1fr; gap: 32px; }
  .sub-page .sub-lead { font-size: 28px; }
  .sub-page h2 { font-size: 24px; }
  .sub-page .sub-eyebrow { font-size: 21px; }
  .sub-section { padding: 48px 0; }
  .sub-cards { grid-template-columns: 1fr; gap: 16px; margin-top: 28px; }
  .sub-card { padding: 28px; }
  .sub-items li { grid-template-columns: 32px 1fr; gap: 14px; padding: 24px 18px; }
  .sub-number { font-size: 20px; }
  .sub-cta { padding: 48px 0; }
}
.kusunavi-service-name { display:flex; align-items:baseline; gap:10px; width:auto; max-width:100%; height:auto; min-height:48px; flex-wrap:wrap; color:#3d4353; font-size:32px; line-height:1.3; font-weight:900; letter-spacing:-.06em; }
.kusunavi-service-name span { font-size:18px; font-weight:700; letter-spacing:0; }
.kusunavi-vision { color:#3d4353; font-size:48px; line-height:1.5; font-weight:900; white-space:pre-line; letter-spacing:.025em; }
.kusunavi-area-name { color:#3854ce; font-size:24px; font-weight:700; line-height:1.5; }
@media(max-width:767px) { .kusunavi-vision { font-size:30px; } .kusunavi-service-name { font-size:28px; } .kusunavi-service-name span { font-size:16px; } .kusunavi-area-name { font-size:20px; } }
