:root {
  --navy: #00185f;
  --navy-2: #00208a;
  --ink: #142033;
  --muted: #5b687b;
  --line: #dce4ee;
  --surface: #f4f7fa;
  --white: #fff;
  --cyan: #00a8dd;
  --green: #15803d;
  --amber: #a16207;
  --shadow: 0 18px 50px rgba(13, 31, 61, 0.12);
  --radius: 18px;
  --shell: min(1180px, calc(100% - 40px));
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  color: var(--ink);
  background: var(--white);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--white);
  line-height: 1.55;
}
body.public-menu-open {
  overflow: hidden;
}
a {
  color: inherit;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.public-skip {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 1000;
  transform: translateY(-180%);
  background: var(--white);
  color: var(--navy);
  padding: 10px 14px;
  border-radius: 8px;
  font-weight: 800;
}
.public-skip:focus {
  transform: none;
}
.public-shell {
  width: var(--shell);
  margin-inline: auto;
}
.public-topbar {
  background: var(--navy);
  color: #dce8ff;
  font-size: 0.82rem;
}
.public-topbar .public-shell {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 20px;
}
.public-topbar a {
  text-decoration: none;
}
.public-topbar a:last-child {
  margin-left: auto;
  font-weight: 800;
  color: var(--white);
}
.public-header {
  position: relative;
  z-index: 50;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid var(--line);
}
.public-nav {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 30px;
}
.public-brand {
  margin-right: auto;
}
.public-brand img {
  object-fit: contain;
}
.public-menu {
  display: flex;
  align-items: center;
  gap: 21px;
}
.public-menu a {
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 750;
  color: #24334a;
}
.public-menu a:hover,
.public-menu a:focus-visible {
  color: #006b99;
}
.public-menu-toggle {
  display: none;
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: 10px;
  width: 44px;
  height: 44px;
  color: var(--navy);
  font-size: 1.2rem;
}
.public-page-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: var(--white);
  padding: 68px 0 74px;
}
.public-page-hero:after {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  right: -180px;
  top: -300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(136, 198, 255, 0.18), transparent 68%);
}
.public-page-hero .public-shell {
  position: relative;
  z-index: 1;
}
.public-breadcrumb {
  display: flex;
  gap: 10px;
  font-size: 0.82rem;
  color: #b9cbea;
}
.public-breadcrumb a {
  text-decoration: none;
}
.public-kicker,
.public-section-heading span,
.public-cta span {
  display: block;
  margin: 22px 0 8px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.72rem;
  font-weight: 900;
  color: #77dfff;
}
.public-page-hero h1 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(2.05rem, 4.5vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -0.04em;
}
.public-page-hero p:last-child {
  max-width: 760px;
  margin: 20px 0 0;
  color: #d3def0;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
}
.public-section {
  padding-top: 72px;
  padding-bottom: 72px;
}
.public-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 40px;
  margin-bottom: 30px;
}
.public-section-heading span {
  color: #006b91;
  margin-top: 0;
}
.public-section-heading h2 {
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.6rem);
  letter-spacing: -0.03em;
}
.public-section-heading p {
  max-width: 500px;
  color: var(--muted);
  margin: 0;
}
.public-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.public-card,
.public-document-card {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(13, 31, 61, 0.07);
}
.public-card-media {
  display: block;
  aspect-ratio: 16/10;
  background: #e9eff6;
  overflow: hidden;
}
.public-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s ease;
}
.public-card:hover .public-card-media img {
  transform: scale(1.025);
}
.public-card > div {
  padding: 24px;
}
.public-card small {
  color: #087ba5;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.public-card h2 {
  font-size: 1.25rem;
  line-height: 1.25;
  margin: 8px 0;
}
.public-card h2 a {
  text-decoration: none;
}
.public-card p {
  color: var(--muted);
}
.public-card ul {
  padding-left: 20px;
  color: #34445b;
}
.public-card-icon {
  font-size: 1.35rem;
  color: #087ba5;
}
.public-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #075e87;
  font-weight: 850;
  text-decoration: none;
}
.public-text-link:hover {
  text-decoration: underline;
}
.public-filter-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.public-filter-row button {
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: 999px;
  padding: 9px 15px;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}
.public-filter-row button.is-active {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
}
.public-product-layout,
.public-validation-layout,
.public-contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 52px;
  align-items: start;
}
.public-product-media {
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--line);
}
.public-product-media img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: contain;
}
.public-media-placeholder {
  min-height: 480px;
  display: grid;
  place-items: center;
  font-size: 6rem;
  color: #96a6bc;
}
.public-product-copy h2 {
  font-size: 2.4rem;
  line-height: 1.1;
  margin: 16px 0;
}
.public-product-copy p {
  font-size: 1.1rem;
  color: var(--muted);
}
.public-product-copy dl,
.public-validation-card dl {
  margin: 28px 0;
}
.public-product-copy dl div,
.public-validation-card dl div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
dt {
  font-weight: 800;
  color: #526178;
}
dd {
  margin: 0;
  min-width: 0;
}
.public-badge,
.public-status {
  display: inline-flex;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: #dbeafe;
  color: #164e83;
}
.public-status-active {
  background: #dcfce7;
  color: #166534;
}
.public-status-pending_review {
  background: #fef3c7;
  color: #92400e;
}
.public-status-superseded {
  background: #e2e8f0;
  color: #475569;
}
.public-status-revoked {
  background: #fee2e2;
  color: #991b1b;
}
.public-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 11px;
  background: var(--navy);
  color: var(--white);
  padding: 12px 18px;
  font: inherit;
  font-weight: 850;
  text-decoration: none;
  cursor: pointer;
}
.public-button:hover,
.public-button:focus-visible {
  background: #0a3a79;
}
.public-button-secondary {
  background: #e7eef7;
  color: var(--navy);
}
.public-document-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.public-document-card {
  display: grid;
  grid-template-rows: auto 1fr;
}
.public-document-thumb {
  display: grid;
  place-items: center;
  aspect-ratio: 4/3;
  background: var(--surface);
  overflow: hidden;
  color: #8b9bb0;
  font-size: 3rem;
}
.public-document-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.public-document-card > div {
  padding: 22px;
}
.public-document-card small {
  display: block;
  margin: 10px 0 2px;
  color: var(--muted);
}
.public-document-card h2 {
  font-size: 1.14rem;
  line-height: 1.28;
  margin: 5px 0;
}
.public-document-card h2 a {
  text-decoration: none;
}
.public-document-card p {
  color: var(--muted);
  font-size: 0.9rem;
}
.public-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.public-search-form {
  display: grid;
  grid-template-columns: 2fr 1.2fr 1fr 1fr auto;
  gap: 12px;
  align-items: end;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}
.public-search-form label,
.public-contact-form label {
  display: grid;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 800;
}
.public-search-form input,
.public-search-form select,
.public-contact-form input,
.public-contact-form select,
.public-contact-form textarea {
  width: 100%;
  border: 1px solid #b9c6d6;
  border-radius: 9px;
  background: var(--white);
  padding: 11px 12px;
  font: inherit;
  color: var(--ink);
}
.public-result-count {
  color: var(--muted);
  font-weight: 700;
}
.public-document-preview {
  width: 100%;
  max-height: 760px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}
.public-validation-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
  box-shadow: var(--shadow);
}
.public-validation-card h2 {
  font-size: 1.75rem;
}
.public-hash {
  font:
    600 0.75rem/1.45 ui-monospace,
    SFMono-Regular,
    Menlo,
    monospace;
  overflow-wrap: anywhere;
}
.public-local-validation {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.public-local-validation input {
  display: block;
  margin: 8px 0;
}
.public-local-validation output {
  display: block;
  margin-top: 10px;
  padding: 11px;
  border-radius: 8px;
  background: var(--surface);
  overflow-wrap: anywhere;
}
.public-local-validation output.is-valid {
  background: #dcfce7;
  color: #166534;
}
.public-local-validation output.is-invalid {
  background: #fee2e2;
  color: #991b1b;
}
.public-contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 26px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.public-field-wide {
  grid-column: 1/-1;
}
.public-consent {
  grid-template-columns: auto 1fr !important;
  align-items: start;
}
.public-consent input {
  width: auto;
}
.public-honeypot {
  position: absolute !important;
  left: -9999px !important;
}
.public-contact-list {
  padding-left: 20px;
}
.public-form-success,
.public-form-error {
  padding: 11px;
  border-radius: 8px;
}
.public-form-success {
  background: #dcfce7;
  color: #166534;
}
.public-form-error {
  background: #fee2e2;
  color: #991b1b;
}
.public-prose {
  max-width: 860px;
}
.public-prose h2 {
  margin-top: 34px;
}
.public-prose p {
  color: #45536a;
  font-size: 1.04rem;
}
.public-empty {
  grid-column: 1/-1;
  padding: 45px;
  text-align: center;
  border: 1px dashed #aebdd0;
  border-radius: var(--radius);
  background: var(--surface);
}
.public-cta {
  padding: 48px 0;
  background: linear-gradient(135deg, #076c92, #00185f);
  color: var(--white);
}
.public-cta .public-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.public-cta span {
  margin: 0 0 7px;
}
.public-cta h2 {
  max-width: 800px;
  margin: 0;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}
.public-button-light {
  background: var(--white);
  color: var(--navy);
  white-space: nowrap;
}
.public-footer {
  background: #07152d;
  color: #c9d5e8;
  padding: 55px 0 22px;
}
.public-footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 0.8fr 0.8fr 1.25fr;
  gap: 35px;
}
.public-footer-grid nav {
  display: grid;
  align-content: start;
  gap: 8px;
}
.public-footer-grid a {
  color: #d8e4f5;
  text-decoration: none;
}
.public-footer-grid strong {
  color: var(--white);
}
.public-footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 24px;
  margin-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 0.82rem;
}
.public-footer-bottom a {
  color: inherit;
}
.public-card a:focus-visible,
.public-menu a:focus-visible,
.public-button:focus-visible,
.public-text-link:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #52c9ef;
  outline-offset: 3px;
}
@media (max-width: 1024px) {
  :root {
    --shell: min(100% - 32px, 920px);
  }
  .public-menu {
    gap: 13px;
  }
  .public-menu a {
    font-size: 0.82rem;
  }
  .public-card-grid,
  .public-document-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .public-search-form {
    grid-template-columns: 2fr 1fr 1fr;
  }
  .public-search-form .public-button {
    grid-column: auto;
  }
  .public-footer-grid {
    grid-template-columns: 1.4fr 1fr 1fr;
  }
  .public-footer-grid > div:last-child {
    grid-column: 1/-1;
  }
  .public-product-layout,
  .public-validation-layout,
  .public-contact-layout {
    gap: 32px;
  }
}
@media (max-width: 760px) {
  :root {
    --shell: calc(100% - 28px);
  }
  .public-topbar .public-shell {
    gap: 12px;
    min-height: 40px;
  }
  .public-topbar span,
  .public-topbar a:not(:last-child) {
    display: none;
  }
  .public-nav {
    min-height: 68px;
  }
  .public-brand img {
    width: 118px;
  }
  .public-menu-toggle {
    display: block;
  }
  .public-menu {
    position: fixed;
    inset: 108px 0 0;
    background: var(--white);
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: 22px;
    overflow: auto;
  }
  .public-menu.is-open {
    display: flex;
  }
  .public-menu a {
    font-size: 1rem;
    padding: 10px;
    border-bottom: 1px solid var(--line);
  }
  .public-page-hero {
    padding: 48px 0;
  }
  .public-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .public-section-heading {
    display: block;
  }
  .public-section-heading p {
    margin-top: 12px;
  }
  .public-card-grid,
  .public-document-grid,
  .public-product-layout,
  .public-validation-layout,
  .public-contact-layout {
    grid-template-columns: 1fr;
  }
  .public-search-form {
    grid-template-columns: 1fr;
  }
  .public-contact-form {
    grid-template-columns: 1fr;
  }
  .public-field-wide {
    grid-column: auto;
  }
  .public-product-copy h2 {
    font-size: 1.9rem;
  }
  .public-product-copy dl div,
  .public-validation-card dl div {
    grid-template-columns: 1fr;
  }
  .public-cta .public-shell,
  .public-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .public-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .public-footer-grid > div:first-child,
  .public-footer-grid > div:last-child {
    grid-column: 1/-1;
  }
}

/* Hero público: cinco imagens fornecidas, com transição espacial controlável. */
.public-hero-carousel {
  position: relative;
  padding: 0;
  overflow: hidden;
  perspective: 1800px;
  background: #031331;
  isolation: isolate;
}
.public-hero-stage {
  position: relative;
  min-height: clamp(560px, 72vh, 760px);
  transform-style: preserve-3d;
}
.public-hero-slide {
  position: absolute;
  inset: 0;
  display: none;
  overflow: hidden;
  color: #fff;
}
.public-hero-slide.is-active {
  display: block;
}
.public-hero-carousel.is-enhanced .public-hero-slide {
  display: block;
  z-index: 0;
  visibility: hidden;
  opacity: 0;
  transform: translate3d(18%, 0, -260px) rotateY(-16deg) scale(.92);
  transform-origin: 60% 50%;
  transition: opacity .75s ease, transform 1.05s cubic-bezier(.2,.75,.2,1), visibility 0s linear 1.05s;
  pointer-events: none;
}
.public-hero-carousel.is-enhanced[data-direction="previous"] .public-hero-slide {
  transform: translate3d(-18%, 0, -260px) rotateY(16deg) scale(.92);
}
.public-hero-carousel.is-enhanced .public-hero-slide.was-active {
  z-index: 1;
  visibility: visible;
  transform: translate3d(-12%, 0, -180px) rotateY(10deg) scale(.96);
  transition-delay: 0s;
}
.public-hero-carousel.is-enhanced[data-direction="previous"] .public-hero-slide.was-active {
  transform: translate3d(12%, 0, -180px) rotateY(-10deg) scale(.96);
}
.public-hero-carousel.is-enhanced .public-hero-slide.is-active {
  z-index: 2;
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 0, 0) rotateY(0) scale(1);
  transition-delay: 0s;
  pointer-events: auto;
}
.public-hero-slide > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.92) contrast(1.04);
  transform: scale(1.035);
  transition: transform 8s ease-out;
}
.public-hero-slide.is-active > img {
  transform: scale(1);
}
.public-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #031331 0%, #031331 37%, rgba(3,19,49,.96) 48%, rgba(3,19,49,.72) 61%, rgba(3,19,49,.12) 83%),
    linear-gradient(0deg, rgba(3,19,49,.72), transparent 42%);
}
.public-hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: clamp(560px, 72vh, 760px);
  align-items: center;
  padding-top: 52px;
  padding-bottom: 104px;
}
.public-hero-copy {
  width: min(610px, 52%);
  padding: 34px 0;
}
.public-hero-copy h1,
.public-hero-copy h2 {
  max-width: 680px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: 1.01;
  letter-spacing: -.045em;
}
.public-hero-copy > p:not(.public-kicker) {
  max-width: 590px;
  margin: 22px 0 28px;
  color: #d7e7f8;
  font-size: clamp(1rem, 1.45vw, 1.2rem);
  line-height: 1.7;
}
.public-hero-controls {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 26px;
  left: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
}
.public-hero-controls button,
.public-hero-count {
  display: inline-flex;
  min-width: 42px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(3,19,49,.78);
  color: #fff;
  backdrop-filter: blur(12px);
  pointer-events: auto;
}
.public-hero-controls button {
  cursor: pointer;
}
.public-hero-controls button:hover,
.public-hero-controls button:focus-visible {
  border-color: #52d7ff;
  background: #06437a;
}
.public-hero-dots {
  display: flex;
  align-items: center;
  gap: 7px;
}
.public-hero-dots button {
  width: 10px;
  min-width: 10px;
  height: 10px;
  min-height: 10px;
  padding: 0;
  border: 0;
  background: rgba(255,255,255,.42);
  backdrop-filter: none;
  transition: width .25s ease, background .25s ease;
}
.public-hero-dots button.is-active {
  width: 32px;
  background: #52d7ff;
}
.public-hero-count {
  min-width: 78px;
  padding: 0 14px;
  font-variant-numeric: tabular-nums;
}
.public-hero-count b {
  color: #52d7ff;
}
.public-hero-controls [data-public-hero-toggle] {
  padding: 0 15px;
}
.public-product-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 18px;
}
.public-document-kind {
  color: #073d67;
  font-weight: 800;
}
.public-solution-list {
  display: grid;
  gap: 28px;
}
.public-solution-card {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  padding: clamp(22px, 4vw, 48px);
  scroll-margin-top: 120px;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 4px);
  background: #fff;
  box-shadow: 0 16px 44px rgba(13,31,61,.08);
}
.public-solution-card:nth-child(even) .public-solution-media {
  order: 2;
}
.public-solution-media {
  overflow: hidden;
  border-radius: var(--radius);
  background: #e9f2fa;
}
.public-solution-media img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.public-solution-card h2 {
  margin: 12px 0 8px;
  color: #073d67;
}
.public-solution-card p {
  color: var(--muted);
  line-height: 1.7;
}
.public-solution-card .public-solution-lead {
  color: #17263c;
  font-size: 1.12rem;
  font-weight: 800;
}
.public-solution-card ul {
  display: grid;
  gap: 8px;
  margin: 20px 0 26px;
  padding-left: 20px;
}
@media (max-width: 900px) {
  .public-hero-shade {
    background: linear-gradient(90deg, #031331 0%, rgba(3,19,49,.96) 56%, rgba(3,19,49,.58) 100%);
  }
  .public-hero-copy {
    width: min(650px, 78%);
  }
  .public-solution-card {
    grid-template-columns: 1fr;
  }
  .public-solution-card:nth-child(even) .public-solution-media {
    order: 0;
  }
}
@media (max-width: 640px) {
  .public-hero-stage,
  .public-hero-content {
    min-height: 680px;
  }
  .public-hero-slide > img {
    object-position: 72% center;
  }
  .public-hero-shade {
    background: linear-gradient(0deg, #031331 0%, #031331 43%, rgba(3,19,49,.86) 67%, rgba(3,19,49,.2) 100%);
  }
  .public-hero-content {
    align-items: flex-end;
    padding-top: 180px;
    padding-bottom: 104px;
  }
  .public-hero-copy {
    width: 100%;
    padding: 20px 0;
  }
  .public-hero-copy h1,
  .public-hero-copy h2 {
    font-size: clamp(2.15rem, 11vw, 3.35rem);
  }
  .public-hero-copy > p:not(.public-kicker) {
    margin: 14px 0 20px;
    font-size: .98rem;
    line-height: 1.55;
  }
  .public-hero-controls {
    bottom: 18px;
    gap: 8px;
  }
  .public-hero-controls [data-public-hero-toggle] span,
  .public-hero-count {
    display: none;
  }
  .public-hero-controls [data-public-hero-toggle] {
    padding: 0;
  }
  .public-hero-dots {
    margin-right: auto;
  }
  .public-solution-card {
    padding: 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .public-hero-carousel.is-enhanced .public-hero-slide,
  .public-hero-carousel.is-enhanced .public-hero-slide.was-active,
  .public-hero-carousel.is-enhanced .public-hero-slide.is-active {
    transform: none;
    transition: opacity .2s linear, visibility 0s linear .2s;
  }
  .public-hero-slide > img,
  .public-hero-slide.is-active > img {
    transform: none;
    transition: none;
  }
}
@media (max-width: 420px) {
  :root {
    --shell: calc(100% - 22px);
  }
  .public-page-hero h1 {
    font-size: 2rem;
  }
  .public-card > div,
  .public-document-card > div,
  .public-validation-card,
  .public-contact-form {
    padding: 18px;
  }
  .public-footer-grid {
    grid-template-columns: 1fr;
  }
  .public-footer-grid > * {
    grid-column: auto !important;
  }
  .public-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .public-actions > * {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
.public-cookie-panel {
  position: fixed;
  z-index: 1200;
  left: 20px;
  right: 20px;
  bottom: 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 24px;
  align-items: center;
  max-width: 1080px;
  margin: auto;
  padding: 20px;
  border: 1px solid #8eb8dc;
  border-radius: 16px;
  background: #fff;
  color: #142033;
  box-shadow: 0 20px 70px rgba(2, 18, 45, 0.28);
}
.public-cookie-panel.is-hidden {
  display: none;
}
.public-cookie-panel h2,
.public-cookie-panel p {
  margin: 0 0 8px;
}
.public-cookie-panel > a {
  font-weight: 750;
  color: #075e87;
}
.public-cookie-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.public-cookie-actions button,
.public-cookie-link {
  min-height: 44px;
  border: 1px solid #164e83;
  border-radius: 9px;
  background: #fff;
  color: #164e83;
  padding: 9px 13px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.public-cookie-actions button:hover,
.public-cookie-actions button:focus-visible {
  background: #164e83;
  color: #fff;
}
.public-cookie-options {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.public-cookie-options label {
  display: flex;
  gap: 6px;
  align-items: center;
}
.public-cookie-options small {
  color: #5b687b;
}
.public-cookie-panel output {
  min-height: 1.4em;
  color: #45536a;
}
.public-cookie-link {
  min-height: auto;
  border: 0;
  padding: 0;
  color: #d8e4f5;
  background: transparent;
  text-align: left;
}
.public-role-note,
.public-layered-notice {
  color: #5b687b;
  font-size: 0.9rem;
}
.public-legal-summary {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px;
  border-radius: 12px;
  background: #edf5fc;
}
.public-legal-summary a {
  color: #075e87;
}
.public-legal-highlight,
.public-status-ok {
  padding: 18px;
  border-left: 5px solid #087ba5;
  border-radius: 8px;
  background: #eef8fc;
}
.public-status-ok {
  border-color: #15803d;
  background: #ecfdf5;
}
.public-table-wrap {
  overflow-x: auto;
}
.public-legal-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}
.public-legal-table th,
.public-legal-table td {
  padding: 11px;
  border: 1px solid #cdd8e5;
  text-align: left;
  vertical-align: top;
}
.public-legal-table th {
  background: #eaf0f7;
}
.public-legal-version {
  font-size: 1rem !important;
}
@media (max-width: 760px) {
  .public-cookie-panel {
    grid-template-columns: 1fr;
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-height: min(52vh, 360px);
    overflow: auto;
  }
  .public-cookie-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .public-cookie-actions button {
    width: 100%;
  }
  .public-cookie-actions [data-cookie-toggle],
  .public-cookie-actions [data-cookie-choice="save"] {
    grid-column: 1/-1;
  }
}
@media (max-height: 500px) {
  .public-cookie-panel {
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-height: 52vh;
    overflow: auto;
    padding: 12px;
  }
  .public-cookie-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .public-cookie-actions [data-cookie-toggle],
  .public-cookie-actions [data-cookie-choice="save"] {
    grid-column: 1/-1;
  }
}
.public-filter-row a {
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: 999px;
  padding: 9px 15px;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
}
.public-filter-row a.is-active {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
}
.public-status-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.public-integrity {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #166534;
  background: #ecfdf5;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.72rem;
  font-weight: 800;
}
.public-status-preliminary,
.public-status-concept,
.public-status-draft {
  color: #92400e;
  background: #fef3c7;
}
.public-status-legacy,
.public-status-unknown {
  color: #475569;
  background: #e2e8f0;
}
.public-document-meta {
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: 0.78rem !important;
}
.public-document-thumb picture {
  width: 100%;
  height: 100%;
}
.public-card-specs {
  display: grid;
  gap: 7px;
  margin: 18px 0;
}
.public-card-specs div {
  display: grid;
  grid-template-columns: minmax(100px, 0.8fr) minmax(0, 1.2fr);
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.82rem;
}
.public-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 34px;
}
.public-pagination a {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 9px;
  text-decoration: none;
  font-weight: 800;
}
.public-pagination a.is-active {
  color: var(--white);
  background: var(--navy);
  border-color: var(--navy);
}
.public-version-history {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.public-support-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.public-support-grid > div {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}
.public-support-grid h3 {
  margin: 0 0 6px;
}
.public-support-grid p {
  margin: 0;
  font-size: 0.92rem;
}
@media (max-width: 760px) {
  .public-support-grid {
    grid-template-columns: 1fr;
  }
  .public-card-specs div {
    grid-template-columns: 1fr;
  }
  .public-search-form {
    padding: 14px;
  }
}
.public-team-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.public-team-grid--commercial {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 760px;
}
.public-team-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 10px 28px rgba(13, 31, 61, 0.08);
}
.public-team-media {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: #e9eff6;
}
.public-team-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.public-team-media > span {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--navy);
  font-size: 2.5rem;
  font-weight: 900;
}
.public-team-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
}
.public-team-content h3 {
  margin: 0;
  font-size: 1.15rem;
}
.public-team-content p {
  margin: 6px 0 18px;
  color: var(--muted);
}
.public-team-content a {
  margin-top: auto;
}
.public-commercial-highlight {
  margin: 18px 0 26px;
  padding: 18px;
  border: 1px solid #93c5fd;
  border-radius: 12px;
  background: #eff6ff;
  color: #172554;
}
.public-commercial-highlight p {
  margin: 7px 0 0;
  color: #172554;
}
.public-legal-document table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}
.public-legal-document th,
.public-legal-document td {
  padding: 10px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
@media (max-width: 1100px) {
  .public-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .public-team-grid,
  .public-team-grid--commercial {
    grid-template-columns: 1fr;
  }
}
.public-team-photo--iltom,
.public-team-photo--elias {
  object-position: 50% 18%;
}
.public-team-photo--marcelo {
  object-position: 50% 24%;
}
.public-team-photo--geraldo {
  object-position: 50% 22%;
}
.public-register-link {
  display: none;
}
.public-quote-button {
  white-space: nowrap;
}
.public-home-hero {
  padding: 72px 0;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: #fff;
}
.public-home-hero-grid,
.public-home-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  gap: 48px;
  align-items: center;
}
.public-home-hero h1 {
  margin: 0;
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
}
.public-home-hero p:not(.public-kicker) {
  max-width: 680px;
  color: #d3def0;
  font-size: 1.12rem;
}
.public-home-hero picture {
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.public-home-hero picture img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.public-entry-grid a {
  text-decoration: none;
}
.public-path-card,
.public-service-summary,
.public-evidence-grid article {
  display: flex;
  min-height: 190px;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 10px 28px rgba(13, 31, 61, 0.07);
}
.public-path-card small,
.public-section-label {
  color: #006b91;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.public-document-highlight .public-section-label {
  color: #77dfff;
}
.public-path-card strong {
  margin: 18px 0 8px;
  font-size: 1.25rem;
}
.public-path-card span,
.public-service-summary p,
.public-evidence-grid p {
  color: var(--muted);
}
.public-surface {
  background: var(--surface);
}
.public-document-highlight {
  background: #00185f;
  color: #fff;
}
.public-document-highlight p {
  color: #d3def0;
}
.public-document-mini-list {
  display: grid;
  gap: 12px;
}
.public-document-mini-list a {
  display: grid;
  gap: 4px;
  padding: 17px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.07);
  text-decoration: none;
}
.public-document-mini-list span {
  color: #d3def0;
}
.public-evidence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.public-evidence-grid article {
  min-height: 150px;
}
.public-service-summary h3,
.public-evidence-grid strong {
  margin: 0;
  font-size: 1.15rem;
}
@media (max-width: 1024px) {
  .public-quote-button {
    display: none;
  }
  .public-home-hero-grid,
  .public-home-split {
    grid-template-columns: 1fr;
  }
  .public-evidence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .public-register-link {
    display: block;
  }
  .public-menu {
    inset: 104px 0 0;
  }
  .public-home-hero {
    padding: 48px 0;
  }
  .public-evidence-grid {
    grid-template-columns: 1fr;
  }
}

/* Sobrescreve o espaçamento do hero legado também nos breakpoints móveis. */
.public-home-hero.public-hero-carousel {
  padding: 0;
}


/* Public portfolio: EFTX identity, SYES blue reference, September 2026. */
.public-site { --navy: #00185f; --navy-2: #00208a; --shell: min(1240px, calc(100% - 64px)); --radius: 12px; }
.public-site :is(a,button,summary,input,select):focus-visible { outline: 3px solid #2789e8; outline-offset: 4px; }
.public-site :is(h1,h2,h3,p,a,span) { overflow-wrap: break-word; }
.public-nav { position: relative; gap: 28px; min-height: 88px; }
.public-brand { flex: 0 0 auto; }
.public-menu { align-items: center; gap: 25px; margin-left: auto; }
.public-menu a,.public-product-menu summary { font-size: .88rem; font-weight: 650; text-decoration: none; }
.public-menu .public-home-link { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 18px; border-radius: 7px; background: var(--navy); color: #fff; }
.public-menu .public-home-link:hover,.public-menu .public-home-link:focus-visible { color: #fff; background: var(--navy-2); }
.public-product-menu summary { cursor: pointer; display: flex; gap: 12px; align-items: center; min-height: 44px; list-style: none; }
.public-product-menu summary::-webkit-details-marker { display: none; }
.public-product-menu[open] summary { color: var(--navy-2); }
.public-megamenu { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% - 1px); background: #fff; border: 1px solid var(--line); box-shadow: 0 24px 40px #00185f1a; border-radius: 0 0 12px 12px; padding: 28px; }
.public-megamenu-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--line); gap: 20px; }
.public-megamenu-heading strong { font-size: 1.2rem; }
.public-megamenu-heading a { color: var(--navy-2); }
.public-megamenu-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; padding-top: 18px; }
.public-megamenu-grid a { display: flex; flex-direction: column; padding: 12px; border-radius: 6px; min-height: 72px; }
.public-megamenu-grid a:hover,.public-megamenu-grid [aria-current] { background: var(--surface); }
.public-megamenu-grid small { font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.public-megamenu-grid span { margin-top: 4px; color: var(--navy); }
.public-menu .public-mobile-platform { display: none; }
.public-quote-button { font-size: .82rem; min-height: 44px; white-space: nowrap; padding: 12px 16px; }
.public-site .public-button { border-radius: 6px; gap: 12px; }
.public-site .public-section { padding-top: 86px; padding-bottom: 86px; }
.public-section-heading { align-items: end; margin-bottom: 34px; }
.public-section-heading h2,.public-editorial-split h2 { font-size: clamp(1.8rem,3vw,2.75rem); line-height: 1.12; letter-spacing: -.035em; margin: 12px 0 0; }
.public-section-heading > p { max-width: 370px; }
.public-section-label,.public-section-heading > div > span { font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; font-weight: 750; color: var(--navy-2); }
.public-home-hero.public-portfolio-hero { padding: 0; background: var(--navy); background-image: radial-gradient(ellipse at 20% 80%,#00208a88,transparent 65%); color: #fff; }
.public-portfolio-hero .public-hero-stage { min-height: 570px; height: auto; perspective: none; }
.public-portfolio-hero .public-hero-slide { min-height: 570px; }
.public-portfolio-hero.is-enhanced .public-hero-slide { inset: 0; transition: opacity .45s ease; transform: none; filter: none; }
.public-portfolio-hero.is-enhanced .public-hero-slide.was-active,.public-portfolio-hero.is-enhanced[data-direction="previous"] .public-hero-slide.was-active,.public-portfolio-hero.is-enhanced[data-direction="previous"] .public-hero-slide { transform: none; filter: none; }
.public-portfolio-slide { display: grid; grid-template-columns: 1.12fr 1fr; gap: 8%; align-items: center; padding-top: 46px; padding-bottom: 24px; min-height: 570px; }
.public-portfolio-hero .public-hero-copy { width: auto; max-width: none; }
.public-portfolio-hero .public-hero-copy :is(h1,h2) { font-size: clamp(2.5rem,4.9vw,4.5rem); line-height: 1.025; letter-spacing: -.05em; font-weight: 650; max-width: 660px; margin: 22px 0; }
.public-portfolio-hero .public-hero-copy h1 em { font-style: normal; color: #a9d6ff; }
.public-portfolio-hero .public-hero-copy > p:not(.public-kicker) { font-size: 1.04rem; line-height: 1.7; color: #dce6fc; max-width: 450px; margin-bottom: 25px; }
.public-portfolio-hero .public-kicker { letter-spacing: .16em; font-size: .7rem; color: #c5d8ff; display: flex; align-items: center; gap: 12px; }
.public-eyebrow-line { display: inline-block; height: 1px; width: 28px; background: #a9d6ff; }
.public-portfolio-hero .public-button,.public-platform-band .public-button,.public-family-hero .public-button { background: #fff; color: var(--navy); border-color: #fff; }
.public-hero-contact { color: #fff; font-size: .85rem; text-underline-offset: 5px; }
.public-hero-bottomline { display: flex; gap: 16px; margin-top: 34px; color: #b6c8eb; font-size: .58rem; font-weight: 600; letter-spacing: .1em; }
.public-hero-product { background: #fff; color: var(--navy); border-radius: 4px; overflow: hidden; box-shadow: 0 24px 55px #00000022; }
.public-hero-product-image { height: 375px; display: flex; align-items: center; justify-content: center; padding: 22px; background: #fff; }
.public-hero-product-image img { height: 100%; width: 100%; object-fit: contain; }
.public-hero-product-caption { border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; padding: 20px 26px; }
.public-hero-product-caption small { text-transform: uppercase; font-size: .62rem; letter-spacing: .12em; color: var(--muted); }
.public-hero-product-caption strong { display: block; font-size: 1.3rem; margin-top: 3px; }
.public-hero-product-caption > a { border: 1px solid var(--line); border-radius: 50%; width: 42px; height: 42px; display: grid; place-items: center; text-decoration: none; font-size: 1.3rem; }
.public-hero-engineering { min-height: 460px; padding: 42px; display: flex; flex-direction: column; justify-content: center; background: repeating-radial-gradient(circle at 100% 100%,transparent 0 44px,#00185f0c 45px 46px),#f4f7fb; }
.public-hero-engineering > span { font-weight: 800; letter-spacing: .2em; font-size: .8rem; }
.public-hero-engineering > strong { font-size: 3rem; line-height: 1.1; margin-top: 24px; }
.public-home-hero .public-hero-engineering p { color: var(--muted); font-size: 1rem; margin-top: 25px; }
.public-hero-engineering > a { font-size: .85rem; }
.public-portfolio-hero .public-hero-controls { position: relative; inset: auto; display: flex; padding: 6px 0 24px; justify-content: flex-start; transform: none; }
.public-portfolio-hero .public-hero-controls button { border: 1px solid #ffffff40; border-radius: 5px; background: transparent; color: #fff; min-width: 40px; min-height: 40px; }
.public-portfolio-hero .public-hero-dots button { min-width: 24px; min-height: 36px; width: 24px; height: 36px; padding: 8px; border: 0; border-radius: 0; background: transparent; position: relative; }
.public-portfolio-hero .public-hero-dots button::after { content: ''; display: block; width: 6px; height: 6px; border-radius: 50%; background: #a6b5d5; }
.public-portfolio-hero .public-hero-dots button.is-active::after { background: #fff; box-shadow: 0 0 0 3px #ffffff35; }
.public-portfolio-hero .public-hero-count { color: #dce6fc; font-size: .7rem; }
.public-portfolio-hero .public-hero-controls [data-public-hero-toggle] { display: flex; gap: 7px; align-items: center; width: auto; padding: 0 12px; font-size: .75rem; }
.public-portfolio-intro { border-bottom: 1px solid var(--line); background: #fff; }
.public-portfolio-intro .public-shell { display: grid; grid-template-columns: 1fr 1.4fr auto; align-items: center; gap: 50px; padding-block: 28px; }
.public-portfolio-intro p { margin: 0; font-size: 1rem; color: var(--muted); }
.public-portfolio-intro strong { color: var(--navy); }
.public-portfolio-intro > div > span { color: var(--muted); font-size: .85rem; max-width: 450px; }
.public-family-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.public-family-card { color: var(--ink); display: flex; flex-direction: column; border: 1px solid var(--line); padding: 24px; text-decoration: none; background: #fff; transition: border-color .18s,background .18s; border-radius: 4px; }
.public-family-card:hover { background: #f4f7fc; border-color: #8b9dc4; }
.public-family-card > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.public-family-card small { text-transform: uppercase; letter-spacing: .1em; font-size: .65rem; color: var(--muted); }
.public-family-card > div > b { font-weight: 400; color: #5b687b; font-size: .7rem; }
.public-family-card h3 { color: var(--navy); font-size: 1.35rem; line-height: 1.15; margin: 30px 0 14px; letter-spacing: -.025em; }
.public-family-card p { color: var(--muted); font-size: .83rem; line-height: 1.6; margin: 0 0 25px; }
.public-family-card-link { display: flex; gap: 12px; justify-content: space-between; margin-top: auto; font-size: .73rem; font-weight: 700; color: var(--navy-2); }
.public-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.public-product-card { border-radius: 6px; box-shadow: none; display: flex; flex-direction: column; }
.public-product-card .public-card-media { height: 255px; background: #fff; padding: 20px; border-bottom: 1px solid var(--line); }
.public-product-card .public-card-media img { width: 100%; height: 100%; object-fit: contain; }
.public-product-card .public-product-card-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.public-product-card h3 { line-height: 1.25; letter-spacing: -.02em; font-size: 1.25rem; margin: 12px 0; }
.public-product-card h3 a { text-decoration: none; }
.public-product-card-body > p { font-size: .84rem; color: var(--muted); }
.public-product-card-body > small { font-size: .62rem; letter-spacing: .04em; color: var(--muted); }
.public-product-card .public-product-actions { margin-top: auto; padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; font-size: .76rem; }
.public-product-monogram { margin: auto; color: var(--navy); font-size: 1.5rem; }
.public-service-summary { border-top: 1px solid var(--line); padding-top: 20px; }
.public-service-number { font-size: .7rem; letter-spacing: .1em; color: var(--navy-2); }
.public-platform-band { background: var(--navy); color: #fff; padding-block: 72px; }
.public-platform-band h2 { font-size: clamp(2rem,3.2vw,3rem); line-height: 1.12; letter-spacing: -.04em; margin: 16px 0; }
.public-platform-band p { color: #c5d8ff; max-width: 620px; }
.public-platform-band .public-button-secondary,.public-family-hero .public-button-secondary { color: #fff; background: transparent; border-color: #ffffff60; }
.public-editorial-split { display: grid; grid-template-columns: 1fr 1.25fr; gap: 90px; align-items: start; }
.public-editorial-split p { margin: 0 0 20px; color: var(--muted); line-height: 1.85; }
.public-family-hero { padding: 24px 0 62px; background: var(--navy); color: #fff; }
.public-family-hero .public-breadcrumb { color: #c5d8ff; flex-wrap: wrap; margin-bottom: 42px; }
.public-family-hero .public-breadcrumb a { color: #fff; }
.public-family-intro { display: grid; grid-template-columns: 1.6fr 1fr; align-items: center; gap: 70px; }
.public-family-intro h1 { font-size: clamp(2.2rem,4.5vw,4rem); line-height: 1.06; letter-spacing: -.045em; margin: 22px 0; }
.public-family-hero .public-kicker { color: #b4cef8; font-size: .68rem; letter-spacing: .1em; }
.public-family-lead { max-width: 650px; font-size: 1.1rem; color: #dce6fc; }
.public-family-signature { border: 1px solid #ffffff25; padding: 40px; min-height: 235px; display: flex; flex-direction: column; justify-content: center; background: repeating-radial-gradient(circle at 95% 100%,transparent 0 40px,#ffffff08 41px 42px); }
.public-family-signature > span { letter-spacing: .2em; font-weight: 800; font-size: .8rem; }
.public-family-signature strong { display: block; margin: 20px 0; font-size: 2rem; line-height: 1.15; }
.public-family-signature small { font-size: .55rem; letter-spacing: .1em; color: #b4cef8; }
.public-section-nav { border-bottom: 1px solid var(--line); background: #fff; }
.public-section-nav > div { display: flex; gap: 32px; padding-block: 17px; flex-wrap: wrap; }
.public-section-nav a { color: var(--navy); font-size: .8rem; font-weight: 600; text-decoration: none; }
.public-criteria-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 26px; list-style: none; padding: 0; margin: 0; }
.public-criteria-grid li { border-top: 2px solid var(--navy); padding-top: 20px; }
.public-criteria-grid span { color: var(--muted); font-size: .7rem; }
.public-criteria-grid h3 { font-size: 1.03rem; font-weight: 650; }
.public-family-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.public-family-links a { border: 1px solid var(--line); padding: 22px; text-decoration: none; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.public-family-links span { font-size: .68rem; color: var(--muted); grid-column: 1/-1; }
.public-family-links strong { font-size: 1rem; }
.public-product-family-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 20px; }
.public-product-family-tags a { border: 1px solid var(--line); padding: 6px 12px; border-radius: 4px; color: var(--navy-2); font-size: .75rem; text-decoration: none; }
.public-frequency { font-size: 1.6rem; color: var(--navy); font-weight: 650; letter-spacing: -.025em; }
.public-frequency small { font-size: .8rem; font-weight: 400; }
.public-product-description { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.public-sitemap-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 44px; }
.public-sitemap-grid nav { display: flex; flex-direction: column; gap: 12px; }
.public-sitemap-grid h2 { font-size: 1.3rem; margin-bottom: 12px; }
.public-sitemap-grid a,.public-sitemap-products a { font-size: .88rem; color: var(--navy); text-underline-offset: 4px; }
.public-sitemap-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px 35px; }
@media (max-width: 1100px) {
  .public-nav { gap: 18px; }.public-menu { gap: 16px; }.public-brand img { width: 120px; height: auto; }
  .public-family-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.public-portfolio-slide { gap: 5%; }
  .public-editorial-split { gap: 45px; }.public-quote-button { padding: 12px; font-size: .72rem; }
}
@media (max-width: 900px) {
  .public-site { --shell: min(1240px, calc(100% - 40px)); }.public-nav { flex-wrap: wrap; min-height: 76px; }
  .public-menu-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; width: 44px; height: 44px; }
  .public-quote-button { display: none; }.public-menu { position: static; display: flex; flex-basis: 100%; flex-direction: column; align-items: stretch; margin: 0; border: 0; background: #fff; padding: 16px 0; max-height: calc(100dvh - 120px); overflow-y: auto; }
  .public-js .public-menu:not(.is-open) { display: none; }.public-menu a { padding: 12px; }.public-menu summary { padding: 12px; }
  .public-menu .public-mobile-platform { display: block; color: var(--navy-2); }.public-megamenu { position: static; box-shadow: none; padding: 15px; border-radius: 6px; }
  .public-megamenu-heading { display: block; }.public-megamenu-heading strong { display: none; }.public-megamenu-heading a { padding: 0; display: block; }
  .public-megamenu-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; }.public-megamenu-grid a { padding: 10px; }
  .public-family-grid,.public-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-portfolio-slide { gap: 25px; }.public-hero-product-image { height: 320px; padding: 18px; }
  .public-hero-bottomline { flex-wrap: wrap; gap: 10px; font-size: .52rem; }
  .public-portfolio-intro .public-shell { gap: 25px; grid-template-columns: 1fr 1.3fr; }.public-portfolio-intro .public-text-link { grid-column: 1/-1; }
  .public-family-intro { grid-template-columns: 1fr; gap: 0; }.public-family-signature { display: none; }
  .public-criteria-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.public-family-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .public-site { --shell: calc(100% - 36px); }.public-topbar .public-shell { justify-content: space-between; min-height: 32px; gap: 12px; }.public-topbar .public-shell > span { display: none; }.public-topbar a { font-size: .64rem; }.public-topbar a:last-child { margin-left: auto; }
  .public-site .public-section { padding-block: 52px; }.public-section-heading { display: block; }.public-section-heading > a { display: inline-block; margin-top: 20px; }
  .public-portfolio-hero .public-hero-stage,.public-portfolio-hero .public-hero-slide { min-height: 800px; }
  .public-portfolio-slide { grid-template-columns: 1fr; min-height: 800px; padding-top: 32px; padding-bottom: 12px; gap: 26px; align-content: start; }
  .public-portfolio-hero .public-hero-copy :is(h1,h2) { font-size: clamp(2.3rem,9vw,3.15rem); max-width: 100%; margin: 18px 0; }
  .public-portfolio-hero .public-hero-copy > p:not(.public-kicker) { font-size: .88rem; margin-bottom: 18px; }.public-portfolio-hero .public-actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 14px; }.public-portfolio-hero .public-button { font-size: .78rem; }
  .public-hero-contact { font-size: .73rem; }.public-hero-bottomline { margin-top: 22px; }.public-hero-product-image { height: 260px; padding: 18px; }.public-hero-product-caption { padding: 14px 20px; }.public-hero-product-caption strong { font-size: 1.1rem; }.public-hero-product-caption small { font-size: .55rem; }
  .public-hero-engineering { min-height: 320px; padding: 30px; }.public-hero-engineering > strong { font-size: 2.4rem; }
  .public-portfolio-hero .public-hero-controls { gap: 9px; padding-bottom: 20px; justify-content: center; }.public-portfolio-hero .public-hero-controls [data-public-hero-toggle] span { display: inline; }.public-portfolio-hero .public-hero-count { display: none; }.public-portfolio-hero .public-hero-dots { gap: 0; }.public-portfolio-hero .public-hero-controls [data-public-hero-toggle] { padding: 0 8px; }
  .public-portfolio-intro .public-shell { grid-template-columns: 1fr; gap: 18px; }.public-family-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.public-family-card { padding: 18px; }.public-family-card h3 { font-size: 1.15rem; margin-top: 25px; }.public-family-card p { display: none; }.public-family-card-link { margin-top: 20px; font-size: .65rem; }.public-family-card small { font-size: .58rem; }
  .public-card-grid,.public-editorial-split,.public-home-split,.public-product-description,.public-sitemap-grid,.public-sitemap-products { grid-template-columns: 1fr; }.public-editorial-split { gap: 26px; }.public-product-card .public-card-media { height: 280px; }.public-platform-band { padding-block: 52px; }.public-platform-band .public-actions { align-items: start; }
  .public-family-hero { padding-bottom: 42px; }.public-family-hero .public-breadcrumb { font-size: .65rem; margin-bottom: 30px; }.public-family-lead { font-size: .96rem; }.public-family-hero .public-actions { align-items: stretch; }.public-family-hero .public-button { font-size: .8rem; }
  .public-section-nav > div { gap: 16px; }.public-section-nav a { font-size: .69rem; }.public-family-links { grid-template-columns: 1fr; }.public-sitemap-grid { gap: 28px; }
}
@media (prefers-reduced-motion: reduce) { .public-portfolio-hero.is-enhanced .public-hero-slide { transition-duration: .15s; }.public-family-card { transition: none; } }
/* Grid stacking sizes the carousel from its content, including text zoom. */
.public-portfolio-hero .public-hero-stage { display: grid; }
.public-portfolio-hero .public-hero-slide,.public-portfolio-hero.is-enhanced .public-hero-slide { position: relative; grid-area: 1 / 1; inset: auto; overflow: visible; }
.public-portfolio-hero.is-enhanced .public-hero-slide.was-active:not(.is-active) { visibility: hidden; }
.public-mobile-home { display: none; }
.public-product-card-body > p { font-size: 1rem; }
.public-product-card-body > small,.public-family-card small,.public-hero-product-caption small,.public-megamenu-grid small { font-size: .75rem; }
.public-family-card p,.public-family-card-link,.public-section-nav a,.public-product-card .public-product-actions { font-size: .875rem; }
.public-hero-bottomline { font-size: .75rem; flex-wrap: wrap; }
@media (max-width: 900px) { .public-mobile-home { display: inline-flex; margin-left: auto; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 6px; font-size: .875rem; font-weight: 650; text-decoration: none; }.public-menu-toggle { margin-left: 0; } }
@media (max-width: 600px) { .public-family-card-link { font-size: .75rem; }.public-topbar a { font-size: .75rem; }.public-hero-bottomline { font-size: .6rem; }.public-hero-product-caption small { font-size: .75rem; }.public-portfolio-hero .public-hero-copy > p:not(.public-kicker) { font-size: 1rem; }.public-hero-contact { font-size: .875rem; } }

/* Keep logo, Início and menu on one row at 320 CSS pixels. */
@media (max-width: 600px) {
  .public-nav { column-gap: 10px; }
  .public-brand img { width: 108px; }
  .public-mobile-home { padding-inline: 12px; }
}

/* Public engineering entry points; keep the product identity in EFTX blue. */
.public-open-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.public-open-tools-grid article{padding:clamp(1.2rem,3vw,2.5rem);border:1px solid #d7e0f0;background:#f5f7fc;border-radius:1rem;display:flex;flex-direction:column;align-items:flex-start}.public-open-tools-grid h3{font-size:clamp(1.35rem,2.5vw,2rem);color:#00185f;margin:.8rem 0}.public-open-tools-grid p{max-width:55ch;flex:1}.public-open-tools-grid .public-button{margin-top:1rem}.public-menu{gap:clamp(.65rem,1.3vw,1.3rem)}@media(max-width:1150px) and (min-width:901px){.public-nav{flex-wrap:wrap}.public-menu{flex-wrap:wrap}.public-quote-button{display:none}}@media(max-width:700px){.public-open-tools-grid{grid-template-columns:1fr}}

.public-open-tools-grid .public-kicker{color:#00208a}
.public-family-card > div{flex-wrap:wrap;align-items:flex-start}

/* Hero canônico: cinco artes aprovadas, transições 3D sorteadas pelo JS. */
.public-source-hero {
  --hero-enter: translate3d(18%, 0, -420px) rotateY(-32deg) scale(.86);
  --hero-leave: translate3d(-14%, 0, -320px) rotateY(24deg) scale(.9);
  --hero-light-x: 76%;
  --hero-light-y: 46%;
  min-height: clamp(590px, calc(100svh - 116px), 820px);
  background:
    radial-gradient(circle at 76% 48%, rgba(0, 183, 255, .2), transparent 34%),
    #010b26;
  perspective: 1800px;
}
.public-source-hero::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: radial-gradient(circle 190px at var(--hero-light-x) var(--hero-light-y), rgba(54, 218, 255, .17), transparent 74%);
  mix-blend-mode: screen;
  pointer-events: none;
  content: "";
  transition: background-position .18s ease-out;
}
.public-source-hero .public-hero-stage,
.public-source-hero .public-hero-slide,
.public-source-hero .public-hero-content {
  min-height: clamp(590px, calc(100svh - 116px), 820px);
}
.public-source-hero .public-hero-stage {
  transform-style: preserve-3d;
}
.public-source-hero .public-hero-slide {
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
.public-source-hero.is-enhanced .public-hero-slide {
  display: block;
  visibility: hidden;
  opacity: 0;
  transform: var(--hero-enter);
  transform-origin: 50% 50%;
  transition:
    opacity .62s ease,
    transform 1.08s cubic-bezier(.18,.76,.16,1),
    visibility 0s linear 1.08s;
}
.public-source-hero.is-enhanced .public-hero-slide.was-active {
  visibility: visible;
  opacity: 0;
  transform: var(--hero-leave);
  transition-delay: 0s;
}
.public-source-hero.is-enhanced .public-hero-slide.is-active {
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 0, 0) rotateX(0) rotateY(0) rotateZ(0) scale(1);
  transition-delay: 0s;
}
.public-source-hero[data-direction="previous"] {
  --hero-enter: translate3d(-18%, 0, -420px) rotateY(32deg) scale(.86);
  --hero-leave: translate3d(14%, 0, -320px) rotateY(-24deg) scale(.9);
}
.public-source-hero[data-transition="cube"] {
  --hero-enter: translate3d(46%, 0, -260px) rotateY(-68deg) scale(.82);
  --hero-leave: translate3d(-46%, 0, -260px) rotateY(68deg) scale(.82);
}
.public-source-hero[data-direction="previous"][data-transition="cube"] {
  --hero-enter: translate3d(-46%, 0, -260px) rotateY(68deg) scale(.82);
  --hero-leave: translate3d(46%, 0, -260px) rotateY(-68deg) scale(.82);
}
.public-source-hero[data-transition="fold"] {
  --hero-enter: translate3d(0, -16%, -280px) rotateX(66deg) scale(.88);
  --hero-leave: translate3d(0, 14%, -260px) rotateX(-58deg) scale(.9);
}
.public-source-hero[data-direction="previous"][data-transition="fold"] {
  --hero-enter: translate3d(0, 16%, -280px) rotateX(-66deg) scale(.88);
  --hero-leave: translate3d(0, -14%, -260px) rotateX(58deg) scale(.9);
}
.public-source-hero[data-transition="twist"] {
  --hero-enter: translate3d(16%, 8%, -360px) rotate3d(1, 1, 0, 38deg) scale(.8);
  --hero-leave: translate3d(-12%, -7%, -300px) rotate3d(1, 1, 0, -28deg) scale(.9);
}
.public-source-hero[data-direction="previous"][data-transition="twist"] {
  --hero-enter: translate3d(-16%, -8%, -360px) rotate3d(1, 1, 0, -38deg) scale(.8);
  --hero-leave: translate3d(12%, 7%, -300px) rotate3d(1, 1, 0, 28deg) scale(.9);
}
.public-source-hero[data-transition="focus"] {
  --hero-enter: translate3d(0, 0, -620px) rotateZ(-2.5deg) scale(.64);
  --hero-leave: translate3d(0, 0, 120px) rotateZ(1.5deg) scale(1.09);
}
.public-source-hero-media {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  transform: translateZ(-1px);
}
.public-source-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.08) contrast(1.04);
  transform: scale(1.045);
  transition: transform 7.2s cubic-bezier(.18,.7,.18,1), filter .8s ease;
}
.public-source-hero .is-active .public-source-hero-media img {
  transform: scale(1.005);
}
.public-source-hero .public-hero-shade {
  background:
    linear-gradient(90deg, #010b26 0%, rgba(1,11,38,.985) 37%, rgba(1,11,38,.9) 48%, rgba(1,11,38,.28) 70%, rgba(1,11,38,.04) 100%),
    linear-gradient(0deg, rgba(1,11,38,.9), transparent 43%);
}
.public-source-hero .public-hero-copy {
  position: relative;
  width: min(610px, 48%);
  padding: 46px 0;
  text-shadow: 0 2px 18px rgba(0,0,0,.42);
}
.public-source-hero .public-hero-copy :is(h1,h2) {
  font-size: clamp(2.55rem, 4.6vw, 4.9rem);
  font-weight: 680;
}
.public-source-hero .public-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #88dbff;
  font-size: .74rem;
  font-weight: 760;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.public-source-hero .public-button {
  border-color: #fff;
  background: #fff;
  color: var(--navy);
}
.public-source-hero .public-hero-controls {
  bottom: 24px;
}
.public-source-hero .public-hero-controls::before {
  width: 54px;
  height: 1px;
  margin-right: 2px;
  background: linear-gradient(90deg, #15c8ff, transparent);
  content: "";
}
.public-source-hero-orbit {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: clamp(-120px, -5vw, -30px);
  width: clamp(260px, 34vw, 620px);
  aspect-ratio: 1;
  transform: translateY(-50%);
  pointer-events: none;
  opacity: .2;
}
.public-source-hero-orbit span {
  position: absolute;
  inset: calc(var(--orbit-index, 0) * 12%);
  border: 1px solid rgba(71, 212, 255, .5);
  border-radius: 50%;
  box-shadow: inset 0 0 30px rgba(0, 162, 255, .12);
  animation: public-source-orbit 12s linear infinite;
}
.public-source-hero-orbit span:nth-child(2) { --orbit-index: 1; animation-direction: reverse; animation-duration: 16s; }
.public-source-hero-orbit span:nth-child(3) { --orbit-index: 2; animation-duration: 9s; }
@keyframes public-source-orbit {
  50% { transform: rotateX(68deg) rotateZ(180deg) scale(.94); opacity: .45; }
  100% { transform: rotateX(0) rotateZ(360deg) scale(1); }
}

@media (max-width: 900px) {
  .public-source-hero .public-hero-copy { width: min(620px, 72%); }
  .public-source-hero .public-hero-shade {
    background: linear-gradient(90deg, #010b26 0%, rgba(1,11,38,.96) 56%, rgba(1,11,38,.38) 100%);
  }
}
@media (max-width: 640px) {
  .public-source-hero,
  .public-source-hero .public-hero-stage,
  .public-source-hero .public-hero-slide,
  .public-source-hero .public-hero-content {
    min-height: max(650px, calc(100svh - 92px));
  }
  .public-source-hero {
    perspective: 900px;
  }
  .public-source-hero-media img {
    object-position: 76% center;
  }
  .public-source-hero .public-hero-shade {
    background:
      linear-gradient(0deg, #010b26 0%, rgba(1,11,38,.99) 46%, rgba(1,11,38,.7) 70%, rgba(1,11,38,.08) 100%),
      linear-gradient(90deg, rgba(1,11,38,.25), transparent);
  }
  .public-source-hero .public-hero-content {
    align-items: flex-end;
    padding: 185px 0 100px;
  }
  .public-source-hero .public-hero-copy {
    width: 100%;
    padding: 18px 0;
  }
  .public-source-hero .public-hero-copy :is(h1,h2) {
    font-size: clamp(2rem, 10vw, 3.1rem);
  }
  .public-source-hero .public-hero-copy > p:not(.public-kicker) {
    font-size: .96rem;
    line-height: 1.55;
  }
  .public-source-hero .public-hero-controls::before,
  .public-source-hero-orbit {
    display: none;
  }
  .public-source-hero .public-hero-controls [data-public-hero-toggle] [data-playback-icon] {
    display: inline;
  }
  .public-source-hero.is-enhanced .public-hero-slide,
  .public-source-hero.is-enhanced .public-hero-slide.was-active {
    transform: translate3d(12%, 0, -150px) rotateY(-14deg) scale(.94);
  }
  .public-source-hero.is-enhanced[data-direction="previous"] .public-hero-slide,
  .public-source-hero.is-enhanced[data-direction="previous"] .public-hero-slide.was-active {
    transform: translate3d(-12%, 0, -150px) rotateY(14deg) scale(.94);
  }
  .public-source-hero.is-enhanced .public-hero-slide.is-active {
    transform: translate3d(0, 0, 0) rotateY(0) scale(1);
  }
}
@media (max-height: 520px) and (orientation: landscape) {
  .public-source-hero,
  .public-source-hero .public-hero-stage,
  .public-source-hero .public-hero-slide,
  .public-source-hero .public-hero-content {
    min-height: 470px;
  }
  .public-source-hero .public-hero-content {
    padding: 24px 0 76px;
  }
  .public-source-hero .public-hero-copy {
    width: min(620px, 62%);
    padding: 12px 0;
  }
  .public-source-hero .public-hero-copy :is(h1,h2) { font-size: clamp(1.8rem, 5vw, 2.8rem); }
  .public-source-hero .public-hero-copy > p:not(.public-kicker) { margin: 10px 0 14px; font-size: .82rem; line-height: 1.4; }
  .public-source-hero .public-hero-bottomline { margin-top: 14px; }
  .public-source-hero .public-hero-controls { bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .public-source-hero.is-enhanced .public-hero-slide,
  .public-source-hero.is-enhanced .public-hero-slide.was-active,
  .public-source-hero.is-enhanced .public-hero-slide.is-active {
    transform: none;
    transition: opacity .2s linear, visibility 0s linear .2s;
  }
  .public-source-hero-media img,
  .public-source-hero .is-active .public-source-hero-media img {
    transform: none;
    transition: none;
  }
  .public-source-hero-orbit span { animation: none; }
  .public-source-hero::after { display: none; }
}
