/* 研究者のマイページ */
.mypage .vp-panel { margin-top: 18px; }
.mypage-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.mypage-list li { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap;
  padding: 8px 12px; border: 1px solid #e3eaf2; border-radius: 10px; background: #fff; }
/* 利用額：会社別と月別を横に2つ（狭い画面では縦に）。小さい表なので、共通の最小幅（640px）を外す */
.mypage-spending-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; margin: 10px 0 16px; align-items: start; }
.mypage-spending-grid > div { min-width: 0; }
.mypage-spending-grid .vp-table { min-width: 0; width: 100%; }
/* タブの行に縦のスクロールバーが出ないように */
.mypage .vp-tabs { overflow-y: hidden; }
.mypage h3 { font-size: 15px; margin: 14px 0 6px; }

/* ♡ お気に入り */
.fav-wrap { display: inline-block; vertical-align: middle; }
.fav-form { display: inline-block; margin: 0 0 0 4px; vertical-align: middle; }
.fav-btn { border: 0; background: none; cursor: pointer; font-size: 18px; line-height: 1; color: #9aa9bb; padding: 2px 4px; }
.fav-btn:hover { color: #e0457b; }
.fav-btn.is-on { color: #e0457b; }
/* ハートは SVG。塗りだけを変えるので、押しても大きさが変わらない */
.fav-btn { display: inline-flex; align-items: center; justify-content: center; }
.fav-heart { display: block; width: 20px; height: 20px; }
.fav-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* マイページv2：共通タブ＋履歴。既存のvp-*とは別のmp-*を使用 */
.mp-shell { width:min(100% - 40px,1320px); margin-inline:auto; }
.mp-hero { background-color:#e8f6ff; background-size:cover; background-position:center; padding:23px 0 43px; color:#112d58; }
.mp-hero-breadcrumb {font-size:12px; margin:0 0 28px;color:#59769c;}
.mp-hero-breadcrumb a {color:#287bbd;text-decoration:none;}
.mp-hero-breadcrumb span {margin:0 8px;}
.mp-hero h1 {margin:0 0 9px;font-size:clamp(28px,3.2vw,42px);font-weight:800;color:#112b55;}
.mp-hero > .mp-shell > p:last-child {margin:0;color:#5a7498;font-size:14px;line-height:1.7;}
.mp-navigation {display:flex;justify-content:space-between;align-items:stretch;gap:20px;padding-top:18px;padding-bottom:18px;}
.mp-tabs {display:flex;align-items:stretch;gap:4px;flex:1;min-width:0;border-bottom:1px solid #d7e5f5;overflow-x:auto;}
.mp-tab {display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;padding:13px 15px 16px;border-bottom:3px solid transparent;color:#536c91;font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;}
.mp-tab:hover {background:#eff8ff;color:#087ee2;}
.mp-tab.is-active {border-bottom-color:#148cf4;color:#087be2;background:#f2faff;}
.mp-tab-icon {width:22px;height:22px;object-fit:contain;}
.mp-create-button {display:inline-flex;align-items:center;justify-content:center;gap:9px;align-self:center;min-height:50px;padding:12px 22px;border-radius:28px;background:linear-gradient(110deg,#169cff,#007bf0);color:#fff;text-decoration:none;font-weight:800;font-size:13px;white-space:nowrap;box-shadow:0 6px 16px #148af02a;}
.mp-create-button:hover {filter:brightness(1.07);}
.mp-create-button img {filter:brightness(0) invert(1);}
.mp-history-page {display:grid;gap:17px;padding:4px 0 54px;color:#15345e;}
.mp-card {min-width:0;background:#fff;border:1px solid #e3effa;border-radius:5px;box-shadow:0 10px 25px #3786c00b;}
.mp-filter-card {display:flex;align-items:center;gap:20px;padding:18px 21px;}
.mp-filter-heading,.mp-list-heading {display:flex;align-items:center;gap:13px;}
.mp-filter-heading {flex-shrink:0;}
.mp-filter-heading h2,.mp-list-heading h2 {margin:0;font-size:18px;color:#064a98;font-weight:800;}
.mp-icon-circle {display:flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#e5f4ff;}
.mp-icon-circle img {width:25px;height:25px;object-fit:contain;}
.mp-filter-form {display:flex;align-items:end;justify-content:space-between;flex:1;gap:16px;min-width:0;}
.mp-filter-item {display:flex;flex:1;flex-direction:column;gap:7px;min-width:0;font-weight:700;font-size:12px;}
.mp-filter-item select {width:100%;min-height:42px;border:1px solid #d3e2f1;border-radius:8px;padding:8px 12px;background:#fff;color:#284765;font-size:14px;}
.mp-filter-submit {min-height:42px;min-width:150px;border:1px solid #128af4;border-radius:23px;background:#fff;color:#0781eb;font-weight:800;cursor:pointer;}
.mp-filter-submit:hover,.mp-outline-button:hover {background:#eaf6ff;}
.mp-list-card {padding:18px 20px 16px;}
.mp-list-heading {margin-bottom:16px;}
.mp-list-title {display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;min-width:0;flex:1;}
.mp-list-title p {margin:0;color:#6680a1;font-size:12px;line-height:1.7;}
.mp-count {border-radius:20px;background:#eaf6ff;color:#168ae8;padding:5px 12px;font-size:12px;font-weight:700;}
.mp-table-scroll {width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:9px;}
.mp-history-page .mp-table-scroll table {width:100%;min-width:650px;border-collapse:separate;border-spacing:0;font-size:13px;}
.mp-history-page .mp-table-scroll th {background:#edf7ff;color:#193e67;font-weight:800;text-align:left;}
.mp-history-page .mp-table-scroll th,.mp-history-page .mp-table-scroll td {padding:13px 14px;border-right:1px solid #e3edf8;border-bottom:1px solid #e3edf8;vertical-align:middle;}
.mp-history-page .mp-table-scroll tr > :first-child {border-left:1px solid #e3edf8;}
.mp-history-page .mp-table-scroll thead tr:first-child > * {border-top:1px solid #e3edf8;}
.mp-history-page .mp-table-scroll tbody tr:nth-child(even) {background:#f9fcff;}
.mp-history-page .mp-table-scroll a {color:#0781e4;}
.mp-outline-button {display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 14px;border:1px solid #168cf0;background:#fff;border-radius:20px;color:#087be0;font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap;}
.mp-help-note {display:flex;align-items:flex-start;gap:13px;padding:16px 20px;border:1px solid #d9eafb;border-radius:5px;background:#eff8ff;}
.mp-help-note img {flex-shrink:0;}
.mp-help-note p {margin:0 0 5px;color:#5b7697;font-size:12px;line-height:1.85; margin-bottom:0 !important;}
.mp-help-note p:last-child {margin-bottom:0;}
@media(max-width:900px){.mp-navigation{flex-wrap:wrap}.mp-tabs{order:2;flex-basis:100%}.mp-create-button{margin-left:auto}.mp-filter-card{align-items:stretch;flex-direction:column}.mp-filter-form{width:100%;}}
@media(max-width:600px){.mp-shell{width:calc(100% - 26px)}.mp-hero{padding:18px 0 30px;background-position:62% center}.mp-hero-breadcrumb{margin-bottom:18px}.mp-hero h1{font-size:28px}.mp-hero > .mp-shell > p:last-child{font-size:12px}.mp-navigation{gap:10px;padding-top:13px}.mp-create-button{width:100%;min-height:46px}.mp-tab{font-size:12px;padding:11px 12px}.mp-tab-icon{width:19px;height:19px}.mp-filter-card,.mp-list-card{padding:15px 13px}.mp-filter-form{flex-direction:column;align-items:stretch}.mp-filter-item,.mp-filter-submit{width:100%}.mp-list-title{display:block}.mp-list-title h2{font-size:16px}.mp-count{display:inline-flex;margin-top:6px}.mp-list-heading{gap:9px}.mp-icon-circle{width:38px;height:38px;flex-basis:38px}.mp-help-note{padding:12px;gap:8px}}
.mp-create-button span{
  color:white;
  font-weight: normal;
}

/* ==========================================
   MY PAGE - PROFILE
   マイページ 登録情報
========================================== */

.mp-profile-page {
  --mp-blue: #168cf0;
  --mp-navy: #10294e;
  --mp-muted: #7189a4;
  --mp-line: #dceafa;

  min-width: 0;
  padding-bottom: 70px;
  color: var(--mp-navy);
  background-color: #f7fbff;
}

.mp-profile-page *,
.mp-profile-page *::before,
.mp-profile-page *::after {
  box-sizing: border-box;
}

.mp-profile-container {
  width: min(100% - 40px, 1120px);
  margin: 25px auto 0;
}

/* ==========================================
   ページ見出し
========================================== */

.mp-profile-heading {
  display: flex;
  align-items: center;
  gap: 17px;
  margin-bottom: 20px;
}

.mp-profile-heading-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  background: #e5f3ff;
}

.mp-profile-heading-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.mp-profile-heading-copy {
  min-width: 0;
}

.mp-profile-eyebrow {
  display: block;
  margin-bottom: 4px;

  color: #168cf0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
}

.mp-profile-heading h2 {
  margin: 0;
  color: #12375e;
  font-size: 25px;
  font-weight: 800;
}

.mp-profile-heading p {
  margin: 5px 0 0;
  color: #7890a9;
  font-size: 12px;
}

/* ==========================================
   案内エリア
========================================== */

.mp-profile-notice {
  display: flex;
  align-items: flex-start;
  gap: 14px;

  margin-bottom: 23px;
  padding: 5px 20px 0;

  border: 1px solid #d6eafb;
  border-radius: 5px;
  background: #eaf6ff;
}

.mp-profile-notice-icon {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.mp-profile-notice p {
  margin: 0;
  color: #426c93;
  font-size: 13px;
  line-height: 1.8;
}

/* ==========================================
   共通カード
========================================== */

.mp-profile-card {
  overflow: hidden;
  margin-bottom: 20px;

  border: 1px solid #e0ebf7;
  border-radius: 5px;
  background: #fff;

  box-shadow: 0 8px 30px rgba(30,98,170,.045);
}

.mp-profile-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 20px 25px;
  border-bottom: 1px solid #e6eff8;
  background: #fff;
}

.mp-profile-card-title {
  display: flex;
  align-items: center;
  gap: 15px;
}

.mp-profile-card-number {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;

  width: 45px;
  height: 45px;
  border-radius: 14px;

  background: #e7f4ff;
  color: #168cf0;
  font-size: 18px;
  font-weight: 900;
}

.mp-profile-card-title h3 {
  margin: 0;
  color: #143c65;
  font-size: 18px;
  font-weight: 800;
}

.mp-profile-card-title p {
  margin: 5px 0 0;
  color: #8398ad;
  font-size: 11px;
  line-height: 1.6;
}

.mp-profile-card-body {
  padding: 25px;
}

/* ==========================================
   メールアドレス
========================================== */

.mp-profile-email-area {
  padding: 23px 25px;
}

.mp-profile-field-title {
  display: block;
  margin-bottom: 11px;
  color: #294769;
  font-size: 13px;
  font-weight: 800;
}

.mp-profile-email-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.mp-profile-email-row strong {
  color: #173b62;
  font-size: 16px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.mp-profile-verified,
.mp-profile-unverified {
  display: inline-flex;
  align-items: center;
  gap: 6px;

  padding: 6px 12px;
  border-radius: 30px;

  font-size: 11px;
  font-weight: 800;
}

.mp-profile-verified {
  background: #e4f8ee;
  color: #0ba473;
}

.mp-profile-unverified {
  background: #fff3df;
  color: #bb7b12;
}

.mp-profile-verified span,
.mp-profile-unverified span {
  font-size: 14px;
}

.mp-profile-email-help {
  margin: 15px 0 10px;
  color: #7a8fa5;
  font-size: 12px;
  line-height: 1.8;
}

.mp-profile-page .mp-profile-resend {
  padding: 5px 17px;
  border: 1px solid #168cf0;
  border-radius: 5px;

  background: #fff;
  color: #0879d8;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.mp-profile-page .mp-profile-resend:hover {
  background: #edf7ff;
}

/* ==========================================
   入力フォーム
========================================== */

.mp-profile-form {
  display: block;
  min-width: 0;
}

.mp-profile-field {
  max-width: 620px;
}

.mp-profile-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;

  color: #244464;
  font-size: 14px;
  font-weight: 800;
}

.mp-profile-required {
  padding: 4px 9px;
  border-radius: 20px;
  background: #fff0f2;
  color: #ed5066;
  font-size: 10px;
  font-weight: 800;
}

/* 既存のプロフィール入力欄にも適用 */
.mp-profile-page .mp-profile-input,
.mp-profile-page .mp-profile-researcher-fields input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.mp-profile-page .mp-profile-researcher-fields select,
.mp-profile-page .mp-profile-researcher-fields textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 5px 14px;

  border: 1px solid #cedeed;
  border-radius: 5px;
  outline: none;

  background: #fff;
  color: #193b5b;

  font-family: inherit;
  font-size: 14px;
  line-height: 1.6;

  transition: border-color .2s, box-shadow .2s;
}

.mp-profile-page .mp-profile-input:focus,
.mp-profile-page .mp-profile-researcher-fields input:focus,
.mp-profile-page .mp-profile-researcher-fields select:focus,
.mp-profile-page .mp-profile-researcher-fields textarea:focus {
  border-color: #168cf0;
  box-shadow: 0 0 0 4px rgba(22,140,240,.10);
}

.mp-profile-researcher-fields {
  min-width: 0;
}

.mp-profile-researcher-fields label {
  color: #244464;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}

.mp-profile-researcher-fields textarea {
  min-height: 90px;
  resize: vertical;
}

.mp-profile-researcher-fields input[type="checkbox"],
.mp-profile-researcher-fields input[type="radio"] {
  width: auto;
  min-height: 0;
  accent-color: #168cf0;
}

/* ==========================================
   メール配信設定
========================================== */

.mp-profile-mail-option {
  display: flex;
  align-items: flex-start;
  gap: 15px;

  padding: 19px 20px;
  border: 1px solid #dceafa;
  border-radius: 5px;

  background: #f7fbff;
  cursor: pointer;
}

.mp-profile-checkbox {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: #168cf0;
  cursor: pointer;
}

.mp-profile-mail-option-copy {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.mp-profile-mail-option-copy strong {
  color: #214365;
  font-size: 13px;
  font-weight: 800;
}

.mp-profile-mail-option-copy small {
  color: #8296aa;
  font-size: 11px;
  line-height: 1.7;
}

/* ==========================================
   保存ボタン
========================================== */

.mp-profile-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;

  padding: 12px 0 30px;
}

.mp-profile-actions > p {
  margin: 0;
  color: #7990a7;
  font-size: 12px;
}

.mp-profile-page .mp-profile-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-height: 50px;
  padding: 10px 25px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(180deg, #38aaff, #168cf0 60%, #0876d7);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: normal;
  box-shadow: 0 7px 18px rgba(22, 128, 220, .18);
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
}

.mp-profile-save svg {
  width: 20px;
  height: 20px;
}

.mp-profile-page .mp-profile-save:hover {
  transform: translateY(-2px);
  box-shadow: 0 11px 23px rgba(22,128,220,.25);
}

/* ==========================================
   スマートフォン
========================================== */

@media (max-width: 640px) {

  .mp-profile-container {
    width: calc(100% - 26px);
    margin-top: 18px;
  }

  .mp-profile-heading {
    gap: 12px;
  }

  .mp-profile-heading-icon {
    width: 49px;
    height: 49px;
    border-radius: 13px;
  }

  .mp-profile-heading-icon img {
    width: 27px;
    height: 27px;
  }

  .mp-profile-heading h2 {
    font-size: 21px;
  }

  .mp-profile-heading p {
    font-size: 11px;
  }

  .mp-profile-notice {
    padding: 13px;
    gap: 9px;
  }

  .mp-profile-notice p {
    font-size: 11px;
  }

  .mp-profile-card {
    border-radius: 13px;
    margin-bottom: 15px;
  }

  .mp-profile-card-head {
    padding: 17px 15px;
  }

  .mp-profile-card-title {
    gap: 10px;
  }

  .mp-profile-card-number {
    width: 37px;
    height: 37px;
    border-radius: 10px;
    font-size: 14px;
  }

  .mp-profile-card-title h3 {
    font-size: 16px;
  }

  .mp-profile-card-title p {
    font-size: 10px;
  }

  .mp-profile-card-body,
  .mp-profile-email-area {
    padding: 18px 15px;
  }

  .mp-profile-email-row strong {
    font-size: 14px;
  }

  .mp-profile-page .mp-profile-input,
  .mp-profile-page .mp-profile-researcher-fields input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .mp-profile-page .mp-profile-researcher-fields select,
  .mp-profile-page .mp-profile-researcher-fields textarea {
    font-size: 16px;
  }

  .mp-profile-mail-option {
    padding: 15px 12px;
    gap: 10px;
  }

  .mp-profile-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 13px;
  }

  .mp-profile-actions > p {
    text-align: center;
  }

  .mp-profile-page .mp-profile-save {
    width: 100%;
    font-size: 14px;
  }
}

/* アクセシビリティ */
.mp-profile-page a:focus-visible,
.mp-profile-page button:focus-visible {
  outline: 3px solid #168cf0;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .mp-profile-page * {
    transition: none !important;
  }
}

/* ==========================================
   RESEARCHER PROFILE FIELDS
   所属・請求・発注情報
========================================== */

.researcher-fields {
  --rf-blue: #168cf0;
  --rf-navy: #173a60;
  --rf-muted: #7c91a8;
  --rf-line: #dce9f6;
  width: 100%;
  min-width: 0;
  color: var(--rf-navy);
}

.researcher-fields *,
.researcher-fields *::before,
.researcher-fields *::after {
  box-sizing: border-box;
}

/* セクション */
.researcher-fields-section + .researcher-fields-section {
  margin-top: 36px;
  padding-top: 30px;
  border-top: 1px solid #e3edf7;
}

/* 見出し */
.researcher-fields-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 23px;
}

.researcher-fields-heading-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: #e6f4ff;
  color: #168cf0;
}

.researcher-fields-heading-icon svg {
  width: 25px;
  height: 25px;
}

.researcher-fields-icon-green {
  background: #e4f9f3;
  color: #0eaf95;
}

.researcher-fields-heading h2 {
  margin: 0;
  color: #173a60;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.4;
}

.researcher-fields-heading p {
  margin: 5px 0 0;
  color: #8196ab;
  font-size: 12px;
  line-height: 1.8;
}

/* 2列入力グリッド */
.researcher-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 21px 20px;
}

/* 個別入力 */
.researcher-field {
  min-width: 0;
}

.researcher-field-wide {
  grid-column: 1 / -1;
}

.researcher-field-label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 9px;
  color: #254666;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.6;
}

/* 必須 */
.researcher-field-required {
  padding: 3px 9px;
  border-radius: 20px;
  background: #fff0f2;
  color: #ed4d63;
  font-size: 10px;
  font-weight: 800;
}

/* 任意 */
.researcher-field-optional {
  padding: 3px 9px;
  border-radius: 20px;
  background: #edf4fa;
  color: #7c91a8;
  font-size: 10px;
  font-weight: 700;
}

/* 入力欄 */
.researcher-fields .researcher-field-input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 49px;
  margin: 0;
  padding: 11px 15px;
  border: 1px solid #cfdeec;
  border-radius: 9px;
  outline: none;
  background: #fff;
  color: #173a60;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  transition: border-color .2s, box-shadow .2s;
}

.researcher-fields .researcher-field-input::placeholder {
  color: #a0b0c0;
  opacity: 1;
}

.researcher-fields .researcher-field-input:focus {
  border-color: #168cf0;
  box-shadow: 0 0 0 4px rgba(22,140,240,.11);
}

/* テキストエリア */
.researcher-fields .researcher-field-textarea {
  min-height: 105px;
  resize: vertical;
}

/* 代理店の区切り */
.researcher-fields-subheading {
  margin: 6px 0 0;
  padding: 15px 17px;
  border-left: 4px solid #16b99d;
  border-radius: 0 9px 9px 0;
  background: #f0faf8;
}

.researcher-fields-subheading h3 {
  margin: 0;
  color: #137c70;
  font-size: 14px;
  font-weight: 800;
}

.researcher-fields-subheading p {
  margin: 5px 0 0;
  color: #66958e;
  font-size: 11px;
  line-height: 1.7;
}

/* 入力欄のホバー */
@media (hover: hover) {
  .researcher-fields .researcher-field-input:hover {
    border-color: #9bc7eb;
  }
}

/* スマートフォン */
@media (max-width: 640px) {
  .researcher-fields-section + .researcher-fields-section {
    margin-top: 29px;
    padding-top: 25px;
  }

  .researcher-fields-heading {
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 20px;
  }

  .researcher-fields-heading-icon {
    width: 41px;
    height: 41px;
    border-radius: 11px;
  }

  .researcher-fields-heading-icon svg {
    width: 22px;
    height: 22px;
  }

  .researcher-fields-heading h2 {
    font-size: 17px;
  }

  .researcher-fields-heading p {
    font-size: 11px;
  }

  .researcher-fields-grid {
    grid-template-columns: 1fr;
    gap: 17px;
  }

  .researcher-field-wide {
    grid-column: auto;
  }

  .researcher-fields .researcher-field-input {
    min-height: 48px;
    font-size: 16px;
  }

  .researcher-fields-subheading {
    padding: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .researcher-fields .researcher-field-input {
    transition: none;
  }
}

/* ==========================================
   MY PAGE HISTORY v3
   依頼・注文の履歴
========================================== */

.mp-history-v3 {
  --mpv3-blue: #087eff;
  --mpv3-navy: #102e58;
  --mpv3-muted: #7690ad;
  --mpv3-border: #dceaf8;

  width: min(100% - 36px, 1320px);
  margin: 24px auto 70px;
  padding: 0;
  color: var(--mpv3-navy);
}

.mp-history-v3,
.mp-history-v3 *,
.mp-history-v3 *::before,
.mp-history-v3 *::after {
  box-sizing: border-box;
}

/* 共通カード */
.mp-history-v3 .mp-card {
  width: 100%;
  margin: 0 0 20px;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e3effa;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 9px 30px rgba(35,112,185,.065);
}

/* アイコン */
.mpv3-icon-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #e8f5ff;
}

.mpv3-icon-circle img {
  display: block;
  width: 26px;
  height: 26px;
  object-fit: contain;
}

/* 検索条件カード */
.mp-history-v3 .mpv3-filter-card {
  padding: 18px 22px;
}

.mpv3-filter-heading {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 17px;
}

.mpv3-filter-heading h2 {
  margin: 0;
  color: #123c76;
  font-size: 19px;
  font-weight: 800;
}

.mpv3-filter-heading p {
  margin: 4px 0 0;
  color: #8398b0;
  font-size: 12px;
}

.mpv3-filter-form {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
  align-items: end;
  gap: 17px;
}

.mpv3-filter-item {
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-width: 0;
  color: #28486d;
  font-size: 13px;
  font-weight: 800;
}

.mpv3-filter-item select {
  display: block;
  width: 100%;
  min-width: 0;
  height: 46px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #d0dfef;
  border-radius: 9px;
  background: #fff;
  color: #305477;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
}

.mp-history-v3 .mpv3-filter-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 46px;
  min-width: 154px;
  margin: 0;
  padding: 0 22px;
  border: 1.5px solid #168cf0;
  border-radius: 25px;
  background: #fff;
  color: #087be4;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.mpv3-filter-submit:hover {
  background: #eaf6ff;
}

/* 履歴カードの見出し */
.mpv3-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 20px 23px 16px;
}

.mpv3-list-heading-main {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.mpv3-list-title {
  min-width: 0;
}

.mpv3-title-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 13px;
}

.mpv3-list-title h2 {
  margin: 0;
  color: #0750a1;
  font-size: 20px;
  font-weight: 800;
}

.mpv3-list-title p,
.mpv3-list-description {
  margin: 6px 0 0;
  color: #728ba8;
  font-size: 11px;
  line-height: 1.8;
}

.mpv3-list-description {
  max-width: 51%;
  text-align: right;
}

.mpv3-count {
  display: inline-flex;
  align-items: center;
  padding: 4px 14px;
  border-radius: 25px;
  background: #e7f5ff;
  color: #087fe4;
  font-size: 10px;
  font-weight: normal;
  white-space: nowrap;
}

/* テーブル */
.mpv3-table-scroll {
  width: calc(100% - 40px);
  margin: 0 20px 18px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.mp-history-v3 .mpv3-table-scroll table {
  width: 100%;
  min-width: 660px;
  margin: 0;
  border: 1px solid #dceaf8;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 9px;
  background: #fff;
}

.mp-history-v3 .mpv3-table-scroll th,
.mp-history-v3 .mpv3-table-scroll td {
  padding: 14px 15px;
  border-right: 1px solid #e0edf9;
  border-bottom: 1px solid #e0edf9;
  color: #23446b;
  font-size: 12px;
  line-height: 1.75;
  vertical-align: middle;
  text-align: left;
}

.mp-history-v3 .mpv3-table-scroll th {
  background: #edf7ff;
  color: #173d69;
  font-weight: 800;
}

.mp-history-v3 .mpv3-table-scroll tr > :last-child {
  border-right: 0;
}

.mp-history-v3 .mpv3-table-scroll tbody tr:last-child td {
  border-bottom: 0;
}

.mp-history-v3 .mpv3-table-scroll tbody tr:nth-child(even) {
  background: #f9fcff;
}

.mp-history-v3 .mpv3-table-scroll tbody tr:hover {
  background: #f0f8ff;
}

.mp-history-v3 .mpv3-table-scroll a {
  color: #087cde;
  font-weight: 700;
}

.mp-history-v3 .mpv3-table-scroll .vp-sub {
  margin-top: 4px;
  color: #7188a2;
  font-size: 11px;
}

/* 操作ボタン */
.mp-history-v3 .mpv3-outline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 37px;
  padding: 8px 16px;
  border: 1.5px solid #168cf0;
  border-radius: 23px;
  background: #fff;
  color: #087be4;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.mpv3-outline-button:hover {
  background: #eaf6ff;
}

/* 補足 */
.mpv3-help-note {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 17px 20px;
  border: 1px solid #dbeefa;
  border-radius: 12px;
  background: #eaf6ff;
}

.mpv3-help-note > img {
  flex-shrink: 0;
  width: 27px;
  height: 27px;
  object-fit: contain;
}

.mpv3-help-note p {
  margin: 0 0 5px;
  color: #557797;
  font-size: 12px;
  line-height: 1.8;
}

.mpv3-help-note p:last-child {
  margin-bottom: 0;
}

/* タブレット */
@media (max-width: 900px) {
  .mpv3-list-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .mpv3-list-description {
    max-width: 100%;
    margin-left: 62px;
    text-align: left;
  }
}

/* スマートフォン */
@media (max-width: 640px) {
  .mp-history-v3 {
    width: calc(100% - 26px);
    margin: 18px auto 45px;
  }

  .mp-history-v3 .mp-card {
    border-radius: 13px;
    margin-bottom: 15px;
  }

  .mp-history-v3 .mpv3-filter-card {
    padding: 17px 14px;
  }

  .mpv3-filter-form {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .mpv3-filter-item select {
    font-size: 16px;
  }

  .mp-history-v3 .mpv3-filter-submit {
    width: 100%;
    margin-top: 4px;
  }

  .mpv3-list-heading {
    padding: 17px 14px 13px;
  }

  .mpv3-icon-circle {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }

  .mpv3-icon-circle img {
    width: 23px;
    height: 23px;
  }

  .mpv3-list-heading-main {
    gap: 10px;
  }

  .mpv3-list-title h2 {
    font-size: 17px;
  }

  .mpv3-list-description {
    margin-left: 50px;
    font-size: 11px;
  }

  .mpv3-count {
    font-size: 10px;
    padding: 5px 10px;
  }

  .mpv3-table-scroll {
    width: calc(100% - 24px);
    margin: 0 12px 13px;
  }

  .mp-history-v3 .mpv3-table-scroll th,
  .mp-history-v3 .mpv3-table-scroll td {
    padding: 11px 10px;
    font-size: 11px;
  }

  .mpv3-help-note {
    padding: 13px;
    gap: 9px;
  }

  .mpv3-help-note p {
    font-size: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mp-history-v3 *,
  .mp-history-v3 *::before,
  .mp-history-v3 *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* ==========================================
   QUOTE REQUEST VIEW
   見積依頼の詳細ページ
========================================== */

.qrv-page {
  --qrv-blue: #168cf0;
  --qrv-navy: #102b50;
  --qrv-muted: #6984a3;
  --qrv-line: #dceaf7;

  min-width: 0;
  padding-bottom: 75px;
  background: #f7fbff;
  color: var(--qrv-navy);
}

.qrv-page,
.qrv-page *,
.qrv-page *::before,
.qrv-page *::after {
  box-sizing: border-box;
}

.qrv-container {
  width: min(100% - 40px, 1180px);
  margin: 0 auto;
}

/* ==========================================
   ヒーロー・背景
========================================== */

.qrv-hero {
  min-height: 245px;
  padding: 25px 0 60px;
  background-color: #e8f6ff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.qrv-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 38px;
  color: #577595;
  font-size: 12px;
}

.qrv-breadcrumb a {
  color: #3177bb;
  text-decoration: none;
}

.qrv-breadcrumb a:hover {
  text-decoration: underline;
}

.qrv-hero-heading {
  display: flex;
  align-items: center;
  gap: 22px;
}

.qrv-eyebrow {
  display: block;
  margin-bottom: 6px;
  color: #168cf0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
}

.qrv-hero h1 {
  margin: 0;
  color: #102e60;
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 800;
  line-height: 1.4;
}

.qrv-hero-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
  color: #557397;
  font-size: 14px;
}

.qrv-hero-meta strong {
  color: #244e82;
}

.qrv-request-status {
  display: inline-flex;
  padding: 5px 12px;
  border: 1px solid #cae4fa;
  border-radius: 30px;
  background: rgba(255,255,255,.8);
  color: #147cd6;
  font-size: 12px;
  font-weight: 800;
}

/* ==========================================
   共通アイコン
========================================== */

.qrv-section-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #e6f4ff;
  color: #0788ee;
}

.qrv-section-icon svg {
  width: 29px;
  height: 29px;
}

.qrv-hero-icon {
  flex-basis: 76px;
  width: 76px;
  height: 76px;
  background: rgba(205,235,255,.85);
}

.qrv-hero-icon svg {
  width: 37px;
  height: 37px;
}

/* ==========================================
   本文・カード
========================================== */

.qrv-main {
  position: relative;
  margin-top: -18px;
}

.qrv-card {
  min-width: 0;
  margin-bottom: 20px;
  padding: 28px 31px;
  border: 1px solid #e0edf8;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 10px 34px rgba(31,107,178,.055);
}

.qrv-card-heading {
  display: flex;
  align-items: center;
  gap: 17px;
  margin-bottom: 21px;
}

.qrv-card-heading h2 {
  margin: 0;
  color: #0755a6;
  font-size: 21px;
  font-weight: 800;
  line-height: 1.4;
}

.qrv-card-heading p {
  margin: 5px 0 0;
  color: #7890aa;
  font-size: 12px;
  line-height: 1.75;
}

.qrv-card-heading-split {
  justify-content: space-between;
}

.qrv-heading-left {
  display: flex;
  align-items: center;
  gap: 17px;
}

.qrv-count {
  padding: 7px 15px;
  border-radius: 30px;
  background: #e8f5ff;
  color: #087edc;
  font-size: 12px;
  font-weight: 800;
}

/* ==========================================
   注文状況
========================================== */

.qrv-order-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 18px 20px;
  border: 1px solid #dcebf8;
  border-radius: 5px;
  background: #f5faff;
}

.qrv-order-summary p {
  margin: 0;
  color: #345b80;
  font-size: 14px;
  line-height: 1.8;
}

.qrv-order-status {
  color: #65809d;
  font-size: 12px;
}

.qrv-confirmed {
  margin-top: 17px;
  padding: 18px 20px;
  border-radius: 10px;
  background: #eefaf5;
  color: #236a59;
}

.qrv-confirmed p {
  margin: 0 0 9px;
  font-size: 13px;
  line-height: 1.8;
}

.qrv-confirmed p:last-child {
  margin-bottom: 0;
}

.qrv-confirmed strong {
  color: #087955;
  font-size: 19px;
}

/* 金額変更 */
.qrv-alert {
  margin: 15px 0 0;
  padding: 17px 20px;
  border: 1px solid #d8eafa;
  border-radius: 5px;
  background: #f3f9ff;
  color: #426483;
  font-size: 13px;
  line-height: 1.85;
}

.qrv-alert h3 {
  margin: 0 0 12px;
  color: #173e67;
  font-size: 16px;
}

.qrv-alert p {
  margin: 0 0 0px;
}

.qrv-alert p:last-child {
  margin-bottom: 0;
}

.qrv-alert-warning {
  border-color: #f1d69a;
  background: #fffbf1;
  color: #825e2b;
}

.qrv-alert-warning h3 {
  color: #ae7017;
}

.qrv-alert-danger {
  border-color: #f2cfd0;
  background: #fff6f6;
  color: #894e50;
}

.qrv-alert-info {
  border-color: #cee7fb;
  background: #eff8ff;
}

.qrv-alert-muted {
  border-color: #e2e8ef;
  background: #f7f9fc;
  color: #6b7d90;
}

.qrv-amount-comparison {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin: 17px 0;
}

.qrv-amount-comparison > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 19px;
  border: 1px solid #e3d6bd;
  border-radius: 9px;
  background: #fff;
}

.qrv-amount-comparison small {
  color: #8292a0;
  font-size: 11px;
}

.qrv-amount-comparison strong {
  color: #244967;
  font-size: 19px;
}

.qrv-amount-comparison .qrv-amount-proposed strong {
  color: #d54e2d;
}

/* ==========================================
   ボタン
========================================== */

.qrv-page .qrv-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 43px;
  padding: 10px 19px;
  border-radius: 25px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
}

.qrv-page .qrv-button-primary {
  border: 1px solid #168cf0;
  background: linear-gradient(180deg,#37a7ff,#0878df);
  color: #fff;
  box-shadow: 0 5px 13px rgba(22,131,231,.13);
}

.qrv-page .qrv-button-secondary,
.qrv-page .qrv-button-outline {
  border: 1px solid #168cf0;
  background: #fff;
  color: #087de5;
}

.qrv-page .qrv-button:hover {
  filter: brightness(.97);
}

.qrv-actions,
.qrv-order-actions,
.qrv-quote-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
}

.qrv-page .qrv-actions form,
.qrv-page .qrv-order-actions form {
  margin: 0;
}

.qrv-action-details {
  min-width: 0;
}

.qrv-action-details summary {
  display: inline-flex;
  align-items: center;
  padding: 10px 15px;
  border: 1px solid #d3e1f0;
  border-radius: 23px;
  background: #fff;
  color: #54708b;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.qrv-reject-form {
  max-width: 550px;
  margin-top: 14px;
}

.qrv-reject-form label {
  display: block;
  font-size: 12px;
  font-weight: 700;
}

.qrv-reject-form textarea {
  display: block;
  width: 100%;
  min-height: 75px;
  margin: 8px 0 12px;
  padding: 10px;
  border: 1px solid #d0e0ee;
  border-radius: 8px;
}

/* ==========================================
   各社の回答カード
========================================== */

.qrv-comparison-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
  padding: 13px 16px;
  border-radius: 10px;
  background: #f2f8ff;
}

.qrv-comparison-actions span {
  color: #758da5;
  font-size: 11px;
  line-height: 1.7;
}

.qrv-quote-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

.qrv-page .qrv-company-card {
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dae9f8;
  border-radius: 5px;
  background: #fff;
  box-shadow: none;
}

.qrv-page .qrv-company-card.qq-attention {
  border-color: #f0ba69;
}

.qrv-page .qrv-company-card.is-refused {
  border-color: #f0d5d5;
}

.qrv-company-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 18px 22px;
  border-bottom: 1px solid #e0edf8;
  background: #f6fbff;
}

.qrv-company-heading {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.qrv-company-heading strong {
  color: #173d6b;
  font-size: 17px;
  font-weight: 800;
}

.qrv-company-heading > span {
  color: #6d87a1;
  font-size: 12px;
  line-height: 1.6;
}

.qrv-company-head .badge {
  flex-shrink: 0;
  max-width: 100%;
  white-space: normal;
}

/* 回答カード内の余白 */
.qrv-company-card > :not(.qrv-company-head) {
  margin-left: 22px;
  margin-right: 22px;
}

.qrv-company-card > :last-child {
  margin-bottom: 20px;
}

/* 金額 */
.qrv-quote-amount {
  padding: 18px 0 13px;
}

.qrv-quote-amount small {
  display: block;
  margin-bottom: 6px;
  color: #718ba6;
  font-size: 11px;
  font-weight: 700;
}

.qrv-page .qrv-quote-amount .quote-amount {
  margin: 0;
  color: #086dc8;
  font-size: clamp(19px, 2.5vw, 27px);
  font-weight: 900;
  line-height: 1.5;
}

/* ==========================================
   詳細テーブル
========================================== */

.qrv-table-scroll {
  min-width: 0;
  overflow-x: auto;
}

.qrv-page .qrv-kv-table {
  width: 100%;
  margin: 0;
  border: 1px solid #deebf7;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 5px;
  overflow: hidden;
}

.qrv-page .qrv-kv-table th,
.qrv-page .qrv-kv-table td {
  padding: 5px 16px;
  border: 0;
  border-bottom: 1px solid #e2edf8;
  color: #3b5877;
  font-size: 12px;
  line-height: 1.85;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.qrv-page .qrv-kv-table tr:last-child th,
.qrv-page .qrv-kv-table tr:last-child td {
  border-bottom: 0;
}

.qrv-page .qrv-kv-table th {
  width: 29%;
  background: #eef7ff;
  color: #21476d;
  font-weight: 800;
}

.qrv-page .qrv-kv-table td {
  background: #fff;
}

.qrv-kv-table td p {
  margin: 0 0 7px;
}

.qrv-kv-table td p:last-child {
  margin-bottom: 0;
}

.qrv-page .qrv-kv-table a {
  color: #087ddd;
  font-weight: 700;
}

.qrv-small-note {
  margin-top: 13px;
  color: #728ba5;
  font-size: 12px;
  line-height: 1.8;
}

/* 質問・回答 */
.qrv-questions {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid #e9f0f7;
}

/* ==========================================
   依頼内容の表
========================================== */

.qrv-summary {
  width: 100%;
  min-width: 0;
}

.qrv-summary table {
  width: 100%;
  margin: 0;
  border: 1px solid #dceaf8;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 5px;
  overflow: hidden;
}

.qrv-summary table th,
.qrv-summary table td {
  padding: 5px 17px;
  border: 0;
  border-bottom: 1px solid #e1ebf6;
  color: #3d5878;
  font-size: 13px;
  line-height: 1.8;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.qrv-summary table tr:last-child th,
.qrv-summary table tr:last-child td {
  border-bottom: 0;
}

.qrv-summary table th {
  width: 32%;
  background: #edf7ff;
  color: #183d66;
  font-weight: 800;
}

.qrv-summary table td {
  background: #fff;
}

.qrv-summary a {
  color: #087ee0;
  font-weight: 700;
}

/* 登録案内 */
.qrv-signup {
  margin-top: 20px;
}

/* 戻るボタン */
.qrv-back-area {
  margin-top: 25px;
}

.qrv-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 30px;
  background: #dff1ff;
  color: #087be2;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.qrv-back-link:hover {
  background: #d0eaff;
}

/* ==========================================
   画面幅に合わせる
========================================== */

@media (max-width: 700px) {
  .qrv-page {
    padding-bottom: 45px;
  }

  .qrv-container {
    width: calc(100% - 26px);
  }

  .qrv-hero {
    min-height: 210px;
    padding: 17px 0 48px;
    background-position: 65% center;
  }

  .qrv-breadcrumb {
    margin-bottom: 22px;
    font-size: 10px;
  }

  .qrv-hero-heading {
    gap: 12px;
    align-items: flex-start;
  }

  .qrv-hero h1 {
    font-size: 24px;
  }

  .qrv-hero-meta {
    align-items: flex-start;
    gap: 7px;
    font-size: 12px;
  }

  .qrv-section-icon {
    flex-basis: 43px;
    width: 43px;
    height: 43px;
  }

  .qrv-section-icon svg {
    width: 23px;
    height: 23px;
  }

  .qrv-main {
    margin-top: -12px;
  }

  .qrv-card {
    margin-bottom: 15px;
    padding: 19px 15px;
    border-radius: 13px;
  }

  .qrv-card-heading,
  .qrv-heading-left {
    gap: 11px;
  }

  .qrv-card-heading h2 {
    font-size: 18px;
  }

  .qrv-card-heading p {
    font-size: 11px;
  }

  .qrv-company-head {
    padding: 15px;
  }

  .qrv-company-heading strong {
    font-size: 15px;
  }

  .qrv-company-card > :not(.qrv-company-head) {
    margin-left: 13px;
    margin-right: 13px;
  }

  .qrv-page .qrv-kv-table th,
  .qrv-page .qrv-kv-table td,
  .qrv-summary table th,
  .qrv-summary table td {
    padding: 10px 11px;
    font-size: 11px;
  }

  .qrv-page .qrv-kv-table th {
    width: 35%;
  }

  .qrv-summary table th {
    width: 40%;
  }

  .qrv-actions,
  .qrv-order-actions,
  .qrv-quote-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .qrv-page .qrv-button {
    width: 100%;
  }

  .qrv-amount-comparison {
    gap: 8px;
  }

  .qrv-amount-comparison > div {
    padding: 11px;
  }

  .qrv-amount-comparison strong {
    font-size: 15px;
  }

  .qrv-alert {
    padding: 13px;
    font-size: 12px;
  }

  .qrv-comparison-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .qrv-page *,
  .qrv-page *::before,
  .qrv-page *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* ==========================================
   PASSWORD RESET PAGE
========================================== */

.quick-password-page {
  --pw-blue: #168cf0;
  --pw-navy: #10284a;
  --pw-muted: #748ba5;

  min-height: 100vh;
  padding: 65px 20px 90px;

  background-color: #f3faff;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;

  color: var(--pw-navy);
  box-sizing: border-box;
}

.quick-password-page *,
.quick-password-page *::before,
.quick-password-page *::after {
  box-sizing: border-box;
}

.quick-password-container {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}

.quick-password-card {
  padding: 42px 43px 35px;
  border: 1px solid #deebf8;
  border-radius: 10px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 20px 65px rgba(30,100,170,.09);
}

/* アイコン */
.quick-password-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 67px;
  height: 67px;
  margin: 0 auto 18px;
  border-radius: 20px;
  background: #e5f4ff;
  color: var(--pw-blue);
}

.quick-password-icon svg {
  width: 33px;
  height: 33px;
}

/* 見出し */
.quick-password-heading {
  margin-bottom: 30px;
  text-align: center;
}

.quick-password-eyebrow {
  display: block;
  margin-bottom: 9px;
  color: var(--pw-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
}

.quick-password-heading h1 {
  margin: 0;
  color: var(--pw-navy);
  font-size: 27px;
  font-weight: 800;
  line-height: 1.5;
}

.quick-password-heading p {
  margin: 12px 0 0;
  color: #718aa5;
  font-size: 13px;
  line-height: 1.9;
}

/* フォーム */
.quick-password-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.quick-password-field {
  min-width: 0;
}

.quick-password-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
  color: #244568;
  font-size: 14px;
  font-weight: 800;
}

.quick-password-required {
  padding: 3px 9px;
  border-radius: 20px;
  background: #fff0f2;
  color: #ec5268;
  font-size: 10px;
  font-weight: 800;
}

.quick-password-input-wrap {
  position: relative;
}

.quick-password-page .quick-password-input {
  display: block;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 12px 76px 12px 16px;
  border: 1px solid #cfdfef;
  border-radius: 10px;
  outline: none;
  background: #fff;
  color: #183b5f;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.5;
  transition: border-color .2s, box-shadow .2s;
}

.quick-password-input::placeholder {
  color: #a0afc0;
}

.quick-password-page .quick-password-input:focus {
  border-color: var(--pw-blue);
  box-shadow: 0 0 0 4px rgba(22,140,240,.11);
}

/* 表示・非表示 */
.quick-password-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 53px;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  background: #edf6ff;
  color: #1883dc;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.quick-password-toggle:hover {
  background: #dff0ff;
}

.quick-password-help {
  margin: 7px 0 0;
  color: #8a9cb0;
  font-size: 11px;
}

.quick-password-match {
  min-height: 17px;
  margin: -8px 0 0;
  font-size: 12px;
  font-weight: 700;
}

.quick-password-match.is-valid {
  color: #10966e;
}

.quick-password-match.is-invalid {
  color: #d84c60;
}

/* セキュリティ説明 */
.quick-password-security {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  padding: 6px;
  border-radius: 5px;
  background: #eff8ff;
}

.quick-password-security svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: #168cf0;
}

.quick-password-security p {
  margin: 0;
  color: #547697;
  font-size: 12px;
  line-height: 1.8;
}

/* 保存ボタン */
.quick-password-page .quick-password-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  padding: 12px 18px;
  border: none;
  border-radius: 11px;
  background: linear-gradient(180deg,#38aaff,#168cf0 60%,#0879dc);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(22,128,224,.18);
  transition: transform .2s, box-shadow .2s;
}

.quick-password-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(22,128,224,.24);
}

/* ログインに戻る */
.quick-password-footer {
  margin-top: 26px;
  padding-top: 21px;
  border-top: 1px solid #e7eff7;
  text-align: center;
}

.quick-password-footer a {
  color: #1682df;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.quick-password-footer a:hover {
  text-decoration: underline;
}

/* エラー */
.quick-password-alert {
  margin-bottom: 23px;
  padding: 14px 17px;
  border: 1px solid #f3cbd0;
  border-radius: 9px;
  background: #fff3f4;
  color: #b7384e;
  font-size: 13px;
  line-height: 1.8;
}

/* スマートフォン */
@media (max-width: 640px) {
  .quick-password-page {
    padding: 35px 14px 55px;
  }

  .quick-password-card {
    padding: 29px 20px;
    border-radius: 17px;
  }

  .quick-password-icon {
    width: 56px;
    height: 56px;
  }

  .quick-password-heading h1 {
    font-size: 22px;
  }

  .quick-password-heading p {
    font-size: 12px;
  }

  .quick-password-page .quick-password-input {
    font-size: 16px;
  }

  .quick-password-page .quick-password-submit {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .quick-password-page * {
    transition: none !important;
  }
}
/* 登録ページ専用: 既存の .narrow-page.wide や .vr-cols の幅指定から独立 */
.vr-page { padding:44px 20px 90px; background:linear-gradient(180deg,#f9fcff 0%,#ecf7ff 70%,#f7fbff 100%); color:#102d59; }
.vr-page *, .vr-page *::before, .vr-page *::after {box-sizing:border-box}
.vr-page-inner {width:100%;max-width:1200px;margin:0 auto}
.vr-page-header {margin-bottom:32px}
.vr-page-eyebrow,.vr-kicker {display:inline-flex;align-items:center;gap:16px;color:#1688f5;font-size:12px;font-weight:800;letter-spacing:.19em}
.vr-page-header h1 {margin:12px 0 0;color:#0c285c;font-size:clamp(25px,3vw,36px);font-weight:850;line-height:1.45}
.vr-mobile-break {display:none}
.vr-stack {display:flex;flex-direction:column;gap:26px}
.vr-pr-section,.vr-info-section,.vr-form-section,.vr-listing-section,.vr-state-panel {
  min-width: 0;
  background: #fff;
  border: 1px solid #e0edfa;
  border-radius: 5px;
  padding: 20px 25px;
  box-shadow: 0 12px 38px rgba(30, 93, 160, .065);
}
.vr-pr-section {position:relative;overflow:hidden;background:linear-gradient(160deg,#fff 0%,#f6fbff 100%)}
.vr-pr-section::before {content:"";position:absolute;right:-90px;top:-105px;width:380px;height:300px;border-radius:50%;background:radial-gradient(circle,#e2f3ff,transparent 67%);pointer-events:none}
.vr-section-head {position:relative;margin-bottom:25px}
.vr-kicker-rule {display:inline-block;width:30px;height:2px;background:#1688f5}
.vr-section-head h2 {
  margin: 12px 0 9px !important;
  font-size: clamp(23px, 2.8vw, 32px);
  color: #0b2b61 !important;
  line-height: 1.35;
  font-weight: 850;
}
.vr-brand-accent {color:#1688f5}
.vr-section-head p {margin:0;color:#6b83a3;font-size:14px;line-height:1.9}
.vr-pr-cards {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.vr-pr-card {
  position: relative;
  display: grid;
  grid-template-columns: 175px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-height: 160px;
  padding: 15px 15px 15px 15px;
  overflow: hidden;
  border: 1px solid #e1ecf9;
  border-radius: 5px;
  background: linear-gradient(130deg, #fff 20%, #f9fcff 100%);
  box-shadow: 0 12px 25px rgba(34, 99, 173, .045);
}
.vr-pr-no {position:absolute;left:20px;top:16px;z-index:1;display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#def0ff;color:#087ff0;font-size:16px;font-weight:900}
.vr-pr-illustration {display:block;width:100%;max-width:190px;height:auto;aspect-ratio:18/13;object-fit:contain;margin:auto;filter:drop-shadow(0 7px 9px rgba(27,124,222,.075))}
.vr-pr-text {min-width:0}
.vr-pr-text h3 {margin:0 0 14px;font-size:21px;line-height:1.4;color:#0a2b60;font-weight:850}
.vr-pr-text p {margin:0;font-size:14px;color:#667f9f;line-height:1.85;overflow-wrap:anywhere}
.vr-info-box,.vr-form-card,.vr-listing-card {padding:25px 28px;background:#fbfdff;border:1px solid #e2edfa;border-radius:5px}
.vr-site {margin:0 0 15px;font-size:15px;line-height:1.9;color:#345376}
.vr-points {margin:0;padding-left:1.35em;color:#557092;font-size:14px;line-height:1.85}
.vr-points li+li {margin-top:9px}
.vr-stack-form {width:100%;max-width:100%}
/* フォームの並びやラジオ選択肢は共有パーシャルに任せ、すべてのlabelをflexにしない */
.vr-stack-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),.vr-stack-form select,.vr-stack-form textarea {
  max-width: 100%;
  border: 1px solid #ccdfef;
  border-radius: 5px;
  padding: 5px 14px;
  background: white;
  color: #17385e;
  font: inherit;
  font-size:12px;
  font-weight: normal;
}
.vr-stack-form input:focus-visible,.vr-stack-form select:focus-visible,.vr-stack-form textarea:focus-visible {outline:2px solid #1688f5;outline-offset:2px}
.vr-stack-form input[type="checkbox"],.vr-stack-form input[type="radio"] {accent-color:#118bf7}
.vr-page .vr-submit {display:block;width:100%;max-width:100%;min-height:54px;margin-top:25px;border:0;border-radius:12px;background:linear-gradient(110deg,#13a4ff,#0879f2);box-shadow:0 7px 20px rgba(10,121,230,.18);font-size:16px;font-weight:800;color:#fff;cursor:pointer}
.vr-page .vr-submit:hover {filter:brightness(.97)}
.vr-services {list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vr-services a {display:block;padding:14px 17px;border:1px solid #dceafa;border-radius:10px;color:#116fbf;background:white;text-decoration:none;font-weight:700}
.vr-services a:hover {background:#eff8ff}
.vr-notice-box {line-height:1.9}
@media(max-width:950px){.vr-pr-card {grid-template-columns:145px minmax(0,1fr);padding:23px 18px 20px 12px;gap:10px}.vr-pr-text h3{font-size:18px}.vr-pr-text p{font-size:12px}}
@media(max-width:740px){.vr-page{padding:26px 14px 60px}.vr-pr-section,.vr-info-section,.vr-form-section,.vr-listing-section,.vr-state-panel{padding:23px 17px;border-radius:17px}.vr-pr-cards,.vr-services{grid-template-columns:1fr}.vr-pr-card{grid-template-columns:120px minmax(0,1fr);min-height:150px}.vr-pr-no{left:10px;top:10px;width:29px;height:29px;font-size:12px}.vr-pr-illustration{width:120px}.vr-pr-text h3{font-size:17px;margin-bottom:7px}.vr-pr-text p{font-size:12px}.vr-info-box,.vr-form-card,.vr-listing-card{padding:17px}.vr-mobile-break{display:block}}
@media(max-width:390px){.vr-pr-card{grid-template-columns:94px minmax(0,1fr);gap:7px;padding:18px 10px}.vr-pr-illustration{width:100px}.vr-pr-text h3{font-size:15px}.vr-pr-text p{font-size:11px}}

/* ==========================================
   VENDOR REGISTRATION HERO
   ヘッダー最終調整
========================================== */

/* ページ全体 */
.vr-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 80px;

  background: #f7fbff;
  overflow-x: clip;
}

/* 通常コンテンツは1200px */
.vr-page .vr-page-inner {
  width: min(100% - 40px, 1200px);
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

/* ==========================================
   画面幅いっぱいのヒーロー
========================================== */

.vr-page .vr-page-header {
  position: relative;

  /* 親の1200px制限を超えて全幅表示 */
  width: 100vw;
  max-width: none;
  margin: 0 0 36px;
  margin-left: calc(50% - 50vw);

  min-height: 285px;
  padding: 48px max(20px, calc((100vw - 1200px) / 2));

  border: none;
  border-radius: 0;
  box-shadow: none;

  background-color: #eaf7ff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  text-align: left;
}

/* 背景が文字と重なりすぎないように */
.vr-page .vr-page-header::before {
  content: "";
  position: absolute;
  inset: 0;

  background: linear-gradient(
    90deg,
    rgba(246, 252, 255, .95) 0%,
    rgba(246, 252, 255, .86) 40%,
    rgba(246, 252, 255, .17) 78%,
    rgba(246, 252, 255, 0) 100%
  );

  pointer-events: none;
}

/* ヘッダーの本文 */
.vr-page .vr-page-header-inner {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* 英字ラベル */
.vr-page .vr-page-eyebrow {
  display: block;
  margin-bottom: 18px;

  color: #0785ed;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.5;
}

/* メインタイトル */
.vr-page .vr-page-header h1 {
  margin: 0 0 18px;
  padding: 0;

  color: #082b62;
  font-size: clamp(27px, 2.9vw, 37px);
  font-weight: 800;
  line-height: 1.43;
  letter-spacing: -.025em;

  text-align: left;
}

/* 2行目 */
.vr-page .vr-page-header h1 span {
  display: block;
}

/* 紹介文 */
.vr-page .vr-page-header-description {
  max-width: 800px;
  margin: 0;

  color: #4d6b8f;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.95;

  text-align: left;
}

/* ==========================================
   その他のコンテンツとの間隔
========================================== */

.vr-page .vr-stack {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* ==========================================
   タブレット
========================================== */

@media (max-width: 900px) {

  .vr-page .vr-page-header {
    min-height: 260px;
    padding: 40px 24px;
    background-position: 65% center;
  }

  .vr-page .vr-page-header::before {
    background: linear-gradient(
      90deg,
      rgba(246,252,255,.97) 0%,
      rgba(246,252,255,.91) 58%,
      rgba(246,252,255,.55) 100%
    );
  }

  .vr-page .vr-page-header h1 {
    font-size: 30px;
  }

  .vr-page .vr-page-header-description {
    font-size: 13px;
  }
}

/* ==========================================
   スマートフォン
========================================== */

@media (max-width: 640px) {

  .vr-page .vr-page-inner {
    width: calc(100% - 26px);
  }

  .vr-page .vr-page-header {
    min-height: 255px;
    margin-bottom: 20px;
    padding: 29px 18px 35px;

    background-position: 72% center;
  }

  .vr-page .vr-page-header::before {
    background: rgba(246, 252, 255, .82);
  }

  .vr-page .vr-page-eyebrow {
    margin-bottom: 12px;
    font-size: 10px;
  }

  .vr-page .vr-page-header h1 {
    margin-bottom: 12px;
    font-size: 24px;
    line-height: 1.45;
  }

  .vr-page .vr-page-header-description {
    font-size: 11px;
    line-height: 1.85;
  }

  .vr-pc-only {
    display: none;
  }
}

/* ==========================================
   受託解析Quick
   受託会社向け利用規約
========================================== */

.vendor-terms-page {
  --vt-navy: #12345c;
  --vt-blue: #168cf0;
  --vt-muted: #7089a4;
  --vt-border: #dfeaf6;

  width: 100%;
  min-width: 0;
  padding: 45px 20px 90px;
  background: linear-gradient(
    180deg,
    #f6faff 0%,
    #f2f8ff 100%
  );
  color: var(--vt-navy);
}

.vendor-terms-page *,
.vendor-terms-page *::before,
.vendor-terms-page *::after {
  box-sizing: border-box;
}

.vendor-terms-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* ==========================================
   ページヘッダー
========================================== */

.vendor-terms-header {
  position: relative;
  margin-bottom: 30px;
  padding: 10px 0 30px;
  border-bottom: 1px solid #dce9f6;
}

.vendor-terms-eyebrow {
  display: block;
  margin-bottom: 11px;
  color: #168cf0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.5;
}

.vendor-terms-header h1 {
  margin: 0;
  color: #102f5d;
  font-size: clamp(25px, 3vw, 35px);
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: -.025em;
}

.vendor-terms-introduction {
  max-width: 820px;
  margin: 13px 0 0;
  color: #6d87a3;
  font-size: 14px;
  line-height: 1.9;
}

.vendor-terms-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.vendor-terms-meta span {
  display: inline-flex;
  align-items: center;
  padding: 7px 13px;
  border: 1px solid #dceafa;
  border-radius: 30px;
  background: #fff;
  color: #51789f;
  font-size: 12px;
  font-weight: 700;
}

/* ==========================================
   サイドバー + 本文
========================================== */

.vendor-terms-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  align-items: start;
  gap: 26px;
}

.vendor-terms-sidebar {
  min-width: 0;
  align-self: stretch;
}

/* ==========================================
   サイドバー目次
========================================== */

.vendor-terms-toc {
  position: sticky;
  top: 85px;
  overflow: hidden;
  border: 1px solid #dfebf7;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(38, 102, 166, .06);
}

.vendor-terms-toc-details {
  width: 100%;
}

.vendor-terms-toc-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 21px 19px 16px;
  border-bottom: 1px solid #edf2f8;
  list-style: none;
  cursor: default;
}

.vendor-terms-toc-details > summary::-webkit-details-marker {
  display: none;
}

.vendor-terms-toc-heading {
  color: #153962;
  font-size: 17px;
  font-weight: 800;
}

.vendor-terms-toc-english {
  color: #178aee;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .11em;
}

.vendor-terms-toc ol {
  max-height: calc(100vh - 175px);
  overflow-y: auto;
  margin: 0;
  padding: 10px;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: #c9dfef transparent;
}

.vendor-terms-toc li {
  margin: 0;
  padding: 0;
}

.vendor-terms-toc a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 9px 11px;
  border-radius: 8px;
  color: #5d7590;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  transition: background .2s, color .2s;
}

.vendor-terms-toc a:hover,
.vendor-terms-toc a:focus-visible {
  background: #edf7ff;
  color: #0878d8;
}

.vendor-terms-toc-number {
  flex-shrink: 0;
  color: #168cf0;
  font-size: 11px;
  font-weight: 800;
}

.vendor-terms-toc-name {
  flex: 1;
  min-width: 0;
}

.vendor-terms-toc-arrow {
  flex-shrink: 0;
  color: #a6c0da;
  font-size: 18px;
  line-height: 1;
}

/* ==========================================
   利用規約本文
========================================== */

.vendor-terms-content {
  min-width: 0;
  padding: 12px 36px 36px;
  border: 1px solid #e0ebf7;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 10px 34px rgba(38, 102, 166, .045);
}

.vendor-terms-article {
  min-width: 0;
  padding: 29px 0 31px;
  border-bottom: 1px solid #e8f0f8;
  scroll-margin-top: 95px;
}

.vendor-terms-article:last-of-type {
  border-bottom: 0;
}

.vendor-terms-article h2 {
  position: relative;
  margin: 0 0 20px;
  padding: 0 0 0 17px;
  border: none;
  color: #1059a6;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.55;
  font-size: 20px !important;
  margin-top: 0 !important;
}

.vendor-terms-article h2::before {
  content: "";
  position: absolute;
  top: 5px;
  bottom: 5px;
  left: 0;
  width: 4px;
  border-radius: 4px;
  background: linear-gradient(
    180deg,
    #48b6ff,
    #168cf0
  );
}

.vendor-terms-article p,
.vendor-terms-article li {
  color: #435d79;
  font-size: 14px;
  font-weight: 400;
  line-height: 2.05;
  overflow-wrap: anywhere;
}

.vendor-terms-article p {
  margin: 0 0 12px;
}

.vendor-terms-article p:last-child {
  margin-bottom: 0;
}

/* 箇条書きと番号付き条文 */
.vendor-terms-article ol,
.vendor-terms-article ul {
  margin: 0;
  padding-left: 1.7em;
}

.vendor-terms-article li {
  padding-left: 5px;
  margin-bottom: 12px;
}

.vendor-terms-article li:last-child {
  margin-bottom: 0;
}

.vendor-terms-article li::marker {
  color: #168cf0;
  font-weight: 800;
}

.vendor-terms-article strong {
  color: #133e72;
  font-weight: 800;
}

.vendor-terms-article a {
  color: #087fe1;
  text-underline-offset: 3px;
}

/* 目次から移動した際の表示 */
.vendor-terms-article:target {
  border-radius: 10px;
  background: linear-gradient(
    90deg,
    rgba(231, 246, 255, .5),
    rgba(255,255,255,0)
  );
}

/* ==========================================
   お問い合わせ
========================================== */

.vendor-terms-contact {
  margin-top: 25px;
  padding: 25px 0 0;
  border-top: 1px solid #e5eef7;
}

.vendor-terms-contact h2 {
  margin: 0 0 19px !important;
  color: #154775 !important;
  font-size: 19px;
  font-weight: 800;
}

.vendor-terms-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

.vendor-terms-contact-grid > div {
  display: flex;
  flex-direction: column;
  gap: 0px;
  min-width: 0;
  padding: 5px 18px;
  border: 1px solid #e0edf9;
  border-radius: 5px;
  background: #f7fbff;
}

.vendor-terms-contact-label {
  color: #8097ad;
  font-size: 11px;
  font-weight: 700;
}

.vendor-terms-contact-grid strong,
.vendor-terms-contact-grid a,
.vendor-terms-contact-grid div > span:last-child {
  color: #2d5277;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.vendor-terms-contact-grid a {
  color: #087fdf;
}

.vendor-terms-contact-address {
  grid-column: 1 / -1;
}

/* ==========================================
   タブレット
========================================== */

@media (max-width: 950px) {
  .vendor-terms-layout {
    grid-template-columns: 215px minmax(0, 1fr);
    gap: 17px;
  }

  .vendor-terms-content {
    padding: 8px 23px 29px;
  }

  .vendor-terms-toc a {
    font-size: 11px;
    gap: 7px;
  }

  .vendor-terms-article h2 {
    font-size: 18px;
  }
}

/* ==========================================
   スマートフォン
========================================== */

@media (max-width: 700px) {
  .vendor-terms-page {
    padding: 26px 13px 55px;
  }

  .vendor-terms-header {
    margin-bottom: 20px;
    padding-bottom: 22px;
  }

  .vendor-terms-header h1 {
    font-size: 24px;
  }

  .vendor-terms-introduction {
    font-size: 12px;
  }

  .vendor-terms-meta {
    gap: 7px;
  }

  .vendor-terms-meta span {
    padding: 6px 10px;
    font-size: 10px;
  }

  .vendor-terms-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .vendor-terms-sidebar {
    align-self: auto;
  }

  .vendor-terms-toc {
    position: static;
    border-radius: 12px;
  }

  .vendor-terms-toc-details > summary {
    padding: 16px;
    cursor: pointer;
  }

  .vendor-terms-toc-details > summary::after {
    content: "⌄";
    color: #168cf0;
    font-size: 18px;
    transition: transform .2s;
  }

  .vendor-terms-toc-details[open] > summary::after {
    transform: rotate(180deg);
  }

  .vendor-terms-toc-english {
    margin-left: auto;
  }

  .vendor-terms-toc ol {
    max-height: 295px;
  }

  .vendor-terms-content {
    padding: 4px 19px 25px;
    border-radius: 12px;
  }

  .vendor-terms-article {
    padding: 25px 0;
    scroll-margin-top: 25px;
  }

  .vendor-terms-article h2 {
    font-size: 17px;
    margin-bottom: 15px;
  }

  .vendor-terms-article p,
  .vendor-terms-article li {
    font-size: 13px;
    line-height: 1.95;
  }

  .vendor-terms-contact-grid {
    grid-template-columns: 1fr;
  }

  .vendor-terms-contact-address {
    grid-column: auto;
  }
}

/* ==========================================
   アクセシビリティ
========================================== */

.vendor-terms-page a:focus-visible,
.vendor-terms-page summary:focus-visible {
  outline: 3px solid #168cf0;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .vendor-terms-page *,
  .vendor-terms-page *::before,
  .vendor-terms-page *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
