/* 사이트 공통 토큰으로 표현하는 이용후기 구성.  */
.bj-review-page {
  --review-grid-gap:20px;
  --review-section-compact:calc(var(--bj-space-4) - var(--bj-space-2));
  --review-step-min-height:0px;
  --review-disclosure-height:64px;
  --review-action-height:52px;
  --review-action-min-width:230px;
  --review-board-meta-gap:var(--bj-space-1);
  --review-inline-label-width:64px;
  --review-type-subhead:var(--bj-type-subsection);
  --review-type-subhead-weight:var(--bj-type-subsection-weight);
  --review-type-subhead-line:var(--bj-type-subsection-line);
  --review-type-step-index:var(--bj-type-caption);
  --review-tertiary:var(--bj-muted);
  color:var(--bj-ink);
  font-family:var(--bj-font-family);
  font-size:var(--bj-type-body);
  font-weight:var(--bj-type-body-weight);
  line-height:var(--bj-type-body-line);
  letter-spacing:var(--bj-type-body-tracking);
}

.bj-review-page * { box-sizing: border-box; }
.bj-review-page a { color: inherit; text-decoration: none; }
.bj-review-page-inner { width: var(--bj-content-max); margin-right: auto; margin-left: auto; }
.bj-review-section--spaced { padding: var(--bj-space-4) 0; }
.bj-review-section--soft {
    background: var(--bj-information-surface);
    box-shadow: 0 0 0 100vmax var(--bj-information-surface);
    clip-path: inset(0 -100vmax);
}

/* 제목과 설명 */
.bj-review-section-head {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--review-grid-gap);
    row-gap: var(--bj-space-2);
    width: 100%;
}
.bj-review-section-title,
.bj-review-section-summary { width: 100%; margin: 0 !important; }
.bj-review-label { margin: 0 0 var(--bj-space-3); color: var(--bj-muted); font-size: var(--bj-type-caption); font-weight: var(--bj-type-caption-weight); line-height: var(--bj-type-caption-line); }
.bj-review-display { margin: 0; font-size: var(--bj-type-display); font-weight: var(--bj-type-display-weight); line-height: var(--bj-type-display-line); letter-spacing: -.035em; word-break: keep-all; }
.bj-review-title { margin: 0; font-size: var(--bj-type-section); font-weight: var(--bj-type-section-weight); line-height: var(--bj-type-section-line); letter-spacing: -.03em; word-break: keep-all; }
.bj-review-body { margin: 0; color: var(--bj-muted); font-size: var(--bj-type-body); font-weight: var(--bj-type-body-weight); line-height: var(--bj-type-body-line); word-break: keep-all; }

/* 설명문 아래의 구성·색상·해시태그 등 짧은 항목 정보 */
.bj-review-inline-specs { margin: calc(var(--bj-space-2) + var(--bj-space-1)) 0 0; }
.bj-review-inline-specs > div {
    display: grid;
    grid-template-columns: var(--review-inline-label-width, 64px) minmax(0, 1fr);
    align-items: baseline;
}
.bj-review-inline-specs > div + div { margin-top: var(--bj-space-1); }
.bj-review-inline-specs dt {
    color: var(--bj-muted);
    font-size: var(--bj-type-body);
    line-height: var(--bj-type-body-line);
}
.bj-review-inline-specs dd {
    margin: 0;
    color: var(--bj-ink);
    font-size: var(--bj-type-body);
    font-weight: var(--bj-type-control-weight);
    line-height: var(--bj-type-body-line);
}

/* 대상·혜택·기간 등 핵심 조건 */
.bj-review-page .bj-review-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--review-grid-gap); width: 100%; margin: var(--review-section-compact) 0 0; padding: 0; border: 0; }
.bj-review-page .bj-review-facts > div { width: 100%; margin: 0 !important; padding: var(--bj-page-gutter) 0 0; border-top: 1px solid var(--bj-line); border-right: 0; border-bottom: 0; border-left: 0; }
.bj-review-page .bj-review-facts dt { color: var(--bj-muted); font-family: var(--bj-font-family); font-size: var(--bj-type-body); font-weight: var(--bj-type-body-weight); line-height: var(--bj-type-body-line); letter-spacing: normal; }
.bj-review-page .bj-review-facts dd { margin: var(--bj-space-1) 0 0; color: var(--bj-ink); font-family: var(--bj-font-family); font-size: var(--bj-type-body); font-weight: var(--bj-type-body-weight); line-height: var(--bj-type-body-line); letter-spacing: var(--bj-type-body-tracking); overflow-wrap: break-word; word-break: keep-all; }
.bj-review-page .bj-review-facts + .bj-review-hero-media { margin-top: var(--review-section-compact); }

/* 동일한 정보형 구조에서 사용하는 표준 가로형 히어로 */
.bj-review-hero-media--standard { position: relative; overflow: hidden; }
.bj-review-hero-media__scene { position: absolute; inset: 0; }

/* 단계 안내 */
.bj-review-steps { display: grid; gap: var(--review-grid-gap); width: 100%; margin-top: var(--review-section-compact); }
.bj-review-steps--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bj-review-steps--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bj-review-step { width: 100%; min-height: var(--review-step-min-height); padding: var(--bj-page-gutter) 0 0; border-top: 1px solid var(--bj-ink); }
.bj-review-step b { display: block; margin-bottom: var(--bj-space-2); color: var(--review-tertiary); font-size: var(--bj-type-caption); line-height: var(--bj-type-caption-line); }
.bj-review-step strong { display: block; font-size: var(--review-type-subhead); font-weight: var(--review-type-subhead-weight); line-height: var(--review-type-subhead-line); }

/* 확인 사항 */
.bj-review-disclosure { margin: var(--review-section-compact) 0 0; border-top: 1px solid var(--bj-line); border-bottom: 1px solid var(--bj-line); }
.bj-review-disclosure__summary { position: relative; display: flex; min-height: var(--review-disclosure-height); padding: 0 42px 0 0; align-items: center; color: var(--bj-ink); cursor: pointer; font-size: var(--bj-type-body); font-weight: var(--bj-type-nav-weight); line-height: var(--bj-type-body-line); list-style: none; }
.bj-review-disclosure__summary::-webkit-details-marker { display: none; }
.bj-review-disclosure__summary::marker { content: ""; }
.bj-review-disclosure__summary::after { position: absolute; top: 50%; right: 20px; width: 7px; height: 7px; border-right: 1px solid var(--bj-muted); border-bottom: 1px solid var(--bj-muted); content: ""; transform: translateY(-65%) rotate(45deg); }
.bj-review-disclosure[open] .bj-review-disclosure__summary::after { transform: translateY(-35%) rotate(225deg); }
.bj-review-disclosure__summary:focus { outline: 0; }
/* Block surface focus: disclosure rows underline their label instead of drawing a box. */
.bj-review-disclosure__summary:focus-visible { outline: none; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.bj-review-disclosure__content { padding: 0 0 var(--bj-page-gutter); }
.bj-review-disclosure__list { display: grid; gap: var(--bj-space-1); margin: 0; padding: 0; list-style: none; }
.bj-review-disclosure__list li { position: relative; padding-left: 12px; color: var(--bj-muted); font-size: var(--bj-type-body); font-weight: var(--bj-type-body-weight); line-height: var(--bj-type-body-line); letter-spacing: var(--bj-type-body-tracking); }
.bj-review-disclosure__list li::before { position: absolute; top: .72em; left: 0; width: 3px; height: 3px; border-radius: 50%; background: currentColor; content: ""; }

/* 행동 버튼 */
.bj-review-actions { display: flex; justify-content: center; gap: var(--bj-space-2); padding: var(--review-section-compact) 0 0; }
.bj-review-hero-actions { display: flex; margin-top: var(--bj-space-3); }
.bj-review-board-actions { display: flex; justify-content: center; gap: var(--bj-space-2); margin-top: var(--bj-space-3); }
.bj-review-board-heading .bj-review-label { color: var(--bj-muted); font-size: var(--bj-type-caption); font-weight: var(--bj-type-caption-weight); line-height: var(--bj-type-caption-line); }
.bj-review-board-heading .bj-review-title,
.bj-review-board-heading .bj-review-section-title { color: var(--bj-ink); font-size: var(--bj-type-section); font-weight: var(--bj-type-section-weight); line-height: var(--bj-type-section-line); }
.bj-review-page .bj-review-board-tabs { display: flex; min-width: 0; gap: 20px; border-bottom: 1px solid var(--bj-line); }
.bj-review-page .bj-review-board-tabs > :is(a,button) { display: inline-flex; min-height: 48px; margin-bottom: -1px; padding: 0; align-items: center; border:0; border-bottom: 2px solid transparent; background:transparent; cursor:pointer; color: var(--bj-muted); font-family: var(--bj-font-family); font-size: var(--bj-type-control); font-weight: var(--bj-type-control-weight); line-height: var(--bj-type-control-line); text-decoration: none; white-space: nowrap; }
.bj-review-page .bj-review-board-tabs > :is(a,button):is(.is-active,.review_menu_link_on,.on),
.bj-review-page .bj-review-board-tabs > :is(a,button)[aria-selected="true"],
.bj-review-page .bj-review-board-tabs > :is(a,button)[aria-current="page"] { border-bottom-color: var(--bj-ink); color: var(--bj-ink); font-weight: 600; }
.bj-review-board-date { color: var(--bj-muted) !important; font-family: var(--bj-font-family); font-size: var(--bj-type-caption) !important; font-weight: 400 !important; font-variant-numeric: tabular-nums; line-height: var(--bj-type-caption-line) !important; white-space: nowrap; }
.bj-review-board-status-stack { display: inline-flex; width: max-content; max-width: 100%; flex-direction: column; align-items: flex-start; gap: var(--review-board-meta-gap); }
.bj-review-page .bj-review-status-badge { box-sizing: border-box; display: inline-flex; width: max-content; max-width: 100%; min-height: 28px; padding: 4px 10px; flex: 0 0 auto; align-items: center; justify-content: center; justify-self: start; border: 1px solid var(--bj-line-strong); border-radius: 999px; background: transparent; color: var(--bj-muted); font-family: var(--bj-font-family); font-size: var(--bj-type-caption); font-weight: 600; line-height: var(--bj-type-caption-line); white-space: nowrap; }
.bj-review-page .bj-review-status-badge--complete,
.bj-review-page .bj-review-status-badge--winner { border-color: var(--bj-ink); background: var(--bj-ink); color: var(--bj-clean); }
.bj-review-page .bj-review-status-badge--hold { border-color: var(--bj-stone); background: var(--bj-stone); color: var(--bj-muted); }
.bj-review-action { display: inline-flex; height: var(--review-action-height); min-width: var(--review-action-min-width); padding: 0 20px; align-items: center; justify-content: center; gap: var(--bj-space-1); border: 1px solid var(--bj-charcoal); border-radius: var(--bj-control-radius); background: var(--bj-clean); color: var(--bj-ink) !important; font-family: var(--bj-font-family); font-size: var(--bj-type-action); font-weight: var(--bj-type-action-weight); line-height: var(--bj-type-action-line); letter-spacing: var(--bj-type-body-tracking); text-align: center; text-decoration: none !important; }
.bj-review-action::after { width: 7px; height: 7px; flex: 0 0 auto; border-top: 1px solid currentColor; border-right: 1px solid currentColor; content: ""; transform: rotate(45deg); }
.bj-review-action--entry::before { width: 14px; height: 14px; flex: 0 0 auto; background: currentColor; content: ""; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M12 20h9M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M12 20h9M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E") center / contain no-repeat; }
.bj-review-action--entry::after { content: none; }
.bj-review-action--primary { border-color: var(--bj-charcoal); background: var(--bj-charcoal); color: var(--bj-paper) !important; }
.bj-review-action:hover { border-color: var(--bj-muted); background: var(--bj-product-stage); }
.bj-review-action:focus-visible { outline: 2px solid var(--bj-charcoal); outline-offset: 3px; }
.bj-review-action--primary:hover { border-color: var(--bj-ink); background: var(--bj-ink); }

/* 후기형 이벤트 공통 페이지네이션 */
.bj-review-review-pager { margin: 32px 0 0; overflow-x: auto; scrollbar-width: none; }
.bj-review-review-pager::-webkit-scrollbar { display: none; }
.bj-review-review-pager #pagging_tbl { min-width: max-content; margin: 0 !important; }
.bj-review-review-pager #pagging_tbl ul { margin: 0; padding: 0; flex-wrap: nowrap; justify-content: center; gap: 4px !important; }
.bj-review-review-pager #pagging_tbl .num_el { display: flex !important; width: 36px !important; min-width: 32px; height: 36px !important; flex: 0 0 36px; align-items: center !important; justify-content: center !important; border: 0; color: var(--bj-muted) !important; font-family: var(--bj-font-family) !important; font-size: var(--bj-type-caption) !important; font-weight: 400 !important; line-height: 1 !important; }
.bj-review-review-pager #pagging_tbl .num_el a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: inherit; font: inherit; line-height: 1 !important; }
.bj-review-review-pager #pagging_tbl .sel_td { border: 0 !important; border-radius: 0 !important; color: var(--bj-ink) !important; font-weight: 600 !important; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.bj-review-review-pager #pagging_tbl .sel_td::after { content: none; }
.bj-review-review-pager #pagging_tbl .arrow_l,
.bj-review-review-pager #pagging_tbl .arrow_r { position: relative; width: 36px !important; height: 36px !important; flex-basis: 36px; margin: 0; border: 1px solid var(--bj-line); border-radius: 50%; background: var(--bj-clean) !important; }
.bj-review-review-pager #pagging_tbl .arrow_l::after,
.bj-review-review-pager #pagging_tbl .arrow_r::after { position: absolute; inset: 0; display: grid; place-items: center; color: var(--bj-ink); content: "←"; line-height: 1; text-align: center; pointer-events: none; }
.bj-review-review-pager #pagging_tbl .arrow_r::after { content: "→"; }
.bj-review-review-pager #pagging_tbl .arrow_l:hover,
.bj-review-review-pager #pagging_tbl .arrow_r:hover { border-color: var(--bj-line-strong); }


/* 기존 공통 헤더/푸터와 같은 정렬축. 시안별 사진·소개 배치는 각 페이지 CSS가 소유합니다. */
.bj-review-common-top-navigation { display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--bj-space-2); width:100%; margin:0 auto; padding:var(--bj-space-3) 0; }
.bj-review-common-top-navigation a { display:inline-flex; min-height:44px; align-items:center; color:var(--bj-muted); font-size:var(--bj-type-caption); line-height:var(--bj-type-caption-line); }
.bj-review-page .bj-review-body { letter-spacing:var(--bj-type-body-tracking); }
.bj-review-page .bj-review-title { letter-spacing:var(--bj-type-page-tracking); }
.bj-review-page .bj-review-disclosure__summary:focus-visible { outline:2px solid var(--bj-ink); outline-offset:-3px; }
.bj-review-page .bj-review-action:focus-visible { outline:2px solid var(--bj-ink); outline-offset:3px; }
.bj-review-page .review-community-method-card { border:0; }
.bj-review-page .review-community-method-card .bj-review-label { margin-bottom:var(--bj-space-2); font-weight:var(--bj-type-caption-weight); letter-spacing:normal; }
.bj-review-page .review-community-method-card .bj-review-title { line-height:var(--bj-type-subsection-line); letter-spacing:var(--bj-type-body-tracking); }
.bj-review-page .review-community-method-card .review-community-method__summary { margin-top:var(--bj-space-2) !important; letter-spacing:var(--bj-type-body-tracking); }
.bj-review-page .review-community-method-card .bj-review-steps { gap:var(--bj-space-2); margin-top:var(--bj-space-3); }
.bj-review-page .review-community-method-card .review-community-method__tags { gap:var(--bj-space-2); margin-top:var(--bj-space-3); padding-top:var(--bj-space-3); }
.bj-review-page .review-community-method-card .review-community-method__tags > div { gap:var(--bj-space-2); }
.bj-review-page .review-community-method-card .review-community-method__tags dd { font-weight:var(--bj-type-body-weight); }
.bj-review-page .review-community-method__guide-jump { margin-top:var(--bj-space-2); }
.bj-review-page .review-community-example-grid { gap:var(--bj-space-3); }
body:has(.bj-review-common-reviewed) #foot_margin_top { display:none; }
body:has(.bj-review-common-reviewed) .bj-compact-footer { margin-top:0; }
body:has(.bj-review-common-reviewed) #tail_area.bj-compact-footer { width:100% !important; left:auto !important; transform:none !important; }
@media (min-width:768px) {
  .bj-review-section-title { display:contents; }
  .bj-review-section-title .bj-review-display, .bj-review-section-title .bj-review-title { grid-column:1; grid-row:1; }
  .bj-review-section-summary { grid-column:2; grid-row:1; }
}
@media (min-width:768px) and (max-width:1023px) {
  .ev2.bj-review-page { width:calc(100% - var(--bj-page-gutter) * 2); }
}
@media (max-width:767px) {
  html body .ev2.bj-review-page { width:calc(100% - var(--bj-page-gutter-mobile) * 2) !important; margin-inline:auto !important; padding-inline:0 !important; }
  html body .ev2.bj-review-page > section { padding-inline:0 !important; }
  .bj-review-page .bj-review-board-tabs { max-width:100%; overflow-x:auto; scrollbar-width:none; }
  .bj-review-page .bj-review-board-tabs::-webkit-scrollbar { display:none; }
  .bj-review-page .bj-review-status-badge { min-height:26px; padding:3px 8px; }
  .bj-review-section-head { grid-template-columns:1fr; row-gap:var(--bj-space-2); }
  .bj-review-inline-specs { margin-top:var(--bj-space-2); }
  .bj-review-page .bj-review-facts { margin-top:var(--bj-space-3); }
  .bj-review-page .bj-review-facts > div { padding-top:var(--bj-space-3); }
  .bj-review-steps { grid-template-columns:1fr !important; gap:0; margin-top:var(--bj-space-3); }
  .bj-review-step { min-height:0; padding:var(--bj-space-3) 0; }
  .bj-review-actions { flex-direction:column; gap:var(--bj-space-2); padding-top:var(--bj-space-4); }
  .bj-review-actions .bj-review-action, .bj-review-hero-actions .bj-review-action, .bj-review-board-actions .bj-review-action { width:100%; }
}

