/* BVS Tecnologia — site institucional | paleta inspirada nas cores públicas da Impinj.
 * Identidade, logotipo e operação independentes. CSS sem dependências externas.
 * Palette: dark blue #173F67, blue #146EAA, dark teal #006E78,
 * teal #009B9D, light blue #109BD4, light teal #34BDB4. */
:root {
  --dark-blue:#173f67; --blue:#146eaa; --dark-teal:#006e78;
  --teal:#009b9d; --light-blue:#109bd4; --light-teal:#34bdb4;
  --navy:#112e50; --ink:#203b56; --muted:#62768a;
  --paper:#f3f8fc; --white:#fff; --line:#dae5ee;
  --shadow:0 20px 60px rgba(23,63,103,.09); --max:1180px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:98px; }
body { margin:0; color:var(--ink); background:#fff; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
::selection { background:#b4e8e7; color:#173f67; }
.container { width:min(calc(100% - 48px),var(--max)); margin-inline:auto; }
.skip-link { position:absolute; top:-80px; left:10px; z-index:200; background:white; padding:12px 18px; border-radius:5px; }
.skip-link:focus { top:10px; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.16em; font-weight:800; font-size:.7rem; }
.eyebrow:before { content:""; width:25px; height:3px; border-radius:6px; background:currentColor; }
.section-kicker { color:var(--dark-teal); }
.section-title { max-width:820px; font-size:clamp(2rem,4.1vw,3.45rem); letter-spacing:-.048em; line-height:1.13; font-weight:780; margin:17px 0 20px; color:var(--dark-blue); }
.section-lead { max-width:710px; color:var(--muted); font-size:1.08rem; line-height:1.78; margin:0; }
.section-pad { padding:104px 0; }

/* Header */
.main-header { position:sticky; top:0; z-index:99; background:rgba(255,255,255,.97); border-bottom:1px solid #dce7ed; backdrop-filter:blur(14px); }
.main-header:before { content:""; display:block; height:4px; background:linear-gradient(90deg,var(--dark-blue) 0%,var(--blue) 43%,var(--teal) 83%,var(--light-teal) 100%); }
.header-inner { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:11px; min-width:max-content; color:var(--dark-blue); }
.brand-mark { width:40px; height:40px; }
.brand-word { display:flex; align-items:baseline; gap:8px; }
.brand-word strong { font-size:1.4rem; letter-spacing:-.055em; font-weight:830; }
.brand-word small { font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; color:var(--dark-teal); font-weight:800; }
.desktop-nav { display:flex; align-items:center; gap:28px; margin-left:auto; }
.desktop-nav a { font-size:.86rem; color:#37536d; font-weight:630; transition:color .2s; }
.desktop-nav a:hover,.desktop-nav a:focus-visible { color:var(--blue); }
.head-actions { display:flex; align-items:center; gap:17px; }
.lang { font-size:.8rem; font-weight:800; color:#466078; padding:8px 0; }
.lang[aria-current="page"] { color:var(--blue); }
.lang-divider { height:14px; width:1px; background:#cadce8; margin:0 -9px; }
.nav-button { display:inline-flex; align-items:center; justify-content:center; min-height:39px; padding:0 17px; border-radius:6px; color:#fff; background:var(--blue); font-weight:700; font-size:.8rem; transition:background .2s; }
.nav-button:hover { background:var(--dark-blue); }
.menu-button { display:none; appearance:none; border:1px solid var(--line); border-radius:8px; background:transparent; padding:8px; width:42px; height:40px; color:var(--dark-blue); }
.menu-button svg { display:block; width:24px; height:24px; }

/* Blue / teal hero */
.hero { overflow:hidden; position:relative; color:#fff; background:linear-gradient(116deg,#173f67 0%,#17588c 57%,#006e78 120%); }
.hero:before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(165,219,244,.095) 1px,transparent 1px),linear-gradient(90deg,rgba(165,219,244,.095) 1px,transparent 1px); background-size:58px 58px; mask-image:linear-gradient(90deg,transparent 25%,#000); }
.hero:after { content:""; position:absolute; width:760px; height:760px; border-radius:50%; right:-330px; top:-300px; border:1px solid rgba(108,209,231,.16); box-shadow:0 0 0 90px rgba(16,155,212,.028),0 0 0 200px rgba(52,189,180,.025); pointer-events:none; }
.hero-inner { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:50px; min-height:608px; padding-top:75px; padding-bottom:82px; position:relative; }
.hero-copy { z-index:1; }
.hero .eyebrow { color:#8fe2df; }
.hero h1 { font-size:clamp(2.65rem,5.1vw,4.9rem); line-height:1.09; letter-spacing:-.055em; font-weight:810; margin:23px 0 24px; max-width:760px; }
.hero h1 em { font-style:normal; color:#75e1d9; }
.hero-lead { font-size:1.13rem; color:#deebf4; line-height:1.77; max-width:600px; margin:0; }
.hero-cta { display:flex; align-items:center; gap:13px; flex-wrap:wrap; margin:34px 0 42px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; min-height:50px; padding:0 23px; border-radius:6px; font-size:.91rem; font-weight:720; transition:transform .2s,background .2s,border-color .2s; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--light-teal); color:#083d4e; }
.btn-primary:hover { background:#7fe0d6; }
.btn-outline { border-color:#89b8d1; color:#fff; }
.btn-outline:hover { background:rgba(255,255,255,.11); border-color:#caeff1; }
.btn-dark { background:var(--blue); color:#fff; }
.btn-dark:hover { background:var(--dark-blue); }
.hero-notes { display:flex; align-items:center; gap:10px 20px; flex-wrap:wrap; color:#d4e8ee; font-size:.78rem; font-weight:660; }
.hero-notes span { display:inline-flex; align-items:center; gap:8px; }
.hero-notes svg { width:17px; height:17px; color:#8be5d9; }

/* Original technical illustration, recolored for current visual system */
.hero-visual { position:relative; z-index:1; width:100%; filter:drop-shadow(0 30px 40px rgba(9,39,71,.19)); }
.system-card { width:100%; background:linear-gradient(160deg,#133b63,#0e3654); border:1px solid rgba(177,222,237,.39); box-shadow:0 22px 68px rgba(5,34,69,.27); border-radius:12px; overflow:hidden; }
.system-top { display:flex; align-items:center; justify-content:space-between; padding:17px 21px; border-bottom:1px solid rgba(184,225,244,.19); }
.system-caption { display:flex; align-items:center; gap:10px; color:#e6f8fc; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; font-weight:750; }
.system-dots { display:flex; gap:5px; }
.system-dots b { display:block; width:7px; height:7px; background:#638daa; border-radius:100%; }
.system-dots b:first-child { background:var(--light-teal); }
.system-canvas { padding:13px 17px 7px; }
.system-canvas svg { width:100%; height:auto; display:block; }
.system-list { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(156,212,237,.24); }
.system-list>div { background:#143d63; padding:17px 18px; }
.system-list small { display:block; color:#a5d1e6; font-size:.66rem; text-transform:uppercase; letter-spacing:.10em; margin-bottom:7px; }
.system-list strong { display:block; font-size:.85rem; color:#effaff; font-weight:700; }
.live-dot { display:inline-block; width:7px; height:7px; background:#34bdb4; border-radius:50%; margin-right:7px; box-shadow:0 0 0 4px rgba(52,189,180,.16); }

.tech-band { border-bottom:1px solid #e2ecf2; background:#eff7fc; }
.tech-band-inner { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:25px 0; }
.tech-band-title { color:#476c8e; letter-spacing:.14em; text-transform:uppercase; font-size:.69rem; font-weight:800; max-width:210px; }
.tech-tags { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:9px; }
.tech-tags span { background:#fff; border:1px solid #d8e8f1; border-radius:4px; padding:8px 12px; color:#315f83; font-size:.76rem; font-weight:700; }

/* Services */
.services { background:#fff; }
.services-intro { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px; }
.services-intro .section-lead { max-width:350px; }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.service-card { padding:29px 27px 34px; background:#fff; border:1px solid #dbe7ee; border-top:3px solid var(--blue); border-radius:7px; min-height:265px; transition:transform .2s,border-color .2s,box-shadow .2s; }
.service-card:nth-child(3n+2) { border-top-color:var(--teal); }
.service-card:nth-child(3n+3) { border-top-color:var(--light-blue); }
.service-card:hover { transform:translateY(-4px); border-color:#b2d8e2; box-shadow:0 15px 35px rgba(20,110,170,.095); }
.service-icon { display:inline-flex; width:48px; height:48px; border-radius:8px; background:#eaf5fa; align-items:center; justify-content:center; color:var(--blue); margin-bottom:17px; }
.service-card:nth-child(3n+2) .service-icon { color:var(--dark-teal); background:#e9f7f5; }
.service-card:nth-child(3n+3) .service-icon { color:var(--blue); background:#e8f6fc; }
.service-icon svg { width:23px; height:23px; }
.service-card h3 { font-size:1.13rem; line-height:1.3; letter-spacing:-.017em; margin:0 0 12px; color:var(--dark-blue); }
.service-card p { color:#62788c; font-size:.91rem; line-height:1.76; margin:0; }

/* Expertise */
.context { background:var(--paper); border-block:1px solid #e5eef4; }
.context-inner { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:center; }
.context-panel { padding:34px 38px; background:#fff; border:1px solid #d9e8f1; border-left:4px solid var(--teal); border-radius:7px; box-shadow:var(--shadow); }
.context-row { display:grid; grid-template-columns:46px 1fr; gap:10px; border-bottom:1px solid #e4edf3; padding:18px 0; }
.context-row:last-child { border-bottom:0; }
.context-index { font-size:.8rem; color:var(--blue); font-weight:800; padding-top:4px; }
.context-row strong { font-size:1.02rem; display:block; margin-bottom:6px; color:var(--dark-blue); }
.context-row p { font-size:.88rem; line-height:1.67; color:#62788b; margin:0; }
.industry-list { display:flex; flex-wrap:wrap; gap:10px; margin:30px 0 0; }
.industry-list span { padding:9px 14px; border:1px solid #c4dce9; background:#fff; border-radius:100px; color:#315a77; font-size:.82rem; font-weight:680; }

/* Process */
.process { background:#fff; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px; }
.process-step { border-top:2px solid #cfe2ee; padding-top:24px; position:relative; }
.process-step:before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; border-radius:50%; background:var(--teal); }
.process-step .number { font-size:1.1rem; color:var(--blue); font-weight:800; letter-spacing:-.02em; }
.process-step h3 { margin:14px 0 10px; font-size:1.08rem; color:var(--dark-blue); }
.process-step p { font-size:.9rem; color:var(--muted); line-height:1.72; margin:0; }

/* Company */
.about { background:linear-gradient(116deg,#173f67 0%,#0e567d 100%); color:#fff; overflow:hidden; position:relative; }
.about:after { content:""; position:absolute; right:-12%; top:-66%; width:650px; height:650px; border:1px solid rgba(127,219,224,.22); border-radius:50%; box-shadow:0 0 0 60px rgba(52,189,180,.045),0 0 0 160px rgba(16,155,212,.035); }
.about-inner { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:90px; position:relative; z-index:1; }
.about .section-kicker { color:#94e8e1; }
.about .section-title { margin-bottom:25px; color:#fff; }
.about p { font-size:1rem; color:#d7eaf2; line-height:1.86; margin:0 0 17px; }
.about-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.about-facts article { padding:23px; border:1px solid rgba(179,224,239,.32); background:rgba(255,255,255,.055); border-radius:7px; }
.about-facts strong { display:block; font-size:1.23rem; color:#7de3db; margin-bottom:7px; }
.about-facts span { color:#d8eaf2; font-size:.83rem; line-height:1.5; }

/* Contact and legal footer */
.contact { background:#edf7fa; }
.contact-frame { display:flex; align-items:center; justify-content:space-between; gap:30px; background:#fff; border:1px solid #d7e7f0; border-left:5px solid var(--teal); padding:48px 52px; border-radius:8px; box-shadow:0 14px 36px rgba(20,110,170,.06); }
.contact .section-title { font-size:clamp(2rem,3.1vw,2.7rem); margin:11px 0 10px; }
.contact .section-lead { max-width:680px; font-size:1rem; }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:13px; min-width:195px; }
.contact-actions small { color:#60798d; font-size:.77rem; }
.footer { padding:38px 0 28px; background:#123758; color:#c4d8e6; }
.footer-top { display:flex; justify-content:space-between; gap:25px; align-items:flex-start; padding-bottom:24px; }
.footer .brand { color:#fff; }
.footer .brand-word small { color:#92d7d9; }
.footer-detail { max-width:630px; text-align:right; font-size:.79rem; line-height:1.85; }
.footer-detail p { margin:0; }
.footer-bottom { border-top:1px solid rgba(196,222,239,.2); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:22px; font-size:.74rem; }
.footer-bottom a { text-decoration:underline; text-underline-offset:4px; }
.footer-bottom a:hover { color:#fff; }

@media(max-width:1080px) {
 .desktop-nav { gap:16px; } .desktop-nav a { font-size:.8rem; }
 .hero-inner { gap:22px; } .context-inner,.about-inner { gap:45px; }
}
@media(max-width:900px) {
 .desktop-nav { display:none; } .menu-button { display:block; } .nav-button { display:none; }
 .header-inner { min-height:72px; }
 .desktop-nav.is-open { position:absolute; display:flex; top:76px; left:0; right:0; background:white; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; padding:12px 24px 22px; gap:0; box-shadow:0 12px 22px rgba(23,63,103,.1); }
 .desktop-nav.is-open a { padding:12px 0; font-size:.97rem; }
 .hero-inner { grid-template-columns:1fr; min-height:unset; padding-top:86px; padding-bottom:80px; gap:55px; }
 .hero-copy { max-width:680px; } .hero h1 { max-width:650px; }
 .hero-visual { max-width:550px; margin-inline:auto; }
 .services-intro { display:block; } .services-intro .section-lead { max-width:710px; }
 .services-grid { grid-template-columns:repeat(2,1fr); }
 .context-inner,.about-inner { grid-template-columns:1fr; gap:38px; }
 .process-grid { grid-template-columns:repeat(2,1fr); gap:32px; }
}
@media(max-width:600px) {
 .container { width:min(calc(100% - 34px),var(--max)); }
 .section-pad { padding:74px 0; }
 .hero-inner { padding-top:66px; padding-bottom:68px; gap:40px; }
 .hero h1 { font-size:clamp(2.35rem,10vw,3.25rem); }
 .hero-lead { font-size:1rem; }
 .hero-cta { margin-bottom:28px; } .hero-notes { gap:8px 15px; }
 .hero-visual { width:100%; }
 .system-list>div { padding:13px 12px; } .system-list strong { font-size:.74rem; } .system-caption { font-size:.6rem; }
 .tech-band-inner { display:block; } .tech-band-title { margin-bottom:13px; } .tech-tags { justify-content:flex-start; }
 .services-grid { grid-template-columns:1fr; } .service-card { min-height:auto; padding:27px; }
 .section-title { font-size:2.25rem; } .context-panel { padding:20px; }
 .process-grid { grid-template-columns:1fr; gap:28px; }
 .about-facts { grid-template-columns:1fr 1fr; } .about-facts article { padding:17px; }
 .about-facts strong { font-size:1.05rem; }
 .contact-frame { display:block; padding:30px 25px; } .contact-actions { margin-top:24px; }
 .footer-top { display:block; } .footer-detail { text-align:left; margin-top:22px; }
 .footer-bottom { align-items:start; flex-direction:column; }
 .brand-word strong { font-size:1.23rem; } .brand-word small { font-size:.68rem; }
 .header-inner { gap:5px; } .head-actions { gap:12px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; } }
