/* ---------- Service Hero ---------- */
.service-hero{padding:80px 0}
.service-hero__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.service-hero__content{display:flex;flex-direction:column;gap:16px}
.service-hero__label{font:700 12px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.service-hero__title{position:relative;padding-bottom:20px;font:700 36px/1.4 var(--font-jp);letter-spacing:.04em}
.service-hero__title::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:3px;background:var(--color-primary)}
.service-hero__sublabel{margin-top:16px;font:500 13px/1.5 var(--font-jp);color:var(--color-text-placeholder)}
.service-hero__catch{font:700 22px/1.6 var(--font-jp);letter-spacing:.03em;color:var(--color-navy)}
.service-hero__lead{display:flex;flex-direction:column;gap:16px;max-width:560px;font-size:15px;line-height:2}
.service-hero__image{position:relative}
.service-hero__image .img-placeholder{filter:saturate(.75)}

/* ---------- Features ---------- */
.features-section{padding:var(--sec-pad) 0;border-top:1px solid var(--color-border-card)}
.features-list{display:flex;flex-direction:column;gap:80px}
.feature-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.feature-block--reverse .feature-block__content{order:2}
.feature-block--reverse .feature-block__image{order:1}
.feature-block__content{display:flex;flex-direction:column;gap:16px}
.feature-block__label{font:700 11px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.feature-block__title{font:700 24px/1.5 var(--font-jp);letter-spacing:.03em}
.feature-block__text{max-width:560px;font-size:15px;line-height:2}
.feature-block__case{margin-top:12px;max-width:560px;padding:20px 24px;border:1px solid var(--color-border-card);display:flex;flex-direction:column;gap:8px}
.feature-block__case-label{font:700 11px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.feature-block__case-list{display:flex;flex-direction:column;gap:6px}
.feature-block__case-list li{position:relative;padding-left:18px;font-size:14px;line-height:1.8}
.feature-block__case-list li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:1px;background:var(--color-primary)}

/* ---------- Merit ---------- */
.merit-section{padding:var(--sec-pad) 0;background:var(--color-bg-alt);border-top:1px solid var(--color-border-card);border-bottom:1px solid var(--color-border-card)}
.strength-grid{display:grid;gap:24px}
.strength-grid--3col{grid-template-columns:repeat(3,1fr)}
.strength-card{display:flex;flex-direction:column;gap:12px;padding:32px 28px;background:#fff;border:1px solid var(--color-border-card)}
.strength-card__number{font:700 11px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.strength-card__title{font:700 18px/1.5 var(--font-jp)}
.strength-card__text{font-size:14px;line-height:1.9}

/* ---------- Used Machine Banner ---------- */
.used-machine-banner{padding:0 0 var(--sec-pad);background:var(--color-bg-alt);border-bottom:1px solid var(--color-border-card)}
.merit-section+.used-machine-banner{margin-top:-1px}
/* バナー直後にセクションが続く場合、双方の余白が重なって空きすぎるため片方を相殺 */
.used-machine-banner+.features-section{border-top:0;padding-top:0}
.used-machine-banner+.related-services{border-top:0;padding-top:0}
.used-machine-banner__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.used-machine-banner__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:48px;background:var(--color-primary-pale)}
.used-machine-banner__label{font:700 12px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.used-machine-banner__title{font:700 26px/1.5 var(--font-jp);letter-spacing:.03em}
.used-machine-banner__text{font-size:15px}
.used-machine-banner__cta{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:12px}
.used-machine-banner__cta .btn{min-width:300px;justify-content:space-between;padding:18px 28px;font-size:15px}
.used-machine-banner__note{font-size:12px;color:var(--color-text-placeholder)}

/* ---------- Flow ---------- */
.flow-section{padding:var(--sec-pad) 0}
.flow-grid-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 64px;border-top:2px solid var(--color-navy)}
.flow-grid-item{display:flex;gap:24px;align-items:flex-start;padding:24px 0;border-bottom:1px solid var(--color-border-card)}
.flow-grid-item__number{flex:none;width:44px;font:700 22px/1.3 var(--font-en);color:var(--color-primary)}
.flow-section__note{margin-top:24px;font-size:13px;line-height:1.8;color:var(--color-text-placeholder)}
.flow-grid-item__content{display:flex;flex-direction:column;gap:4px}
.flow-grid-item__title{font:700 17px/1.5 var(--font-jp)}
.flow-grid-item__text{font-size:14px;line-height:1.8;color:var(--color-text-muted)}

/* ---------- Support ---------- */
.support-section{padding:var(--sec-pad) 0;border-top:1px solid var(--color-border-card)}
.support-section__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.support-section__content{display:flex;flex-direction:column;gap:16px}
.support-section__label{font:700 12px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.support-section__title{position:relative;padding-bottom:18px;font:700 28px/1.5 var(--font-jp);letter-spacing:.03em}
.support-section__title::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--color-primary)}
.support-section__text{display:flex;flex-direction:column;gap:12px;max-width:560px;font-size:15px;line-height:2}
.support-section__cta{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.support-section__cta .btn{align-self:flex-start;padding:14px 28px;font-size:14px}
.support-section__note{font-size:12px;line-height:1.8;color:var(--color-text-placeholder)}
.support-section__image .img-placeholder{filter:saturate(.75)}

/* ---------- Machine Doctor ---------- */
.machine-doctor{padding:var(--sec-pad) 0;border-top:1px solid var(--color-border-card)}
.machine-doctor__inner{position:relative;display:flex;flex-direction:column;gap:16px;padding:64px;border:1px solid var(--color-border-card)}
.machine-doctor__label{font:700 12px var(--font-en);letter-spacing:.12em;color:var(--color-primary)}
.machine-doctor__title{position:relative;padding-bottom:18px;font:700 32px/1.5 var(--font-jp);letter-spacing:.04em}
.machine-doctor__title::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--color-primary)}
.machine-doctor__catch{position:relative;max-width:640px;font:700 22px/1.6 var(--font-jp);color:var(--color-navy)}
.machine-doctor__lead{display:flex;flex-direction:column;gap:12px;max-width:760px;font-size:15px;line-height:2}
.machine-doctor__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:36px;border:1px solid var(--color-border-card);border-radius:4px;overflow:hidden}
.machine-doctor__step{display:flex;flex-direction:column;gap:10px;padding:28px}
.machine-doctor__step+.machine-doctor__step{border-left:1px solid var(--color-border-card)}
.machine-doctor__step-title{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:2px solid var(--color-primary);font:700 22px/1.4 var(--font-jp);color:var(--color-navy)}
.machine-doctor__step-icon{flex:none;width:30px;height:30px}
.machine-doctor__step-text{font-size:14px;line-height:1.9}

/* 右上の装飾イラスト（聴診ギア＋スパナ×ドライバー） */
.machine-doctor__deco{pointer-events:none}
.machine-doctor__deco-main{position:absolute;top:28px;right:28px;width:190px;height:190px}
.machine-doctor__deco-sub{position:absolute;top:232px;right:180px;width:96px;height:96px}
.md-icon-navy{stroke:var(--color-navy)}
.md-icon-green{stroke:var(--color-primary)}
.md-icon-green-fill{fill:var(--color-primary)}

/* ---------- Tel Banner ---------- */
.tel-banner{padding:0 0 var(--sec-pad)}
.tel-banner__inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px 40px;padding:32px 48px;border:1px solid var(--color-border-card)}
.tel-banner__text{font:500 16px/1.6 var(--font-jp);color:var(--color-navy)}
.tel-banner__tel{font:700 32px/1.2 var(--font-en);letter-spacing:.04em;color:var(--color-navy)}
.tel-banner__tel::before{content:"TEL";margin-right:12px;font-size:14px;letter-spacing:.12em;color:var(--color-primary)}

/* ---------- Application ---------- */
.application-section{padding:var(--sec-pad) 0;border-top:1px solid var(--color-border-card)}
.tel-banner+.application-section{border-top:0}
.application-list{display:flex;flex-direction:column;gap:24px}
.application-list__items{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 48px;border-top:2px solid var(--color-navy)}
.application-list__items li{position:relative;padding:16px 0 16px 22px;border-bottom:1px solid var(--color-border-card);font-size:15px;line-height:1.7}
.application-list__items li::before{content:"";position:absolute;left:0;top:29px;width:10px;height:1px;background:var(--color-primary)}
.application-list__note{font-size:13px;line-height:1.8;color:var(--color-text-placeholder)}

/* ---------- Related Services ---------- */
.related-services{padding:var(--sec-pad) 0;border-top:1px solid var(--color-border-card)}
.related-services__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.related-service-card{display:flex;flex-direction:column;border:1px solid var(--color-border-card);color:var(--color-navy)}
.related-service-card:hover{border-color:var(--color-navy);color:var(--color-navy)}
.related-service-card__image{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--color-photo-placeholder);border-bottom:1px solid var(--color-border-card);font:500 11px ui-monospace,Menlo,monospace;color:var(--color-text-placeholder);transition:opacity .2s}
.related-service-card:hover .related-service-card__image{opacity:.85}
.related-service-card__body{flex:1;display:flex;flex-direction:column;gap:6px;padding:20px}
.related-service-card__title{font:700 16px/1.5 var(--font-jp)}
.related-service-card__desc{font-size:13px;line-height:1.7;color:var(--color-text-placeholder)}
.related-service-card__link{margin-top:auto;padding-top:10px;font:700 12px/1.5 var(--font-en);letter-spacing:.1em;color:var(--color-primary)}

/* ---------- 写真枠: ラッパーが比率とサイズを決める（テキスト量に合わせた比率） ---------- */
.service-hero__image,.feature-block__image,.support-section__image{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-md)}
.service-hero__image{aspect-ratio:4/3}
.feature-block__image,.support-section__image{aspect-ratio:3/2}
.service-hero__image>*,.feature-block__image>*,.support-section__image>*{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto!important;min-height:0!important;object-fit:cover}
.feature-block__image .img-placeholder,.service-hero__image .img-placeholder,.support-section__image .img-placeholder{border-radius:0;border:0}
.service-hero__image,.feature-block__image,.support-section__image{max-height:440px}
.service-hero__image{aspect-ratio:5/4}
