:root{
  --cv-bg: #ffffff;
  --cv-soft: #f6f8fc;
  --cv-card: #ffffff;
  --cv-border: rgba(15, 23, 42, 0.10);
  --cv-text: #0b1220;
  --cv-muted: rgba(11, 18, 32, 0.72);
  --cv-muted2: rgba(11, 18, 32, 0.56);
  --cv-primary: #0b2a6f;
  --cv-primary-2: #1648c8;
  --cv-accent: #0ea5e9;
  --cv-shadow: 0 18px 55px rgba(2, 6, 23, 0.10);
  --cv-shadow2: 0 12px 30px rgba(2, 6, 23, 0.10);
  --cv-radius: 16px;
}

.cv-report{
  color: var(--cv-text);
  background: var(--cv-bg);
}

.cv-section{
  padding: 52px 0;
  background: var(--cv-bg);
}
.cv-section--soft{ background: var(--cv-soft); }
.cv-section--cta{
  background: linear-gradient(135deg, rgba(11,42,111,0.06), rgba(22,72,200,0.04));
}
.cv-section__head{
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.cv-section__sub{
  color: var(--cv-muted);
  max-width: 56ch;
}

.cv-h2{
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  font-size: 28px;
}

.cv-breadcrumb{
  color: var(--cv-muted2);
  font-size: 13px;
  margin-bottom: 14px;
}
.cv-breadcrumb a{
  color: var(--cv-muted2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.cv-breadcrumb a:hover{ color: var(--cv-text); border-bottom-color: var(--cv-border); }
.cv-breadcrumb__sep{ margin: 0 8px; color: rgba(11,18,32,0.35); }

.cv-report-hero{
  padding: 70px 0 28px 0;
  background:
    radial-gradient(1200px 350px at 20% 0%, rgba(22,72,200,0.10), transparent 55%),
    radial-gradient(1200px 350px at 80% 10%, rgba(14,165,233,0.08), transparent 55%),
    linear-gradient(180deg, #ffffff, #ffffff);
  border-bottom: 1px solid var(--cv-border);
}

.cv-report-hero .row > [class*="col-"]{
  min-width: 0;
}

.cv-hero__eyebrow{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.cv-hero__title{
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.08;
  font-size: clamp(28px, 3.1vw, 40px);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  margin: 0 0 10px 0;
}
.cv-hero__subtitle{
  color: var(--cv-muted);
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 18px;
}
.cv-hero__subtitle p{ margin-bottom: 10px; }

.cv-hero__meta{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--cv-border);
  border-radius: 14px;
  background: rgba(255,255,255,0.8);
  box-shadow: 0 1px 0 rgba(2,6,23,0.02);
}
.cv-meta__label{
  font-size: 12px;
  color: rgba(11,18,32,0.55);
}
.cv-meta__value{
  font-weight: 700;
  color: rgba(11,18,32,0.92);
  font-size: 13px;
}

.cv-hero__cta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  margin-bottom: 14px;
}

.cv-trust{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  color: var(--cv-muted2);
  font-size: 13px;
}
.cv-trust__item i{ color: rgba(22,72,200,0.85); margin-right: 6px; }

.cv-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--cv-border);
  background: #ffffff;
  color: rgba(11,18,32,0.85);
}
.cv-chip--soft{
  background: rgba(22,72,200,0.08);
  border-color: rgba(22,72,200,0.16);
  color: rgba(11,42,111,0.95);
}

.cv-card{
  background: var(--cv-card);
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  box-shadow: 0 1px 0 rgba(2,6,23,0.02);
  padding: 18px;
}
.cv-card--accent{
  background: linear-gradient(180deg, rgba(11,42,111,0.07), rgba(22,72,200,0.03));
  border-color: rgba(22,72,200,0.18);
  box-shadow: var(--cv-shadow2);
}
.cv-card__header{ margin-bottom: 12px; }
.cv-card__title{
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: 16px;
}
.cv-card__subtitle{
  color: var(--cv-muted);
  font-size: 13px;
  margin-top: 4px;
}
.cv-card__actions{ margin-top: 14px; display: grid; gap: 10px; }
.cv-card__fineprint{
  margin-top: 12px;
  color: var(--cv-muted2);
  font-size: 12px;
}
.cv-card__fineprint a{ color: rgba(11,42,111,0.95); text-decoration: none; border-bottom: 1px solid rgba(11,42,111,0.25); }
.cv-card__fineprint a:hover{ border-bottom-color: rgba(11,42,111,0.55); }

.cv-card--sticky{
  position: sticky;
  top: 110px;
  box-shadow: var(--cv-shadow);
}

.cv-purchase{
  padding-top: 28px;
}

.cv-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 800;
  letter-spacing: -0.01em;
  border: 1px solid transparent;
  text-decoration: none !important;
  cursor: pointer;
  line-height: 1.1;
}
.cv-btn__sub{
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  opacity: 0.85;
}
.cv-btn--block{ width: 100%; }
.cv-btn--primary{
  background: linear-gradient(135deg, var(--cv-primary), var(--cv-primary-2));
  color: #fff !important;
  border-color: rgba(11,42,111,0.2);
}
.cv-btn--primary:hover{ filter: brightness(1.02); transform: translateY(-1px); }
.cv-btn--secondary{
  background: rgba(22,72,200,0.08);
  border-color: rgba(22,72,200,0.18);
  color: rgba(11,42,111,0.98) !important;
}
.cv-btn--secondary:hover{ background: rgba(22,72,200,0.11); }
.cv-btn--ghost{
  background: #ffffff;
  border-color: rgba(15,23,42,0.14);
  color: rgba(11,18,32,0.9) !important;
}
.cv-btn--ghost:hover{ border-color: rgba(15,23,42,0.24); transform: translateY(-1px); }

.cv-pricegrid{
  border-top: 1px solid var(--cv-border);
  border-bottom: 1px solid var(--cv-border);
  padding: 10px 0;
}
.cv-pricegrid__row{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
}
.cv-pricegrid__label{ font-weight: 900; }
.cv-pricegrid__hint{ color: var(--cv-muted2); font-size: 12px; margin-top: 2px; }
.cv-pricegrid__price{ font-weight: 900; font-size: 16px; color: rgba(11,42,111,0.95); }

.cv-muted{ color: var(--cv-muted2); }

.cv-toggle{
  display: inline-flex;
  border: 1px solid var(--cv-border);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
}
.cv-toggle__btn{
  border: 0;
  background: transparent;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,18,32,0.70);
  cursor: pointer;
}
.cv-toggle__btn.is-active{
  background: rgba(22,72,200,0.10);
  color: rgba(11,42,111,0.98);
}
.cv-snapshot__controls{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 10px 0 16px 0;
}
.cv-snapshot__note{ color: var(--cv-muted2); font-size: 12px; }

.cv-kpi{
  background: #fff;
  border: 1px solid var(--cv-border);
  border-radius: 16px;
  padding: 14px;
  height: 100%;
  box-shadow: 0 1px 0 rgba(2,6,23,0.02);
}
.cv-kpi__label{ color: var(--cv-muted2); font-size: 12px; font-weight: 800; }
.cv-kpi__value{ font-size: 26px; font-weight: 1000; letter-spacing: -0.02em; margin-top: 6px; }
.cv-kpi__foot{ color: rgba(11,18,32,0.60); font-size: 12px; margin-top: 6px; }
.cv-kpi__delta{
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(16,185,129,0.10);
  color: rgba(6,95,70,0.95);
  font-weight: 900;
  margin-right: 6px;
}
.cv-kpi__delta.is-down{
  background: rgba(239,68,68,0.10);
  color: rgba(127,29,29,0.95);
}

.cv-tabs{
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--cv-border);
  margin-bottom: 14px;
}
.cv-tabs .nav-link{
  border-radius: 999px;
  font-weight: 900;
  font-size: 13px;
  color: rgba(11,18,32,0.75);
  padding: 8px 12px;
}
.cv-tabs .nav-link.active{
  background: rgba(22,72,200,0.10);
  color: rgba(11,42,111,0.98);
}
.cv-tabcontent{ padding-top: 4px; }

.cv-richtext{
  color: rgba(11,18,32,0.86);
  line-height: 1.7;
}
.cv-richtext h1,.cv-richtext h2,.cv-richtext h3,.cv-richtext h4{
  color: rgba(11,18,32,0.96);
  font-weight: 900;
  letter-spacing: -0.02em;
}
.cv-richtext ul{ padding-left: 1.2rem; }
.cv-richtext a{ color: rgba(11,42,111,0.98); text-decoration: none; border-bottom: 1px solid rgba(11,42,111,0.25); }
.cv-richtext a:hover{ border-bottom-color: rgba(11,42,111,0.55); }

.cv-empty{
  padding: 22px;
  border: 1px dashed rgba(15,23,42,0.22);
  border-radius: 14px;
  color: var(--cv-muted);
  background: rgba(255,255,255,0.7);
}

.cv-blur-cta{
  border: 1px solid rgba(22,72,200,0.18);
  border-radius: 16px;
  padding: 18px;
  background: linear-gradient(180deg, rgba(22,72,200,0.06), rgba(255,255,255,0.85));
}
.cv-blur-cta__title{ font-weight: 950; letter-spacing: -0.02em; }
.cv-blur-cta__sub{ color: var(--cv-muted); margin-top: 6px; margin-bottom: 12px; }

.cv-sidepanel{
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 16px;
  padding: 14px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(2,6,23,0.02);
}
.cv-sidepanel__title{ font-weight: 950; letter-spacing: -0.02em; }
.cv-sidepanel__sub{ color: var(--cv-muted); margin-top: 6px; font-size: 13px; }
.cv-sidepanel__cta{ margin-top: 12px; display: grid; gap: 10px; }

.cv-companychips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.cv-filter{
  border-right: 1px solid var(--cv-border);
  padding-right: 16px;
  height: 100%;
}
.cv-filter__title{ font-weight: 950; letter-spacing: -0.02em; margin-bottom: 12px; }
.cv-label{ font-size: 12px; font-weight: 900; color: rgba(11,18,32,0.72); margin-top: 10px; }
.cv-select{
  border-radius: 12px !important;
  border-color: rgba(15,23,42,0.14) !important;
}
.cv-filter__summary{
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.cv-filter__pill{
  display: inline-flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(22,72,200,0.08);
  border: 1px solid rgba(22,72,200,0.16);
  font-size: 12px;
  font-weight: 900;
  color: rgba(11,42,111,0.95);
}
.cv-filter__actions{ margin-top: 14px; display: grid; gap: 10px; }

.cv-charthead{
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 12px;
  margin-bottom: 10px;
}
.cv-charthead__title{ font-weight: 950; letter-spacing: -0.02em; }
.cv-charthead__sub{ color: var(--cv-muted); font-size: 13px; margin-top: 4px; }
.cv-charthead__badge{
  font-size: 12px;
  font-weight: 950;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(14,165,233,0.10);
  border: 1px solid rgba(14,165,233,0.18);
  color: rgba(2,132,199,0.95);
}
.cv-chart{ min-height: 280px; }
.cv-chartfoot{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--cv-border);
  margin-top: 10px;
  padding-top: 10px;
  color: var(--cv-muted2);
  font-size: 12px;
}
.cv-linkbtn{
  border: 0;
  padding: 0;
  background: transparent;
  color: rgba(11,42,111,0.98);
  font-weight: 900;
  border-bottom: 1px solid rgba(11,42,111,0.25);
}
.cv-linkbtn:hover{ border-bottom-color: rgba(11,42,111,0.55); }

.cv-toc{
  position: relative;
  max-height: 280px;
  overflow: hidden;
}
.cv-toc.is-expanded{ max-height: none; }
.cv-toc__fade{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 90px;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,1));
  pointer-events: none;
}
.cv-section--soft .cv-toc__fade{
  background: linear-gradient(180deg, rgba(246,248,252,0), rgba(246,248,252,1));
}
.cv-toc.is-expanded .cv-toc__fade{ display: none; }
.cv-toc__actions{
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cv-method{
  display: grid;
  gap: 12px;
}
.cv-method__item{
  display: flex;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 14px;
  background: rgba(255,255,255,0.75);
}
.cv-method__icon{
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(22,72,200,0.10);
  border: 1px solid rgba(22,72,200,0.16);
  color: rgba(11,42,111,0.95);
  flex: 0 0 auto;
}
.cv-method__title{ font-weight: 950; letter-spacing: -0.02em; }
.cv-method__desc{ color: var(--cv-muted); font-size: 13px; margin-top: 2px; }

.cv-carousel{
  position: relative;
}
.cv-carousel__track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 2px 2px 10px 2px;
}
.cv-carousel__track::-webkit-scrollbar{ height: 10px; }
.cv-carousel__track::-webkit-scrollbar-thumb{ background: rgba(15,23,42,0.14); border-radius: 999px; }
.cv-carousel__nav{
  position: absolute;
  top: calc(50% - 18px);
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.14);
  background: rgba(255,255,255,0.95);
  box-shadow: 0 10px 22px rgba(2,6,23,0.10);
  font-size: 22px;
  font-weight: 900;
  color: rgba(11,18,32,0.78);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cv-carousel__nav--prev{ left: -14px; }
.cv-carousel__nav--next{ right: -14px; }

.cv-rp, .cv-intel{
  scroll-snap-align: start;
  display: block;
  border-radius: 16px;
  border: 1px solid var(--cv-border);
  background: #fff;
  padding: 14px;
  text-decoration: none !important;
  box-shadow: 0 1px 0 rgba(2,6,23,0.02);
  transition: transform 120ms ease, border-color 120ms ease;
}
.cv-rp:hover, .cv-intel:hover{
  transform: translateY(-2px);
  border-color: rgba(22,72,200,0.22);
}
.cv-rp__title{
  font-weight: 950;
  letter-spacing: -0.02em;
  color: rgba(11,18,32,0.96);
  line-height: 1.2;
}
.cv-rp__meta{
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
  flex-wrap: wrap;
}
.cv-rp__price{
  margin-top: 10px;
  font-weight: 950;
  color: rgba(11,42,111,0.95);
}
.cv-rp__cta{ margin-top: 10px; color: rgba(11,42,111,0.90); font-weight: 900; }

.cv-intel__eyebrow{
  color: rgba(11,18,32,0.60);
  font-size: 12px;
  font-weight: 900;
}
.cv-intel__title{
  font-weight: 950;
  letter-spacing: -0.02em;
  margin-top: 8px;
  color: rgba(11,18,32,0.96);
  line-height: 1.2;
}
.cv-intel__excerpt{
  margin-top: 10px;
  color: rgba(11,18,32,0.72);
  font-size: 13px;
  line-height: 1.6;
}
.cv-intel__meta{
  margin-top: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.cv-intel__cta{ color: rgba(11,42,111,0.90); font-weight: 900; }

.cv-cta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding: 20px;
  border: 1px solid rgba(22,72,200,0.18);
  border-radius: 18px;
  background: rgba(255,255,255,0.75);
  box-shadow: var(--cv-shadow2);
}
.cv-cta__title{ font-weight: 1000; letter-spacing: -0.02em; font-size: 18px; }
.cv-cta__sub{ color: var(--cv-muted); margin-top: 4px; }
.cv-cta__actions{ display: flex; flex-wrap: wrap; gap: 10px; }

@media (max-width: 991px){
  .cv-card--sticky{ position: static; }
  .cv-hero__title{ font-size: 34px; }
  .cv-filter{ border-right: 0; padding-right: 0; border-bottom: 1px solid var(--cv-border); padding-bottom: 14px; margin-bottom: 14px; }
  .cv-carousel__nav{ display: none; }
}

@media (max-width: 575px){
  .cv-hero__meta{ grid-template-columns: 1fr; }
  .cv-hero__title{ font-size: 30px; }
  .cv-section{ padding: 42px 0; }
  .cv-section__head{ flex-direction: column; align-items: start; }
}

/* Premium request-sample modal */
.cv-modal .modal-dialog{ max-width: 620px; }
.cv-modal__content{
  border-radius: 20px;
  border: 1px solid rgba(15,23,42,0.14);
  box-shadow: 0 30px 90px rgba(2,6,23,0.22);
  overflow: hidden;
}
.cv-modal__header{
  border-bottom: 1px solid rgba(15,23,42,0.10);
  background:
    radial-gradient(900px 220px at 15% 0%, rgba(22,72,200,0.18), transparent 55%),
    radial-gradient(900px 220px at 85% 0%, rgba(14,165,233,0.14), transparent 55%),
    linear-gradient(180deg, #ffffff, rgba(255,255,255,0.92));
  padding: 16px 18px;
}
.cv-modal__title{
  font-weight: 1000;
  letter-spacing: -0.02em;
  margin: 0;
}
.cv-modal__subtitle{
  margin-top: 4px;
  color: rgba(11,18,32,0.70);
  font-size: 13px;
}
.cv-modal__close{
  opacity: 0.7;
  font-size: 28px;
  line-height: 1;
}
.cv-modal__close:hover{ opacity: 1; }
.cv-modal__body{ padding: 16px 18px 18px 18px; }
.cv-modal__note{
  border: 1px solid rgba(22,72,200,0.14);
  background: rgba(22,72,200,0.06);
  color: rgba(11,42,111,0.92);
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 14px;
}
.cv-modal__label{
  font-size: 12px;
  font-weight: 950;
  color: rgba(11,18,32,0.72);
  margin-bottom: 6px;
}
.cv-modal__input{
  border-radius: 12px !important;
  border-color: rgba(15,23,42,0.16) !important;
  height: 44px;
}
.cv-modal__input:focus{
  border-color: rgba(22,72,200,0.40) !important;
  box-shadow: 0 0 0 4px rgba(22,72,200,0.12) !important;
}
.cv-modal__actions{
  margin-top: 6px;
  display: grid;
  gap: 10px;
}
