/* CamperValue – formulaire. Couleurs et polices du système de design CamperValue,
   modifiables via les variables ci-dessous (ex. dans Breakdance). */
@font-face { font-family: "DM Sans"; src: url("fonts/dmsans-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("fonts/dmsans-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("fonts/dmsans-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Bricolage Grotesque"; src: url("fonts/bricolage-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Bricolage Grotesque"; src: url("fonts/bricolage-800.woff2") format("woff2"); font-weight: 800; font-display: swap; }
.cv-app {
  --cv-accent: #0f5a4b;       /* pine */
  --cv-accent-ink: #ffffff;
  --cv-highlight: #ff8f3f;    /* apricot */
  --cv-highlight-ink: #13302a;
  --cv-ink: #13302a;
  --cv-muted: #56685f;
  --cv-line: #e4ded3;
  --cv-soft: #e3f0eb;         /* pine-tint */
  --cv-surface: #fbf8f3;
  --cv-error: #b42318;
  --cv-radius: 14px;
  --cv-font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cv-font-display: "Bricolage Grotesque", "DM Sans", system-ui, sans-serif;
  max-width: 760px;
  margin: 0 auto;
  color: var(--cv-ink);
  font-family: var(--cv-font);
  font-size: 16px;
  line-height: 1.6;
}
.cv-app h2, .cv-app h3, .cv-range, .cv-type strong { font-family: var(--cv-font-display); letter-spacing: -0.01em; color: var(--cv-ink); }
.cv-app *, .cv-app *::before, .cv-app *::after { box-sizing: border-box; }
.cv-head h2 { margin: 0 0 4px; font-size: 2.25rem; font-weight: 800; line-height: 1.1; }
.cv-head p { margin: 0 0 12px; color: var(--cv-muted); }
.cv-progress { height: 6px; background: var(--cv-line); border-radius: 99px; overflow: hidden; }
.cv-progress span { display: block; height: 100%; background: var(--cv-highlight); transition: width .3s; }
.cv-stepnum { font-size: .875rem; margin-top: 6px !important; }
.cv-form h3 { font-size: 1.3rem; font-weight: 700; margin: 28px 0 12px; }
.cv-help { color: var(--cv-muted); margin: -4px 0 16px; font-size: .95rem; }

.cv-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.cv-field { flex: 1 1 100%; min-width: 0; }
.cv-half { flex: 1 1 calc(50% - 8px); }
@media (max-width: 560px) { .cv-half { flex-basis: 100%; } }
.cv-field > label { display: block; font-weight: 600; margin-bottom: 6px; font-size: .95rem; }
.cv-opt { font-weight: 400; color: var(--cv-muted); }
.cv-field input[type=text], .cv-field input[type=email], .cv-field input[type=number], .cv-field input[type=month], .cv-field select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--cv-line); border-radius: 8px; font: inherit; background: #fff; color: var(--cv-ink);
}
.cv-field input:focus, .cv-field select:focus, .cv-optrow input:focus { outline: 2px solid var(--cv-accent); outline-offset: 1px; border-color: var(--cv-accent); }
.cv-err { color: var(--cv-error); font-size: .85rem; min-height: 1em; margin-top: 4px; }
.has-err input, .has-err select { border-color: var(--cv-error) !important; }

.cv-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 560px) { .cv-types { grid-template-columns: repeat(2, 1fr); } }
.cv-type { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid var(--cv-line); border-radius: var(--cv-radius); cursor: pointer; background: #fff; transition: border-color .15s, box-shadow .15s; }
.cv-type input { position: absolute; opacity: 0; pointer-events: none; }
.cv-type small { color: var(--cv-muted); font-size: .8rem; line-height: 1.3; }
.cv-type:hover { border-color: var(--cv-accent); }
.cv-type.is-on { border-color: var(--cv-accent); box-shadow: 0 0 0 2px var(--cv-accent) inset; background: var(--cv-soft); }
.cv-type:focus-within { outline: 2px solid var(--cv-accent); outline-offset: 2px; }
.cv-type-icon { display: block; width: 100%; max-width: 132px; height: 54px; background: var(--cv-ic) no-repeat left bottom / contain; margin-bottom: 4px; }
.cv-ic-van { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2238%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2284%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2261.0%22 cy=%2246.2%22 rx=%2239.0%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Cpath d=%22M26 14 Q26 11 29 11 H74 Q79 11 82 15 L90 25 Q96 26 98 30 V38 Q98 40 96 40 H26 Q24 40 24 38 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M77 15 Q79 15 80.5 17 L86.5 25 H77 Z%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2230%22 y=%2216%22 width=%2220%22 height=%228%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2254%22 y=%2216%22 width=%2217%22 height=%228%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M73.5 15 V36%22 stroke=%22%2313302a%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Crect x=%2224%22 y=%2231%22 width=%2274%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%2295.5%22 y=%2228.5%22 width=%222.5%22 height=%222%22 rx=%22.6%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2238%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2238%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2284%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2284%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }
.cv-ic-fourgon { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2226%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2292%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2259.0%22 cy=%2246.2%22 rx=%2249.0%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Crect x=%2234%22 y=%225%22 width=%2212%22 height=%223%22 rx=%221%22 fill=%22%230f5a4b%22 opacity=%22.75%22/%3E%3Cpath d=%22M14 11 Q14 8 17 8 H82 Q87 8 90 12 L98 24 Q105 25 107 29 V38 Q107 40 105 40 H14 Q12 40 12 38 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M85 12 Q87 12 88.5 14 L95.5 24 H85 Z%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2218%22 y=%2214%22 width=%2213%22 height=%228%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2248%22 y=%2214%22 width=%2218%22 height=%228%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M45 13 V37 M69 13 V37 M81.5 12 V36%22 stroke=%22%2313302a%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Crect x=%2212%22 y=%2231%22 width=%2295%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%22104.5%22 y=%2228%22 width=%222.5%22 height=%222%22 rx=%22.6%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2226%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2226%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2292%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2292%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }
.cv-ic-profile { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2259.0%22 cy=%2246.2%22 rx=%2253.0%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Cpath d=%22M10 7 H78 Q84 7 88 11 L94 17 Q96 19 99 22 L104 27 Q110 28 111 32 V38 Q111 40 109 40 H10 Q7 40 7 37 V10 Q7 7 10 7 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M89.5 20.5 Q91 20.5 92.5 22 L98.5 27.5 H89.5 Z%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M86 12 L92 18%22 stroke=%22%23cfe6de%22 stroke-width=%221.6%22 stroke-linecap=%22round%22 opacity=%22.7%22/%3E%3Crect x=%2213%22 y=%2213%22 width=%2215%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2246%22 y=%2213%22 width=%2218%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2233%22 y=%2214%22 width=%229%22 height=%2222%22 rx=%221.5%22 fill=%22none%22 stroke=%22%23cfe6de%22 stroke-width=%221.2%22/%3E%3Crect x=%2238.8%22 y=%2224%22 width=%222%22 height=%22.9%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M86.5 20 V37%22 stroke=%22%2313302a%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Crect x=%227%22 y=%2231.5%22 width=%22104%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%22108.5%22 y=%2230%22 width=%222.5%22 height=%222%22 rx=%22.6%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }
.cv-ic-capucine { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2223%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2259.0%22 cy=%2246.2%22 rx=%2253.0%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Cpath d=%22M9 5 H100 Q107 5 107 11 V13 Q107 17 102 17 H95 L101 24 L106 27 Q111 28 111 32 V38 Q111 40 109 40 H9 Q6 40 6 37 V8 Q6 5 9 5 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M100 8 Q104 8.5 104.5 11 V13 H100 Z%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M89 19 H94.5 L100.5 26 H89 Z%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2212%22 y=%2212%22 width=%2215%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2258%22 y=%2212%22 width=%2217%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2233%22 y=%2213%22 width=%229%22 height=%2223%22 rx=%221.5%22 fill=%22none%22 stroke=%22%23cfe6de%22 stroke-width=%221.2%22/%3E%3Crect x=%2238.8%22 y=%2224%22 width=%222%22 height=%22.9%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M86 17.5 V37%22 stroke=%22%2313302a%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Crect x=%226%22 y=%2231.5%22 width=%22105%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%22108.5%22 y=%2230%22 width=%222.5%22 height=%222%22 rx=%22.6%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2223%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2223%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2294%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }
.cv-ic-integral { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2295%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2259.5%22 cy=%2246.2%22 rx=%2254.5%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Cpath d=%22M9 5 H98 Q106 5 109 13 L112 24 Q113 27 113 31 V38 Q113 40 111 40 H9 Q6 40 6 37 V8 Q6 5 9 5 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M98 8 Q104 8 106.5 14 L109.5 25 H99 Z%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2287%22 y=%2211%22 width=%228%22 height=%229%22 rx=%221.5%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2212%22 y=%2212%22 width=%2215%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2250%22 y=%2212%22 width=%2220%22 height=%229%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2233%22 y=%2213%22 width=%229%22 height=%2223%22 rx=%221.5%22 fill=%22none%22 stroke=%22%23cfe6de%22 stroke-width=%221.2%22/%3E%3Crect x=%2238.8%22 y=%2224%22 width=%222%22 height=%22.9%22 fill=%22%23cfe6de%22/%3E%3Crect x=%226%22 y=%2231.5%22 width=%22107%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%22108%22 y=%2228.5%22 width=%224%22 height=%222%22 rx=%22.8%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2224%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2295%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2295%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }
.cv-ic-combi { --cv-ic: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 48%22%3E%3Cmask id=%22m%22 maskUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22120%22 height=%2248%22%3E%3Crect width=%22120%22 height=%2248%22 fill=%22%23fff%22/%3E%3Ccircle cx=%2237%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3Ccircle cx=%2286%22 cy=%2240%22 r=%227.6%22 fill=%22%23000%22/%3E%3C/mask%3E%3Cellipse cx=%2261.0%22 cy=%2246.2%22 rx=%2241.0%22 ry=%221.6%22 fill=%22%2313302a%22 opacity=%22.12%22/%3E%3Cg mask=%22url%28%23m%29%22%3E%3Cpath d=%22M34 16 L40 7 H72 L76 16 Z%22 fill=%22%23e3f0eb%22 stroke=%22%230f5a4b%22 stroke-width=%221.2%22 stroke-linejoin=%22round%22/%3E%3Cpath d=%22M44 9.5 H68 M43 12.5 H71%22 stroke=%22%230f5a4b%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M25 19 Q25 16 28 16 H78 Q82 16 85 19 L91 27 Q98 28 100 32 V38 Q100 40 98 40 H25 Q23 40 23 38 Z%22 fill=%22%230f5a4b%22/%3E%3Cpath d=%22M80 19 Q82 19 83.5 21 L88 27 H80 Z%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2228%22 y=%2220%22 width=%2222%22 height=%227%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Crect x=%2253%22 y=%2220%22 width=%2223%22 height=%227%22 rx=%222%22 fill=%22%23cfe6de%22/%3E%3Cpath d=%22M51.5 19 V37 M77.5 19 V37%22 stroke=%22%2313302a%22 stroke-opacity=%22.35%22 stroke-width=%22.8%22/%3E%3Crect x=%2223%22 y=%2232%22 width=%2277%22 height=%221.6%22 fill=%22%23ff8f3f%22/%3E%3Crect x=%2297.5%22 y=%2230%22 width=%222.5%22 height=%222%22 rx=%22.6%22 fill=%22%23ffd9a8%22/%3E%3C/g%3E%3Ccircle cx=%2237%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2237%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3Ccircle cx=%2286%22 cy=%2240%22 r=%226.2%22 fill=%22%2313302a%22/%3E%3Ccircle cx=%2286%22 cy=%2240%22 r=%222.8%22 fill=%22%23ff8f3f%22/%3E%3C/svg%3E"); }

.cv-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.cv-radio { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid var(--cv-line); border-radius: 99px; cursor: pointer; font-weight: 400; background: #fff; }
.cv-radio:has(input:checked) { border-color: var(--cv-accent); background: var(--cv-soft); box-shadow: 0 0 0 1px var(--cv-accent) inset; }
.cv-checks { display: flex; flex-direction: column; gap: 8px; }
.cv-check { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-weight: 400 !important; }
.cv-check input { margin-top: 4px; accent-color: var(--cv-accent); }
.cv-radio input { accent-color: var(--cv-accent); }

.cv-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-bottom: 16px; }
@media (max-width: 560px) { .cv-opts { grid-template-columns: 1fr; } }
.cv-optrow { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--cv-line); border-radius: 8px; }
.cv-optrow.is-on { border-color: var(--cv-accent); background: var(--cv-soft); }
.cv-year { display: none; align-items: center; gap: 6px; font-size: .8rem; color: var(--cv-muted); }
.cv-optrow.is-on .cv-year { display: inline-flex; }
.cv-year input { width: 78px; padding: 6px; border: 1px solid var(--cv-line); border-radius: 6px; font: inherit; }

.cv-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 28px; }
.cv-btn { display: inline-block; padding: 13px 24px; border: 0; border-radius: var(--cv-radius); background: var(--cv-accent); color: var(--cv-accent-ink); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; text-align: center; }
.cv-btn:hover { filter: brightness(1.08); }
.cv-btn:disabled { opacity: .6; cursor: wait; }
.cv-btn-ghost { background: transparent; color: var(--cv-ink); border: 1px solid var(--cv-line); }
.cv-btn-big { width: 100%; padding: 17px 22px; font-size: 1.1rem; background: var(--cv-highlight); color: var(--cv-highlight-ink); }
.cv-link { background: none; border: 0; color: var(--cv-muted); text-decoration: underline; cursor: pointer; margin-top: 16px; font: inherit; }

.cv-teaser { text-align: center; padding: 36px 28px; border: 1px solid var(--cv-line); border-radius: 24px; background: #fff; box-shadow: 0 1px 2px rgba(19,48,42,.06), 0 8px 24px rgba(19,48,42,.08); }
.cv-kicker { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: var(--cv-accent); font-weight: 700; margin: 0 0 8px; }
.cv-range-lead { margin: 0; color: var(--cv-muted); }
.cv-range { font-size: 2.25rem; font-weight: 800; line-height: 1.2; margin: 6px 0 16px; }
.cv-range strong { color: var(--cv-accent); }
.cv-range strong { white-space: nowrap; }
.cv-meta { margin: 4px 0; color: var(--cv-muted); }
.cv-stars { letter-spacing: 2px; }
.cv-star { color: var(--cv-line); }
.cv-star.is-on { color: var(--cv-highlight); }
.cv-pitch { margin-top: 24px; padding: 22px; background: var(--cv-surface); border-radius: var(--cv-radius); text-align: left; }
.cv-pitch p { margin-top: 0; }
.cv-small { font-size: .85rem; color: var(--cv-muted); margin: 10px 0 0 !important; text-align: center; }
.cv-alert { padding: 12px 14px; border-radius: 8px; background: #fdecea; color: var(--cv-error); margin-bottom: 16px; }
.cv-done h2 { margin-top: 0; }
.cv-spinner { width: 36px; height: 36px; margin: 0 auto 12px !important; border: 3px solid var(--cv-line); border-top-color: var(--cv-accent); border-radius: 50%; animation: cv-spin 1s linear infinite; }
@keyframes cv-spin { to { transform: rotate(360deg); } }
