/* Company-section pages share the current home visual contract. */
.company-page .site-main{padding-top:0;}
.company-page .about-source-intro,
.company-page .about-source-services,
.company-page .certificate-section,
.company-page .location-section{padding-block:96px;scroll-margin-top:var(--header-height);}
.company-page .location-section{background:var(--ds-surface);border-top:1px solid var(--ds-line);}
.company-page .company-page-heading,
.company-page .section-head,
.company-page .about-source-heading{max-width:820px;margin:0 auto 48px;text-align:center;}
.company-page .section-title,
.company-page .section-header__title{margin-top:14px;line-height:1.38;}
.company-page .section-title em,
.company-page .section-header__title em{color:var(--ds-primary);font-style:normal;}
.company-page .section-head p{margin-top:16px;color:#222222;font-size:18px;line-height:1.75;}
.company-page .company-overview{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px;align-items:center;}
.company-page .company-overview__visual{margin:0;overflow:hidden;border-radius:var(--ds-media-radius);background:var(--ds-surface);box-shadow:var(--ds-media-shadow);}
.company-page .about-source-intro__image{width:100%;height:440px;object-fit:cover;border-radius:0;box-shadow:none;}
.company-page .about-source-message{max-width:none;margin:0;min-width:0;}
.company-page .about-source-message__eyebrow{font-size:15px;font-weight:700;color:var(--ds-primary);}
.company-page .about-source-message h2{font-size:clamp(28px,2.6vw,36px);line-height:1.38;margin:0 0 22px;word-break:keep-all;}
.company-page .about-source-message__body{color:#222222;font-size:18px;line-height:1.8;}
.company-page .about-source-message__body p{margin-bottom:16px;}
.company-page .about-source-message__signature{margin-top:26px;font-size:18px;letter-spacing:0;}
.company-page .about-source-services__grid{max-width:none;margin:0;grid-template-columns:minmax(0,1fr);gap:24px;align-items:stretch;}
.company-page .about-source-service-card{display:grid;grid-template-columns:minmax(0,500px) minmax(0,610px);justify-content:center;gap:48px;align-items:center;padding:30px 44px;border:1px solid var(--ds-line);border-radius:var(--ds-card-radius);background:#fff;box-shadow:var(--ds-card-shadow);text-align:left;overflow:hidden;}
.company-page .company-value__visual{margin:0;min-width:0;overflow:hidden;border-radius:14px;background:var(--ds-surface);box-shadow:none;}
.company-page .company-value__visual img{display:block;width:100%;height:360px;aspect-ratio:auto;object-fit:cover;}
.company-page .company-value__copy{min-width:0;padding:4px 0;}
.company-page .company-value__badge{display:block;margin-bottom:10px;color:#3dbccb;font-size:14px;font-weight:800;letter-spacing:.14em;}
.company-page .about-source-service-card:nth-child(odd) .company-value__visual{order:2;}
.company-page .about-source-service-card:nth-child(odd) .company-value__copy{order:1;}
.company-page .about-source-service-card:nth-child(even){grid-template-columns:minmax(0,610px) minmax(0,500px);}
.company-page .about-source-service-card h3{margin:0 0 16px;font-size:clamp(28px,2.5vw,34px);font-weight:var(--font-weight-heading);line-height:1.35;color:var(--ds-ink);letter-spacing:-.03em;word-break:keep-all;}
.company-page .about-source-service-card p{margin:0 0 12px;color:#222222;font-size:18px;font-weight:450;line-height:1.72;word-break:keep-all;overflow-wrap:break-word;}
.company-page .about-source-service-card p:last-child{margin-bottom:0;}
.company-page .qualification-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch;}
.company-page .qualification-card{padding:0;min-width:0;display:flex;flex-direction:column;border:1px solid #dfe5ee;border-radius:14px;background:#fff;box-shadow:0 10px 24px rgba(15,32,60,.05);overflow:hidden;}
.company-page .qualification-card__visual{margin:0;padding:0;width:100%;background:#e5e9f0;aspect-ratio:3 / 3.85;border-bottom:1px solid #dfe5ee;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.company-page .qualification-card__visual img{display:block;width:100%;height:100%;object-fit:contain;}
.company-page .qualification-card__body{background:#fff;padding:var(--ds-card-pad, 22px 20px);display:flex;align-items:center;justify-content:center;flex:1;}
.company-page .qualification-card h3{margin:0;padding:0;font-size:22px;font-weight:700;color:#111;text-align:center;line-height:1.4;}
.company-page .location-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;align-items:stretch;}
.company-page .location-info-card{padding:36px;gap:32px;justify-content:center;min-width:0;}
.company-page .location-info__header{gap:14px;margin:0;}
.company-page .location-info__tag{padding:0;border-radius:0;background:none;color:var(--color-label-mint);font-size:14px;letter-spacing:.12em;}
.company-page .location-info__title{font-size:clamp(28px,2.5vw,34px);font-weight:var(--font-weight-heading);line-height:1.38;}
.company-page .location-info__address{font-size:18px;line-height:1.85;color:#222222;}
.company-page .location-details-list{gap:24px;}
.company-page .location-detail-item{align-items:center;gap:16px;}
.company-page .location-detail-item__icon{width:46px;height:46px;border-radius:12px;color:var(--ds-primary);}
.company-page .location-detail-item__icon span{font-size:24px;}
.company-page .location-detail-item__content{min-width:0;gap:6px;}
.company-page .location-detail-item__label{font-size:16px;color:#222222;line-height:1.5;}
.company-page .location-detail-item__value{font-size:18px;color:#111111;line-height:1.6;overflow-wrap:anywhere;}
.company-page .map-wrapper{padding:20px;gap:18px;min-width:0;}
.company-page .map-container{height:420px;border:0;border-radius:12px;background:var(--ds-surface);}
.company-page .map-container iframe{display:block;width:100%;height:100%;border:0;}
.company-page .map-buttons-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.company-page .btn-map-link{min-height:52px;padding:14px 12px;font-family:var(--font-sans);font-size:15px;font-weight:var(--font-weight-heading);border-radius:12px;gap:8px;}
.company-page .btn-map-link i{font-size:20px;}
@media(max-width:1100px){
  .company-page .company-overview{gap:36px;}
  .company-page .about-source-service-card{gap:28px;padding:24px 28px;}
  .company-page .about-source-intro__image{height:400px;}
  .company-page .qualification-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .company-page .location-grid{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:768px){
  .company-page .about-source-intro,.company-page .about-source-services,.company-page .certificate-section,.company-page .location-section{padding-block:64px;}
  .company-page .company-page-heading,.company-page .section-head,.company-page .about-source-heading{margin-bottom:32px;}
  .company-page .company-overview{grid-template-columns:1fr;gap:32px;}
  .company-page .about-source-intro__image{height:auto;aspect-ratio:4/3;}
  .company-page .about-source-message h2{font-size:26px;}
  .company-page .about-source-services__grid{gap:20px;}
  .company-page .about-source-service-card,.company-page .about-source-service-card:nth-child(even){grid-template-columns:minmax(0,1fr);gap:20px;padding:20px;}
  .company-page .company-value__visual img{height:190px;}
  .company-page .about-source-service-card:nth-child(odd) .company-value__visual,.company-page .about-source-service-card:nth-child(odd) .company-value__copy{order:initial;}
  .company-page .about-source-service-card h3{margin-bottom:12px;font-size:22px;}
  .company-page .about-source-service-card p{font-size:15px;}
  .company-page .qualification-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
  .company-page .qualification-card__body{padding:18px 16px;}
  .company-page .qualification-card h3{font-size:16px;}
  .company-page .location-info-card{padding:24px;gap:28px;}
  .company-page .location-info__title{font-size:26px;}
  .company-page .location-info__address{font-size:16px;}
  .company-page .map-wrapper{padding:16px;}
  .company-page .map-container{height:320px;}
  .company-page .map-buttons-row{grid-template-columns:1fr;}
}
@media(max-width:420px){
  .company-page .qualification-grid{gap:12px;}
  .company-page .qualification-card__body{padding:12px 8px;}
  .company-page .qualification-card h3{font-size:14px;word-break:keep-all;}
}
