/* ============================================================
   各社レビューページ — review-specific styles
   tokens.css + top.css の上に乗せる薄い実装層。
   トップページと共通の SiteHeader / SiteFooter / .tg-section /
   .tg-tag / .tg-stars / .tg-cta-orange は top.css から継承。
   ============================================================ */

/* ============================================================
   Breadcrumb
   ============================================================ */
.tg-breadcrumb {
  max-width: 1040px; margin: 0 auto;
  padding: 12px 40px;
  font-size: 11px; color: #7a849c;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.tg-breadcrumb a { color: #0744CC; }
.tg-breadcrumb .sep { color: #c1c8d4; }
.tg-breadcrumb .current { color: #1a1f2e; font-weight: 700; }

/* ============================================================
   ReviewHero
   ============================================================ */
.tg-review-hero {
  background: linear-gradient(180deg, #F4F7FB 0%, #fff 100%);
  border-bottom: 1px solid #E5E9F0;
  padding: 32px 0 48px;
}
.tg-review-hero .inner { max-width: 1040px; margin: 0 auto; padding: 0 40px; }

.tg-review-eyebrow {
  margin-bottom: 24px;
}
.tg-review-eyebrow .tags {
  display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap;
}
.tg-review-hero h1 {
  font-size: 36px; font-weight: 900; color: #0c2548;
  margin: 0; line-height: 1.3; letter-spacing: -0.01em;
}
.tg-review-hero h1 .mark-y {
  background: linear-gradient(transparent 62%, #FFE45A 62%);
  padding: 0 4px;
}
.tg-review-hero .meta {
  display: flex; gap: 12px; flex-wrap: wrap;
  font-size: 11px; color: #7a849c; margin-top: 10px;
}
.tg-review-hero .meta .dot { color: #c1c8d4; }

.tg-review-hero-card {
  background: #fff;
  border: 1px solid #E5E9F0;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(11, 40, 90, 0.08);
  padding: 28px;
}
.tg-review-hero-top {
  display: flex; align-items: center; gap: 20px;
  margin-bottom: 18px;
}
.tg-review-logo-box {
  background: #F9FAFC; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 14px 22px;
  display: flex; align-items: center; justify-content: center;
  height: 80px; width: 180px;
  flex-shrink: 0;
  min-height: 0; min-width: 0; overflow: hidden;
}
.tg-review-logo-box img {
  display: block;
  height: 52px; width: auto;
  max-width: 100%;
  object-fit: contain;
}
.tg-review-brand {
  flex: 1; min-width: 0;
}
.tg-review-brand-name {
  font-size: 26px; font-weight: 900; color: #0c2548; line-height: 1.2;
}
.tg-review-brand-name .kana {
  font-size: 14px; color: #7a849c; font-weight: 500;
}
.tg-review-brand-op {
  font-size: 13px; color: #5a6378; margin-top: 4px; line-height: 1.5;
}
.tg-review-brand-rating {
  display: flex; align-items: center; gap: 8px; margin-top: 10px;
  flex-wrap: wrap;
}
.tg-review-brand-rating b {
  font-size: 17px; color: #0c2548;
}
.tg-review-brand-rating .label {
  font-size: 11px; color: #7a849c;
}
.tg-review-brand-rating .match {
  background: #FFF7C2; color: #6B4B00;
  padding: 3px 10px; border-radius: 4px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.05em;
}

.tg-review-shortest {
  background: #0c2548; color: #fff;
  border-radius: 12px; padding: 12px 16px;
  text-align: center; flex-shrink: 0;
  border: 2px solid #FFC700;
  min-width: 100px;
}
.tg-review-shortest .lbl {
  font-size: 10px; color: #FFC700; font-weight: 700; letter-spacing: 0.1em;
}
.tg-review-shortest .num {
  font-size: 22px; font-weight: 900; color: #fff; line-height: 1;
  font-family: Helvetica, Arial, sans-serif;
}
.tg-review-shortest .num span { font-size: 13px; margin-left: 2px; }
.tg-review-shortest .sub {
  font-size: 10px; color: #b9c6df; margin-top: 4px;
}

.tg-review-metrics {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
  margin-bottom: 20px;
}
.tg-review-metric {
  background: #F9FAFC; border: 1px solid #E5E9F0;
  border-radius: 8px; padding: 10px 12px; text-align: center;
}
.tg-review-metric .l { font-size: 10px; color: #7a849c; margin-bottom: 4px; }
.tg-review-metric .v {
  font-size: 16px; font-weight: 900; color: #0c2548; line-height: 1.2;
}
.tg-review-metric .v .u { font-size: 11px; color: #0744CC; }

.tg-review-cta-row {
  display: grid; grid-template-columns: 1fr 220px; gap: 12px; align-items: center;
}
.tg-review-cta-row .primary-wrap {
  display: flex; flex-direction: column; gap: 6px;
}
.tg-review-cta-row .pr-text {
  font-size: 11px; color: #7a849c; text-align: center;
}
.tg-cta-white {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: #fff; color: #0c2548;
  border: 1px solid #D6DEEC;
  border-radius: 999px;
  padding: 12px 18px;
  font-size: 14px; font-weight: 700; font-family: inherit;
  cursor: pointer; text-decoration: none;
  width: 100%;
  transition: opacity .15s;
}
.tg-cta-white:hover { opacity: 0.85; }

/* ============================================================
   ReviewVerdict（黄色グラデの編集部総合評価カード）
   ============================================================ */
.tg-review-verdict {
  max-width: 1040px; margin: 0 auto;
  padding: 24px 40px 0;
}
.tg-review-verdict-card {
  background: linear-gradient(180deg, #FFFBE0 0%, #FFF8C2 100%);
  border: 1px solid #FFE45A;
  border-radius: 12px;
  padding: 24px;
  position: relative;
}
.tg-review-verdict-tag {
  position: absolute; top: -12px; left: 24px;
  background: #0c2548; color: #FFC700;
  padding: 4px 12px; border-radius: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
}
.tg-review-verdict-card h3 {
  font-size: 17px; font-weight: 900; color: #0c2548;
  margin: 4px 0 10px;
  line-height: 1.5;
}
.tg-review-verdict-card p {
  font-size: 15px; color: #0c2548; line-height: 1.9; margin: 0;
}
.tg-review-verdict-card p + p { margin-top: 10px; }

.tg-review-ok-ng {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  margin-top: 16px;
}
.tg-review-ok-ng > div {
  background: #fff; border-radius: 10px; padding: 16px;
}
.tg-review-ok-ng .ok { border: 2px solid #079765; }
.tg-review-ok-ng .ng { border: 2px solid #C5CED9; }
.tg-review-ok-ng h4 {
  font-size: 13px; font-weight: 900; color: #0c2548;
  margin: 0 0 10px; display: flex; align-items: center; gap: 6px;
}
.tg-review-ok-ng .ok h4 { color: #079765; }
.tg-review-ok-ng .ng h4 { color: #5F6776; }
.tg-review-ok-ng ul {
  margin: 0; padding: 0;
  font-size: 14px; line-height: 1.7;
  list-style: none;
}
.tg-review-ok-ng li {
  position: relative;
  padding: 6px 0 6px 22px;
  font-weight: 700;
  border-top: 1px dashed #EEF1F6;
}
.tg-review-ok-ng li:first-child { border-top: none; padding-top: 4px; }
.tg-review-ok-ng li::before {
  position: absolute;
  left: 0; top: 6px;
  font-weight: 900;
  font-size: 14px;
  line-height: 1.7;
}
.tg-review-ok-ng .ok li {
  color: #035c3d;
}
.tg-review-ok-ng .ok li::before {
  content: "✓";
  color: #079765;
}
.tg-review-ok-ng .ng li {
  color: #3d4453;
}
.tg-review-ok-ng .ng li::before {
  content: "＋";
  color: #5F6776;
}

/* ============================================================
   ReviewTOC（もくじ 2列）
   ============================================================ */
.tg-review-toc {
  background: #F9FAFC; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 20px;
}
.tg-review-toc-head {
  display: flex; align-items: center; gap: 10px; margin-bottom: 14px;
}
.tg-review-toc-head .badge {
  background: #0c2548; color: #fff;
  padding: 4px 10px; border-radius: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
}
.tg-review-toc-head .sub {
  font-size: 12px; color: #7a849c;
}
.tg-review-toc ol {
  margin: 0; padding: 0; list-style: none;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px;
}
.tg-review-toc li {
  font-size: 13px; color: #1a1f2e;
  display: flex; align-items: baseline; gap: 8px;
  padding: 4px 0;
}
.tg-review-toc li .num {
  color: #0744CC; font-weight: 700; font-size: 11px;
  min-width: 16px;
  font-family: Helvetica, Arial, sans-serif;
}
.tg-review-toc li a {
  color: #0744CC;
  text-decoration: underline;
  text-decoration-color: #cfd9eb;
}

/* ============================================================
   ReviewAbout（4 fact cards 2x2）
   ============================================================ */
.tg-review-about-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.tg-review-about-card {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 22px;
  display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: flex-start;
}
.tg-review-about-icon {
  width: 44px; height: 44px; border-radius: 10px;
  display: grid; place-items: center;
}
.tg-review-about-icon svg { width: 22px; height: 22px; }
.tg-review-about-card.t-blue   .tg-review-about-icon { background: #E2ECFF; color: #0744CC; }
.tg-review-about-card.t-orange .tg-review-about-icon { background: #FFE6C9; color: #FF6C00; }
.tg-review-about-card.t-green  .tg-review-about-icon { background: #DFF1ED; color: #079765; }
.tg-review-about-card.t-yellow .tg-review-about-icon { background: #FFF7C2; color: #6B4B00; }
.tg-review-about-head {
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; margin-bottom: 4px;
}
.tg-review-about-card.t-blue   .tg-review-about-head { color: #0744CC; }
.tg-review-about-card.t-orange .tg-review-about-head { color: #FF6C00; }
.tg-review-about-card.t-green  .tg-review-about-head { color: #079765; }
.tg-review-about-card.t-yellow .tg-review-about-head { color: #6B4B00; }
.tg-review-about-title {
  font-size: 15px; font-weight: 900; color: #0c2548;
  margin-bottom: 6px; line-height: 1.5;
}
.tg-review-about-body {
  font-size: 14px; color: #0c2548; line-height: 1.85;
}

/* ============================================================
   ReviewSpecs（テーブル）
   ============================================================ */
.tg-review-specs {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; overflow: hidden;
}
.tg-review-specs table {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.tg-review-specs tr { border-top: 1px solid #F0F2F8; }
.tg-review-specs tr:first-child { border-top: none; }
.tg-review-specs th {
  background: #F9FAFC; color: #0c2548;
  font-weight: 700; font-size: 13px;
  padding: 12px 16px; text-align: left;
  width: 180px; vertical-align: top;
}
.tg-review-specs td {
  padding: 12px 16px; color: #0c2548; line-height: 1.8;
}

/* ============================================================
   ReviewMerits（5 merit cards）
   ============================================================ */
.tg-merit-list { display: flex; flex-direction: column; gap: 14px; }
.tg-merit-card {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 24px;
  display: grid; grid-template-columns: 56px 1fr 200px; gap: 20px; align-items: stretch;
}
.tg-merit-num {
  text-align: center;
}
.tg-merit-icon-box {
  width: 44px; height: 44px; border-radius: 10px;
  display: grid; place-items: center;
  margin: 0 auto 8px;
}
.tg-merit-icon-box svg { width: 22px; height: 22px; }
.tg-merit-num .lbl {
  font-size: 9px; font-weight: 700; color: #7a849c; letter-spacing: 0.08em;
}
.tg-merit-num .n {
  font-size: 22px; font-weight: 900; line-height: 1;
  font-family: Helvetica, Arial, sans-serif;
}
.tg-merit-card.t-blue   .tg-merit-num .n { color: #0744CC; }
.tg-merit-card.t-blue   .tg-merit-icon-box { background: #E2ECFF; color: #0744CC; }
.tg-merit-card.t-orange .tg-merit-num .n { color: #FF6C00; }
.tg-merit-card.t-orange .tg-merit-icon-box { background: #FFE6C9; color: #FF6C00; }
.tg-merit-card.t-navy   .tg-merit-num .n { color: #0c2548; }
.tg-merit-card.t-navy   .tg-merit-icon-box { background: #DDE2EC; color: #0c2548; }
.tg-merit-card.t-green  .tg-merit-num .n { color: #079765; }
.tg-merit-card.t-green  .tg-merit-icon-box { background: #DFF1ED; color: #079765; }
.tg-merit-card.t-slate  .tg-merit-num .n { color: #5F6776; }
.tg-merit-card.t-slate  .tg-merit-icon-box { background: #DDE2EC; color: #5F6776; }

.tg-merit-body { min-width: 0; }
.tg-merit-title {
  font-size: 16px; font-weight: 900; color: #0c2548;
  line-height: 1.5; margin-bottom: 10px;
}
.tg-merit-text {
  font-size: 15px; color: #0c2548; line-height: 1.9; margin-bottom: 10px;
}
.tg-merit-quote {
  font-size: 11px; color: #5a6378; font-style: italic;
  border-left: 2px solid #FFC700; padding-left: 10px; line-height: 1.6;
}

.tg-merit-point {
  border-radius: 10px; padding: 14px; text-align: center;
  display: flex; flex-direction: column; justify-content: center;
}
.tg-merit-card.t-blue   .tg-merit-point { background: #E2ECFF; }
.tg-merit-card.t-orange .tg-merit-point { background: #FFE6C9; }
.tg-merit-card.t-navy   .tg-merit-point { background: #DDE2EC; }
.tg-merit-card.t-green  .tg-merit-point { background: #DFF1ED; }
.tg-merit-card.t-slate  .tg-merit-point { background: #DDE2EC; }
.tg-merit-point .l { font-size: 9px; font-weight: 700; color: #7a849c; letter-spacing: 0.1em; }
.tg-merit-point .v {
  font-size: 32px; font-weight: 900; line-height: 1.1;
  font-family: Helvetica, Arial, sans-serif;
}
.tg-merit-card.t-blue   .tg-merit-point .v { color: #0744CC; }
.tg-merit-card.t-orange .tg-merit-point .v { color: #FF6C00; }
.tg-merit-card.t-navy   .tg-merit-point .v { color: #0c2548; }
.tg-merit-card.t-green  .tg-merit-point .v { color: #079765; }
.tg-merit-card.t-slate  .tg-merit-point .v { color: #5F6776; }
.tg-merit-point .sublbl { font-size: 11px; color: #1a1f2e; font-weight: 700; margin-top: 4px; }

/* Mid-page navy CTA strip (after merits) */
.tg-mid-cta {
  background: linear-gradient(135deg, #0c2548 0%, #1a3a6e 100%);
  border-radius: 14px; padding: 24px; margin-top: 24px;
  display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center;
}
.tg-mid-cta .eyebrow {
  font-size: 11px; color: #FFC700; font-weight: 700; letter-spacing: 0.1em; margin-bottom: 4px;
}
.tg-mid-cta .headline {
  font-size: 18px; font-weight: 900; color: #fff; line-height: 1.5;
}
.tg-mid-cta .headline .sub {
  font-size: 13px; color: #b9c6df; font-weight: 400;
}
.tg-mid-cta .cta-wrap a.tg-cta-orange {
  white-space: nowrap;
  width: auto; padding: 14px 24px;
}

/* ============================================================
   ReviewTips（3-col tips）
   ============================================================ */
.tg-tips-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px;
}
.tg-tips-card {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 20px;
  display: flex; flex-direction: column; gap: 10px;
}
.tg-tips-head {
  display: flex; align-items: center; justify-content: space-between;
}
.tg-tips-n {
  width: 32px; height: 32px; border-radius: 8px;
  background: #0744CC; color: #fff;
  display: grid; place-items: center;
  font-size: 13px; font-weight: 900;
}
.tg-tips-title {
  font-size: 15px; font-weight: 900; color: #0c2548; line-height: 1.55;
}
.tg-tips-body {
  font-size: 14px; color: #0c2548; line-height: 1.9;
}

/* ============================================================
   ReviewTestimonials（avatar + result）
   ============================================================ */
.tg-testimonials-note {
  background: #E2ECFF; border: 1px solid #C7D6F0;
  border-radius: 10px; padding: 12px; margin-bottom: 14px;
  font-size: 12px; color: #0c2548;
}
.tg-testimonial-list { display: flex; flex-direction: column; gap: 12px; }
.tg-testimonial-card {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 20px;
  display: grid; grid-template-columns: 64px 1fr 120px; gap: 18px; align-items: center;
  position: relative;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.tg-testimonial-card:has(.tg-testimonial-text a):hover {
  box-shadow: 0 6px 16px rgba(11, 40, 90, 0.08);
  transform: translateY(-2px);
  border-color: #C9D6EE;
}
.tg-testimonial-card .tg-avatar { width: 64px; height: 64px; }
.tg-testimonial-meta {
  display: flex; align-items: center; gap: 8px; margin-bottom: 4px; flex-wrap: wrap;
}
.tg-testimonial-meta .tags { display: flex; gap: 4px; flex-wrap: wrap; }
.tg-testimonial-title {
  font-size: 15px; font-weight: 900; color: #0c2548;
  margin-bottom: 6px; line-height: 1.5;
}
.tg-testimonial-text {
  font-size: 14px; color: #0c2548; line-height: 1.9;
}
.tg-testimonial-text a {
  display: inline-flex; align-items: center; gap: 4px;
  margin-left: 6px;
  padding: 4px 12px;
  background: #EEF3FB;
  color: #0744CC;
  border-radius: 999px;
  font-weight: 700;
  font-size: 11px;
  text-decoration: none;
  white-space: nowrap;
  vertical-align: middle;
  transition: background 0.2s ease, color 0.2s ease;
}
.tg-testimonial-text a::after {
  /* stretched link: makes the whole testimonial card clickable */
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.tg-testimonial-card:hover .tg-testimonial-text a {
  background: #0744CC;
  color: #fff;
}
.tg-testimonial-result {
  background: #FFF7C2; border-radius: 10px;
  padding: 12px 14px; text-align: center;
}
.tg-testimonial-result .l { font-size: 9px; font-weight: 700; color: #6B4B00; letter-spacing: 0.08em; }
.tg-testimonial-result .h {
  font-size: 18px; font-weight: 900; color: #FF6C00; line-height: 1.2;
}
.tg-testimonial-result .v {
  font-size: 22px; font-weight: 900; color: #FF6C00; line-height: 1;
}

/* ============================================================
   ReviewFlow（60分マイルストーン + Phase 1 横並び + Phase 2 縦並び）
   ============================================================ */
.tg-flow-milestone {
  background: linear-gradient(135deg, #0c2548 0%, #1a3a6e 100%);
  border-radius: 14px; padding: 20px 28px; margin-bottom: 24px;
  display: grid; grid-template-columns: auto 1fr auto; gap: 24px; align-items: center;
  position: relative; overflow: hidden;
}
.tg-flow-milestone::before {
  content: ""; position: absolute; right: -40px; top: -40px;
  width: 200px; height: 200px; border-radius: 50%;
  background: radial-gradient(circle, #FFC700 0%, transparent 70%);
  opacity: 0.18;
}
.tg-flow-circle {
  display: flex; flex-direction: column; align-items: center;
  background: #FFC700; color: #0c2548;
  width: 110px; height: 110px; border-radius: 50%;
  justify-content: center; line-height: 1;
  font-family: Helvetica, Arial, sans-serif;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
  position: relative; z-index: 1;
}
.tg-flow-circle .lbl { font-size: 9px; font-weight: 700; letter-spacing: 0.12em; margin-bottom: 4px; }
.tg-flow-circle .n { font-size: 36px; font-weight: 900; }
.tg-flow-circle .unit { font-size: 12px; font-weight: 900; letter-spacing: 0.05em; }
.tg-flow-message {
  position: relative; z-index: 1;
}
.tg-flow-message .eyebrow {
  font-size: 11px; color: #FFC700; font-weight: 700; letter-spacing: 0.12em; margin-bottom: 4px;
}
.tg-flow-message .headline {
  font-size: 20px; font-weight: 900; color: #fff; line-height: 1.45;
}
.tg-flow-message .headline .chip {
  background: #FFC700; padding: 2px 8px; border-radius: 4px;
  color: #0c2548; display: inline-block; margin: 0 2px;
}
.tg-flow-message .sub {
  font-size: 12px; color: #b9c6df; margin-top: 4px;
}
.tg-flow-cta {
  display: flex; flex-direction: column; gap: 6px;
  position: relative; z-index: 1;
}
.tg-flow-cta .note {
  font-size: 10px; color: #8da3c8; text-align: center;
}

/* Phase 1 — horizontal */
.tg-phase {
  margin-bottom: 24px;
}
.tg-phase-head {
  display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.tg-phase-head .badge-y {
  background: #FFC700; color: #0c2548;
  padding: 5px 14px; border-radius: 999px;
  font-size: 11px; font-weight: 900; letter-spacing: 0.08em;
}
.tg-phase-head .badge-b {
  background: #0744CC; color: #fff;
  padding: 5px 14px; border-radius: 999px;
  font-size: 11px; font-weight: 900; letter-spacing: 0.08em;
}
.tg-phase-head .rule { flex: 1; height: 1px; background: #E5E9F0; }
.tg-phase-head .total { font-size: 11px; color: #7a849c; font-weight: 700; }

.tg-phase1-box {
  background: #fff; border: 2px solid #FFC700;
  border-radius: 14px; padding: 24px;
  display: flex; align-items: stretch; gap: 0; justify-content: space-between;
}
.tg-phase1-step {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  text-align: center;
}
.tg-phase1-step .circle {
  width: 44px; height: 44px; border-radius: 99px;
  background: #0c2548; color: #fff;
  display: grid; place-items: center;
  font-size: 16px; font-weight: 900;
  border: 3px solid #FFC700;
  box-shadow: 0 4px 12px rgba(255, 199, 0, 0.4);
}
.tg-phase1-step .time {
  background: #FFF7C2; color: #6B4B00;
  padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 900;
}
.tg-phase1-step .t { font-size: 14px; font-weight: 900; color: #0c2548; line-height: 1.4; }
.tg-phase1-step .d { font-size: 11px; color: #1a1f2e; line-height: 1.65; padding: 0 8px; }
.tg-phase1-arrow {
  display: flex; align-items: center; justify-content: center;
  padding: 0 8px; padding-top: 22px;
}
.tg-phase1-arrow svg { width: 36px; height: 24px; }

.tg-phase1-note {
  text-align: center; margin-top: 12px;
  font-size: 12px; color: #0c2548;
}
.tg-phase1-note .pill {
  background: #FFF7C2; padding: 4px 12px; border-radius: 99px;
  font-weight: 700;
}
.tg-phase1-note .pill b { color: #FF6C00; }

/* Phase 2 — vertical */
.tg-phase2-list {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; overflow: hidden;
}
.tg-phase2-step {
  padding: 16px 20px;
  border-top: 1px solid #F0F2F8;
  display: grid; grid-template-columns: 44px 1fr 100px; gap: 16px; align-items: center;
  position: relative;
}
.tg-phase2-step:first-child { border-top: none; }
.tg-phase2-step .marker {
  display: flex; flex-direction: column; align-items: center;
  position: relative;
}
.tg-phase2-step .marker .circle {
  width: 36px; height: 36px; border-radius: 99px;
  background: #0744CC; color: #fff;
  display: grid; place-items: center;
  font-size: 13px; font-weight: 900;
  z-index: 1; position: relative;
}
.tg-phase2-step.last .marker .circle { background: #FF6C00; }
.tg-phase2-step .lbl {
  font-size: 9px; font-weight: 700; color: #7a849c; letter-spacing: 0.1em; margin-bottom: 2px;
}
.tg-phase2-step .t {
  font-size: 14px; font-weight: 900; color: #0c2548; margin-bottom: 4px;
}
.tg-phase2-step .d {
  font-size: 12px; color: #1a1f2e; line-height: 1.7;
}
.tg-phase2-step .time-col { text-align: right; }

/* ============================================================
   ReviewStrategy（5つのコツ／番号付きリスト）
   ============================================================ */
.tg-strategy-list {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; overflow: hidden;
}
.tg-strategy-item {
  padding: 18px 24px;
  border-top: 1px solid #F0F2F8;
  display: grid; grid-template-columns: 60px 1fr; gap: 16px; align-items: flex-start;
}
.tg-strategy-item:first-child { border-top: none; }
.tg-strategy-item .n {
  font-size: 28px; font-weight: 900; color: #0744CC;
  font-family: Helvetica, Arial, sans-serif; line-height: 1;
}
.tg-strategy-item .t {
  font-size: 15px; font-weight: 900; color: #0c2548;
  margin-bottom: 6px; line-height: 1.5;
}
.tg-strategy-item .d {
  font-size: 15px; color: #0c2548; line-height: 1.9;
}

/* ============================================================
   ReviewCompare（3社比較表）
   ============================================================ */
.tg-compare {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; overflow: hidden;
}
.tg-compare table {
  width: 100%; border-collapse: collapse; font-size: 13px;
}
.tg-compare thead tr { border-bottom: 1px solid #E5E9F0; }
.tg-compare th, .tg-compare td {
  border-left: 1px solid #E5E9F0;
}
.tg-compare th.first-col, .tg-compare td.first-col {
  border-left: none;
  background: #F9FAFC;
  padding: 14px 16px;
  text-align: left;
  font-size: 11px; color: #7a849c; font-weight: 700;
  width: 110px;
}
.tg-compare td.first-col {
  font-size: 12px; color: #0c2548;
}
.tg-compare th.col {
  background: #F9FAFC;
  padding: 14px 12px; text-align: center;
  position: relative;
}
.tg-compare th.col.main {
  background: linear-gradient(180deg, #FFF7C2 0%, #fff 100%);
}
.tg-compare th.col .sub {
  font-size: 10px; font-weight: 700; color: #7a849c; letter-spacing: 0.1em; margin-bottom: 4px;
}
.tg-compare th.col.main .sub { color: #6B4B00; }
.tg-compare th.col .name {
  font-size: 14px; font-weight: 900; color: #0c2548; margin-bottom: 2px;
}
.tg-compare th.col .rating {
  display: flex; justify-content: center; align-items: center; gap: 4px;
}
.tg-compare th.col .rating b { font-size: 12px; color: #0c2548; }
.tg-compare tbody tr { border-top: 1px solid #F0F2F8; }
.tg-compare td {
  padding: 12px; text-align: center; line-height: 1.6;
  color: #1a1f2e; font-size: 12px;
}
.tg-compare td.main { background: rgba(255, 247, 194, 0.25); }
.tg-compare td.cta-cell { padding: 12px; }
.tg-compare .footnote {
  font-size: 11px; color: #7a849c; margin-top: 8px;
}

/* ============================================================
   ReviewBottomCTA（navy gradient strip）
   ============================================================ */
.tg-review-bottom-cta {
  background: linear-gradient(135deg, #0c2548 0%, #1a3a6e 60%, #0744CC 100%);
  border-radius: 16px; padding: 36px; color: #fff;
  position: relative; overflow: hidden;
}
.tg-review-bottom-cta::before {
  content: ""; position: absolute; right: -100px; top: -100px;
  width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(circle, #FFC700 0%, transparent 70%);
  opacity: 0.18;
}
.tg-review-bottom-cta-inner {
  display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center;
  position: relative;
}
.tg-review-bottom-cta .eyebrow {
  font-size: 11px; color: #FFC700; font-weight: 700; letter-spacing: 0.12em; margin-bottom: 8px;
}
.tg-review-bottom-cta h3 {
  font-size: 24px; font-weight: 900; color: #fff;
  margin: 0 0 8px; line-height: 1.4;
}
.tg-review-bottom-cta h3 .chip {
  background: #FFC700; padding: 2px 10px; border-radius: 5px;
  color: #0c2548; display: inline-block; margin: 0 2px;
}
.tg-review-bottom-cta p {
  font-size: 13px; color: #b9c6df; margin: 0; line-height: 1.7;
}
.tg-review-bottom-cta-actions {
  display: flex; flex-direction: column; gap: 8px; min-width: 280px;
}

/* ============================================================
   ReviewRelated（3関連記事）
   ============================================================ */
.tg-related-grid {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px;
}
.tg-related-card {
  background: #fff; border: 1px solid #E5E9F0;
  border-radius: 12px; padding: 18px;
  display: flex; flex-direction: column; gap: 8px;
  text-decoration: none; color: inherit;
  transition: all .15s;
}
.tg-related-card:hover {
  border-color: #87B2FF; opacity: 1;
  box-shadow: 0 4px 12px rgba(11, 40, 90, 0.08);
}
.tg-related-card .title {
  font-size: 14px; font-weight: 900; color: #0c2548; line-height: 1.55;
}
.tg-related-card .sub {
  font-size: 12px; color: #5a6378; line-height: 1.7;
}
.tg-related-card .more {
  font-size: 11px; color: #0744CC; font-weight: 700; margin-top: auto;
}

/* ============================================================
   ReviewFAQ（FAQをアコーディオン化・top.cssの .tg-faq を流用）
   ============================================================ */
/* top.css の .tg-faq, .tg-faq-list を流用するため追加スタイル不要 */

/* ============================================================
   SP overrides for Review
   ============================================================ */
@media (max-width: 768px) {
  .tg-breadcrumb { padding: 10px 16px; font-size: 10px; }
  .tg-review-hero { padding: 24px 0 32px; }
  .tg-review-hero .inner { padding: 0 16px; }
  .tg-review-hero h1 { font-size: 22px; }
  .tg-review-hero-card { padding: 18px; }
  .tg-review-hero-top {
    flex-direction: column; gap: 14px; align-items: flex-start;
  }
  .tg-review-logo-box { width: 100%; height: 64px; }
  .tg-review-logo-box img { height: 40px; }
  .tg-review-shortest { align-self: stretch; }

  .tg-review-metrics { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .tg-review-cta-row { grid-template-columns: 1fr; gap: 10px; }

  .tg-review-verdict { padding: 24px 16px 0; }
  .tg-review-verdict-card { padding: 18px; }
  .tg-review-ok-ng { grid-template-columns: 1fr; gap: 10px; }

  .tg-review-toc ol { grid-template-columns: 1fr; gap: 4px 0; }

  .tg-review-about-grid { grid-template-columns: 1fr; }
  .tg-review-about-card { padding: 16px; }

  .tg-review-specs table { font-size: 12px; }
  .tg-review-specs th { width: 96px; padding: 10px 12px; }
  .tg-review-specs td { padding: 10px 12px; }

  .tg-merit-card {
    grid-template-columns: 1fr; gap: 14px; padding: 18px;
  }
  .tg-merit-num { display: flex; align-items: center; justify-content: flex-start; gap: 12px; text-align: left; }
  .tg-merit-icon-box { margin: 0; }
  .tg-merit-num .n { display: inline; }
  .tg-merit-point { padding: 12px; }

  .tg-mid-cta { grid-template-columns: 1fr; padding: 18px; gap: 14px; }
  .tg-mid-cta .headline { font-size: 16px; }

  .tg-tips-grid { grid-template-columns: 1fr; }

  .tg-testimonial-card {
    grid-template-columns: 56px 1fr;
    grid-template-areas: "avatar meta" "body body" "result result";
    gap: 12px;
  }
  .tg-testimonial-card .tg-avatar { width: 56px; height: 56px; grid-area: avatar; }
  .tg-testimonial-meta { grid-area: meta; }
  .tg-testimonial-body-wrap { grid-area: body; }
  .tg-testimonial-result { grid-area: result; flex-direction: row; align-items: center; justify-content: center; gap: 8px; padding: 10px; }
  .tg-testimonial-result .h { font-size: 14px; }
  .tg-testimonial-result .v { font-size: 18px; }

  .tg-flow-milestone {
    grid-template-columns: 1fr; gap: 16px; padding: 20px;
  }
  .tg-flow-circle { width: 90px; height: 90px; margin: 0 auto; }
  .tg-flow-circle .n { font-size: 32px; }
  .tg-flow-message .headline { font-size: 16px; }

  .tg-phase1-box {
    flex-direction: column; gap: 16px; padding: 18px;
  }
  .tg-phase1-arrow { transform: rotate(90deg); padding: 0; }

  .tg-phase2-step { grid-template-columns: 36px 1fr; }
  .tg-phase2-step .time-col {
    grid-column: 2; text-align: left; margin-top: 4px;
  }

  .tg-strategy-item { grid-template-columns: 36px 1fr; gap: 10px; padding: 14px 16px; }
  .tg-strategy-item .n { font-size: 22px; }

  .tg-compare { overflow-x: auto; }
  .tg-compare table { min-width: 600px; }

  .tg-review-bottom-cta { padding: 24px; border-radius: 12px; }
  .tg-review-bottom-cta-inner { grid-template-columns: 1fr; gap: 16px; }
  .tg-review-bottom-cta h3 { font-size: 18px; }
  .tg-review-bottom-cta-actions { min-width: 0; }

  .tg-related-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Font weight adjustments — Zen Kaku Gothic New (Webフォント)
   採用に伴う調整。Zen Kaku Gothic New は 700 でも潰れにくい
   ので、中規模タイトル群は 700 に戻して見出し感を確保する。
   ============================================================ */
.tg-tips-title,
.tg-strategy-item .t,
.tg-merit-title,
.tg-testimonial-title,
.tg-review-about-title,
.tg-related-card .title,
.tg-review-verdict-card h3,
.tg-review-ok-ng h4,
.tg-phase1-step .t,
.tg-phase2-step .t,
.tg-compare th.col .name,
.tg-review-ok-ng li {
  font-weight: 700;
  letter-spacing: 0.02em;
}
.tg-tips-title,
.tg-strategy-item .t,
.tg-merit-title,
.tg-testimonial-title,
.tg-review-about-title,
.tg-related-card .title,
.tg-review-verdict-card h3,
.tg-phase1-step .t,
.tg-phase2-step .t {
  line-height: 1.6;
}
/* 大見出しは 900 維持（Zen Kaku Gothic New の 900 は綺麗） */
/* FAQ の Q マークと + アイコンは英字 → Helvetica で明瞭化 */
.tg-faq .q-num,
.tg-faq summary::after {
  font-family: Helvetica, Arial, sans-serif;
}
.tg-faq .q-num {
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0;
}

/* ============================================================
   Zen Kaku Gothic New 採用に伴うサイズ底上げ
   このフォントは字面が他より一回り小さく見えるので、
   主要本文・タイトル類の font-size を +1〜2px 引き上げる
   ============================================================ */
.tg-tips-title       { font-size: 16px; }
.tg-tips-body        { font-size: 15px; }
.tg-merit-title      { font-size: 17px; }
.tg-merit-text       { font-size: 16px; }
.tg-review-verdict-card h3 { font-size: 18px; }
.tg-review-verdict-card p  { font-size: 16px; }
.tg-review-about-title     { font-size: 16px; }
.tg-review-about-body      { font-size: 15px; }
.tg-strategy-item .t       { font-size: 16px; }
.tg-strategy-item .d       { font-size: 16px; }
.tg-testimonial-title      { font-size: 16px; }
.tg-testimonial-text       { font-size: 15px; }
.tg-review-ok-ng h4        { font-size: 14px; }
.tg-review-ok-ng ul,
.tg-review-ok-ng li        { font-size: 15px; }
.tg-related-card .title    { font-size: 15px; }
.tg-review-specs td        { font-size: 15px; }
/* 5列メトリクス（公開求人数 / 累計会員 / 対面拠点 / 対応年代 / 利用料金） */
.tg-review-metric .l       { font-size: 12px; margin-bottom: 6px; }
.tg-review-metric .v       { font-size: 19px; line-height: 1.25; }
.tg-review-metric .v .u    { font-size: 13px; }
.tg-review-metric          { padding: 12px 10px; }
/* Phase1 / Phase2（登録から転職までの流れ）も底上げ */
.tg-phase1-step .t         { font-size: 15px; }
.tg-phase1-step .d         { font-size: 13px; line-height: 1.7; }
.tg-phase2-step .t         { font-size: 16px; margin-bottom: 6px; }
.tg-phase2-step .d         { font-size: 14px; line-height: 1.75; }
.tg-phase2-step .lbl       { font-size: 10px; }
/* top.css 流用の FAQ も底上げ */
.tg-faq summary { font-size: 16px; }
.tg-faq .answer { font-size: 16px; }

/* SP で Mid CTA ボタンがはみ出る問題（white-space: nowrap が原因）
   → SP では full-width 化＋折り返し許可 */
@media (max-width: 768px) {
  .tg-mid-cta .cta-wrap { width: 100%; }
  .tg-mid-cta .cta-wrap a.tg-cta-orange {
    white-space: normal;
    width: 100%;
    padding: 14px 16px;
    text-align: center;
    box-sizing: border-box;
    line-height: 1.4;
  }
}

/* ============================================================
   SP Sticky CTA — スマホ画面下に常時固定するオーバーレイ
   旧デザインから復活。PC では非表示。
   ============================================================ */
.tg-sp-sticky-cta { display: none; }
@media (max-width: 768px) {
  .tg-sp-sticky-cta {
    display: flex;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(255, 255, 255, 0.97);
    border-top: 1px solid #E5E9F0;
    padding: 10px 14px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom));
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    z-index: 40;
    box-shadow: 0 -4px 16px rgba(11, 40, 90, 0.08);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
  }
  .tg-sp-sticky-cta .label {
    flex: 1; min-width: 0;
    font-size: 13px; font-weight: 700; color: #0c2548;
    line-height: 1.3;
  }
  .tg-sp-sticky-cta .label strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .tg-sp-sticky-cta .label small {
    display: block;
    font-size: 10px; font-weight: 500; color: #5F6776;
    margin-top: 2px; line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .tg-sp-sticky-cta a {
    flex-shrink: 0;
    background: #FF6C00;
    color: #fff;
    font-weight: 800;
    padding: 11px 20px;
    border-radius: 999px;
    font-size: 14px;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 8px rgba(255, 108, 0, 0.3);
    white-space: nowrap;
  }
  /* sticky CTA に隠れないよう body 下部に余白 */
  body { padding-bottom: 76px; }
}
