/* HOME SERVICE, based solely on GRADIENT_FINAL_REFERENCE.png. */
.home-service { background:#f7f7f7; color:#080808; padding:1.65vw 3.42vw 1.3vw; font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.service-heading { display:grid; grid-template-columns:39% 47% 10%; gap:2%; align-items:center; margin-bottom:1.8vw; }
.service-heading>div { display:flex; align-items:center; gap:1.8vw; }
.service-heading h2 { margin:0; font-size:3.6vw; font-weight:600; line-height:1; letter-spacing:-.025em; }
.service-tagline { font-size:1.22vw; letter-spacing:.08em; white-space:nowrap; margin:0; }
.service-intro { font-size:.95vw; line-height:1.9; margin:0; }
.service-all { font-size:.9vw; white-space:nowrap; text-align:right; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.service-card { min-width:0; padding:0 2.15vw; display:flex; flex-direction:column; }
.service-card:first-child { padding-left:0; }.service-card:last-child { padding-right:0; }
.service-card+.service-card { border-left:1px solid #ddd; }
.service-number { font-size:1.45vw; font-weight:300; line-height:1.3; }
.service-card h3 { margin:.3vw 0 .25vw; font-size:1.32vw; line-height:1.3; font-weight:600; white-space:nowrap; }
.service-subtitle { font-size:1.04vw; font-weight:600; line-height:1.5; margin:0 0 .5vw; }
.service-image { position:relative; width:18.8vw; max-width:100%; aspect-ratio:4 / 3; display:grid; place-items:center; border:1px solid #ddd; background:#efefef; margin:.2vw auto 1vw; flex-shrink:0; }
.service-image img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; }

.service-description { font-size:.95vw; line-height:1.8; margin:0 0 1.1vw; flex:1; }
.service-details { align-self:flex-start; font-size:.9vw; line-height:1.6; border-bottom:1px solid #999; margin-top:auto; }
.service-source { display:grid; grid-template-columns:17% 57% 22%; gap:2%; align-items:center; background:#ededed; border-radius:.8vw; padding:1.15vw 2vw; margin:1.55vw -1.35vw 0; }
.source-heading { border-right:1px solid #ccc; padding-right:1vw; }.source-heading h3 { font-size:1.2vw; margin:0 0 .7vw; }.source-heading p { font-size:.9vw; letter-spacing:.06em; margin:0; }
.source-copy p { font-size:.85vw; line-height:1.7; margin:.2vw 0; }
.source-formats { display:flex; align-items:center; justify-content:center; gap:.8vw; }.source-app { display:grid; place-items:center; width:3.7vw; height:3.7vw; background:#080808; color:white; border-radius:.3vw; font-size:2vw; font-weight:600; }.source-slash { font-size:2.5vw; color:#777; margin:0 .6vw; }.source-output { font-size:1.1vw; line-height:1.4; letter-spacing:.1em; }
@media(max-width:700px) {
 .home-service { padding:30px 20px; }.service-heading { grid-template-columns:1fr auto; gap:16px; margin-bottom:26px; }.service-heading>div { display:block; }.service-heading h2 { font-size:32px; }.service-tagline { font-size:14px; line-height:1.7; white-space:normal; margin-top:10px; }.service-intro { grid-column:1/-1; grid-row:2; font-size:14px; line-height:1.9; }.service-intro br { display:none; }.service-all { font-size:11px; }
 .service-grid { grid-template-columns:1fr; }.service-card,.service-card:first-child,.service-card:last-child { padding:24px 0; }.service-card+.service-card { border-left:0; border-top:1px solid #ddd; }.service-number { font-size:20px; }.service-card h3 { font-size:18px; line-height:1.5; margin:4px 0; white-space:normal; }.service-subtitle { font-size:14px; margin:0 0 12px; }.service-image { width:100%; margin:0 0 16px; }.service-description { font-size:14px; line-height:1.9; margin:0 0 16px; }.service-details { font-size:12px; }
 .service-source { grid-template-columns:1fr; gap:18px; padding:20px 16px; margin:12px 0 0; border-radius:8px; }.source-heading { border-right:0; border-bottom:1px solid #ccc; padding:0 0 16px; }.source-heading h3 { font-size:16px; margin:0 0 8px; }.source-heading p { font-size:12px; }.source-copy p { font-size:14px; line-height:1.85; margin:8px 0; }.source-formats { gap:10px; justify-content:flex-start; }.source-app { width:44px; height:44px; font-size:25px; border-radius:4px; }.source-slash { font-size:30px; margin:0 8px; }.source-output { font-size:14px; }
}
