.tcs-order {
  --tcs-ink: #17263a;
  --tcs-muted: #5f6b7a;
  --tcs-line: #d9e1eb;
  --tcs-soft: #f5f7fa;
  --tcs-blue: #1769aa;
  --tcs-blue-dark: #0f507f;
  --tcs-blue-soft: #eef7fd;
  --tcs-attention: #b7791f;
  --tcs-attention-line: #d6a53a;
  --tcs-attention-soft: #fff8df;
  --tcs-danger: #a12622;
  width: min(100%, 920px);
  margin: 32px auto;
  color: var(--tcs-ink);
  font-family: Poppins, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

.tcs-order *, .tcs-order *::before, .tcs-order *::after { box-sizing: border-box; }
.tcs-order h1, .tcs-order h2, .tcs-order h3, .tcs-order h4 { font-family: "PT Sans", sans-serif; }
.tcs-order h1, .tcs-order h2, .tcs-order h3, .tcs-order h4, .tcs-order p { margin-top: 0; }
.tcs-order h1 { margin-bottom: 8px; font-size: clamp(1.85rem, 4vw, 2.65rem); line-height: 1.15; }
.tcs-order h2 { margin-bottom: 7px; font-size: clamp(1.55rem, 3vw, 2rem); line-height: 1.2; }
.tcs-order h3 { margin-bottom: 6px; font-size: 1.15rem; }
.tcs-order h4 { margin: 0 0 4px; font-size: 1rem; }
.tcs-order p { margin-bottom: 12px; color: var(--tcs-muted); }
.tcs-order button, .tcs-order input, .tcs-order select, .tcs-order textarea { font: inherit; }
.tcs-order button { cursor: pointer; }

.tcs-order__header { margin-bottom: 24px; }
.tcs-order__header > p:last-child { max-width: 720px; font-size: 1.05rem; }
.tcs-order__eyebrow { margin-bottom: 4px !important; color: var(--tcs-blue-dark) !important; font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.tcs-order--compact { margin-top: 12px; }
.tcs-order--compact .tcs-order__progress { margin-bottom: 20px; }

.tcs-order__progress { margin-bottom: 24px; }
.tcs-order__progress ol { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; }
.tcs-order__progress li { position: relative; display: grid; justify-items: center; gap: 6px; color: var(--tcs-muted); font-size: .78rem; text-align: center; }
.tcs-order__progress li::before { position: absolute; z-index: 0; top: 15px; left: 0; width: 100%; height: 2px; background: var(--tcs-line); content: ""; }
.tcs-order__progress li:first-child::before { left: 50%; width: 50%; }
.tcs-order__progress li:last-child::before { width: 50%; }
.tcs-order__progress li span { z-index: 1; display: grid; width: 32px; height: 32px; border: 2px solid var(--tcs-line); border-radius: 50%; place-items: center; color: var(--tcs-muted); background: #fff; font-weight: 800; }
.tcs-order__progress li.is-current { color: var(--tcs-blue-dark); font-weight: 700; }
.tcs-order__progress li.is-current span, .tcs-order__progress li.is-complete span { border-color: var(--tcs-blue); color: #fff; background: var(--tcs-blue); }
.tcs-order__progress li.is-complete::before { background: var(--tcs-blue); }
.tcs-ro .tcs-order__progress ol { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 1fr; }

.tcs-order__form, .tcs-order__success { border: 1px solid var(--tcs-line); border-radius: 18px; padding: clamp(20px, 5vw, 44px); background: #fff; box-shadow: 0 12px 36px rgba(23, 38, 58, .07); }
.tcs-order__step-heading { margin-bottom: 28px; }
.tcs-order__step-heading > p:last-child { margin-bottom: 0; }
.tcs-order__message, .tcs-person-editor__error { margin-bottom: 20px; border-left: 4px solid var(--tcs-danger); padding: 12px 14px; color: var(--tcs-danger); background: #fff5f4; font-weight: 700; }
.tcs-field-grid { display: grid; gap: 18px; margin-bottom: 24px; }
.tcs-field-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tcs-field--wide { grid-column: 1 / -1; }
.tcs-company-name-field { margin-bottom: 8px; }
.tcs-field { display: grid; align-content: start; align-self: start; gap: 6px; margin: 0 !important; padding: 0; color: var(--tcs-ink); font-weight: 720; line-height: 1.5; }
.tcs-field--bottom-aligned { align-self: end; }
.tcs-field > span b, .tcs-choice-group legend b { color: var(--tcs-danger); }
.tcs-field small, .tcs-help { display: block; margin: -1px 0 8px; color: var(--tcs-muted); font-size: .88rem; font-weight: 400; }
.tcs-info-note { margin: 14px 0; border-left: 4px solid var(--tcs-blue); border-radius: 8px; padding: 12px 14px; color: var(--tcs-blue-dark); background: var(--tcs-blue-soft); line-height: 1.5; }
.tcs-field input, .tcs-field select, .tcs-field textarea {
  width: 100%; min-height: 46px; border: 1px solid #aeb9c8; border-radius: 9px; padding: 10px 12px; color: var(--tcs-ink); background: #fff;
}
.tcs-field textarea { min-height: 105px; resize: vertical; }
.tcs-field input[readonly] { color: #4f5c6c; background: var(--tcs-soft); }
.tcs-name-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 !important; padding: 0; }
.tcs-section-title { margin: 32px 0 14px !important; border-top: 1px solid var(--tcs-line); padding-top: 24px; }
.tcs-company-name-field.is-unavailable input { border: 2px solid #b42318; color: #7a271a; background: #fff4f2; }
.tcs-company-name-field.is-available input { border: 2px solid #16803c; color: #14532d; background: #f0fdf4; }
.tcs-field input:focus, .tcs-field select:focus, .tcs-field textarea:focus, .tcs-order button:focus-visible, .tcs-order summary:focus-visible {
  outline: 3px solid rgba(23, 105, 170, .2); outline-offset: 2px; border-color: var(--tcs-blue);
}

.tcs-choice-group, .tcs-address { margin: 0 0 28px; border: 0; padding: 0; }
.tcs-choice-group legend, .tcs-address legend { margin-bottom: 8px; font-weight: 800; }
.tcs-choice-cards, .tcs-role-grid { display: grid; gap: 10px; }
.tcs-choice-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tcs-choice-cards--primary { grid-template-columns: 1fr; margin-bottom: 20px; }
.tcs-choice-cards--primary .tcs-choice-card { border-width: 2px; padding: 16px; }
.tcs-choice-subheading { margin: 0 0 9px !important; color: var(--tcs-ink) !important; font-size: .9rem; font-weight: 800; }
.tcs-choice-card, .tcs-tick { display: flex; align-items: flex-start; gap: 10px; border: 1px solid var(--tcs-line); border-radius: 10px; padding: 12px 14px; background: #fff; cursor: pointer; }
.tcs-choice-card:has(input:checked), .tcs-tick:has(input:checked) { border-color: var(--tcs-blue); background: var(--tcs-blue-soft); box-shadow: inset 0 0 0 1px var(--tcs-blue); }
.tcs-tick.tcs-required-confirmation:has(input[type="checkbox"]:not(:checked)),
.tcs-tick.tcs-declaration:has(input[type="checkbox"]:not(:checked)),
.tcs-declaration > .tcs-tick:has(input[type="checkbox"]:not(:checked)) { border-color: var(--tcs-attention-line); background: var(--tcs-attention-soft); box-shadow: inset 0 0 0 1px rgba(183, 121, 31, .16); }
.tcs-tick.tcs-required-confirmation:has(input[type="checkbox"]:not(:checked))::after,
.tcs-tick.tcs-declaration:has(input[type="checkbox"]:not(:checked))::after,
.tcs-declaration > .tcs-tick:has(input[type="checkbox"]:not(:checked))::after { align-self: center; margin-left: auto; border-radius: 999px; padding: 3px 8px; color: var(--tcs-attention); background: rgba(214, 165, 58, .16); content: "Confirmation needed"; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.tcs-tick:has(input[type="checkbox"][aria-invalid="true"]) { border-color: var(--tcs-danger) !important; background: #fff1f0 !important; box-shadow: inset 0 0 0 1px var(--tcs-danger) !important; }
.tcs-tick:has(input[type="checkbox"][aria-invalid="true"])::after { color: var(--tcs-danger) !important; content: "Please confirm" !important; }
.tcs-choice-card input, .tcs-tick input { flex: 0 0 auto; width: 18px; height: 18px; margin: 3px 0 0; accent-color: var(--tcs-blue); }
.tcs-choice-card span, .tcs-tick span { min-width: 0; }
.tcs-choice-card strong { display: block; }
.tcs-choice-card small { display: block; margin-top: 2px; color: var(--tcs-muted); font-size: .86rem; }
.tcs-address { border-top: 1px solid var(--tcs-line); padding-top: 22px; }
.tcs-address .tcs-field-grid { margin-top: 16px; }

.tcs-postcode { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; border-radius: 11px; padding: 14px; background: var(--tcs-soft); }
.tcs-postcode > label:first-child { display: grid; gap: 5px; font-weight: 720; }
.tcs-postcode small { color: var(--tcs-muted); font-size: .86rem; font-weight: 400; }
.tcs-postcode input, .tcs-postcode select { width: 100%; min-height: 46px; border: 1px solid #aeb9c8; border-radius: 9px; padding: 10px 12px; color: var(--tcs-ink); background: #fff; }
.tcs-postcode__message, .tcs-postcode__results { grid-column: 1 / -1; }
.tcs-postcode__message { margin: 2px 0 0 !important; color: var(--tcs-muted) !important; font-size: .9rem; }
.tcs-postcode__results { display: grid; gap: 6px; font-weight: 720; }

.tcs-country-picker__add { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.tcs-country-picker__selected { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.tcs-country-picker__selected > span { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 6px 8px 6px 12px; color: var(--tcs-blue-dark); background: var(--tcs-blue-soft); font-size: .9rem; font-weight: 750; }
.tcs-country-picker__selected button { display: grid; width: 25px; height: 25px; border: 0; border-radius: 50%; padding: 0; place-items: center; color: var(--tcs-blue-dark); background: #fff; font-size: 1.1rem; line-height: 1; }
.tcs-sic-picker__selected { display: grid; gap: 8px; }
.tcs-sic-picker__selected > span { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; width: 100%; border-radius: 10px; padding: 9px 10px 9px 13px; }
.tcs-sic-picker__selected strong { margin-right: 2px; }
.tcs-sic-list { display: grid; gap: 7px; margin: 6px 0 0; padding: 0; list-style: none; }
.tcs-sic-list li { border-radius: 9px; padding: 9px 11px; color: var(--tcs-ink); background: var(--tcs-soft); }
.tcs-sic-list strong { color: var(--tcs-blue-dark); }

.tcs-registry { display: grid; gap: 14px; margin-bottom: 22px; border: 1px solid #c9d9e7; border-radius: 12px; padding: 16px; background: var(--tcs-blue-soft); }
.tcs-registry__search { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.tcs-registry__search > label:first-child, .tcs-registry__results { display: grid; gap: 5px; font-weight: 720; }
.tcs-registry__search small { color: var(--tcs-muted); font-size: .86rem; font-weight: 400; }
.tcs-registry__search input, .tcs-registry__search select { width: 100%; min-height: 46px; border: 1px solid #aeb9c8; border-radius: 9px; padding: 10px 12px; color: var(--tcs-ink); background: #fff; }
.tcs-registry__message, .tcs-registry__results { grid-column: 1 / -1; }
.tcs-registry__message { margin: 2px 0 0 !important; color: var(--tcs-muted) !important; font-size: .9rem; }

.tcs-info, .tcs-help-box { margin: 14px 0 24px; border: 1px solid #c9d9e7; border-radius: 10px; padding: 13px 15px; background: var(--tcs-blue-soft); }
.tcs-info p, .tcs-help-box p { margin-bottom: 6px; color: #33465b; }
.tcs-info p:last-child, .tcs-help-box p:last-child { margin-bottom: 0; }
.tcs-info a { color: var(--tcs-blue-dark); font-weight: 750; }
.tcs-help-box summary { color: var(--tcs-blue-dark); cursor: pointer; font-weight: 800; }
.tcs-help-box summary + p { margin-top: 8px; }
.tcs-psc-summary p { margin: 0; }
.tcs-psc-summary ul { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.tcs-psc-summary li { display: grid; gap: 2px; }
.tcs-psc-summary li span { color: var(--tcs-muted); font-size: .9rem; }
.tcs-psc-section { margin-top: 34px; border: 1px solid #bfd3e4; border-radius: 14px; padding: clamp(18px, 4vw, 26px); background: var(--tcs-blue-soft); }
.tcs-psc-section__heading { margin-bottom: 20px; }
.tcs-psc-section__heading h3 { margin: 3px 0 7px; }
.tcs-psc-section__heading > p:last-child { margin: 0; color: var(--tcs-muted); }
.tcs-psc-section .tcs-help-box { margin-bottom: 22px; }
.tcs-psc-section .tcs-choice-group { margin-bottom: 0; }

.tcs-price { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 26px; border-top: 1px solid var(--tcs-line); padding-top: 20px; }
.tcs-price span { color: var(--tcs-muted); font-weight: 700; }
.tcs-price strong { font-size: 1.3rem; }
.tcs-selected-office { margin-top: 16px; border: 1px solid #9dc8ad; border-radius: 12px; padding: 18px; background: #f0fdf4; }
.tcs-selected-office h3 { margin: 3px 0 7px; }
.tcs-selected-office address { color: #14532d; font-style: normal; font-weight: 800; }
.tcs-selected-office > p:last-child { margin: 8px 0 0; color: var(--tcs-muted); }

.tcs-inline-check { display: flex; align-items: center; gap: 12px; margin: 6px 0 38px; }
.tcs-inline-check p { margin: 0 !important; color: var(--tcs-muted); font-size: .9rem; }
.tcs-company-name-field.is-unavailable + .tcs-inline-check p { color: #9f241b; font-weight: 750; }
.tcs-company-name-field.is-available + .tcs-inline-check p { color: #176b35; font-weight: 750; }

.tcs-people { margin: 20px 0; }
.tcs-people__toolbar, .tcs-person-card, .tcs-person-editor__heading, .tcs-person-editor__actions, .tcs-order__actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tcs-people__toolbar p { margin: 0; font-size: .9rem; }
.tcs-people__toolbar-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.tcs-people__empty { margin-top: 14px; border: 1px dashed #b5c1d0; border-radius: 12px; padding: 28px; color: var(--tcs-muted); text-align: center; }
.tcs-people__list { display: grid; gap: 10px; margin-top: 14px; }
.tcs-person-card { border: 1px solid var(--tcs-line); border-radius: 12px; padding: 14px 16px; }
.tcs-person-card.is-incomplete { border-color: #e6a922; background: #fffaf0; }
.tcs-person-card p { margin: 0; font-size: .9rem; }
.tcs-person-card__actions { display: flex; gap: 8px; }
.tcs-person-editor { margin: 24px 0; border: 1px solid var(--tcs-line); border-radius: 14px; padding: clamp(16px, 4vw, 26px); background: var(--tcs-soft); }
.tcs-person-editor__heading { align-items: flex-start; margin-bottom: 22px; }
.tcs-person-editor__heading h3 { margin: 0; }
.tcs-person-editor__actions { justify-content: flex-end; margin-top: 22px; }
.tcs-person-confirmation { margin-top: 26px; }
.tcs-icon-button { display: grid; width: 44px; height: 44px; border: 0; padding: 0; place-items: center; color: var(--tcs-muted); background: transparent; font-size: 1.7rem; }
.tcs-ownership { margin: 24px 0; border: 1px solid var(--tcs-line); border-radius: 12px; padding: 18px; background: #fff; }
.tcs-ownership legend { padding: 0 5px; font-weight: 800; }
.tcs-ownership .tcs-field-grid { margin-bottom: 0; }
.tcs-idv { margin: 22px 0; border: 1px solid #c9d9e7; border-radius: 12px; padding: 18px; background: var(--tcs-blue-soft); }
.tcs-idv h4 { margin-bottom: 5px; }
.tcs-idv .tcs-field { margin: 14px 0 10px; }
.tcs-idv a { color: var(--tcs-blue-dark); font-size: .9rem; font-weight: 750; }

.tcs-button { min-height: 46px; border-radius: 9px; padding: 10px 18px; font-weight: 800; text-align: center; }
.tcs-order button.tcs-button--primary,
.tcs-order button.tcs-button--primary:visited { border: 1px solid var(--tcs-blue) !important; color: #fff !important; background: var(--tcs-blue) !important; }
.tcs-order button.tcs-button--primary:hover,
.tcs-order button.tcs-button--primary:focus,
.tcs-order button.tcs-button--primary:active { border-color: var(--tcs-blue-dark) !important; color: #fff !important; background: var(--tcs-blue-dark) !important; }
.tcs-order button.tcs-button--secondary,
.tcs-order button.tcs-button--secondary:visited { border: 1px solid #9eb6cb !important; color: var(--tcs-blue-dark) !important; background: #fff !important; }
.tcs-order button.tcs-button--secondary:hover,
.tcs-order button.tcs-button--secondary:focus,
.tcs-order button.tcs-button--secondary:active { border-color: var(--tcs-blue) !important; color: #fff !important; background: var(--tcs-blue) !important; }
.tcs-button--danger { border: 1px solid #efc5c2; color: var(--tcs-danger); background: #fff7f6; }
.tcs-button--small { min-height: 38px; padding: 7px 11px; font-size: .88rem; }
.tcs-button:disabled { cursor: wait; opacity: .65; }
.tcs-order__actions { margin-top: 30px; border-top: 1px solid var(--tcs-line); padding-top: 22px; }
.tcs-order__actions [data-next], .tcs-order__actions [data-submit] { margin-left: auto; }
.tcs-order__actions [data-service-next], .tcs-order__actions [data-service-submit] { margin-left: auto; }

.tcs-review { display: grid; gap: 14px; }
.tcs-review section { border: 1px solid var(--tcs-line); border-radius: 12px; padding: 18px; }
.tcs-review section > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tcs-review h3 { margin: 0; }
.tcs-review button { border: 0; padding: 5px; color: var(--tcs-blue-dark); background: transparent; font-weight: 750; text-decoration: underline; }
/* An inline text button used inside help text, e.g. overriding a derived answer. */
/* Text for screen readers only, so a short visible link can still name what it changes. */
.tcs-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.tcs-link-button { border: 0; padding: 0; color: var(--tcs-blue-dark); background: transparent; font-weight: 750; text-decoration: underline; cursor: pointer; }
.tcs-review dl { display: grid; grid-template-columns: minmax(120px, .45fr) 1fr; gap: 7px 18px; margin: 15px 0 0; }
.tcs-review dt { color: var(--tcs-muted); }
.tcs-review dd { margin: 0; overflow-wrap: anywhere; }
.tcs-review ul { display: grid; gap: 9px; margin: 14px 0 0; padding: 0; list-style: none; }
.tcs-review li { display: grid; gap: 2px; }
.tcs-review li span { color: var(--tcs-muted); font-size: .9rem; }
.tcs-review-psc { display: grid; grid-template-columns: minmax(120px, .45fr) 1fr; gap: 4px 18px; margin-top: 16px; padding: 14px 16px; border-radius: 10px; background: var(--tcs-soft); }
.tcs-review-psc strong { color: var(--tcs-muted); }
.tcs-review-psc span { font-weight: 750; text-transform: capitalize; }
.tcs-review-psc small { grid-column: 1 / -1; color: var(--tcs-muted); }
.tcs-review-people { display: grid; gap: 18px; margin-top: 24px; }
.tcs-review-person { padding: 18px; border: 1px solid var(--tcs-line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(18, 43, 68, .06); }
.tcs-review-person__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--tcs-line); }
.tcs-review-person__number { display: block; margin-bottom: 3px; color: var(--tcs-blue-dark); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tcs-review-person__type { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; color: var(--tcs-blue-dark); background: var(--tcs-soft); font-size: .82rem; font-weight: 750; }
.tcs-review-person h4 { margin: 0; font-size: 1.15rem; }
.tcs-review-person dl { margin-top: 14px; }
.tcs-declaration { margin-top: 24px; }
.tcs-order__success { text-align: center; }

.tcs-order [hidden] { display: none !important; }

@media (max-width: 680px) {
  .tcs-order { margin: 18px auto; }
  .tcs-order__progress li { font-size: 0; }
  .tcs-order__progress li span { font-size: .78rem; }
  .tcs-field-grid--two, .tcs-choice-cards--two { grid-template-columns: 1fr; }
  .tcs-name-fields { grid-template-columns: 1fr; }
  .tcs-postcode { grid-template-columns: 1fr; }
  .tcs-postcode .tcs-button { width: 100%; }
  .tcs-registry__search { grid-template-columns: 1fr; }
  .tcs-registry__search .tcs-button { width: 100%; }
  .tcs-country-picker__add { grid-template-columns: 1fr; }
  .tcs-country-picker__add .tcs-button { width: 100%; }
  .tcs-inline-check { align-items: stretch; flex-direction: column; }
  .tcs-people__toolbar, .tcs-person-card { align-items: stretch; flex-direction: column; }
  .tcs-people__toolbar-actions { align-items: stretch; flex-direction: column; }
  .tcs-people__toolbar .tcs-button { width: 100%; }
  .tcs-person-card__actions { width: 100%; }
  .tcs-person-card__actions .tcs-button { flex: 1; }
  .tcs-person-editor__actions { align-items: stretch; flex-direction: column-reverse; }
  .tcs-person-editor__actions .tcs-button { width: 100%; }
  .tcs-review dl { grid-template-columns: 1fr; gap: 2px; }
  .tcs-review dd + dt { margin-top: 8px; }
  .tcs-review-psc { grid-template-columns: 1fr; }
  .tcs-tick.tcs-required-confirmation::after, .tcs-tick.tcs-declaration::after, .tcs-declaration > .tcs-tick::after { white-space: normal; }
}

/* Service order journeys: restoration, bonds, trademark renewal, documents, identity verification. */
.tcs-fieldset { margin: 0 0 22px; padding: 18px; border: 1px solid var(--tcs-line); border-radius: 12px; }
.tcs-fieldset legend { padding: 0 6px; font-weight: 800; }
.tcs-tick-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; margin-top: 12px; }
.tcs-service .tcs-price { margin-top: 22px; padding: 14px 16px; border-radius: 10px; background: var(--tcs-blue-soft); font-weight: 750; }
.tcs-service .tcs-price:empty { display: none; }
.tcs-service__lookup { margin-bottom: 22px; }
