/* =====================================================================
   nm-components.css — 下層ページ共通コンポーネント（トップでも一部使用）
   ===================================================================== */

/* ---------- utilities ---------- */
.nm-h2{font-size:clamp(24px,2.6vw,32px);margin-bottom:18px !important}
.nm-lede{color:var(--nm-ink-2);margin-bottom:24px !important}
.nm-center{text-align:center}
.nm-mt{margin-top:18px !important}
.nm-mt-lg{margin-top:56px !important}

/* ---------- breadcrumb ---------- */
.nm-crumb{font-size:12px;color:var(--nm-ink-3);margin-bottom:28px}
.nm-crumb ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.nm-crumb li{display:flex;align-items:center;gap:6px}
.nm-crumb li + li::before{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);opacity:.6}
.nm-crumb a:hover{color:var(--nm-blue-deep);text-decoration:underline}

/* ---------- page hero ---------- */
.nm-phero{position:relative;padding:32px 0 80px;background:linear-gradient(180deg,var(--nm-bg-sky) 0%,#fff 100%);overflow:hidden}
.nm-phero::before{content:"";position:absolute;right:-160px;top:-200px;width:560px;height:560px;border-radius:50%;background:#fff;opacity:.7}
.nm-phero > .nm-wrap{position:relative}
.nm-phero__grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.nm-phero--img .nm-phero__grid{grid-template-columns:1.25fr 1fr}
.nm-phero__title{font-size:clamp(30px,3.8vw,48px);margin-bottom:18px}
.nm-phero__title em{font-style:normal;color:var(--nm-blue);background:linear-gradient(transparent 68%,oklch(0.88 0.16 95 / .7) 68%)}
.nm-phero__lead{font-family:var(--nm-head);font-weight:700;font-size:clamp(17px,1.6vw,20px);color:var(--nm-ink);margin-bottom:14px !important;max-width:720px}
.nm-phero__body{color:var(--nm-ink-2);max-width:720px}
.nm-phero__tags{margin-top:24px}
.nm-phero__tags li{background:#fff;border:1px solid oklch(0.62 0.16 250 / .25)}
.nm-phero__tags li.is-key{border-color:transparent}
.nm-phero__cta{margin-top:32px}
.nm-phero__visual img{width:100%;max-width:440px;margin:0 auto}

/* ---------- cards ---------- */
.nm-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.nm-cards--2{grid-template-columns:repeat(2,1fr)}
.nm-cards--4{grid-template-columns:repeat(4,1fr)}
.nm-card{background:#fff;border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:32px 28px}
.nm-sec--soft .nm-card{border-color:transparent}
a.nm-card{display:block;transition:border-color .15s,transform .15s}
a.nm-card:hover{border-color:var(--nm-blue);transform:translateY(-2px)}
.nm-thanks p a.nm-link{display:inline}
.nm-thanks p a.nm-link::after{content:none}
.nm-card__no{font-family:var(--nm-num);font-weight:700;color:var(--nm-blue);font-size:13px;letter-spacing:.14em;margin-bottom:12px}
.nm-card h3{font-size:20px;margin-bottom:10px}
.nm-card p{font-size:15px;color:var(--nm-ink-2)}
.nm-card__price{font-family:var(--nm-num);font-weight:700;font-size:22px;color:var(--nm-blue-deep);margin:4px 0 8px}
.nm-card__price small{font-family:var(--nm-jp);font-size:12px;color:var(--nm-ink-3);font-weight:500;margin-left:4px}

/* ---------- service block (サービス一覧) ---------- */
.nm-svcblock{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.nm-svcblock--rev .nm-svcblock__visual{order:2}
.nm-svcblock__visual{position:relative}
.nm-svcblock__visual::before{content:"";position:absolute;inset:8% 6% 6% 6%;background:var(--nm-bg-sky);border-radius:50%}
.nm-sec--soft .nm-svcblock__visual::before{background:#fff}
.nm-svcblock__visual img{position:relative;width:100%;max-width:480px;margin:0 auto}
.nm-svcblock h2{font-size:clamp(26px,2.8vw,36px);margin-bottom:8px}
.nm-svcblock__price{font-family:var(--nm-head);font-weight:700;font-size:16px;color:var(--nm-ink-2);margin-bottom:18px !important}
.nm-svcblock__price b{font-family:var(--nm-num);font-size:30px;color:var(--nm-blue);margin:0 2px}
.nm-svcblock > div > p{color:var(--nm-ink-2);margin-bottom:24px}
.nm-svcblock .nm-check{margin-bottom:28px}
.nm-svcblock__act{display:flex;flex-wrap:wrap;align-items:center;gap:22px}

/* ---------- media cards ---------- */
.nm-media{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.nm-media--3{grid-template-columns:repeat(3,1fr)}
.nm-media__card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:24px 22px;transition:transform .15s,box-shadow .15s,border-color .15s}
.nm-media__card:hover{transform:translateY(-3px);border-color:oklch(0.62 0.16 250 / .4);box-shadow:0 18px 36px -24px rgba(22,32,46,.45)}
.nm-media__icon{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;background:var(--nm-bg-soft);margin-bottom:6px}
.nm-media__icon img{width:30px;height:30px;object-fit:contain}
.nm-media__card b{font-family:var(--nm-head);font-size:17px}
.nm-media__desc{font-size:13px;color:var(--nm-ink-2);flex:1}
.nm-media__more{font-size:13px;font-weight:700;color:var(--nm-blue-deep);margin-top:6px}
.nm-media__more::after{content:" →";font-family:var(--nm-num)}

/* ---------- numbered list (提供内容) ---------- */
.nm-numlist{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;counter-reset:n}
.nm-numlist li{counter-increment:n;display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--nm-line);border-radius:12px;padding:16px 20px;font-weight:700;font-family:var(--nm-head)}
.nm-sec--soft .nm-numlist li{border-color:transparent}
.nm-numlist li::before{content:counter(n,decimal-leading-zero);font-family:var(--nm-num);color:var(--nm-blue);font-size:14px;letter-spacing:.06em;min-width:24px}

/* ---------- industry ---------- */
.nm-industry{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:center;background:#fff;border:1px solid var(--nm-line);border-radius:20px;padding:36px 40px}
.nm-industry h3{font-size:20px;margin-bottom:6px}
.nm-industry p{font-size:14px;color:var(--nm-ink-2)}
.nm-industry .nm-tags li{font-size:14px;padding:8px 16px;background:var(--nm-bg-soft);color:var(--nm-ink)}

/* ---------- contract terms ---------- */
.nm-terms{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}

/* ---------- price table ---------- */
.nm-pcard{background:#fff;border-radius:var(--nm-radius);padding:36px 32px 32px;border:1px solid var(--nm-line)}
.nm-pcard__no{font-family:var(--nm-num);font-weight:700;color:var(--nm-blue);font-size:14px;letter-spacing:.14em;margin-bottom:10px}
.nm-pcard h3{font-size:22px;margin-bottom:6px}
.nm-pcard__from{font-size:14px;color:var(--nm-ink-2);margin-bottom:20px !important}
.nm-pcard__from b{font-family:var(--nm-num);font-size:30px;color:var(--nm-blue);margin:0 2px}
.nm-pcard .nm-tags{margin-top:20px}
.nm-pcard__note{font-size:13px;color:var(--nm-ink-3);margin-top:14px !important}
.nm-ptable{width:100%;border-collapse:collapse;font-size:15px}
.nm-ptable th,.nm-ptable td{padding:12px 6px;border-bottom:1px solid var(--nm-line);text-align:left;vertical-align:top;background:none}
.nm-ptable thead th{font-size:12px;color:var(--nm-ink-3);font-weight:700;letter-spacing:.06em;border-bottom-width:2px}
.nm-ptable td:nth-child(2),.nm-ptable th:nth-child(2){text-align:right;font-weight:700;white-space:nowrap}
.nm-ptable--3 td:nth-child(3){font-size:13px;color:var(--nm-ink-2);padding-left:24px}
.nm-ptable--3 th:nth-child(3){padding-left:24px}

/* ---------- calc examples ---------- */
.nm-calc{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.nm-calc__card{background:#fff;border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:28px}
.nm-sec--soft .nm-calc__card{border-color:transparent}
.nm-calc__card h3{font-size:16px;margin-bottom:14px}
.nm-calc__row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--nm-line);font-size:14px;color:var(--nm-ink-2)}
.nm-calc__total{display:flex;justify-content:space-between;gap:12px;padding-top:12px;font-weight:700;font-family:var(--nm-head)}
.nm-calc__total span:last-child{font-family:var(--nm-num);font-size:22px;color:var(--nm-blue-deep)}

/* ---------- plain list ---------- */
.nm-list{display:grid;gap:10px}
.nm-list li{position:relative;padding-left:22px;color:var(--nm-ink-2)}
.nm-list li::before{content:"";position:absolute;left:4px;top:.72em;width:8px;height:8px;border-radius:50%;background:var(--nm-blue)}

/* ---------- steps ---------- */
.nm-steps{position:relative;counter-reset:s}
.nm-steps::before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;background:repeating-linear-gradient(var(--nm-blue) 0 6px,transparent 6px 12px);opacity:.5}
.nm-steps li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:24px;padding:16px 0;counter-increment:s}
.nm-steps li::before{content:counter(s,decimal-leading-zero);width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--nm-blue);color:var(--nm-blue);font-family:var(--nm-num);font-weight:700;font-size:18px;display:grid;place-items:center;position:relative;z-index:1}
.nm-steps li.is-first::before,.nm-steps--hl li:first-child::before{background:var(--nm-orange);border-color:var(--nm-orange);color:#fff}
.nm-steps h3{font-size:20px;margin:6px 0 6px}
.nm-steps p{color:var(--nm-ink-2);font-size:15px}
.nm-steps .nm-steps__badge{display:inline-block;margin-left:12px;font-size:12px;font-weight:700;color:var(--nm-orange-deep);background:oklch(0.70 0.17 45 / .12);padding:2px 10px;border-radius:999px;vertical-align:3px;font-family:var(--nm-jp)}
.nm-steps--grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.nm-steps--grid::before{display:none}
.nm-steps--grid li{grid-template-columns:1fr;gap:14px;background:#fff;border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:26px 22px}
.nm-sec--soft .nm-steps--grid li{border-color:transparent}
.nm-steps--grid li::before{width:44px;height:44px;font-size:15px}
.nm-steps--grid h3{margin:0 0 4px;font-size:17px}

.nm-flow-grid{display:grid;grid-template-columns:5fr 6fr;gap:64px;align-items:center}
.nm-flow-visual img{width:100%;max-width:460px;margin:0 auto}

/* ---------- timeline table ---------- */
.nm-tl{overflow-x:auto;background:#fff;border-radius:var(--nm-radius);border:1px solid var(--nm-line)}
.nm-sec--soft .nm-tl{border-color:transparent}
.nm-tl table{width:100%;min-width:560px;border-collapse:collapse;font-size:15px}
.nm-tl th,.nm-tl td{padding:14px 18px;border-bottom:1px solid var(--nm-line);text-align:center;background:none}
.nm-tl thead th{font-size:12px;color:var(--nm-ink-3);letter-spacing:.06em}
.nm-tl td:nth-child(2),.nm-tl th:nth-child(2){text-align:left;font-weight:700;font-family:var(--nm-head)}
.nm-tl tr:last-child td{border-bottom:0}
.nm-tl__n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--nm-bg-sky);color:var(--nm-blue-deep);font-family:var(--nm-num);font-weight:700;font-size:13px}
.nm-tl__m{font-size:16px;color:var(--nm-blue)}
.nm-tl__m--both{color:var(--nm-orange)}
.nm-tl__m--sub{color:var(--nm-blue-deep)}
.nm-tl__m--support{color:var(--nm-ink-3)}
.nm-tl__m--none{color:var(--nm-line)}
.nm-tl-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px;font-size:13px;color:var(--nm-ink-2)}

/* ---------- info table (会社) ---------- */
.nm-info{width:100%;border-collapse:collapse;font-size:15px;background:#fff;border-radius:var(--nm-radius);overflow:hidden}
.nm-info th,.nm-info td{padding:18px 24px;border-bottom:1px solid var(--nm-line);text-align:left;vertical-align:top;background:none}
.nm-info tr:last-child th,.nm-info tr:last-child td{border-bottom:0}
.nm-info th{width:180px;font-weight:700;color:var(--nm-ink-2);font-size:14px;background:var(--nm-bg-soft)}
.nm-info ol{list-style:decimal;padding-left:1.4em}

/* ---------- 2col layout ---------- */
.nm-2col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.nm-2col--top{align-items:start}
.nm-2col__photo{border-radius:20px;overflow:hidden}
.nm-2col__photo img{width:100%;height:100%;object-fit:cover}
.nm-map{width:100%;aspect-ratio:16/10;border:0;border-radius:var(--nm-radius);display:block}

/* ---------- form page ---------- */
.nm-formbox{max-width:760px;margin:0 auto;background:#fff;border-radius:24px;padding:48px;border:1px solid var(--nm-line);box-shadow:0 30px 80px -50px rgba(22,32,46,.35)}
.nm-formbox .nm-form-steps{display:flex;gap:8px;margin-bottom:28px;font-size:13px;font-weight:700;color:var(--nm-ink-3)}
.nm-formbox .nm-form-steps span{flex:1;padding-top:10px;border-top:3px solid var(--nm-line)}
.nm-formbox .nm-form-steps span.is-on{color:var(--nm-blue-deep);border-color:var(--nm-blue)}
.nm-reqlayout{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}
.nm-reqlayout .nm-formbox{max-width:none;margin:0}
.nm-reqinfo h2{font-size:clamp(24px,2.4vw,30px);margin-bottom:14px}
.nm-reqinfo > p{color:var(--nm-ink-2);margin-bottom:24px}
.nm-reqinfo .nm-check{margin-top:24px}

/* ---------- thanks ---------- */
.nm-thanks{max-width:720px;margin:0 auto;text-align:center}
.nm-thanks__ok{width:80px;height:80px;border-radius:50%;background:var(--nm-bg-sky);margin:0 auto 28px;display:grid;place-items:center}
.nm-thanks__ok::after{content:"";width:30px;height:17px;border-left:4px solid var(--nm-blue);border-bottom:4px solid var(--nm-blue);transform:rotate(-45deg) translate(2px,-3px)}
.nm-thanks h1{font-size:clamp(26px,3vw,36px);margin-bottom:18px}
.nm-thanks p{color:var(--nm-ink-2)}
.nm-thanks__next{margin-top:48px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left}
.nm-thanks__next a{display:block;background:#fff;border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:22px 24px;transition:border-color .15s}
.nm-thanks__next a:hover{border-color:var(--nm-blue)}
.nm-thanks__next b{display:block;font-family:var(--nm-head);font-size:16px;margin-bottom:4px}
.nm-thanks__next span{font-size:13px;color:var(--nm-ink-2)}

/* ---------- privacy / prose ---------- */
.nm-prose{max-width:820px;margin:0 auto;font-size:15px;color:var(--nm-ink-2)}
.nm-prose > * + *{margin-top:1.2em}
.nm-prose h2{font-size:20px;color:var(--nm-ink);margin-top:2.4em !important;padding-bottom:10px;border-bottom:2px solid var(--nm-line);display:flex;gap:12px;align-items:baseline}
.nm-prose h2 .nm-prose__n{font-family:var(--nm-num);color:var(--nm-blue);font-size:15px}
.nm-prose h3{font-size:17px;color:var(--nm-ink);margin-top:1.8em !important}
.nm-prose ul{list-style:disc;padding-left:1.4em}
.nm-prose ol{list-style:decimal;padding-left:1.4em}
.nm-prose a{color:var(--nm-blue-deep);text-decoration:underline}
.nm-prose table{width:100%;border-collapse:collapse}
.nm-prose th,.nm-prose td{border:1px solid var(--nm-line);padding:10px 14px;text-align:left}
.nm-prose th{background:var(--nm-bg-soft);color:var(--nm-ink)}
.nm-prose img{max-width:100%;height:auto;border-radius:8px}
.nm-contactbox{margin-top:40px !important;background:var(--nm-bg-soft);border-radius:var(--nm-radius);padding:24px 28px}
.nm-contactbox dl{display:grid;grid-template-columns:200px 1fr;gap:10px 20px;margin:0}
.nm-contactbox dt{font-weight:700;color:var(--nm-ink)}
.nm-contactbox dd{margin:0}

/* ---------- 404 ---------- */
.nm-404{text-align:center;padding:120px 0}
.nm-404__n{font-family:var(--nm-num);font-weight:700;font-size:96px;color:var(--nm-bg-sky);-webkit-text-stroke:2px var(--nm-blue);line-height:1;margin-bottom:24px}
.nm-404 h1{font-size:28px;margin-bottom:14px}
.nm-404 p{color:var(--nm-ink-2);margin-bottom:32px}

@media (max-width:960px){
  .nm-phero{padding-bottom:56px}
  .nm-phero--img .nm-phero__grid,.nm-svcblock,.nm-2col,.nm-reqlayout,.nm-flow-grid{grid-template-columns:1fr;gap:36px}
  .nm-flow-visual img{max-width:320px}
  .nm-phero__visual img{max-width:280px}
  .nm-svcblock--rev .nm-svcblock__visual{order:0}
  .nm-cards,.nm-cards--4,.nm-cards--2,.nm-calc,.nm-terms,.nm-numlist{grid-template-columns:1fr}
  .nm-media,.nm-media--3{grid-template-columns:repeat(2,1fr)}
  .nm-steps--grid{grid-template-columns:1fr 1fr}
  .nm-industry{grid-template-columns:1fr;padding:28px 24px;gap:20px}
  .nm-info th{width:110px;padding:14px 16px}
  .nm-info td{padding:14px 16px}
  .nm-formbox{padding:32px 22px}
  .nm-thanks__next{grid-template-columns:1fr}
  .nm-contactbox dl{grid-template-columns:1fr}
  .nm-ptable--3 thead{display:none}
  .nm-ptable--3 tr{display:grid;grid-template-columns:1fr auto;padding:12px 0;border-bottom:1px solid var(--nm-line)}
  .nm-ptable--3 td{border:0;padding:2px 0}
  .nm-ptable--3 td:nth-child(3){grid-column:1 / -1;padding:6px 0 0}
}
@media (max-width:560px){
  .nm-media,.nm-media--3,.nm-steps--grid{grid-template-columns:1fr}
}
