/* Hallmark · genre: modern-minimal technical · macrostructure: System Map · theme: studied-DNA (Certa software house) · enrichment: Tier-A CSS trace · nav: N9 · footer: Ft5 · pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive/mobile: pass (34,49–57) · icons: pass (30) */
:root {
  --sh-ink: oklch(18% 0.035 248);
  --sh-ink-2: oklch(27% 0.045 246);
  --sh-blue: oklch(52% 0.16 244);
  --sh-blue-dark: oklch(38% 0.13 245);
  --sh-cyan: oklch(71% 0.13 205);
  --sh-green: oklch(69% 0.14 153);
  --sh-paper: oklch(98.2% 0.006 232);
  --sh-soft: oklch(95.5% 0.016 230);
  --sh-rule: oklch(83% 0.025 235);
  --sh-muted: oklch(48% 0.03 245);
  --sh-white: oklch(100% 0 0);
  --sh-orange: oklch(67.24% 0.13084 38.76);
  --sh-shadow: oklch(16% 0.04 245 / 0.14);
  --sh-page: 86rem;
  --sh-gutter: clamp(1rem, 4vw, 3.5rem);
  --sh-header: 4.75rem;
  --sh-contact-rail: 4rem;
  --sh-mono: "JetBrains Mono", ui-monospace, monospace;
  --sh-sans: "Manrope", ui-sans-serif, sans-serif;
  --sh-fast: 150ms;
  --sh-ease: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--sh-paper); color: var(--sh-ink); font-family: var(--sh-sans); line-height: 1.6; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .38; background-image: linear-gradient(var(--sh-rule) 1px, transparent 1px), linear-gradient(90deg, var(--sh-rule) 1px, transparent 1px); background-size: 4.5rem 4.5rem; mask-image: linear-gradient(to bottom, transparent, black 18%, black 72%, transparent); }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.sh-shell { width: min(100%, var(--sh-page)); margin-inline: auto; padding-inline: var(--sh-gutter); }
.sh-skip { position: fixed; z-index: 1000; inset: .75rem auto auto .75rem; padding: .75rem 1rem; background: var(--sh-white); color: var(--sh-ink); transform: translateY(-160%); }
.sh-skip:focus { transform: none; }

.sh-topo { position: sticky; z-index: 300; inset-block-start: 0; height: calc(var(--sh-header) + var(--sh-contact-rail)); border-block-end: 1px solid var(--sh-rule); background: linear-gradient(to bottom, var(--sh-ink) 0 var(--sh-header), var(--sh-white) var(--sh-header) 100%); color: var(--sh-white); }
.sh-topo__inner { height: var(--sh-header); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }
.sh-brand { display: flex; align-items: center; gap: .85rem; text-decoration: none; }
.sh-brand img { width: 10.3rem; height: auto; display: block; }
.sh-brand span { padding-inline-start: .85rem; border-inline-start: 1px solid oklch(100% 0 0 / .25); color: oklch(91% 0.03 235); font: 600 .72rem/1 var(--sh-mono); letter-spacing: .1em; }
.sh-menu { display: flex; justify-content: center; align-items: center; gap: .25rem; }
.sh-menu a { padding: .7rem .85rem; color: oklch(91% 0.02 235); text-decoration: none; font-size: .92rem; font-weight: 700; white-space: nowrap; transition: background-color var(--sh-fast), color var(--sh-fast); }
.sh-menu a:hover, .sh-menu a:focus-visible { background: var(--sh-white); color: var(--sh-ink); }
/* Hallmark · component: contact tool · genre: modern-minimal technical · theme: Certa Soluções
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass · pre-emit critique: P5 H5 E5 S5 R5 V5
 */
.sh-menu .sh-topo__cta {
  position: absolute;
  inset-block-start: calc(var(--sh-header) + .5rem);
  inset-inline-end: max(var(--sh-gutter), calc((100% - var(--sh-page)) / 2 + var(--sh-gutter)));
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-inline: 1.1rem;
  border: 2px solid var(--sh-blue-dark);
  background: var(--sh-cyan);
  box-shadow: .35rem .35rem 0 var(--sh-green);
  color: var(--sh-ink);
  text-decoration: none;
  font-weight: 800;
  font-size: .9rem;
  white-space: nowrap;
  transition: background-color var(--sh-fast) var(--sh-ease), color var(--sh-fast) var(--sh-ease), transform var(--sh-fast) var(--sh-ease);
}
.sh-menu .sh-topo__cta > span:not([aria-hidden]) { color: inherit; }
.sh-menu .sh-topo__cta > span[aria-hidden="true"] { color: var(--sh-blue-dark); }
.sh-menu .sh-topo__cta:focus-visible { outline: 3px solid var(--sh-ink); outline-offset: 3px; box-shadow: 0 0 0 7px var(--sh-paper), .35rem .35rem 0 var(--sh-green); color: var(--sh-ink); }
.sh-menu .sh-topo__cta:active { transform: translateY(1px); }
.sh-menu .sh-topo__cta[aria-disabled="true"] { cursor: not-allowed; pointer-events: none; opacity: .5; }
.sh-menu .sh-topo__cta[aria-busy="true"] { cursor: progress; opacity: .72; }
.sh-menu .sh-topo__cta[aria-busy="true"]::before { content: "•••"; font-family: var(--sh-mono); letter-spacing: .08em; }
.sh-menu .sh-topo__cta[data-state="error"] { border-color: var(--sh-orange); background: var(--sh-ink); color: var(--sh-paper); }
.sh-menu .sh-topo__cta[data-state="error"] > span[aria-hidden="true"] { color: var(--sh-orange); }
.sh-menu .sh-topo__cta[data-state="success"] { border-color: var(--sh-green); background: var(--sh-ink); color: var(--sh-paper); }
.sh-menu .sh-topo__cta[data-state="success"] > span[aria-hidden="true"] { color: var(--sh-green); }
.sh-menu-toggle { display: none; border: 0; background: transparent; color: var(--sh-white); cursor: pointer; }

@media (hover: hover) and (pointer: fine) {
  .sh-menu .sh-topo__cta:hover { background: var(--sh-paper); color: var(--sh-ink); }
}
@media (hover: none) {
  .sh-menu .sh-topo__cta:hover { background: var(--sh-cyan); color: var(--sh-ink); transform: none; }
}

.sh-feature-rail { position: relative; z-index: 2; border-block-end: 1px solid var(--sh-rule); background: var(--sh-white); overflow: hidden; }
.sh-feature-rail__inner { min-height: 11.25rem; display: grid; grid-template-columns: 8rem minmax(0, 1fr) auto; gap: clamp(1.5rem, 3vw, 3rem); align-items: center; padding-block: 1.35rem; }
.sh-feature-rail__label { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding-inline-end: 1rem; border-inline-end: 1px solid var(--sh-rule); color: var(--sh-muted); font: 700 .7rem/1.35 var(--sh-mono); letter-spacing: .075em; }
.sh-feature-rail__label span { color: var(--sh-orange); }.sh-feature-rail__label b { color: var(--sh-ink); font-size: .8rem; }
.sh-feature-rail__viewport { display: grid; min-width: 0; touch-action: pan-y; }
.sh-feature-rail__slide { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(17rem, .9fr) minmax(16rem, 1fr) auto; gap: clamp(1.4rem, 3vw, 3rem); align-items: center; opacity: 0; visibility: hidden; transform: translateX(1.2rem); pointer-events: none; transition: opacity 480ms var(--sh-ease), transform 480ms var(--sh-ease), visibility 480ms; }
.sh-feature-rail__slide.is-active { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.sh-feature-rail__slide small { color: var(--slide-accent, var(--sh-blue)); font: 700 .7rem/1.3 var(--sh-mono); letter-spacing: .075em; }
.sh-feature-rail__slide h2 { margin: .35rem 0 0; font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.12; letter-spacing: -.035em; }
.sh-feature-rail__slide p { max-width: 38rem; margin: 0; color: var(--sh-muted); font-size: .98rem; line-height: 1.55; }
.sh-feature-rail__slide a { color: var(--sh-blue-dark); font-size: .9rem; font-weight: 800; white-space: nowrap; text-underline-offset: .32em; transition: color var(--sh-fast), text-underline-offset var(--sh-fast); }
.sh-feature-rail__slide a:hover,.sh-feature-rail__slide a:focus-visible { color: var(--sh-orange); text-underline-offset: .18em; }
.sh-feature-rail__controls { display: grid; grid-template-columns: repeat(2, 2rem); gap: .45rem; align-items: center; }
.sh-feature-rail__controls > button { width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid var(--sh-rule); background: var(--sh-paper); color: var(--sh-ink); cursor: pointer; transition: border-color var(--sh-fast), background-color var(--sh-fast), color var(--sh-fast); }
.sh-feature-rail__controls > button:hover,.sh-feature-rail__controls > button:focus-visible { border-color: var(--sh-orange); background: var(--sh-orange); color: var(--sh-white); }
.sh-feature-rail__dots { grid-column: 1 / -1; display: flex; justify-content: center; gap: .35rem; order: -1; }
.sh-feature-rail__dots button { width: .45rem; height: .45rem; padding: 0; border: 0; border-radius: 50%; background: var(--sh-rule); cursor: pointer; transition: width var(--sh-fast), background-color var(--sh-fast); }
.sh-feature-rail__dots button.is-active { width: 1.3rem; border-radius: 999px; background: var(--sh-orange); }
.sh-feature-rail__pause { grid-column: 1 / -1; width: 100% !important; height: 1.5rem !important; font: 700 .62rem/1 var(--sh-mono) !important; }
.sh-feature-rail__countdown { grid-column: 1 / -1; color: var(--sh-orange); font: 700 .72rem/1 var(--sh-mono); letter-spacing: .055em; text-align: center; white-space: nowrap; }

.sh-hero { padding-block: clamp(2.25rem, 3.4vw, 3rem) clamp(3.25rem, 4.5vw, 4.4rem); background: var(--sh-ink); color: var(--sh-white); overflow: hidden; }
.sh-hero__grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(31rem, 1.04fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.sh-kicker, .sh-index { margin: 0; color: var(--sh-blue); font: 700 .72rem/1.45 var(--sh-mono); letter-spacing: .09em; text-transform: uppercase; }
.sh-kicker { display: flex; align-items: center; gap: .8rem; color: var(--sh-cyan); }
.sh-kicker::before { content: ""; width: 2rem; border-block-start: 2px solid currentColor; }
.sh-hero h1 { max-width: 12ch; margin: 1.1rem 0 1rem; font-size: clamp(3rem, 5.2vw, 4.35rem); line-height: .98; letter-spacing: -.065em; text-wrap: balance; }
.sh-hero h1 em { color: var(--sh-cyan); font-style: normal; }
.sh-hero__lead { max-width: 39rem; margin: 0; color: oklch(86% 0.025 235); font-size: clamp(1rem, 1.55vw, 1.25rem); }
.sh-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.35rem; margin-block-start: 2rem; }
.sh-button { min-height: 3.1rem; display: inline-flex; align-items: center; justify-content: center; padding-inline: 1.25rem; border: 1px solid var(--sh-cyan); background: var(--sh-cyan); color: var(--sh-ink); text-decoration: none; font-weight: 800; transition: background-color var(--sh-fast), color var(--sh-fast); }
.sh-button:hover, .sh-button:focus-visible { background: transparent; color: var(--sh-white); }
.sh-text-link, .sh-product-row a, .sh-journal a { color: var(--sh-cyan); font-weight: 800; text-decoration-color: currentColor; text-decoration-thickness: 2px; text-underline-offset: .35em; transition: color var(--sh-fast), text-underline-offset var(--sh-fast); }
.sh-text-link:hover, .sh-text-link:focus-visible, .sh-product-row a:hover, .sh-product-row a:focus-visible, .sh-journal a:hover, .sh-journal a:focus-visible { color: var(--sh-green); text-underline-offset: .18em; }
.sh-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2.5rem 0 0; padding-block-start: 1.25rem; border-block-start: 1px solid oklch(100% 0 0 / .18); }
.sh-hero__facts div { padding-inline-end: 1rem; }
.sh-hero__facts dt { color: var(--sh-cyan); font: 600 .65rem/1 var(--sh-mono); text-transform: uppercase; }
.sh-hero__facts dd { margin: .5rem 0 0; color: oklch(86% 0.025 235); font-size: .8rem; }

.sh-map { border: 1px solid oklch(100% 0 0 / .22); background: var(--sh-ink-2); box-shadow: 1.1rem 1.1rem 0 oklch(12% 0.025 248); }
.sh-map__head, .sh-map__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1rem; font: 600 .65rem/1.4 var(--sh-mono); }
.sh-map__head { border-block-end: 1px solid oklch(100% 0 0 / .15); color: oklch(78% 0.035 235); }
.sh-map__head b { color: var(--sh-green); }
.sh-map__canvas { position: relative; min-height: 27rem; overflow: hidden; }
.sh-map__canvas::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(var(--sh-white) 1px, transparent 1px), linear-gradient(90deg, var(--sh-white) 1px, transparent 1px); background-size: 2rem 2rem; }
.sh-map__core { position: absolute; z-index: 3; inset: 50% auto auto 50%; width: 10.5rem; aspect-ratio: 1; display: grid; place-content: center; text-align: center; border: 1px solid var(--sh-cyan); border-radius: 50%; background: var(--sh-ink); transform: translate(-50%, -50%); box-shadow: 0 0 0 .6rem oklch(71% .13 205 / .1); }
.sh-map__core small { color: var(--sh-cyan); font: 600 .6rem/1 var(--sh-mono); }
.sh-map__core strong { margin-block: .35rem; font-size: 1.3rem; }
.sh-map__core span { color: oklch(78% .025 235); font-size: .66rem; }
.sh-map__node { position: absolute; z-index: 3; width: 9.8rem; padding: .8rem; border: 1px solid oklch(100% 0 0 / .25); background: var(--sh-ink-2); color: var(--sh-white); text-decoration: none; transition: border-color var(--sh-fast), background-color var(--sh-fast); }
.sh-map__node:hover, .sh-map__node:focus-visible { border-color: var(--sh-green); background: var(--sh-ink); }
.sh-map__node small { display: block; color: var(--sh-cyan); font: 600 .56rem/1.3 var(--sh-mono); text-transform: uppercase; }
.sh-map__node strong { display: block; margin-block-start: .25rem; font-size: .78rem; }
.sh-map__node--1 { inset: 2.5rem auto auto 2rem; }.sh-map__node--2 { inset: 2.5rem 2rem auto auto; }.sh-map__node--3 { inset: auto auto 2.5rem 2rem; }.sh-map__node--4 { inset: auto 2rem 2.5rem auto; }
.sh-map__line { position: absolute; z-index: 2; width: 24%; border-block-start: 1px dashed var(--sh-cyan); transform-origin: center; opacity: .7; }
.sh-map__line--1 { left: 25%; top: 30%; transform: rotate(26deg); }.sh-map__line--2 { right: 25%; top: 30%; transform: rotate(-26deg); }.sh-map__line--3 { left: 25%; bottom: 30%; transform: rotate(-26deg); }.sh-map__line--4 { right: 25%; bottom: 30%; transform: rotate(26deg); }
.sh-map__foot { border-block-start: 1px solid oklch(100% 0 0 / .15); color: oklch(78% .025 235); }
.sh-map__foot span { display: flex; align-items: center; gap: .45rem; }.sh-map__foot i { width: .55rem; height: .55rem; border-radius: 50%; background: var(--sh-green); box-shadow: 0 0 0 .25rem oklch(69% .14 153 / .15); }.sh-map__foot code { color: var(--sh-cyan); font-family: var(--sh-mono); font-size: .58rem; }

.sh-signal { border-block: 1px solid var(--sh-rule); background: var(--sh-white); }
.sh-signal .sh-shell { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 1rem; }
.sh-signal span { padding-inline: 1rem; border-inline-end: 1px solid var(--sh-rule); color: var(--sh-muted); font: 600 .66rem/1.4 var(--sh-mono); text-transform: uppercase; }.sh-signal span:first-child { padding-inline-start: 0; }.sh-signal span:last-child { border: 0; }

.sh-section { padding-block: clamp(3.25rem, 5.5vw, 5.4rem); }
.sh-section__head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; align-items: start; margin-block-end: 2.4rem; }
.sh-section__head > .sh-index { margin-block-end: .35rem; }
.sh-section__head h2, .sh-engineering h2, .sh-contact h2 { max-width: 21ch; margin: 0 0 1rem; font-size: clamp(2.2rem, 4.6vw, 4.5rem); line-height: 1.02; letter-spacing: -.055em; text-wrap: balance; }
.sh-section__head > div > p { max-width: 48rem; margin: 0; color: var(--sh-muted); font-size: 1.05rem; }
.sh-product-list { border-block-start: 2px solid var(--sh-ink); }
.sh-product-row { display: grid; grid-template-columns: 4rem minmax(12rem, .75fr) minmax(18rem, 1fr) auto; gap: 1.5rem; align-items: center; padding-block: 1.3rem; border-block-end: 1px solid var(--sh-rule); }
.sh-product-row__num { color: var(--sh-blue); font: 700 .75rem/1 var(--sh-mono); }
.sh-product-row small { color: var(--sh-muted); font: 600 .65rem/1.3 var(--sh-mono); text-transform: uppercase; }.sh-product-row h3 { margin: .3rem 0 0; font-size: 1.35rem; }.sh-product-row p { margin: 0; color: var(--sh-muted); }.sh-product-row a { color: var(--sh-blue-dark); white-space: nowrap; }

.sh-section--ink { background: var(--sh-ink); color: var(--sh-white); }
.sh-engineering { display: grid; grid-template-columns: minmax(0, .82fr) minmax(30rem, 1.18fr); gap: clamp(3rem, 7vw, 7rem); }
.sh-engineering .sh-index { color: var(--sh-cyan); }.sh-engineering h2 { margin-block-start: 1.4rem; }.sh-engineering h2 em { color: var(--sh-cyan); font-style: normal; }
.sh-engineering__matrix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block-start: 1px solid oklch(100% 0 0 / .25); border-inline-start: 1px solid oklch(100% 0 0 / .25); }
.sh-engineering__matrix article { min-height: 13rem; padding: 1.5rem; border-block-end: 1px solid oklch(100% 0 0 / .25); border-inline-end: 1px solid oklch(100% 0 0 / .25); }
.sh-engineering__matrix span { color: var(--sh-green); font: 700 .65rem/1 var(--sh-mono); }.sh-engineering__matrix h3 { margin: 1.6rem 0 .65rem; font-size: 1.15rem; }.sh-engineering__matrix p { margin: 0; color: oklch(79% .025 235); font-size: .88rem; }

.sh-process { list-style: none; margin: 0; padding: 0; border-block-start: 2px solid var(--sh-ink); }
.sh-process li { display: grid; grid-template-columns: 4rem minmax(15rem, .8fr) minmax(0, 1.2fr); gap: 2rem; align-items: start; padding-block: 1.45rem; border-block-end: 1px solid var(--sh-rule); }
.sh-process li > b { color: var(--sh-blue); font: 700 .75rem/1.5 var(--sh-mono); }.sh-process small { color: var(--sh-muted); font: 600 .62rem/1 var(--sh-mono); }.sh-process h3 { margin: .4rem 0 0; font-size: 1.25rem; }.sh-process p { max-width: 45rem; margin: 0; color: var(--sh-muted); }

.sh-proof { background: var(--sh-soft); }
.sh-proof__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 8vw, 8rem); }
.sh-proof__statement { max-width: 24ch; margin: 1.5rem 0 0; font-size: clamp(1.8rem, 3.5vw, 3.2rem); font-weight: 800; line-height: 1.12; letter-spacing: -.04em; }
.sh-proof figure { margin: 0; padding-inline-start: 2rem; border-inline-start: 3px solid var(--sh-blue); }.sh-proof blockquote { margin: 0 0 2rem; font-size: 1.25rem; line-height: 1.65; }.sh-proof figcaption { display: grid; }.sh-proof figcaption span { color: var(--sh-muted); font-size: .82rem; }

.sh-journal { display: grid; grid-template-columns: 1.2fr .8fr; gap: 0 3rem; border-block-start: 2px solid var(--sh-ink); }
.sh-journal article { padding-block: 1.25rem; border-block-end: 1px solid var(--sh-rule); }.sh-journal__lead { grid-row: span 2; padding-inline-end: 3rem; border-inline-end: 1px solid var(--sh-rule); }.sh-journal small { color: var(--sh-muted); font: 600 .62rem/1.4 var(--sh-mono); }.sh-journal h3 { max-width: 23ch; margin: .8rem 0; font-size: 1.35rem; line-height: 1.25; }.sh-journal__lead h3 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); }.sh-journal p { color: var(--sh-muted); }.sh-journal a { color: var(--sh-blue-dark); }

.sh-contact { padding-block: clamp(3.25rem, 5.5vw, 5rem); background: var(--sh-blue-dark); color: var(--sh-white); }
.sh-contact__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: end; }.sh-contact .sh-index { color: var(--sh-cyan); }.sh-contact h2 { margin-block-start: 1.4rem; }.sh-contact h2 em { color: var(--sh-cyan); font-style: normal; }.sh-contact__grid > div:last-child p { max-width: 36rem; margin: 0 0 1.5rem; color: oklch(88% .025 235); }.sh-button--light { border-color: var(--sh-white); background: var(--sh-white); }.sh-button--light:hover { border-color: var(--sh-cyan); }

.sh-footer { padding-block: 2.6rem 1.25rem; border-block-start: .2rem solid var(--sh-cyan); background: var(--sh-ink); color: var(--sh-white); }.sh-footer__top { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }.sh-footer__top img { width: clamp(14rem,20vw,16rem); height: auto; }.sh-footer__pitch { display: grid; justify-items: end; gap: 1rem; }.sh-footer__top p { max-width: 32rem; margin: 0; color: oklch(78% .025 235); text-align: end; }.sh-footer__pitch>div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .7rem; }.sh-footer__pitch a { display: inline-flex; min-height: 2.7rem; align-items: center; gap: .6rem; padding-inline: .85rem; border: 1px solid var(--sh-cyan); color: var(--sh-cyan); font-weight: 800; text-decoration: none; }.sh-footer__pitch .sh-footer__primary { background: var(--sh-cyan); color: var(--sh-ink); }.sh-footer__pitch a:hover,.sh-footer__pitch a:focus-visible { background: var(--sh-white); border-color: var(--sh-white); color: var(--sh-ink); }.sh-footer__contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-block: 1.5rem; padding-block: 1.2rem; border-block: 1px solid oklch(100% 0 0 / .18); }.sh-footer__contact span { display: grid; gap: .45rem; }.sh-footer__contact small { color: var(--sh-cyan); font: 600 .62rem/1 var(--sh-mono); }.sh-footer__contact a { color: var(--sh-cyan); font-weight: 700; text-underline-offset: .3em; }.sh-footer__credit { display: flex; justify-content: space-between; gap: 2rem; padding-block: .75rem; color: oklch(78% .025 235); font-size: .78rem; }.sh-footer__credit a { color: var(--sh-cyan); font-weight: 800; text-underline-offset: .3em; }.sh-footer__credit strong { color: var(--sh-white); }.sh-footer__bottom { display: flex; justify-content: space-between; gap: 2rem; padding-block-start: .8rem; border-block-start: 1px solid oklch(100% 0 0 / .18); color: oklch(70% .025 235); font-size: .78rem; }.sh-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }.sh-footer__bottom a { color: var(--sh-cyan); }
.sh-preview-note { position: fixed; z-index: 500; inset: auto auto 1rem 1rem; display: flex; gap: .75rem; padding: .65rem .85rem; border: 1px solid var(--sh-rule); background: var(--sh-white); box-shadow: 0 .5rem 1.5rem var(--sh-shadow); font-size: .72rem; }.sh-preview-note b { color: var(--sh-blue-dark); font-family: var(--sh-mono); }

.page-scroll-index[hidden] { display: none !important; }.page-scroll-index { position: fixed; z-index: 700; inset: calc(var(--sh-header) + .85rem) .25rem 1rem auto; width: 1rem; transition: width var(--sh-fast) var(--sh-ease); }.page-scroll-index:hover,.page-scroll-index:focus-within { width: 1.2rem; }.page-scroll-index__track { position: absolute; inset: 0; overflow: hidden; border: 1px solid var(--sh-blue-dark); border-radius: 999px; background: var(--sh-blue); cursor: pointer; outline: none; }.page-scroll-index__track:focus-visible { outline: 3px solid var(--sh-cyan); outline-offset: 3px; }.page-scroll-index__thumb { position: absolute; z-index: 2; inset: 0 .2rem auto; min-height: 2.5rem; border-radius: 999px; background: var(--sh-cyan); cursor: grab; touch-action: none; }.page-scroll-index__thumb:active,html.page-scroll-index--dragging .page-scroll-index__thumb { cursor: grabbing; }.page-scroll-index__marks { position: absolute; z-index: 3; inset: 0; pointer-events: none; }.page-scroll-index__mark { position: absolute; right: 50%; width: 2rem; height: 2rem; border: 0; background: transparent; transform: translate(50%,-50%); pointer-events: auto; cursor: pointer; }.page-scroll-index__dot { position: absolute; inset: 50% auto auto 50%; width: .38rem; height: .38rem; border: 1px solid var(--sh-white); border-radius: 50%; background: var(--sh-white); transform: translate(-50%,-50%); }.page-scroll-index__mark.is-active .page-scroll-index__dot,.page-scroll-index__mark:hover .page-scroll-index__dot,.page-scroll-index__mark:focus-visible .page-scroll-index__dot { width: .7rem; height: .7rem; background: var(--sh-ink); }.page-scroll-index__label { position: absolute; inset: 50% calc(100% + .65rem) auto auto; width: max-content; max-width: min(18rem,calc(100vi - 4rem)); padding: .45rem .65rem; background: var(--sh-ink); color: var(--sh-white); font: 700 .68rem/1.3 var(--sh-sans); white-space: nowrap; opacity: 0; visibility: hidden; transform: translate(.4rem,-50%); transition: opacity var(--sh-fast),transform var(--sh-fast),visibility var(--sh-fast); }.page-scroll-index__mark:hover .page-scroll-index__label,.page-scroll-index__mark:focus-visible .page-scroll-index__label { opacity: 1; visibility: visible; transform: translate(0,-50%); }
.page-scroll-index:hover .page-scroll-index__track,
.page-scroll-index:focus-within .page-scroll-index__track { border-color: var(--sh-cyan); background: var(--sh-blue-dark); box-shadow: 0 0 0 3px var(--sh-paper); }
.page-scroll-index:hover .page-scroll-index__thumb,
.page-scroll-index:focus-within .page-scroll-index__thumb { background: var(--sh-cyan); }
.page-scroll-index__thumb:active,
html.page-scroll-index--dragging .page-scroll-index__thumb { background: var(--sh-blue-dark); }
.page-scroll-index__mark:hover .page-scroll-index__dot,
.page-scroll-index__mark:focus-visible .page-scroll-index__dot,
.page-scroll-index__mark.is-active .page-scroll-index__dot { box-shadow: 0 0 0 .2rem var(--sh-cyan); }

@media (min-width: 47.6rem) and (pointer: fine) { html.has-page-scroll-index { scrollbar-width: none; } html.has-page-scroll-index::-webkit-scrollbar,html.has-page-scroll-index body::-webkit-scrollbar { width: 0; height: 0; } }
@media (max-width: 68rem) { .sh-topo { height: var(--sh-header); border-block-end-color: oklch(100% 0 0 / .12); background: var(--sh-ink); }.sh-menu { display: none; position: absolute; inset: 100% 0 auto; padding: 1rem var(--sh-gutter); background: var(--sh-ink); border-block-end: 1px solid oklch(100% 0 0 / .15); }.sh-menu.is-open { display: grid; }.sh-menu-toggle { justify-self: end; display: grid; grid-template-columns: repeat(3,.3rem) auto; align-items: center; gap: .2rem; }.sh-menu-toggle span { width: .3rem; height: .3rem; background: var(--sh-cyan); }.sh-menu-toggle b { margin-inline-start: .4rem; font-size: .84rem; }.sh-topo__inner { grid-template-columns: auto 1fr auto; }.sh-menu .sh-topo__cta { position: static; width: 100%; min-height: 3rem; margin-block-start: .75rem; box-shadow: .3rem .3rem 0 var(--sh-green); }.sh-hero__grid,.sh-engineering { grid-template-columns: minmax(0,1fr); }.sh-map { max-width: 42rem; }.sh-product-row { grid-template-columns: 3rem minmax(12rem,.8fr) minmax(0,1.2fr); }.sh-product-row a { grid-column: 2; }.sh-process li { grid-template-columns: 3rem minmax(13rem,.75fr) minmax(0,1.25fr); } }
@media (min-width: 47.51rem) and (max-width: 68rem) {
  .page-scroll-index { display: none !important; }
  .sh-feature-rail__inner { min-height: 15.5rem; grid-template-columns: 7rem minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: 1rem 1.5rem; align-items: stretch; padding-block: 1.25rem; }
  .sh-feature-rail__label { grid-row: 1 / 3; }
  .sh-feature-rail__viewport { grid-column: 2; align-self: center; }
  .sh-feature-rail__slide { grid-template-columns: minmax(14rem, .9fr) minmax(0, 1fr); gap: 1rem 1.5rem; }
  .sh-feature-rail__slide a { grid-column: 1 / -1; justify-self: start; }
  .sh-feature-rail__controls { grid-column: 2; grid-template-columns: 2.75rem minmax(4rem, 1fr) 2.75rem 2.75rem auto; gap: .5rem; justify-self: stretch; }
  .sh-feature-rail__controls > button { width: 2.75rem; height: 2.75rem; }
  .sh-feature-rail__dots { grid-column: 2; order: 0; }
  .sh-feature-rail__pause { grid-column: 4; width: 2.75rem !important; height: 2.75rem !important; }
  .sh-feature-rail__countdown { grid-column: 5; align-self: center; text-align: end; }
  .sh-map { width: 100%; margin-inline: auto; }
}
@media (pointer: coarse) { .page-scroll-index { display: none !important; } }
@media (min-width: 68.01rem) and (pointer: fine) { body.modo-edicao .page-scroll-index { bottom: 3.75rem; } }
@media (max-width: 47.5rem) { .page-scroll-index { display: none !important; }.sh-brand span { display: none; }.sh-brand img { width: 8.8rem; }.sh-feature-rail__inner { min-height: 19rem; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; padding-block: 1.2rem; }.sh-feature-rail__label { grid-column: 1 / -1; align-self: auto; flex-direction: row; padding: 0 0 .65rem; border-inline-end: 0; border-block-end: 1px solid var(--sh-rule); }.sh-feature-rail__viewport { grid-column: 1 / -1; }.sh-feature-rail__slide { grid-template-columns: minmax(0,1fr); gap: .85rem; }.sh-feature-rail__slide p { font-size: .94rem; }.sh-feature-rail__slide a { justify-self: start; }.sh-feature-rail__controls { grid-column: 1 / -1; grid-template-columns: 2rem 1fr 2rem 2rem; }.sh-feature-rail__dots { grid-column: auto; order: 0; }.sh-feature-rail__pause { grid-column: auto; width: 2rem !important; height: 2rem !important; }.sh-feature-rail__countdown { grid-column: 1 / -1; }.sh-hero { padding-block: 2.9rem; }.sh-hero__grid { grid-template-columns: minmax(0,1fr); }.sh-hero h1 { font-size: clamp(2.8rem,14vw,4.4rem); }.sh-hero__facts,.sh-signal .sh-shell,.sh-engineering__matrix,.sh-proof__grid,.sh-journal,.sh-contact__grid,.sh-footer__contact { grid-template-columns: minmax(0,1fr); }.sh-hero__facts { gap: 1rem; }.sh-map { box-shadow: .55rem .55rem 0 oklch(12% .025 248); }.sh-map__canvas { min-height: 31rem; }.sh-map__node { width: 8.2rem; }.sh-map__node--1,.sh-map__node--3 { left: .75rem; }.sh-map__node--2,.sh-map__node--4 { right: .75rem; }.sh-map__line { display: none; }.sh-map__foot code { display: none; }.sh-signal span { padding: .7rem 0; border: 0; border-block-end: 1px solid var(--sh-rule); }.sh-section { padding-block: 3.15rem; }.sh-section__head { grid-template-columns: minmax(0,1fr); gap: 1.2rem; margin-block-end: 1.7rem; }.sh-section__head h2,.sh-engineering h2,.sh-contact h2 { font-size: clamp(2.2rem,10vw,3.4rem); }.sh-product-row,.sh-process li { grid-template-columns: 2.5rem minmax(0,1fr); gap: 1rem; }.sh-product-row p,.sh-product-row a,.sh-process p { grid-column: 2; }.sh-engineering { gap: 2.5rem; }.sh-engineering__matrix article { min-height: auto; }.sh-proof figure { padding: 1.5rem 0 0; border-inline: 0; border-block-start: 3px solid var(--sh-blue); }.sh-journal__lead { grid-row: auto; padding-inline-end: 0; border-inline-end: 0; }.sh-footer__top,.sh-footer__credit,.sh-footer__bottom { align-items: flex-start; flex-direction: column; }.sh-footer__pitch { justify-items: start; }.sh-footer__pitch>div { justify-content: flex-start; }.sh-footer__top p { text-align: start; }.sh-preview-note { position: static; margin: 1rem; }.sh-menu-toggle { grid-template-columns: repeat(3,.28rem) auto; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }.sh-menu .sh-topo__cta:active { transform: none; } }

/* FAQ, privacidade e utilidades da home oficial. */
.sh-footer__bottom button{padding:0;border:0;background:transparent;color:var(--sh-cyan);font:inherit;text-decoration:underline;cursor:pointer}
.sh-faq{background:var(--sh-white)}.sh-faq__list{border-block-start:2px solid var(--sh-ink)}.sh-faq details{border-block-end:1px solid var(--sh-rule)}.sh-faq summary{min-height:4.7rem;display:grid;grid-template-columns:3rem minmax(0,1fr) 2rem;gap:1rem;align-items:center;cursor:pointer;list-style:none}.sh-faq summary::-webkit-details-marker{display:none}.sh-faq summary>.sh-faq__number{color:var(--sh-blue);font:700 .7rem/1 var(--sh-mono)}.sh-faq summary strong{font-size:1.05rem}.sh-faq summary i{font:400 1.4rem/1 var(--sh-mono);text-align:center;transition:transform var(--sh-fast)}.sh-faq details[open] summary i{transform:rotate(45deg);color:var(--sh-orange)}.sh-faq details>div{max-width:55rem;margin:0 2rem 1.4rem 4rem;color:var(--sh-muted)}.sh-faq .sh-text-link{display:inline-block;margin-block-start:1.5rem;color:var(--sh-blue-dark)}
body.modo-edicao .sh-faq summary{grid-template-columns:3rem 2.75rem minmax(0,1fr) 2rem}.sh-faq .faq-drag-handle{width:2.75rem;height:2.75rem;border-radius:.35rem;border-color:var(--sh-rule);background:var(--sh-white);color:var(--sh-blue-dark)}.sh-faq .faq-drag-handle:hover,.sh-faq .faq-drag-handle:focus-visible{border-color:var(--sh-blue);background:var(--sh-soft);color:var(--sh-blue-dark)}.sh-faq .faq-sortable-ghost{opacity:.38;background:var(--sh-soft);box-shadow:inset 0 .125rem 0 var(--sh-blue)}.sh-faq .faq-sortable-chosen{background:var(--sh-soft)}.sh-faq__list.faq-reordenando{cursor:progress}
.cookie-banner[hidden],.cookie-panel[hidden]{display:none!important}.cookie-banner{position:fixed;z-index:10030;right:1rem;bottom:1rem;left:1rem;padding:1rem;border:1px solid oklch(100% 0 0/.18);background:var(--sh-ink);color:var(--sh-white);box-shadow:0 1.2rem 3rem var(--sh-shadow)}.cookie-banner__content{width:min(100%,var(--sh-page));margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2rem}.cookie-banner strong{display:block;margin-block-end:.25rem}.cookie-banner p{max-width:46rem;margin:0;color:oklch(82% .025 235);font-size:.82rem}.cookie-banner a{color:var(--sh-cyan);font-weight:800}.cookie-banner__actions,.cookie-panel__actions{display:flex;justify-content:flex-end;gap:.5rem}.cookie-btn{min-height:2.65rem;padding-inline:.9rem;border:1px solid var(--sh-rule);background:transparent;color:inherit;font-weight:800;font-size:.76rem;cursor:pointer}.cookie-btn--primary{border-color:var(--sh-cyan);background:var(--sh-cyan);color:var(--sh-ink)}.cookie-btn:hover,.cookie-btn:focus-visible{border-color:var(--sh-orange);background:var(--sh-orange);color:var(--sh-white)}.cookie-panel{position:fixed;z-index:10040;inset:0;display:grid;place-items:center;padding:1rem;background:oklch(10% .03 245/.76)}.cookie-panel__dialog{position:relative;width:min(39rem,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:2rem;background:var(--sh-white);color:var(--sh-ink);box-shadow:0 1.5rem 4rem var(--sh-shadow)}.cookie-panel__close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;border:1px solid var(--sh-rule);background:var(--sh-white);font-size:1.5rem;cursor:pointer}.cookie-panel__dialog h2{margin:.6rem 3rem .5rem 0;font-size:2rem;line-height:1.1}.cookie-panel__dialog>p{color:var(--sh-muted)}.cookie-options{display:grid;margin-block:1.5rem;border-block-start:1px solid var(--sh-rule)}.cookie-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding-block:1rem;border-block-end:1px solid var(--sh-rule);cursor:pointer}.cookie-option span strong,.cookie-option span small{display:block}.cookie-option span small{margin-block-start:.2rem;color:var(--sh-muted)}.cookie-option input{position:absolute;opacity:0}.cookie-option i{position:relative;width:3rem;height:1.7rem;border-radius:99rem;background:var(--sh-rule)}.cookie-option i::after{content:"";position:absolute;top:.2rem;left:.2rem;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--sh-white);box-shadow:0 .1rem .35rem var(--sh-shadow);transition:transform var(--sh-fast)}.cookie-option input:checked+i{background:var(--sh-blue)}.cookie-option input:checked+i::after{transform:translateX(1.3rem)}.cookie-panel__actions{margin-block-start:1.3rem}.cookie-panel-open{overflow:hidden}
.sh-mobile-actions{display:none}.sh-back-top{position:fixed;z-index:900;right:1.8rem;bottom:1.5rem;width:2.8rem;height:2.8rem;border:1px solid var(--sh-orange);background:var(--sh-ink);color:var(--sh-white);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(.7rem);transition:opacity var(--sh-fast),transform var(--sh-fast),visibility var(--sh-fast)}.sh-back-top.is-visible{opacity:1;visibility:visible;transform:none}.sh-back-top:hover,.sh-back-top:focus-visible{background:var(--sh-orange)}
@media(max-width:47.5rem){body:has(.sh-mobile-actions){padding-bottom:4.8rem}.sh-mobile-actions{position:fixed;z-index:850;inset:auto 0 0;display:grid;grid-template-columns:repeat(3,1fr);padding:.4rem env(safe-area-inset-right) calc(.4rem + env(safe-area-inset-bottom)) env(safe-area-inset-left);border-block-start:1px solid var(--sh-rule);background:oklch(100% 0 0/.97);box-shadow:0 -.5rem 1.5rem var(--sh-shadow);backdrop-filter:blur(.8rem)}.sh-mobile-actions a{min-height:3.8rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:var(--sh-ink);font-size:.66rem;font-weight:800;text-decoration:none}.sh-mobile-actions img{display:block}.sh-back-top{right:1rem;bottom:5.4rem}.cookie-banner{right:.6rem;bottom:5.2rem;left:.6rem}.cookie-banner__content{grid-template-columns:1fr;gap:1rem}.cookie-banner__actions{display:grid;grid-template-columns:1fr 1fr}.cookie-banner__actions .cookie-btn--primary{grid-column:1/-1;grid-row:1}.cookie-panel__dialog{padding:1.5rem 1rem}.sh-faq summary{grid-template-columns:2rem minmax(0,1fr) 1.5rem}.sh-faq details>div{margin-inline:3rem 1rem}body.modo-edicao .sh-faq summary{grid-template-columns:2rem 2.75rem minmax(0,1fr) 1.5rem}body.modo-edicao .sh-faq details>div{margin-inline:calc(3rem + 2.75rem) 1rem}}

/* Legibilidade e alvos de toque da faixa de destaques no celular. */
@media (max-width: 47.5rem) {
  .sh-brand img { width: 9.65rem; }
  .sh-feature-rail__label { font-size: .78rem; letter-spacing: .065em; }
  .sh-feature-rail__label b { font-size: .86rem; }
  .sh-feature-rail__slide small { font-size: .76rem; letter-spacing: .065em; }
  .sh-feature-rail__slide h2 { font-size: clamp(1.62rem, 7.4vw, 1.9rem); line-height: 1.1; }
  .sh-feature-rail__slide p { color: oklch(40% 0.03 245); font-size: 1rem; }
  .sh-feature-rail__slide a { font-size: .98rem; }
  .sh-feature-rail__controls { grid-template-columns: 2.75rem 1fr 2.75rem 2.75rem; gap: .55rem; }
  .sh-feature-rail__controls > button,
  .sh-feature-rail__pause { width: 2.75rem !important; height: 2.75rem !important; }
  .sh-feature-rail__countdown { font-size: .78rem; }
}

.sh-footer__pitch a{white-space:nowrap}
.sh-footer__pitch a:active{background:var(--sh-cyan);border-color:var(--sh-cyan);color:var(--sh-ink)}
.sh-footer__pitch a[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none}

/* Home oficial sob o tema global (site.css + hallmark-internal.css carregados junto):
   restaura cores/tipografia das seções escuras que o seletor genérico de headings
   de hallmark-internal.css (body[data-public-theme] h1-h3) sobrescreveria. */
body[data-public-theme="softhouse"] .sh-hero h1 { color: var(--sh-white); letter-spacing: -.065em; }
body[data-public-theme="softhouse"] .sh-section__head h2,
body[data-public-theme="softhouse"] .sh-engineering h2,
body[data-public-theme="softhouse"] .sh-contact h2 { letter-spacing: -.055em; }
body[data-public-theme="softhouse"] .sh-engineering h2,
body[data-public-theme="softhouse"] .sh-contact h2,
body[data-public-theme="softhouse"] .sh-engineering__matrix h3 { color: var(--sh-white); }
body[data-public-theme="softhouse"] .sh-feature-rail__slide h2 { letter-spacing: -.035em; }
body[data-public-theme="softhouse"] .sh-map__foot code { padding: 0; border-radius: 0; background: transparent; }
/* Menu móvel da home abre com .is-open mesmo com a regra display:none de hallmark-internal.css. */
@media (max-width: 68rem) { .sh-topo .sh-menu.is-open { display: grid; } }
/* Hover do menu: fundo branco pede tinta escura (vale para home e internas). */
header.sh-topo .sh-menu a:hover, header.sh-topo .sh-menu a:focus-visible { color: var(--sh-ink); }

/* Início: só o ícone de casa (core/menu_publico.php), em qualquer largura.
   O nome acessível vive no aria-label do link. */
.sh-menu__home { display: inline-flex; align-items: center; }
.sh-menu__home svg { display: block; flex: 0 0 auto; }

/* Hallmark · component: process signature · genre: modern-minimal technical · theme: Certa Soluções
 * motion: continuous engineering rail · reduced-motion: static wrapped sequence
 * pre-emit critique: P5 H5 E5 S5 R5 V5 · contrast: pass
 */
html,body{overflow-x:clip}
.process-signature{
  --process-duration:44s;
  --process-pad-block:1rem;
  --process-pad-inline:clamp(2.25rem,4vw,4rem);
  overflow:hidden;
  border-block:1px solid var(--sh-cyan);
  background:var(--sh-ink);
  color:var(--sh-soft);
}
.process-signature__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.process-signature__track{display:flex;width:max-content;animation:process-signature-scroll var(--process-duration) linear infinite;transform:translate3d(0,0,0)}
.process-signature__sequence{display:flex;flex:none}
.process-signature__sequence span{display:flex;align-items:center;gap:.75rem;padding:var(--process-pad-block) var(--process-pad-inline);font-family:var(--sh-mono);font-size:.7rem;font-weight:700;letter-spacing:.06em;white-space:nowrap}
.process-signature__sequence span::before{content:"";width:.5rem;height:.5rem;flex:0 0 .5rem;border-radius:50%;background:var(--sh-green)}
.process-signature:hover .process-signature__track,.process-signature:focus .process-signature__track{animation-play-state:paused}
.process-signature:focus-visible{outline:3px solid var(--sh-cyan);outline-offset:-3px}
@keyframes process-signature-scroll{to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){
  .process-signature{overflow-x:auto;scrollbar-width:thin}
  .process-signature__track{width:max-content;min-width:100%;animation:none!important;transform:none}
  .process-signature__sequence{width:auto;min-width:100%;flex-wrap:nowrap;justify-content:space-around}
  .process-signature__sequence:last-child,.process-signature--solucoes .process-signature__sequence span:nth-child(n+7){display:none}
  .process-signature__sequence span{flex:none;justify-content:flex-start;padding-inline:1.5rem}
}
