/* Uses the site's design tokens from ../css/styles.css (forest / cream / gold, Cormorant Garamond + DM Sans). */
.rc-body { background: var(--cream); color: var(--charcoal); min-height: 100vh; }
/* Header: a bar in the logo's own green (#014137, sampled from the image) so the logo blends in. The artwork is a 2000x2000 square
   with the wordmark in a band about 3.2:1 across the middle, so it is cropped to that band (object-fit: cover; a 2.8:1 window starting 28.5% down the image, which keeps the 'T' of 'Tru'
   and the TELEHEALTH line fully inside the crop) and shown large. */
.rc-header {
  background: #014137; border-bottom: 3px solid var(--gold);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 10px max(16px, calc((100% - 1180px) / 2));
}
.rc-logo { display: block; flex: 0 1 auto; width: clamp(210px, 34vw, 320px); aspect-ratio: 2.8 / 1; line-height: 0; }
.rc-logo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 44.3%; display: block; }
.rc-back { color: var(--cream); font-size: .9rem; text-decoration: none; white-space: nowrap; opacity: .85; }
.rc-back:hover, .rc-back:focus-visible { opacity: 1; text-decoration: underline; }
.rc-main { max-width: 760px; margin: 0 auto; padding: 32px 16px 64px; }
.rc-title { font-family: var(--ff-display); font-weight: 500; font-size: clamp(1.9rem, 5vw, 2.6rem); color: var(--forest); margin: 0 0 8px; }
.rc-lead { color: var(--text-mid); margin: 0 0 24px; line-height: 1.6; }
.rc-progress { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 20px; padding: 0; font-size: .8rem; }
.rc-progress li { border-top: 4px solid var(--blush); padding-top: 6px; color: var(--text-light); }
.rc-progress li.is-done { border-color: var(--sage-light); color: var(--text-mid); }
.rc-progress li.is-current { border-color: var(--gold); color: var(--forest); font-weight: 600; }
.rc-card { background: var(--white); border-radius: var(--r-lg); box-shadow: var(--sh-md); padding: 24px; }
.rc-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.rc-step legend { font-family: var(--ff-display); font-size: 1.5rem; color: var(--forest); padding: 0; margin-bottom: 14px; }
.rc-grid { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
@media (min-width: 640px) { .rc-grid { grid-template-columns: 1fr 1fr; } }
.rc-field { margin-bottom: 16px; }
.rc-field label, .rc-label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 6px; color: var(--forest-mid); }
.rc-field small { font-weight: 400; color: var(--text-light); }
.rc-field input[type=text], .rc-field input[type=email], .rc-field input[type=tel], .rc-field input[type=number], .rc-field input[type=password],
.rc-field input:not([type]), .rc-field textarea {
  width: 100%; font: inherit; padding: 12px 14px; border: 1.5px solid var(--blush); border-radius: var(--r-sm);
  background: var(--cream); color: var(--charcoal); }
.rc-field input:focus, .rc-field textarea:focus, .rc-btn:focus-visible, .rc-pill:focus-visible { outline: 3px solid var(--gold-light); outline-offset: 1px; }
.rc-field.has-error input, .rc-field.has-error textarea { border-color: #B3261E; }
.rc-hint { color: var(--text-light); font-size: .82rem; margin: 6px 0 0; }
.rc-err { color: #B3261E; font-size: .85rem; margin: 6px 0 0; min-height: 0; }
.rc-err:empty { display: none; }
.rc-alert { background: #FDECEA; color: #7A1712; border-radius: var(--r-sm); padding: 12px 14px; margin: 0 0 16px; }
.rc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rc-pill { padding: 9px 14px; border-radius: 999px; border: 1.5px solid var(--sage-light); background: var(--white); color: var(--forest); font-size: .9rem; }
.rc-pill[aria-pressed="true"] { background: var(--forest); border-color: var(--forest); color: var(--white); }
.rc-pill[disabled] { opacity: .45; cursor: not-allowed; }
.rc-doc { border: 1.5px dashed var(--sage-light); border-radius: var(--r-md); padding: 12px 14px; margin-bottom: 12px; background: var(--cream); }
.rc-doc.has-error { border-color: #B3261E; }
.rc-doc .rc-docname { font-size: .85rem; color: var(--text-mid); margin-top: 6px; word-break: break-all; }
.rc-doc input[type=file] { width: 100%; font: inherit; }
.rc-summary { display: grid; grid-template-columns: 1fr; gap: 4px 16px; margin: 0 0 18px; }
@media (min-width: 640px) { .rc-summary { grid-template-columns: 220px 1fr; } }
.rc-summary dt { font-weight: 600; color: var(--forest-mid); }
.rc-summary dd { margin: 0 0 8px; word-break: break-word; white-space: pre-wrap; }
.rc-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400 !important; }
.rc-check input { margin-top: 4px; }
.rc-status { min-height: 1.4em; color: var(--text-mid); margin: 8px 0; }
.rc-nav { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.rc-btn { background: var(--forest); color: var(--white); padding: 13px 26px; border-radius: 999px; font-weight: 600; font-size: .95rem; }
.rc-btn:hover:not([disabled]) { background: var(--forest-mid); }
.rc-btn[disabled] { opacity: .6; cursor: progress; }
.rc-btn-ghost { background: transparent; color: var(--forest); border: 1.5px solid var(--sage-light); }
.rc-done h2 { font-family: var(--ff-display); color: var(--forest); font-size: 1.8rem; margin-top: 0; }
[hidden] { display: none !important; }
.rc-notice h2 { font-family: var(--ff-display); color: var(--forest); }
.rc-draft { background: var(--gold-pale); border-left: 4px solid var(--gold); padding: 12px 14px; border-radius: var(--r-sm); }

.rc-sub { font-family: var(--ff-display); font-size: 1.25rem; color: var(--forest); margin: 20px 0 8px; }
.rc-sub small { font-family: var(--ff-body); font-size: .8rem; color: var(--text-light); }
.rc-ref { border: 1.5px solid var(--blush); border-radius: var(--r-md); padding: 12px 14px 0; margin-bottom: 12px; background: var(--cream); }
.rc-ref .rc-grid { grid-template-columns: 1fr; }
@media (min-width: 640px) { .rc-ref .rc-grid { grid-template-columns: 1fr 1fr 1fr; } }
.rc-refbtns { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.rc-needs { margin: 0 0 20px; background: var(--white); border-radius: var(--r-md); padding: 10px 16px; box-shadow: var(--sh-sm); }
.rc-needs summary { cursor: pointer; font-weight: 600; color: var(--forest-mid); }
.rc-needs ul { margin: 10px 0 0; padding-left: 20px; line-height: 1.6; }
.rc-doc .rc-hint { margin: 2px 0 0; }

/* usability additions */
.rc-stepline { margin: 0 0 8px; font-weight: 600; color: var(--forest-mid); }
.rc-docscount { margin: 0 0 12px; font-weight: 600; color: var(--text-mid); }
.rc-docscount.is-complete { color: var(--sage); }
.rc-doc.has-file { border-style: solid; border-color: var(--sage-light); background: var(--white); }
.rc-doc.has-file .rc-docname { color: var(--forest-mid); font-weight: 600; }
.rc-remove { background: transparent; color: #B3261E; border: 0; padding: 6px 0; margin-top: 4px; font: inherit; font-size: .85rem; text-decoration: underline; cursor: pointer; }
.rc-doc input[type=file]::file-selector-button { background: var(--forest); color: var(--white); border: 0; border-radius: 999px; padding: 8px 16px; margin-right: 12px; font: inherit; cursor: pointer; }
.rc-bar { width: 100%; height: 10px; margin: 10px 0 0; accent-color: var(--forest); }
.rc-sumhead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.rc-edit { background: transparent; color: var(--forest); border: 0; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; padding: 4px 0; }
.rc-refbox { display: inline-block; background: var(--gold-pale); border-radius: var(--r-sm); padding: 8px 14px; font-weight: 700; letter-spacing: .04em; }
.rc-next { line-height: 1.7; padding-left: 20px; }
@media (max-width: 560px) {
  .rc-nav { position: sticky; bottom: 0; background: var(--white); padding: 10px 0; border-top: 1px solid var(--blush); }
  .rc-nav .rc-btn { flex: 1 1 0; text-align: center; }
}
