html {
  scroll-behavior: smooth;
}

body.apl-public-page {
  background: var(--apl-ui-color-page);
  color: var(--apl-ui-color-text-body);
  font-family: var(--apl-ui-font-family);
  font-size: var(--apl-ui-font-size-body);
  line-height: var(--apl-ui-line-relaxed);
  margin: var(--apl-ui-space-0);
}

.apl-public-page *,
.apl-public-page *::before,
.apl-public-page *::after {
  box-sizing: border-box;
}

.apl-public-page a {
  color: var(--apl-ui-color-brand-dark);
}

.apl-public-page a:hover,
.apl-public-page a:focus {
  color: var(--apl-ui-color-brand);
}

.apl-public-skip {
  background: var(--apl-ui-color-brand-dark);
  border-radius: var(--apl-ui-radius-md);
  color: var(--apl-ui-color-on-solid) !important;
  left: var(--apl-ui-space-3);
  padding: var(--apl-ui-space-2) var(--apl-ui-space-3);
  position: fixed;
  top: var(--apl-ui-space-3);
  transform: translateY(calc(-100% - var(--apl-ui-space-6)));
  z-index: var(--apl-ui-z-toast);
}

.apl-public-skip:focus {
  transform: translateY(var(--apl-ui-space-0));
}

.apl-public-shell {
  margin-inline: auto;
  max-width: var(--apl-ui-public-shell-max-width);
  width: calc(100% - (var(--apl-ui-space-6) * 2));
}

.apl-public-header {
  background: var(--apl-ui-color-surface);
  border-bottom: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  position: sticky;
  top: var(--apl-ui-space-0);
  z-index: var(--apl-ui-z-sticky);
}

.apl-public-header__inner {
  align-items: center;
  display: flex;
  gap: var(--apl-ui-space-4);
  justify-content: space-between;
  min-height: calc(var(--apl-ui-control-height-lg) + (var(--apl-ui-space-3) * 2));
}

.apl-public-brand {
  align-items: center;
  color: var(--apl-ui-color-text-strong) !important;
  display: inline-flex;
  gap: var(--apl-ui-space-2);
  min-width: var(--apl-ui-space-0);
  text-decoration: none;
}

.apl-public-brand__mark {
  align-items: center;
  background: var(--apl-ui-color-brand-surface);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-brand-border);
  border-radius: var(--apl-ui-radius-lg);
  color: var(--apl-ui-color-brand-dark);
  display: inline-flex;
  flex: 0 0 var(--apl-ui-public-brand-mark-size);
  font-size: var(--apl-ui-font-size-icon-xl);
  height: var(--apl-ui-public-brand-mark-size);
  justify-content: center;
  width: var(--apl-ui-public-brand-mark-size);
}

.apl-public-brand__mark img {
  display: block;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.apl-public-brand__copy strong,
.apl-public-brand__copy span {
  display: block;
}

.apl-public-brand__copy strong {
  font-size: var(--apl-ui-font-size-title);
  font-weight: var(--apl-ui-font-weight-bold);
}

.apl-public-brand__copy span {
  color: var(--apl-ui-color-text-muted);
  font-size: var(--apl-ui-font-size-caption);
}

.apl-public-nav,
.apl-public-footer nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--apl-ui-space-3);
}

.apl-public-nav > a:not(.apl-btn),
.apl-public-footer nav a {
  font-weight: var(--apl-ui-font-weight-semibold);
  text-decoration: none;
}

.apl-public-main {
  min-height: var(--apl-ui-public-hero-min-height);
}

.apl-public-hero {
  background: linear-gradient(135deg, var(--apl-ui-color-surface), var(--apl-ui-color-brand-surface));
  border-bottom: var(--apl-ui-border-width) solid var(--apl-ui-color-brand-border);
}

.apl-public-hero__grid {
  align-items: center;
  display: grid;
  gap: var(--apl-ui-space-6);
  grid-template-columns: minmax(var(--apl-ui-space-0), 1fr) minmax(var(--apl-ui-public-card-min), .72fr);
  min-height: var(--apl-ui-public-hero-min-height);
  padding-block: calc(var(--apl-ui-space-6) * 2);
}

.apl-public-hero__copy {
  max-width: var(--apl-ui-public-copy-width);
}

.apl-public-eyebrow {
  color: var(--apl-ui-color-brand-dark);
  font-size: var(--apl-ui-font-size-caption);
  font-weight: var(--apl-ui-font-weight-bold);
  letter-spacing: var(--apl-ui-letter-spacing-label);
  margin: var(--apl-ui-space-0) var(--apl-ui-space-0) var(--apl-ui-space-2);
  text-transform: uppercase;
}

.apl-public-hero h1,
.apl-public-document-hero h1 {
  color: var(--apl-ui-color-text-strong);
  font-size: var(--apl-ui-font-size-page-title);
  font-weight: var(--apl-ui-font-weight-bold);
  line-height: var(--apl-ui-line-tight);
  margin: var(--apl-ui-space-0);
}

.apl-public-lead {
  color: var(--apl-ui-color-text-body);
  font-size: var(--apl-ui-font-size-subtitle);
  line-height: var(--apl-ui-line-relaxed);
  margin: var(--apl-ui-space-3) var(--apl-ui-space-0) var(--apl-ui-space-0);
  max-width: var(--apl-ui-public-copy-width);
}

.apl-public-actions,
.apl-public-control__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--apl-ui-space-2);
  margin-top: var(--apl-ui-space-5);
}

.apl-public-flow {
  background: var(--apl-ui-color-surface);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  border-radius: var(--apl-ui-radius-card);
  box-shadow: var(--apl-ui-shadow-sm);
  display: grid;
  gap: var(--apl-ui-space-2);
  padding: var(--apl-ui-space-4);
}

.apl-public-flow > div {
  align-items: center;
  background: var(--apl-ui-color-surface-subtle);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-row-divider);
  border-radius: var(--apl-ui-radius-lg);
  display: flex;
  gap: var(--apl-ui-space-3);
  padding: var(--apl-ui-space-3);
}

.apl-public-flow__icon {
  align-items: center;
  background: var(--apl-ui-color-brand-surface);
  border-radius: var(--apl-ui-radius-md);
  color: var(--apl-ui-color-brand-dark);
  display: inline-flex;
  flex: 0 0 var(--apl-ui-public-flow-icon-size);
  font-size: var(--apl-ui-font-size-icon-lg);
  height: var(--apl-ui-public-flow-icon-size);
  justify-content: center;
  width: var(--apl-ui-public-flow-icon-size);
}

.apl-public-flow strong,
.apl-public-flow small {
  display: block;
}

.apl-public-flow strong {
  color: var(--apl-ui-color-text-strong);
  font-weight: var(--apl-ui-font-weight-semibold);
}

.apl-public-flow small {
  color: var(--apl-ui-color-text-muted);
  font-size: var(--apl-ui-font-size-caption);
  margin-top: var(--apl-ui-space-1);
}

.apl-public-flow__arrow {
  color: var(--apl-ui-color-brand);
  justify-self: center;
  transform: rotate(90deg);
}

.apl-public-section {
  background: var(--apl-ui-color-surface);
  padding-block: calc(var(--apl-ui-space-6) * 2);
}

.apl-public-section--soft {
  background: var(--apl-ui-color-surface-soft);
  border-block: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
}

.apl-public-section__head {
  max-width: var(--apl-ui-public-copy-width);
}

.apl-public-section h2,
.apl-public-control h2,
.apl-public-split h2 {
  color: var(--apl-ui-color-text-strong);
  font-size: var(--apl-ui-font-size-section-title);
  font-weight: var(--apl-ui-font-weight-bold);
  line-height: var(--apl-ui-line-tight);
  margin: var(--apl-ui-space-0);
}

.apl-public-section__head > p:last-child,
.apl-public-control > div > p:last-child,
.apl-public-split > div > p {
  color: var(--apl-ui-color-text-muted);
  margin: var(--apl-ui-space-2) var(--apl-ui-space-0) var(--apl-ui-space-0);
}

.apl-public-card-grid {
  display: grid;
  gap: var(--apl-ui-space-3);
  grid-template-columns: repeat(auto-fit, minmax(var(--apl-ui-public-card-min), 1fr));
  margin-top: var(--apl-ui-space-5);
}

.apl-public-card {
  background: var(--apl-ui-color-surface-subtle);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  border-radius: var(--apl-ui-radius-lg);
  padding: var(--apl-ui-space-4);
}

.apl-public-card__icon {
  align-items: center;
  background: var(--apl-ui-color-brand-surface);
  border-radius: var(--apl-ui-radius-md);
  color: var(--apl-ui-color-brand-dark);
  display: inline-flex;
  font-size: var(--apl-ui-font-size-icon-lg);
  height: var(--apl-ui-public-flow-icon-size);
  justify-content: center;
  width: var(--apl-ui-public-flow-icon-size);
}

.apl-public-card h3,
.apl-public-assurance h3 {
  color: var(--apl-ui-color-text-strong);
  font-size: var(--apl-ui-font-size-title);
  font-weight: var(--apl-ui-font-weight-bold);
  margin: var(--apl-ui-space-3) var(--apl-ui-space-0) var(--apl-ui-space-0);
}

.apl-public-card p,
.apl-public-assurance p {
  color: var(--apl-ui-color-text-muted);
  margin: var(--apl-ui-space-2) var(--apl-ui-space-0) var(--apl-ui-space-0);
}

.apl-public-split {
  align-items: start;
  display: grid;
  gap: var(--apl-ui-space-6);
  grid-template-columns: minmax(var(--apl-ui-space-0), 1fr) minmax(var(--apl-ui-public-card-min), .7fr);
}

.apl-public-checklist {
  display: grid;
  gap: var(--apl-ui-space-2);
  list-style: none;
  margin: var(--apl-ui-space-4) var(--apl-ui-space-0) var(--apl-ui-space-0);
  padding: var(--apl-ui-space-0);
}

.apl-public-checklist li {
  align-items: flex-start;
  display: flex;
  gap: var(--apl-ui-space-2);
}

.apl-public-checklist i {
  color: var(--apl-ui-color-success-dark);
  margin-top: var(--apl-ui-space-1);
}

.apl-public-assurance {
  align-items: flex-start;
  background: var(--apl-ui-color-brand-surface);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-brand-border);
  border-radius: var(--apl-ui-radius-card);
  display: flex;
  gap: var(--apl-ui-space-3);
  padding: var(--apl-ui-space-4);
}

.apl-public-assurance__mark {
  align-items: center;
  background: var(--apl-ui-color-surface);
  border-radius: var(--apl-ui-radius-md);
  color: var(--apl-ui-color-brand-dark);
  display: inline-flex;
  flex: 0 0 var(--apl-ui-public-flow-icon-size);
  font-size: var(--apl-ui-font-size-icon-lg);
  height: var(--apl-ui-public-flow-icon-size);
  justify-content: center;
  width: var(--apl-ui-public-flow-icon-size);
}

.apl-public-assurance h3 {
  margin-top: var(--apl-ui-space-0);
}

.apl-public-assurance a {
  display: inline-block;
  font-weight: var(--apl-ui-font-weight-semibold);
  margin-top: var(--apl-ui-space-3);
}

.apl-public-control {
  align-items: center;
  display: flex;
  gap: var(--apl-ui-space-6);
  justify-content: space-between;
}

.apl-public-control > div:first-child {
  max-width: var(--apl-ui-public-copy-width);
}

.apl-public-control__actions {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin-top: var(--apl-ui-space-0);
}

.apl-public-disclosure {
  background: var(--apl-ui-color-brand-dark);
  color: var(--apl-ui-color-on-solid);
  padding-block: var(--apl-ui-space-4);
}

.apl-public-disclosure p {
  margin: var(--apl-ui-space-0);
}

.apl-public-disclosure a {
  color: var(--apl-ui-color-accent);
  font-weight: var(--apl-ui-font-weight-semibold);
}

.apl-public-document-hero {
  background: var(--apl-ui-color-surface);
  border-bottom: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  padding-block: calc(var(--apl-ui-space-6) * 2);
}

.apl-public-document-hero p {
  color: var(--apl-ui-color-text-muted);
  margin: var(--apl-ui-space-3) var(--apl-ui-space-0) var(--apl-ui-space-0);
  max-width: var(--apl-ui-public-copy-width);
}

.apl-public-document-hero span {
  color: var(--apl-ui-color-text-subtle);
  display: inline-block;
  font-size: var(--apl-ui-font-size-caption);
  margin-top: var(--apl-ui-space-3);
}

.apl-public-document-layout {
  align-items: start;
  display: grid;
  gap: var(--apl-ui-space-6);
  grid-template-columns: var(--apl-ui-public-nav-width) minmax(var(--apl-ui-space-0), var(--apl-ui-public-document-width));
  justify-content: center;
  padding-block: calc(var(--apl-ui-space-6) * 2);
}

.apl-public-document-nav {
  background: var(--apl-ui-color-surface);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  border-radius: var(--apl-ui-radius-lg);
  display: grid;
  gap: var(--apl-ui-space-1);
  padding: var(--apl-ui-space-3);
  position: sticky;
  top: var(--apl-ui-public-sticky-offset);
}

.apl-public-document-nav strong {
  color: var(--apl-ui-color-text-strong);
  font-weight: var(--apl-ui-font-weight-bold);
  padding: var(--apl-ui-space-2);
}

.apl-public-document-nav a {
  border-radius: var(--apl-ui-radius-md);
  color: var(--apl-ui-color-text-muted);
  padding: var(--apl-ui-space-2);
  text-decoration: none;
}

.apl-public-document-nav a:hover,
.apl-public-document-nav a:focus {
  background: var(--apl-ui-color-brand-surface);
  color: var(--apl-ui-color-brand-dark);
}

.apl-public-document {
  background: var(--apl-ui-color-surface);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  border-radius: var(--apl-ui-radius-card);
  box-shadow: var(--apl-ui-shadow-sm);
  max-width: var(--apl-ui-public-document-width);
  padding: var(--apl-ui-space-6);
}

.apl-public-document section {
  border-bottom: var(--apl-ui-border-width) solid var(--apl-ui-color-row-divider);
  scroll-margin-top: var(--apl-ui-public-sticky-offset);
  padding-block: var(--apl-ui-space-5);
}

.apl-public-document section:first-child {
  padding-top: var(--apl-ui-space-0);
}

.apl-public-document section:last-child {
  border-bottom: var(--apl-ui-space-0);
  padding-bottom: var(--apl-ui-space-0);
}

.apl-public-document h2 {
  color: var(--apl-ui-color-text-strong);
  font-size: var(--apl-ui-font-size-title-lg);
  font-weight: var(--apl-ui-font-weight-bold);
  margin: var(--apl-ui-space-0);
}

.apl-public-document p,
.apl-public-document ul {
  margin-bottom: var(--apl-ui-space-0);
  margin-top: var(--apl-ui-space-3);
}

.apl-public-document li + li {
  margin-top: var(--apl-ui-space-2);
}

.apl-public-legal-notice {
  background: var(--apl-ui-color-info-soft);
  border: var(--apl-ui-border-width) solid var(--apl-ui-color-border-soft);
  border-radius: var(--apl-ui-radius-lg);
  color: var(--apl-ui-color-info-dark);
  margin-top: var(--apl-ui-space-4);
  padding: var(--apl-ui-space-3);
}

.apl-public-legal-notice strong {
  font-weight: var(--apl-ui-font-weight-bold);
}

.apl-public-legal-notice p {
  margin-top: var(--apl-ui-space-2);
}

.apl-public-footer {
  background: var(--apl-ui-color-surface);
  border-top: var(--apl-ui-border-width) solid var(--apl-ui-color-border-muted);
  color: var(--apl-ui-color-text-muted);
  padding-block: var(--apl-ui-space-5);
}

.apl-public-footer__inner {
  align-items: center;
  display: flex;
  gap: var(--apl-ui-space-4);
  justify-content: space-between;
}

.apl-public-footer strong,
.apl-public-footer span {
  display: block;
}

.apl-public-footer strong {
  color: var(--apl-ui-color-text-strong);
  font-weight: var(--apl-ui-font-weight-semibold);
}

.apl-public-footer span {
  font-size: var(--apl-ui-font-size-caption);
  margin-top: var(--apl-ui-space-1);
}

@media (max-width: 820px) {
  .apl-public-header {
    position: static;
  }

  .apl-public-header__inner,
  .apl-public-footer__inner,
  .apl-public-control {
    align-items: flex-start;
    flex-direction: column;
    padding-block: var(--apl-ui-space-3);
  }

  .apl-public-nav {
    width: 100%;
  }

  .apl-public-hero__grid,
  .apl-public-split,
  .apl-public-document-layout {
    grid-template-columns: minmax(var(--apl-ui-space-0), 1fr);
  }

  .apl-public-document-nav {
    display: none;
  }

  .apl-public-control__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .apl-public-shell {
    width: calc(100% - (var(--apl-ui-space-4) * 2));
  }

  .apl-public-brand__copy span,
  .apl-public-nav > a:not(.apl-btn) {
    display: none;
  }

  .apl-public-nav {
    justify-content: flex-end;
    width: auto;
  }

  .apl-public-hero__grid,
  .apl-public-section,
  .apl-public-document-hero,
  .apl-public-document-layout {
    padding-block: var(--apl-ui-space-6);
  }

  .apl-public-document {
    padding: var(--apl-ui-space-4);
  }

  .apl-public-actions .apl-btn,
  .apl-public-control__actions .apl-btn {
    width: 100%;
  }
}
