/* LC Public UI base. Site overrides: .site-area .lc-public-ui { --lc-public-… } */
:where(.lc-public-ui) {
  --lc-public-color-ink: #172C3F;
  --lc-public-color-primary: #274E70;
  --lc-public-color-primary-hover: #082C3C;
  --lc-public-color-accent: #F7B400;
  --lc-public-color-accent-hover: #E5A600;
  --lc-public-color-surface: #FFFFFF;
  --lc-public-color-surface-secondary: #F1F1F1;
  --lc-public-color-muted: #52687B;
  --lc-public-color-border: #71859A;
  --lc-public-color-error: #A12622;
  --lc-public-color-error-surface: #FFF2F0;
  --lc-public-color-success: #21643A;
  --lc-public-color-focus: #082C3C;
  --lc-public-color-focus-gap: #FFFFFF;
  --lc-public-font-family: inherit;
  --lc-public-content-width: 72rem;
  --lc-public-radius: 0.5rem;
  --lc-public-space: 1rem;
  --lc-public-scroll-offset: 12rem;
}

.lc-public-ui {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--lc-public-content-width);
  min-width: 0;
  margin-inline: auto;
  padding: var(--lc-public-space);
  color: var(--lc-public-color-ink);
  background: var(--lc-public-color-surface);
  font-family: var(--lc-public-font-family);
  font-size: 1rem;
  line-height: 1.5;
  text-align: start;
  overflow-wrap: anywhere;
}

.lc-public-ui.lc-public-ui--full-width {
  max-width: none;
}

.lc-public-ui *, .lc-public-ui *::before, .lc-public-ui *::after { box-sizing: border-box; }
.lc-public-ui .lc-public-scroll-target { scroll-margin-block-start: var(--lc-public-scroll-offset); }
.lc-public-ui .lc-public-header { margin: 0 0 var(--lc-public-space); }
.lc-public-ui .lc-public-title { margin: 0 0 0.5rem; padding: 0; color: var(--lc-public-color-ink); font: inherit; font-size: 1.75rem; font-weight: 700; line-height: 1.25; }
.lc-public-ui .lc-public-muted { margin: 0; color: var(--lc-public-color-muted); font: inherit; }
.lc-public-ui .lc-public-card { min-width: 0; padding: var(--lc-public-space); margin-block: var(--lc-public-space); border: 1px solid var(--lc-public-color-border); border-radius: var(--lc-public-radius); background: var(--lc-public-color-surface); }
.lc-public-ui .lc-public-form { margin: 0; }
/* Opt-in private photograph: native disclosure enlarges without cropping. */
.lc-public-ui .lc-public-document [hidden] { display: none; }
.lc-public-ui .lc-public-document > details { margin-block: var(--lc-public-space); }
.lc-public-ui .lc-public-private-photo { min-width: 0; margin-block: var(--lc-public-space); }
.lc-public-ui .lc-public-private-photo summary { cursor: zoom-in; min-height: 44px; }
.lc-public-ui .lc-public-private-photo[open] summary { cursor: zoom-out; }
.lc-public-ui .lc-public-private-photo img { display: block; width: 100%; max-width: 20rem; height: auto; object-fit: contain; }
.lc-public-ui .lc-public-private-photo[open] img { max-width: 100%; }
.lc-public-ui :is(.lc-public-private-photo, .lc-public-document-update) > summary:focus-visible { outline: 3px solid var(--lc-public-color-focus); outline-offset: 3px; }
.lc-public-ui .lc-public-document-update:target > summary { outline: 3px solid var(--lc-public-color-focus); }
/* Form layout opt-in: available width determines one or at most two columns. */
.lc-public-ui .lc-public-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(18rem, calc((100% - var(--lc-public-space)) / 2))), 1fr));
  gap: var(--lc-public-space); min-width: 0;
}
.lc-public-ui .lc-public-form-grid > .lc-public-field--full { grid-column: 1 / -1; }
.lc-public-ui .lc-public-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--lc-public-space); min-width: 0; margin: 0 0 var(--lc-public-space); padding: 0; border: 0; }
.lc-public-ui .lc-public-field { display: grid; align-content: start; gap: 0.5rem; min-width: 0; }
.lc-public-ui .lc-public-label { display: block; margin: 0; color: var(--lc-public-color-ink); font: inherit; font-weight: 600; }
.lc-public-ui .lc-public-input, .lc-public-ui .lc-public-select {
  display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 44px;
  margin: 0; padding: 0.65rem 0.75rem; border: 1px solid var(--lc-public-color-border);
  border-radius: var(--lc-public-radius); background: var(--lc-public-color-surface);
  color: var(--lc-public-color-ink); font: inherit; line-height: 1.5; box-shadow: none;
  appearance: auto;
}
.lc-public-ui .lc-public-input::placeholder { color: var(--lc-public-color-muted); opacity: 1; }
/* Native choices opt-in; keep long labels aligned beside the control. */
.lc-public-ui .lc-public-choices { display: grid; gap: calc(var(--lc-public-space) / 2); min-width: 0; }
.lc-public-ui label.lc-public-choice {
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; justify-content: start;
  gap: calc(var(--lc-public-space) / 2); min-width: 0; min-height: 44px;
  margin: 0; padding: 0; color: var(--lc-public-color-ink); font: inherit; line-height: 1.5;
  text-align: left; white-space: normal; cursor: pointer;
}
.lc-public-ui label.lc-public-choice > input:is([type="checkbox"], [type="radio"]) {
  display: block; position: static; float: none; align-self: start;
  width: auto; max-width: none; min-width: 0; height: auto; min-height: 0;
  margin: 0.25em 0 0; padding: 0; appearance: auto;
}
.lc-public-ui label.lc-public-choice > span { min-width: 0; text-align: left; }
.lc-public-ui [aria-invalid="true"] { border-color: var(--lc-public-color-error); }
.lc-public-ui .lc-public-field-error { color: var(--lc-public-color-error); margin: 0; }
.lc-public-ui .lc-public-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.lc-public-ui .lc-public-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  width: auto; max-width: 100%; min-height: 44px; margin: 0; padding: 0.65rem 1rem;
  border: 2px solid var(--lc-public-color-primary); border-radius: var(--lc-public-radius);
  background: var(--lc-public-color-surface); color: var(--lc-public-color-primary);
  font: inherit; font-weight: 700; line-height: 1.5; text-decoration: none; text-transform: none;
  letter-spacing: normal; white-space: normal; cursor: pointer; box-shadow: none; text-shadow: none;
}
.lc-public-ui .lc-public-button:is(:link, :visited, :hover, :active, :focus, :focus-visible, [aria-current], [aria-pressed]) { text-decoration: none; }
.lc-public-ui .lc-public-button::before, .lc-public-ui .lc-public-button::after { content: none; }
.lc-public-ui .lc-public-button:hover { background: var(--lc-public-color-surface-secondary); color: var(--lc-public-color-primary-hover); }
.lc-public-ui .lc-public-button--primary { background: var(--lc-public-color-primary); color: var(--lc-public-color-surface); }
.lc-public-ui .lc-public-button--primary:hover { background: var(--lc-public-color-primary-hover); color: var(--lc-public-color-surface); }
.lc-public-ui .lc-public-button--accent { background: var(--lc-public-color-accent); border-color: var(--lc-public-color-ink); color: var(--lc-public-color-ink); }
.lc-public-ui .lc-public-button--accent:hover { background: var(--lc-public-color-accent-hover); color: var(--lc-public-color-ink); }
.lc-public-ui .lc-public-button:disabled { cursor: not-allowed; border-style: dashed; }
.lc-public-ui .lc-public-link, .lc-public-ui .lc-public-link:visited { color: var(--lc-public-color-primary); text-decoration: underline; text-underline-offset: 0.15em; }
.lc-public-ui .lc-public-link:hover { color: var(--lc-public-color-primary-hover); }
.lc-public-ui .lc-public-alert, .lc-public-ui .lc-public-empty { margin-block: var(--lc-public-space); padding: var(--lc-public-space); border: 1px solid var(--lc-public-color-primary); border-radius: var(--lc-public-radius); background: var(--lc-public-color-surface-secondary); color: var(--lc-public-color-ink); }
.lc-public-ui .lc-public-alert--error { border-color: var(--lc-public-color-error); color: var(--lc-public-color-error); background: var(--lc-public-color-error-surface); }
.lc-public-ui .lc-public-alert--success { border-color: var(--lc-public-color-success); color: var(--lc-public-color-success); background: var(--lc-public-color-surface); }
.lc-public-ui .lc-public-table-wrap { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; margin-block: var(--lc-public-space); }
.lc-public-ui .lc-public-table { display: table; width: 100%; margin: 0; border-collapse: collapse; border: 1px solid var(--lc-public-color-border); background: var(--lc-public-color-surface); color: var(--lc-public-color-ink); font: inherit; text-align: start; overflow-wrap: normal; }
.lc-public-ui .lc-public-table th, .lc-public-ui .lc-public-table td { padding: 0.75rem; border: 1px solid var(--lc-public-color-border); color: var(--lc-public-color-ink); background: var(--lc-public-color-surface); text-align: start; vertical-align: top; }
.lc-public-ui .lc-public-table th { background: var(--lc-public-color-surface-secondary); font-weight: 700; }
.lc-public-ui .lc-public-table caption { padding: 0.75rem; color: var(--lc-public-color-ink); font-weight: 600; text-align: start; }
.lc-public-ui :is(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--lc-public-color-focus); outline-offset: 3px; box-shadow: 0 0 0 3px var(--lc-public-color-focus-gap); }

/* Selection and keyboard focus remain visible simultaneously. */
.lc-public-ui .lc-public-button:is([aria-current]:not([aria-current="false"]), [aria-pressed="true"]) { box-shadow: inset 0 0 0 2px currentColor; }
.lc-public-ui .lc-public-button:is([aria-current]:not([aria-current="false"]), [aria-pressed="true"]):focus-visible { box-shadow: inset 0 0 0 2px currentColor, 0 0 0 3px var(--lc-public-color-focus-gap); }

@media (max-width: 40rem) {
  .lc-public-ui .lc-public-actions { flex-direction: column; align-items: stretch; }
  .lc-public-ui .lc-public-button { width: 100%; }
}

/* Search composition opt-in; existing base components remain unchanged. */
.lc-public-ui .lc-public-search { display: grid; gap: var(--lc-public-space); min-width: 0; container: lc-public-search / inline-size; }
.lc-public-ui .lc-public-search .lc-public-search-panel { margin: 0; background: var(--lc-public-color-surface-secondary); }
.lc-public-ui .lc-public-search .lc-public-filters { align-items: end; }
.lc-public-ui .lc-public-search :is(.lc-public-input, .lc-public-select) { border-width: 2px; }
.lc-public-ui .lc-public-search :is(.lc-public-input, .lc-public-select, .lc-public-button) { min-height: max(44px, calc(1.5em + 1.3rem + 4px)); }
.lc-public-ui .lc-public-search .lc-public-search-panel .lc-public-actions { flex-direction: row; align-items: center; }
.lc-public-ui .lc-public-search .lc-public-button { width: auto; }
.lc-public-ui .lc-public-search .lc-public-search-options { display: flex; flex-wrap: wrap; gap: calc(var(--lc-public-space) / 2); min-width: 0; }
.lc-public-ui .lc-public-search .lc-public-search-options [aria-current="page"],
.lc-public-ui .lc-public-search .lc-public-search-options [aria-pressed="true"] {
  background: var(--lc-public-color-primary); color: var(--lc-public-color-surface);
}
.lc-public-ui .lc-public-search .lc-public-search-options :is([aria-current="page"], [aria-pressed="true"]):hover { background: var(--lc-public-color-primary-hover); }
.lc-public-ui .lc-public-search .lc-public-search-results {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: calc(var(--lc-public-space) / 2) var(--lc-public-space); min-width: 0;
}
.lc-public-ui .lc-public-search .lc-public-search-results > .lc-public-title { margin: 0; }
@container lc-public-search (max-width: 32rem) {
  .lc-public-ui .lc-public-search .lc-public-search-panel .lc-public-actions { flex-direction: column; align-items: stretch; }
  .lc-public-ui .lc-public-search .lc-public-actions > .lc-public-button { width: 100%; }
}

/* Shared photographic hero; legacy Services selectors are compatibility aliases. */
.lc-public-ui:has(> .lc-public-hero) { container-type: inline-size; }
.lc-public-ui .lc-public-hero,
.lc-public-ui.lc-public-directory.lc-public-directory--services .lc-public-directory-hero {
  display: flex; flex-wrap: wrap; align-items: center; gap: calc(2 * var(--lc-public-space)); min-width: 0; margin: 0 0 calc(2 * var(--lc-public-space)); padding: clamp(.75rem, 2cqi, 1.5rem) clamp(1rem, 4cqi, 3rem); border-block-end: .375rem solid var(--lc-public-color-accent); border-radius: var(--lc-public-radius); background: var(--lc-public-color-primary-hover); color: var(--lc-public-color-surface);
}
.lc-public-ui .lc-public-hero > .lc-public-hero__text,
.lc-public-ui.lc-public-directory.lc-public-directory--services .lc-public-directory-hero > .lc-public-directory-intro {
  display: grid; gap: var(--lc-public-space); flex: 2 1 18rem;
}
.lc-public-ui .lc-public-hero .lc-public-hero__title,
.lc-public-ui.lc-public-directory.lc-public-directory--services .lc-public-directory-hero .lc-public-title {
  margin: 0; color: var(--lc-public-color-surface); font-size: clamp(2rem, 4.5cqi, 3.125rem); line-height: 1.15;
}
.lc-public-ui .lc-public-hero .lc-public-hero__description,
.lc-public-ui.lc-public-directory.lc-public-directory--services .lc-public-directory-hero p {
  max-width: 46rem; margin: 0; padding: 0; color: var(--lc-public-color-surface-secondary); font-size: 1.125rem; line-height: 1.65;
}
.lc-public-ui .lc-public-hero > .lc-public-hero__image,
.lc-public-ui.lc-public-directory.lc-public-directory--services .lc-public-directory-hero-image {
  display: block; flex: 0 1 20rem; width: 20rem; max-width: 100%; min-width: 0; height: auto; aspect-ratio: 8 / 5; object-fit: cover; border-radius: var(--lc-public-radius);
}

.lc-public-ui .lc-public-hero > .lc-public-hero__text { min-width: 0; }
.lc-public-ui .lc-public-hero .lc-public-hero__title { padding: 0; font-family: inherit; font-weight: 700; }

/* Informational detail opt-in: editorial rhythm without individual surfaces. */
.lc-public-ui .lc-public-detail-sections { display: grid; gap: calc(2 * var(--lc-public-space)); min-width: 0; }
.lc-public-ui .lc-public-detail-section { display: grid; align-content: start; gap: calc(.75 * var(--lc-public-space)); min-width: 0; margin: 0; padding: 0; }
.lc-public-ui .lc-public-detail-section > .lc-public-detail-section__title { margin: 0; padding: 0; color: var(--lc-public-color-ink); font: inherit; font-size: 1.5rem; font-weight: 700; line-height: 1.25; }
.lc-public-ui .lc-public-detail-section > .lc-public-detail-section__text { margin: 0; padding: 0; font: inherit; }
.lc-public-ui .lc-public-detail-dates {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(14rem, calc((100% - var(--lc-public-space)) / 2))), 1fr));
  gap: calc(.5 * var(--lc-public-space)) var(--lc-public-space); min-width: 0; margin: 0; padding: 0;
}
.lc-public-ui .lc-public-detail-dates > div { display: grid; align-content: start; gap: calc(.25 * var(--lc-public-space)); min-width: 0; }
.lc-public-ui .lc-public-detail-dates > div > dt { margin: 0; padding: 0; color: var(--lc-public-color-muted); font: inherit; font-weight: 600; }
.lc-public-ui .lc-public-detail-dates > div > dd { min-width: 0; margin: 0; padding: 0; font: inherit; }

/* Identity opt-in: citizen access, registration and native-key password forms. */
.lc-public-ui.lc-public-identity { max-width: 32rem; margin-block: calc(2 * var(--lc-public-space)); padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--lc-public-color-border); border-block-start: .25rem solid var(--lc-public-color-primary); border-radius: var(--lc-public-radius); }
.lc-public-ui.lc-public-identity--registration { max-width: 48rem; padding: var(--lc-public-space); }
.lc-public-ui.lc-public-identity .lc-public-header { padding-block-end: var(--lc-public-space); }
.lc-public-ui.lc-public-identity .lc-public-form { display: grid; gap: calc(1.25 * var(--lc-public-space)); }
.lc-public-ui.lc-public-identity .lc-public-form.lc-public-card { padding: 0; border: 0; margin: 0; }
.lc-public-ui.lc-public-identity .lc-public-label > .lc-public-input { margin-block-start: .5rem; }
.lc-public-ui.lc-public-identity .lc-public-input { min-height: 48px; }
.lc-public-ui.lc-public-identity .lc-public-form > .lc-public-actions > .lc-public-button { width: 100%; }
.lc-public-ui.lc-public-identity .lc-public-identity-section { min-width: 0; margin: 0; padding: var(--lc-public-space) 0; border: 0; border-block-start: 1px solid var(--lc-public-color-border); }
.lc-public-ui.lc-public-identity .lc-public-identity-section > legend { padding: 0 .5rem 0 0; margin-block-end: .5rem; }
.lc-public-ui.lc-public-identity details.lc-public-identity-section { padding: var(--lc-public-space); background: var(--lc-public-color-surface-secondary); border: 0; border-radius: var(--lc-public-radius); }
.lc-public-ui.lc-public-identity summary { display: list-item; min-height: 44px; padding-block: .5rem; cursor: pointer; font-weight: 600; color: var(--lc-public-color-primary); }
.lc-public-ui.lc-public-identity summary:focus-visible { outline: 3px solid var(--lc-public-color-focus); outline-offset: 3px; }
.lc-public-ui.lc-public-identity .lc-public-choices label { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-weight: 400; }
.lc-public-ui.lc-public-identity .lc-public-link { display: inline-flex; align-items: center; min-height: 44px; }
.lc-public-ui.lc-public-identity > .lc-public-actions { margin-block-start: var(--lc-public-space); }
.lc-public-ui.lc-public-identity [hidden] { display: none; }
