/* Public pages extend the accepted pilot tokens and blue visual language. */
.preview-guide-stack { display:grid; gap:24px; min-width:0; }
.preview-guide-stack > * { min-width:0; }
.public-header {
  gap:24px;
  padding-bottom:12px
}
.public-header .brand {
  flex-shrink:0
}
.public-header nav {
  gap:18px
}
.public-header .public-calculator {
  white-space:nowrap;
  font-size:14px
}
.public-mobile-menu {
  display:none
}
.customer-navigation {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:24px;
  padding-bottom:18px;
  font-size:13px
}
.customer-navigation a {
  padding:8px 0;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  color:var(--muted)
}
.customer-navigation a[aria-current] {
  color:var(--accent);
  font-weight:700
}
.public-footer {
  gap:24px;
  align-items:flex-start
}
.public-footer p {
  margin:8px 0
}
.public-footer nav {
  display:flex;
  gap:22px;
  flex-wrap:wrap
}
.public-footer a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.public-content {
  padding:0 0 20px
}
.breadcrumbs {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:13px;
  color:var(--muted);
  margin:26px 0
}
.breadcrumbs a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.web-hero {
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:48px;
  align-items:center;
  padding:56px 0 36px
}
.web-hero h1,.web-page-intro h1 {
  font-size:clamp(40px,5.8vw,76px);
  line-height:1.03;
  letter-spacing:-.055em;
  margin:18px 0 24px;
  max-width:900px
}
.web-hero .lead {
  max-width:540px
}
.web-actions {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:26px
}
.web-actions .button {
  margin:0
}
.web-hero-art {
  min-height:450px;
  border-radius:28px;
  background:#1a80b6 url('/static/fluid-blue.svg') center/cover;
  position:relative;
  padding:40px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  color:white
}
.web-hero-art>span:first-child {
  font-size:clamp(30px,3.7vw,52px);
  font-weight:750;
  line-height:1.05;
  letter-spacing:-.04em
}
.hero-coordinate {
  font-size:12px;
  font-weight:650;
  letter-spacing:.12em
}
.web-section {
  margin-top:64px
}
.web-section-heading {
  margin-bottom:28px
}
.web-section-heading h2,.web-callout h2,.web-material h2 {
  font-size:clamp(28px,3.4vw,42px);
  line-height:1.12;
  letter-spacing:-.04em
}
.web-grid {
  display:grid;
  gap:22px
}
.web-grid.two {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.web-grid.three {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.web-grid p {
  line-height:1.7
}
.entry-card {
  position:relative;
  padding-top:30px
}
.entry-card h3 {
  font-size:28px;
  letter-spacing:-.03em;
  margin:16px 0
}
.web-number {
  font-size:13px;
  font-weight:750;
  color:var(--accent)
}
.entry-card .text-link,.technology-card .text-link {
  margin-top:14px;
  display:inline-flex;
  min-height:44px;
  align-items:center
}
.web-material {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
  padding:36px 0
}
.web-material p {
  max-width:550px
}
.material-labels {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}
.material-labels>span {
  padding:24px;
  border-top:1px solid var(--line);
  font-size:32px;
  font-weight:750;
  letter-spacing:-.04em
}
.material-labels small {
  display:block;
  margin-top:5px;
  font-size:14px;
  font-weight:450;
  letter-spacing:0;
  color:var(--muted)
}
.web-callout {
  background:#e8f4fb;
  border:1px solid #bbdcec;
  border-radius:24px;
  padding:32px;
  margin:60px 0 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px
}
.web-callout h2 {
  margin:8px 0 16px
}
.web-callout p {
  max-width:650px
}
.web-page-intro {
  padding:18px 0 38px
}
.web-page-intro .lead {
  max-width:750px
}
.technology-card h2 {
  font-size:36px;
  margin:14px 0
}
.technology-card .section-heading {
  align-items:flex-start;
  gap:12px;
  flex-wrap:wrap
}
.web-source-note {
  max-width:860px;
  margin:22px 0
}
.web-steps {
  list-style:none;
  counter-reset:steps;
  padding:0;
  margin:28px 0
}
.web-steps li {
  position:relative;
  padding:0 0 24px 43px;
  counter-increment:steps
}
.web-steps li:before {
  content:counter(steps,decimal-leading-zero);
  position:absolute;
  left:0;
  top:3px;
  font-size:13px;
  color:var(--accent);
  font-weight:750
}
.web-steps h3 {
  margin:0 0 7px;
  font-size:18px
}
.web-steps p {
  margin:0
}
.web-note {
  padding:24px;
  background:#e8f4fb;
  border-radius:18px;
  margin:26px 0;
  overflow-wrap:anywhere
}
.web-note h3 {
  margin-top:0
}
.limit-card h2 {
  font-size:42px;
  letter-spacing:-.04em;
  margin:14px 0
}
.web-contact-grid {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,.85fr);
  gap:26px;
  align-items:start
}
.contact-aside {
  min-width:0
}
.contact-link {
  display:block;
  padding:12px 0;
  min-height:44px;
  font-weight:650;
  overflow-wrap:anywhere
}
.contact-aside a {
  overflow-wrap:anywhere
}
.contact-form-panel fieldset {
  min-width:0;
  border:0;
  padding:0;
  margin:24px 0 0
}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel textarea {
  display:block;
  width:100%;
  margin-top:8px
}
.contact-form-panel .field-error:empty {
  margin:0 0 20px
}
.field-error {
  font-size:13px;
  color:#9c2020;
  margin:6px 0 18px;
  min-height:0
}
.contact-form-panel .check {
  margin-top:22px
}
.contact-form-panel .fine {
  margin:8px 0 16px
}
.contact-form-panel .web-note[hidden] {
  display:none
}
.contact-topic {
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.public-content .button,.public-content summary {
  min-height:44px
}
.public-content .text-link {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.public-content [aria-invalid=true] {
  border-color:#ad2c2c;
  outline-color:#ad2c2c
}
.web-note .web-actions {
  gap:8px
}
.web-note .button {
  font-size:13px
}
.error-options {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px
}
@media(max-width:1100px) {
  .public-header nav.public-desktop-navigation {
    display:none
  }
  .public-mobile-menu {
    display:block;
    position:relative;
    margin-left:auto
  }
  .public-mobile-menu summary {
    cursor:pointer;
    min-height:44px;
    padding:12px 16px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    font-weight:650
  }
  .public-mobile-menu nav {
    position:absolute;
    right:0;
    top:54px;
    z-index:25;
    background:white;
    border:1px solid var(--line);
    box-shadow:0 12px 35px #13254d1c;
    border-radius:18px;
    min-width:240px;
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:0
  }
  .public-mobile-menu nav a {
    min-height:44px;
    display:flex;
    align-items:center;
    padding:10px 12px
  }
  .public-header .public-calculator {
    margin-left:auto
  }
  .web-hero {
    gap:28px
  }
  .web-hero-art {
    min-height:380px;
    padding:30px
  }
  .web-material {
    gap:36px
  }
}
@media(max-width:700px) {
  .public-header {
    flex-wrap:wrap;
    gap:12px;
    padding-top:18px
  }
  .public-header .brand {
    flex:1
  }
  .public-header .brand-sub {
    font-size:10px
  }
  .public-header .public-calculator {
    padding:11px 14px;
    font-size:12px
  }
  .public-mobile-menu {
    margin-left:0
  }
  .public-mobile-menu summary {
    font-size:12px;
    padding:12px
  }
  .customer-navigation {
    justify-content:flex-start;
    gap:0 22px;
    padding-bottom:10px
  }
  .web-hero {
    grid-template-columns:1fr;
    padding:32px 0 12px;
    gap:26px
  }
  .web-hero-art {
    min-height:200px;
    padding:24px
  }
  .web-hero-art>span:first-child {
    font-size:34px
  }
  .web-hero h1,.web-page-intro h1 {
    font-size:clamp(38px,9.8vw,58px)
  }
  .web-grid.two,.web-grid.three,.web-material,.web-contact-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .web-section {
    margin-top:36px
  }
  .web-material {
    gap:24px;
    padding:12px 0
  }
  .web-callout {
    flex-direction:column;
    align-items:flex-start;
    padding:24px;
    gap:12px;
    margin-top:36px
  }
  .web-page-intro {
    padding:0 0 24px
  }
  .web-page-intro .lead {
    font-size:18px
  }
  .breadcrumbs {
    margin:16px 0
  }
  .public-footer {
    flex-direction:column
  }
  .public-footer nav {
    gap:8px 20px
  }
  .material-labels>span {
    padding:16px 8px;
    font-size:28px
  }
  .web-contact-grid {
    gap:12px
  }
  .web-note {
    padding:20px
  }
  .contact-form-panel .button {
    max-width:100%
  }
  .web-actions {
    align-items:stretch
  }
  .web-actions .button {
    justify-content:center
  }
  .contact-form-panel input,.contact-form-panel textarea {
    font-size:16px
  }
  .technology-card .badge {
    white-space:normal
  }
}
@media(prefers-reduced-motion:reduce) {
  .public-content * {
    scroll-behavior:auto
  }
}
summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px
}
.public-header {
  position:relative
}
.public-mobile-menu {
  position:static
}
.public-mobile-menu nav {
  top:calc(100% - 4px);
  right:0;
  width:min(300px,100%);
  min-width:0
}
.public-header .public-mobile-menu nav a {
  font-size:14px;
  padding:10px 12px
}
.public-header .public-mobile-menu nav {
  gap:0
}
@media(max-width:380px) {
  .public-header {
    gap:8px
  }
  .public-header .brand {
    gap:7px;
    font-size:21px;
    white-space:nowrap;
    flex:1 0 96px
  }
  .public-header .brand-mark {
    width:26px;
    height:32px
  }
  .public-header .brand-sub {
    display:none
  }
  .public-header .public-calculator {
    font-size:11px;
    padding:10px
  }
  .public-mobile-menu summary {
    padding:10px
  }
}

/* Public journey only. Shared header, navigation, guide and shell stay above unchanged. */
.public-content {
  --public-note-bg:#fff7df;
  --public-note-line:#e6cc85;
  --public-note-ink:#62460a;
  --public-space:clamp(20px,2.6vw,36px);
  --public-radius:18px;
  --public-graphite:#1c222d;
  --public-graphite-raised:#252d3b;
  --public-dark-line:#485467;
  --public-on-dark:#f5f7fb;
  --public-muted-on-dark:#c3cddb;
}
.public-content :where(section,article,aside,div,nav) { min-width:0; }
.public-content :where(h1,h2,h3,p,li,dd) { overflow-wrap:break-word; }
.public-content :where(h2,h3) { text-wrap:balance; }
.public-content :where(.panel,.web-callout,.public-portal) { border-radius:var(--public-radius); }
.public-content .panel { padding:var(--public-space); box-shadow:none; }
.public-content .web-hero {
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:center;
  padding:clamp(28px,4.5vw,64px);
  gap:clamp(28px,4vw,64px);
  margin-top:20px;
  background:var(--public-graphite);
  color:var(--public-on-dark);
  border:1px solid var(--public-dark-line);
  border-radius:24px;
}
.public-content .web-hero h1,.public-content .web-page-intro h1 {
  font-size:clamp(40px,5vw,70px);
  line-height:1.06;
  letter-spacing:-.045em;
  margin:16px 0 24px;
}
.public-content .web-hero .lead { max-width:480px; color:var(--public-muted-on-dark); }
.public-content .lead { font-size:clamp(18px,1.7vw,21px); line-height:1.6; }
.public-content .web-hero .fine { margin:28px 0 10px; color:var(--public-muted-on-dark); }
.public-content .web-page-intro { max-width:1000px; padding:8px 0 40px; }
.public-content .web-page-intro .lead { max-width:760px; margin-bottom:0; }
.public-content .eyebrow { color:var(--accent-dark); font-size:12px; letter-spacing:.09em; }
.public-content .button {
  gap:12px;
  min-width:0;
  max-width:100%;
  white-space:normal;
  text-align:center;
  line-height:1.4;
  padding:14px 20px;
}
.public-content .button span[aria-hidden],.public-content .text-link span[aria-hidden] { flex-shrink:0; }
.public-content .text-link { gap:8px; font-weight:650; color:var(--accent-dark); }
.public-content .web-hero .eyebrow { color:var(--public-muted-on-dark); }
.public-content .web-hero .text-link { color:var(--public-on-dark); }
.public-content .web-hero :focus-visible { outline-color:var(--public-on-dark); }
.public-content :where(a,button,input,textarea,summary):focus-visible {
  outline:3px solid var(--accent-dark);
  outline-offset:4px;
}
.public-content .public-entry-options { display:grid; gap:16px; }
.public-content .public-entry {
  padding:24px 28px;
  border:1px solid var(--public-dark-line);
  border-radius:var(--public-radius);
  background:var(--public-graphite-raised);
}
.public-content .public-entry h2 { margin:12px 0; font-size:26px; letter-spacing:-.03em; line-height:1.2; }
.public-content .public-entry p { margin:0 0 18px; color:var(--public-muted-on-dark); }
.public-content .public-entry .public-entry-label {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  font-size:12px;
  font-weight:650;
}
.public-content .public-entry-label > span { font:12px var(--mono); opacity:.85; }
.public-content .public-entry .button { width:100%; justify-content:space-between; }
.public-content .public-entry-primary { border-color:#7789a5; }
.public-content .public-entry-primary .button { background:var(--accent); color:white; border-color:var(--accent); }
.public-content .public-entry-primary .button:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
.public-content .public-entry .button.secondary { color:var(--public-on-dark); border-color:#7a899f; }
.public-content .public-entry .button.secondary:hover { background:#354154; }
.public-content .public-entry :focus-visible { outline-color:var(--public-on-dark); }
.public-content .public-portal {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:32px;
  padding:var(--public-space);
  margin-top:32px;
  background:var(--surface);
  border:1px solid var(--line);
  align-items:center;
}
.public-content .public-portal .eyebrow { margin:0 0 10px; }
.public-content .public-portal h2 { font-size:clamp(22px,2.4vw,30px); line-height:1.2; letter-spacing:-.025em; margin:0 0 12px; }
.public-content .public-portal p:last-child { margin:0; max-width:570px; color:var(--muted); }
.public-content .public-portal-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; }
.public-content .public-portal-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:48px;
  padding:10px 12px;
  font-size:14px;
  font-weight:650;
  color:var(--accent-dark);
  border-bottom:1px solid var(--line);
}
.public-content .public-portal-links a:hover { background:var(--soft); }
.public-content .public-portal-links span { flex-shrink:0; }
.public-content .public-hint {
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:start;
  gap:14px;
  margin:28px 0 0;
  padding:22px 24px;
  border:1px solid var(--public-note-line);
  border-radius:16px;
  background:var(--public-note-bg);
  color:var(--public-note-ink);
}
.public-content .public-hint-mark {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:14px;
  font-weight:750;
  line-height:1;
  margin-top:2px;
}
.public-content .public-hint h2 { color:inherit; margin:0 0 8px; font-size:17px; line-height:1.4; letter-spacing:0; text-wrap:initial; }
.public-content .public-hint p { margin:0; font-size:14px; line-height:1.65; }
.public-content .public-hint p + p { margin-top:10px; }
.public-content .public-hint .text-link { margin-top:10px; }
.public-content .web-material { gap:clamp(24px,5vw,72px); margin-top:64px; padding-block:48px; border-block:1px solid var(--line); }
.public-content .public-materials { display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin:0; }
.public-content .public-materials > div { display:grid; grid-template-columns:minmax(80px,.55fr) minmax(0,1fr); align-items:baseline; gap:20px; border-bottom:1px solid var(--line); padding:18px 0; }
.public-content .public-materials > div:first-child { padding-top:0; }
.public-content .public-materials > div:last-child { border-bottom:0; padding-bottom:0; }
.public-content .public-materials dt { font-size:30px; font-weight:750; letter-spacing:-.035em; color:var(--accent-dark); }
.public-content .public-materials dd { margin:4px 0 0; font-size:14px; }
.public-content .public-materials dd span { display:block; margin-top:4px; font-size:12px; color:var(--muted); }
.public-content .web-callout { margin:48px 0 0; padding:var(--public-space); gap:30px; background:var(--surface); border-color:var(--line); }
.public-content .web-callout h2 { font-size:clamp(24px,2.8vw,36px); margin:0 0 12px; }
.public-content .web-callout p { margin:0; }
.public-content .web-callout .eyebrow { margin-bottom:12px; }
.public-content .web-callout > .button { flex:0 1 290px; }
.public-content .web-callout .web-actions { margin:0; flex:0 0 220px; flex-direction:column; align-items:stretch; }
.public-content .web-callout .web-actions > * { justify-content:center; }
.public-content .public-path { display:flex; flex-direction:column; border-top:3px solid var(--accent); }
.public-content .public-path + .public-path { border-top-color:var(--public-dark-line); }
.public-content .public-path > .eyebrow { margin:0 0 12px; }
.public-content .public-path > h2 { font-size:clamp(26px,2.6vw,36px); line-height:1.2; letter-spacing:-.035em; margin:0; }
.public-content .public-path > .button { margin-top:auto; align-self:flex-start; }
.public-content .web-steps { margin:28px 0 4px; }
.public-content .web-steps li { padding-left:48px; padding-bottom:28px; }
.public-content .web-steps li:before { top:0; display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--line); border-radius:6px; background:var(--surface); font:650 12px/26px var(--mono); }
.public-content .web-steps li:not(:last-child):after { content:""; position:absolute; top:36px; left:15px; bottom:6px; width:1px; background:var(--line); }
.public-content .web-steps h3 { font-size:17px; line-height:1.5; text-wrap:initial; }
.public-content .web-steps p { font-size:14px; }
.public-content .public-next-strip { display:flex; align-items:center; gap:32px; margin-top:28px; padding:24px 0; border-block:1px solid var(--line); }
.public-content .public-next-strip p { flex:1; margin:0; font-size:14px; max-width:900px; }
.public-content .public-next-strip > .text-link { flex-shrink:0; }
.public-content .technology-card { display:flex; flex-direction:column; align-items:flex-start; }
.public-content .technology-card .section-heading { width:100%; }
.public-content .technology-card .eyebrow { margin:0; }
.public-content .technology-card h2 { font-size:clamp(30px,3.3vw,46px); line-height:1.15; margin:0; }
.public-content .web-technology-title { display:flex; gap:18px; align-items:baseline; margin:28px 0 20px; }
.public-content .web-technology-title .web-number { flex-shrink:0; font-family:var(--mono); }
.public-content .technology-card .button { margin-top:24px; }
.public-content .public-technology-primary { border-color:var(--accent); border-top-width:3px; background:var(--surface); }
.public-content .public-machine { width:100%; margin:auto 0 0; padding-top:20px; }
.public-content .public-machine > div { border-top:1px solid var(--line); padding-top:16px; }
.public-content .public-machine dt { color:var(--muted); font-size:12px; }
.public-content .public-machine dd { margin:4px 0 0; font-size:14px; }
.public-content .public-details-grid { margin-top:26px; }
.public-content .public-details-grid h2 { margin:10px 0 16px; font-size:26px; line-height:1.3; letter-spacing:-.025em; }
.public-content .public-details-grid .eyebrow { margin:0; }
.public-content .public-checklist { list-style:none; padding:0; margin:0; }
.public-content .public-checklist li { border-top:1px solid var(--line); padding:16px 0; line-height:1.65; }
.public-content .public-checklist li:last-child { padding-bottom:0; }
.public-content .public-checklist strong { display:block; margin-bottom:5px; }
.public-content .public-details-grid .fine { margin:20px 0 0; }
.public-content .limit-card h2 { font-size:clamp(30px,3.2vw,42px); color:var(--accent-dark); white-space:nowrap; }
.public-content .limit-card h2 small { font-size:20px; letter-spacing:0; }
.public-content .limit-card p { margin-bottom:0; font-size:14px; }
.public-content .limit-card .eyebrow { margin-top:0; }
.public-content .web-contact-grid { gap:24px; grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr); }
.public-content .contact-form-panel h2,.public-content .contact-aside h2 { margin:0 0 12px; font-size:26px; line-height:1.3; }
.public-content .contact-form-panel > .fine { margin-bottom:24px; }
.public-content .contact-form-panel > .eyebrow { margin:0 0 12px; }
.public-content .contact-form-panel { border-top:3px solid var(--accent); }
.public-content .contact-form-panel fieldset { padding-top:24px; border-top:1px solid var(--line); }
.public-content .contact-aside { display:grid; gap:20px; }
.public-content .contact-aside > * { margin:0; }
.public-content .contact-aside .eyebrow { margin:0 0 12px; }
.public-content .contact-aside .public-hint h2 { font-size:17px; }
.public-content .public-short-steps { margin:24px 0 0; }
.public-content .public-short-steps li { padding-bottom:18px; }
.public-content .contact-form-panel .web-note { border:1px solid var(--public-note-line); background:var(--public-note-bg); }
.public-content .contact-form-panel .web-note[hidden] { display:none; }
.public-content .contact-form-panel #contact-submit { width:100%; margin-top:8px; justify-content:center; }
.public-content .contact-form-panel :is(input,textarea) { border-radius:10px; }
.public-content .contact-form-panel .check { align-items:flex-start; }
.public-content .contact-form-panel .check input { flex-shrink:0; margin-top:5px; }
.public-content .web-section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px 48px; margin-bottom:28px; }
.public-content .web-section-heading h2 { margin:8px 0 0; max-width:680px; }
.public-content .web-section-heading .eyebrow { margin:0; }
.public-content .web-section-heading > p { max-width:360px; margin:0; color:var(--muted); }
.public-content .web-section-heading > .text-link { flex-shrink:0; }
.public-content .web-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:var(--surface); border:1px solid var(--line); border-radius:var(--public-radius); }
.public-content .web-service { display:flex; flex-direction:column; align-items:flex-start; padding:var(--public-space); }
.public-content .web-service + .web-service { border-left:1px solid var(--line); }
.public-content .web-service .web-number { font:600 13px var(--mono); }
.public-content .web-service h3 { font-size:24px; letter-spacing:-.025em; line-height:1.25; margin:28px 0 16px; }
.public-content .web-service p { font-size:15px; color:var(--muted); }
.public-content .web-service .text-link { margin-top:auto; }
.public-content .web-process-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; counter-reset:public-process; padding:0; margin:0; border-top:1px solid var(--line); }
.public-content .web-process-list li { counter-increment:public-process; padding:28px 32px 0 0; }
.public-content .web-process-list li:before { content:counter(public-process,decimal-leading-zero); font:500 32px/1.2 var(--mono); color:var(--accent-dark); }
.public-content .web-process-list h3 { margin:22px 0 10px; font-size:19px; }
.public-content .web-process-list p { max-width:340px; margin:0; color:var(--muted); font-size:14px; }
@media(max-width:1000px) {
  .public-content .public-portal { grid-template-columns:minmax(0,1fr); gap:20px; }
  .public-content .web-contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); }
  .public-content .public-entry { padding:24px; }
  .public-content .public-entry h2 { font-size:25px; }
}
@media(max-width:900px) {
  .public-content .web-hero { grid-template-columns:minmax(0,1fr); }
  .public-content .web-hero-copy { max-width:640px; }
  .public-content .public-entry-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-content .public-entry { display:flex; flex-direction:column; }
  .public-content .public-entry .button { margin-top:auto; }
  .public-content .web-section-heading { align-items:flex-start; flex-direction:column; gap:16px; }
}
@media(max-width:700px) {
  .public-content .web-hero { grid-template-columns:minmax(0,1fr); gap:28px; padding:28px 22px; margin-top:12px; border-radius:18px; }
  .public-content .web-hero h1,.public-content .web-page-intro h1 { font-size:clamp(36px,9.5vw,56px); }
  .public-content .web-hero .lead { font-size:18px; }
  .public-content .web-page-intro { padding:0 0 26px; }
  .public-content .public-entry { padding:22px; }
  .public-content .public-entry-options { grid-template-columns:minmax(0,1fr); }
  .public-content .public-entry h2 { font-size:26px; }
  .public-content .public-portal { margin-top:26px; padding:22px; }
  .public-content .public-portal-links { gap:4px 12px; }
  .public-content .public-portal-links a { font-size:13px; padding-inline:0; }
  .public-content .public-hint { padding:20px; gap:12px; }
  .public-content .web-material { margin-top:36px; padding-block:32px; gap:28px; }
  .public-content .web-service-grid,.public-content .web-process-list { grid-template-columns:minmax(0,1fr); }
  .public-content .web-service + .web-service { border-left:0; border-top:1px solid var(--line); }
  .public-content .web-service h3 { margin-top:18px; }
  .public-content .web-process-list li { padding:24px 0; }
  .public-content .web-process-list li + li { border-top:1px solid var(--line); }
  .public-content .web-process-list h3 { margin-top:14px; }
  .public-content .web-callout { gap:24px; }
  .public-content .web-callout > .button,.public-content .web-callout .web-actions { flex:auto; width:100%; }
  .public-content .web-callout > .button { justify-content:center; }
  .public-content .public-path > .button,.public-content .technology-card .button { width:100%; justify-content:center; }
  .public-content .public-path > h2 { font-size:24px; }
  .public-content .public-next-strip { align-items:flex-start; flex-direction:column; gap:10px; }
  .public-content .public-next-strip > .text-link { flex-shrink:1; }
  .public-content .web-contact-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .public-content .contact-aside { gap:20px; }
  .public-content .web-note .web-actions { flex-direction:column; }
  .public-content .web-note .web-actions > .button { width:100%; }
}
@media(max-width:380px) {
  .public-content .public-portal-links { grid-template-columns:minmax(0,1fr); }
  .public-content .web-hero { padding:24px 18px; }
  .public-content .public-entry { padding:20px 16px; }
  .public-content .public-materials > div { gap:12px; }
  .public-content .public-hint { grid-template-columns:minmax(0,1fr); }
  .public-content .public-hint-mark { display:none; }
  .public-content .button { padding-inline:14px; }
  .public-content .web-steps li { padding-left:40px; }
}
@media(prefers-reduced-motion:reduce) {
  .public-content *,.public-content *:before,.public-content *:after { animation:none; transition:none; scroll-behavior:auto; }
}
