/* =========================================================================
   パートナー募集ページ（info.misawa-tokokoto.com/partner）
   協業・業務提携・企業協賛・投資・寄付・紹介を募る受け皿。
   - トークン・ヘッダー・フッター・＼／見出し・.reveal は hub.css / tokens.css を再利用する。
   - 基本部品はワーケーションLP（workation.css）の写し。**クラス名は pt- に変えてある**が
     形は同じ（白カード + 2px墨枠 + 角丸0 / 2px点線罫線 / 手書き見出し / イチョウは線と文字だけ）。
   - 運営者カード・プロフィールモーダル・ミニ校長枠はこのページ固有。色・枠・書体は既存トークンだけを使う
     （docs/LP-COMPONENTS.md）。
   - フォームの見た目（.cf-*）は contact.html と同じもの。
   ========================================================================= */

@media (max-width: 620px) {
  .h-slash { font-size: 17px; gap: 6px; letter-spacing: .02em; }
  .section__lead { font-size: 11.5px; letter-spacing: .03em; }
}
.h-slash { margin: 0; }
[id] { scroll-margin-top: 116px; }
@media (max-width: 760px) { [id] { scroll-margin-top: 84px; } }

/* ====================== ヒーロー（写真＝素、文字＝地の上） ====================== */
.pt-hero { background: var(--color-bg); }
.pt-hero__media { height: clamp(260px, 42vw, 460px); overflow: hidden; border-bottom: var(--border-card); }
.pt-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
/* 見出し・リードは中央寄せ（下の各セクションの .section__head と揃える） */
.pt-hero__in { max-width: var(--content-max); margin: 0 auto; padding: clamp(22px, 3.6vw, 36px) var(--pad-x) clamp(22px, 3.2vw, 32px); text-align: center; }
.pt-hero__kicker { font-size: 11px; font-weight: var(--fw-bold); letter-spacing: .18em; color: var(--color-accent); margin: 0 0 10px; }
.pt-hero__title { margin: 0; color: var(--color-ink); font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 5.2vw, 58px); letter-spacing: .06em; line-height: 1.3; }
/* 中央寄せなので、行が両側から詰まるよう幅を決めて左右 auto で置く（.page-head__lead と同じ考え方）。
   text-wrap: pretty は最終行が1語だけ残るのを避けるためで、効かないブラウザでも崩れない。 */
.pt-hero__lead {
  margin: 14px auto 0; max-width: 680px; color: var(--color-ink);
  font-size: clamp(12.5px, 1.4vw, 14.5px); line-height: 2; letter-spacing: .05em; text-wrap: pretty;
}
.pt-hero__lead b { font-weight: var(--fw-bold); }

/* ヒーロー直下の帯（白抜き。イチョウは強調の文字だけ） */
.pt-band { background: var(--color-white); border-top: var(--border-card); border-bottom: var(--border-card); }
.pt-band__in { max-width: var(--content-max); margin: 0 auto; padding: 13px var(--pad-x); display: flex; align-items: center; justify-content: center; gap: 8px 18px; flex-wrap: wrap; text-align: center; }
.pt-band__txt { font-family: var(--font-display); font-size: clamp(15px, 2.2vw, 22px); color: var(--color-ink); letter-spacing: .04em; }
.pt-band__txt b { color: var(--color-accent); font-weight: 400; }

/* ====================== ボタン ====================== */
.pt-ctas { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 18px; }
.pt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 12px 24px; border: var(--border-card); border-radius: var(--radius-button);
  font-family: var(--font-button); font-weight: var(--fw-bold); font-size: 14px; letter-spacing: .05em;
  background: var(--color-white); color: var(--color-ink); text-decoration: none;
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
}
.pt-btn:hover { background: var(--color-accent-soft); transform: translateY(-2px); }
.pt-btn--primary { background: var(--color-ink); color: #fff; }
.pt-btn--primary:hover { background: var(--color-ink); color: #fff; box-shadow: 0 0 0 3px var(--color-accent); }
.pt-btn .ext { font-size: 11px; opacity: .7; }
@media (max-width: 620px) { .pt-btn { width: 100%; font-size: 13.5px; } }

/* ====================== 運営者2名 ====================== */
.pt-people {
  margin-bottom: clamp(30px, 5vw, 52px); padding: clamp(18px, 3vw, 30px);
  background: var(--color-white); border: var(--border-card);
}
.pt-people__head { text-align: center; margin-bottom: 18px; }
.pt-people__title { margin: 0; font-family: var(--font-display); font-size: clamp(20px, 3vw, 29px); letter-spacing: .05em; line-height: 1.5; }
.pt-people__lead { max-width: 720px; margin: 8px auto 0; color: var(--color-sub); font-size: 12.5px; line-height: 1.9; letter-spacing: .04em; }
.pt-people__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pt-person {
  display: flex; flex-direction: column; min-width: 0; padding: 0; overflow: hidden;
  appearance: none; background: var(--color-white); color: var(--color-ink); border: var(--border-card);
  border-radius: 0; text-align: left; font: inherit; cursor: pointer;
  transition: box-shadow var(--t-fast), transform var(--t-fast);
}
.pt-person:hover { box-shadow: 0 0 0 3px var(--color-accent); transform: translateY(-2px); }
.pt-person:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.pt-person__photo { display: block; aspect-ratio: 5 / 3; overflow: hidden; background: #ddd; border-bottom: var(--border-card); }
.pt-person__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.pt-person:hover .pt-person__photo img { transform: scale(1.03); }
.pt-person__bd { display: flex; flex: 1; flex-direction: column; padding: 15px 17px 17px; }
.pt-person__role { color: var(--color-accent); font-size: 10.5px; font-weight: var(--fw-bold); letter-spacing: .06em; line-height: 1.6; }
.pt-person__name { margin-top: 4px; font-family: var(--font-display); font-size: 21px; letter-spacing: .06em; line-height: 1.45; }
.pt-person__name small { margin-left: 9px; color: var(--color-sub); font-family: var(--font-body); font-size: 10px; font-weight: 400; letter-spacing: .04em; }
.pt-person__desc { margin-top: 7px; font-size: 12.5px; font-weight: var(--fw-bold); line-height: 1.75; }
.pt-person__areas { margin-top: 9px; padding-top: 9px; border-top: var(--rule-dotted); color: var(--color-sub); font-size: 10.5px; line-height: 1.75; }
.pt-person__go { margin-top: auto; padding-top: 10px; color: var(--color-accent); font-size: 11.5px; font-weight: var(--fw-bold); }
.pt-section-lead--wide { max-width: 830px; line-height: 1.9; text-wrap: pretty; }
@media (max-width: 620px) {
  .pt-people { padding: 14px 12px; }
  .pt-people__grid { grid-template-columns: 1fr; gap: 10px; }
  .pt-people__lead { font-size: 11.5px; }
  .pt-person { display: grid; grid-template-columns: minmax(116px, 38%) 1fr; }
  .pt-person__photo { height: 100%; min-height: 190px; aspect-ratio: auto; border-right: var(--border-card); border-bottom: 0; }
  .pt-person__bd { padding: 12px; }
  .pt-person__name { font-size: 18px; }
  .pt-person__name small { display: block; margin: 1px 0 0; }
  .pt-person__desc { font-size: 11.5px; }
  .pt-person__areas { font-size: 10px; }
}

/* ====================== 汎用カード（3列 / 2列。スマホでも2列） ====================== */
.pt-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pt-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 860px) { .pt-grid3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) {
  .pt-grid3, .pt-grid2 { grid-template-columns: 1fr 1fr; gap: 8px; }
  /* 3枚のときの3枚目が半分幅でぽつんと残るので、幅いっぱいにする */
  .pt-grid3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}

.pt-card { background: var(--color-white); border: var(--border-card); display: flex; flex-direction: column; overflow: hidden; color: var(--color-ink); text-decoration: none; }
a.pt-card { transition: box-shadow var(--t-fast), transform var(--t-fast); }
a.pt-card:hover { box-shadow: 0 0 0 3px var(--color-accent); transform: translateY(-2px); }
.pt-card__media { aspect-ratio: 3 / 2; overflow: hidden; background: #ddd; border-bottom: var(--border-card); }
.pt-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.pt-card:hover .pt-card__media img { transform: scale(1.04); }
.pt-card__mini { height: 146px; display: grid; place-items: center; overflow: hidden; background: var(--color-bg); border-bottom: var(--border-card); }
.pt-card__mini img { display: block; width: auto; height: 122px; max-width: 58%; object-fit: contain; }
.pt-card__bd { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; }
.pt-card__no { font-family: var(--font-display); font-size: 19px; color: var(--color-accent); line-height: 1; }
.pt-card__t { font-family: var(--font-display); font-size: 18px; letter-spacing: .03em; line-height: 1.5; margin-top: 4px; }
.pt-card__d { font-size: 13px; color: var(--color-ink); line-height: 1.95; margin-top: 8px; }
.pt-card__key {
  display: block; width: fit-content; margin-bottom: 4px; padding: 0 .08em;
  font-weight: var(--fw-bold); line-height: 1.75;
  background: linear-gradient(transparent 58%, rgba(240, 183, 31, .34) 58%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.pt-card__go { margin-top: auto; padding-top: 10px; font-size: 11.5px; font-weight: var(--fw-bold); color: var(--color-accent); }
@media (max-width: 620px) {
  .pt-card__bd { padding: 9px 10px 12px; }
  .pt-card__no { font-size: 15px; }
  .pt-card__t { font-size: 13.5px; line-height: 1.45; }
  .pt-card__d { font-size: 11px; line-height: 1.85; margin-top: 5px; }
  .pt-card__key { margin-bottom: 3px; line-height: 1.7; }
  .pt-card__go { font-size: 10.5px; }
  .pt-card__mini { height: 102px; }
  .pt-card__mini img { height: 84px; max-width: 64%; }
}

/* ====================== ✓ の2列リスト（応えてきた無茶振り） ====================== */
.pt-list { background: var(--color-white); border: var(--border-card); padding: 8px 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.pt-list__i { display: flex; align-items: baseline; gap: 10px; padding: 12px 2px; border-bottom: var(--rule-dotted); font-size: 13.5px; font-weight: var(--fw-bold); line-height: 1.75; }
.pt-list__i::before { content: "✓"; color: var(--color-accent); font-weight: 700; flex-shrink: 0; }
.pt-list__i--detail { position: relative; display: block; padding-left: 28px; }
.pt-list__i--detail::before { position: absolute; top: 12px; left: 2px; }
.pt-list__i--detail summary { position: relative; padding-right: 28px; list-style: none; cursor: pointer; }
.pt-list__i--detail summary::-webkit-details-marker { display: none; }
.pt-list__i--detail summary::after { content: "＋"; position: absolute; top: 0; right: 0; color: var(--color-accent); font-size: 17px; line-height: 1.45; }
.pt-list__i--detail[open] summary::after { content: "−"; }
.pt-list__i--detail summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.pt-list__i--detail p { margin: 8px 0 2px; padding-top: 8px; border-top: var(--rule-dotted); color: var(--color-ink); font-size: 12px; font-weight: 400; line-height: 1.9; }
/* スマホでは1列（2列だと1項目が3行に折れて読みづらい） */
@media (max-width: 640px) {
  .pt-list { padding: 6px 12px; grid-template-columns: 1fr; }
  .pt-list__i { font-size: 12px; gap: 6px; padding: 9px 0; line-height: 1.6; }
  .pt-list__i--detail { padding-left: 22px; }
  .pt-list__i--detail::before { top: 9px; left: 0; }
}

/* 視察プランナーへの1行（枠を増やさない） */
.pt-more { margin: 18px 0 0; text-align: center; font-size: 13px; line-height: 2; color: var(--color-ink); }
.pt-more a { color: var(--color-link); text-decoration: underline; white-space: nowrap; }

/* 運営からのひとこと（左に太いイチョウ罫） */
.pt-callout { margin: 16px 0 0; padding: 12px 16px; border: var(--border-card); border-left: 6px solid var(--color-accent); background: var(--color-white); font-size: 12.5px; line-height: 2; color: var(--color-ink); }
.pt-callout b { font-weight: var(--fw-bold); }
.pt-callout a { color: var(--color-link); text-decoration: underline; }

/* 注記 */
.pt-disc { font-size: 11px; color: var(--color-sub); line-height: 1.95; margin-top: 14px; }
.pt-disc--center { text-align: center; }

/* ====================== 最後のひとこと ====================== */
.pt-close { background: var(--color-white); border: var(--border-card); padding: clamp(24px, 4vw, 40px) clamp(16px, 4vw, 40px); text-align: center; }
.pt-close__t { font-family: var(--font-display); font-size: clamp(19px, 2.8vw, 27px); letter-spacing: .05em; line-height: 1.6; margin: 0; }
.pt-close__d { font-size: 12.5px; line-height: 2; color: var(--color-ink); margin: 12px 0 0; }
.pt-close__sign { font-size: 11.5px; color: var(--color-sub); margin: 12px 0 0; }

/* ====================== 運営者プロフィールのモーダル ====================== */
.pt-profile-dialog {
  width: min(640px, calc(100% - 28px)); max-height: 86vh; max-height: min(86dvh, 780px); margin: auto; padding: 0;
  overflow: hidden; color: var(--color-ink); background: var(--color-white); border: var(--border-card); border-radius: 0;
}
.pt-profile-dialog::backdrop { background: rgba(29, 26, 20, .72); }
.pt-profile-dialog__panel { display: flex; flex-direction: column; max-height: 86vh; max-height: min(86dvh, 780px); }
.pt-profile-dialog__head { display: flex; flex: none; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 17px 18px 15px; background: var(--color-bg); border-bottom: var(--border-card); }
.pt-profile-dialog__title { margin: 0; font-family: var(--font-display); font-size: 24px; letter-spacing: .06em; line-height: 1.4; }
.pt-profile-dialog__subtitle { margin: 3px 0 0; color: var(--color-sub); font-size: 11px; font-weight: var(--fw-bold); line-height: 1.6; letter-spacing: .05em; }
.pt-profile-dialog__close { display: grid; flex: none; width: 38px; height: 38px; padding: 0; place-items: center; appearance: none; color: var(--color-ink); background: var(--color-white); border: var(--border-card); border-radius: 0; font: inherit; font-size: 24px; line-height: 1; cursor: pointer; }
.pt-profile-dialog__close:hover { background: var(--color-accent-soft); }
.pt-profile-dialog__close:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }
.pt-profile-dialog__body { padding: 20px 22px 24px; overflow-y: auto; overscroll-behavior: contain; }
.pt-profile-dialog .prof { font-size: 13px; line-height: 1.95; }
.pt-profile-dialog .prof__sec + .prof__sec { margin-top: 18px; padding-top: 17px; border-top: var(--rule-dotted); }
.pt-profile-dialog .prof__h { margin-bottom: 6px; color: var(--color-accent); font-family: var(--font-display); font-size: 16px; font-weight: var(--fw-bold); letter-spacing: .05em; }
.pt-profile-dialog .prof p { margin: 0; }
.pt-profile-dialog .prof__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 1px 0 9px; }
.pt-profile-dialog .prof__tags span { padding: 4px 8px; color: var(--color-ink); background: var(--color-bg); border: 1px solid var(--color-ink); font-size: 10.5px; font-weight: var(--fw-bold); line-height: 1.4; }
.pt-profile-dialog .prof__quote { margin-top: 20px; padding: 14px 16px; background: var(--color-bg); border-left: 5px solid var(--color-accent); font-family: var(--font-display); font-size: 14px; line-height: 1.8; }
@media (max-width: 620px) {
  .pt-profile-dialog__head { padding: 14px 12px 12px; }
  .pt-profile-dialog__title { font-size: 20px; }
  .pt-profile-dialog__subtitle { max-width: 230px; font-size: 10px; }
  .pt-profile-dialog__body { padding: 16px 14px 20px; }
  .pt-profile-dialog .prof { font-size: 12px; line-height: 1.9; }
}

/* ====================== 下部固定バー（スマホ） ====================== */
.pt-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--color-ink); border-top: 3px solid var(--color-accent); display: none; }
.pt-bar__in { max-width: var(--content-max); margin: 0 auto; padding: 9px 14px; display: flex; align-items: center; gap: 12px; }
.pt-bar__txt { color: var(--color-accent-fill); font-family: var(--font-display); font-size: 14px; line-height: 1.3; flex: 1; min-width: 0; }
.pt-bar__txt small { display: block; font-family: var(--font-body); font-size: 10px; color: #b9b9b9; letter-spacing: .02em; }
.pt-bar__btn { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 8px 16px; border-radius: var(--radius-button); background: var(--color-accent-fill); color: #2a2113; font-family: var(--font-button); font-weight: var(--fw-bold); font-size: 13px; letter-spacing: .04em; text-decoration: none; }
@media (max-width: 760px) {
  .pt-bar { display: block; }
  body { padding-bottom: 64px; }
  .pt-bar.is-hidden { display: none; }   /* フォームが見えている間は出さない（ボタンが送信ボタンに被る） */
}

/* ====================== フォーム（contact.html の .cf-* と同じ） ====================== */
.cf-wrap { max-width: 720px; margin: 0 auto; }
.cf-kinds { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (max-width: 560px) { .cf-kinds { grid-template-columns: 1fr; } }
.cf-kind { display: flex; align-items: flex-start; gap: 10px; text-align: left; padding: 13px 14px; background: var(--color-white); border: 2px solid var(--color-ink); border-radius: var(--radius-button); cursor: pointer; font: inherit; color: var(--color-ink); transition: background var(--t-fast), border-color var(--t-fast); }
.cf-kind:hover { background: #faf7ef; }
.cf-kind.on { border-color: var(--color-accent); background: #fbf6e9; }
.cf-kind .mark { flex: none; width: 16px; height: 16px; margin-top: 3px; border: 2px solid var(--color-ink); border-radius: 50%; position: relative; background: #fff; }
.cf-kind.on .mark { border-color: var(--color-accent); }
.cf-kind.on .mark::after { content: ""; position: absolute; inset: 2px; border-radius: 50%; background: var(--color-accent-fill); }
.cf-kind .tx { line-height: 1.55; }
.cf-kind .tx b { display: block; font-weight: 700; font-size: 14px; }
.cf-kind .tx span { display: block; font-size: 11.5px; color: var(--color-sub); margin-top: 2px; }
.cf-f { margin-top: 22px; }
.cf-f > label, .cf-legend { display: block; font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--color-ink); margin-bottom: 8px; }
.cf-req, .cf-opt { display: inline-block; margin-left: 8px; padding: 2px 7px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; border-radius: 2px; vertical-align: 2px; }
.cf-req { background: var(--color-ink); color: #fff; }
.cf-opt { background: #e4e4e4; color: var(--color-sub); }
.cf-note { font-size: 11.5px; font-weight: 400; color: var(--color-sub); margin: 0 0 8px; line-height: 1.7; }
.cf-f input[type=text], .cf-f input[type=email], .cf-f input[type=tel], .cf-f select, .cf-f textarea { width: 100%; box-sizing: border-box; font: inherit; font-size: 15px; line-height: 1.7; padding: 12px 13px; background: var(--color-white); color: var(--color-ink); border: 2px solid var(--color-ink); border-radius: var(--radius-button); appearance: none; }
.cf-f select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23333' stroke-width='1.8'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; background-size: 12px 8px; padding-right: 36px; }
.cf-f textarea { min-height: 150px; resize: vertical; }
.cf-f input:focus, .cf-f select:focus, .cf-f textarea:focus { outline: 2px solid var(--color-accent); outline-offset: 1px; }
.cf-f.bad input, .cf-f.bad select, .cf-f.bad textarea { border-color: #b6482a; }
.cf-err { display: none; margin-top: 6px; font-size: 12px; color: #b6482a; font-weight: 700; }
.cf-f.bad .cf-err { display: block; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .cf-row { grid-template-columns: 1fr; } }
.cf-row .cf-f { margin-top: 0; }
.cf-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; }
.cf-check input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--color-accent-fill); }
.cf-check label { font-size: 12.5px; line-height: 1.9; color: var(--color-ink); }
.cf-check a { color: var(--color-link); text-decoration: underline; }
.cf-submit { width: 100%; margin-top: 26px; padding: 17px 20px; font-family: var(--font-button); font-size: 16px; font-weight: 700; letter-spacing: .1em; color: #fff; background: var(--color-ink); border: 2px solid var(--color-ink); border-radius: var(--radius-button); cursor: pointer; transition: opacity var(--t-fast); }
.cf-submit:hover { opacity: .85; }
.cf-submit[disabled] { opacity: .5; cursor: default; }
.cf-msg { margin-top: 12px; font-size: 13px; font-weight: 700; color: #b6482a; line-height: 1.8; }
.cf-privacy { margin-top: 18px; font-size: 11.5px; line-height: 1.9; color: var(--color-sub); }
.cf-privacy a { color: var(--color-link); }
.cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* 添付 */
.cf-files { border: 2px dashed var(--color-ink); background: var(--color-white); padding: 14px; }
.cf-files input[type=file] { position: absolute; left: -9999px; width: 1px; height: 1px; }
.cf-files__btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; font: inherit; font-size: 13px; font-weight: 700; color: var(--color-ink); background: var(--color-white); border: 2px solid var(--color-ink); border-radius: var(--radius-button); cursor: pointer; }
.cf-files__btn:hover { background: #faf7ef; }
.cf-files__hint { font-size: 11.5px; color: var(--color-sub); margin: 8px 0 0; line-height: 1.7; }
.cf-files__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cf-files__list:empty { display: none; }
.cf-files__list li { display: flex; align-items: center; gap: 10px; font-size: 12.5px; padding: 8px 10px; border: 2px solid var(--color-ink); background: #fbf6e9; }
.cf-files__list .nm { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.cf-files__list .sz { color: var(--color-sub); font-size: 11px; white-space: nowrap; }
.cf-files__list button { border: 0; background: none; font: inherit; font-size: 18px; line-height: 1; cursor: pointer; color: var(--color-sub); padding: 0 2px; }
.cf-files__list button:hover { color: #b6482a; }
/* 送信完了 */
.cf-done { display: none; text-align: center; padding: 10px 0 0; }
.cf-done.on { display: block; }
.cf-done h2 { font-family: var(--font-display); font-size: clamp(24px, 3vw, 32px); font-weight: 400; margin: 0 0 16px; }
.cf-done p { font-size: 13.5px; line-height: 2; color: var(--color-ink); margin: 0 0 12px; }
.cf-done .ticket { display: inline-block; margin: 6px 0 18px; padding: 10px 22px; background: var(--color-white); border: 2px solid var(--color-ink); border-radius: var(--radius-button); font-size: 13px; letter-spacing: .06em; }
.cf-done .ticket b { font-size: 17px; letter-spacing: .16em; font-variant-numeric: tabular-nums; }
.cf-donebtns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 8px; }
.cf-donebtn { display: inline-block; padding: 14px 26px; font-family: var(--font-button); font-size: 14px; font-weight: 700; letter-spacing: .08em; color: #fff; background: var(--color-ink); border: 2px solid var(--color-ink); border-radius: var(--radius-button); text-decoration: none; }
.cf-donebtn.ghost { background: var(--color-white); color: var(--color-ink); }
/* 別の入口（電話・DM・メール） */
.cf-alt { margin-top: 34px; }
.cf-altbox { background: var(--color-white); border: 2px solid var(--color-ink); padding: 20px 22px; }
.cf-altrow { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; padding: 11px 0; border-bottom: var(--rule-dotted); }
.cf-altrow:last-child { border-bottom: 0; }
.cf-altrow .k { flex: none; width: 108px; font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.cf-altrow .v { font-size: 13.5px; line-height: 1.9; }
.cf-altrow .v a { color: var(--color-link); text-decoration: underline; }
.cf-altrow .v small { display: block; font-size: 11.5px; color: var(--color-sub); }
