/* サービス詳細ページ共通 */
.dh{padding-bottom:120px}
.dh-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:end}
.dh .tagline{font-size:clamp(22px,2.4vw,30px);font-weight:900;color:var(--ink);line-height:1.6;margin-top:30px}
.dh .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.dh-act{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.dh-act .btn{height:54px;padding:0 28px}
@media (max-width:960px){.dh-grid{grid-template-columns:1fr}}

.anchor{position:sticky;top:var(--hh);z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.anchor .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.anchor a{padding:16px 16px;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s}
.anchor a:hover,.anchor a.on{color:var(--teal);border-color:var(--teal)}

/* challenges */
.ch{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ch div{padding:32px 28px;border-radius:20px;background:#fff;border:1px solid var(--line);position:relative}
.ch div::before{content:"";position:absolute;left:28px;top:-1px;width:40px;height:3px;background:var(--coral);border-radius:0 0 3px 3px}
.ch i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--coral);letter-spacing:.12em}
.ch b{display:block;font-size:18px;color:var(--ink);margin:10px 0 10px;line-height:1.6}
.ch p{font-size:14px;line-height:1.95;color:var(--text)}
.ch-arrow{display:flex;flex-direction:column;align-items:center;gap:10px;margin:56px 0 0;font-family:var(--mono);font-size:12px;color:var(--teal);letter-spacing:.14em}
.ch-arrow::before{content:"";width:1px;height:56px;background:linear-gradient(var(--line),var(--teal))}
.solve{margin-top:24px;text-align:center;font-size:clamp(24px,3vw,38px);font-weight:900;color:var(--ink);line-height:1.6}
@media (max-width:900px){.ch{grid-template-columns:1fr}}

/* features grid */
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.feat > div{background:#fff;padding:34px 28px 30px;position:relative;transition:background .3s}
.feat > div:hover{background:var(--teal-50)}
.feat .ix{font-family:var(--mono);font-size:11px;color:var(--teal);letter-spacing:.12em}
.feat .ic{width:40px;height:40px;border-radius:10px;border:1px solid var(--teal-100);background:#fff;margin:18px 0 18px;display:grid;place-items:center}
.feat .ic::before{content:"";width:12px;height:12px;background:var(--teal);border-radius:3px;transform:rotate(45deg);transition:transform .4s}
.feat > div:hover .ic::before{transform:rotate(225deg)}
.feat > div:nth-child(4n) .ic::before{background:var(--coral)}
.feat h4{font-size:17px;margin-bottom:8px}
.feat h4 small{display:block;font-family:var(--en);font-size:11px;color:var(--muted);font-weight:400;letter-spacing:.06em;margin-bottom:2px}
.feat p{font-size:13.5px;line-height:1.9}
.feat .na{background:repeating-linear-gradient(135deg,#F4F8FA 0 8px,#fff 8px 16px)}
.feat .na p{color:var(--muted)}
@media (max-width:1000px){.feat{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.feat{grid-template-columns:1fr}}

/* steps (vertical timeline) */
.tl{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}
.tl > div{position:relative;padding:30px 26px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.tl > div::after{content:"";position:absolute;right:-16px;top:50%;width:12px;height:12px;border-top:1.5px solid var(--teal);border-right:1.5px solid var(--teal);transform:translateY(-50%) rotate(45deg);z-index:1}
.tl > div:last-child::after{display:none}
.tl .p{font-family:var(--en);font-size:12px;letter-spacing:.12em;color:var(--teal);font-weight:600}
.tl b{display:block;font-size:18px;color:var(--ink);margin:10px 0 8px}
.tl p{font-size:13.5px;line-height:1.9}
.tl .d{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px;width:100%}
@media (max-width:960px){.tl{grid-template-columns:1fr 1fr}.tl > div::after{display:none}}
@media (max-width:560px){.tl{grid-template-columns:1fr}}

/* split benefit */
.ben{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.ben > div{padding:40px 32px 20px 0;border-right:1px solid var(--line)}
.ben > div:not(:first-child){padding-left:32px}
.ben > div:last-child{border-right:0}
.ben .k{font-family:var(--en);font-size:56px;font-weight:300;color:var(--teal);letter-spacing:-.03em;line-height:1}
.ben .k small{font-size:20px;margin-left:4px}
.ben b{display:block;font-size:17px;color:var(--ink);margin:18px 0 8px}
.ben p{font-size:14px;line-height:1.9}
@media (max-width:900px){.ben{grid-template-columns:1fr}.ben > div{border-right:0;border-bottom:1px solid var(--line);padding:32px 0!important}}

.note{font-size:12px;color:var(--muted);margin-top:18px}
