:root{
  --bg: #faf8f4;
  --surface: #ffffff;
  --surface-2: #f1ebe1;
  --paper: #fffdf9;
  --ink: #211b14;
  --muted: #746a5d;
  --line: #e5ddd0;
  --amber: #c97a1f;
  --amber-bright: #f0a93e;
  --amber-dim: #d8b98a;
  --gold: #a97e1a;
  --dark: #211b14;
  --dark-2: #2c2419;
  --radius: 2px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1,h2,h3{
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin: 0;
}

.mono{ font-family: 'IBM Plex Mono', monospace; }
a{ color: inherit; }

.wrap{
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 1;
}

/* ---------- utility bar ---------- */
.utility-bar{
  background: var(--dark);
  color: #cfc3b2;
}
.utility-bar .wrap{
  display:flex; flex-wrap:wrap; align-items:center; justify-content: space-between;
  gap: 8px 24px;
  padding-top: 8px; padding-bottom: 8px;
  font-family:'Inter', sans-serif;
  font-size: 12.5px;
  letter-spacing: normal;
}
.utility-bar .u-contacts{ display:flex; flex-wrap:wrap; gap: 8px 22px; }
.utility-bar a{ color: #cfc3b2; text-decoration:none; }
.utility-bar a:hover{ color: var(--amber-bright); }

/* ---------- top nav ---------- */
.topbar{
  position: sticky; top:0; z-index: 20;
  background: rgba(255,253,249,0.94);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
}
.topbar-inner{
  display:flex; align-items:center; gap: 28px;
  padding: 14px 24px;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:'Oswald', sans-serif; font-weight:600;
  font-size: 19px; letter-spacing: 0.03em;
  flex-shrink: 0;
  text-decoration: none;
  color: var(--ink);
}
.brand img{ height: 34px; width: 34px; display:block; border-radius: 50%; }
.brand .dot{ color: var(--amber); }
.brand-logo-only img{ height: 72px; width: 72px; }

.catnav{
  display:flex; gap: 26px;
  list-style:none; margin:0; padding:0;
  overflow-x:auto;
  flex:1;
  scrollbar-width: none;
}
.catnav::-webkit-scrollbar{ display:none; }
.catnav a{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-decoration:none;
  white-space:nowrap;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.catnav a:hover, .catnav a.active{ color: var(--amber); border-color: var(--amber); }
.topbar-cta{
  font-family:'Inter', sans-serif;
  font-size: 13px;
  color: #fff;
  background: var(--amber);
  border: 1px solid var(--amber);
  padding: 9px 16px;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
  white-space: nowrap;
  flex-shrink: 0;
}
.topbar-cta:hover{ background: var(--gold); border-color: var(--gold); }

/* ---------- banner ---------- */
.banner{
  position: relative;
  background: linear-gradient(120deg, var(--dark) 0%, var(--dark-2) 55%, #3a2c17 100%);
  color: var(--paper);
  overflow: hidden;
}
.banner::before{
  content:"";
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(90deg, rgba(240,169,62,0.08) 0 3px, transparent 3px 9px);
  opacity: .5;
}
.banner-inner{
  position: relative; z-index:1;
  padding: 74px 24px 66px clamp(24px, 6vw, 90px);
  display:flex; flex-direction:column; gap: 18px;
  max-width: 760px;
}
.banner .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size: 12px; letter-spacing:.14em;
  color: var(--amber-bright);
}
.banner h1{
  font-size: clamp(32px, 5vw, 50px);
  line-height: 1.05;
  color: var(--paper);
}
.banner p{
  font-family:'Inter',sans-serif; text-transform:none; letter-spacing:normal;
  font-size: 16px; line-height:1.6; color: #d9cfc0;
  max-width: 480px;
}
.banner-actions{ display:flex; flex-wrap:wrap; gap: 14px; margin-top: 6px; }

/* ---------- banner carousel ---------- */
.banner-slide{ display:none; position: relative; }
.banner-slide.active{ display:block; }
.banner-slide.has-image{
  background-size: cover;
  background-position: right center;
  min-height: 460px;
}
.banner-dots{
  position: relative;
  z-index: 2;
  display:flex; justify-content:center; gap: 9px;
  padding-bottom: 22px;
}
.banner-dots:empty{ display:none; }
.banner-dot{
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.3);
  border: none; padding:0; cursor:pointer;
  transition: background .15s ease;
}
.banner-dot.active{ background: var(--amber-bright); }
.banner-dot:hover{ background: rgba(255,255,255,0.55); }
.banner-disclaimer{
  position: absolute; right: 20px; bottom: 14px; z-index: 2;
  font-family:'Inter', sans-serif;
  font-size: 10.5px; color: rgba(255,255,255,0.4);
}

.btn{
  font-family:'Inter', sans-serif;
  font-weight: 600;
  font-size: 14px;
  text-decoration:none;
  padding: 13px 22px;
  border: 1.5px solid var(--paper);
  color: var(--paper);
  display:inline-flex; align-items:center; gap:10px;
  transition: background .15s ease, color .15s ease;
}
.btn.primary{ background: var(--amber); border-color: var(--amber); color: #fff; }
.btn.primary:hover{ background: var(--gold); border-color: var(--gold); }
.btn.ghost:hover{ background: var(--paper); color: var(--ink); }

/* ---------- features bar (venda + instalação + treinamento + manutenção) ---------- */
.features-bar{
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.features-bar-inner{
  display:flex; flex-wrap:wrap;
}
.feature-item{
  flex: 1 1 220px;
  display:flex; align-items:center; gap: 14px;
  padding: 22px 20px;
  border-right: 1px solid var(--line);
}
.feature-item:last-child{ border-right:none; }
.feature-item .ico{
  flex-shrink:0;
  width: 34px; height: 34px;
  border: 1.5px solid var(--amber);
  border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  color: var(--amber);
  font-size: 15px;
}
.feature-item strong{
  display:block;
  font-family:'Inter', sans-serif;
  font-size: 13.5px;
  color: var(--ink);
}
.feature-item span{
  display:block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}
@media (max-width: 640px){
  .feature-item{ flex: 1 1 100%; border-right:none; border-bottom: 1px solid var(--line); }
  .feature-item:last-child{ border-bottom:none; }
}

/* ---------- intro line ---------- */
.intro{
  text-align:center;
  max-width: 640px;
  margin: 56px auto 8px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
}
.intro strong{ color: var(--ink); }

/* ---------- section head ---------- */
.services{ padding: 56px 0 20px; }
.services-head{
  display:flex; align-items:baseline; gap:16px;
  margin-bottom: 34px;
}
.services-head h2{ font-size: 26px; color: var(--ink); }
.services-head .rule{ flex:1; height:1px; background: var(--line); }
.services-head .count{ font-family:'IBM Plex Mono',monospace; font-size:12px; color: var(--amber); }

/* ---------- segment quick-nav (impressoras page) ---------- */
.segment-head{
  margin-top: 54px;
  scroll-margin-top: 90px;
}
.segment-head:first-of-type{ margin-top: 36px; }

/* ---------- category tiles (segment overview, impressoras page) ---------- */
.category-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  padding: 10px 0 20px;
}
.category-card{
  background: var(--surface);
  border: 1px solid var(--line);
  display:flex; flex-direction:column;
  text-align:center;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.category-card:hover{ border-color: var(--amber-dim); transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(33,27,20,0.25); }
.category-card .art{
  aspect-ratio: 4/3;
  display:flex; align-items:center; justify-content:center;
  background: var(--surface-2);
  border-bottom: 1px solid var(--line);
  padding: 22px;
}
.category-card .art svg{ width: 100%; height: 100%; max-width: 130px; }
.category-card .art img{ width: 100%; height: 100%; object-fit: contain; }
.category-card h3{
  font-size: 15.5px; color: var(--ink); text-transform:none; letter-spacing:0;
  padding: 18px 16px 4px;
}
.category-card p{
  font-size: 10.5px; color: var(--muted); line-height: 1.5;
  padding: 8px 16px 0;
  margin: 0;
  text-transform: none;
  font-family: 'Inter', sans-serif;
  letter-spacing: normal;
}
.category-card a.ver-modelos{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size: 12px; color: var(--amber);
  text-decoration:none;
  padding: 8px 16px 20px;
  border-bottom: 2px solid transparent;
}
.category-card a.ver-modelos:hover{ color: var(--gold); }

.tickets{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.ticket{
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 26px 24px 24px;
  background: var(--surface);
  position: relative;
  transition: background .2s ease;
}
.ticket:hover{ background: var(--surface-2); }
.ticket .sku{
  font-family:'Inter', sans-serif;
  font-size: 11.5px;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--amber);
  display:block;
  margin-bottom: 14px;
}
.ticket h3{
  font-size: 18px;
  color: var(--ink);
  margin-bottom: 12px;
  line-height: 1.2;
}
.ticket p{
  font-size: 13.5px;
  color: var(--muted);
  line-height: 1.55;
  margin: 0;
}
.ticket .mini-barcode{
  position:absolute; top: 24px; right: 22px;
  display:flex; gap:1.5px; height: 20px; opacity: .5;
}
.ticket .mini-barcode span{ width:2px; background: var(--amber-dim); }
.ticket .mini-barcode span:nth-child(2n){ height: 60%; align-self:flex-end; }

/* ---------- equipment teaser cards (home page) ---------- */
.equip-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px;
}
.equip-card{
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 22px;
  display:flex; flex-direction:column; gap: 12px;
  text-decoration: none;
  color: inherit;
  transition: background .2s ease, border-color .2s ease;
}
.equip-card:hover{ background: var(--surface-2); border-color: var(--amber-dim); }
.equip-card .cat{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11px; letter-spacing:.1em;
  color: var(--amber);
}
.equip-card h3{ font-size: 17px; color: var(--ink); }
.equip-card p{ font-size: 13.5px; color: var(--muted); line-height:1.55; margin:0; flex:1; }
.equip-card .quote-row{
  display:flex; align-items:center; justify-content: space-between;
  border-top: 1px dashed var(--line);
  padding-top: 12px;
  margin-top: 4px;
  font-family:'IBM Plex Mono', monospace;
  font-size: 12px; color: var(--amber);
}

/* ---------- breadcrumb (product pages) ---------- */
.breadcrumb{
  padding: 20px 0 0;
  font-family:'IBM Plex Mono', monospace;
  font-size: 12px;
  color: var(--muted);
}
.breadcrumb a{ color: var(--muted); text-decoration:none; }
.breadcrumb a:hover{ color: var(--amber); }
.breadcrumb .sep{ margin: 0 6px; color: var(--line); }
.breadcrumb .current{ color: var(--amber); }

/* ---------- page header (product pages) ---------- */
.page-head{ padding: 26px 0 40px; }
.page-head .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px; letter-spacing:.12em;
  color: var(--gold);
  display:block; margin-bottom: 10px;
}
.page-head h1{ font-size: clamp(30px,5vw,44px); color: var(--ink); }
.page-head p{
  margin-top: 14px; max-width: 560px;
  color: var(--muted); font-size: 15px; line-height:1.6;
  text-transform:none; font-family:'Inter',sans-serif; letter-spacing:normal;
}

/* ---------- product grid + model card ---------- */
.product-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 300px));
  gap: 20px;
  padding-bottom: 70px;
}
.model-card{
  background: var(--surface);
  border: 1px solid var(--line);
  display:flex; flex-direction:column;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.model-card:hover{ border-color: var(--amber-dim); transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(33,27,20,0.25); }
.model-card .art{
  aspect-ratio: 4/3;
  display:flex; align-items:center; justify-content:center;
  background: var(--surface-2);
  border-bottom: 1px solid var(--line);
  padding: 18px;
}
.model-card .art.art-dark{
  background: #0d1b2e;
  border-bottom-color: #0d1b2e;
}
.model-card .art svg{ width: 100%; height: 100%; max-width: 150px; }
.model-card .art img{ width: 100%; height: 100%; object-fit: contain; }
.model-card .body{ padding: 18px 20px 20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.model-card .brand-tag{
  font-family:'IBM Plex Mono', monospace;
  font-size: 10.5px; letter-spacing:.1em; color: var(--amber);
}
.model-card h3{ font-size: 16px; color: var(--ink); text-transform:none; letter-spacing:0; }
.model-card h3 a{ color: inherit; text-decoration:none; border-bottom: 1px dotted var(--amber-dim); }
.model-card h3 a:hover{ color: var(--amber); border-color: var(--amber); }
.model-card .tagline{
  font-size: 12.5px; color: var(--muted); font-style: italic;
  margin: -6px 0 0;
}
.model-card .specs{
  list-style:none; margin:0; padding: 10px 0 0;
  border-top: 1px dashed var(--line);
  display:flex; flex-direction:column; gap: 5px;
}
.model-card .specs li{
  display:flex; justify-content:space-between; gap: 10px;
  font-size: 12px; color: var(--muted);
}
.model-card .specs li .label{
  font-family:'IBM Plex Mono', monospace;
  font-size: 10.5px; color: var(--ink);
  white-space: nowrap;
}
.model-card .replaces{
  font-family:'IBM Plex Mono', monospace;
  font-size: 10.5px; color: var(--amber-dim);
  margin: 2px 0 0;
}
.model-card .feature-list{
  list-style:none; margin:0; padding: 10px 0 0;
  border-top: 1px dashed var(--line);
  display:flex; flex-direction:column; gap: 5px;
}
.model-card .feature-list li{
  font-size: 12px; color: var(--muted); line-height: 1.45;
  padding-left: 14px; position: relative;
}
.model-card .feature-list li::before{
  content: "•"; position: absolute; left: 0; color: var(--amber);
}
.model-card p{
  font-size: 13px; color: var(--muted); line-height:1.5; margin:0; flex:1;
  text-transform:none; font-family:'Inter',sans-serif; letter-spacing:normal;
}
.model-card .quote-row{
  display:flex; align-items:center; justify-content: space-between;
  border-top: 1px dashed var(--line);
  padding-top: 12px; margin-top: 2px;
}
.model-card .quote-row .price{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px; color: var(--muted);
}
.model-card .quote-row a{
  font-family:'IBM Plex Mono', monospace;
  font-size: 12px; color: var(--amber);
  text-decoration:none;
  border-bottom: 1px solid var(--amber-dim);
}
.model-card .quote-row a:hover{ color: var(--gold); border-color: var(--gold); }

.note-illustrative{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px; color: var(--muted);
  padding: 0 0 30px;
}

/* ---------- process steps (softwares page) ---------- */
.steps-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  margin-bottom: 30px;
}
.step-item{
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 24px 22px;
  background: var(--surface);
}
.step-item .num{
  font-family:'Oswald', sans-serif;
  font-size: 28px; font-weight:600;
  color: var(--amber-dim);
  display:block; margin-bottom: 10px;
}
.step-item h3{
  font-size: 15px; color: var(--ink); text-transform:none; letter-spacing:0;
  margin-bottom: 6px;
}
.step-item p{
  font-size: 13px; color: var(--muted); line-height:1.5; margin:0;
}

/* ---------- case / proof panel (softwares page) ---------- */
.case-panel{
  background: var(--dark);
  color: var(--paper);
  padding: 34px 36px;
  display:flex; flex-wrap:wrap; gap: 24px;
  align-items:center; justify-content:space-between;
  margin-bottom: 50px;
}
.case-panel .case-text{ max-width: 620px; }
.case-panel .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11px; letter-spacing:.12em; color: var(--amber-bright);
  display:block; margin-bottom: 10px;
}
.case-panel p{
  font-family:'Inter',sans-serif; font-size: 14.5px; color: #d9cfc0;
  line-height:1.6; margin:0;
}
.case-panel .btn{ flex-shrink:0; }

.view-all{ text-align:center; padding: 6px 0 10px; }
.view-all a{
  font-family:'IBM Plex Mono', monospace;
  font-size: 12.5px; color: var(--amber);
  text-decoration:none; border-bottom: 1px solid var(--amber-dim);
}
.view-all a:hover{ color: var(--gold); border-color: var(--gold); }

/* ---------- quem somos ---------- */
.quem-somos{ padding: 70px 0; background: var(--surface-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.quem-somos .grid{
  display:grid; grid-template-columns: 1fr 1.3fr; gap: 48px; align-items:center;
}
.quem-somos .eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px; letter-spacing:.12em; color: var(--gold);
  display:block; margin-bottom: 12px;
}
.quem-somos h2{ font-size: clamp(26px,4vw,36px); color: var(--ink); line-height:1.1; }
.quem-somos .badge-ring{
  width: 100%; max-width: 220px; aspect-ratio:1; margin: 0 auto;
  border: 2px solid var(--amber-dim);
  border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  padding: 16px;
}
.quem-somos .badge-ring img{ width:100%; height:100%; object-fit:contain; }
.quem-somos p{
  color: var(--muted); font-size: 15px; line-height:1.7; margin-top: 16px;
  text-transform:none; font-family:'Inter',sans-serif; letter-spacing:normal;
}
.quem-somos .brand-chips{ margin-top: 20px; }
@media (max-width: 760px){
  .quem-somos .grid{ grid-template-columns: 1fr; }
  .quem-somos .badge-ring{ max-width: 140px; }
}

/* ---------- CTA band ---------- */
.cta-band{
  background: var(--dark);
  color: var(--paper);
  padding: 54px 0;
  text-align:center;
}
.cta-band h2{ font-size: clamp(22px,3.5vw,30px); color: var(--paper); }
.cta-band p{
  font-family:'Inter',sans-serif; text-transform:none; letter-spacing:normal;
  color: #cfc3b2; margin-top:10px; font-size:14.5px;
}
.cta-band .btn{ margin-top: 22px; }

/* ---------- contact section (home) ---------- */
.contact{ padding: 80px 0 30px; }
.contact-card{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 44px 40px;
  display:flex; flex-wrap:wrap;
  align-items:center; justify-content:space-between;
  gap: 28px;
}
.contact-card h2{
  font-size: clamp(24px, 4vw, 34px);
  max-width: 420px;
  line-height: 1.05;
  color: var(--ink);
}
.contact-actions{ display:flex; flex-direction:column; gap: 12px; align-items:flex-start; }
.contact-actions .btn{ border-color: var(--ink); color: var(--ink); }
.contact-actions .btn.primary{ background: var(--amber); border-color: var(--amber); color:#fff; }
.contact-actions .btn.ghost:hover{ background: var(--ink); color: var(--paper); }

/* ---------- footer ---------- */
.site-footer{
  background: var(--dark);
  color: #cfc3b2;
  margin-top: 70px;
  padding: 48px 0 0;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 36px;
  padding-bottom: 36px;
}
.footer-grid h4{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px;
  letter-spacing: 0.1em;
  color: var(--amber-bright);
  margin: 0 0 14px;
}
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom: 12px; }
.footer-brand img{ height: 30px; width: 30px; border-radius:50%; }
.footer-brand span{ font-family:'Oswald', sans-serif; font-size:17px; letter-spacing:.03em; color: var(--paper); }
.footer-grid p{ color: #b5aa99; font-size: 13px; line-height:1.6; margin:0; max-width: 320px; }
.footer-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.footer-list a{ color: #e7ddcd; text-decoration:none; font-size: 13.5px; }
.footer-list a:hover{ color: var(--amber-bright); }
.brand-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.brand-chips span{
  font-family:'IBM Plex Mono', monospace;
  font-size: 11px;
  color: #cfc3b2;
  border: 1px solid #4a3f2f;
  padding: 5px 10px;
}
footer.bottom-bar{
  text-align:center;
  padding: 20px 24px 40px;
  border-top: 1px solid #4a3f2f;
  color: #8f8271;
  font-family:'IBM Plex Mono', monospace;
  font-size: 11.5px;
  letter-spacing: 0.06em;
}

@media (max-width: 720px){
  .footer-grid{ grid-template-columns: 1fr; gap: 28px; }
  .topbar-inner{ flex-wrap: wrap; row-gap: 10px; }
  .catnav{ order: 3; width: 100%; flex-basis: 100%; }
  .utility-bar{ display: none; }
}

@media (max-width: 560px){
  .contact-card{ flex-direction: column; align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce){
  * { animation: none !important; transition: none !important; }
}

:focus-visible{ outline: 2px solid var(--amber); outline-offset: 3px; }
