@charset "utf-8";

/**
 * vReview - 수출바우처 리뷰 페이지 전용 스타일
 * .vReview 페이지에서만 로드됨 (page_depth3 == 'voucher-review')
 */

:root {
  --reviews-max-w: 1280px;
  --reviews-header-h: 80px;
  --reviews-indigo: #4F46E5;
  --reviews-sky: #0EA5E9;
  --reviews-violet: #8B5CF6;
  --reviews-pink: #EC4899;
  --reviews-slate-50: #F8FAFC;
  --reviews-slate-100: #F1F5F9;
  --reviews-slate-200: #E2E8F0;
  --reviews-slate-300: #CBD5E1;
  --reviews-slate-400: #94A3B8;
  --reviews-slate-500: #64748B;
  --reviews-slate-600: #475569;
  --reviews-slate-700: #334155;
  --reviews-slate-800: #1E293B;
  --reviews-slate-900: #0F172A;
}

/* .vReview 스코프 */
.vReview section { background-color: var(--reviews-slate-50); word-break: keep-all;}
.vReview .container {
  max-width: var(--reviews-max-w);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  box-sizing: border-box;
}
.vReview .page_intro.container {max-width: 1590px;}
@media (max-width: 1023px) {
  .vReview .container { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (max-width: 639px) {
  .vReview .container { padding-left: 1rem; padding-right: 1rem; }
}
.vReview .hidden {display: none !important;}
/* 모바일(~768px)에서만 줄바꿈 — rgb_reviews Tailwind br.md:hidden 과 동일 */
.vReview .reviews-br-mobile { display: none; }
.vReview .reviews-br-desktop { display: inline; }
@media screen and (max-width: 768px) {
  .vReview .reviews-br-mobile { display: inline; }
  .vReview .reviews-br-desktop { display: none; }
}
.vReview .reviews-section:first-of-type { margin-top: 0; }
.vReview .reviews-section-center {text-align: center; margin-bottom: 3rem;}
.vReview .reviews-section-center.reviews-space-y { margin-bottom: 3rem; }
.vReview .reviews-section-title {font-weight: 700; color: var(--reviews-slate-900); line-height: 1.2;}
.vReview .reviews-section-desc {color: var(--reviews-slate-600); font-weight: 500; line-height: 1.625;}
.vReview .reviews-section-desc.reviews-max-w { max-width: 48rem; margin-left: auto; margin-right: auto; }
.vReview .review-banner {width: 100%; height: 100%; position: relative;}
.vReview .review-banner .pcView {display: block;}
.vReview .review-banner .moView {display: none;}

.reviews-overview { text-align: center; }
.reviews-overview > * + * { margin-top: 2rem; }
.reviews-overview h1 { font-size: 3rem; font-weight: 800; color: var(--reviews-slate-900); line-height: 1.2; }
.vReview .reviews-section-title { font-size: 3rem; }
@media (max-width: 767px) {
  .reviews-overview h1 { font-size: 2.25rem; }
  .vReview .reviews-section-title { font-size: 2.5rem; }
}

.gradient-text { display: inline-block; margin-top: 1rem; background: linear-gradient(90deg, var(--reviews-indigo), var(--reviews-sky)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

.reviews-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; padding-top: 4rem; }
@media (max-width: 767px) {
  .reviews-stats-grid { grid-template-columns: 1fr; }
}

.reviews-stat-card { background: #fff; border-radius: 1rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12); padding: 2rem; text-align: center; }
.reviews-stat-card.reviews-border-indigo { border-top: 4px solid var(--reviews-indigo); }
.reviews-stat-card.reviews-border-sky { border-top: 4px solid var(--reviews-sky); }
.reviews-stat-card.reviews-border-violet { border-top: 4px solid var(--reviews-violet); }

.reviews-stat-icon { font-size: 2.25rem; margin-bottom: 1rem; margin-left: auto; margin-right: auto; }
.reviews-stat-icon.reviews-indigo { color: var(--reviews-indigo); }
.reviews-stat-icon.reviews-sky { color: var(--reviews-sky); }
.reviews-stat-icon.reviews-violet { color: var(--reviews-violet); }

.reviews-stat-value { font-size: 3rem; font-weight: 800; color: var(--reviews-slate-900); margin-bottom: 0.5rem; line-height: 1; }
.reviews-stat-value .reviews-stat-unit { font-size: 1.5rem; color: var(--reviews-slate-500); font-weight: 500; }
.reviews-stat-label { font-size: 1.125rem; font-weight: 500; color: var(--reviews-slate-700); margin-top: 0.5rem; }

.reviews-analysis { background-color: var(--reviews-slate-50); padding: 3rem 0; border-radius: 0; box-shadow: none; }
@media (max-width: 767px) {
  .reviews-analysis { padding: 2rem 0; }
}
.reviews-analysis-panel { background: #fff; border-radius: 1.5rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); padding: 3rem; }
.reviews-analysis-panel > * + * { margin-top: 3rem; }
@media (max-width: 1023px) {
  .reviews-analysis-panel { padding: 2rem; }
}
@media (max-width: 767px) {
  .reviews-analysis-panel { padding: 2rem 1.5rem; }
  .reviews-analysis-panel > * + * { margin-top: 2.5rem; }
}
@media (max-width: 639px) {
  .reviews-analysis-panel { padding: 1.5rem 1rem; }
  .reviews-analysis-panel > * + * { margin-top: 2rem; }
}

.reviews-analysis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
@media (max-width: 1023px) {
  .reviews-analysis-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* 그리드 1fr + 차트/Plotly가 부모보다 넓어지며 모바일에서 화면 밖으로 튀는 현상 방지 */
.vReview .reviews-analysis-panel {
  max-width: 100%;
  box-sizing: border-box;
}
.vReview .reviews-analysis-grid {
  min-width: 0;
  max-width: 100%;
}
.vReview .reviews-analysis-block {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.reviews-analysis-block > * + * { margin-top: 1.5rem; }
.reviews-subtitle { font-size: 1.5rem; font-weight: 700; padding-left: 1rem; }
.reviews-subtitle.reviews-indigo { color: #312e81; border-left: 4px solid var(--reviews-indigo); }
.reviews-subtitle.reviews-sky { color: #0c4a6e; border-left: 4px solid var(--reviews-sky); }

.chart-container { position: relative; width: 100%; max-width: 600px; margin: 0 auto; height: 420px; }
.reviews-chart-note { display: flex; justify-content: center; padding: 0.5rem 0; }
.reviews-chart-badge { display: inline-flex; align-items: center; padding: 0.375rem 1rem; border-radius: 9999px; background: var(--reviews-slate-100); color: var(--reviews-slate-500); font-size: 0.75rem; font-weight: 700; border: 1px solid var(--reviews-slate-200); }
.reviews-chart-badge::before { content: ''; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--reviews-indigo); margin-right: 0.5rem; }

.reviews-table-wrap { background: #fff; }
.reviews-table { width: 100%; font-size: 0.875rem; text-align: left; border-collapse: collapse; }
.reviews-table th, .reviews-table td { border: 1px solid var(--reviews-slate-200); padding: 0.75rem; }
.reviews-table thead tr { background: var(--reviews-slate-100); color: var(--reviews-slate-600); font-weight: 700; }
.reviews-table thead th.reviews-center { text-align: center; }
.reviews-table thead th.reviews-indigo { color: var(--reviews-indigo); }
.reviews-table tbody { color: var(--reviews-slate-700); font-weight: 500; }
.reviews-table tbody td.reviews-center { text-align: center; }
.reviews-table tbody td.reviews-bold { font-weight: 700; }
.reviews-table tbody td.reviews-bg { background: rgba(248, 250, 252, 0.5); }
.reviews-table tbody td.reviews-indigo { color: var(--reviews-indigo); font-weight: 700; }

.reviews-chart-scatter { border-radius: 1rem; background: rgba(232, 237, 244, 0.5); border: 1px solid #E8EDF4; padding: 0.5rem; }
@media (max-width: 639px) {
  .reviews-chart-scatter { padding: 0.25rem; }
}

.reviews-index-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; padding-top: 1rem; }
.reviews-index-card { background: #fff; padding: 2rem; border-radius: 1rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12); border: 1px solid var(--reviews-slate-100); display: flex; flex-direction: column; justify-content: flex-start; min-height: 180px; }
.reviews-index-header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; border-bottom: 1px solid var(--reviews-slate-100); padding-bottom: 0.75rem; }
.reviews-index-header i { width: 1rem; height: 1rem; color: var(--reviews-slate-300); }
.reviews-index-label { font-size: 0.6875rem; color: var(--reviews-slate-400); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; line-height: 1; }
.reviews-index-value { font-size: 4.5rem; font-weight: 700; line-height: 1; letter-spacing: -0.05em; }
.reviews-index-value.reviews-indigo { color: var(--reviews-indigo); }
.reviews-index-value.reviews-slate { color: var(--reviews-slate-800); }

/* #analysis 역량 분석 반응형 — sub.css 구간과 동일 (1400px~ / 1399 이하 / 767 이하) */
.vReview .reviews-analysis .reviews-section-center {
  margin-bottom: 3rem;
}
.vReview .reviews-analysis .reviews-section-title {
  font-size: 2.5rem;
  line-height: 1.25;
}
.vReview .reviews-analysis .reviews-section-desc {
  font-size: 1.125rem;
  line-height: 1.75;
  margin-top: 1rem;
}
.vReview .reviews-analysis .chart-container {
  max-width: 100%;
  height: 420px;
  box-sizing: border-box;
}
.vReview .reviews-analysis .reviews-chart-note {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding-left: 0;
  padding-right: 0;
}
.vReview .reviews-analysis .reviews-chart-badge {
  max-width: 100%;
  white-space: normal;
  text-align: center;
  justify-content: center;
}
.vReview .reviews-analysis .reviews-table-wrap {
  -webkit-overflow-scrolling: touch;
}
.vReview .reviews-analysis .reviews-table {
  width: 100%;
  max-width: 100%;
  font-size: 0.875rem;
  min-width: 520px;
}
.vReview .reviews-analysis .reviews-table th,
.vReview .reviews-analysis .reviews-table td {
  padding: 0.75rem;
}
.vReview .reviews-analysis .reviews-subtitle {
  font-size: 1.5rem;
  line-height: 1.35;
}
.vReview .reviews-analysis .reviews-index-cards {
  gap: 1.5rem;
  padding-top: 1rem;
}
.vReview .reviews-analysis .reviews-index-card {
  min-height: 180px;
  padding: 2rem;
}
.vReview .reviews-analysis .reviews-index-value {
  font-size: 4.5rem;
}
.vReview .reviews-analysis .reviews-index-label {
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 1399px) {
  .vReview .reviews-analysis .reviews-section-center {
    margin-bottom: 2.5rem;
  }
  .vReview .reviews-analysis .reviews-section-title {
    font-size: 2rem;
  }
  .vReview .reviews-analysis .reviews-section-desc {
    font-size: 1rem;
    line-height: 1.7;
  }
  .vReview .reviews-analysis .chart-container {
    height: 400px;
  }
  .vReview .reviews-analysis .reviews-subtitle {
    font-size: 1.375rem;
  }
  .vReview .reviews-analysis .reviews-index-cards {
    gap: 1.25rem;
  }
  .vReview .reviews-analysis .reviews-index-card {
    min-height: 160px;
    padding: 1.5rem 1.25rem;
  }
  .vReview .reviews-analysis .reviews-index-value {
    font-size: 3.5rem;
  }
}

@media screen and (max-width: 767px) {
  .vReview .reviews-analysis .reviews-section-center {
    margin-bottom: 2rem;
  }
  .vReview .reviews-analysis .reviews-section-title {
    font-size: 1.625rem;
  }
  .vReview .reviews-analysis .reviews-section-desc {
    font-size: 0.9375rem;
    line-height: 1.625;
  }
  .vReview .reviews-analysis .chart-container {
    height: 350px;
  }
  .vReview .reviews-analysis .reviews-table-wrap {
    padding: 1rem;
    overflow-x: auto;
  }
  .vReview .reviews-analysis .reviews-table {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
    font-size: 0.6875rem;
  }
  .vReview .reviews-analysis .reviews-table th,
  .vReview .reviews-analysis .reviews-table td {
    padding: 0.35rem 0.2rem;
    word-break: keep-all;
    overflow-wrap: break-word;
  }
  .vReview .reviews-analysis .reviews-table th:first-child,
  .vReview .reviews-analysis .reviews-table td:first-child {
    width: 19%;
    padding-left: 0.25rem;
  }
  .vReview .reviews-analysis .reviews-subtitle {
    font-size: 1.125rem;
  }
  .vReview .reviews-analysis .reviews-index-cards {
    width: 100%;
    gap: 1rem;
    padding-top: 3rem;
  }
  .vReview .reviews-analysis .reviews-index-card {
    min-height: 140px;
    padding: 1.25rem 1rem;
  }
  .vReview .reviews-analysis .reviews-index-value {
    font-size: 2.75rem;
  }
  .vReview .reviews-analysis .reviews-index-label {
    font-size: 0.625rem;
    letter-spacing: 0.08em;
  }
  /* Plotly 축/라벨 overflow:visible이 뷰포트 가로 스크롤 유발 → 블록 안에서만 잘림 */
  .vReview .reviews-analysis .reviews-chart-scatter {
    overflow: hidden;
    max-width: 100%;
  }
  .vReview .reviews-analysis .plotly-graph-div {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .vReview .reviews-analysis .js-plotly-plot .svg-container {
    overflow: hidden !important;
  }
  .vReview .reviews-analysis .js-plotly-plot .svg-container svg.main-svg {
    overflow: hidden !important;
  }
}

.reviews-deepdive > * + * { margin-top: 3rem; }
.reviews-badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 9999px; background: #E0E7FF; color: #3730A3; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.05em; margin-bottom: 1rem; }

.reviews-reviews-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
@media (max-width: 767px) {
  .reviews-reviews-grid { grid-template-columns: 1fr; }
}

.reviews-review-card { background: #fff; border-radius: 1rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); overflow: hidden; border: 1px solid var(--reviews-slate-100); display: flex; flex-direction: column; transition: box-shadow 0.2s; }
.reviews-review-card:hover { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); }
.reviews-review-accent { height: 4px; }
.reviews-review-accent.reviews-indigo { background: var(--reviews-indigo); }
.reviews-review-accent.reviews-sky { background: var(--reviews-sky); }
.reviews-review-accent.reviews-violet { background: var(--reviews-violet); }
.reviews-review-accent.reviews-pink { background: var(--reviews-pink); }

.reviews-review-body { padding: 2rem; flex-grow: 1; }
.reviews-review-body > * + * { margin-top: 1.5rem; }
.reviews-review-header { display: flex; justify-content: space-between; align-items: center; }
.reviews-review-title { font-size: 1.5rem; font-weight: 700; color: var(--reviews-slate-900); display: flex; align-items: center; }
.reviews-review-title .reviews-emoji { padding: 0.5rem; border-radius: 0.5rem; margin-right: 0.75rem; font-size: 1rem; }
.reviews-emoji.reviews-indigo { background: #E0E7FF; color: var(--reviews-indigo); }
.reviews-emoji.reviews-sky { background: #E0F2FE; color: var(--reviews-sky); }
.reviews-emoji.reviews-violet { background: #EDE9FE; color: var(--reviews-violet); }
.reviews-emoji.reviews-pink { background: #FCE7F3; color: var(--reviews-pink); }

.reviews-review-score { font-weight: 700; font-size: 1.125rem; }
.reviews-review-score.reviews-indigo { color: var(--reviews-indigo); }
.reviews-review-score.reviews-sky { color: var(--reviews-sky); }
.reviews-review-score.reviews-violet { color: var(--reviews-violet); }
.reviews-review-score.reviews-pink { color: var(--reviews-pink); }

.reviews-review-list > * + * { margin-top: 1rem; }
.review-item { border-left: 3px solid var(--reviews-slate-200); padding-left: 1rem; margin-bottom: 1rem; font-style: italic; color: var(--reviews-slate-600); font-size: 0.875rem; line-height: 1.625; }
.review-item:hover { border-left-color: var(--reviews-indigo); }

.reviews-summary-box { background: var(--reviews-slate-900); border-radius: 1.5rem; padding: 3rem; color: #fff; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 3rem; margin-top: 3rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
@media (max-width: 767px) {
  .reviews-summary-box { flex-direction: column; padding: 2rem; }
}

.reviews-summary-text { max-width: 36rem; }
.reviews-summary-text.reviews-center { text-align: left; }
@media (max-width: 767px) {
  .reviews-summary-text.reviews-center { text-align: center; }
}
.reviews-summary-text > * + * { margin-top: 1.5rem; }
.reviews-summary-title { font-size: 1.875rem; font-weight: 500; color: #fff; letter-spacing: -0.025em; }
.reviews-summary-desc { color: var(--reviews-slate-300); line-height: 1.625; font-style: italic; font-size: 1.125rem; font-weight: 500; }

.reviews-summary-tags { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 1rem; font-weight: 500; }
@media (max-width: 767px) {
  .reviews-summary-tags { justify-content: center; }
}
.reviews-tag { padding: 0.5rem 1rem; border-radius: 9999px; font-size: 0.875rem; }
.reviews-tag.reviews-indigo { background: rgba(79, 70, 229, 0.2); border: 1px solid rgba(79, 70, 229, 0.4); color: #A5B4FC; }
.reviews-tag.reviews-white { background: rgba(255, 255, 255, 0.1); }

.reviews-donut-box { background: rgba(255, 255, 255, 0.05); border-radius: 1rem; padding: 1.5rem; backdrop-filter: blur(4px); border: 1px solid rgba(255, 255, 255, 0.1); width: 100%; max-width: 24rem; display: flex; flex-direction: column; align-items: center; }
.reviews-donut-title { font-size: 1.25rem; font-weight: 500; margin-bottom: 1.5rem; text-align: center; color: #A5B4FC; }
.chart-container.donut-chart-container { height: 16rem; position: relative; }
#donutScore { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; font-size: 2.2em; letter-spacing: -0.05em; pointer-events: none; }

.reviews-process > * + * { margin-top: 3rem; }
.reviews-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
@media (max-width: 767px) {
  .reviews-process-grid { grid-template-columns: 1fr; }
}

.reviews-process-card { background: #fff; border-radius: 1rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12); padding: 2rem; position: relative; overflow: hidden; border: 1px solid var(--reviews-slate-100); transition: all 0.2s; }
.reviews-process-card.reviews-hover-indigo:hover { background: #EEF2FF; }
.reviews-process-card.reviews-hover-sky:hover { background: #F0F9FF; }
.reviews-process-card.reviews-hover-violet:hover { background: #F5F3FF; }
.reviews-process-card.reviews-hover-pink:hover { background: #FDF2F8; }
.reviews-process-num { font-size: 1.875rem; font-weight: 700; color: var(--reviews-slate-100); position: absolute; top: 0.5rem; right: 1rem; }
.reviews-process-card.reviews-hover-indigo:hover .reviews-process-num { color: #C7D2FE; }
.reviews-process-card.reviews-hover-sky:hover .reviews-process-num { color: #BAE6FD; }
.reviews-process-card.reviews-hover-violet:hover .reviews-process-num { color: #DDD6FE; }
.reviews-process-card.reviews-hover-pink:hover .reviews-process-num { color: #FBCFE8; }
.reviews-process-icon { font-size: 1.875rem; margin-bottom: 1rem; }
.reviews-process-icon.reviews-indigo { color: var(--reviews-indigo); }
.reviews-process-icon.reviews-sky { color: var(--reviews-sky); }
.reviews-process-icon.reviews-violet { color: var(--reviews-violet); }
.reviews-process-icon.reviews-pink { color: var(--reviews-pink); }
.reviews-process-title { font-size: 1.125rem; font-weight: 700; color: var(--reviews-slate-900); margin-bottom: 0.5rem; }
.reviews-process-desc { font-size: 0.875rem; color: var(--reviews-slate-500); line-height: 1.625; font-weight: 500; }

.reviews-inquiry { width: 100%; margin-top: 100px; }
.reviews-inquiry-inner { width: 100%; height: 300px; text-align: center; position: relative; overflow: hidden; color: #fff; display: flex; align-items: center; justify-content: center; background-size: cover; background-position: center; }
.inquiry-bg { background-image: url('../Gemini_online_Image.png'); }
.reviews-inquiry-overlay { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.8); backdrop-filter: blur(4px); }
.reviews-inquiry-content { position: relative; z-index: 10; max-width: 56rem; margin: 0 auto; padding: 0 1.5rem; }
.reviews-inquiry-content > * + * { margin-top: 1.5rem; }
.reviews-inquiry-title { font-size: 2.25rem; font-weight: 800; line-height: 1.2; }
@media (max-width: 767px) {
  .reviews-inquiry-title { font-size: 1.875rem; }
}
.reviews-inquiry-title .reviews-highlight { color: #818CF8; }
.reviews-inquiry-desc { color: var(--reviews-slate-300); font-size: 1.125rem; font-weight: 500; max-width: 48rem; margin-left: auto; margin-right: auto; }
@media (max-width: 767px) {
  .reviews-inquiry-desc { font-size: 1rem; }
}
.reviews-inquiry-btn { display: inline-flex; align-items: center; padding: 0.875rem 2rem; background: var(--reviews-indigo); color: #fff; font-size: 1.125rem; font-weight: 700; border-radius: 0.75rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); transition: all 0.2s; text-decoration: none; }
.reviews-inquiry-btn:hover { background: #6366F1; transform: translateY(-4px); }
.reviews-inquiry-btn:active { transform: scale(0.98); }
.reviews-inquiry-btn .reviews-btn-icon { margin-right: 0.5rem; color: #C7D2FE; }
.reviews-inquiry-btn .reviews-btn-arrow { margin-left: 0.5rem; opacity: 0; transition: all 0.2s; }
.reviews-inquiry-btn:hover .reviews-btn-arrow { opacity: 1; transform: translateX(4px); }

.shadow-premium { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.12); }
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1); }
.fade-delay-100 { transition-delay: 100ms; }
.fade-delay-200 { transition-delay: 200ms; }
.fade-delay-300 { transition-delay: 300ms; }
.fade-delay-400 { transition-delay: 400ms; }
.fade-delay-500 { transition-delay: 500ms; }
.fade-delay-600 { transition-delay: 600ms; }
.fade-delay-700 { transition-delay: 700ms; }
.fade-delay-800 { transition-delay: 800ms; }
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* 모바일: translateY가 변환 오버플로로 잠깐 세로 스크롤이 생겼다 사라지는 현상 방지 → 페이드만 */
@media screen and (max-width: 768px) {
  .vReview .fade-up {
    transform: none;
  }
  .vReview .fade-up.visible {
    transform: none;
  }
}

/* Plotly scattergl: .gl-container(캔버스) + .svg-container(축·라벨) 동일 영역에 겹침 */
.vReview #plotlyScatter,
.vReview #plotlyScatter.plotly-graph-div {
  width: 100%;
  height: 100%;
  min-height: 360px;
}

.vReview .js-plotly-plot .plot-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.vReview .js-plotly-plot .gl-container {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0;
}

.vReview .js-plotly-plot .svg-container {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: visible !important;
  z-index: 1;
}

/* 한 .svg-container 안에 여러 svg.main-svg(그리드/축/텍스트)가 블록 흐름으로 세로 나열되지 않도록 동일 영역에 겹침 */
.vReview .js-plotly-plot .svg-container svg.main-svg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block;
  overflow: visible;
}

.vReview .js-plotly-plot .gl-container canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* 전역 line-height 등이 SVG <text> 줄 간격을 키우며 레이아웃이 어긋나는 경우 완화 */
.vReview .js-plotly-plot svg.main-svg text,
.vReview .js-plotly-plot svg.main-svg tspan {
  line-height: 1 !important;
}

/* export_voucher_review.php 전용 푸터 상단 배너 (.ai-inq-banner--vreview, vReview.css와 함께 로드) */
.ai-inq-banner--vreview .rounded-button {
  background: #4F46E5;
}
.ai-inq-banner--vreview .rounded-button:hover {
  opacity: 0.92;
}

@media screen and (max-width: 768px) {
  .vReview .review-banner .pcView { display: none; }
  .vReview .review-banner .moView { display: block; }
}
