/* Okendo reviews — shared component (themes: d | a | f) */
.okendo-reviews[hidden]{display:none!important}

.okendo-reviews{
  --okendo-bg:#F2F2F0;
  --okendo-ink:#1A1A1A;
  --okendo-ink-2:#4A4A48;
  --okendo-ink-3:#7A7A77;
  --okendo-line:rgba(26,26,26,.15);
  --okendo-line-2:rgba(26,26,26,.08);
  --okendo-accent:#1A1A1A;
  --okendo-star:#1A1A1A;
  --okendo-radius:0;
  --okendo-head-en:'Inter',system-ui,sans-serif;
  --okendo-head-jp:'IBM Plex Sans JP',sans-serif;
  --okendo-body:'IBM Plex Sans JP',sans-serif;
  --okendo-mono:'IBM Plex Mono',monospace;
  --okendo-title-font:var(--okendo-head-jp);
  background:var(--okendo-bg);
  color:var(--okendo-ink);
  border-bottom:1px solid var(--okendo-ink);
}

[data-okendo-theme="d"]{
  --okendo-bg:#F2F2F0;
  --okendo-accent:#1A1A1A;
  --okendo-title-font:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',serif;
}

[data-okendo-theme="a"]{
  --okendo-bg:#F5F3EE;
  --okendo-accent:#8B2635;
  --okendo-star:#8B2635;
  --okendo-head-en:'Cormorant Garamond',Georgia,serif;
  --okendo-head-jp:'Shippori Mincho',serif;
  --okendo-body:'Zen Kaku Gothic New','IBM Plex Sans JP',sans-serif;
  --okendo-mono:'IBM Plex Mono',monospace;
  --okendo-title-font:'Shippori Mincho',serif;
}

[data-okendo-theme="f"]{
  --okendo-bg:#FAFAF7;
  --okendo-accent:#E85D04;
  --okendo-star:#E85D04;
  --okendo-radius:12px;
  --okendo-head-en:'Inter',system-ui,sans-serif;
  --okendo-head-jp:'Zen Kaku Gothic New',sans-serif;
  --okendo-body:'Zen Kaku Gothic New',sans-serif;
  --okendo-mono:'IBM Plex Mono',monospace;
  --okendo-title-font:'Zen Kaku Gothic New',sans-serif;
}

/* —— Header: Layout A（d / a / f 共通構造） —— */
.okendo-reviews__head--d,
.okendo-reviews__head--a,
.okendo-reviews__head--f{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:52px 22px 18px;
  border-bottom:1px solid var(--okendo-ink);
  gap:12px;
}
.okendo-reviews__head--d .okendo-reviews__head-jp,
.okendo-reviews__head--a .okendo-reviews__head-jp,
.okendo-reviews__head--f .okendo-reviews__head-jp{
  font-family:var(--okendo-head-jp);
  font-weight:500;
  font-size:16px;
  letter-spacing:.08em;
  line-height:1.5;
  margin:0;
}
.okendo-reviews__head--d .okendo-reviews__head-en,
.okendo-reviews__head--a .okendo-reviews__head-en,
.okendo-reviews__head--f .okendo-reviews__head-en{
  font-family:var(--okendo-head-en);
  font-weight:400;
  font-size:14px;
  letter-spacing:.22em;
  text-transform:uppercase;
  line-height:1.2;
  margin:2px 0 0;
}
[data-okendo-theme="a"] .okendo-reviews__head--a{
  border-bottom-color:var(--okendo-line);
}
[data-okendo-theme="a"] .okendo-reviews__head--a .okendo-reviews__head-jp{
  font-size:18px;
  letter-spacing:.1em;
}
[data-okendo-theme="a"] .okendo-reviews__head--a .okendo-reviews__head-en{
  font-size:12px;
  color:var(--okendo-ink-3);
}
[data-okendo-theme="f"] .okendo-reviews__head--f .okendo-reviews__head-jp{
  font-weight:700;
  font-size:17px;
  letter-spacing:.02em;
}
[data-okendo-theme="f"] .okendo-reviews__head--f .okendo-reviews__head-en{
  color:var(--okendo-ink-3);
}

/* ── V1 hero: typographic score + distribution ── */
.okendo-reviews__hero{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  padding:28px 22px 32px;
  border-bottom:1px solid var(--okendo-ink);
  background:var(--okendo-bg);
}
.okendo-reviews__hero-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}
.okendo-reviews__hero-score{
  font-family:var(--okendo-mono);
  font-weight:500;
  font-size:64px;
  line-height:.9;
  letter-spacing:-.02em;
  color:var(--okendo-ink);
  margin:0;
}
.okendo-reviews__hero-score small{
  display:block;
  font-size:11px;
  letter-spacing:.28em;
  color:var(--okendo-ink-3);
  margin-top:8px;
  font-weight:400;
}
.okendo-reviews__hero .okendo-reviews__stars svg{width:12px;height:12px}

.okendo-reviews__dist{
  display:flex;
  flex-direction:column;
  gap:6px;
  width:100%;
  max-width:220px;
}
.okendo-reviews__dist-row{
  display:grid;
  grid-template-columns:28px 1fr 24px;
  align-items:center;
  gap:8px;
  font-family:var(--okendo-mono);
  font-size:8px;
  letter-spacing:.12em;
  color:var(--okendo-ink-3);
}
.okendo-reviews__dist-bar{
  height:4px;
  background:var(--okendo-line-2);
  position:relative;
  overflow:hidden;
}
.okendo-reviews__dist-fill{
  position:absolute;
  left:0;top:0;bottom:0;
  background:var(--okendo-ink);
}
[data-okendo-theme="a"] .okendo-reviews__dist-fill{background:var(--okendo-accent)}
[data-okendo-theme="f"] .okendo-reviews__dist-fill{background:var(--okendo-accent)}

/* Aggregate bar (legacy — unused in v1) */
.okendo-reviews__agg{
  display:none;
}
.okendo-reviews__agg--legacy{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:12px 16px;
  padding:20px 22px;
  border-bottom:1px solid var(--okendo-line);
}
.okendo-reviews__agg-score{
  display:flex;
  align-items:center;
  gap:10px;
}
.okendo-reviews__agg-num{
  font-family:var(--okendo-mono);
  font-weight:500;
  font-size:22px;
  letter-spacing:.02em;
  line-height:1;
}
.okendo-reviews__agg-num small{
  font-size:11px;
  color:var(--okendo-ink-3);
  font-weight:400;
}
.okendo-reviews__agg-meta{
  font-family:var(--okendo-mono);
  font-size:8px;
  color:var(--okendo-ink-3);
  letter-spacing:.3em;
  text-transform:uppercase;
  font-weight:500;
  text-align:right;
  line-height:1.8;
}
.okendo-reviews__verified{
  display:inline-block;
  margin-top:4px;
  padding:2px 6px;
  border:1px solid var(--okendo-line);
  font-size:7px;
  letter-spacing:.22em;
}

/* Summary & keywords */
.okendo-reviews__summary{
  padding:18px 22px;
  border-bottom:1px solid var(--okendo-line-2);
  font-family:var(--okendo-body);
  font-size:13px;
  line-height:1.95;
  letter-spacing:.04em;
  color:var(--okendo-ink-2);
}
.okendo-reviews__keywords{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:14px 22px 18px;
  border-bottom:1px solid var(--okendo-line);
}
.okendo-reviews__kw{
  font-family:var(--okendo-mono);
  font-size:8px;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:5px 10px;
  border:1px solid var(--okendo-line);
  color:var(--okendo-ink-2);
  font-weight:500;
  border-radius:var(--okendo-radius);
}
[data-okendo-theme="a"] .okendo-reviews__kw{border-color:rgba(139,38,53,.25);color:var(--okendo-accent)}
[data-okendo-theme="f"] .okendo-reviews__kw{background:#fff}

/* Review cards — uniform list */
.okendo-reviews__list{
  display:grid;
  grid-template-columns:1fr;
  border-top:1px solid var(--okendo-line-2);
}
.okendo-reviews__list--uniform{border-top:none}

.okendo-reviews__card{
  padding:28px 22px 26px;
  border-bottom:1px solid var(--okendo-line);
  display:flex;
  flex-direction:column;
  gap:0;
  background:var(--okendo-bg);
}
.okendo-reviews__list--uniform .okendo-reviews__card:nth-child(odd){
  background:#fff;
}
.okendo-reviews__card:last-child{border-bottom:none}

.okendo-reviews__stars{
  display:flex;
  gap:3px;
  flex-shrink:0;
}
.okendo-reviews__stars svg{
  width:9px;
  height:9px;
  fill:var(--okendo-star);
}
[data-okendo-theme="f"] .okendo-reviews__stars svg{width:10px;height:10px}

/* Title + stars on one row, body below */
.okendo-reviews__card-content{
  display:flex;
  flex-direction:column;
  gap:0;
  margin-bottom:18px;
}
.okendo-reviews__card-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--okendo-ink);
}
.okendo-reviews__card-row .okendo-reviews__stars{
  padding-top:5px;
}
.okendo-reviews__title{
  font-family:var(--okendo-title-font, var(--okendo-head-jp));
  font-weight:500;
  font-size:16px;
  line-height:1.55;
  letter-spacing:.06em;
  color:var(--okendo-ink);
  margin:0;
  padding:0;
  border:none;
  flex:1;
  min-width:0;
}
[data-okendo-theme="a"] .okendo-reviews__title{
  font-size:17px;
  letter-spacing:.08em;
}
[data-okendo-theme="a"] .okendo-reviews__card-row{border-bottom-color:rgba(139,38,53,.35)}
[data-okendo-theme="f"] .okendo-reviews__title{
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
}
[data-okendo-theme="f"] .okendo-reviews__card-row{
  border-bottom-width:2px;
  border-bottom-color:var(--okendo-accent);
  padding-bottom:12px;
  margin-bottom:14px;
}
.okendo-reviews__body{
  font-family:var(--okendo-body);
  font-weight:400;
  font-size:14px;
  line-height:2;
  letter-spacing:.05em;
  color:var(--okendo-ink-2);
  margin:0;
  white-space:pre-line;
}
[data-okendo-theme="f"] .okendo-reviews__body{
  font-size:13px;
  line-height:1.9;
}

.okendo-reviews__by{
  font-family:var(--okendo-mono);
  font-size:8px;
  color:var(--okendo-ink-3);
  letter-spacing:.3em;
  text-transform:uppercase;
  padding-top:12px;
  border-top:1px solid var(--okendo-line-2);
  font-weight:500;
  display:flex;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}

/* Footer link */
.okendo-reviews__foot{
  padding:22px 22px 28px;
  text-align:center;
}
.okendo-reviews__more{
  font-family:var(--okendo-mono);
  font-size:9px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--okendo-ink);
  text-decoration:none;
  border-bottom:1px solid var(--okendo-ink);
  padding-bottom:2px;
  font-weight:500;
  transition:opacity .25s;
}
.okendo-reviews__more:hover{opacity:.65}

[data-okendo-theme="f"] .okendo-reviews__list--uniform .okendo-reviews__card{
  margin:0 22px 12px;
  padding:22px 18px 20px;
  border:1px solid var(--okendo-line);
  border-radius:var(--okendo-radius);
  border-bottom:1px solid var(--okendo-line);
}
[data-okendo-theme="f"] .okendo-reviews__list--uniform .okendo-reviews__card:nth-child(odd){
  background:#fff;
}
[data-okendo-theme="f"] .okendo-reviews__list--uniform .okendo-reviews__card:last-child{
  margin-bottom:20px;
}

@media (prefers-reduced-motion:reduce){
  .okendo-reviews .reveal{transition-duration:.01ms!important}
}
