/* Public pages extend the accepted pilot tokens and blue visual language. */
.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;
  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:#2463eb 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:#e3ebfc;
  border:1px solid #cddbf6;
  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:#e8eefb;
  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;
  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: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
  }
}
