/* =====================================================================
   代理店募集 /new/partner/
   見出し帯(申込みの導線・製品群の棚)  1. 取引のメリット(数字・支援)  2. 扱える製品  3. お取引の条件(+申込みの案内)
   4. 取引開始までの流れ  5. 申込書
   流れの部品(.flow。トップのパートナー支援と同じ段の流れ・ロックオン)は flow.css
   ===================================================================== */

/* 1. 取引のメリット ---------------------------------------------------- */
.ptn-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.ptn-stat { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; padding: 20px 12px 20px 0; }
.ptn-stat:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--line-2); }
.ptn-stat:nth-child(n+3) { border-top: 1px solid var(--line-2); }
.ptn-stat__label { font-size: var(--fs-sm); color: var(--ink-2); line-height: 1.6; word-break: auto-phrase; }
.ptn-stat__value { display: flex; flex-wrap: wrap; align-items: baseline; }
.ptn-stat__num { font-family: var(--font-en); font-weight: 300; font-size: clamp(2.25rem, 1.5rem + 2.2vw, 3rem); line-height: 1; letter-spacing: -.04em; color: var(--navy); font-variant-numeric: tabular-nums; }
.ptn-stat__suffix { margin-left: 3px; font-family: var(--font-en); font-weight: 500; font-size: 1.25rem; color: var(--blue); }
.ptn-stat__unit { flex-basis: 100%; margin-top: 8px; font-family: var(--font-en); font-size: .75rem; font-weight: 800; letter-spacing: var(--track-label); color: var(--blue); }
.ptn-stats__note { margin-top: 12px; font-size: .875rem; color: var(--muted); }
@media (min-width: 900px) {
  .ptn-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ptn-stat { padding: 28px 24px 24px; }
  .ptn-stat:first-child { padding-left: 0; }
  .ptn-stat + .ptn-stat { border-left: 1px solid var(--line-2); }
  .ptn-stat:nth-child(n+3) { border-top: 0; }
}
.ptn-benefits__grid { display: grid; gap: 12px; margin-top: clamp(32px, 3.4vw, 48px); }
.ptn-benefit { display: grid; grid-template-columns: 48px minmax(0, 1fr); grid-template-areas: "icon title" "icon text"; column-gap: 18px; align-content: start; padding: 24px 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; }
.ptn-benefit__icon { grid-area: icon; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--blue-tint); color: var(--blue); }
.ptn-benefit__icon .icon { width: 24px; height: 24px; stroke-width: 1.4; }
.ptn-benefit__title { grid-area: title; font-size: var(--fs-h4); line-height: 1.5; word-break: auto-phrase; }
.ptn-benefit__text { grid-area: text; margin-top: 6px; font-size: var(--fs-sm); line-height: 1.9; color: var(--ink-2); }
.ptn-why__more { margin-top: 24px; }
@media (min-width: 768px) { .ptn-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1100px) { .ptn-benefits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }

/* 2. 扱える製品 --------------------------------------------------------
   製品の写真は見出し帯の棚で見せるので、ここは罫線の一覧(番号・英字・群名|説明と仕様の内訳|件数|矢印)。各行は製品ラインナップのその製品群へ。
   900px以上は1行に横並び、899px以下は群名・件数・矢印の下に説明 */
.ptn-lines { border-top: 1px solid var(--line-2); }
.ptn-line { border-bottom: 1px solid var(--line-2); }
.ptn-line__link {
  display: grid; grid-template-columns: minmax(0, 1fr) auto 44px; grid-template-areas: "head count go" "desc desc desc";
  align-items: center; gap: 6px 16px; padding: 18px 8px; transition: background-color var(--dur-1) var(--ease);
}
.ptn-line__head { grid-area: head; display: grid; gap: 2px; min-width: 0; }
.ptn-line__kicker { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; font-family: var(--font-en); font-size: .75rem; font-weight: 700; line-height: 1.6; letter-spacing: var(--track-label); color: var(--muted); }
.ptn-line__num { color: var(--blue); }
.ptn-line__name { font-family: var(--font-head); font-feature-settings: "palt"; font-size: clamp(1.25rem, 1rem + .7vw, 1.625rem); font-weight: 700; line-height: 1.45; letter-spacing: var(--track-head); text-wrap: balance; transition: color var(--dur-1) var(--ease); }
.ptn-line__desc { grid-area: desc; display: grid; gap: 2px; min-width: 0; font-size: var(--fs-sm); line-height: 1.8; color: var(--ink-2); }
.ptn-line__spec { color: var(--muted); }
.ptn-line__spec b { font-family: var(--font-en); font-weight: 800; color: var(--navy); }
/* 画素数と機能の内訳の区切り(見た目だけ。読み上げでは読まない) */
.ptn-line__part + .ptn-line__part::before { content: "／"; content: "／" / ""; margin: 0 8px 0 4px; color: var(--line-2); }
.ptn-line__count { grid-area: count; font-family: var(--font-en); font-size: .75rem; font-weight: 700; letter-spacing: var(--track-label); color: var(--muted); white-space: nowrap; }
.ptn-line__count b { margin-right: 2px; font-size: 1.25rem; font-weight: 800; letter-spacing: var(--track-head); color: var(--navy); }
.ptn-line__go { grid-area: go; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); background: #fff; color: var(--blue); transition: background-color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease); }
.ptn-line__go .icon { width: 18px; height: 18px; transition: transform var(--dur-2) var(--ease-out); }
.ptn-line__link:focus-visible { outline-offset: -2px; }
@media (hover: hover) and (pointer: fine) {
  .ptn-line__link:hover { background: #fff; }
  .ptn-line__link:hover .ptn-line__name { color: var(--blue); }
  .ptn-line__link:hover .ptn-line__go { background: var(--blue); border-color: var(--blue); color: #fff; }
  .ptn-line__link:hover .ptn-line__go .icon { transform: translateX(2px); }
}
.ptn-line__link:active { background: #fff; }
@media (min-width: 900px) {
  .ptn-line__link { grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr) 128px 44px; grid-template-areas: "head desc count go"; gap: 16px 32px; min-height: 104px; padding: 20px 12px; }
  .ptn-line__count { text-align: right; }
}
/* スマホ: 英字の名前は省き(番号だけ)、矢印を小さく */
@media (max-width: 599px) {
  .ptn-line__link { grid-template-columns: minmax(0, 1fr) auto 40px; gap: 6px 12px; padding: 16px 4px; }
  .ptn-line__en { display: none; }
  .ptn-line__go { width: 40px; height: 40px; }
}
.ptn-products__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: clamp(28px, 3vw, 40px); }

/* 3. お取引の条件 -----------------------------------------------------
   仕様表の形(項目 / 値の定義リスト。枠のカードにしない = 01 の白いカードと見た目を分ける)。値は大きな字(数字は英数字の字形)、補足は小さく。
   1200px以上は、左の列に見出しと説明、右に仕様表。640px以上は「項目 | 値 | 補足」の3つの列、639px以下は「項目 … 値」の1行の下に補足 */
.ptn-terms__layout { display: grid; gap: 0 clamp(48px, 5.6vw, 96px); }
.ptn-spec { border-top: 2px solid var(--navy); }
.ptn-spec__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; min-height: 64px; padding: 14px 4px; border-bottom: 1px solid var(--line-2); }
.ptn-spec__key { display: grid; gap: 2px; min-width: 0; }
.ptn-spec__en { font-family: var(--font-en); font-size: .75rem; font-weight: 700; line-height: 1.4; letter-spacing: var(--track-label); color: var(--blue); }
.ptn-spec__name { font-family: var(--font-head); font-feature-settings: "palt"; font-size: var(--fs-md); font-weight: 700; line-height: 1.5; letter-spacing: var(--track-head); }
.ptn-spec__body { display: contents; }
.ptn-spec__value { display: inline-flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: 0 4px; color: var(--navy); white-space: nowrap; }
.ptn-spec__num { font-family: var(--font-en); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.25rem); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ptn-spec__word { font-family: var(--font-head); font-feature-settings: "palt"; font-size: clamp(1.25rem, 1.08rem + .7vw, 1.625rem); font-weight: 700; line-height: 1.3; letter-spacing: var(--track-head); }
.ptn-spec__unit { font-family: var(--font-head); font-feature-settings: "palt"; font-size: var(--fs-sm); font-weight: 700; letter-spacing: var(--track-head); color: var(--ink-2); }
.ptn-spec__note { grid-column: 1 / -1; font-size: var(--fs-sm); line-height: 1.75; color: var(--ink-2); text-wrap: pretty; }
@media (min-width: 640px) {
  .ptn-spec__row { grid-template-columns: minmax(0, 11em) minmax(0, 8.5rem) minmax(0, 1fr); gap: 4px clamp(20px, 2.4vw, 32px); padding: 16px 8px; }
  .ptn-spec__value { justify-content: flex-start; }
  .ptn-spec__note { grid-column: auto; }
}
@media (min-width: 1200px) {
  .ptn-terms__layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); align-items: start; }
  .ptn-terms__layout .sec-head { position: sticky; top: calc(var(--header-h) + 32px); margin-bottom: 0; }
  .ptn-spec__row { grid-template-columns: minmax(0, 9.5em) minmax(0, 8.5rem) minmax(0, 1fr); }
}

/* 4. 取引開始までの流れ -------------------------------------------------
   濃色の面に中央の見出し。段の流れ(.flow--text)はトップのパートナー支援と同じロックオン(flow.css) */
.ptn-flow { overflow: hidden; overflow: clip; isolation: isolate; background: radial-gradient(48% 70% at 92% 6%, rgba(29, 130, 230, .24), transparent 70%), radial-gradient(40% 60% at 0% 100%, rgba(0, 104, 196, .16), transparent 70%), var(--navy-deep); }
.ptn-flow :focus-visible { outline-color: var(--sky); }
.ptn-flow .sec-head--center .sec-head__lead { max-width: 30em; }
/* スマホは中央そろえをやめて左寄せ(説明が4行になり、中央そろえだと行頭がそろわず読みにくい) */
@media (max-width: 599px) { .ptn-flow .sec-head--center { text-align: left; justify-items: start; } }
.ptn-flow .flow__note { margin-top: clamp(8px, 1.6vw, 24px); padding-top: 24px; border-top: 1px solid var(--line-dark); }
.ptn-flow__actions { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: 24px; }
@media (max-width: 599px) { .ptn-flow__actions .btn { width: 100%; } }

/* 5. 申込書 ----------------------------------------------------------- */
.ptn-docs__inner { display: grid; gap: 32px 80px; }
.ptn-docs__title { font-size: var(--fs-h2); line-height: 1.4; }
.ptn-docs__lead { margin-top: 16px; color: var(--ink-2); line-height: 2; max-width: 30em; }
.ptn-docs__head .tlink { margin-top: 12px; }
.ptn-docs__list { display: grid; gap: 12px; align-content: start; }
.ptn-doc {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "icon title dl" "icon meta dl";
  align-items: center; gap: 2px 18px; padding: 20px 20px 20px 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff;
  transition: border-color var(--dur-1) var(--ease), box-shadow var(--dur-2) var(--ease);
}
.ptn-doc__icon { grid-area: icon; display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--radius); background: var(--surface-2); color: var(--navy); }
.ptn-doc__title { grid-area: title; font-family: var(--font-head); font-feature-settings: "palt"; font-weight: 700; font-size: var(--fs-h4); letter-spacing: var(--track-head); }
.ptn-doc__meta { grid-area: meta; font-family: var(--font-en); font-size: .875rem; color: var(--muted); }
.ptn-doc__dl { grid-area: dl; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border-radius: var(--radius); background: var(--navy); color: #fff; font-family: var(--font-head); font-feature-settings: "palt"; font-weight: 700; font-size: var(--fs-sm); transition: background-color var(--dur-1) var(--ease); }
.ptn-doc__dl .icon { width: 18px; height: 18px; }
@media (hover: hover) and (pointer: fine) { .ptn-doc:hover { border-color: var(--navy); box-shadow: var(--shadow-1); } .ptn-doc:hover .ptn-doc__dl { background: var(--blue); } }
.ptn-docs__empty { padding: 24px; border-radius: var(--radius-lg); background: var(--surface-2); color: var(--ink-2); }
@media (max-width: 599px) {
  .ptn-doc { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon title" "icon meta" "dl dl"; gap: 2px 14px; }
  .ptn-doc__dl { margin-top: 12px; justify-content: center; }
}
@media (min-width: 1024px) { .ptn-docs__inner { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; } }

/* 見出し帯 ------------------------------------------------------------
   説明文の下: お申込み・ご相談(主ボタン)、申込書のPDF、取引開始までの流れ(ips_site_masthead の actions)
   右側: 扱える製品群の棚(aside。各製品群は製品ラインナップへのリンク)。1023px以下は説明文の下に6つ並べた帯 */
.masthead__actions { margin-top: 8px; gap: 16px 28px; }
.ptn-mh-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 28px; }
.ptn-mh-links .tlink { font-size: var(--fs-sm); }
.ptn-mh-links .tlink__icon { width: 36px; height: 36px; }
/* 申込書(PDF)のリンク: 名前の後に種類とサイズ、丸の中はダウンロードのアイコン */
.ptn-dl, .ptn-jump { gap: 12px; }
.ptn-dl__meta { order: 3; font-family: var(--font-en); font-size: .75rem; font-weight: 600; letter-spacing: var(--track-head); color: var(--muted); white-space: nowrap; }
.tlink--light .ptn-dl__meta { color: var(--on-dark-2); }
/* 見出し帯・申込みの案内では、丸いアイコンを左に置いて縦に並べた時にそろえる */
.ptn-dl .tlink__icon, .ptn-jump .tlink__icon { order: -1; }
.ptn-dl:hover .tlink__icon .icon { transform: translateY(2px); }
/* ページ内の流れへ: 矢印を下向きに */
.ptn-jump .tlink__icon .icon { transform: rotate(90deg); }
.ptn-jump:hover .tlink__icon .icon { transform: rotate(90deg) translateX(2px); }

/* 棚: 不透明の面の中で製品画像を乗算する(白い地を面の色になじませる。面ごとに isolation で閉じる)。
   画像は製品の接地線(元画像の 86%)を面の下寄りに合わせて切り抜き、代表画像ごとの倍率(--s。content/partner.php の shelf_scale)を接地線を中心に掛ける */
.ptn-shelf { width: min(100%, 540px); margin-left: auto; }
.ptn-shelf__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ptn-shelf__grid > li { display: flex; }
.ptn-shelf__cell {
  position: relative; isolation: isolate; display: grid; grid-template-rows: auto 1fr; width: 100%; overflow: hidden;
  border-radius: var(--radius-lg); background: #fff; color: var(--ink);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 20px 36px -22px rgba(0, 0, 0, .7);
  transition: box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease-out);
}
.ptn-shelf__media { position: relative; display: block; aspect-ratio: 5 / 4; background: linear-gradient(180deg, #fff 0%, #f1f5f9 62%, #e4ebf2 100%); }
/* 接地の影(画像の下に敷き、乗算で製品の足元に落とす) */
.ptn-shelf__media::before { content: ""; position: absolute; left: 18%; right: 18%; top: 85.5%; height: 7%; border-radius: 50%; background: radial-gradient(closest-side, rgba(11, 30, 51, .2), rgba(11, 30, 51, 0)); }
.ptn-shelf__img {
  position: relative; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 75%;
  mix-blend-mode: multiply; transform: translateY(var(--lift, 0)) scale(var(--s, 1)); transform-origin: 50% 88.75%;
  transition: transform var(--dur-2) var(--ease-out);
}
.ptn-shelf__label { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name name" "count go"; align-content: start; align-items: center; column-gap: 8px; padding: 10px 10px 10px 14px; border-top: 1px solid var(--line); }
.ptn-shelf__name { grid-area: name; font-family: var(--font-head); font-feature-settings: "palt"; font-size: var(--fs-sm); font-weight: 700; line-height: 1.45; letter-spacing: var(--track-head); overflow-wrap: anywhere; text-wrap: balance; transition: color var(--dur-1) var(--ease); }
.ptn-shelf__count { grid-area: count; font-family: var(--font-en); font-size: .75rem; font-weight: 700; line-height: 1.6; letter-spacing: var(--track-label); color: var(--muted); white-space: nowrap; }
.ptn-shelf__count b { font-family: var(--font-en); color: var(--blue); }
.ptn-shelf__go { grid-area: go; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--line-2); color: var(--blue); transition: background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease); }
.ptn-shelf__go .icon { width: 14px; height: 14px; }
.ptn-shelf__cell:focus-visible { outline: 2px solid var(--sky); outline-offset: 3px; border-radius: var(--radius-lg); }
@media (hover: hover) and (pointer: fine) {
  .ptn-shelf__cell:hover { box-shadow: 0 0 0 2px var(--sky), 0 24px 40px -22px rgba(0, 0, 0, .8); }
  .ptn-shelf__cell:hover .ptn-shelf__img { --lift: -4%; }
  .ptn-shelf__cell:hover .ptn-shelf__name { color: var(--blue); }
  .ptn-shelf__cell:hover .ptn-shelf__go { border-color: var(--blue); background: var(--blue); color: #fff; }
}
.ptn-shelf__cell:active { transform: scale(.98); }
/* 1024〜1199px は面が狭いので、名前を 12px に(「ネットワークカメラ」を1行に)。矢印は画像の右上に重ね、件数「17 MODELS」を1行に収める */
@media (min-width: 1024px) and (max-width: 1199px) {
  .ptn-shelf__name { font-size: var(--fs-xs); }
  .ptn-shelf__label { grid-template-columns: minmax(0, 1fr); grid-template-areas: "name" "count"; padding-left: 12px; }
  .ptn-shelf__go { position: absolute; top: 8px; right: 8px; background: #fff; }
}
.ptn-shelf__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 20px; font-family: var(--font-en); font-size: .75rem; font-weight: 700; letter-spacing: var(--track-label); color: var(--on-dark-2); }
.ptn-shelf__total b { font-family: var(--font-en); font-size: 2.25rem; font-weight: 300; line-height: 1; letter-spacing: -.02em; color: #fff; }
/* 1023px以下: 説明文の下に、画像を左に置いた横長のタイル(群名とモデル数付き。600px以上は3列×2段、スマホは2列×3段。押せる高さは 52px 以上) */
@media (max-width: 1023px) {
  .masthead--aside .masthead__aside { display: block; width: min(var(--wrap), 100% - var(--gutter) * 2); margin: clamp(24px, 4vw, 36px) auto 0; }
  .ptn-shelf { width: 100%; margin: 0; }
  .ptn-shelf__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .ptn-shelf__cell { grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: none; align-items: center; column-gap: 12px; min-height: 72px; padding: 4px 10px 4px 4px; border-radius: var(--radius); box-shadow: none; }
  .ptn-shelf__media { align-self: center; aspect-ratio: 1; border-radius: var(--radius); overflow: hidden; }
  .ptn-shelf__img { object-position: 50% 50%; transform-origin: 50% 86%; }
  .ptn-shelf__media::before { top: 83%; }
  .ptn-shelf__label { display: block; padding: 0; border-top: 0; }
  .ptn-shelf__name { display: block; line-height: 1.4; }
  .ptn-shelf__count { display: block; margin-top: 2px; line-height: 1.4; }
  .ptn-shelf__go { display: none; }
  .ptn-shelf__total b { font-size: 1.25rem; font-weight: 400; }
}
@media (max-width: 767px) { .ptn-shelf__cell { grid-template-columns: 56px minmax(0, 1fr); column-gap: 10px; min-height: 64px; } }
@media (max-width: 599px) {
  .ptn-shelf__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ptn-shelf__cell { grid-template-columns: 48px minmax(0, 1fr); column-gap: 8px; min-height: 56px; }
}
/* 360px未満: 画像を小さく、名前を 13px に、件数は数字だけ(読み上げは「（17モデル）」のまま) */
@media (max-width: 359px) {
  .ptn-shelf__cell { grid-template-columns: 40px minmax(0, 1fr); column-gap: 6px; min-height: 52px; padding-right: 6px; }
  .ptn-shelf__name { font-size: var(--fs-xs); }
  .ptn-shelf__unit { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ptn-shelf__cell, .ptn-shelf__img { transition: none; } .ptn-shelf__cell:hover .ptn-shelf__img { --lift: 0; } }

/* 3. の後: 申込みの案内(条件を読んだ所で申し込める) */
.ptn-apply {
  display: grid; gap: 20px 48px; align-items: center; margin-top: clamp(32px, 3.4vw, 48px); padding: clamp(24px, 3vw, 36px) clamp(22px, 3vw, 40px);
  border-radius: var(--radius-lg); /* 枠・四隅の印・面は site.css の .vf-box */
}
.ptn-apply__title { font-family: var(--font-head); font-feature-settings: "palt"; font-size: var(--fs-h4); font-weight: 700; line-height: 1.6; letter-spacing: var(--track-head); text-wrap: balance; }
.ptn-apply__text { margin-top: 6px; font-size: var(--fs-sm); line-height: 1.9; color: var(--ink-2); max-width: 40em; }
.ptn-apply__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
@media (min-width: 1100px) { .ptn-apply { grid-template-columns: minmax(0, 1fr) auto; } .ptn-apply__actions { justify-content: flex-end; } }
@media (max-width: 599px) { .ptn-apply__actions .btn { width: 100%; } }

/* 360px未満は数字を1列に(「10,000+」が列からはみ出さないように。文字の間隔を広げた時も) */
@media (max-width: 359px) {
  .ptn-stats { grid-template-columns: minmax(0, 1fr); }
  .ptn-stat:nth-child(even) { padding-left: 0; border-left: 0; }
  .ptn-stat:nth-child(n+2) { border-top: 1px solid var(--line-2); }
}

/* 02 以降の章(templates/partner.php の data-cv): 画面に近づくまで配置の計算をしない(最初の配置の計算を、最初の画面の近くだけにする)。
   推定の高さは各章の実際の高さ(上下の余白を含む --cv-h。画面の幅の段ごと)から上下の余白を引いた値(一度描画した後は実際の高さを使う = auto)。
   # 付きで開いた時(.ptn-cv-off)と、このページの # へのリンクを押した時の移り先より上の章(.is-cv-off)は通常の描画に戻す(着地点をずらさない) */
[data-cv] { content-visibility: auto; contain-intrinsic-size: auto calc(var(--cv-h, 1100px) - var(--section) * 2); overflow-clip-margin: 8px; }
.ptn-products { --cv-h: 1340px; }
.ptn-terms { --cv-h: 1220px; }
.ptn-flow { --cv-h: 1340px; }
.ptn-docs { --cv-h: 1200px; }
.ptn-faq { --cv-h: 660px; }
@media (min-width: 600px) { .ptn-products { --cv-h: 1320px; } .ptn-terms { --cv-h: 1010px; } .ptn-flow { --cv-h: 1110px; } .ptn-docs { --cv-h: 990px; } }
@media (min-width: 1024px) { .ptn-products { --cv-h: 1200px; } .ptn-terms { --cv-h: 1015px; } .ptn-flow { --cv-h: 1130px; } .ptn-docs { --cv-h: 815px; } .ptn-faq { --cv-h: 700px; } }
@media (min-width: 1200px) { .ptn-terms { --cv-h: 810px; } .ptn-flow { --cv-h: 1010px; } }
.ptn-cv-off [data-cv], [data-cv].is-cv-off { content-visibility: visible; }
