/* Rapyder Case Study Portal — contributor form
   Brand: #C40000 primary, #FC3030 accent, DM Sans.
   Written to sit inside the live theme without fighting it, so everything is
   scoped under .rcsp and no global element is restyled. */

.rcsp{
  --primary:#C40000; --secondary:#FC3030; --ink:#16181d; --dim:#6b7280;
  --line:#e5e7eb; --line-2:#d7dae0; --soft:#f7f8fa; --ok:#1d6f2f; --warn:#a8500a;
  --tint:#fdf0f0;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --shadow-lg:0 4px 6px -2px rgba(16,24,40,.04),0 12px 20px -4px rgba(16,24,40,.10);
  --ring:0 0 0 3px rgba(252,48,48,.14);
  font-family:'DM Sans',system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--ink); max-width:920px; margin:0 auto; line-height:1.55;
  counter-reset:rcspstep;
}
.rcsp *,.rcsp *:before,.rcsp *:after{box-sizing:border-box}
.rcsp [hidden]{display:none !important}

/* --- page header ------------------------------------------------------- */
.rcsp-head{margin-bottom:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.rcsp-head h1{font-size:31px;line-height:1.18;font-weight:700;margin:0 0 9px;letter-spacing:-.025em}
.rcsp-head p{margin:0;color:var(--dim);font-size:15px;max-width:64ch}
.rcsp-head .bar{display:inline-block;width:38px;height:4px;border-radius:3px;
  background:linear-gradient(90deg,var(--primary),var(--secondary));margin-bottom:15px}

.rcsp-notice{border-left:4px solid var(--primary);background:#fdf5f5;padding:13px 17px;
  border-radius:0 10px 10px 0;margin-bottom:20px;font-size:14.5px}

/* --- progress ---------------------------------------------------------- */
.rcsp-prog{display:flex;align-items:center;gap:13px;position:sticky;top:0;z-index:6;
  padding:13px 0 14px;background:#fff;margin-bottom:4px}
.rcsp-prog-track{flex:1;height:5px;border-radius:4px;background:var(--line);overflow:hidden}
.rcsp-prog-track i{display:block;height:100%;width:0;border-radius:4px;
  background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .3s ease}
.rcsp-prog-t{font-size:12.5px;font-weight:600;color:var(--dim);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.rcsp-prog-t.done{color:var(--ok)}

/* --- cards, numbered by CSS so the template stays clean ---------------- */
.rcsp-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px 28px;
  margin-bottom:18px;background:#fff;box-shadow:var(--shadow);scroll-margin-top:76px;
  transition:box-shadow .18s,border-color .18s}
.rcsp-card:focus-within{box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.rcsp-card-h{margin:0 0 20px;padding-left:38px;position:relative;min-height:28px}
.rcsp-card-h:before{counter-increment:rcspstep;content:counter(rcspstep);
  position:absolute;left:0;top:1px;width:27px;height:27px;border-radius:50%;
  background:var(--tint);color:var(--primary);font-size:12.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center}
.rcsp-card-h h2{font-size:18px;font-weight:600;margin:0;letter-spacing:-.015em;line-height:1.4}
.rcsp-lede{margin:3px 0 0;font-size:13px;color:var(--dim);line-height:1.5}
.rcsp-card > .rcsp-help:first-of-type{margin-top:0}

/* --- labels and fields ------------------------------------------------- */
.rcsp label{display:block;font-size:13px;font-weight:600;margin:20px 0 7px;color:#374151}
.rcsp label b{color:var(--secondary);font-weight:700}
.rcsp label em{color:var(--dim);font-weight:400;font-style:normal;font-size:12px}
.rcsp input[type=text],.rcsp input[type=url],.rcsp input[type=email],
.rcsp input[type=number],.rcsp textarea,.rcsp select{
  width:100%;font:inherit;font-size:14.5px;color:var(--ink);background:#fff;
  padding:11px 14px;border:1px solid var(--line-2);border-radius:10px;
  transition:border-color .12s,box-shadow .12s}
.rcsp input::placeholder,.rcsp textarea::placeholder{color:#a2a8b3}
.rcsp input:hover,.rcsp textarea:hover,.rcsp select:hover{border-color:#bfc4cd}
.rcsp input:focus,.rcsp textarea:focus,.rcsp select:focus{
  outline:none;border-color:var(--secondary);box-shadow:var(--ring)}
.rcsp select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.rcsp-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:640px){.rcsp-2{grid-template-columns:1fr;gap:0}}
.rcsp-help{font-size:12.5px;color:var(--dim);margin:7px 0 0;line-height:1.55}
.rcsp-slug{font-size:12.5px;color:var(--dim);margin:7px 0 0}
.rcsp-slug code{font-size:12px;background:var(--soft);padding:2px 7px;border-radius:5px;word-break:break-all}
.rcsp-err{display:block;color:var(--primary);font-size:12.5px;margin-top:7px;font-weight:500}
.rcsp-linkbtn{font:inherit;font-size:12.5px;background:none;border:0;padding:0;cursor:pointer;
  color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.rcsp-linkbtn:hover{color:var(--secondary)}

/* --- the featured image ------------------------------------------------ */
.rcsp-img{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-top:2px}
@media(max-width:640px){.rcsp-img{grid-template-columns:1fr}}

.rcsp-drop{position:relative;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;gap:3px;min-height:146px;padding:22px 20px;
  border:1.5px dashed var(--line-2);border-radius:12px;background:var(--soft);
  cursor:pointer;transition:border-color .14s,background .14s}
.rcsp-drop:hover{border-color:var(--secondary);background:#fdf7f7}
.rcsp-drop.over{border-color:var(--primary);background:var(--tint);border-style:solid}
.rcsp-drop.busy{opacity:.6;pointer-events:none}
/* The input covers the whole box so a click anywhere opens the picker, and
   the browser's own drag-and-drop handling comes along for free. */
.rcsp-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
  padding:0;border:0;background:none}
.rcsp-drop-ico{color:var(--primary);line-height:0;margin-bottom:5px}
.rcsp-drop-t{font-size:14px;font-weight:600;color:#374151}
.rcsp-drop-s{font-size:12px;color:var(--dim);line-height:1.5;max-width:60ch}

.rcsp-thumb:empty{display:none}
.rcsp-thumb img{display:block;width:210px;height:118px;object-fit:cover;
  border-radius:11px;border:1px solid var(--line);box-shadow:var(--shadow)}
@media(max-width:640px){.rcsp-thumb img{width:100%;height:auto;aspect-ratio:16/9}}

/* --- category chips ---------------------------------------------------- */
.rcsp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
/* `.rcsp label` is more specific than a bare `.rcsp-chip`, so it was winning:
   every chip was a block with an 18px top margin and no gap beside its box.
   Matching that specificity is what makes a chip look like a chip. */
.rcsp .rcsp-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);
  border-radius:22px;padding:8px 15px;font-size:13px;font-weight:500;margin:0;cursor:pointer;
  background:#fff;transition:border-color .12s,background .12s,color .12s;user-select:none}
.rcsp .rcsp-chip:hover{border-color:#bfc4cd}
.rcsp .rcsp-chip input{margin:0;accent-color:var(--primary)}
.rcsp .rcsp-chip:has(input:checked){background:var(--tint);border-color:var(--secondary);
  color:var(--primary);font-weight:600}

/* The case-study branch: a group ("Industries") above its own chips.
   Depth 0 sits in a row; anything deeper wraps under its parent. */
.rcsp-cats{margin-top:8px}
.rcsp-cat-level.d0{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.rcsp-cat-level.d0 > .rcsp-cat-node{background:var(--soft);border:1px solid var(--line);
  border-radius:12px;padding:14px 15px 15px}
.rcsp-cat-level:not(.d0){display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.rcsp-cat-level:not(.d0) .rcsp-cat-node{display:contents}
.rcsp .rcsp-chip.parent{background:transparent;border:0;padding:0;font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:#374151}
.rcsp .rcsp-chip.parent:hover{border:0}
.rcsp .rcsp-chip.parent:has(input:checked){background:transparent;color:var(--primary)}
@media(max-width:560px){.rcsp-cat-level.d0{grid-template-columns:1fr}}

/* --- repeaters --------------------------------------------------------- */
/* Rows are numbered by CSS, so they renumber themselves when one is added or
   deleted, and the writer sees the same numbering the page will publish. */
.rcsp-rep{display:flex;flex-direction:column;gap:11px;margin-top:6px;counter-reset:rcsprow}
.rcsp-row{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:start}
.rcsp-row.paired{grid-template-columns:26px minmax(0,1fr) minmax(0,1.35fr) auto}
.rcsp-row:before{counter-increment:rcsprow;content:counter(rcsprow);
  font-size:12px;font-weight:700;color:#9ca3af;line-height:42px;text-align:right;
  font-variant-numeric:tabular-nums}
@media(max-width:700px){
  .rcsp-row,.rcsp-row.paired{grid-template-columns:26px 1fr auto}
  .rcsp-row.paired > :nth-child(3){grid-column:2/-1}
}
.rcsp-del{border:1px solid var(--line-2);background:#fff;border-radius:9px;width:38px;height:42px;
  cursor:pointer;font-size:18px;line-height:1;color:var(--dim);transition:all .12s}
.rcsp-del:hover{border-color:var(--secondary);color:var(--primary);background:#fdf5f5}
.rcsp-add{margin-top:13px;width:100%;border:1.5px dashed var(--line-2);background:#fff;
  color:var(--primary);padding:12px;border-radius:10px;cursor:pointer;font:inherit;
  font-size:14px;font-weight:600;transition:all .12s}
.rcsp-add:hover{border-color:var(--secondary);background:#fdf7f7}
.rcsp-note{font-size:12.5px;color:var(--ok);background:#f1f8f2;border-left:3px solid var(--ok);
  border-radius:0 7px 7px 0;padding:9px 12px;margin:12px 0 0}

/* --- counters, buttons, actions ---------------------------------------- */
.rcsp-count{float:right;font-weight:500;color:var(--dim);font-size:11.5px;
  font-variant-numeric:tabular-nums}
.rcsp-count.over{color:var(--primary)}
.rcsp-actions{display:flex;gap:11px;align-items:center;padding:15px 0;position:sticky;bottom:0;
  background:#fff;border-top:1px solid var(--line);margin-top:6px;z-index:5;flex-wrap:wrap;
  box-shadow:0 -8px 16px -8px rgba(16,24,40,.12)}
.rcsp-left{font-size:12.5px;font-weight:600;color:var(--dim);margin-right:auto}
.rcsp-left.ready{color:var(--ok)}
.rcsp-left button{font:inherit;font-size:12.5px;font-weight:600;background:none;border:0;
  padding:0;cursor:pointer;color:var(--primary);text-decoration:underline;text-underline-offset:2px}
@media(max-width:520px){.rcsp-left{order:3;width:100%;margin:2px 0 0}}
.rcsp-btn{font:inherit;font-size:14.5px;font-weight:600;padding:12px 24px;border-radius:10px;
  border:1px solid transparent;cursor:pointer;transition:all .12s}
.rcsp-btn.primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(196,0,0,.25)}
.rcsp-btn.primary:hover{background:var(--secondary);box-shadow:0 3px 10px rgba(196,0,0,.24)}
.rcsp-btn.ghost{background:#fff;border-color:var(--line-2);color:#374151}
.rcsp-btn.ghost:hover{border-color:#bfc4cd;background:var(--soft)}
a.rcsp-btn{display:inline-block;text-decoration:none;line-height:1.4}

/* --- reviewer picker --------------------------------------------------- */
.rcsp-rev-card{display:flex;flex-direction:column;gap:2px;margin-top:12px;padding:14px 17px;
  border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:0 10px 10px 0;
  background:var(--soft)}
.rcsp-rev-card strong{font-size:14.5px}
.rcsp-rev-card span{font-size:13px;color:var(--dim)}
.rcsp-rev-new{margin-top:6px;padding:4px 17px 18px;background:var(--soft);border-radius:11px}

/* --- rich text editor -------------------------------------------------- */
.rcsp-ed{min-width:0}
.rcsp-ed.on textarea.rcsp-rich{display:none}
.rcsp-ed-bar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;
  border:1px solid var(--line-2);border-bottom:0;border-radius:10px 10px 0 0;
  background:var(--soft);padding:6px 7px}
.rcsp-ed-b{font:inherit;font-size:12.5px;line-height:1;min-width:31px;padding:6px 9px;cursor:pointer;
  background:#fff;border:1px solid var(--line-2);border-radius:6px;color:#374151;transition:all .12s}
.rcsp-ed-b:hover{border-color:var(--secondary);color:var(--primary)}
.rcsp-ed-b.on{background:var(--primary);border-color:var(--primary);color:#fff}
.rcsp-ed-b b,.rcsp-ed-b i{font-size:13px}
.rcsp-ed-n{margin-left:auto;font-size:11.5px;color:var(--dim);padding-right:5px}
.rcsp-ed-area{font:inherit;font-size:14.5px;line-height:1.6;padding:12px 14px;background:#fff;
  border:1px solid var(--line-2);border-radius:0 0 10px 10px;overflow-wrap:anywhere;
  transition:border-color .12s,box-shadow .12s}
.rcsp-ed-area:focus{outline:none;border-color:var(--secondary);box-shadow:var(--ring)}
.rcsp-ed-area.empty:before{content:attr(data-ph);color:#a2a8b3;pointer-events:none}
.rcsp-ed-area strong{font-weight:700}
.rcsp-ed-area em{font-style:italic}
.rcsp-ed-area a{color:var(--primary);text-decoration:underline}
.rcsp-ed.missing .rcsp-ed-bar,.rcsp-ed.missing .rcsp-ed-area{border-color:var(--secondary)}
/* Rows keep the editor compact so a repeater still reads as a list. */
.rcsp-row .rcsp-ed-area{min-height:0;padding:10px 13px}
.rcsp-row .rcsp-ed-bar{padding:4px 5px}
.rcsp-row .rcsp-ed-b{padding:4px 7px;font-size:11.5px;min-width:27px}

@media(prefers-reduced-motion:reduce){
  .rcsp *,.rcsp *:before,.rcsp *:after{transition:none !important}
}

/* --- Industry and Offering, read off the ticks rather than typed --------- */
.rcsp-derived{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.rcsp-derived .row{background:var(--soft);border:1px solid var(--line);border-radius:10px;
  padding:11px 14px;min-height:58px;display:flex;flex-direction:column;justify-content:center}
.rcsp-derived .row span{font-size:11px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--dim);margin-bottom:3px}
.rcsp-derived .row b{font-size:14.5px;font-weight:600;line-height:1.35;color:var(--ink)}
.rcsp-derived .row.empty b:after{content:attr(data-placeholder);color:#a2a8b3;font-weight:400}
.rcsp-derived.none .row{border-style:dashed}
@media(max-width:560px){.rcsp-derived{grid-template-columns:1fr}}
