/* ==========================================================================
   Creative Voyage — Growth Score
   Everything is scoped to .cvgs. Nothing leaks out; Divi doesn't leak in.
   ========================================================================== */

.cvgs{
  /* Tokens are namespaced too, so a Divi global variable can't overwrite them. */
  --cvgs-ink:#141B2D;
  --cvgs-soft:#4A5568;
  --cvgs-faint:#8892A4;
  --cvgs-paper:#E7EAEF;
  --cvgs-surface:#FFFFFF;
  --cvgs-line:#C9D0DA;
  --cvgs-line-soft:#DFE4EB;
  --cvgs-signal:#1F4BD8;
  --cvgs-measured:#0E7C66;
  --cvgs-weak:#B4531A;
  --cvgs-display:"Space Grotesk",system-ui,sans-serif;
  --cvgs-body:"Source Serif 4",Georgia,serif;
  --cvgs-mono:"IBM Plex Mono",ui-monospace,monospace;
  --cvgs-pad:clamp(20px,4vw,44px);

  background:var(--cvgs-paper);
  color:var(--cvgs-ink);
  font-family:var(--cvgs-body);
  font-size:17px;
  line-height:1.55;
  padding:0 var(--cvgs-pad) 60px;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Divi reset layer ------------------------------------------
   Divi applies padding-bottom to <p>, margins and colours to headings,
   its own <button> and <input> styling, and a 1.7em body line-height.
   These four rules neutralise all of it inside the widget only.
   -------------------------------------------------------------------- */
.cvgs *,
.cvgs *::before,
.cvgs *::after{ box-sizing:border-box; }

.cvgs p,
.cvgs ul,
.cvgs li,
.cvgs h2,.cvgs h3,.cvgs h4{
  padding:0;
  margin:0;
  color:inherit;
  font-family:inherit;
  font-weight:inherit;
  line-height:inherit;
  text-transform:none;
  letter-spacing:normal;
}
.cvgs ul{ list-style:none; }

.cvgs button{
  font:inherit;
  color:inherit;
  background:none;
  border:0;
  margin:0;
  padding:0;
  text-transform:none;
  letter-spacing:normal;
  line-height:1.3;
  border-radius:0;
  -webkit-appearance:none;
  appearance:none;
  transition:none;
}
.cvgs button::after,
.cvgs button::before{ content:none !important; } /* kills Divi's button arrow */

.cvgs input{
  font:inherit;
  margin:0;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
  box-shadow:none;
}

/* ---------- masthead ---------- */
.cvgs .cvgs-masthead{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:26px 0 30px;flex-wrap:wrap;
}
.cvgs .cvgs-brand{
  font-family:var(--cvgs-display);font-weight:700;font-size:15px;
  letter-spacing:.14em;text-transform:uppercase;
}
.cvgs .cvgs-tag{
  font-family:var(--cvgs-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cvgs-faint);
}

/* ---------- screens ---------- */
.cvgs .cvgs-screen{ display:none; }
.cvgs .cvgs-screen.cvgs-on{ display:block; animation:cvgsRise .45s cubic-bezier(.2,.8,.2,1) both; }
@keyframes cvgsRise{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

/* ---------- intro ---------- */
.cvgs .cvgs-eyebrow{
  font-family:var(--cvgs-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cvgs-signal);margin:0 0 18px;display:flex;align-items:center;gap:10px;
}
.cvgs .cvgs-eyebrow::after{ content:"";flex:1;height:1px;background:var(--cvgs-line);max-width:180px; }

.cvgs .cvgs-h1{
  font-family:var(--cvgs-display);font-weight:600;letter-spacing:-.03em;line-height:1.02;
  font-size:clamp(34px,6.4vw,68px);margin:0 0 22px;max-width:14ch;
}
.cvgs .cvgs-h1 em{ font-style:normal;color:var(--cvgs-signal); }

.cvgs .cvgs-lede{
  font-size:clamp(18px,2.2vw,21px);max-width:52ch;color:var(--cvgs-soft);margin:0 0 34px;
}

.cvgs .cvgs-specs{
  display:flex;flex-wrap:wrap;
  border-top:1px solid var(--cvgs-line);border-bottom:1px solid var(--cvgs-line);
  margin:0 0 34px;
}
.cvgs .cvgs-spec{ padding:16px 26px 16px 0;margin-right:26px;border-right:1px solid var(--cvgs-line-soft); }
.cvgs .cvgs-spec:last-child{ border-right:0; }
.cvgs .cvgs-spec b{
  display:block;font-family:var(--cvgs-mono);font-size:20px;font-weight:500;letter-spacing:-.02em;
}
.cvgs .cvgs-spec small{
  font-family:var(--cvgs-mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cvgs-faint);
}

.cvgs .cvgs-dims{ margin:0 0 38px;max-width:560px; }
.cvgs .cvgs-dims li{
  display:flex;gap:16px;align-items:baseline;padding:11px 0;
  border-bottom:1px solid var(--cvgs-line-soft);font-size:16px;line-height:1.45;
}
.cvgs .cvgs-n{
  font-family:var(--cvgs-mono);font-size:11px;color:var(--cvgs-signal);
  letter-spacing:.08em;min-width:26px;
}

/* ---------- buttons ---------- */
.cvgs .cvgs-btn{
  font-family:var(--cvgs-display);font-weight:600;font-size:15px;
  background:var(--cvgs-ink);color:#fff;border:1px solid var(--cvgs-ink);
  padding:16px 30px;border-radius:2px;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.cvgs .cvgs-btn:hover{ background:var(--cvgs-signal);border-color:var(--cvgs-signal);color:#fff; }
.cvgs .cvgs-btn:active{ transform:translateY(1px); }

.cvgs .cvgs-ghost{
  background:none;color:var(--cvgs-soft);border:1px solid var(--cvgs-line);
  font-family:var(--cvgs-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;border-radius:2px;cursor:pointer;
  transition:border-color .18s ease,color .18s ease;
}
.cvgs .cvgs-ghost:hover{ border-color:var(--cvgs-ink);color:var(--cvgs-ink); }
.cvgs .cvgs-ghost[disabled]{ opacity:.35;cursor:default; }

.cvgs :focus-visible{ outline:2px solid var(--cvgs-signal);outline-offset:3px; }

/* ---------- quiz ---------- */
.cvgs .cvgs-grid{
  display:grid;grid-template-columns:1fr 232px;
  gap:clamp(24px,5vw,56px);align-items:start;
}
.cvgs .cvgs-ticks{ display:flex;gap:3px;margin:0 0 30px; }
.cvgs .cvgs-tick{ height:3px;flex:1;background:var(--cvgs-line);transition:background .3s ease; }
.cvgs .cvgs-tick.cvgs-sep{ margin-right:9px; }
.cvgs .cvgs-tick.cvgs-done{ background:var(--cvgs-signal); }
.cvgs .cvgs-tick.cvgs-now{ background:var(--cvgs-ink); }

.cvgs .cvgs-qmeta{
  font-family:var(--cvgs-mono);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cvgs-faint);margin:0 0 14px;
}
.cvgs .cvgs-qmeta b{ color:var(--cvgs-signal);font-weight:500; }

.cvgs .cvgs-qtext{
  font-family:var(--cvgs-display);font-weight:500;letter-spacing:-.022em;line-height:1.15;
  font-size:clamp(24px,3.4vw,34px);margin:0 0 28px;max-width:19ch;
}

.cvgs .cvgs-options{ display:flex;flex-direction:column;gap:8px;margin:0 0 26px; }
.cvgs .cvgs-opt{
  display:flex;gap:14px;align-items:flex-start;text-align:left;width:100%;
  background:var(--cvgs-surface);border:1px solid var(--cvgs-line-soft);border-radius:2px;
  padding:16px 18px;cursor:pointer;
  font-family:var(--cvgs-body);font-size:16.5px;color:var(--cvgs-ink);line-height:1.4;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.cvgs .cvgs-opt:hover{ border-color:var(--cvgs-signal);transform:translateX(3px); }
.cvgs .cvgs-opt.cvgs-picked{ border-color:var(--cvgs-signal);background:#F2F5FE; }
.cvgs .cvgs-key{
  font-family:var(--cvgs-mono);font-size:11px;color:var(--cvgs-faint);
  border:1px solid var(--cvgs-line);border-radius:2px;padding:2px 6px;flex:none;margin-top:2px;
}
.cvgs .cvgs-opt.cvgs-picked .cvgs-key{
  background:var(--cvgs-signal);border-color:var(--cvgs-signal);color:#fff;
}

.cvgs .cvgs-qnav{ display:flex;align-items:center;gap:14px;flex-wrap:wrap; }
.cvgs .cvgs-hint{
  font-family:var(--cvgs-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cvgs-faint);
}

/* ---------- rail instrument ---------- */
.cvgs .cvgs-rail{
  border:1px solid var(--cvgs-line);background:var(--cvgs-surface);
  padding:20px 18px;border-radius:2px;position:sticky;top:22px;
}
.cvgs .cvgs-rail-head{
  font-family:var(--cvgs-mono);font-size:10px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--cvgs-faint);margin-bottom:6px;
}
.cvgs .cvgs-rail-score{
  font-family:var(--cvgs-mono);font-size:40px;font-weight:500;
  letter-spacing:-.04em;line-height:1;margin-bottom:2px;
}
.cvgs .cvgs-rail-sub{
  font-family:var(--cvgs-mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cvgs-faint);margin-bottom:22px;
}
.cvgs .cvgs-chan{ margin-bottom:15px; }
.cvgs .cvgs-chan:last-child{ margin-bottom:0; }
.cvgs .cvgs-chan-top{ display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px; }
.cvgs .cvgs-chan-name{
  font-family:var(--cvgs-display);font-size:11.5px;font-weight:500;color:var(--cvgs-soft);
}
.cvgs .cvgs-chan-val{ font-family:var(--cvgs-mono);font-size:10px;color:var(--cvgs-faint); }
.cvgs .cvgs-chan-bar{ height:5px;background:var(--cvgs-line-soft);border-radius:1px;overflow:hidden; }
.cvgs .cvgs-chan-fill{
  height:100%;width:0;background:var(--cvgs-signal);
  transition:width .5s cubic-bezier(.2,.8,.2,1),background .3s ease;
}
.cvgs .cvgs-chan.cvgs-live .cvgs-chan-name{ color:var(--cvgs-ink); }

/* ---------- results ---------- */
.cvgs .cvgs-restop{ border-bottom:1px solid var(--cvgs-line);padding-bottom:34px;margin-bottom:36px; }
.cvgs .cvgs-resgrid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(24px,5vw,54px);align-items:end;
}
.cvgs .cvgs-bigscore{
  font-family:var(--cvgs-mono);font-weight:500;font-size:clamp(70px,14vw,124px);
  line-height:.85;letter-spacing:-.05em;margin:0;
}
.cvgs .cvgs-bigscore i{ font-style:normal;font-size:.28em;color:var(--cvgs-faint);letter-spacing:0; }

.cvgs .cvgs-scale{ width:100%;height:auto;margin-top:8px;display:block; }
.cvgs .cvgs-scalelabels{
  display:flex;justify-content:space-between;font-family:var(--cvgs-mono);
  font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--cvgs-faint);margin-top:7px;
}
.cvgs .cvgs-band{
  font-family:var(--cvgs-display);font-weight:600;
  font-size:clamp(23px,3.2vw,31px);letter-spacing:-.02em;margin:16px 0 8px;line-height:1.15;
}
.cvgs .cvgs-bandnote{ color:var(--cvgs-soft);margin:0;max-width:38ch; }

.cvgs .cvgs-sec{
  font-family:var(--cvgs-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cvgs-faint);margin:0 0 20px;display:flex;align-items:center;gap:12px;font-weight:400;
}
.cvgs .cvgs-sec::after{ content:"";flex:1;height:1px;background:var(--cvgs-line); }

.cvgs .cvgs-dim{ border-top:1px solid var(--cvgs-line-soft);padding:20px 0; }
.cvgs .cvgs-dim:last-of-type{ border-bottom:1px solid var(--cvgs-line-soft); }
.cvgs .cvgs-dim-head{ display:flex;align-items:baseline;gap:14px;margin-bottom:10px;flex-wrap:wrap; }
.cvgs .cvgs-dim-name{
  font-family:var(--cvgs-display);font-weight:600;font-size:18px;letter-spacing:-.01em;margin:0;
}
.cvgs .cvgs-dim-num{ font-family:var(--cvgs-mono);font-size:16px;font-weight:500;margin-left:auto; }
.cvgs .cvgs-dim-flag{
  font-family:var(--cvgs-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 7px;border-radius:2px;border:1px solid currentColor;
}
.cvgs .cvgs-dim-bar{
  height:6px;background:var(--cvgs-line-soft);border-radius:1px;overflow:hidden;margin-bottom:12px;
}
.cvgs .cvgs-dim-fill{ height:100%;width:0;transition:width .9s cubic-bezier(.2,.8,.2,1); }
.cvgs .cvgs-dim-note{ margin:0;color:var(--cvgs-soft);max-width:66ch;font-size:16px;line-height:1.5; }

.cvgs .cvgs-t-weak{ color:var(--cvgs-weak); }
.cvgs .cvgs-t-mid{ color:var(--cvgs-signal); }
.cvgs .cvgs-t-strong{ color:var(--cvgs-measured); }
.cvgs .cvgs-b-weak{ background:var(--cvgs-weak); }
.cvgs .cvgs-b-mid{ background:var(--cvgs-signal); }
.cvgs .cvgs-b-strong{ background:var(--cvgs-measured); }

/* ---------- gate ---------- */
.cvgs .cvgs-gate{
  border:1px solid var(--cvgs-ink);background:var(--cvgs-surface);
  padding:clamp(24px,4vw,40px);border-radius:2px;margin-top:40px;
}
.cvgs .cvgs-gate-h{
  font-family:var(--cvgs-display);font-weight:600;font-size:clamp(21px,2.8vw,27px);
  letter-spacing:-.02em;margin:0 0 10px;max-width:22ch;line-height:1.2;
}
.cvgs .cvgs-gate-p{ margin:0 0 22px;color:var(--cvgs-soft);max-width:54ch; }
.cvgs .cvgs-gate-list{ margin:0 0 24px;display:grid;gap:7px;max-width:54ch; }
.cvgs .cvgs-gate-list li{ padding-left:20px;position:relative;font-size:16px;line-height:1.45; }
.cvgs .cvgs-gate-list li::before{
  content:"\2192";position:absolute;left:0;color:var(--cvgs-signal);
  font-family:var(--cvgs-mono);font-size:13px;
}

.cvgs .cvgs-form{ display:flex;gap:8px;flex-wrap:wrap;align-items:stretch; }
.cvgs .cvgs-form input{
  flex:1 1 240px;font-family:var(--cvgs-body);font-size:16px;padding:15px 16px;
  border:1px solid var(--cvgs-line);border-radius:2px;
  background:var(--cvgs-paper);color:var(--cvgs-ink);
}
.cvgs .cvgs-form input:focus{ border-color:var(--cvgs-signal);outline:none;background:#fff; }
.cvgs .cvgs-form .cvgs-btn{ flex:0 0 auto; }

.cvgs .cvgs-hp{ position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden; }

.cvgs .cvgs-err{
  color:var(--cvgs-weak);font-family:var(--cvgs-mono);font-size:11px;
  letter-spacing:.06em;margin:10px 0 0;display:none;
}
.cvgs .cvgs-err.cvgs-on{ display:block; }
.cvgs .cvgs-sent{ display:none; }
.cvgs .cvgs-sent.cvgs-on{ display:block; }
.cvgs .cvgs-fine{
  font-family:var(--cvgs-mono);font-size:10px;letter-spacing:.06em;
  color:var(--cvgs-faint);margin:14px 0 0;
}
.cvgs .cvgs-restart{ margin-top:34px; }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .cvgs .cvgs-grid{ grid-template-columns:1fr; }
  .cvgs .cvgs-rail{
    position:static;order:-1;margin-bottom:8px;
    display:grid;grid-template-columns:auto 1fr;gap:0 22px;align-items:center;
  }
  .cvgs .cvgs-rail-head,
  .cvgs .cvgs-rail-score,
  .cvgs .cvgs-rail-sub{ grid-column:1; }
  .cvgs .cvgs-rail-sub{ margin-bottom:0; }
  .cvgs .cvgs-chans{ grid-column:2;grid-row:1 / 4; }
}
@media (max-width:680px){
  .cvgs .cvgs-resgrid{ grid-template-columns:1fr;gap:26px;align-items:start; }
  .cvgs .cvgs-masthead{ padding-top:20px; }
  .cvgs .cvgs-hint{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .cvgs *{ animation-duration:.01ms !important;transition-duration:.01ms !important; }
}

/* ---------- v2 additions: theming hooks ---------- */
.cvgs{ --cvgs-signal-tint:#F2F5FE; }               /* default; overridden when an accent colour is set */
.cvgs .cvgs-opt.cvgs-picked{ background:var(--cvgs-signal-tint); }
.cvgs .cvgs-form input:focus{ background:var(--cvgs-surface); }  /* readable on dark backgrounds */
