/* =========================================================
   MNSOFT — Site institucional v3
   HTML/CSS/JS estático, responsivo e sem framework
   ========================================================= */

:root {
  --ink: #071326;
  --ink-2: #10213d;
  --ink-3: #193253;
  --blue: #2d63ff;
  --blue-dark: #1648df;
  --blue-soft: #eaf1ff;
  --cyan: #41c7ff;
  --green: #13a66f;
  --green-soft: #e8f8f2;
  --red: #d64b56;
  --red-soft: #fff0f1;
  --amber: #f4a61c;
  --white: #ffffff;
  --surface: #ffffff;
  --surface-soft: #f5f8fc;
  --surface-blue: #f0f5ff;
  --text: #12213a;
  --muted: #5e6f88;
  --muted-2: #8190a6;
  --line: #dce5f0;
  --line-dark: rgba(255, 255, 255, .15);
  --shadow-sm: 0 8px 24px rgba(7, 19, 38, .07);
  --shadow-md: 0 18px 55px rgba(7, 19, 38, .12);
  --shadow-lg: 0 35px 90px rgba(7, 19, 38, .2);
  --radius-sm: 12px;
  --radius: 18px;
  --radius-lg: 28px;
  --radius-xl: 38px;
  --container: 1240px;
  --header-h: 78px;
  --ease: cubic-bezier(.22, .61, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body {
  margin: 0;
  color: var(--text);
  background: var(--white);
  font-family: Inter, Manrope, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open, body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
p, h1, h2, h3, h4 { margin-top: 0; }
ul, ol { margin-top: 0; }
::selection { color: #fff; background: var(--blue); }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 104px 0; position: relative; }
.section-soft { background: var(--surface-soft); }
.section-dark { color: #fff; background: var(--ink); }
.narrow { max-width: 820px; margin-inline: auto; }
.center { text-align: center; }
.split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .72fr); gap: 64px; align-items: end; }
.split > p { margin-bottom: 10px; }

h1, h2, h3, h4 { color: inherit; font-weight: 800; line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: clamp(3rem, 6vw, 5.9rem); }
h2 { font-size: clamp(2.2rem, 4.4vw, 4.25rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); }
p { color: var(--muted); }
.section-dark p, .neo-home p, .portfolio-neo p, .neo-hero p, .site-footer p { color: rgba(255, 255, 255, .73); }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.eyebrow-light { color: #a9c0ff; }
.pulse-dot, .status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #30df9e;
  box-shadow: 0 0 0 6px rgba(48, 223, 158, .12);
}
.section-heading { margin-bottom: 52px; }
.section-heading h2 { margin-bottom: 20px; }
.section-heading p { max-width: 720px; margin-bottom: 0; font-size: 1.07rem; }
.section-heading.center p { margin-inline: auto; }

.icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.icon-sm { width: 19px; height: 19px; }
.icon-xs { width: 15px; height: 15px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 21px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: .91rem;
  font-weight: 800;
  line-height: 1;
  transition: transform .22s var(--ease), box-shadow .22s var(--ease), background .22s, border-color .22s, color .22s;
}
.btn:hover { transform: translateY(-2px); }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid rgba(45, 99, 255, .32); outline-offset: 3px; }
.btn-sm { min-height: 41px; padding-inline: 16px; font-size: .82rem; }
.btn-lg { min-height: 56px; padding-inline: 26px; font-size: .96rem; }
.btn-primary { color: #fff; background: linear-gradient(135deg, #2e67ff, #1749df); box-shadow: 0 13px 30px rgba(45, 99, 255, .25); }
.btn-primary:hover { box-shadow: 0 18px 38px rgba(45, 99, 255, .34); }
.btn-dark { color: #fff; background: var(--ink); box-shadow: var(--shadow-sm); }
.btn-light { color: var(--ink); background: #fff; box-shadow: 0 12px 32px rgba(0, 0, 0, .12); }
.btn-quiet { color: var(--ink); border-color: var(--line); background: #fff; }
.btn-quiet:hover { color: var(--blue); border-color: #a7bcf7; }
.btn-outline-light { color: #fff; border-color: rgba(255, 255, 255, .38); background: rgba(255, 255, 255, .04); backdrop-filter: blur(12px); }
.btn-outline-light:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .7); }
.button-row, .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--blue); font-weight: 800; }
.text-link:hover { gap: 12px; }
.section-action { margin-top: 40px; text-align: center; }

.skip-link { position: fixed; top: 10px; left: 10px; z-index: 9999; transform: translateY(-140%); padding: 11px 15px; border-radius: 8px; color: #fff; background: var(--ink); }
.skip-link:focus { transform: translateY(0); }

[data-reveal] { opacity: 1; transform: none; }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Top bar + header */
.top-note { color: #dbe6ff; background: #06101f; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.top-note-inner { min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 16px; font-size: .76rem; }
.top-note-inner span { opacity: .86; }
.top-note-inner a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 800; }
.site-header { position: sticky; top: 0; z-index: 900; height: var(--header-h); background: rgba(255, 255, 255, .94); border-bottom: 1px solid rgba(7, 19, 38, .08); backdrop-filter: blur(18px); transition: box-shadow .25s, background .25s; }
.site-header.is-scrolled { box-shadow: 0 12px 35px rgba(7, 19, 38, .1); background: rgba(255, 255, 255, .98); }
.nav-shell { height: 100%; display: flex; align-items: center; gap: 24px; }
.brand { flex: 0 0 auto; display: flex; align-items: center; }
.brand img { width: 166px; height: auto; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 5px; }
.nav-links a { position: relative; padding: 12px 10px; color: #35445d; font-size: .81rem; font-weight: 750; }
.nav-links a::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 5px; height: 2px; transform: scaleX(0); transform-origin: left; background: var(--blue); transition: transform .2s; }
.nav-links a:hover, .nav-links a.is-active { color: var(--blue); }
.nav-links a:hover::after, .nav-links a.is-active::after { transform: scaleX(1); }
.nav-actions { display: flex; gap: 9px; align-items: center; }
.menu-toggle { display: none; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; align-items: center; justify-content: center; }
.mobile-overlay { position: fixed; inset: 0; z-index: 930; opacity: 0; visibility: hidden; background: rgba(3, 10, 22, .58); backdrop-filter: blur(4px); transition: .25s; }
.mobile-panel { position: fixed; top: 0; right: 0; z-index: 940; width: min(390px, 92vw); height: 100dvh; padding: 24px; transform: translateX(102%); color: var(--ink); background: #fff; box-shadow: -20px 0 70px rgba(7, 19, 38, .2); transition: transform .35s var(--ease); }
.menu-open .mobile-overlay { opacity: 1; visibility: visible; }
.menu-open .mobile-panel { transform: translateX(0); }
.mobile-panel-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.mobile-panel-head img { width: 160px; height: auto; }
.mobile-panel-close { width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 10px; color: var(--ink); background: var(--surface-soft); }
.mobile-links { display: grid; margin-top: 20px; }
.mobile-links a { padding: 13px 4px; border-bottom: 1px solid var(--line); font-weight: 800; }
.mobile-links a.is-active { color: var(--blue); }
.mobile-actions { display: grid; gap: 10px; margin-top: 24px; }

/* Homepage hero */
.hero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--ink); }
.hero-home { min-height: 760px; padding: 104px 0 0; }
.hero-media, .hero-overlay { position: absolute; inset: 0; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.88) contrast(1.04); }
.hero-overlay { z-index: -1; background: linear-gradient(90deg, rgba(4, 13, 29, .98) 0%, rgba(4, 13, 29, .93) 40%, rgba(4, 13, 29, .58) 66%, rgba(4, 13, 29, .22) 100%), linear-gradient(180deg, rgba(5, 14, 30, .15), rgba(5, 14, 30, .78)); }
.hero-grid { min-height: 520px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .58fr); gap: 72px; align-items: center; }
.hero-copy { max-width: 780px; }
.hero-copy h1 { max-width: 760px; margin-bottom: 26px; }
.hero-copy h1 span { color: #4f86ff; }
.hero-copy > p { max-width: 690px; margin-bottom: 30px; color: rgba(255,255,255,.8); font-size: clamp(1.06rem, 1.5vw, 1.28rem); }
.hero-trust { display: flex; flex-wrap: wrap; gap: 16px 24px; margin-top: 28px; color: rgba(255,255,255,.76); font-size: .82rem; font-weight: 700; }
.hero-trust span { display: inline-flex; align-items: center; gap: 7px; }
.hero-trust .icon { color: #63e3b3; }
.hero-conversation { align-self: end; margin-bottom: 44px; padding: 24px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-lg); background: rgba(7,19,38,.63); box-shadow: var(--shadow-lg); backdrop-filter: blur(18px); }
.conversation-label { display: block; margin-bottom: 14px; color: #92afff; font-size: .72rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.hero-conversation p { margin-bottom: 18px; color: rgba(255,255,255,.78); font-size: .93rem; }
.hero-conversation strong { color: #fff; }
.hero-capabilities { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 52px; transform: translateY(1px); border-radius: 20px 20px 0 0; overflow: hidden; box-shadow: 0 -18px 55px rgba(0,0,0,.15); }
.hero-capabilities article { display: grid; grid-template-columns: 46px 1fr; gap: 14px; padding: 22px; color: var(--ink); background: rgba(255,255,255,.97); border-right: 1px solid var(--line); }
.hero-capabilities article:last-child { border-right: 0; }
.hero-capabilities article > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--blue); background: var(--blue-soft); }
.hero-capabilities strong { display: block; margin: 1px 0 5px; font-size: .94rem; }
.hero-capabilities p { margin: 0; font-size: .78rem; line-height: 1.45; }

/* Conversation / pain */
.conversation-section { background: linear-gradient(180deg, #fff, #f8faff); }
.conversation-board { display: grid; grid-template-columns: 1.05fr .82fr; gap: 28px; align-items: stretch; }
.pain-column { display: grid; gap: 12px; }
.pain-card { display: grid; grid-template-columns: 54px 1fr; gap: 18px; padding: 22px; border: 1px solid #f2cfd3; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.pain-card > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--red); background: var(--red-soft); font-size: .77rem; font-weight: 900; }
.pain-card strong { display: block; margin: 1px 0 6px; color: #68252e; }
.pain-card p { margin: 0; font-size: .89rem; }
.solution-column { padding: 42px; border-radius: var(--radius-lg); color: #fff; background: radial-gradient(circle at 100% 0, rgba(65,199,255,.24), transparent 34%), linear-gradient(145deg, #10284d, #071326 68%); box-shadow: var(--shadow-md); }
.solution-kicker { display: block; margin-bottom: 14px; color: #92afff; font-size: .75rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.solution-column h3 { font-size: clamp(1.8rem, 3vw, 2.65rem); }
.solution-column > p { color: rgba(255,255,255,.72); }
.check-list { list-style: none; display: grid; gap: 12px; padding: 0; margin: 26px 0; }
.check-list li { display: flex; align-items: flex-start; gap: 10px; color: var(--text); font-weight: 650; }
.check-list .icon { margin-top: 3px; color: var(--green); }
.check-list-light li { color: rgba(255,255,255,.86); }
.check-list-light .icon { color: #61e4b5; }
.solution-column .text-link { color: #fff; }

/* Neo home */
.neo-home { position: relative; overflow: hidden; padding: 112px 0; color: #fff; background: radial-gradient(circle at 80% 20%, rgba(45,99,255,.28), transparent 34%), radial-gradient(circle at 10% 100%, rgba(65,199,255,.13), transparent 30%), #071326; }
.neo-home::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(to right, #000, transparent 62%); }
.neo-home-grid { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; }
.neo-home-copy h2 { max-width: 620px; margin-bottom: 22px; }
.neo-lead { color: #fff !important; font-size: 1.17rem; font-weight: 650; }
.neo-benefit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 30px 0; }
.neo-benefit-grid > div { padding: 18px; border: 1px solid rgba(255,255,255,.14); border-radius: 15px; background: rgba(255,255,255,.06); }
.neo-benefit-grid span { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 10px; border-radius: 10px; color: #8db0ff; background: rgba(45,99,255,.16); }
.neo-benefit-grid strong { display: block; font-size: .91rem; }
.neo-benefit-grid p { margin: 5px 0 0; font-size: .78rem; line-height: 1.45; }
.neo-visual { position: relative; padding: 18px 18px 82px; border: 1px solid rgba(255,255,255,.16); border-radius: 34px; background: rgba(255,255,255,.06); box-shadow: var(--shadow-lg); }
.neo-main-image { width: 100%; aspect-ratio: 5/3; object-fit: cover; object-position: center; border-radius: 22px; }
.neo-image-caption { position: absolute; left: 36px; bottom: 102px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; min-width: 280px; padding: 15px 18px; color: var(--ink); border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-md); backdrop-filter: blur(14px); }
.neo-image-caption .status-dot { grid-row: 1 / 3; }
.neo-image-caption strong { font-size: .83rem; }
.neo-image-caption small { color: var(--muted); font-size: .72rem; }
.neo-device-card { position: absolute; right: -20px; bottom: -8px; width: min(310px, 56%); display: grid; grid-template-columns: 105px 1fr; align-items: center; gap: 12px; padding: 12px; color: var(--ink); border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow-md); }
.neo-device-card img { width: 105px; height: 74px; object-fit: contain; border-radius: 10px; background: #fff; }
.neo-device-card span { display: block; color: var(--blue); font-size: .67rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.neo-device-card strong { display: block; margin-top: 3px; font-size: .78rem; line-height: 1.35; }

/* Product cards */
.products-section { background: #fff; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.product-card { position: relative; min-height: 320px; display: flex; flex-direction: column; padding: 28px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.product-card:hover { transform: translateY(-5px); border-color: #bacaf2; box-shadow: var(--shadow-md); }
.product-card-neo { grid-column: span 2; min-height: 420px; padding: 0; display: grid; grid-template-columns: .95fr 1.05fr; color: #fff; background: var(--ink); border: 0; }
.product-photo { min-height: 100%; overflow: hidden; }
.product-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.product-card-neo:hover .product-photo img { transform: scale(1.035); }
.product-card-body { display: flex; flex-direction: column; padding: 36px; }
.product-card-neo p { color: rgba(255,255,255,.72); }
.product-card-neo .text-link { margin-top: auto; color: #fff; }
.product-tag { align-self: flex-start; display: inline-flex; padding: 6px 9px; border-radius: 6px; color: #fff; background: var(--blue); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.product-tag-light { color: var(--blue); background: #fff; }
.product-card h3 { margin: 17px 0 11px; font-size: 1.62rem; }
.product-card > p { margin-bottom: 17px; font-size: .93rem; }
.product-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; color: var(--blue); background: var(--blue-soft); }
.product-code { position: absolute; top: 29px; right: 27px; color: var(--muted-2); font-size: .69rem; font-weight: 850; letter-spacing: .09em; }
.product-question { display: block; margin: 4px 0 22px; color: var(--ink-3); font-size: .82rem; line-height: 1.5; }
.product-card > .text-link { margin-top: auto; }
.product-points { display: flex; flex-wrap: wrap; gap: 7px; margin: 7px 0 25px; }
.product-points span { padding: 6px 9px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: rgba(255,255,255,.8); font-size: .69rem; }

/* Services */
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.service-card { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.service-card > span { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 15px; color: var(--blue); background: var(--blue-soft); }
.service-card h3 { margin-bottom: 12px; font-size: 1.35rem; }
.service-card p { min-height: 88px; font-size: .91rem; }
.service-card ul { list-style: none; display: grid; gap: 7px; padding: 17px 0 0; margin: 0; border-top: 1px solid var(--line); color: var(--ink-3); font-size: .78rem; font-weight: 750; }
.service-card li::before { content: "•"; margin-right: 8px; color: var(--blue); }

/* Sectors */
.sector-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.sector-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), box-shadow .25s; }
.sector-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.sector-card > img { width: 100%; aspect-ratio: 4/2.65; object-fit: cover; }
.sector-card > div { position: relative; padding: 24px 19px 21px; }
.sector-card > div > span { position: absolute; top: -22px; left: 18px; width: 44px; height: 44px; display: grid; place-items: center; border: 4px solid #fff; border-radius: 13px; color: var(--blue); background: var(--blue-soft); }
.sector-card h3 { margin: 9px 0 8px; font-size: 1.03rem; }
.sector-card p { margin: 0; font-size: .78rem; line-height: 1.5; }

/* Clients */
.client-logo-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.client-logo { min-height: 105px; display: grid; place-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(7,19,38,.04); }
.client-logo img { max-width: 100%; max-height: 54px; object-fit: contain; filter: saturate(.88); transition: filter .2s, transform .2s; }
.client-logo:hover img { filter: none; transform: scale(1.04); }

/* Method */
.method-steps { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; padding: 0; margin: 0; counter-reset: method; }
.method-steps li { position: relative; min-height: 260px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.method-steps li > span { display: inline-grid; place-items: center; width: 36px; height: 36px; margin-bottom: 31px; border-radius: 50%; color: #fff; background: var(--blue); font-size: .72rem; font-weight: 900; box-shadow: 0 0 0 8px var(--blue-soft); }
.method-steps li:not(:last-child)::after { content: "→"; position: absolute; top: 34px; right: -18px; z-index: 2; color: var(--blue); font-weight: 900; }
.method-steps .icon { color: var(--blue); }
.method-steps h3 { margin: 13px 0 9px; font-size: 1.1rem; }
.method-steps p { margin: 0; font-size: .8rem; }

/* Contracting */
.contract-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.contract-grid article { position: relative; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.contract-grid article > span { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 24px; border-radius: 15px; color: var(--blue); background: var(--blue-soft); }
.contract-grid h3 { margin-bottom: 12px; }
.contract-grid p { min-height: 78px; }
.contract-grid strong, .contract-grid small { display: block; }
.contract-grid strong { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--ink); font-size: .77rem; }
.contract-grid small { margin-top: 5px; color: var(--muted); }

/* Contact section / forms */
.contact-conversation { background: linear-gradient(135deg, #eef4ff, #fff 55%); }
.contact-conversation-grid, .contact-form-grid { display: grid; grid-template-columns: .8fr 1.05fr; gap: 64px; align-items: start; }
.contact-conversation h2 { max-width: 600px; }
.contact-conversation > .container > div:first-child > p { max-width: 580px; font-size: 1.05rem; }
.contact-options, .contact-direct { display: grid; gap: 10px; margin-top: 28px; }
.contact-options a, .contact-direct a { display: flex; align-items: center; gap: 15px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.contact-options .icon, .contact-direct .icon { color: var(--blue); }
.contact-options span, .contact-direct span { display: grid; }
.contact-options small, .contact-direct small { color: var(--muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.contact-options strong, .contact-direct strong { font-size: .89rem; }
.lead-form { padding: 34px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.form-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 25px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.form-head span { font-size: 1.18rem; font-weight: 850; }
.form-head strong { color: var(--green); font-size: .72rem; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lead-form label, .portal-form label { display: grid; gap: 7px; margin-bottom: 14px; color: var(--ink-3); font-size: .77rem; font-weight: 800; }
.lead-form input, .lead-form textarea, .lead-form select, .portal-form select { width: 100%; border: 1px solid #ccd7e5; border-radius: 11px; color: var(--text); background: #fff; transition: border-color .2s, box-shadow .2s; }
.lead-form input, .lead-form select, .portal-form select { min-height: 48px; padding: 0 13px; }
.lead-form textarea { padding: 12px 13px; resize: vertical; }
.lead-form input:focus, .lead-form textarea:focus, .lead-form select:focus, .portal-form select:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 4px rgba(45,99,255,.11); }
.lead-form .consent { grid-template-columns: 20px 1fr; gap: 10px; align-items: start; font-weight: 550; line-height: 1.45; }
.consent input { width: 18px; min-height: 18px; margin-top: 2px; }
.lead-form .btn { width: 100%; }
.form-status { min-height: 22px; margin: 10px 0 0; color: var(--red); font-size: .8rem; font-weight: 700; }

/* Footer */
.site-footer { padding: 0 0 24px; color: #fff; background: #050d19; }
.footer-callout { transform: translateY(-1px); display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: 44px; border-radius: 0 0 26px 26px; background: radial-gradient(circle at 70% 0, rgba(65,199,255,.24), transparent 30%), linear-gradient(135deg, #194dde, #0a236d); box-shadow: var(--shadow-lg); }
.footer-callout h2 { margin-bottom: 10px; font-size: clamp(2rem, 3vw, 3.1rem); }
.footer-callout p { max-width: 710px; margin: 0; }
.footer-callout-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .7fr .7fr 1.05fr; gap: 42px; padding: 70px 0 44px; }
.footer-logo { width: 195px; height: auto; margin-bottom: 18px; }
.footer-about p { max-width: 340px; font-size: .86rem; }
.footer-social { display: flex; gap: 10px; margin-top: 21px; }
.footer-social a { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; color: #fff; background: rgba(255,255,255,.04); }
.footer-col h3 { margin: 7px 0 18px; color: #fff; font-size: .86rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-col ul { list-style: none; display: grid; gap: 10px; padding: 0; margin: 0; color: rgba(255,255,255,.66); font-size: .82rem; }
.footer-col a:hover { color: #fff; }
.footer-contact li { display: flex; align-items: flex-start; gap: 10px; }
.footer-contact .icon { margin-top: 2px; color: #83a7ff; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.48); font-size: .72rem; }
.footer-bottom > div { display: flex; gap: 20px; }
.whatsapp-float { position: fixed; right: 20px; bottom: 20px; z-index: 800; display: flex; align-items: center; gap: 10px; padding: 10px 15px 10px 9px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; color: #fff; background: #0b9c66; box-shadow: 0 16px 40px rgba(7,19,38,.24); font-size: .78rem; }
.whatsapp-float > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.16); }
.cookie-banner { position: fixed; left: 20px; bottom: 20px; z-index: 850; width: min(450px, calc(100vw - 40px)); display: none; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-lg); }
.cookie-banner.is-visible { display: grid; }
.cookie-banner p { margin: 0; font-size: .78rem; }
.cookie-banner > div { display: flex; align-items: center; gap: 13px; }
.cookie-banner > div a { color: var(--blue); font-size: .78rem; font-weight: 800; }

/* Page heroes */
.page-hero { position: relative; min-height: 570px; display: grid; align-items: center; overflow: hidden; color: #fff; background: var(--ink); }
.page-hero-media, .page-hero-overlay { position: absolute; inset: 0; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-overlay { background: linear-gradient(90deg, rgba(4,13,29,.98) 0%, rgba(4,13,29,.9) 45%, rgba(4,13,29,.38) 77%, rgba(4,13,29,.2)); }
.page-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr .5fr; gap: 70px; align-items: end; padding-block: 90px; }
.page-hero-grid h1 { max-width: 820px; margin-bottom: 23px; font-size: clamp(3.1rem, 5vw, 5.3rem); }
.page-hero-grid h1 span { color: #5d8bff; }
.page-hero-grid > div > p { max-width: 710px; color: rgba(255,255,255,.78); font-size: 1.1rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; color: var(--muted); font-size: .74rem; font-weight: 700; }
.page-hero .breadcrumbs, .breadcrumbs-light { color: rgba(255,255,255,.62); }
.breadcrumbs a:hover { color: var(--blue); }
.page-hero-quote { align-self: end; padding: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius); background: rgba(7,19,38,.52); backdrop-filter: blur(16px); }
.page-hero-quote span { display: block; margin-bottom: 10px; color: #a8c0ff; font-size: .74rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.page-hero-quote strong { display: block; font-size: 1.02rem; line-height: 1.5; }

/* Portfolio */
.critical-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.critical-grid article { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.critical-grid article > span { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 21px; border-radius: 14px; color: var(--blue); background: var(--blue-soft); }
.critical-grid h3 { min-height: 58px; margin-bottom: 13px; font-size: 1.2rem; }
.critical-grid p { min-height: 128px; font-size: .86rem; }
.critical-grid strong, .critical-grid small { display: block; }
.critical-grid strong { padding-top: 16px; border-top: 1px solid var(--line); color: var(--blue); font-size: .73rem; text-transform: uppercase; letter-spacing: .07em; }
.critical-grid small { margin-top: 5px; color: var(--muted); line-height: 1.45; }
.portfolio-neo { padding: 105px 0 78px; color: #fff; background: radial-gradient(circle at 85% 0, rgba(45,99,255,.3), transparent 34%), #071326; }
.portfolio-neo-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: 64px; align-items: center; }
.portfolio-neo-copy h2 { margin: 17px 0 22px; }
.portfolio-neo-copy > p { font-size: 1.02rem; }
.portfolio-neo-visual { position: relative; padding: 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 28px; background: rgba(255,255,255,.06); }
.portfolio-neo-visual img { width: 100%; aspect-ratio: 1.35/1; object-fit: cover; border-radius: 19px; }
.neo-floating-proof { position: absolute; left: -24px; bottom: 34px; max-width: 280px; padding: 17px; color: var(--ink); border-radius: 14px; background: #fff; box-shadow: var(--shadow-md); }
.neo-floating-proof strong, .neo-floating-proof span { display: block; }
.neo-floating-proof strong { color: var(--blue); }
.neo-floating-proof span { margin-top: 4px; color: var(--muted); font-size: .77rem; }
.neo-portfolio-benefits { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 65px; }
.neo-portfolio-benefits > div { padding: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.neo-portfolio-benefits .icon { margin-bottom: 14px; color: #7fa3ff; }
.neo-portfolio-benefits strong { display: block; font-size: .86rem; }
.neo-portfolio-benefits p { margin: 6px 0 0; font-size: .74rem; line-height: 1.45; }
.workflow-line { list-style: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; padding: 0; margin: 0; }
.workflow-line li { position: relative; text-align: center; }
.workflow-line li:not(:last-child)::after { content: ""; position: absolute; top: 19px; left: 63%; width: 76%; border-top: 1px dashed #99b2e8; }
.workflow-line li > span { position: relative; z-index: 2; display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 22px; border-radius: 50%; color: #fff; background: var(--blue); font-size: .72rem; font-weight: 900; box-shadow: 0 0 0 8px var(--blue-soft); }
.workflow-line .icon { color: var(--blue); }
.workflow-line h3 { margin: 11px 0 8px; font-size: .96rem; }
.workflow-line p { font-size: .75rem; line-height: 1.5; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.catalog-card { display: flex; flex-direction: column; min-height: 570px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.catalog-custom { color: #fff; background: linear-gradient(145deg, #123367, #071326); border: 0; }
.catalog-custom p, .catalog-custom .catalog-subtitle, .catalog-custom li, .catalog-custom .catalog-answer span { color: rgba(255,255,255,.72); }
.catalog-top { display: flex; align-items: center; justify-content: space-between; }
.catalog-top > span { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 15px; color: var(--blue); background: var(--blue-soft); }
.catalog-custom .catalog-top > span { color: #fff; background: rgba(255,255,255,.1); }
.catalog-top small { color: var(--muted-2); font-weight: 800; letter-spacing: .09em; }
.catalog-card h3 { margin: 24px 0 7px; font-size: 2rem; }
.catalog-subtitle { color: var(--blue); font-size: .89rem; font-weight: 800; }
.catalog-answer { margin: 20px 0; padding: 18px; border-radius: 14px; background: var(--surface-soft); }
.catalog-custom .catalog-answer { background: rgba(255,255,255,.07); }
.catalog-answer strong, .catalog-answer span { display: block; }
.catalog-answer strong { color: var(--blue); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.catalog-custom .catalog-answer strong { color: #89a9ff; }
.catalog-answer span { margin-top: 5px; color: var(--ink-3); font-size: .82rem; font-weight: 700; }
.catalog-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; padding: 0; margin: 0 0 25px; list-style: none; color: var(--muted); font-size: .8rem; }
.catalog-card li::before { content: "✓"; margin-right: 8px; color: var(--green); font-weight: 900; }
.catalog-card .btn { align-self: flex-start; margin-top: auto; }
.portfolio-dialogue-grid { display: grid; grid-template-columns: 1fr 1.18fr; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.dialogue-dark { padding: 52px; color: #fff; background: radial-gradient(circle at 0 100%, rgba(45,99,255,.35), transparent 35%), #071326; }
.dialogue-dark p { color: rgba(255,255,255,.7); }
.dialogue-icons { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 28px; }
.dialogue-icons span { display: grid; gap: 7px; color: rgba(255,255,255,.75); font-size: .72rem; font-weight: 700; }
.dialogue-icons .icon { color: #7ea2ff; }
.dialogue-light { display: grid; grid-template-columns: 1fr 200px; gap: 20px; align-items: center; padding: 44px 0 44px 44px; background: #fff; }
.dialogue-light img { width: 200px; height: 100%; object-fit: cover; object-position: center; border-radius: 20px 0 0 20px; }

/* Neo dedicated */
.neo-hero { position: relative; min-height: 700px; display: grid; align-items: center; overflow: hidden; color: #fff; background: #071326; }
.neo-hero-media, .neo-hero-overlay { position: absolute; inset: 0; }
.neo-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; }
.neo-hero-overlay { background: linear-gradient(90deg, rgba(4,13,29,.99) 0%, rgba(4,13,29,.94) 44%, rgba(4,13,29,.55) 73%, rgba(4,13,29,.24)), linear-gradient(180deg, rgba(4,13,29,.15), rgba(4,13,29,.72)); }
.neo-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr .42fr; gap: 70px; align-items: end; padding-block: 95px; }
.neo-hero h1 { max-width: 800px; margin-bottom: 24px; }
.neo-hero-grid > div > p { max-width: 720px; color: rgba(255,255,255,.8); font-size: 1.16rem; }
.neo-hero-card { padding: 27px; border: 1px solid rgba(255,255,255,.19); border-radius: var(--radius-lg); background: rgba(7,19,38,.62); backdrop-filter: blur(18px); }
.neo-hero-card span { color: #8eabff; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; }
.neo-hero-card strong { display: block; margin: 13px 0 10px; font-size: 1.23rem; line-height: 1.4; }
.neo-hero-card p { margin: 0; font-size: .82rem; }
.neo-hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 27px; }
.neo-hero-tags span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.76); background: rgba(255,255,255,.05); font-size: .7rem; font-weight: 750; }
.neo-anchor-nav { position: sticky; top: var(--header-h); z-index: 500; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(14px); }
.neo-anchor-nav .container { display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; }
.neo-anchor-nav a { flex: 0 0 auto; padding: 16px 0; color: var(--muted); font-size: .76rem; font-weight: 800; }
.neo-anchor-nav a:hover { color: var(--blue); }
.minute-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 72px; align-items: center; }
.minute-grid h2 { margin-bottom: 22px; }
.minute-grid blockquote { margin: 27px 0; padding: 21px 23px; border-left: 4px solid var(--blue); color: var(--ink); background: var(--blue-soft); font-size: 1.05rem; font-weight: 750; }
.note { color: var(--muted-2) !important; font-size: .76rem !important; }
.minute-flow { display: grid; grid-template-columns: 1fr 52px 1fr 52px 1fr; align-items: center; padding: 36px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-soft); box-shadow: var(--shadow-sm); }
.flow-node { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; text-align: center; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.flow-node > span { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 14px; color: var(--blue); background: var(--blue-soft); }
.flow-node strong { font-size: .92rem; }
.flow-node small { margin-top: 6px; color: var(--muted); font-size: .72rem; }
.flow-risk { border-color: #efc4ca; background: #fff7f8; }
.flow-risk > span { color: var(--red); background: var(--red-soft); }
.flow-arrow { display: grid; place-items: center; color: var(--blue); }
.minute-alert { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 15px; margin-top: 20px; padding: 17px; border-radius: 13px; color: #fff; background: var(--ink); }
.minute-alert strong { color: #8eadff; }
.minute-alert span { font-size: .82rem; }
.ecosystem-map { position: relative; min-height: 620px; max-width: 1020px; margin-inline: auto; }
.ecosystem-map::before { content: ""; position: absolute; inset: 50% auto auto 50%; width: 520px; height: 520px; transform: translate(-50%, -50%); border: 1px dashed #aabde9; border-radius: 50%; }
.ecosystem-center { position: absolute; top: 50%; left: 50%; z-index: 3; width: 260px; height: 260px; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; border-radius: 50%; color: #fff; background: radial-gradient(circle at 70% 20%, #386cff, #0b2350 72%); box-shadow: 0 25px 70px rgba(7,19,38,.25); }
.neo-mark { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: 14px; border: 1px solid rgba(255,255,255,.3); border-radius: 18px; color: #fff; background: rgba(255,255,255,.1); font-size: 1.65rem; font-weight: 900; }
.ecosystem-center strong { font-size: 1.18rem; }
.ecosystem-center small { margin-top: 5px; color: rgba(255,255,255,.68); }
.ecosystem-map article { position: absolute; width: 230px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); }
.ecosystem-map article > span { color: var(--blue); }
.ecosystem-map h3 { margin: 10px 0 6px; font-size: 1rem; }
.ecosystem-map p { margin: 0; font-size: .77rem; }
.eco-one { top: 3%; left: 8%; }
.eco-two { top: 3%; right: 8%; }
.eco-three { top: 44%; right: 0; }
.eco-four { bottom: 2%; right: 16%; }
.eco-five { bottom: 2%; left: 16%; }
.neo-tech-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 72px; align-items: center; }
.device-stage { position: relative; min-height: 560px; display: grid; place-items: center; padding: 45px; border-radius: var(--radius-xl); background: radial-gradient(circle, #fff 0 34%, #eaf1ff 35% 53%, #f7faff 54%); overflow: hidden; }
.device-stage img { position: relative; z-index: 2; width: 78%; filter: drop-shadow(0 26px 28px rgba(7,19,38,.2)); }
.device-stage small { position: absolute; left: 24px; bottom: 18px; color: var(--muted-2); font-size: .68rem; }
.device-orbit { position: absolute; inset: 0; }
.device-orbit span { position: absolute; width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid #c9d7f2; border-radius: 50%; color: var(--blue); background: #fff; box-shadow: var(--shadow-sm); }
.device-orbit span:nth-child(1) { top: 13%; left: 18%; }
.device-orbit span:nth-child(2) { top: 15%; right: 17%; }
.device-orbit span:nth-child(3) { bottom: 15%; left: 16%; }
.device-orbit span:nth-child(4) { right: 14%; bottom: 14%; }
.spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 28px 0; }
.spec-grid > div { padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-sm); }
.spec-grid strong, .spec-grid span { display: block; }
.spec-grid strong { color: var(--blue); font-size: .76rem; text-transform: uppercase; letter-spacing: .07em; }
.spec-grid span { margin-top: 6px; color: var(--muted); font-size: .79rem; }
.neo-journey { position: relative; overflow: hidden; }
.neo-journey::before { content: ""; position: absolute; width: 620px; height: 620px; top: -280px; right: -160px; border-radius: 50%; background: rgba(45,99,255,.15); filter: blur(2px); }
.neo-journey-steps { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 0; margin: 0; }
.neo-journey-steps li { display: grid; grid-template-columns: 46px 1fr; gap: 16px; padding: 27px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); background: rgba(255,255,255,.05); }
.neo-journey-steps li > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--blue); font-size: .72rem; font-weight: 900; }
.neo-journey-steps .icon { color: #83a6ff; }
.neo-journey-steps h3 { margin: 10px 0 8px; font-size: 1.1rem; }
.neo-journey-steps p { margin: 0; font-size: .79rem; }
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.benefit-grid article { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.benefit-grid article > span { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 14px; color: var(--blue); background: var(--blue-soft); }
.benefit-grid h3 { margin-bottom: 11px; font-size: 1.25rem; }
.benefit-grid p { margin: 0; font-size: .87rem; }
.risk-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; align-items: center; }
.risk-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.risk-cards article { padding: 23px; border: 1px solid #efcdd1; border-radius: 15px; background: #fff; }
.risk-cards strong { display: block; color: #762c35; }
.risk-cards p { margin: 7px 0 0; font-size: .8rem; }
.compat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.compat-grid article { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.compat-grid article > span { color: var(--blue); }
.compat-grid h3 { margin: 17px 0 10px; }
.compat-grid p { margin: 0; font-size: .87rem; }
.neo-contract { background: radial-gradient(circle at 12% 100%, rgba(45,99,255,.28), transparent 28%), #071326; }
.neo-contract-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.neo-contract-grid article { min-height: 310px; padding: 31px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius); background: rgba(255,255,255,.05); }
.neo-contract-grid article > span { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 26px; border-radius: 12px; color: #fff; background: var(--blue); font-size: .72rem; font-weight: 900; }
.neo-contract-grid h3 { font-size: 1.36rem; }
.neo-contract-grid p { min-height: 110px; }
.neo-contract-grid small { display: block; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.62); }
.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 72px; align-items: start; }
.faq-list { display: grid; gap: 10px; }
.faq-list details { border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.faq-list summary { position: relative; padding: 20px 52px 20px 20px; list-style: none; color: var(--ink); font-weight: 850; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; top: 15px; right: 17px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--blue); background: var(--blue-soft); font-size: 1.2rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { padding: 0 20px 20px; margin: 0; font-size: .88rem; }
.neo-final-cta { padding: 0; color: #fff; background: #08152a; }
.neo-final-grid { display: grid; grid-template-columns: 1.15fr .55fr; gap: 60px; align-items: center; min-height: 520px; }
.neo-final-grid h2 { max-width: 800px; }
.neo-final-grid > div > p { max-width: 720px; color: rgba(255,255,255,.7); }
.neo-final-grid > img { width: 100%; height: 520px; object-fit: cover; }

/* Simple / company / client / contact */
.simple-hero { padding: 92px 0 74px; background: linear-gradient(145deg, #f1f5ff, #fff); border-bottom: 1px solid var(--line); }
.simple-hero-grid { display: grid; grid-template-columns: 1fr .52fr; gap: 64px; align-items: center; }
.simple-hero h1 { max-width: 850px; font-size: clamp(3rem, 5vw, 5rem); }
.simple-hero p { max-width: 760px; font-size: 1.08rem; }
.service-hours { display: flex; gap: 18px; align-items: flex-start; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.service-hours > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; color: var(--blue); background: var(--blue-soft); }
.service-hours strong, .service-hours small { display: block; }
.service-hours p { margin: 5px 0; font-size: .88rem; }
.service-hours small { color: var(--muted-2); }
.hub-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 16px; }
.hub-card { display: flex; flex-direction: column; min-height: 310px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.hub-main { grid-row: span 2; min-height: 636px; background: linear-gradient(160deg, #fff, #f3f7ff); }
.hub-icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 28px; border-radius: 16px; color: var(--blue); background: var(--blue-soft); }
.hub-card h2 { font-size: 1.7rem; }
.hub-card .btn { align-self: flex-start; margin-top: auto; }
.portal-form { margin-top: 28px; padding: 23px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.portal-form .btn { width: 100%; }
.support-bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 18px; }
.support-bar > div { display: flex; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.support-bar .icon { color: var(--blue); }
.support-bar span { display: grid; }
.support-bar small { color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.support-bar a, .support-bar strong { font-size: .82rem; }
.support-tips { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.support-tips article { padding: 27px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.support-tips article > span { color: var(--blue); font-size: .74rem; font-weight: 900; }
.support-tips h3 { margin: 18px 0 9px; font-size: 1.08rem; }
.support-tips p { margin: 0; font-size: .8rem; }
.company-story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; }
.company-beliefs { display: grid; gap: 12px; }
.company-beliefs article { display: grid; grid-template-columns: 54px 1fr; gap: 17px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.company-beliefs article > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--blue); background: var(--blue-soft); font-size: .72rem; font-weight: 900; }
.company-beliefs h3 { margin: 1px 0 7px; font-size: 1.1rem; }
.company-beliefs p { margin: 0; font-size: .82rem; }
.company-cap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.company-cap-grid article { padding: 29px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.company-cap-grid article > .icon { color: var(--blue); }
.company-cap-grid h3 { margin: 18px 0 9px; }
.company-cap-grid p { margin: 0; font-size: .85rem; }
.company-sectors-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 70px; align-items: center; }
.company-image-stack { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: 1fr 1fr; gap: 12px; }
.company-image-stack img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; box-shadow: var(--shadow-sm); }
.company-image-stack img:first-child { grid-row: 1 / 3; min-height: 450px; }
.identity-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 16px; }
.identity-grid > div { display: flex; gap: 16px; align-items: center; padding: 25px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.identity-grid img { width: 170px; height: auto; }
.identity-grid > div > span { color: var(--blue); }
.identity-grid p { margin: 0; font-size: .82rem; }
.contact-hero { padding: 90px 0; background: linear-gradient(135deg, #f1f5ff 0%, #fff 58%, #edf4ff); }
.contact-hero-grid { display: grid; grid-template-columns: 1fr .46fr; gap: 70px; align-items: center; }
.contact-hero h1 { max-width: 880px; font-size: clamp(3rem, 5vw, 5.15rem); }
.contact-hero > .container > div:first-child > p { max-width: 760px; font-size: 1.1rem; }
.contact-direct { grid-template-columns: repeat(3, 1fr); }
.contact-expert-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-md); }
.contact-expert-card img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.contact-expert-card > div { display: grid; grid-template-columns: auto 1fr; gap: 11px; align-items: center; padding: 20px; }
.contact-expert-card .status-dot { grid-row: 1/3; }
.contact-expert-card p { margin: 0; font-size: .78rem; }
.contact-prep { list-style: none; display: grid; gap: 12px; padding: 0; margin: 28px 0; }
.contact-prep li { display: grid; grid-template-columns: 44px 1fr; gap: 13px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.contact-prep li > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: var(--blue); background: var(--blue-soft); font-size: .7rem; font-weight: 900; }
.contact-prep strong { display: block; }
.contact-prep p { margin: 3px 0 0; font-size: .78rem; }
.address-card { display: flex; gap: 16px; padding: 22px; border-radius: 16px; color: #fff; background: var(--ink); }
.address-card .icon { color: #82a6ff; }
.address-card p { margin: 6px 0; color: rgba(255,255,255,.7); font-size: .82rem; }
.address-card small { color: rgba(255,255,255,.5); }
.legal-content { background: var(--surface-soft); }
.legal-shell { max-width: 900px; padding: 50px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.legal-shell h2 { margin: 36px 0 12px; font-size: 1.45rem; }
.legal-shell p { font-size: .96rem; }
.legal-shell a { color: var(--blue); text-decoration: underline; }
.not-found { min-height: 660px; display: grid; align-items: center; padding: 80px 0; background: radial-gradient(circle at 80% 20%, #dce7ff, transparent 30%), var(--surface-soft); }
.not-found-grid { display: grid; grid-template-columns: 1fr .75fr; gap: 70px; align-items: center; }
.not-found-code { display: block; color: var(--blue); font-size: 6rem; font-weight: 900; line-height: 1; }
.not-found h1 { max-width: 670px; font-size: clamp(3rem, 5vw, 5rem); }
.not-found-art { position: relative; min-height: 420px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: radial-gradient(circle, #fff 0 28%, #eaf1ff 29% 48%, transparent 49%); }
.not-found-art > .icon { width: 100px; height: 100px; }
.not-found-art span { position: absolute; width: 55px; height: 55px; border: 1px solid #c5d4f2; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); }
.not-found-art span:nth-child(2) { top: 17%; left: 16%; }
.not-found-art span:nth-child(3) { top: 20%; right: 15%; }
.not-found-art span:nth-child(4) { bottom: 12%; left: 43%; }

/* Responsive */
@media (max-width: 1180px) {
  :root { --container: 1060px; }
  .nav-links a { padding-inline: 7px; font-size: .76rem; }
  .nav-actions .btn-quiet { display: none; }
  .hero-grid { grid-template-columns: 1fr .5fr; gap: 36px; }
  .hero-capabilities article { grid-template-columns: 38px 1fr; padding: 18px; }
  .hero-capabilities article > span { width: 38px; height: 38px; }
  .sector-grid { grid-template-columns: repeat(3, 1fr); }
  .client-logo-grid { grid-template-columns: repeat(4, 1fr); }
  .method-steps { grid-template-columns: repeat(3, 1fr); }
  .method-steps li:not(:last-child)::after { display: none; }
  .critical-grid { grid-template-columns: repeat(2, 1fr); }
  .critical-grid p { min-height: 90px; }
  .workflow-line { grid-template-columns: repeat(3, 1fr); gap: 38px 14px; }
  .workflow-line li::after { display: none; }
  .ecosystem-map { transform: scale(.92); transform-origin: center; }
  .contact-direct { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  :root { --header-h: 70px; }
  .section { padding: 84px 0; }
  .nav-links, .nav-actions { display: none; }
  .menu-toggle { display: inline-flex; }
  .brand img { width: 155px; }
  .hero-home { min-height: auto; padding-top: 80px; }
  .hero-grid, .page-hero-grid, .neo-hero-grid { grid-template-columns: 1fr; min-height: auto; }
  .hero-conversation { max-width: 520px; margin-bottom: 0; align-self: auto; }
  .hero-capabilities { grid-template-columns: repeat(2, 1fr); margin-top: 62px; border-radius: 20px 20px 0 0; }
  .conversation-board, .neo-home-grid, .portfolio-neo-grid, .minute-grid, .neo-tech-grid, .risk-grid, .faq-grid, .company-story-grid, .company-sectors-grid, .contact-conversation-grid, .contact-form-grid { grid-template-columns: 1fr; }
  .neo-home-grid { gap: 55px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .product-card-neo { grid-column: 1 / -1; }
  .service-grid, .company-cap-grid, .benefit-grid { grid-template-columns: repeat(2, 1fr); }
  .sector-grid { grid-template-columns: repeat(2, 1fr); }
  .contract-grid, .compat-grid, .neo-contract-grid { grid-template-columns: 1fr; }
  .contract-grid p, .neo-contract-grid p { min-height: 0; }
  .footer-callout { grid-template-columns: 1fr; }
  .footer-callout-actions { justify-content: flex-start; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .page-hero-grid { align-items: start; }
  .page-hero-quote { max-width: 520px; }
  .neo-portfolio-benefits { grid-template-columns: repeat(3, 1fr); }
  .portfolio-dialogue-grid { grid-template-columns: 1fr; }
  .ecosystem-map { transform: none; min-height: auto; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ecosystem-map::before { display: none; }
  .ecosystem-center, .ecosystem-map article { position: static; width: auto; height: auto; transform: none; border-radius: var(--radius); }
  .ecosystem-center { grid-column: 1 / -1; min-height: 220px; }
  .neo-final-grid { grid-template-columns: 1fr; padding-top: 80px; }
  .neo-final-grid > img { height: 430px; }
  .simple-hero-grid, .contact-hero-grid { grid-template-columns: 1fr; }
  .hub-grid { grid-template-columns: 1fr; }
  .hub-main { grid-row: auto; min-height: auto; }
  .support-tips { grid-template-columns: repeat(2, 1fr); }
  .identity-grid { grid-template-columns: 1fr; }
  .company-image-stack { max-width: 760px; }
}

@media (max-width: 720px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .top-note-inner { min-height: 42px; justify-content: space-between; gap: 10px; }
  .top-note-inner span { max-width: 210px; line-height: 1.35; }
  .top-note-inner a { font-size: 0; }
  .top-note-inner a .icon { width: 18px; height: 18px; }
  .section { padding: 70px 0; }
  .split { grid-template-columns: 1fr; gap: 15px; align-items: start; }
  h1 { font-size: clamp(2.65rem, 13vw, 4.2rem); }
  h2 { font-size: clamp(2rem, 9vw, 3.25rem); }
  .hero-home { padding-top: 66px; }
  .hero-overlay { background: linear-gradient(180deg, rgba(4,13,29,.85), rgba(4,13,29,.97) 68%); }
  .hero-media img { object-position: 58% center; }
  .hero-grid { gap: 36px; }
  .hero-copy > p { font-size: 1rem; }
  .hero-actions .btn { width: 100%; }
  .hero-trust { display: grid; gap: 9px; }
  .hero-capabilities { grid-template-columns: 1fr; margin-top: 52px; border-radius: 18px 18px 0 0; }
  .hero-capabilities article { border-right: 0; border-bottom: 1px solid var(--line); }
  .pain-card { grid-template-columns: 44px 1fr; padding: 18px; }
  .solution-column { padding: 29px; }
  .neo-benefit-grid { grid-template-columns: 1fr; }
  .neo-visual { padding: 10px 10px 96px; }
  .neo-image-caption { left: 20px; right: 20px; bottom: 112px; min-width: 0; }
  .neo-device-card { right: 8px; bottom: 12px; width: calc(100% - 16px); }
  .product-grid, .service-grid, .sector-grid, .client-logo-grid, .method-steps, .support-tips, .company-cap-grid, .benefit-grid, .risk-cards { grid-template-columns: 1fr; }
  .product-card-neo { grid-template-columns: 1fr; }
  .product-photo { min-height: 280px; }
  .product-card-body { padding: 28px; }
  .service-card p { min-height: 0; }
  .client-logo-grid { grid-template-columns: repeat(2, 1fr); }
  .method-steps li { min-height: auto; }
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .lead-form { padding: 23px; }
  .form-head { display: grid; }
  .footer-callout { padding: 30px 24px; }
  .footer-callout-actions .btn { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 52px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .whatsapp-float { right: 12px; bottom: 12px; padding-right: 9px; }
  .whatsapp-float strong { display: none; }
  .cookie-banner { left: 12px; bottom: 12px; width: calc(100vw - 24px); }
  .page-hero, .neo-hero { min-height: 620px; }
  .page-hero-grid, .neo-hero-grid { padding-block: 70px; gap: 34px; }
  .page-hero h1, .neo-hero h1 { font-size: clamp(2.75rem, 12vw, 4.15rem); }
  .page-hero-overlay { background: linear-gradient(180deg, rgba(4,13,29,.73), rgba(4,13,29,.98) 65%); }
  .neo-hero-overlay { background: linear-gradient(180deg, rgba(4,13,29,.65), rgba(4,13,29,.98) 62%); }
  .critical-grid, .neo-portfolio-benefits, .workflow-line, .catalog-grid, .neo-journey-steps { grid-template-columns: 1fr; }
  .critical-grid h3, .critical-grid p { min-height: 0; }
  .neo-floating-proof { left: 12px; right: 12px; bottom: 22px; max-width: none; }
  .portfolio-neo-visual { padding-bottom: 125px; }
  .catalog-card { min-height: auto; padding: 27px; }
  .catalog-card ul { grid-template-columns: 1fr; }
  .dialogue-dark { padding: 32px; }
  .dialogue-light { grid-template-columns: 1fr; padding: 32px; }
  .dialogue-light img { width: 100%; height: 270px; border-radius: 18px; }
  .neo-anchor-nav { top: var(--header-h); }
  .neo-anchor-nav .container { gap: 18px; }
  .minute-flow { grid-template-columns: 1fr; gap: 12px; padding: 22px; }
  .flow-arrow { transform: rotate(90deg); }
  .minute-alert { grid-column: auto; grid-template-columns: 1fr; }
  .ecosystem-map { grid-template-columns: 1fr; }
  .ecosystem-center { grid-column: auto; }
  .device-stage { min-height: 420px; padding: 35px 18px; }
  .spec-grid { grid-template-columns: 1fr; }
  .neo-final-grid > img { height: 330px; }
  .support-bar { grid-template-columns: 1fr; }
  .company-image-stack { grid-template-columns: 1fr; grid-template-rows: auto; }
  .company-image-stack img:first-child { grid-row: auto; min-height: 280px; }
  .identity-grid > div { align-items: flex-start; flex-direction: column; }
  .contact-direct { grid-template-columns: 1fr; }
  .contact-expert-card { max-width: 480px; }
  .legal-shell { padding: 27px; }
  .not-found-grid { grid-template-columns: 1fr; }
  .not-found-art { min-height: 300px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* Formulários: validação acessível */
.lead-form .is-invalid,
.portal-form .is-invalid {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 4px rgba(214, 75, 86, .1) !important;
}
.field-error {
  display: block;
  margin-top: -5px;
  color: var(--red);
  font-size: .72rem;
  font-weight: 750;
}
.field-error[hidden] { display: none; }
.form-status.is-success { color: var(--green); }


/* =========================================================
   V3 — robustez visual, contraste e aprofundamento comercial
   ========================================================= */
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
img { background-color: #eef3fb; }
.brand img, .footer-logo, .client-logo img { background: transparent; }
.section-dark, .neo-home, .neo-hero, .page-hero, .neo-final-cta, .site-footer { color: #fff; }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4,
.neo-home h1, .neo-home h2, .neo-home h3, .neo-home h4,
.neo-hero h1, .neo-hero h2, .neo-hero h3, .neo-hero h4,
.page-hero h1, .page-hero h2, .page-hero h3, .page-hero h4,
.neo-final-cta h1, .neo-final-cta h2, .neo-final-cta h3, .neo-final-cta h4,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4 { color: #fff; }
.section-dark p, .section-dark li, .section-dark small,
.neo-home p, .neo-home li, .neo-home small,
.neo-hero p, .neo-hero li, .neo-hero small,
.page-hero p, .page-hero li, .page-hero small,
.neo-final-cta p, .neo-final-cta li, .neo-final-cta small,
.site-footer p, .site-footer li, .site-footer small { color: rgba(255,255,255,.78); }
.section-dark strong, .neo-home strong, .neo-hero strong, .page-hero strong, .neo-final-cta strong, .site-footer strong { color: #fff; }

/* Home — fábrica */
.factory-home { padding: 112px 0 84px; background: #fff; }
.factory-home-grid { display: grid; grid-template-columns: minmax(360px,.88fr) minmax(0,1.12fr); gap: 76px; align-items: center; }
.factory-home-media { position: relative; min-height: 720px; border-radius: 30px; overflow: hidden; background: var(--ink); box-shadow: var(--shadow-lg); }
.factory-home-media > img { width: 100%; height: 720px; object-fit: cover; object-position: center; }
.factory-home-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(4,13,29,.86)); pointer-events:none; }
.factory-media-note { position:absolute; z-index:2; left:28px; right:28px; bottom:28px; padding:22px; border:1px solid rgba(255,255,255,.22); border-radius:16px; color:#fff; background:rgba(7,19,38,.72); backdrop-filter:blur(12px); }
.factory-media-note strong, .factory-media-note span { display:block; }
.factory-media-note span { margin-top:5px; color:rgba(255,255,255,.76); font-size:.86rem; }
.factory-home-copy h2 { margin-bottom:24px; font-size:clamp(2.4rem,4.1vw,4.4rem); }
.factory-home-copy > p { margin-bottom:30px; font-size:1.05rem; }
.factory-promise-list { display:grid; gap:13px; margin-bottom:30px; }
.factory-promise-list article { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:17px 18px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); }
.factory-promise-list article > span { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; color:var(--blue); background:var(--blue-soft); font-weight:900; font-size:.74rem; }
.factory-promise-list strong { display:block; color:var(--ink); }
.factory-promise-list p { margin:3px 0 0; font-size:.84rem; line-height:1.48; }
.quality-strip { display:grid; grid-template-columns:repeat(5,1fr); margin-top:72px; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:#fff; box-shadow:var(--shadow-sm); }
.quality-strip > div { padding:22px; border-right:1px solid var(--line); }
.quality-strip > div:last-child { border-right:0; }
.quality-strip > div > span { width:42px; height:42px; display:grid; place-items:center; margin-bottom:13px; border-radius:12px; color:var(--blue); background:var(--blue-soft); }
.quality-strip strong, .quality-strip small { display:block; }
.quality-strip strong { color:var(--ink); font-size:.9rem; line-height:1.35; }
.quality-strip small { margin-top:5px; color:var(--muted); font-size:.73rem; line-height:1.48; }

/* Neo v3 */
.infant-challenge { overflow:hidden; }
.challenge-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.challenge-grid article { min-height:245px; padding:28px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(7,19,38,.05); }
.challenge-grid article > span { display:inline-grid; place-items:center; width:42px; height:42px; margin-bottom:28px; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-weight:900; font-size:.76rem; }
.challenge-grid h3 { min-height:52px; margin-bottom:12px; font-size:1.25rem; }
.challenge-grid p { margin:0; font-size:.9rem; }
.spec-panel { display:grid; grid-template-columns:.78fr 1.22fr; gap:60px; align-items:start; margin-top:72px; padding:44px; border:1px solid var(--line); border-radius:24px; background:var(--surface-soft); }
.spec-panel h3 { margin-bottom:15px; font-size:1.75rem; }
.spec-panel dl { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:0; }
.spec-panel dl > div { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.spec-panel dt { color:var(--blue); font-size:.72rem; font-weight:850; text-transform:uppercase; letter-spacing:.07em; }
.spec-panel dd { margin:5px 0 0; color:var(--ink); font-size:.88rem; font-weight:750; line-height:1.45; }
.neo-process { background:radial-gradient(circle at 85% 10%,rgba(45,99,255,.22),transparent 34%),#071326; }
.process-timeline { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; padding:0; margin:0; counter-reset:stage; }
.process-timeline li { min-height:250px; padding:26px; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(255,255,255,.05); }
.process-timeline li > span { display:grid; place-items:center; width:42px; height:42px; margin-bottom:30px; border-radius:50%; color:#fff; background:var(--blue); font-weight:900; font-size:.74rem; }
.process-timeline h3 { margin-bottom:12px; font-size:1.2rem; }
.process-timeline p { margin:0; font-size:.86rem; }
.stakeholder-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.stakeholder-grid article { display:flex; flex-direction:column; min-height:330px; padding:29px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.stakeholder-grid article > .icon { color:var(--blue); margin-bottom:28px; }
.stakeholder-grid h3 { margin-bottom:12px; }
.stakeholder-grid p { font-size:.9rem; }
.stakeholder-grid strong { margin-top:auto; color:var(--blue); font-size:.73rem; text-transform:uppercase; letter-spacing:.07em; }
.stakeholder-grid article > span { margin-top:5px; color:var(--ink); font-size:.84rem; font-weight:750; line-height:1.48; }
.benefit-grid-expanded { grid-template-columns:repeat(4,1fr); }
.governance-section { background:radial-gradient(circle at 15% 100%,rgba(65,199,255,.13),transparent 34%),#08152a; }
.governance-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.governance-grid article { min-height:270px; padding:27px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.055); }
.governance-grid article > .icon { margin-bottom:30px; color:#7da0ff; }
.governance-grid h3 { font-size:1.28rem; }
.governance-grid p { font-size:.87rem; }
.governance-note { max-width:960px; margin:30px auto 0; padding:18px 22px; border-left:3px solid #5d8bff; background:rgba(255,255,255,.05); font-size:.86rem; }
.implementation-steps { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:0; margin:0; }
.implementation-steps li { min-height:315px; padding:28px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.implementation-steps li > span { display:inline-grid; place-items:center; width:42px; height:42px; margin-bottom:28px; border-radius:12px; color:#fff; background:var(--blue); font-weight:900; font-size:.75rem; }
.implementation-steps h3 { min-height:50px; margin-bottom:12px; font-size:1.25rem; }
.implementation-steps p { min-height:92px; font-size:.88rem; }
.implementation-steps strong { color:var(--ink); font-size:.78rem; }
.implementation-steps small { color:var(--muted); font-size:.78rem; }

/* Fábrica de software — página */
.factory-hero .page-hero-media img { object-position:center; }
.factory-flow { overflow:hidden; }
.factory-stage-list { list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:16px; padding:0; margin:0; }
.factory-stage-list li { display:grid; grid-template-columns:54px 1fr; gap:18px; min-height:245px; padding:28px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(7,19,38,.05); }
.factory-stage-list li > span { width:50px; height:50px; display:grid; place-items:center; border-radius:14px; color:#fff; background:var(--blue); font-size:.8rem; font-weight:900; }
.factory-stage-list h3 { margin-bottom:10px; font-size:1.35rem; }
.factory-stage-list p { margin-bottom:14px; font-size:.9rem; }
.factory-stage-list strong { color:var(--ink); font-size:.8rem; }
.factory-stage-list small { color:var(--muted); font-size:.8rem; }
.quality-gates { background:radial-gradient(circle at 80% 0,rgba(45,99,255,.27),transparent 33%),#071326; }
.quality-gate-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.quality-gate-grid article { min-height:270px; padding:27px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.05); }
.quality-gate-grid .icon { margin-bottom:30px; color:#7da0ff; }
.quality-gate-grid h3 { font-size:1.2rem; }
.quality-gate-grid p { font-size:.86rem; }
.standards-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; align-items:center; }
.standards-list { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.standards-list article { min-height:170px; padding:26px; border:1px solid var(--line); border-radius:16px; background:var(--surface-soft); }
.standards-list strong, .standards-list span { display:block; }
.standards-list strong { color:var(--blue); font-size:1.25rem; }
.standards-list span { margin-top:9px; color:var(--muted); font-size:.88rem; }
.deliverable-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.deliverable-grid article { min-height:245px; padding:28px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.deliverable-grid .icon { margin-bottom:28px; color:var(--blue); }
.deliverable-grid h3 { font-size:1.24rem; }
.deliverable-grid p { font-size:.88rem; }
.engagement-models .contract-grid { grid-template-columns:repeat(4,1fr); }
.engagement-models .contract-grid article { min-height:360px; }
.factory-metrics { background:radial-gradient(circle at 15% 90%,rgba(65,199,255,.12),transparent 35%),#08152a; }
.metric-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.metric-grid article { min-height:170px; padding:26px; border:1px solid rgba(255,255,255,.14); border-radius:16px; background:rgba(255,255,255,.05); }
.metric-grid strong, .metric-grid span { display:block; }
.metric-grid strong { color:#fff; font-size:1.08rem; }
.metric-grid span { margin-top:9px; color:rgba(255,255,255,.72); font-size:.86rem; }
.company-quality { background:radial-gradient(circle at 90% 10%,rgba(45,99,255,.22),transparent 32%),#071326; }

@media (max-width:1180px) {
  .quality-strip { grid-template-columns:repeat(3,1fr); }
  .quality-strip > div { border-bottom:1px solid var(--line); }
  .process-timeline, .quality-gate-grid, .benefit-grid-expanded { grid-template-columns:repeat(2,1fr); }
  .engagement-models .contract-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:980px) {
  .factory-home-grid, .spec-panel, .standards-grid { grid-template-columns:1fr; }
  .factory-home-media, .factory-home-media > img { min-height:500px; height:500px; }
  .quality-strip { grid-template-columns:repeat(2,1fr); }
  .challenge-grid, .stakeholder-grid, .implementation-steps, .deliverable-grid, .metric-grid { grid-template-columns:repeat(2,1fr); }
  .governance-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:720px) {
  .factory-home { padding-top:72px; }
  .factory-home-media, .factory-home-media > img { min-height:390px; height:390px; }
  .factory-media-note { left:14px; right:14px; bottom:14px; padding:16px; }
  .quality-strip, .challenge-grid, .spec-panel dl, .process-timeline, .stakeholder-grid, .benefit-grid-expanded, .governance-grid, .implementation-steps, .factory-stage-list, .quality-gate-grid, .standards-list, .deliverable-grid, .engagement-models .contract-grid, .metric-grid { grid-template-columns:1fr; }
  .quality-strip > div { border-right:0; }
  .spec-panel { padding:26px; gap:30px; }
  .factory-stage-list li { grid-template-columns:44px 1fr; padding:22px; }
  .factory-stage-list li > span { width:42px; height:42px; }
  .challenge-grid article, .stakeholder-grid article, .implementation-steps li, .quality-gate-grid article, .deliverable-grid article { min-height:auto; }
  .implementation-steps h3, .implementation-steps p { min-height:0; }
}

/* Evita que o painel móvel fechado amplie a largura da página. */
html, body { max-width: 100%; overflow-x: clip; }
.mobile-panel { visibility: hidden; pointer-events: none; }
.menu-open .mobile-panel { visibility: visible; pointer-events: auto; }

.public-value-band { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 32px; }
.public-value-band article { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 24px; border: 1px solid #cfdcf0; border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.public-value-band article > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-size: .76rem; font-weight: 900; }
.public-value-band strong { display: block; margin-bottom: 5px; color: var(--ink); font-size: 1.12rem; }
.public-value-band p { margin: 0; font-size: .86rem; }
@media (max-width: 980px) { .public-value-band { grid-template-columns: 1fr; } }


/* =========================================================
   V4 — revisão minuciosa, coerência visual e novos visuais
   ========================================================= */
body { overflow-x: hidden; }
h1, h2, h3, h4, p, li, small, strong, span, a, button { overflow-wrap: break-word; word-break: normal; hyphens: auto; }
.container > *, .split > *, .hero-grid > *, .page-hero-grid > *, .neo-hero-grid > *, .conversation-board > *, .product-grid > *,
.factory-home-grid > *, .standards-grid > *, .neo-home-grid > *, .minute-grid > *, .neo-tech-grid > *, .contact-conversation-grid > *,
.risk-grid > *, .faq-grid > *, .portfolio-dialogue-grid > *, .company-story-grid > *, .contact-form-grid > * { min-width: 0; }
.illustration-shell { display:grid; grid-template-columns: .96fr 1.04fr; gap: 36px; align-items:center; padding: 34px; border:1px solid var(--line); border-radius: 24px; background:#fff; box-shadow: var(--shadow-sm); }
.illustration-shell img { width:100%; border-radius: 20px; box-shadow: var(--shadow-md); background:#fff; }
.illustration-copy h3 { margin-bottom: 14px; font-size: clamp(1.65rem, 2.4vw, 2.25rem); }
.illustration-copy p { margin-bottom: 16px; }
.illustration-list { list-style:none; display:grid; gap: 12px; padding:0; margin: 0; }
.illustration-list li { display:flex; align-items:flex-start; gap:10px; padding: 14px 16px; border:1px solid var(--line); border-radius: 14px; background: var(--surface-soft); color: var(--ink); font-weight: 650; }
.illustration-list .icon { color: var(--green); margin-top: 3px; }
.ops-change-grid { display:grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.ops-change-grid article { min-height: 250px; padding: 26px; border:1px solid var(--line); border-radius: 18px; background:#fff; box-shadow: var(--shadow-sm); }
.ops-change-grid article .icon { color: var(--blue); margin-bottom: 26px; }
.ops-change-grid h3 { font-size: 1.18rem; margin-bottom: 12px; }
.ops-change-grid p { margin-bottom: 0; font-size: .89rem; }
.assurance-grid { display:grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.assurance-grid article { min-height: 245px; padding: 26px; border:1px solid var(--line); border-radius: 18px; background:#fff; box-shadow: var(--shadow-sm); }
.assurance-grid article .icon { color: var(--blue); margin-bottom: 24px; }
.assurance-grid h3 { margin-bottom: 12px; font-size: 1.18rem; }
.assurance-grid p { margin: 0; font-size: .89rem; }
.assurance-note { max-width: 980px; margin: 28px auto 0; padding: 18px 22px; border-left: 3px solid var(--blue); border-radius: 0 16px 16px 0; background: var(--surface-blue); color: var(--ink); }
.assurance-note p { color: var(--ink); margin: 0; }
.minute-proof { margin-top: 38px; }
.minute-proof .illustration-shell { background: linear-gradient(180deg, #fff, #f8fbff); }
.neo-register-board { margin-top: 26px; display:grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.neo-register-board article { padding: 20px; border:1px solid var(--line); border-radius: 16px; background:#fff; }
.neo-register-board strong { display:block; margin-bottom: 8px; color: var(--ink); }
.neo-register-board p { margin:0; font-size: .84rem; }
.process-visual-wrap { margin-top: 36px; }
.process-visual-wrap .illustration-shell { color:#fff; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.05); }
.process-visual-wrap .illustration-copy p, .process-visual-wrap .illustration-copy li { color: rgba(255,255,255,.79); }
.process-visual-wrap .illustration-list li { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.06); color: #fff; }
.process-visual-wrap .illustration-shell img { border:1px solid rgba(255,255,255,.12); }
.factory-proof-grid { display:grid; grid-template-columns: .96fr 1.04fr; gap: 36px; align-items:center; }
.factory-proof-copy p { max-width: 620px; }
.factory-proof-list { list-style:none; display:grid; gap: 14px; padding: 0; margin: 26px 0 0; }
.factory-proof-list li { display:grid; grid-template-columns: 42px 1fr; gap: 14px; align-items:flex-start; padding: 16px 18px; border:1px solid var(--line); border-radius: 16px; background:#fff; }
.factory-proof-list li > span { width:42px; height:42px; display:grid; place-items:center; border-radius: 12px; color:#fff; background: var(--blue); font-weight:900; }
.factory-proof-list strong { display:block; margin-bottom: 5px; color: var(--ink); }
.factory-proof-list p { margin:0; font-size: .88rem; }
.image-caption-note { display:block; margin-top: 10px; color: var(--muted); font-size: .83rem; }
.client-logo img { object-fit: contain; }
@media (max-width: 1180px) { .ops-change-grid, .assurance-grid, .neo-register-board { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 980px) { .illustration-shell, .factory-proof-grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .illustration-shell { padding: 22px; } .ops-change-grid, .assurance-grid, .neo-register-board { grid-template-columns: 1fr; } .factory-proof-list li { grid-template-columns: 36px 1fr; padding: 14px; } .factory-proof-list li > span { width: 36px; height: 36px; } }


/* =========================================================
   V5 - varredura visual, correções de quebra e refinamento premium
   ========================================================= */
html, body { overflow-x: hidden; }
img { background: transparent; image-rendering: auto; }
.hero-media img, .page-hero-media img, .neo-hero-media img,
.factory-home-media img, .sector-card img, .product-photo img,
.portfolio-neo-visual img, .risk-section img, .neo-final-grid > img {
  filter: none !important;
  object-fit: cover;
}

/* Evita palavras fragmentadas e preserva leitura natural. */
:where(h1,h2,h3,h4,p,li,small,strong,span,a,button) {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: manual;
}
.footer-contact a, .contact-direct strong { overflow-wrap: break-word; word-break: normal; }

/* Corrige o segundo span dos cards da Fábrica de Software. */
.critical-grid article {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.critical-grid article > span:first-child {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  margin-bottom: 21px;
  border-radius: 14px;
  color: var(--blue);
  background: var(--blue-soft);
}
.critical-grid article > strong { margin-top: auto; }
.critical-grid article > strong + span,
.critical-grid article > strong + small {
  display: block;
  width: auto;
  height: auto;
  min-width: 0;
  margin: 7px 0 0;
  padding: 0;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.55;
  text-transform: none;
  letter-spacing: 0;
}
.critical-grid h3, .critical-grid p { min-height: 0; }
.critical-grid p { margin-bottom: 28px; }

/* Cards brancos dentro de blocos escuros: contraste explícito. */
.neo-register-board article { color: var(--text); }
.neo-register-board strong { color: var(--ink) !important; }
.neo-register-board p { color: var(--muted) !important; }
.process-visual-wrap .neo-register-board article { background: #fff; border-color: #dce5f0; }
.process-visual-wrap .neo-register-board p { color: #5e6f88 !important; }
.process-visual-wrap .neo-register-board strong { color: #071326 !important; }

/* Logos maiores, nítidos e com espaço adequado. */
.client-logo-grid { grid-template-columns: repeat(5, minmax(0,1fr)); gap: 15px; }
.client-logo {
  min-height: 132px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 20px;
  overflow: hidden;
}
.client-logo img { max-width: 92%; max-height: 76px; width: auto; height: auto; filter: none; }
.client-logo span { color: var(--muted); font-size: .72rem; font-weight: 750; text-align: center; line-height: 1.3; }
.client-logo-cmb { background: #eef1f6; }
.client-logo-cmb img { max-height: 102px; border-radius: 10px; }
.client-logo-cmb span { color: #25334a; }

/* Portfólio: mais espaço, mais contexto e sem altura rígida. */
.catalog-grid { align-items: stretch; }
.catalog-card { min-height: 0; padding: 36px; overflow: hidden; }
.catalog-card > p { line-height: 1.65; }
.catalog-answer { min-height: 118px; display: flex; flex-direction: column; justify-content: center; }
.catalog-answer span { font-size: .88rem; line-height: 1.55; }
.catalog-card ul { margin-top: 4px; font-size: .84rem; line-height: 1.55; }
.catalog-card li { min-width: 0; }
.catalog-outcomes { display: flex; flex-wrap: wrap; gap: 8px; margin: -2px 0 24px; }
.catalog-outcomes span { padding: 7px 10px; border: 1px solid #d8e3f3; border-radius: 999px; color: #25436f; background: #f7f9fd; font-size: .72rem; font-weight: 800; }
.catalog-custom .catalog-outcomes span { color: #e7eeff; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.07); }

/* Neo: imagens oficiais e composição visual sem barras ou deformação. */
.neo-main-image { object-position: center; }
.portfolio-neo-visual img { aspect-ratio: 1.48 / 1; object-position: center; }
.neo-hero-media img { object-position: 63% center; }
.risk-section img { width: 100%; aspect-ratio: 16/10; object-position: center; border-radius: 18px; }
.official-image-note { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: rgba(255,255,255,.68); font-size: .72rem; }
.official-image-note::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #41c7ff; box-shadow: 0 0 0 5px rgba(65,199,255,.12); }

.neo-value-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.neo-value-metrics article { min-height: 230px; padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.neo-value-metrics article > span { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: 24px; border-radius: 13px; color: var(--blue); background: var(--blue-soft); }
.neo-value-metrics h3 { margin-bottom: 11px; font-size: 1.18rem; }
.neo-value-metrics p { margin: 0; font-size: .88rem; }
.neo-value-note { margin-top: 25px; padding: 19px 22px; border-left: 3px solid var(--blue); border-radius: 0 14px 14px 0; color: var(--ink); background: var(--surface-blue); }
.neo-value-note p { margin: 0; color: var(--ink); }

/* Atendimento: remove o retrato borrado e usa ilustração coerente. */
.dialogue-light img, .contact-expert-card img { background: #eef3fb; object-fit: cover; }
.dialogue-light img { object-position: center; }
.contact-expert-card img { object-fit: contain; padding: 18px; }

/* Ajustes de tipografia e respiro. */
.section-heading p, .split > p { line-height: 1.7; }
.product-card h3, .catalog-card h3 { text-wrap: balance; }
.product-card p, .catalog-card p { text-wrap: pretty; }

@media (max-width: 1180px) {
  .client-logo-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .neo-value-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .client-logo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .catalog-answer { min-height: 0; }
}
@media (max-width: 720px) {
  .client-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .client-logo { min-height: 112px; padding: 14px; }
  .client-logo img { max-height: 62px; }
  .client-logo-cmb img { max-height: 82px; }
  .critical-grid article > strong + span,
  .critical-grid article > strong + small { font-size: .82rem; }
  .catalog-card { padding: 27px; }
  .catalog-card ul { grid-template-columns: 1fr; }
  .neo-value-metrics { grid-template-columns: 1fr; }
  .portfolio-neo-visual img { aspect-ratio: 1.15/1; }
}

/* V5.1 — correções finais identificadas na auditoria de layout */
.company-beliefs article > span {
  grid-row: 1 / 3;
}
.company-beliefs h3,
.company-beliefs p {
  grid-column: 2;
  min-width: 0;
}
.process-visual-wrap .neo-register-board {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 720px) {
  .company-beliefs article {
    grid-template-columns: 44px minmax(0, 1fr);
  }
  .process-visual-wrap .neo-register-board {
    grid-template-columns: 1fr;
  }
}

/* V5.2 — logos de clientes com melhor presença visual */
.client-logo {
  min-height: 148px;
  padding: 16px 18px;
}
.client-logo img {
  max-width: 94%;
  max-height: 88px;
}
.client-logo-cmb img {
  max-height: 116px;
}
.client-logo-cmb span {
  display: none;
}
@media (max-width: 720px) {
  .client-logo { min-height: 122px; padding: 13px; }
  .client-logo img { max-height: 72px; }
  .client-logo-cmb img { max-height: 96px; }
}


/* =========================================================
   V6 — organização da informação, clareza visual e leitura intuitiva
   ========================================================= */
section, .section, .neo-home { scroll-margin-top: 110px; }
.section-heading { margin-bottom: 38px; }
.section-heading.narrow { margin-bottom: 34px; }
.product-grid, .catalog-grid, .client-logo-grid, .critical-grid { align-items: stretch; }
.product-card, .catalog-card, .client-logo, .critical-grid article { min-width: 0; }

/* Neo em destaque na home: retira sobreposições e organiza a leitura. */
.neo-home { padding: 100px 0 108px; }
.neo-home-grid { gap: 52px; align-items: start; }
.neo-home-copy { max-width: 640px; }
.neo-home-copy .button-row { margin-top: 28px; }
.neo-visual {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  border-radius: 28px;
  background: rgba(255,255,255,.07);
}
.neo-main-image {
  width: 100%;
  aspect-ratio: 1.08 / 1;
  object-fit: cover;
  object-position: center;
  border-radius: 22px;
}
.neo-image-caption,
.neo-device-card {
  position: static !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-shadow: var(--shadow-sm);
}
.neo-image-caption {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 12px;
  align-items: start;
  padding: 16px 18px;
  color: var(--ink) !important;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}
.neo-image-caption strong { color: var(--ink); display:block; line-height:1.35; }
.neo-image-caption small { display:block; margin-top: 4px; color: var(--muted); line-height:1.5; }
.status-dot { margin-top: 6px; }
.neo-device-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 18px;
}
.neo-device-card img { width: 96px; height: 74px; }
.neo-device-card div { min-width: 0; }
.neo-device-card span { font-size: .68rem; }
.neo-device-card strong { font-size: .86rem; line-height: 1.45; }

/* Cards de problemas na Fábrica e no Portfólio: garante hierarquia visual correta. */
.critical-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.critical-grid article {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 28px;
}
.critical-grid article > .icon {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 14px;
  color: var(--blue);
  background: var(--blue-soft);
}
.critical-grid h3 {
  min-height: 0 !important;
  margin-bottom: 12px;
  text-wrap: balance;
}
.critical-grid p {
  min-height: 0 !important;
  margin-bottom: 26px;
  line-height: 1.65;
}
.critical-grid strong {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--blue);
  font-size: .73rem;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.critical-grid small {
  display: block;
  margin-top: 7px;
  color: var(--muted) !important;
  font-size: .86rem !important;
  line-height: 1.6;
}

/* Portfólio mais respirado e intuitivo. */
.catalog-grid { gap: 18px; }
.catalog-card {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.catalog-card p, .catalog-card li { line-height: 1.65; }
.catalog-card .catalog-answer {
  min-height: 0 !important;
  margin: 18px 0 18px;
}
.catalog-card .catalog-answer span { display:block; }
.catalog-card ul { margin-top: 0; }
.catalog-card .btn { margin-top: auto; }

/* Clientes: CMB ganha destaque e logos ficam um pouco maiores, sem poluição. */
.client-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.client-logo {
  min-height: 152px;
  padding: 18px;
  border-radius: 18px;
}
.client-logo img { max-width: 96%; max-height: 86px; }
.client-logo-featured {
  grid-column: span 2;
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  justify-items: start;
  text-align: left;
  gap: 18px;
  background: linear-gradient(180deg, #f7f9fd, #ffffff);
}
.client-logo-featured::after {
  content: 'Cliente em destaque';
  align-self: end;
  justify-self: start;
  grid-column: 2;
  padding: 6px 10px;
  border-radius: 999px;
  color: #25436f;
  background: #eef3fb;
  font-size: .72rem;
  font-weight: 800;
}
.client-logo-featured img { max-height: 106px; }
.client-logo-featured span {
  display: block !important;
  color: var(--ink);
  font-size: .98rem;
  font-weight: 800;
}

/* Melhora a separação visual entre blocos de conteúdo. */
.products-section .section-heading,
.factory-home .section-heading,
.clients-section .section-heading,
.portfolio-dialogue .section-heading { margin-bottom: 40px; }
.split > p, .section-heading p { max-width: 720px; }

/* Evita estourar palavras e cartões apertados. */
:where(.neo-benefit-grid div,.product-card,.catalog-card,.critical-grid article,.client-logo,.dialogue-light,.dialogue-dark) { min-width: 0; }

@media (max-width: 1180px) {
  .neo-home-grid { grid-template-columns: 1fr; gap: 36px; }
  .critical-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .client-logo-featured { grid-column: span 2; }
}
@media (max-width: 820px) {
  .client-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-logo-featured { grid-template-columns: 96px 1fr; }
}
@media (max-width: 720px) {
  .neo-home { padding: 74px 0 82px; }
  .neo-home-copy .button-row { display:grid; grid-template-columns:1fr; gap:10px; }
  .neo-benefit-grid { grid-template-columns: 1fr; }
  .neo-visual { padding: 12px; gap: 12px; border-radius: 22px; }
  .neo-main-image { aspect-ratio: 1 / 1.08; border-radius: 18px; }
  .neo-image-caption { grid-template-columns: 12px 1fr; padding: 14px 15px; }
  .neo-device-card { grid-template-columns: 84px 1fr; padding: 12px; }
  .neo-device-card img { width: 84px; height: 66px; }
  .critical-grid { grid-template-columns: 1fr; }
  .client-logo-grid { grid-template-columns: 1fr; }
  .client-logo-featured {
    grid-column: auto;
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 12px;
  }
  .client-logo-featured::after { grid-column: auto; justify-self: center; }
  .client-logo-featured span { text-align: center; }
}


/* =========================================================
   V7 — imagens coerentes, portfólio premium e leitura acessível
   ========================================================= */
html { font-size: var(--user-font-size, 100%); }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }

/* Ferramenta de leitura */
.reading-tools {
  position: fixed;
  z-index: 960;
  right: 18px;
  bottom: 18px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(7,19,38,.14);
  border-radius: 16px;
  color: var(--ink);
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 44px rgba(7,19,38,.18);
  backdrop-filter: blur(16px);
}
.reading-tools-label { padding: 0 7px; color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.reading-tools button {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--ink);
  background: #fff;
  font-weight: 850;
}
.reading-tools button:hover, .reading-tools button:focus-visible, .reading-tools button[aria-pressed="true"] { color: #fff; border-color: var(--blue); background: var(--blue); }
.reading-tools-value { min-width: 44px; color: var(--blue); font-size: .72rem; font-weight: 850; text-align: center; }

/* Imagens e molduras: nada de elementos flutuando sobre fotos. */
.media-frame, .portfolio-showcase-media, .neo-media-primary, .neo-official-capture, .neo-official-fingerprints, .neo-hero-capture, .neo-hero-fingerprint {
  overflow: hidden;
  border-radius: 22px;
}
.media-frame img, .portfolio-showcase-media img, .neo-media-primary img, .neo-official-capture img, .neo-official-fingerprints img, .neo-hero-capture img, .neo-hero-fingerprint img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.sector-card img { width:100%; aspect-ratio: 16/10; object-fit:cover; object-position:center; }
.factory-home-media > img { width:100%; height:100%; object-fit:cover; object-position:center; }
.product-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }

/* Home Neo - galeria oficial, sem sobreposição. */
.neo-media-board {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 16px;
  align-items: stretch;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 30px;
  background: rgba(255,255,255,.06);
  box-shadow: var(--shadow-lg);
}
.neo-media-primary { position:relative; min-height: 520px; background:#06101f; }
.neo-media-primary img { min-height: 520px; }
.neo-media-primary > span,
.neo-official-capture > span,
.neo-official-fingerprints > span,
.neo-hero-capture > span,
.neo-hero-fingerprint > span {
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  padding:10px 12px;
  border-radius:12px;
  color:#fff;
  background:rgba(7,19,38,.82);
  font-size:.72rem;
  font-weight:750;
  line-height:1.4;
  backdrop-filter:blur(12px);
}
.neo-media-secondary { display:grid; grid-template-rows: 1fr 1fr; gap:16px; }
.neo-device-display, .neo-fingerprint-display {
  min-width:0;
  display:grid;
  grid-template-rows: minmax(0,1fr) auto;
  padding:16px;
  border-radius:20px;
  color:var(--ink);
  background:#fff;
}
.neo-device-display img { width:100%; height:240px; object-fit:contain; }
.neo-fingerprint-display img { width:100%; height:190px; object-fit:cover; border-radius:14px; }
.neo-device-display div, .neo-fingerprint-display div { padding-top:10px; }
.neo-device-display small, .neo-fingerprint-display small { display:block; color:var(--blue); font-size:.68rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.neo-device-display strong, .neo-fingerprint-display strong { display:block; margin-top:4px; color:var(--ink); font-size:.9rem; line-height:1.4; }
.neo-media-summary {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:14px 1fr;
  gap:12px;
  align-items:start;
  padding:16px 18px;
  border-radius:18px;
  color:var(--ink);
  background:#fff;
}
.neo-media-summary .status-dot { margin-top:6px; }
.neo-media-summary strong { display:block; color:var(--ink); }
.neo-media-summary small { display:block; margin-top:4px; color:var(--muted); line-height:1.5; }

/* Novo hero da página Neo */
.neo-hero-premium {
  position:relative;
  overflow:hidden;
  padding:96px 0;
  color:#fff;
  background:radial-gradient(circle at 85% 12%,rgba(45,99,255,.28),transparent 34%),radial-gradient(circle at 10% 90%,rgba(65,199,255,.11),transparent 30%),#071326;
}
.neo-hero-premium::before { content:""; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:58px 58px; }
.neo-hero-premium-grid { position:relative; display:grid; grid-template-columns:.92fr 1.08fr; gap:64px; align-items:center; }
.neo-hero-premium-copy h1 { margin-bottom:24px; }
.neo-hero-premium-copy > p { max-width:720px; color:rgba(255,255,255,.8); font-size:1.1rem; }
.neo-hero-official-board { display:grid; grid-template-columns:1.05fr .95fr; grid-template-rows:auto auto; gap:14px; padding:16px; border:1px solid rgba(255,255,255,.16); border-radius:30px; background:rgba(255,255,255,.06); box-shadow:var(--shadow-lg); }
.neo-hero-device { grid-row:1/3; display:flex; flex-direction:column; justify-content:center; padding:22px; border-radius:22px; color:var(--ink); background:#fff; }
.neo-hero-device img { width:100%; height:360px; object-fit:contain; }
.neo-hero-device small { color:var(--blue); font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.neo-hero-device strong { display:block; margin-top:7px; color:var(--ink); line-height:1.45; }
.neo-hero-capture, .neo-hero-fingerprint { position:relative; min-height:220px; }
.neo-hero-capture img, .neo-hero-fingerprint img { min-height:220px; }

/* Portfolio premium - referências de sites de produto e engenharia */
.portfolio-premium-page { background:#fff; }
.portfolio-premium-hero { position:relative; overflow:hidden; padding:90px 0 88px; color:#fff; background:radial-gradient(circle at 92% 0,rgba(45,99,255,.30),transparent 34%),#071326; }
.portfolio-premium-hero-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:60px; align-items:center; }
.portfolio-premium-copy h1 { margin-bottom:24px; font-size:clamp(3.2rem,5.2vw,5.8rem); }
.portfolio-premium-copy h1 span { color:#5D8BFF; }
.portfolio-premium-copy > p { max-width:690px; color:rgba(255,255,255,.78); font-size:1.08rem; }
.portfolio-proof-line { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.portfolio-proof-line span { padding:8px 11px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:rgba(255,255,255,.8); background:rgba(255,255,255,.05); font-size:.72rem; font-weight:780; }
.portfolio-premium-visual { min-width:0; }
.portfolio-premium-visual > img { width:100%; border-radius:30px; box-shadow:0 34px 90px rgba(0,0,0,.34); }
.portfolio-visual-caption { display:grid; gap:4px; margin:14px 10px 0; }
.portfolio-visual-caption strong { color:#fff; }
.portfolio-visual-caption span { color:rgba(255,255,255,.65); font-size:.82rem; }
.portfolio-index-bar { position:sticky; top:var(--header-h); z-index:820; overflow:auto; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(18px); }
.portfolio-index-bar .container { display:flex; gap:28px; align-items:center; min-height:58px; white-space:nowrap; }
.portfolio-index-bar a { color:#44536B; font-size:.79rem; font-weight:800; }
.portfolio-index-bar a:hover { color:var(--blue); }
.portfolio-entry-section { padding-top:88px; }
.portfolio-entry-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.portfolio-entry-grid a { min-height:210px; display:flex; flex-direction:column; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); transition:.25s var(--ease); }
.portfolio-entry-grid a:hover { transform:translateY(-5px); border-color:#B8C9F3; box-shadow:var(--shadow-md); }
.portfolio-entry-grid a > span { width:46px; height:46px; display:grid; place-items:center; margin-bottom:24px; border-radius:13px; color:var(--blue); background:var(--blue-soft); }
.portfolio-entry-grid strong { color:var(--ink); line-height:1.35; }
.portfolio-entry-grid small { margin-top:auto; padding-top:16px; color:var(--muted); line-height:1.5; }
.portfolio-neo-premium { color:#fff; background:radial-gradient(circle at 85% 20%,rgba(45,99,255,.25),transparent 35%),#071326; }
.portfolio-neo-premium-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; align-items:center; }
.portfolio-neo-content h2 { margin:18px 0 22px; }
.portfolio-product-lead { color:rgba(255,255,255,.78)!important; font-size:1.08rem; }
.portfolio-result-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:28px 0; }
.portfolio-result-grid > div { padding:17px; border:1px solid rgba(255,255,255,.15); border-radius:15px; background:rgba(255,255,255,.06); }
.portfolio-result-grid strong, .portfolio-result-grid span { display:block; }
.portfolio-result-grid strong { color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; }
.portfolio-result-grid span { margin-top:7px; color:rgba(255,255,255,.72); font-size:.8rem; line-height:1.5; }
.portfolio-feature-list { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 18px; padding:0; margin:0 0 28px; }
.portfolio-feature-list li { display:flex; gap:9px; color:rgba(255,255,255,.85); font-size:.86rem; }
.portfolio-feature-list .icon { color:#61E4B5; flex:0 0 auto; margin-top:2px; }
.neo-official-gallery { display:grid; grid-template-columns:1.05fr .95fr; grid-template-rows:1fr 1fr; gap:14px; padding:16px; border:1px solid rgba(255,255,255,.16); border-radius:30px; background:rgba(255,255,255,.06); }
.neo-official-device { grid-row:1/3; display:flex; flex-direction:column; justify-content:center; padding:22px; border-radius:22px; color:var(--ink); background:#fff; }
.neo-official-device img { width:100%; height:390px; object-fit:contain; }
.neo-official-device span { color:var(--muted); font-size:.76rem; font-weight:750; text-align:center; }
.neo-official-capture, .neo-official-fingerprints { position:relative; min-height:240px; }
.neo-official-capture img, .neo-official-fingerprints img { min-height:240px; }
.portfolio-group-section { overflow:hidden; }
.portfolio-showcase { display:grid; grid-template-columns:1.08fr .92fr; gap:54px; align-items:center; padding:48px 0; border-top:1px solid var(--line); }
.portfolio-showcase:first-of-type { border-top:0; }
.portfolio-showcase-reverse .portfolio-showcase-media { order:2; }
.portfolio-showcase-reverse .portfolio-showcase-copy { order:1; }
.portfolio-showcase-media { padding:12px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-md); }
.portfolio-showcase-media img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:16px; }
.portfolio-code { display:inline-flex; margin-bottom:15px; color:var(--blue); font-size:.72rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.portfolio-showcase-copy h3 { margin-bottom:7px; font-size:clamp(2rem,3.6vw,3.6rem); }
.portfolio-subtitle { color:var(--ink-3); font-weight:750; }
.portfolio-showcase-copy > p:not(.portfolio-subtitle) { font-size:1rem; }
.portfolio-gain-box { margin:24px 0 20px; padding:19px 20px; border-left:3px solid var(--blue); border-radius:0 15px 15px 0; background:var(--surface-blue); }
.portfolio-gain-box strong, .portfolio-gain-box span { display:block; }
.portfolio-gain-box strong { color:var(--ink); }
.portfolio-gain-box span { margin-top:6px; color:var(--muted); line-height:1.6; }
.portfolio-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.portfolio-chip-row span { padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:#25436F; background:#F8FAFD; font-size:.71rem; font-weight:800; }
.portfolio-factory-premium { color:#fff; background:radial-gradient(circle at 90% 10%,rgba(45,99,255,.25),transparent 36%),#071326; }
.portfolio-factory-premium-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:56px; align-items:center; }
.portfolio-factory-premium h2 { margin-bottom:22px; }
.portfolio-factory-premium p { color:rgba(255,255,255,.75); }
.portfolio-factory-visual img { width:100%; border-radius:28px; box-shadow:var(--shadow-lg); }
.portfolio-result-grid-light > div { border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.05); }
.portfolio-final-conversation { background:linear-gradient(135deg,#EEF4FF,#fff 60%); }
.portfolio-final-conversation-grid { display:grid; grid-template-columns:1fr auto; gap:42px; align-items:center; }
.portfolio-final-conversation h2 { max-width:780px; }
.portfolio-final-conversation p { max-width:720px; }
.portfolio-final-actions { display:grid; gap:10px; min-width:250px; }

/* Fonte ampliada: reduz colunas antes de ocorrer quebra. */
html[data-font-scale="large"] .portfolio-entry-grid,
html[data-font-scale="xlarge"] .portfolio-entry-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
html[data-font-scale="large"] .client-logo-grid,
html[data-font-scale="xlarge"] .client-logo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
html[data-font-scale="xlarge"] .nav-links, html[data-font-scale="xlarge"] .nav-actions { display:none; }
html[data-font-scale="xlarge"] .menu-toggle { display:inline-flex; }
html[data-font-scale="xlarge"] .critical-grid,
html[data-font-scale="xlarge"] .product-grid,
html[data-font-scale="xlarge"] .quality-gate-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

@media (max-width:1180px) {
  .portfolio-premium-hero-grid, .portfolio-neo-premium-grid, .portfolio-factory-premium-grid, .neo-hero-premium-grid { grid-template-columns:1fr; }
  .portfolio-premium-visual, .neo-official-gallery, .neo-hero-official-board { max-width:900px; }
  .portfolio-entry-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .portfolio-showcase { grid-template-columns:1fr; gap:32px; }
  .portfolio-showcase-reverse .portfolio-showcase-media, .portfolio-showcase-reverse .portfolio-showcase-copy { order:initial; }
  .neo-media-board { grid-template-columns:1fr; }
  .neo-media-primary { min-height:430px; }
  .neo-media-primary img { min-height:430px; }
}
@media (max-width:820px) {
  .portfolio-entry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-result-grid { grid-template-columns:1fr; }
  .portfolio-feature-list { grid-template-columns:1fr; }
  .neo-official-gallery, .neo-hero-official-board { grid-template-columns:1fr; grid-template-rows:auto; }
  .neo-official-device, .neo-hero-device { grid-row:auto; }
  .neo-official-device img, .neo-hero-device img { height:300px; }
  .neo-media-secondary { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .portfolio-final-conversation-grid { grid-template-columns:1fr; }
  .portfolio-final-actions { min-width:0; max-width:440px; }
}
@media (max-width:720px) {
  .reading-tools { right:10px; bottom:10px; gap:4px; padding:6px; }
  .reading-tools-label { display:none; }
  .reading-tools button { width:36px; height:36px; }
  .reading-tools-value { min-width:38px; }
  .portfolio-premium-hero { padding:72px 0; }
  .portfolio-premium-copy h1 { font-size:clamp(2.7rem,12vw,4.2rem); }
  .portfolio-index-bar .container { gap:20px; }
  .portfolio-entry-grid { grid-template-columns:1fr; }
  .portfolio-entry-grid a { min-height:auto; }
  .portfolio-showcase { padding:34px 0; }
  .portfolio-showcase-media { padding:8px; border-radius:18px; }
  .portfolio-showcase-media img { border-radius:13px; }
  .neo-media-primary { min-height:330px; }
  .neo-media-primary img { min-height:330px; }
  .neo-media-secondary { grid-template-columns:1fr; }
  .neo-device-display img { height:220px; }
  .neo-fingerprint-display img { height:170px; }
  .neo-hero-premium { padding:72px 0; }
  .neo-hero-device img, .neo-official-device img { height:260px; }
  .neo-hero-capture, .neo-hero-fingerprint, .neo-official-capture, .neo-official-fingerprints { min-height:190px; }
  .neo-hero-capture img, .neo-hero-fingerprint img, .neo-official-capture img, .neo-official-fingerprints img { min-height:190px; }
  .portfolio-factory-premium-grid { gap:34px; }
}

/* =========================================================
   V7.1 — correções finais de disposição, navegação e acessibilidade
   ========================================================= */

/* O painel móvel fechado permanece dentro do viewport e deixa de ampliar a página. */
.mobile-panel {
  right: 0 !important;
  transform: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .24s var(--ease), visibility .24s;
}
.menu-open .mobile-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none !important;
}

/* Índice do portfólio: cada item conserva sua largura e a barra rola horizontalmente. */
.portfolio-index-bar { overflow-x: auto; overflow-y: hidden; }
.portfolio-index-bar .container { overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.portfolio-index-bar a { flex: 0 0 auto; }

/* Números já orientam o método; setas externas não precisam ampliar os cartões. */
.method-steps li::after { display: none !important; }
.method-steps li { overflow: hidden; }

/* Rótulos do equipamento deixam de cortar palavras. */
.device-orbit span {
  width: auto;
  min-width: 72px;
  height: auto;
  min-height: 42px;
  padding: 8px 11px;
  border-radius: 999px;
  white-space: nowrap;
  font-size: .72rem;
  font-weight: 800;
}

/* O visual principal do Neo usa ilustração vetorial nítida; a foto oficial fica como apoio. */
.neo-media-primary { background: #f3f7fd; }
.neo-media-primary img { object-fit: contain !important; background: #f3f7fd; }
.neo-capture-display img { object-fit: cover !important; border-radius: 14px; }
.risk-section img[src$=".svg"] {
  aspect-ratio: 1.46 / 1;
  object-fit: contain !important;
  background: #f6f8fc;
}

/* Controles de leitura e WhatsApp não competem pelo mesmo espaço. */
.reading-tools { bottom: 82px; }
.cookie-open .reading-tools { bottom: 190px; }

@media (max-width: 720px) {
  .cookie-banner {
    gap: 9px;
    padding: 14px 15px;
    border-radius: 16px;
  }
  .cookie-banner p { font-size: .72rem; line-height: 1.5; }
  .cookie-banner > div { gap: 10px; }
  .cookie-banner .btn { min-height: 42px; padding-inline: 16px; }
  .cookie-open .reading-tools { bottom: 174px; }
  .cookie-open .whatsapp-float { opacity: 0; visibility: hidden; pointer-events: none; }
  .reading-tools { bottom: 72px; }
  .portfolio-index-bar .container { padding-inline: 14px; }
  .device-orbit { display: none; }
  .neo-media-primary, .neo-media-primary img { min-height: 300px; }
}

/* V7.2 — controles de leitura em fluxo, sem cobrir conteúdo. */
.reading-tools,
.cookie-open .reading-tools {
  position: relative !important;
  inset: auto !important;
  z-index: 810;
  width: 100%;
  min-height: 48px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 7px;
  padding: 6px max(20px, calc((100vw - var(--container)) / 2));
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #f7f9fd;
  box-shadow: none;
  backdrop-filter: none;
}
.reading-tools-label { font-size: .7rem; }
@media (max-width: 720px) {
  .reading-tools,
  .cookie-open .reading-tools {
    min-height: 46px;
    justify-content: center;
    gap: 5px;
    padding: 5px 12px;
  }
  .reading-tools-label { display: inline; margin-right: 4px; font-size: .65rem; }
  .reading-tools button { width: 34px; height: 34px; }
  .reading-tools-value { min-width: 38px; }
}


/* =========================================================
   V8 — correções de leitura, hierarquia e composição visual
   ========================================================= */

h1, h2, h3, h4, .btn, .eyebrow, .product-tag, .portfolio-code, .solution-kicker {
  hyphens: none !important;
  word-break: keep-all;
  overflow-wrap: normal;
  text-wrap: balance;
}

.section { padding: 90px 0; }
.split { grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr); gap: 38px; align-items: end; }
.section-heading h2 { font-size: clamp(2rem, 3.8vw, 3.45rem); max-width: 15ch; }
.section-heading.center h2 { margin-inline: auto; }
.section-heading.split h2, .portfolio-showcase-copy h3, .dialogue-dark h2 { text-wrap: balance; }
.section-heading p, .split > p { color: var(--muted); }
.sectors-section, .clients-section { padding-top: 78px; }

/* Escurecimentos e textos em áreas escuras */
.solution-column .check-list li,
.dialogue-dark .check-list li,
.portfolio-neo-premium .portfolio-feature-list li,
.portfolio-factory-premium .portfolio-result-grid span,
.portfolio-factory-premium .portfolio-result-grid strong,
.quality-gate-grid article,
.factory-metrics article,
.metric-grid article,
.portfolio-neo-premium .text-link,
.portfolio-neo-premium .text-link:hover,
.solution-column .text-link,
.solution-column .text-link:hover,
.dialogue-dark .text-link,
.dialogue-dark .text-link:hover { color: rgba(255,255,255,.92) !important; }
.solution-column > p, .dialogue-dark p { color: rgba(255,255,255,.78) !important; }

/* Home: seção de conversa mais legível */
.conversation-board { grid-template-columns: 1fr 1fr; gap: 24px; }
.solution-column { padding: 38px; }
.solution-column h3 { font-size: clamp(1.65rem, 2.4vw, 2.35rem); }

/* Card do produto Neo na home: imagem contida e texto mais respirado */
.product-card-neo {
  grid-template-columns: minmax(280px, .88fr) minmax(0, 1.12fr);
  min-height: 420px;
  overflow: hidden;
  align-items: stretch;
}
.product-photo {
  display: grid;
  place-items: center;
  padding: 24px;
  background: #eef3fb;
}
.product-photo img {
  width: 100%;
  height: 100%;
  max-height: 340px;
  object-fit: contain !important;
}
.product-card-body { display: flex; flex-direction: column; }
.product-card-body .text-link { margin-top: auto; }

/* Neo da home: frames mais consistentes */
.neo-media-board { gap: 16px; align-items: stretch; }
.neo-media-primary {
  min-height: 0;
  aspect-ratio: 1 / 1.02;
  padding: 18px;
  border-radius: 24px;
}
.neo-media-primary img {
  width: 100%;
  height: calc(100% - 56px);
  object-fit: contain;
}
.neo-media-primary > span {
  display: block;
  margin-top: 12px;
  color: var(--ink);
  font-weight: 700;
}
.neo-media-secondary { gap: 16px; }
.neo-device-display, .neo-fingerprint-display { min-height: 0; }
.neo-device-display img { max-height: 230px; }
.neo-capture-display img, .neo-fingerprint-display img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover !important;
}

/* Portfolio premium: hero e blocos com menos ruído */
.portfolio-premium-hero { padding: 82px 0 76px; }
.portfolio-premium-hero-grid { grid-template-columns: .95fr 1.05fr; gap: 42px; }
.portfolio-premium-copy h1 { font-size: clamp(2.8rem, 4.8vw, 4.9rem); max-width: 12ch; }
.portfolio-premium-visual > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: #0d1d36;
}
.portfolio-entry-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.portfolio-entry-grid a { min-height: 190px; }
.portfolio-neo-premium-grid,
.portfolio-factory-premium-grid { gap: 38px; }
.portfolio-showcase {
  grid-template-columns: minmax(280px, .98fr) minmax(0, 1.02fr);
  gap: 40px;
  padding: 40px 0;
}
.portfolio-showcase-media {
  display: flex;
  align-items: stretch;
  aspect-ratio: 4 / 3;
  border-radius: 24px;
  overflow: hidden;
}
.portfolio-showcase-media img { height: 100%; border-radius: 0; }
.portfolio-showcase-copy h3 { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.portfolio-showcase-copy > p,
.portfolio-subtitle,
.portfolio-gain-box span { line-height: 1.7; }
.portfolio-final-conversation-grid { grid-template-columns: 1.1fr .9fr; gap: 30px; }

/* Galeria Neo mais organizada */
.neo-official-gallery {
  align-items: stretch;
  gap: 16px;
  padding: 18px;
}
.neo-official-device,
.neo-official-capture,
.neo-official-fingerprints {
  overflow: hidden;
  border-radius: 22px;
}
.neo-official-device {
  justify-content: space-between;
  gap: 16px;
}
.neo-official-device img {
  max-height: 320px;
  margin: auto 0;
  object-fit: contain;
}
.neo-official-device span {
  display:block;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--ink-3);
  font-size: .9rem;
  font-weight: 700;
}
.neo-official-capture img,
.neo-official-fingerprints img {
  width: 100%;
  height: 100%;
  min-height: 250px;
  object-fit: cover !important;
}
.neo-official-capture span,
.neo-official-fingerprints span {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  padding: 12px 14px;
  border-radius: 16px;
  color: #fff;
  background: rgba(7,19,38,.88);
  font-size: .92rem;
  font-weight: 750;
  line-height: 1.4;
}

/* Fábrica na home: remove área vazia abaixo da imagem */
.factory-home-grid { gap: 48px; align-items: center; }
.factory-home-media {
  min-height: 0;
  height: auto;
  aspect-ratio: 4 / 5;
}
.factory-home-media > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.factory-media-note { left: 18px; right: 18px; bottom: 18px; }
.quality-strip { margin-top: 54px; }
.assurance-note { margin-top: 18px; }

/* Quality map vira HTML real, evitando SVG quebrado */
.quality-map-mini {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}
.quality-map-mini article {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.quality-map-mini .is-highlight {
  color: #fff;
  background: linear-gradient(180deg,#10284d,#071326 72%);
  border-color: rgba(255,255,255,.08);
  box-shadow: var(--shadow-md);
}
.quality-map-step {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: 16px;
  padding: 8px 10px;
  border-radius: 999px;
  color: var(--blue);
  background: var(--blue-soft);
  font-size: .74rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.quality-map-mini .is-highlight .quality-map-step {
  color: #fff;
  background: rgba(93,139,255,.26);
}
.quality-map-mini h3 { margin-bottom: 14px; font-size: 1.65rem; }
.quality-map-mini ul { margin: 0 0 18px; padding-left: 18px; display: grid; gap: 8px; }
.quality-map-mini li { line-height: 1.55; }
.quality-map-mini strong {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: .76rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.quality-map-mini .is-highlight strong { color: #fff; border-top-color: rgba(255,255,255,.18); }
.quality-map-mini p { margin: 8px 0 0; color: var(--muted); line-height: 1.6; }
.quality-map-mini .is-highlight p, .quality-map-mini .is-highlight li { color: rgba(255,255,255,.84); }

/* Bloco final da fábrica mais útil e com foto real */
.portfolio-dialogue-grid { grid-template-columns: .95fr 1.05fr; }
.dialogue-dark, .dialogue-light { min-height: 100%; }
.dialogue-light {
  grid-template-columns: 1fr 260px;
  gap: 22px;
  padding: 38px;
}
.dialogue-light img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  object-position: center;
  border-radius: 20px;
}
.dialogue-light .check-list { margin: 22px 0 26px; }

/* Clientes: padrão mais uniforme e CMB destacada sem quebrar a grade */
.client-logo-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.client-logo {
  position: relative;
  min-height: 138px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 18px;
  border-radius: 18px;
  text-align: center;
}
.client-logo img { max-width: 92%; max-height: 70px; object-fit: contain; }
.client-logo-emphasis {
  border-color: #b9c7e8;
  background: linear-gradient(180deg,#f7f9fd,#ffffff);
}
.client-logo-emphasis img { max-height: 84px; }
.client-logo-emphasis span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  color: #23406d;
  background: #eef3fb;
  font-size: .78rem;
  font-weight: 800;
}
.client-logo-featured, .client-logo-featured::after { all: unset; }
.client-logo-grid > .client-logo:has(span):not(.client-logo-emphasis) span { display: none; }

/* Setores e blocos com menos sensação de vazio */
.sector-grid { gap: 16px; }
.sector-card { border-radius: 20px; }
.sector-card img { aspect-ratio: 16 / 10; }

/* Ajustes de responsividade fina */
@media (max-width: 1280px) {
  .portfolio-entry-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .product-card-neo { grid-template-columns: 1fr; }
  .product-photo { min-height: 260px; }
}
@media (max-width: 1180px) {
  .conversation-board,
  .portfolio-premium-hero-grid,
  .portfolio-neo-premium-grid,
  .portfolio-factory-premium-grid,
  .factory-home-grid,
  .portfolio-showcase,
  .portfolio-dialogue-grid,
  .portfolio-final-conversation-grid { grid-template-columns: 1fr; }
  .quality-map-mini { grid-template-columns: 1fr; }
  .client-logo-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .dialogue-light { grid-template-columns: 1fr 240px; }
}
@media (max-width: 920px) {
  .client-logo-grid, .portfolio-entry-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dialogue-light { grid-template-columns: 1fr; }
  .dialogue-light img { min-height: 220px; max-height: 320px; }
  .neo-official-gallery { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .section { padding: 72px 0; }
  .split { gap: 14px; }
  .section-heading h2 { max-width: none; }
  .client-logo-grid, .portfolio-entry-grid { grid-template-columns: 1fr; }
  .client-logo { min-height: 120px; }
  .client-logo img { max-height: 62px; }
  .client-logo-emphasis img { max-height: 78px; }
  .portfolio-premium-copy h1 { max-width: none; }
  .portfolio-showcase-media { aspect-ratio: 16 / 11; }
  .neo-media-primary { aspect-ratio: auto; }
  .neo-media-primary img { height: auto; }
}

.client-logo span { display:none; }
.client-logo-emphasis span { display:inline-flex; }


/* =========================================================
   V9 — refinamento de espaçamento, legibilidade e organogramas
   ========================================================= */

:root {
  --reading-space: 1.72;
}
body { line-height: var(--reading-space); }
p, li, small, .product-question, .factory-promise-list p, .client-logo span, .quality-strip small {
  line-height: 1.72;
}

/* Leituras dos títulos e seções com menos espaço vazio */
.section-heading { margin-bottom: 30px; }
.products-section .section-heading,
.sectors-section .section-heading,
.clients-section .section-heading { margin-bottom: 28px; }
.products-section .split,
.sectors-section .split,
.clients-section .split {
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  align-items: start;
  gap: 28px;
}
.products-section .section-heading h2,
.sectors-section .section-heading h2,
.clients-section .section-heading h2,
.factory-home-copy h2 {
  max-width: 11.5ch;
  font-size: clamp(2.2rem, 3.5vw, 3.35rem);
}
.products-section .split > p,
.sectors-section .split > p,
.clients-section .split > p {
  margin-top: 12px;
  font-size: 1.02rem;
}

/* Fábrica home: remover espaço superior e usar imagem mais nítida */
.factory-home-grid { align-items: start !important; }
.factory-home-media {
  aspect-ratio: 4 / 4.65;
  min-height: 0;
  margin-top: 6px;
}
.factory-home-media > img {
  object-position: center 12%;
}
.factory-home-copy p { max-width: 62ch; }
.factory-promise-list { gap: 12px; }
.factory-promise-list article { padding: 12px 0; }

/* Home produtos e setores */
.product-grid { gap: 18px; }
.product-card, .sector-card { height: 100%; }
.sector-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.sector-card > div { padding: 22px 18px 18px; }
.sector-card h3 { margin: 10px 0 10px; }
.sector-card p { font-size: .95rem; line-height: 1.7; }

/* Neo hero e boards com mais respiro */
.neo-home-grid { align-items: start; gap: 48px; }
.neo-home-copy > p, .neo-home-copy .neo-lead { max-width: 58ch; }
.neo-home-copy .neo-benefit-grid { margin-top: 24px; }
.neo-benefit-grid { gap: 14px; }
.neo-benefit-grid div { padding: 18px; }
.neo-media-board { padding: 14px; }
.neo-device-display div, .neo-fingerprint-display div, .neo-capture-display div { padding: 14px 16px 16px; }
.neo-device-display strong, .neo-fingerprint-display strong, .neo-capture-display strong { line-height: 1.45; }
.neo-device-display img { max-height: 320px; }

/* Minute proof — substitui organograma quebrado por cards legíveis */
.minute-proof .illustration-shell,
.process-visual-wrap .illustration-shell {
  grid-template-columns: 1fr 1fr;
  align-items: start;
}
.neo-chain-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr) 34px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 10px;
}
.neo-chain-board article,
.neo-chain-note {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.neo-chain-board article { min-height: 210px; }
.neo-chain-icon {
  width: 48px; height: 48px; display: grid; place-items: center;
  margin-bottom: 14px; border-radius: 14px; color: var(--blue); background: var(--blue-soft);
}
.neo-chain-board h4 { margin: 0 0 10px; font-size: 1.42rem; }
.neo-chain-board p { margin: 0; color: var(--text); font-size: 1rem; line-height: 1.72; }
.neo-chain-arrow {
  align-self: center; justify-self: center; margin-top: 30px;
  color: var(--blue); font-size: 1.8rem; font-weight: 900;
}
.neo-chain-note {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  background: #f8fbff;
}
.neo-chain-note strong {
  color: var(--ink);
  font-size: 1.14rem;
}

/* Processo Neo em HTML nítido */
.neo-process-board {
  display: grid;
  gap: 22px;
  padding: 14px;
}
.process-visual-wrap .neo-process-board {
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(8,21,44,.82);
}
.neo-process-header h4 {
  margin: 0 0 8px;
  font-size: 1.8rem;
  color: #fff;
}
.neo-process-header p { margin: 0; color: rgba(255,255,255,.78); }
.neo-process-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}
.neo-process-steps article {
  position: relative;
  min-height: 180px;
  padding: 18px 16px;
  border: 1px solid rgba(125,160,255,.35);
  border-radius: 20px;
  background: rgba(19,43,83,.82);
}
.neo-process-steps article::after {
  content: '→';
  position: absolute;
  right: -12px; top: 50%; transform: translateY(-50%);
  color: #6aa8ff; font-weight: 900;
}
.neo-process-steps article:last-child::after { content: none; }
.neo-process-steps small {
  display: inline-block;
  margin-bottom: 10px;
  color: #8fb2ff;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 800;
}
.neo-process-steps strong {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-size: 1.3rem;
  line-height: 1.25;
}
.neo-process-steps p {
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: .97rem;
  line-height: 1.65;
}
.neo-process-summary {
  padding: 18px 20px;
  border-radius: 18px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}
.neo-process-summary strong { display:block; margin-bottom: 8px; color: #fff; }
.neo-process-summary p { margin: 0; color: rgba(255,255,255,.86); }

/* Blocos de texto e botões com mais respiro */
.check-list { gap: 14px; }
.check-list li { line-height: 1.6; }
.button-row { gap: 14px; flex-wrap: wrap; }
.assurance-note { padding: 20px 24px; line-height: 1.75; }
.client-logo { min-height: 132px; }

/* Ajuste fino das imagens em geral */
img { image-rendering: auto; }
.factory-home-media img,
.sector-card img,
.portfolio-showcase-media img,
.neo-capture-display img,
.neo-fingerprint-display img { object-position: center; }

/* Responsivo */
@media (max-width: 1240px) {
  .sector-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .neo-process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .neo-process-steps article:nth-child(3)::after { content: none; }
  .neo-process-steps article:nth-child(4)::after { content: '→'; }
}
@media (max-width: 980px) {
  .products-section .split,
  .sectors-section .split,
  .clients-section .split,
  .minute-proof .illustration-shell,
  .process-visual-wrap .illustration-shell {
    grid-template-columns: 1fr;
  }
  .factory-home-grid,
  .neo-home-grid { gap: 34px; }
  .sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .neo-chain-board {
    grid-template-columns: 1fr;
  }
  .neo-chain-arrow { display: none; }
  .neo-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .neo-process-steps article::after { content: none; }
}
@media (max-width: 720px) {
  .products-section .section-heading h2,
  .sectors-section .section-heading h2,
  .clients-section .section-heading h2,
  .factory-home-copy h2 { max-width: none; }
  .sector-grid,
  .neo-process-steps { grid-template-columns: 1fr; }
  .neo-chain-board article { min-height: auto; }
  .neo-home-copy > p,
  .factory-home-copy p { max-width: none; }
  .neo-process-board { padding: 0; }
}


/* =========================================================
   V10 — polimento premium de espaçamento, responsividade e leitura
   ========================================================= */

html, body {
  -webkit-text-size-adjust: 100%;
}
body {
  line-height: 1.72;
}
h1, h2, h3, h4, strong, .btn, .eyebrow, .section-heading p, p, li, small, dt, dd, span {
  hyphens: none;
  word-break: normal;
  overflow-wrap: break-word;
}
img, svg, picture { max-width: 100%; }
.container, .section-heading, .split, .sector-card, .client-logo, .neo-process-steps article,
.neo-chain-board article, .neo-chain-note, .quality-strip > div, .benefit-grid article,
.risk-cards article, .stakeholder-grid article, .implementation-steps li, .method-steps li,
.contract-grid article, .product-card, .factory-promise-list article, .neo-register-board article,
.feature-list article, .spec-panel > *, .client-logo-grid > * { min-width: 0; }

.section { padding-block: clamp(68px, 7vw, 98px); }
.sectors-section, .clients-section { padding-top: clamp(66px, 6vw, 88px); }
.section-heading { margin-bottom: 26px !important; }
.section-heading.split {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
  gap: 24px 38px;
  align-items: start;
}
.section-heading.split > div,
.section-heading.split > p { align-self: start; }
.section-heading h2 {
  font-size: clamp(2rem, 3.1vw, 3.05rem) !important;
  line-height: 1.06;
  letter-spacing: -0.03em;
  max-width: 14.8ch !important;
  text-wrap: balance;
}
.section-heading.center h2 {
  max-width: 11.8ch !important;
  margin-inline: auto;
}
.section-heading p, .split > p {
  font-size: clamp(1rem, 1.2vw, 1.06rem);
  line-height: 1.8;
  max-width: 60ch;
  margin-top: 8px;
}
.products-section .split > p,
.sectors-section .split > p,
.clients-section .split > p,
.method-section .split > p { padding-top: 8px; }

/* cards, images and content spacing */
.product-grid, .sector-grid, .client-logo-grid, .benefit-grid, .risk-cards, .stakeholder-grid, .method-steps, .contract-grid {
  gap: 18px;
}
.product-card, .sector-card, .client-logo, .risk-cards article, .stakeholder-grid article { height: 100%; }
.sector-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sector-card { display: flex; flex-direction: column; }
.sector-card img {
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: center center;
}
.sector-card h3 { font-size: 1.12rem; line-height: 1.18; }
.sector-card p { font-size: .98rem; line-height: 1.78; }
.client-logo-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
.client-logo {
  min-height: 128px;
  padding: 20px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.client-logo img { max-height: 74px; width: auto; object-fit: contain; }
.client-logo-cmb img { max-height: 84px; }
.client-logo-emphasis { padding-inline: 22px; }

/* factory home */
.factory-home-grid {
  grid-template-columns: minmax(320px, .92fr) minmax(0, 1.08fr);
  gap: 34px !important;
  align-items: start !important;
}
.factory-home-media {
  min-height: 620px !important;
  aspect-ratio: 4 / 4.2;
  border-radius: 28px;
}
.factory-home-media > img {
  height: 100% !important;
  min-height: 620px !important;
  object-fit: cover;
  object-position: center 14%;
}
.factory-media-note {
  left: 18px; right: 18px; bottom: 18px;
  padding: 22px;
}
.factory-home-copy h2 { max-width: 13ch !important; }
.factory-home-copy p { max-width: 63ch; }
.factory-promise-list article { gap: 16px; }
.factory-promise-list article p { margin-top: 4px; }
.quality-strip { margin-top: 24px; gap: 14px; }
.quality-strip > div { padding: 20px 16px; }
.assurance-note { margin-top: 18px; padding: 18px 22px; }

/* Neo premium hero */
.neo-hero-premium-grid { gap: 34px; align-items: start; }
.neo-hero-premium-copy h1 {
  font-size: clamp(2.35rem, 4.8vw, 4.6rem);
  line-height: 1.02;
  max-width: 10.5ch;
}
.neo-hero-premium-copy > p { max-width: 59ch; }
.neo-hero-official-board {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 14px;
  padding: 14px;
}
.neo-hero-device,
.neo-hero-capture,
.neo-hero-fingerprint {
  overflow: hidden;
}
.neo-hero-device { padding: 16px 16px 18px; }
.neo-hero-device img { height: 300px; object-position: center; }
.neo-hero-capture, .neo-hero-fingerprint { min-height: 188px; }
.neo-hero-capture img, .neo-hero-fingerprint img {
  min-height: 188px;
  object-fit: cover;
  object-position: center;
}
.neo-hero-capture > span, .neo-hero-fingerprint > span {
  left: 14px; right: 14px; bottom: 14px;
  padding: 12px 16px;
  font-size: .96rem;
  line-height: 1.45;
}

/* Minute proof and risk board */
.illustration-shell {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 26px;
  padding: 28px;
}
.neo-chain-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr) 32px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  padding: 2px;
}
.neo-chain-board article {
  min-height: auto;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.neo-chain-icon { width: 44px; height: 44px; margin-bottom: 6px; }
.neo-chain-board h4 { font-size: 1.25rem; line-height: 1.16; }
.neo-chain-board p { font-size: .98rem; line-height: 1.7; }
.neo-chain-note { padding: 18px; }
.neo-chain-note p { margin: 0; }
.minute-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 42px; }
.minute-flow { gap: 12px; align-items: stretch; }
.minute-flow article { min-height: auto; }
.risk-mini-board {
  margin-top: 24px;
  padding: 24px;
  border-radius: 24px;
  background: #f6f9ff;
  border: 1px solid var(--line);
}
.risk-mini-head h3 {
  margin: 0 0 6px;
  font-size: 1.45rem;
  line-height: 1.15;
}
.risk-mini-head p {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: .96rem;
}
.risk-mini-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.risk-mini-card {
  padding: 18px;
  border-radius: 18px;
  border: 1px solid #dce5f0;
  background: #fff;
}
.risk-mini-card span {
  display: inline-grid;
  place-items: center;
  width: 34px; height: 34px;
  border-radius: 999px;
  margin-bottom: 10px;
  font-weight: 900;
  background: var(--blue-soft);
  color: var(--blue);
}
.risk-mini-card strong { display: block; margin-bottom: 8px; font-size: 1.05rem; }
.risk-mini-card p { margin: 0; font-size: .92rem; line-height: 1.65; }
.risk-mini-card-dark { background: #0f2a58; color: #fff; border-color: rgba(255,255,255,.08); }
.risk-mini-card-dark span { background: rgba(255,255,255,.14); color: #fff; }
.risk-mini-card-dark strong, .risk-mini-card-dark p { color: #fff; }
.risk-mini-card-red { border-color: #f1d7dd; }
.risk-mini-card-red span { background: #fff1f3; color: #bf4d63; }
.risk-mini-footer {
  margin-top: 16px;
  padding: 13px 16px;
  border-radius: 14px;
  font-weight: 700;
  color: var(--blue);
  background: #eef4ff;
}

/* Neo process board improved readability */
.process-visual-wrap .illustration-shell { align-items: start; }
.neo-process-board { padding: 6px; }
.neo-process-header h4 { font-size: 1.55rem; line-height: 1.15; }
.neo-process-header p { line-height: 1.7; }
.neo-process-steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.neo-process-steps article {
  min-height: 0;
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.neo-process-steps article::after { content: none !important; }
.neo-process-steps strong {
  font-size: 1.22rem;
  line-height: 1.18;
}
.neo-process-steps p {
  font-size: .98rem;
  line-height: 1.68;
}
.neo-process-summary { padding: 18px; }
.neo-process-summary p { line-height: 1.7; }
.process-timeline li h3 { line-height: 1.2; }
.process-timeline li p { line-height: 1.68; }

/* zoom / lightbox */
.zoomable { cursor: zoom-in; }
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(4, 11, 24, .88);
  opacity: 0;
  visibility: hidden;
  transition: opacity .24s ease, visibility .24s ease;
}
.image-lightbox.is-open { opacity: 1; visibility: visible; }
.image-lightbox-dialog {
  position: relative;
  width: min(1120px, 96vw);
  max-height: 92vh;
  overflow: auto;
  padding: 20px;
  border-radius: 24px;
  background: #0d1d3b;
  box-shadow: 0 24px 80px rgba(0,0,0,.38);
}
.image-lightbox img {
  width: 100%;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 18px;
  background: #fff;
}
.image-lightbox-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  margin-bottom: 14px;
  color: #fff;
}
.image-lightbox-caption { color: rgba(255,255,255,.84); font-size: .96rem; line-height: 1.6; }
.image-lightbox-close {
  border: 0;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 800;
  color: #071326;
  background: #fff;
  cursor: pointer;
}
.lightbox-tip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  color: var(--muted);
  font-size: .92rem;
}

/* Better behaviour on medium screens */
@media (max-width: 1380px) {
  .section-heading h2 { font-size: clamp(1.95rem, 3vw, 2.8rem) !important; max-width: 15.5ch !important; }
  .neo-hero-premium-copy h1 { max-width: 11.5ch; }
  .sector-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .client-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .section { padding-block: 64px; }
  .section-heading.split,
  .factory-home-grid,
  .minute-grid,
  .illustration-shell,
  .neo-hero-premium-grid {
    grid-template-columns: 1fr !important;
  }
  .section-heading.center h2, .section-heading h2, .factory-home-copy h2 { max-width: none !important; }
  .factory-home-media { min-height: 480px !important; aspect-ratio: 16/10; }
  .factory-home-media > img { min-height: 480px !important; }
  .sector-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .neo-chain-board { grid-template-columns: 1fr; }
  .neo-chain-arrow { display: none; }
  .risk-mini-grid, .neo-process-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .section { padding-block: 54px; }
  .section-heading h2 { font-size: clamp(1.8rem, 8vw, 2.4rem) !important; line-height: 1.08; }
  .section-heading p, .split > p, p, li, dd, dt { font-size: 1rem; line-height: 1.74; }
  .quality-strip, .public-value-band, .benefit-grid, .risk-cards, .stakeholder-grid, .method-steps, .contract-grid, .sector-grid, .client-logo-grid, .neo-process-steps, .risk-mini-grid {
    grid-template-columns: 1fr !important;
  }
  .factory-home-media {
    min-height: 360px !important;
    aspect-ratio: 16/11;
  }
  .factory-home-media > img { min-height: 360px !important; }
  .factory-media-note {
    position: static;
    margin: 14px;
    border-radius: 18px;
  }
  .neo-hero-premium-copy h1 { font-size: clamp(2rem, 10vw, 3rem); max-width: none; }
  .neo-hero-official-board { grid-template-columns: 1fr; }
  .neo-hero-device img { height: 220px; }
  .neo-hero-capture, .neo-hero-fingerprint { min-height: 170px; }
  .neo-hero-capture img, .neo-hero-fingerprint img { min-height: 170px; }
  .neo-process-steps article, .neo-chain-board article, .neo-chain-note, .risk-mini-card { padding: 16px; }
  .image-lightbox { padding: 12px; }
  .image-lightbox-dialog { width: 100%; max-height: 96vh; padding: 12px; }
  .image-lightbox img { max-height: 72vh; }
}

/* V10.1 — chip discreto de ampliação */
.factory-home-media,
.sector-card,
.neo-hero-device,
.neo-hero-capture,
.neo-hero-fingerprint,
.device-stage,
.portfolio-showcase-media,
.media-frame { position: relative; }
.lightbox-tip {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  margin-top: 0;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--ink);
  box-shadow: var(--shadow-sm);
  font-size: .84rem;
  font-weight: 700;
}
.factory-home-media .lightbox-tip {
  top: 16px;
  right: 16px;
}
.neo-hero-device .lightbox-tip,
.neo-hero-capture .lightbox-tip,
.neo-hero-fingerprint .lightbox-tip { background: rgba(15,33,63,.9); color: #fff; }
@media (max-width: 760px) {
  .lightbox-tip { padding: 7px 10px; font-size: .8rem; }
}


/* =========================================================
   V11 — refinamento premium de texto, imagens e enquadramento
   ========================================================= */

:root {
  --measure-copy: 68ch;
}

/* evitar texto espremido e quebras no meio da palavra */
h1, h2, h3, h4, h5, h6, p, li, small, strong, span, a, dt, dd {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
p, li, dd, dt, small {
  max-width: var(--measure-copy);
}
.section-heading h2,
.hero-copy h1,
.page-hero-grid h1,
.neo-hero-premium-copy h1,
.factory-home-copy h2 {
  text-wrap: balance;
}
.section-heading h2 {
  max-width: 17ch !important;
  font-size: clamp(2.05rem, 3vw, 3.15rem) !important;
}
.section-heading.center h2,
.section-heading.center.narrow h2 {
  max-width: 18ch !important;
}
.section-heading.narrow p,
.section-heading.center p,
.section-heading.split p,
.section-heading > p {
  max-width: 66ch !important;
  margin-inline: auto;
}
.section-heading.split {
  grid-template-columns: minmax(0, 1fr) minmax(420px, .92fr) !important;
  gap: 24px 46px !important;
}
.products-section .section-heading h2,
.sectors-section .section-heading h2,
.clients-section .section-heading h2,
.company-sectors .section-heading h2,
.fabrica-overview .section-heading h2 {
  max-width: 15ch !important;
}
.products-section .section-heading p,
.sectors-section .section-heading p,
.clients-section .section-heading p {
  padding-top: 12px;
}

/* reduzir vazios excessivos */
.section { padding-block: clamp(56px, 5vw, 90px) !important; }
.section + .section { margin-top: 0 !important; }
.section-heading { margin-bottom: 24px !important; }
.section-heading.center.narrow { max-width: 980px; margin-inline: auto; }
.clients-section .section-heading.center,
.company-sectors .section-heading.center { margin-bottom: 34px !important; }

/* imagens mais bem enquadradas */
.factory-home-media {
  min-height: 560px !important;
  aspect-ratio: 16 / 13;
}
.factory-home-media > img {
  object-fit: cover !important;
  object-position: center center !important;
  min-height: 560px !important;
}
.hero-media img,
.page-hero-media img { object-position: center center !important; }
.sector-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 22px;
}
.sector-card img {
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.sector-card > div { padding: 24px 20px 22px !important; }
.sector-card h3 { font-size: 1.18rem !important; line-height: 1.22 !important; }
.sector-card p { font-size: 1rem !important; line-height: 1.75 !important; }
.client-logo-grid { gap: 20px !important; }
.client-logo { min-height: 140px !important; }
.client-logo img {
  max-height: 80px !important;
  width: auto !important;
  object-fit: contain !important;
}
.client-logo-cmb img { max-height: 96px !important; }

/* bloco home / fábrica */
.factory-home-grid { gap: 38px !important; align-items: center !important; }
.factory-home-copy p, .factory-home-copy li { max-width: 64ch; }
.factory-promise-list { gap: 14px !important; }
.factory-promise-list article { padding: 18px 18px 16px !important; }
.quality-strip { gap: 16px !important; }
.quality-strip > div { padding: 20px 18px !important; }

/* Neo: imagens e explicações */
.neo-hero-premium-grid { gap: 38px !important; align-items: center !important; }
.neo-hero-premium-copy > p { max-width: 62ch !important; }
.neo-hero-official-board {
  grid-template-columns: minmax(320px, .98fr) minmax(0, 1.02fr) !important;
  grid-template-rows: 1fr 1fr;
  gap: 16px !important;
}
.neo-hero-device,
.neo-official-device,
.device-stage {
  padding: 20px !important;
}
.neo-hero-device img,
.neo-official-device img,
.device-stage > img {
  width: 100%;
  height: auto !important;
  max-height: 320px !important;
  object-fit: contain !important;
}
.neo-hero-capture,
.neo-hero-fingerprint,
.neo-official-capture,
.neo-official-fingerprints {
  min-height: 230px !important;
}
.neo-hero-capture img,
.neo-hero-fingerprint img,
.neo-official-capture img,
.neo-official-fingerprints img {
  width: 100%;
  height: 100% !important;
  min-height: 230px !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.neo-hero-capture > span,
.neo-hero-fingerprint > span,
.neo-official-capture > span,
.neo-official-fingerprints > span {
  font-size: .94rem !important;
  line-height: 1.5 !important;
}
.neo-download-strip { padding-top: 24px !important; }
.neo-download-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 26px 28px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
  box-shadow: var(--shadow-sm);
}
.neo-download-card h2 { margin: 8px 0 10px; font-size: clamp(1.7rem, 2vw, 2.2rem); line-height: 1.12; }
.neo-download-card p { margin: 0; max-width: 70ch; }
.neo-download-actions { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.neo-download-actions span { color: var(--muted); font-size: .94rem; }

/* fluxos explicativos mais claros */
.minute-grid,
.illustration-shell { gap: 32px !important; }
.minute-copy p { max-width: 64ch; }
.minute-flow {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px !important;
  align-items: stretch;
}
.minute-flow article {
  padding: 18px 18px 16px !important;
  min-height: 0 !important;
}
.minute-flow article h4,
.minute-flow article strong {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  font-size: 1.04rem;
  line-height: 1.26;
}
.minute-flow article h4 .icon,
.minute-flow article strong .icon { flex: 0 0 auto; }
.minute-flow article p { margin: 0; line-height: 1.72 !important; }
.minute-flow-arrow { display: none !important; }
.minute-note,
.neo-chain-note,
.neo-process-summary { padding: 18px 20px !important; }
.neo-chain-board {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px !important;
}
.neo-chain-board article {
  padding: 20px !important;
  gap: 10px !important;
}
.neo-chain-board h4 { font-size: 1.14rem !important; line-height: 1.25 !important; }
.neo-chain-board p { font-size: .98rem !important; line-height: 1.72 !important; }
.neo-chain-arrow { display: none !important; }
.neo-register-board {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px !important;
}
.neo-register-board article {
  padding: 18px !important;
  min-height: 0 !important;
}
.neo-register-board strong { display:block; margin-bottom: 8px; font-size: 1.08rem; line-height:1.25; }
.neo-register-board p { margin:0; line-height: 1.7 !important; }

.neo-process-steps {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 18px !important;
}
.neo-process-steps article {
  padding: 18px !important;
  min-height: 0 !important;
}
.neo-process-steps strong,
.neo-process-steps h3 {
  font-size: 1.12rem !important;
  line-height: 1.24 !important;
}
.neo-process-steps p { line-height: 1.72 !important; }

/* portfolio neo cards */
.neo-official-gallery {
  grid-template-columns: minmax(320px, .98fr) minmax(0, 1.02fr) !important;
  gap: 16px !important;
}

/* melhorias gerais de tipografia */
.product-card p,
.benefit-grid article p,
.stakeholder-grid article p,
.risk-cards article p,
.implementation-steps li p,
.critical-grid article p,
.quality-gate-grid article p,
.company-cap-grid article p,
.spec-list li,
.faq-list p,
.contact-panel p {
  line-height: 1.75 !important;
}
.product-card h3,
.benefit-grid h3,
.stakeholder-grid h3,
.risk-cards h3,
.implementation-steps h3,
.critical-grid h3,
.quality-gate-grid h3,
.company-cap-grid h3 {
  line-height: 1.22 !important;
}

/* responsividade refinada */
@media (max-width: 1280px) {
  .section-heading.split { grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr) !important; }
  .clients-section .section-heading.center h2 { max-width: 15ch !important; }
  .sector-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .section-heading.split,
  .factory-home-grid,
  .minute-grid,
  .illustration-shell,
  .neo-hero-premium-grid,
  .neo-download-card,
  .neo-official-gallery,
  .neo-hero-official-board {
    grid-template-columns: 1fr !important;
  }
  .sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .neo-register-board,
  .neo-chain-board,
  .minute-flow,
  .client-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .factory-home-media,
  .factory-home-media > img { min-height: 460px !important; }
}
@media (max-width: 760px) {
  .section { padding-block: 48px !important; }
  .section-heading h2,
  .section-heading.center h2,
  .section-heading.center.narrow h2 {
    max-width: none !important;
    font-size: clamp(1.8rem, 8vw, 2.4rem) !important;
  }
  .section-heading p, p, li, dd, dt, small { max-width: none !important; }
  .sector-grid,
  .client-logo-grid,
  .minute-flow,
  .neo-register-board,
  .neo-chain-board,
  .neo-process-steps,
  .neo-download-card {
    grid-template-columns: 1fr !important;
  }
  .sector-card img { aspect-ratio: 16/10 !important; }
  .factory-home-media,
  .factory-home-media > img { min-height: 340px !important; }
  .neo-hero-capture,
  .neo-hero-fingerprint,
  .neo-official-capture,
  .neo-official-fingerprints { min-height: 180px !important; }
  .neo-hero-capture img,
  .neo-hero-fingerprint img,
  .neo-official-capture img,
  .neo-official-fingerprints img { min-height: 180px !important; }
  .lightbox-tip { top: 10px; right: 10px; }
}


/* =========================================================
   V12 — correções de layout, tipografia e aprofundamento do portfólio
   ========================================================= */

.lightbox-tip { display: none !important; }
img[data-lightbox="true"], .zoomable { cursor: zoom-in; }
.image-lightbox img { width: auto; max-width: 100%; object-fit: contain; image-rendering: auto; }

/* reduzir áreas vazias em seções específicas */
.sectors-section .section-heading.split,
.company-sectors .section-heading.split,
.portfolio-group-section .section-heading.split,
.risk-section .risk-grid,
.governance-section .section-heading.split,
.section-soft .section-heading.split:has(#ops-change-title),
.section-soft .section-heading.split:has(#neo-value-title) {
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}
.sectors-section .section-heading,
.company-sectors .section-heading,
.portfolio-group-section .section-heading,
.risk-section .section-heading,
.governance-section .section-heading { margin-bottom: 30px !important; }
.sectors-section .section-heading h2,
.company-sectors .section-heading h2,
.portfolio-group-section .section-heading h2,
.risk-section h2 {
  max-width: 13ch !important;
  font-size: clamp(2rem, 3.1vw, 3rem) !important;
}
.sectors-section .section-heading p,
.company-sectors .section-heading p,
.portfolio-group-section .section-heading p,
.risk-section p { max-width: 70ch !important; }

/* cards de setores menos espremidos */
.sector-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px !important; }
.sector-card { min-height: 100%; }
.sector-card img { aspect-ratio: 16/9 !important; object-fit: cover !important; object-position: center !important; }
.sector-card > div { padding: 22px 20px 20px !important; }
.sector-card h3 { font-size: 1.26rem !important; line-height: 1.18 !important; margin-bottom: 10px !important; }
.sector-card p { font-size: 1rem !important; line-height: 1.72 !important; margin-bottom: 0 !important; }

/* grade de clientes */
.client-logo-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }

/* fábrica e heróis com melhor encaixe */
.page-hero-grid { grid-template-columns: minmax(0,1fr) minmax(360px,.9fr) !important; gap: 38px !important; align-items: center !important; }
.page-hero-grid h1 { font-size: clamp(2.3rem, 4.6vw, 4.3rem) !important; max-width: 11ch !important; line-height: .98 !important; }
.page-hero-grid p { max-width: 62ch !important; }
.factory-home-grid { grid-template-columns: minmax(420px,.96fr) minmax(0,1.04fr) !important; gap: 34px !important; align-items: start !important; }
.factory-home-media { min-height: 520px !important; }
.factory-home-media > img { min-height: 520px !important; object-fit: cover !important; object-position: center center !important; }
.factory-media-note { max-width: calc(100% - 28px) !important; left: 14px !important; right: 14px !important; bottom: 14px !important; }
.factory-home-copy h2 { font-size: clamp(2.05rem, 3.2vw, 3.35rem) !important; max-width: 12ch !important; line-height: 1 !important; }
.factory-home-copy p { max-width: 65ch !important; }

/* neo biometrias: enquadramento */
.neo-official-gallery,
.neo-hero-official-board { grid-template-columns: minmax(320px, .94fr) minmax(0, 1.06fr) !important; gap: 18px !important; }
.neo-official-device,
.neo-hero-device,
.device-stage {
  padding: 18px !important;
  overflow: hidden;
}
.neo-official-device img,
.neo-hero-device img,
.device-stage > img {
  width: 100% !important;
  max-width: 100% !important;
  max-height: 280px !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.neo-official-device span,
.neo-official-capture span,
.neo-official-fingerprints span,
.neo-hero-device span,
.neo-hero-capture span,
.neo-hero-fingerprint span {
  display: block;
  line-height: 1.45 !important;
}
.neo-official-capture,
.neo-official-fingerprints,
.neo-hero-capture,
.neo-hero-fingerprint {
  min-height: 250px !important;
  overflow: hidden;
}
.neo-official-capture img,
.neo-official-fingerprints img,
.neo-hero-capture img,
.neo-hero-fingerprint img {
  width: 100% !important;
  height: 100% !important;
  min-height: 250px !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* minitopo / cadeias */
.minute-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
.minute-flow { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
.minute-flow article { padding: 18px 18px 16px !important; border-radius: 22px !important; }
.minute-flow article strong { margin-bottom: 8px !important; }
.minute-flow article span { line-height: 1.72 !important; }
.minute-risk { grid-column: 1 / -1; }
.neo-chain-board { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 18px !important; }
.neo-chain-board article { padding: 20px !important; }
.neo-chain-note { grid-column: 1 / -1 !important; }

/* risco */
.risk-grid { grid-template-columns: 1fr !important; gap: 26px !important; }
.risk-mini-board { padding: 22px !important; }
.risk-mini-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 18px !important; }
.risk-mini-card { padding: 18px !important; }
.risk-mini-card strong { font-size: 1.1rem !important; line-height: 1.24 !important; }
.risk-mini-card p { line-height: 1.7 !important; }
.risk-cards { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 18px !important; }

/* processo */
.neo-process-steps { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important; gap: 18px !important; }
.neo-process-steps article { min-height: 0 !important; padding: 18px !important; }
.neo-process-steps p { line-height: 1.72 !important; }
.neo-register-board { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 16px !important; }
.neo-register-board article { min-height: 0 !important; }
.neo-register-board p { line-height: 1.7 !important; }

/* portfolio mais profundo */
.portfolio-showcase { grid-template-columns: minmax(360px,.92fr) minmax(0,1.08fr) !important; gap: 34px !important; align-items: center !important; }
.portfolio-showcase-media { overflow: hidden; }
.portfolio-showcase-copy p { max-width: none !important; line-height: 1.74 !important; }
.portfolio-extra-copy { margin-top: 14px !important; color: var(--muted-strong); }
.portfolio-extra-copy-light { color: rgba(255,255,255,.84) !important; }
.portfolio-detail-list { display: grid; gap: 12px; margin: 18px 0 20px; padding: 0; list-style: none; }
.portfolio-detail-list li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; }
.portfolio-detail-list li .icon { color: var(--blue); margin-top: 4px; }
.portfolio-detail-list-light li { color: rgba(255,255,255,.96); }
.portfolio-detail-list-light li .icon { color: #fff; }
.portfolio-showcase-copy .portfolio-gain-box { margin-top: 18px !important; }

/* textos gerais menos comprimidos */
.portfolio-showcase-copy h3,
.risk-mini-head h3,
.minute-copy h2,
.neo-process-header h4,
.section-heading h2 { text-wrap: balance; }
p, li, span, dd, dt { letter-spacing: 0 !important; }

@media (max-width: 1360px) {
  .page-hero-grid,
  .factory-home-grid,
  .portfolio-showcase,
  .portfolio-showcase.portfolio-showcase-reverse { grid-template-columns: 1fr !important; }
  .page-hero-grid h1,
  .factory-home-copy h2 { max-width: none !important; }
  .factory-home-media { min-height: 420px !important; }
  .factory-home-media > img { min-height: 420px !important; }
}
@media (max-width: 1180px) {
  .sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .client-logo-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  .neo-official-gallery,
  .neo-hero-official-board,
  .neo-chain-board,
  .risk-cards,
  .minute-flow,
  .neo-register-board { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .neo-chain-note,
  .minute-risk { grid-column: 1 / -1 !important; }
}
@media (max-width: 760px) {
  .sector-grid,
  .client-logo-grid,
  .neo-official-gallery,
  .neo-hero-official-board,
  .minute-flow,
  .neo-chain-board,
  .risk-mini-grid,
  .risk-cards,
  .neo-register-board,
  .neo-process-steps { grid-template-columns: 1fr !important; }
  .risk-mini-board,
  .neo-process-board,
  .neo-download-card { padding: 18px !important; }
  .risk-mini-footer { font-size: 1rem !important; line-height: 1.6 !important; }
  .page-hero-grid h1 { font-size: clamp(2.1rem, 9vw, 3rem) !important; }
  .factory-home-media { min-height: 320px !important; }
  .factory-home-media > img { min-height: 320px !important; }
  .neo-official-capture,
  .neo-official-fingerprints,
  .neo-hero-capture,
  .neo-hero-fingerprint { min-height: 190px !important; }
  .neo-official-capture img,
  .neo-official-fingerprints img,
  .neo-hero-capture img,
  .neo-hero-fingerprint img { min-height: 190px !important; }
}


/* =========================================================
   V13 — acabamento final de layout, imagem e tipografia
   ========================================================= */

img { image-rendering: auto; }

/* headings com melhor aproveitamento do espaço */
.products-section .section-heading.split,
.portfolio-group-section .section-heading.split,
.company-quality .section-heading.split,
.infant-challenge .section-heading.split {
  grid-template-columns: minmax(0, .96fr) minmax(320px, 1.04fr) !important;
  gap: 18px 38px !important;
  align-items: end !important;
}
.products-section .section-heading h2,
.portfolio-group-section .section-heading h2,
.company-quality .section-heading h2,
.infant-challenge .section-heading h2 {
  max-width: 10.5ch !important;
  font-size: clamp(2rem, 3.35vw, 3.6rem) !important;
  line-height: .98 !important;
}
.products-section .section-heading p,
.portfolio-group-section .section-heading p,
.company-quality .section-heading p,
.infant-challenge .section-heading p {
  max-width: 50ch !important;
  margin-top: 0 !important;
  align-self: end !important;
}

/* empresa: texto mais proporcional e imagens mais limpas */
.company-sectors-grid {
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr) !important;
  gap: 30px !important;
  align-items: start !important;
}
.company-sectors-grid > div:first-child { padding-top: 6px; }
.company-sectors-grid h2 {
  font-size: clamp(2.2rem, 4.2vw, 4.5rem) !important;
  line-height: .96 !important;
  max-width: 7.2ch !important;
  margin-bottom: 18px !important;
  letter-spacing: -0.035em;
}
.company-sectors-grid p { max-width: 54ch; line-height: 1.78 !important; }
.company-image-stack {
  grid-template-columns: 1.12fr .88fr !important;
  grid-template-rows: repeat(2, minmax(215px, 1fr)) !important;
  gap: 16px !important;
}
.company-image-stack img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 22px !important;
}
.company-image-stack img:first-child {
  grid-row: 1 / 3 !important;
  min-height: 446px !important;
}

/* portfolio showcases: nunca cortar interfaces */
.portfolio-showcase {
  grid-template-columns: minmax(380px, .9fr) minmax(0, 1.1fr) !important;
  gap: 30px !important;
  align-items: center !important;
}
.portfolio-showcase-media {
  display: grid !important;
  place-items: center !important;
  min-height: 360px !important;
  padding: 22px !important;
  border-radius: 28px !important;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%) !important;
}
.portfolio-showcase-media img {
  width: 100% !important;
  height: auto !important;
  max-height: 500px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.portfolio-showcase-copy h3 { max-width: 11ch; line-height: .98 !important; }
.portfolio-showcase-copy > p,
.portfolio-showcase-copy li span { line-height: 1.82 !important; }

/* produtos na home e seções com melhor alinhamento */
.products-section .section-heading,
.portfolio-group-section .section-heading,
.company-quality .section-heading,
.infant-challenge .section-heading { margin-bottom: 34px !important; }
.products-section .section-heading.split > div,
.portfolio-group-section .section-heading.split > div { align-self: start !important; }

/* Neo biometria: imagens e explicações */
.neo-hero-official-board,
.neo-official-gallery {
  grid-template-columns: minmax(340px, .98fr) minmax(0, 1.02fr) !important;
  gap: 18px !important;
}
.neo-hero-device,
.device-stage,
.neo-official-device {
  padding: 20px !important;
  border-radius: 28px !important;
  background: #f2f5fa !important;
}
.neo-hero-device img,
.device-stage > img,
.neo-official-device img {
  width: 100% !important;
  height: auto !important;
  max-height: 440px !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.neo-hero-capture,
.neo-hero-fingerprint,
.neo-official-capture,
.neo-official-fingerprints {
  min-height: 276px !important;
  border-radius: 24px !important;
  background: #eaf0f7 !important;
}
.neo-hero-capture img,
.neo-hero-fingerprint img,
.neo-official-capture img,
.neo-official-fingerprints img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.neo-hero-device strong,
.neo-official-device strong { line-height: 1.38 !important; }

/* minut zero */
.minute-grid { gap: 30px !important; }
.minute-grid h2 {
  font-size: clamp(2rem, 4.2vw, 4.5rem) !important;
  max-width: 14.5ch !important;
  line-height: .98 !important;
  margin-bottom: 18px !important;
}
.minute-grid p { max-width: 68ch !important; line-height: 1.82 !important; }
.minute-alert {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 14px !important;
  align-items: start !important;
  padding: 18px 22px !important;
  border-radius: 18px !important;
}
.minute-alert strong {
  display: block !important;
  margin-bottom: 6px !important;
  font-size: 1.04rem !important;
  line-height: 1.45 !important;
}
.minute-alert span {
  display: block !important;
  font-size: .98rem !important;
  line-height: 1.68 !important;
  color: rgba(255,255,255,.92) !important;
}
.minute-flow {
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 16px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.minute-flow article {
  min-width: 0;
  padding: 20px 18px !important;
  border: 1px solid var(--line) !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: var(--shadow-sm);
}
.minute-flow article strong {
  display: block;
  margin-bottom: 10px !important;
  font-size: 1.24rem !important;
  line-height: 1.15 !important;
}
.minute-flow article span {
  display: block;
  line-height: 1.82 !important;
  font-size: 1.02rem !important;
}
.minute-risk { grid-column: 1 / -1 !important; }
.flow-arrow { display: none !important; }

/* processo e quadros explicativos */
.neo-process-board {
  padding: 12px !important;
}
.neo-process-header h4 {
  font-size: 1.72rem !important;
  line-height: 1.16 !important;
  max-width: 26ch !important;
}
.neo-process-header p { max-width: 72ch !important; line-height: 1.75 !important; }
.neo-process-steps {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.neo-process-steps article,
.neo-register-board article,
.minute-flow article,
.risk-mini-card,
.risk-card,
.challenge-grid article {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}
.neo-process-steps article {
  min-height: 100% !important;
  padding: 20px !important;
}
.neo-process-steps strong,
.neo-process-steps h3 {
  font-size: 1.28rem !important;
  line-height: 1.16 !important;
}
.neo-process-steps p {
  font-size: 1rem !important;
  line-height: 1.76 !important;
}
.neo-register-board {
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 18px !important;
}
.neo-register-board article {
  padding: 20px !important;
  border-radius: 18px !important;
}
.neo-register-board strong { font-size: 1.15rem !important; }

/* mini-board de risco */
.risk-section .section-heading h2 { max-width: 11ch !important; }
.risk-grid { gap: 22px !important; }
.risk-mini-head h3 { font-size: 2rem !important; line-height: 1.08 !important; max-width: 13ch !important; }
.risk-mini-head p { max-width: 62ch !important; line-height: 1.72 !important; }
.risk-mini-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.risk-mini-card { padding: 20px !important; border-radius: 22px !important; }
.risk-mini-card strong { display: block; margin-bottom: 10px !important; line-height: 1.2 !important; font-size: 1.22rem !important; }
.risk-mini-card p { line-height: 1.78 !important; font-size: 1rem !important; }
.risk-mini-footer { line-height: 1.65 !important; font-size: 1.04rem !important; }

/* home produtos / cards */
.sector-card img,
.product-card img,
.media-frame img,
.factory-home-media > img {
  object-position: center center !important;
}

@media (max-width: 1280px) {
  .company-sectors-grid,
  .portfolio-showcase,
  .neo-hero-official-board,
  .neo-official-gallery { grid-template-columns: 1fr !important; }
  .company-sectors-grid h2 { max-width: 9ch !important; }
  .company-image-stack { grid-template-columns: repeat(3, minmax(0,1fr)) !important; grid-template-rows: auto !important; }
  .company-image-stack img:first-child { grid-row: auto !important; min-height: 280px !important; }
  .neo-process-steps { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 980px) {
  .products-section .section-heading.split,
  .portfolio-group-section .section-heading.split,
  .company-quality .section-heading.split,
  .infant-challenge .section-heading.split,
  .company-sectors-grid,
  .portfolio-showcase { grid-template-columns: 1fr !important; }
  .products-section .section-heading p,
  .portfolio-group-section .section-heading p,
  .company-quality .section-heading p,
  .infant-challenge .section-heading p { max-width: 62ch !important; }
  .minute-flow,
  .risk-mini-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 760px) {
  .company-image-stack,
  .minute-flow,
  .neo-process-steps,
  .neo-register-board,
  .risk-mini-grid { grid-template-columns: 1fr !important; }
  .portfolio-showcase-media { min-height: 260px !important; padding: 16px !important; }
  .portfolio-showcase-media img { max-height: 340px !important; }
  .minute-alert { grid-template-columns: 1fr !important; }
  .minute-grid h2,
  .products-section .section-heading h2,
  .portfolio-group-section .section-heading h2,
  .company-sectors-grid h2,
  .company-quality .section-heading h2,
  .infant-challenge .section-heading h2 {
    max-width: none !important;
    font-size: clamp(1.95rem, 9vw, 3rem) !important;
  }
}
