@charset "UTF-8";
/* ══ 題字帯（2026-10-17: いまは /partner/ の最初の画面だけが使う。写真・英字・＼／・¥ の型は使わなくなったので消した） ══ */
.l-pagehead {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.1) 1px, transparent 1.5px) 0 0/22px 22px, radial-gradient(110% 120% at 92% -10%, color-mix(in srgb, var(--accent) 55%, transparent) 0%, transparent 55%), radial-gradient(70% 100% at 0% 110%, color-mix(in srgb, var(--accent) 28%, transparent) 0%, transparent 60%), var(--ink);
  color: var(--paper);
  padding-block: var(--sp-5) var(--sp-6);
  text-align: center;
}

@media (min-width: 768px) {
  .l-pagehead {
    padding-block: var(--sp-7);
  }
}
/* ── /partner だけ題字帯の空気を変える（読者＝制作会社。2026-08-09） ──
   ドット地紋 → 方眼（設計図）、光は accent-dark で左上から（他ページの鏡映し） */
.l-pagehead--partner {
  background: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 24px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 24px), radial-gradient(110% 120% at 8% -10%, color-mix(in srgb, var(--accent-dark) 62%, transparent) 0%, transparent 55%), radial-gradient(70% 100% at 100% 110%, color-mix(in srgb, var(--accent) 22%, transparent) 0%, transparent 60%), var(--ink);
}

/* ── 🔴 題字帯の背景を WebGL の面にする（2026-08-11・/partner/ だけ） ──
   canvas は不透明（gl_FragColor の a=1）なので、下の写真もグラデーションも隠れる。
   → 写真は PHP 側で出さない。方眼だけ ::after で canvas の上に重ね直す。
   🔴 z-index は canvas と ::after を同じ -2 に置き、ツリー順（::after があと）で重ねる。
      -1 は背面の大きなイタリック英字（.l-pagehead__bg）が使っている。
   動かないとき（prefers-reduced-motion／WebGL非対応／JS停止）は canvas が
   透明のまま残るので、下の .l-pagehead--partner のグラデーションがそのまま見える。 */
.l-pagehead__gl {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  display: block;
}

.l-pagehead--gl::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 24px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 24px);
}

/* ============================================================
   /partner/ だけの部品（2026-10-17 作り直し 段3）。共通の部品は component/_lower.scss
   型は「濃い藍＋方眼」（48 §4-1）。題字帯の面は layout/_pagehead.scss の --partner／--gl をそのまま使い、
   中の組みだけこのページで作る（古い題字帯の中央揃え・＼／は使わない）。
   見せ場: ③ カンプの指示どおりに動く見本（.p-pt-comp）／⑦ 概算の足し算（.p-pt-sum）
   🔴 動きは [data-motion="on"] のときだけ隠して動かす。動きを減らす設定では、出来上がった形で見える。
   ============================================================ */
/* ── ① 最初の画面（濃い藍＋方眼＋WebGL） ── */
.p-pt-hero {
  text-align: left;
  padding-block: var(--sp-3) var(--sec-tight);
}

/* 地は濃い藍。WebGL の面（墨が基準）を半分透かして重ね、サイトの藍に寄せる。方眼は ::after（_pagehead）が上に載る。
   動かないとき（動きを減らす設定・WebGL なし）は、濃い藍＋方眼のまま */
.p-pt-hero {
  background: radial-gradient(90% 110% at 100% 0%, color-mix(in srgb, var(--accent) 45%, transparent) 0%, transparent 60%), var(--accent-dark);
}

.p-pt-hero .l-pagehead__gl {
  opacity: 0.5;
}

.p-pt-hero__in {
  width: min(100% - var(--gutter) * 2, var(--w-main)); /* 2周目: 下の段と左端をそろえる */
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-5);
}

.p-pt-hero__body {
  display: grid;
  gap: var(--sp-3);
  align-content: start;
}

.p-pt-hero .c-crumb {
  margin-bottom: var(--sp-2);
}

.p-pt-hero .c-crumb ol {
  color: var(--accent-soft);
  list-style: none;
  padding: 0;
}

.p-pt-hero__title {
  color: var(--paper);
  font-size: clamp(2.1rem, 1.2rem + 3.8vw, 4rem);
  line-height: 1.35;
  letter-spacing: 0.04em;
}

.p-pt-hero__lead {
  font-size: var(--fs-lede);
  line-height: 1.95;
  max-width: 36em;
  color: var(--paper);
}

.p-pt-hero .c-pen__svg path {
  stroke: var(--accent-soft);
}

.p-pt-hero .c-btn {
  border-color: rgba(246, 240, 228, 0.7);
  color: var(--paper);
}

.p-pt-hero .c-btn--primary {
  background-color: var(--paper);
  --btn-wipe: var(--white);
  border-color: transparent;
  color: var(--accent-dark);
} /* 🔴 shorthand の background にしない（共通の「色が左から染みる」が消える） */
.p-pt-hero .c-lw-promise {
  color: var(--accent-soft);
}

/* 方眼紙の写真はアーチ窓。後ろに方眼の紙を1枚、傾けて敷く */
@media (min-width: 900px) {
  .p-pt-hero {
    padding-top: var(--sp-4);
  }
  .p-pt-hero__in {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
    gap: var(--sp-8);
    align-items: center;
  }
}
/* ── ③ 動きの実装（見せ場1: カンプの指示どおりに動く） ── */
.p-pt-motion__in {
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: minmax(0, 1fr);
}

.p-pt-motion__txt {
  display: grid;
  gap: var(--sp-3);
  align-content: start;
}

.p-pt-motion__txt .c-lw-head {
  margin-bottom: 0;
}

.p-pt-motion__canlbl {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--accent);
  margin: var(--sp-3) 0 0.3rem;
}

/* 🔴 2026-10-17 親切さの点検: 押せない札に丸い枠を付けない（丸い枠＝押せるもの）。点で並べるだけ */
.p-pt-motion__can {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-pt-motion__can li {
  position: relative;
  padding-left: 0.9rem;
  font-size: var(--fs-sm);
}

.p-pt-motion__can li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--accent);
}

.p-pt-motion__lib {
  font-size: var(--fs-sm);
  line-height: 1.95;
}

.p-pt-motion__links {
  display: grid;
  gap: 0.5rem;
}

@media (min-width: 900px) {
  .p-pt-motion__in {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: var(--sp-8);
    align-items: center;
  }
}
.p-pt-comp {
  position: relative;
  margin: 0;
  display: grid;
  justify-items: center;
  gap: var(--sp-3);
}

.p-pt-comp__sheet {
  position: relative;
  width: 100%;
  border-radius: 6px;
  rotate: -0.8deg;
  padding: clamp(1.1rem, 3.5vw, 2rem);
  background: repeating-linear-gradient(0deg, rgba(39, 80, 106, 0.1) 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, rgba(39, 80, 106, 0.1) 0 1px, transparent 1px 16px), var(--white);
  box-shadow: var(--sh-float);
}

.p-pt-comp::before {
  content: "";
  position: absolute;
  inset: 0 0 4.5rem;
  border-radius: 6px;
  background: var(--paper-2);
  rotate: 2deg;
  translate: 2% 2%;
}

.p-pt-comp__kind {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.7rem;
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  margin-bottom: 0.9rem;
}

.p-pt-comp__kind span {
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.12em;
}

/* カンプの中の「画面」 */
.p-pt-comp__screen {
  position: relative;
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 3vw, 1.6rem);
  background: var(--paper);
  border-radius: 4px;
  box-shadow: 0 0 0 1px var(--rule);
}

.p-pt-comp__logo {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: var(--fs-sm);
  letter-spacing: 0.14em;
  color: var(--accent);
}

.p-pt-comp__title {
  display: grid;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(1.45rem, 1.1rem + 1.5vw, 2.1rem);
  line-height: 1.45;
  letter-spacing: 0.06em;
  overflow: hidden;
}

.p-pt-comp__title span {
  display: block;
}

.p-pt-comp__beans {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
}

.p-pt-comp__beans li {
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  padding: 0.7rem 0.3rem;
  background: var(--white);
  border-radius: 4px;
  font-size: var(--fs-xs);
  font-weight: 700;
}

.p-pt-comp__beans i {
  width: 2.1rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--accent-tint);
  box-shadow: inset 0 0 0 1.5px var(--accent-soft);
}

.p-pt-comp__beans li:nth-child(2) i {
  background: var(--accent-soft);
}

.p-pt-comp__beans li:nth-child(3) i {
  background: var(--accent);
  box-shadow: none;
}

.p-pt-comp__map {
  background: var(--white);
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
}

.p-pt-comp__map svg {
  width: 100%;
  height: auto;
  overflow: visible;
}

.p-pt-comp__street {
  fill: none;
  stroke: var(--paper-2);
  stroke-width: 7;
  stroke-linecap: round;
}

.p-pt-comp__route {
  fill: none;
  stroke: var(--accent);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
}

.p-pt-comp__shop {
  fill: var(--accent);
}

.p-pt-comp__map text {
  font-size: 12px;
  font-weight: 700;
  fill: var(--ink);
}

/* 藍の番号（カンプへの指示の印）。正円だけ */
.p-pt-comp__no {
  position: absolute;
  right: clamp(-0.6rem, -1vw, -0.3rem);
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--white);
  color: var(--accent);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--font-en);
  font-style: italic;
  font-size: 1.05rem;
}

.p-pt-comp__no--1 {
  top: 27%;
}

.p-pt-comp__no--2 {
  top: 50%;
}

.p-pt-comp__no--3 {
  bottom: 1.6rem;
}

.p-pt-comp__notes {
  display: grid;
  gap: 0.35rem;
  margin-top: 1rem;
  counter-reset: pn;
  font-size: var(--fs-sm);
}

.p-pt-comp__notes li {
  counter-increment: pn;
  display: grid;
  grid-template-columns: 1.6rem minmax(0, 1fr);
  gap: 0.6rem;
  align-items: center;
  color: var(--accent);
  font-weight: 700;
}

.p-pt-comp__notes li::before {
  content: counter(pn);
  content: counter(pn)/"";
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1.5px var(--accent);
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 400;
  font-size: 0.9rem;
}

.p-pt-comp figcaption {
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  text-align: center;
}

/* もう一度動かす（チェックボックスで a↔b を切り替えて流し直す。JS は足さない） */
.p-pt-comp__again {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  min-height: 2.75rem;
  padding: 0.4em 1.3em;
  border-radius: var(--r-pill);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--accent);
  cursor: pointer;
  box-shadow: inset 0 0 0 1.5px var(--accent);
  background: var(--white);
  transition: background-color var(--dur-1), color var(--dur-1);
}

.p-pt-comp__again::before {
  content: "↻";
  content: "↻"/"";
  font-size: 1.1em;
}

.p-pt-comp__again:hover {
  background: var(--accent);
  color: var(--white);
}

.p-pt-comp:has(.p-pt-comp__replay:focus-visible) .p-pt-comp__again {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

html:not([data-motion=on]) .p-pt-comp__again {
  display: none;
}

@keyframes pt-rise-a {
  from {
    opacity: 0;
    translate: 0 110%;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes pt-rise-b {
  from {
    opacity: 0;
    translate: 0 110%;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes pt-pop-a {
  from {
    opacity: 0;
    translate: -14px 0;
    scale: 0.92;
  }
  to {
    opacity: 1;
    translate: 0 0;
    scale: 1;
  }
}
@keyframes pt-pop-b {
  from {
    opacity: 0;
    translate: -14px 0;
    scale: 0.92;
  }
  to {
    opacity: 1;
    translate: 0 0;
    scale: 1;
  }
}
@keyframes pt-draw-a {
  from {
    stroke-dashoffset: 1;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes pt-draw-b {
  from {
    stroke-dashoffset: 1;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes pt-ping-a {
  0%, 60% {
    scale: 0;
  }
  80% {
    scale: 1.25;
  }
  100% {
    scale: 1;
  }
}
@keyframes pt-ping-b {
  0%, 60% {
    scale: 0;
  }
  80% {
    scale: 1.25;
  }
  100% {
    scale: 1;
  }
}
@keyframes pt-mark-a {
  0% {
    box-shadow: inset 0 0 0 2px var(--accent), 0 0 0 0 rgba(39, 80, 106, 0.35);
  }
  100% {
    box-shadow: inset 0 0 0 2px var(--accent), 0 0 0 0.7rem rgba(39, 80, 106, 0);
  }
}
@keyframes pt-mark-b {
  0% {
    box-shadow: inset 0 0 0 2px var(--accent), 0 0 0 0 rgba(39, 80, 106, 0.35);
  }
  100% {
    box-shadow: inset 0 0 0 2px var(--accent), 0 0 0 0.7rem rgba(39, 80, 106, 0);
  }
}
[data-motion=on] .p-pt-comp:not([data-revealed]) :is(.p-pt-comp__title span, .p-pt-comp__beans li) {
  opacity: 0;
}

[data-motion=on] .p-pt-comp:not([data-revealed]) .p-pt-comp__route {
  stroke-dashoffset: 1;
}

[data-motion=on] .p-pt-comp:not([data-revealed]) .p-pt-comp__shop {
  scale: 0;
}

[data-motion=on] .p-pt-comp[data-revealed] {
  --a: .6s;
  --t0: .5s;
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__title span {
  animation: pt-rise-a 0.75s var(--ease-out) both;
  animation-delay: var(--t0);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__title span:nth-child(2) {
  animation-delay: calc(var(--t0) + 0.22s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__no--1 {
  animation: pt-mark-a 0.8s ease-out both;
  animation-delay: var(--t0);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__beans li {
  animation: pt-pop-a 0.55s var(--ease-out) both;
  animation-delay: calc(var(--t0) + 1.1s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__beans li:nth-child(2) {
  animation-delay: calc(var(--t0) + 1.25s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__beans li:nth-child(3) {
  animation-delay: calc(var(--t0) + 1.4s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__no--2 {
  animation: pt-mark-a 0.8s ease-out both;
  animation-delay: calc(var(--t0) + 1.1s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__route {
  animation: pt-draw-a 1.3s cubic-bezier(0.55, 0.1, 0.3, 1) both;
  animation-delay: calc(var(--t0) + 2.1s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__shop {
  transform-box: fill-box;
  transform-origin: center;
  animation: pt-ping-a 1.9s var(--ease-out) both;
  animation-delay: calc(var(--t0) + 2.1s);
}
[data-motion=on] .p-pt-comp[data-revealed] .p-pt-comp__no--3 {
  animation: pt-mark-a 0.8s ease-out both;
  animation-delay: calc(var(--t0) + 2.1s);
}

/* もう一度: 名前だけ b に替える（遅れは同じ）。ペンの書き込みは1回目だけ */
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) {
  --t0: .1s;
}
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) .p-pt-comp__title span {
  animation-name: pt-rise-b;
}
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) :is(.p-pt-comp__no--1, .p-pt-comp__no--2, .p-pt-comp__no--3) {
  animation-name: pt-mark-b;
}
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) .p-pt-comp__beans li {
  animation-name: pt-pop-b;
}
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) .p-pt-comp__route {
  animation-name: pt-draw-b;
}
[data-motion=on] .p-pt-comp[data-revealed]:has(.p-pt-comp__replay:checked) .p-pt-comp__shop {
  animation-name: pt-ping-b;
}

.p-pt-comp .c-pennote__txt {
  background: rgba(255, 255, 255, 0.94);
}

/* ── ④ 実在の公開案件（台帳の形） ── */
.p-pt-works__lead {
  max-width: 46em;
  margin-bottom: var(--sp-5);
}

.p-pt-works__cols {
  display: grid;
  gap: var(--sp-5);
  grid-template-columns: minmax(0, 1fr);
}

.p-pt-works__tit {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.8rem;
  font-family: var(--font-head);
  font-size: var(--fs-h3);
  letter-spacing: 0.06em;
  padding-bottom: 0.7rem;
  border-bottom: 1.5px solid var(--ink);
}

.p-pt-works__tit small {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.04em;
}

.p-pt-ledger li {
  border-bottom: 1px solid var(--rule);
}

.p-pt-ledger a {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.25rem 0.9rem;
  align-items: center;
  padding: 0.75rem 0.25rem;
  color: inherit;
  text-decoration: none;
  transition: background-color var(--dur-1);
}

.p-pt-ledger a:hover {
  background: rgba(255, 255, 255, 0.55);
}

.p-pt-ledger a:hover b {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.p-pt-ledger__shot {
  grid-row: 1/span 2;
  display: block;
  aspect-ratio: 16/10;
  border-radius: 4px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 0 0 1px var(--rule);
}

.p-pt-ledger__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.p-pt-ledger__name {
  display: grid;
  gap: 0.05rem;
  min-width: 0;
}

.p-pt-ledger__name b {
  font-size: var(--fs-sm);
  line-height: 1.6;
}

.p-pt-ledger__name span {
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  overflow-wrap: anywhere;
}

.p-pt-ledger__scope {
  justify-self: start;
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-tint);
  padding: 0.1em 0.75em;
  border-radius: var(--r-pill);
}

.p-pt-works__foot {
  margin-top: var(--sp-5);
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

@media (min-width: 768px) {
  .p-pt-ledger a {
    grid-template-columns: 7rem minmax(0, 1fr) auto;
  }
  .p-pt-ledger__shot {
    grid-row: auto;
  }
  .p-pt-ledger__scope {
    justify-self: end;
    text-align: right;
  }
}
@media (min-width: 1100px) {
  .p-pt-works__cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-7);
    align-items: start;
  }
  .p-pt-ledger a {
    grid-template-columns: 6rem minmax(0, 1fr);
  }
  .p-pt-ledger__shot {
    grid-row: 1/span 2;
  }
  .p-pt-ledger__scope {
    justify-self: start;
    text-align: left;
  }
}
/* ── ⑤ デザインから（佐藤） ── */
.p-pt-design__in {
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: minmax(0, 1fr);
}

.p-pt-design__txt {
  display: grid;
  gap: var(--sp-3);
  align-content: start;
}

.p-pt-design__txt .c-lw-head {
  margin-bottom: 0;
}

.p-pt-design__who {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.p-pt-design__icon {
  width: 5.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  flex: none;
  background: var(--paper);
}

.p-pt-design__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-pt-design__who b {
  display: block;
  font-family: var(--font-head);
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}

.p-pt-design__who small {
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

.p-pt-design__works {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-4) var(--sp-3);
}

.p-pt-design__works figure {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.5rem;
  align-content: start;
}

/* 長いカタカナの社名（文節で折れない）をはみ出させない */
:is(.p-pt-design__works figcaption, .p-pt-ledger__name) :is(b, span) {
  overflow-wrap: anywhere;
}

.p-pt-design__big {
  grid-column: 1/-1;
}

.p-pt-design__img {
  position: relative;
  display: block;
}

.p-pt-design__img img {
  width: 100%;
  height: auto;
}

.p-pt-design__works figcaption {
  display: grid;
  gap: 0.1rem;
}

.p-pt-design__works figcaption b {
  font-size: var(--fs-sm);
  line-height: 1.6;
}

.p-pt-design__works figcaption span {
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--accent);
}

.p-pt-design__big figcaption b {
  font-family: var(--font-head);
  font-size: 1.15rem;
  letter-spacing: 0.04em;
}

@media (min-width: 900px) {
  .p-pt-design__in {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
    gap: var(--sp-8);
    align-items: center;
  }
}
/* ── ⑥ お受けする単位（白い紙の仕様書） ── */
.p-pt-unit__sheet {
  background: var(--white);
  border-radius: var(--r-l);
  padding: clamp(1.25rem, 3.5vw, 2.5rem);
  box-shadow: var(--sh-float);
}

.p-pt-unit__table {
  width: 100%;
  border-collapse: collapse;
}

.p-pt-unit__table thead th {
  font-size: var(--fs-sm);
  text-align: left;
  padding: 0 0.8rem 0.7rem 0;
  border-bottom: 1.5px solid var(--ink);
}

.p-pt-unit__table tbody :is(th, td) {
  text-align: left;
  vertical-align: top;
  padding: 1rem 0.8rem 1rem 0;
  border-bottom: 1px solid var(--rule);
}

.p-pt-unit__table tbody tr:last-child :is(th, td) {
  border-bottom: 0;
}

.p-pt-unit__table tbody th {
  font-family: var(--font-head);
  font-size: 1.15rem;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.p-pt-unit__table small {
  display: block;
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  margin-top: 0.15rem;
}

.p-pt-unit__note {
  margin-top: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

/* スマホは表を段組みに崩す（横スクロールにしない） */
@media (max-width: 767.98px) {
  .p-pt-unit__table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  .p-pt-unit__table, .p-pt-unit__table tbody, .p-pt-unit__table tr, .p-pt-unit__table th, .p-pt-unit__table td {
    display: block;
  }
  .p-pt-unit__table tbody tr {
    padding: 1rem 0;
    border-bottom: 1px solid var(--rule);
  }
  .p-pt-unit__table tbody tr:last-child {
    border-bottom: 0;
  }
  .p-pt-unit__table tbody :is(th, td) {
    padding: 0;
    border: 0;
  }
  .p-pt-unit__table tbody th {
    margin-bottom: 0.4rem;
  }
  .p-pt-unit__table tbody td + td {
    margin-top: 0.6rem;
  }
  .p-pt-unit__table tbody td::before {
    display: block;
    font-size: var(--fs-xs);
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.06em;
  }
  .p-pt-unit__table tbody td:nth-of-type(1)::before {
    content: "いただくもの";
  }
  .p-pt-unit__table tbody td:nth-of-type(2)::before {
    content: "お返しするもの";
  }
}
@media (min-width: 768px) {
  .p-pt-unit__table thead th:first-child {
    width: 10rem;
  }
}
/* ── ⑦ 単価と足し算（見せ場2） ── */
.p-pt-price__in {
  display: grid;
  gap: var(--sp-6);
  grid-template-columns: minmax(0, 1fr);
}

.p-pt-rates {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  margin-top: var(--sp-2);
}

.p-pt-rates caption {
  text-align: left;
  font-weight: 700;
  font-size: var(--fs-sm);
  color: var(--accent);
  padding-bottom: 0.5rem;
}

.p-pt-rates :is(th, td) {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--rule-strong);
  vertical-align: baseline;
}

.p-pt-rates th {
  text-align: left;
  font-weight: 700;
  padding-right: 1rem;
}

.p-pt-rates td {
  text-align: right;
  font-family: var(--font-head);
  font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem);
  white-space: nowrap;
}

.p-pt-rates td small {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  margin-left: 0.15em;
}

.p-pt-rates__notes {
  display: grid;
  gap: 0.35rem;
  margin-top: 1rem;
  font-size: var(--fs-sm);
  color: var(--ink);
}

.p-pt-rates__notes li {
  position: relative;
  padding-left: 1.1rem;
}

.p-pt-rates__notes li::before {
  content: "";
  position: absolute;
  left: 0.1rem;
  top: 0.75em;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--accent);
}

.p-pt-sum {
  position: relative;
  margin: 0;
  isolation: isolate;
}

.p-pt-sum::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 6px;
  background: var(--paper);
  rotate: -2.4deg;
  translate: -2% 2%;
}

.p-pt-sum__paper {
  background: var(--white);
  border-radius: 6px;
  box-shadow: var(--sh-float);
  rotate: 1deg;
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2.5rem);
  font-variant-numeric: tabular-nums;
}

.p-pt-sum__tit {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-align: center;
}

.p-pt-sum__case {
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--ink-sub);
  padding-bottom: 0.9rem;
  margin-bottom: 0.4rem;
  border-bottom: 1.5px dashed var(--rule-strong);
}

.p-pt-sum__row {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  padding: 0.7rem 0;
}

.p-pt-sum__row span:first-child {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.1rem 0.6rem;
  font-weight: 700;
}

.p-pt-sum__row small {
  font-weight: 400;
  font-size: var(--fs-xs);
  color: var(--ink-sub);
}

.p-pt-sum__row span:last-child {
  font-weight: 700;
  white-space: nowrap;
}

.p-pt-sum__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.3rem 1rem;
  margin-top: 0.5rem;
  padding-top: 0.9rem;
  border-top: 1.5px solid var(--ink);
  font-weight: 700;
}

.p-pt-sum__total b {
  font-family: var(--font-head);
  font-size: clamp(2.1rem, 1.5rem + 2.4vw, 3rem);
  color: var(--accent);
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.p-pt-sum__total small {
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  margin-left: 0.4em;
}

.p-pt-sum__note {
  margin-top: 0.9rem;
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  line-height: 1.8;
}

[data-motion=on] .p-pt-sum [data-step] {
  opacity: 0;
  translate: 0 8px;
  transition: opacity 0.45s var(--ease-out), translate 0.45s var(--ease-out);
  transition-delay: var(--step-delay, 0ms);
}

[data-motion=on] .p-pt-sum [data-step][data-on] {
  opacity: 1;
  translate: 0 0;
}

/* 合計の線は左から引かれる */
[data-motion=on] .p-pt-sum__total {
  border-top-color: transparent;
  background: linear-gradient(var(--ink), var(--ink)) 0 0/0 1.5px no-repeat;
  transition: opacity 0.45s var(--ease-out), translate 0.45s var(--ease-out), background-size 0.6s var(--ease-out);
}

[data-motion=on] .p-pt-sum__total[data-on] {
  background-size: 100% 1.5px;
}

@media (min-width: 900px) {
  .p-pt-price__in {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: var(--sp-8);
    align-items: center;
  }
}
/* ── ⑧ 取引の条件（仕様書の形） ── */
.p-pt-terms__in {
  display: grid;
  gap: var(--sp-5);
  grid-template-columns: minmax(0, 1fr);
}

.p-pt-spec {
  border-top: 1.5px solid var(--ink);
}

.p-pt-spec > div {
  display: grid;
  gap: 0.2rem 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--rule);
}

.p-pt-spec dt {
  font-weight: 700;
  color: var(--accent);
  font-size: var(--fs-sm);
  letter-spacing: 0.06em;
}

.p-pt-spec dd {
  margin: 0;
}

@media (min-width: 768px) {
  .p-pt-spec > div {
    grid-template-columns: 10.5rem minmax(0, 1fr);
    align-items: baseline;
  }
}
@media (min-width: 900px) {
  .p-pt-terms__in {
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
    gap: var(--sp-8);
    align-items: start;
  }
}
.p-pt-check {
  margin-top: var(--sp-5);
  background: var(--paper);
  border-radius: var(--r-m);
}

.p-pt-check summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  min-height: 3.25rem;
  padding: 0.6rem 1.25rem;
  font-weight: 700;
  color: var(--accent);
}

.p-pt-check summary::marker {
  color: var(--accent);
}

.p-pt-check__body {
  padding: 0 1.25rem 1.25rem;
}

.p-pt-check__list {
  columns: 16em 3;
  column-gap: var(--sp-5);
  font-size: var(--fs-sm);
  padding-left: 1.6em;
  list-style: decimal;
}

.p-pt-check__list li {
  break-inside: avoid;
  margin-bottom: 0.35em;
}

.p-pt-check__note {
  margin: var(--sp-3) 0 var(--sp-2);
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

.p-pt-check pre {
  overflow: auto;
  max-height: 28rem;
  background: var(--white);
  border-radius: var(--r-s);
  padding: var(--sp-3);
  font-size: 12px;
  line-height: 1.7;
}

/* ── ⑪ ご相談（濃い紙・中央） ── */
.p-pt-contact__in {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: var(--sp-3);
  max-width: 52rem;
}

.p-pt-contact .c-sechead__ja {
  font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.6rem);
  line-height: 1.55;
}

.p-pt-contact__btns {
  margin-top: var(--sp-2);
}

.p-pt-contact__sub {
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

.p-pt-contact__sub + .p-pt-contact__sub {
  margin-top: -0.5rem;
}

@media (prefers-reduced-motion: reduce) {
  .p-pt-comp__again {
    display: none;
  }
}
/* ── ① 最初の画面の紙＝ご依頼の形（2026-10-17 デザイン点検2。写真の代わり・お受けする形は2つ） ── */
.p-pt-order {
  margin: 0;
  justify-self: end;
  width: min(100%, 26rem);
  display: grid;
  gap: 0.7rem;
  background: var(--white);
  color: var(--ink);
  border-radius: 6px;
  box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.55);
  rotate: 1.6deg;
  padding: clamp(1.3rem, 3vw, 1.8rem);
}

.p-pt-order__tit {
  display: grid;
  gap: 0.1rem;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
  letter-spacing: 0.1em;
  padding-bottom: 0.6rem;
  border-bottom: 1.5px solid var(--ink);
}

.p-pt-order__tit span {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--fs-xs);
  color: var(--ink-sub);
  letter-spacing: 0.04em;
}

.p-pt-order__opt {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: start;
  padding: 0.8rem 0.9rem;
  border-radius: 10px;
  color: var(--ink);
  text-decoration: none;
  box-shadow: inset 0 0 0 1.5px var(--rule-strong);
  transition: background-color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);
}

.p-pt-order__opt:hover {
  background: var(--accent-tint);
  box-shadow: inset 0 0 0 1.5px var(--accent);
}

.p-pt-order__no {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 700;
  font-size: 1.1rem;
}

.p-pt-order__opt b {
  display: block;
  font-weight: 700;
  line-height: 1.5;
}

.p-pt-order__opt small {
  display: block;
  margin-top: 0.15rem;
  font-size: var(--fs-sm);
  color: var(--ink-sub);
  line-height: 1.6;
}

.p-pt-order__foot {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--accent);
}

/* ── ② 発注前のやりとり（チャット。2026-10-17 デザイン点検3） ── */
.p-pt-chat__in {
  display: grid;
  gap: var(--sp-6);
}

.p-pt-chat__head > p:last-child {
  max-width: 26em;
}

.p-pt-chat__log {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.9rem;
}

.p-pt-chat__msg {
  justify-self: start;
  max-width: min(34rem, 92%);
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 1.2rem;
  background: var(--white);
  border-radius: 4px 18px 18px 18px;
  box-shadow: 0 1px 2px rgba(43, 40, 36, 0.06);
}

.p-pt-chat__msg b {
  font-weight: 700;
  line-height: 1.65;
}

.p-pt-chat__msg span {
  font-size: var(--fs-sm);
  color: var(--ink-sub);
}

.p-pt-chat__msg--us {
  justify-self: end;
  background: var(--accent-dark);
  color: var(--paper);
  border-radius: 18px 4px 18px 18px;
  margin-top: 0.6rem;
}

.p-pt-chat__msg--us span {
  color: var(--accent-soft);
}

.p-pt-chat__msg--us .p-pt-chat__who {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.p-pt-chat__msg--us b {
  font-family: var(--font-head);
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
  letter-spacing: 0.04em;
  color: var(--white);
}

.p-pt-chat__msg--us .c-more {
  color: var(--white);
  margin-top: 0.3rem;
}

@media (min-width: 900px) {
  .p-pt-chat__in {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
    gap: var(--sp-8);
    align-items: start;
  }
}
.p-pt-lead {
  margin-top: var(--sp-6);
}

.p-pt-lead__per {
  display: block;
  margin: 0 0 0.1rem;
  font-family: var(--font-sans);
  line-height: 1.5;
} /* 5周目: 「何か所でもまとめて＋」を数字の上の行へ（1024 で表が8pxはみ出した） */
/* ═══ 2026-10-17 最終確認 ═══ */
/* 最初の画面: 横に並ぶ3つの数字（3行の表はやめた） */
.p-pt-spec3 {
  list-style: none;
  margin: var(--sp-3) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 34rem;
  border-block: 1px solid rgba(199, 215, 224, 0.28);
}

.p-pt-spec3 li {
  display: grid;
  gap: 0.15rem;
  padding: 0.7rem 0.8rem 0.75rem;
}

.p-pt-spec3 li + li {
  border-left: 1px solid rgba(199, 215, 224, 0.28);
}

.p-pt-spec3 span {
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--accent-soft);
  letter-spacing: 0.06em;
}

.p-pt-spec3 b {
  font-family: var(--font-head);
  font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem);
  color: var(--paper);
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  white-space: nowrap;
}

.p-pt-spec3 b small {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  margin-left: 0.15em;
}

.p-pt-hero__note {
  margin-top: 0.7rem;
  max-width: 34rem;
  font-size: var(--fs-sm);
  line-height: 1.75;
  color: var(--paper);
  opacity: 0.92;
}

@media (max-width: 479.98px) {
  .p-pt-spec3 li {
    padding-inline: 0.5rem;
  }
}
/* まるごとの作品: ブラウザの枠（パソコン）＋スマホの枠（機器の写真はやめた） */
.p-pt-shot {
  position: relative;
  display: block;
  padding: 0 11% 9% 0;
}

.p-pt-shot__pc {
  display: block;
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 0 0 1px var(--rule), var(--sh-float);
}

.p-pt-shot__bar {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  height: 1.6rem;
  padding-inline: 0.7rem;
  background: var(--paper-2);
}

.p-pt-shot__bar i {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--rule-strong);
  opacity: 0.5;
}

.p-pt-shot__bar em {
  margin-left: 0.5rem;
  font-style: normal;
  font-size: 0.7rem;
  color: var(--ink-sub);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.p-pt-shot__pc img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  height: auto;
  object-fit: cover;
  object-position: 50% 0;
}

.p-pt-shot__sp {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 23%;
  aspect-ratio: 390/720;
  overflow: hidden;
  border-radius: 12px;
  background: var(--white);
  box-shadow: 0 0 0 0.28rem var(--ink), var(--sh-float);
}

.p-pt-shot__sp img {
  display: block;
  width: 100%;
  height: auto;
}

.p-pt-shot--short .p-pt-shot__sp {
  aspect-ratio: 390/540;
}

/* 単価・納期の表: スマホでは「項目」の下に「数字」（360・375 で右の「日」が切れた） */
.p-pt-price__in > div {
  min-width: 0;
}

@media (max-width: 479.98px) {
  .p-pt-rates tr {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.1rem 1rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--rule-strong);
  }
  .p-pt-rates :is(th, td) {
    padding: 0;
    border: 0;
  }
  .p-pt-rates th {
    flex: 1 1 11em;
  }
  .p-pt-rates td {
    margin-left: auto;
  }
}
/* 検査の全項目の開閉: 開けると分かる＋の丸（保守のページの開閉と同じ） */
.p-pt-check summary {
  list-style: none;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.p-pt-check summary::-webkit-details-marker {
  display: none;
}

.p-pt-check summary small {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 400;
  font-size: var(--fs-sm);
  color: var(--ink);
}

.p-pt-check summary small::after {
  content: "+";
  content: "+"/"";
  display: grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 50%;
  background: var(--accent);
  color: var(--white);
  font-weight: 700;
  transition: rotate var(--dur-2) var(--ease-out);
}

.p-pt-check[open] summary small::after {
  rotate: 45deg;
}

/* ═══ 2周目（2026-10-17） ═══ */
/* 360: 「28,000円〜」が区切り線に重なり、隣の「4営業日〜」とつながって見えた → 狭いスマホは金額を1段目に全幅、納期とお返事を2段目に */
@media (max-width: 479.98px) {
  .p-pt-spec3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-pt-spec3 li:first-child {
    grid-column: 1/-1;
    border-bottom: 1px solid rgba(199, 215, 224, 0.28);
  }
  .p-pt-spec3 li:nth-child(2) {
    border-left: 0;
  }
}
/* 締めの相談の段がフッターと同じ色で境目が無かった → ほかのページと同じ濃い藍に */
.p-pt-contact {
  background: var(--accent-dark);
  color: var(--paper);
}

.p-pt-contact .c-sechead__ja {
  color: var(--paper);
}

.p-pt-contact .c-sechead__en {
  color: var(--accent-soft);
}

.p-pt-contact__sub {
  color: rgba(246, 240, 228, 0.78);
}

.p-pt-contact__sub a {
  color: var(--paper);
}

.p-pt-contact .c-btn--primary {
  background-color: var(--paper);
  color: var(--accent-dark);
  --btn-wipe: var(--white);
}

/* 取引の条件の見出しは語で折る（「続けられなくなった／とき」） */
.p-pt-spec dt {
  word-break: keep-all;
}

/* iPad（900〜1099）: ご依頼の形の紙が細く、1行5〜7文字に刻まれた → 紙の列を広げる */
@media (min-width: 900px) and (max-width: 1099.98px) {
  .p-pt-hero .p-pt-hero__in {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    gap: var(--sp-5);
  }
}
/* 画面の高さが低いPC（1366×768）でボタンが最初の画面に入らなかった → 題字と間を詰める */
@media (min-width: 900px) and (max-height: 860px) {
  .p-pt-hero {
    padding-top: var(--sp-2);
  }
  .p-pt-hero__body {
    gap: var(--sp-2);
  }
  .p-pt-hero .c-crumb {
    margin-bottom: 0;
  }
  .p-pt-hero__title {
    font-size: clamp(2rem, 0.8rem + 2.6vw, 3.1rem);
    line-height: 1.3;
  }
  .p-pt-hero__lead {
    line-height: 1.75;
  }
  .p-pt-spec3 li {
    padding-block: 0.45rem 0.5rem;
  }
}
/* 3周目: 語の泣き別れ（「続けられなくなったと／き」「LP 1本（最初の画面＋／5段）」）。見出しの列を少し広げ、括弧の中で折らない */
.p-pt-spec dt {
  word-break: auto-phrase;
}

@media (min-width: 768px) {
  .p-pt-spec > div {
    grid-template-columns: 11em minmax(0, 1fr);
  }
}
.p-pt-lead th {
  word-break: auto-phrase;
}

/* iPad 横〜狭いPC（1100〜1365）で「ご依頼の形」の紙が細かった */
@media (min-width: 1100px) {
  .p-pt-order {
    width: min(100%, 30rem);
  }
}
@media (min-width: 900px) {
  .p-pt-sum {
    align-self: start;
  }
}
/* 5周目: 足し算の紙が縦の真ん中に置かれ、右上が空いた */
