/* ============================================================
   FIRE OFFICE ENGENHARIA E PROJETOS — sistema de design
   Conceito: documento técnico de segurança contra incêndio.
   Cinza metálico claro (aço escovado) em toda a página, com
   acento em gradiente chama (laranja > vermelho) e um
   "azul-de-planta" para toda a linha técnica/esquemática.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@600;700;800&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ink:        #C7CBCE;   /* cinza metálico — cabeçalho, rodapé, faixas de destaque */
  --ink-2:      #BCC1C5;   /* cinza metálico, superfície secundária */
  --paper:      #EDEEF0;   /* cinza metálico claro — conteúdo principal */
  --paper-2:    #E1E4E6;   /* cinza metálico, um degrau mais escuro */
  --flame-1:    #FF8200;   /* laranja da chama */
  --flame-2:    #B91500;   /* vermelho da chama */
  --blue-line:  #1F6E76;   /* azul-de-planta (linhas/anotações técnicas) */
  --steel:      #5B636D;   /* texto secundário / traços */
  --text-hi:    #1B1D20;   /* texto sobre o cinza metálico (--ink / --ink-2) */
  --text-dark:  #17191C;   /* texto sobre papel */
  --ok:         #1F6E76;
  --whatsapp:   #25D366;   /* verde padrão WhatsApp — botões de contato */
  --radius: 2px;
  --maxw: 1180px;
  --gap: clamp(1.25rem, 3vw, 2.5rem);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

body{
  margin:0;
  background: var(--paper);
  color: var(--text-dark);
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:'Big Shoulders Display', sans-serif; text-transform: uppercase; letter-spacing:.01em; line-height:1.02; font-weight:800; }
p{ margin:0; }
button{ font-family: inherit; cursor:pointer; }

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

.wrap{
  max-width: var(--maxw);
  margin: 0 auto;
  padding-inline: clamp(1.25rem, 5vw, 2.5rem);
}

.mono{ font-family:'IBM Plex Mono', monospace; }
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--blue-line);
  display:flex; align-items:center; gap:.6em;
}
.eyebrow::before{
  content:"";
  width: 22px; height: 1px;
  background: var(--blue-line);
  display:inline-block;
}

/* ---------- registration corner marks (blueprint sheet feel) ---------- */
.plate{
  position: relative;
  border: 1px solid rgba(31,110,118,.35);
}
.plate::before,.plate::after,
.plate .cbl, .plate .cbr{
  content:"";
  position:absolute;
  width:14px; height:14px;
  border: 2px solid var(--blue-line);
  opacity:.55;
}
.plate::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
.plate::after{ top:-1px; right:-1px; border-left:none; border-bottom:none; }
.plate .cbl{ bottom:-1px; left:-1px; border-right:none; border-top:none; }
.plate .cbr{ bottom:-1px; right:-1px; border-left:none; border-top:none; }

/* ---------------------- header ---------------------- */
.site-header{
  position: sticky; top:0; z-index: 40;
  background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%);
  border-bottom: 1px solid rgba(23,25,28,.08);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height: 92px;
}
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand img{ height: 50px; width:auto; }
.brand-text{ font-family:'IBM Plex Mono', monospace; color: var(--text-hi); font-size:.68rem; letter-spacing:.14em; opacity:.65; display:none; }

nav.primary-nav{ display:flex; align-items:center; gap: clamp(1rem,2vw,2.1rem); }
nav.primary-nav a{
  color: var(--text-hi);
  font-family:'IBM Plex Mono', monospace;
  font-size:.92rem;
  letter-spacing:.05em;
  text-transform: uppercase;
  padding: .3rem 0;
  border-bottom: 1px solid transparent;
  transition: border-color .15s, opacity .15s;
  opacity:.82;
}
nav.primary-nav a:hover,
nav.primary-nav a[aria-current="page"]{ opacity:1; border-color: var(--flame-1); }

.nav-cta{
  background: linear-gradient(180deg, var(--flame-1), var(--flame-2));
  color:#fff !important;
  padding:.6rem 1.05rem !important;
  border-radius: var(--radius);
  border-bottom: none !important;
  font-weight:600;
  opacity:1 !important;
}
.nav-cta:hover{ filter: brightness(1.08); }

.menu-toggle{
  display:none;
  background:none; border:1px solid rgba(23,25,28,.3); color:var(--text-hi);
  width:42px; height:38px; border-radius: var(--radius);
  align-items:center; justify-content:center;
}
.menu-toggle svg{ width:20px; height:20px; }

@media (max-width: 880px){
  nav.primary-nav{
    position:fixed; inset: 92px 0 0 0;
    background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%);
    flex-direction:column; align-items:flex-start;
    padding: 1.5rem clamp(1.25rem,5vw,2.5rem);
    gap: 1.1rem;
    transform: translateY(-8px);
    opacity:0; pointer-events:none;
    transition: opacity .18s ease, transform .18s ease;
  }
  nav.primary-nav.open{ opacity:1; pointer-events:auto; transform:none; }
  nav.primary-nav a{ font-size:.95rem; width:100%; }
  .menu-toggle{ display:inline-flex; }
  .nav-cta{ margin-top:.5rem; }
}

/* ---------------------- hero (home) ---------------------- */
.hero{
  background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%);
  color: var(--text-hi);
  position: relative;
  overflow: hidden;
  padding-block: clamp(3.5rem, 9vw, 6.5rem) clamp(3rem,7vw,5rem);
}
.hero--illustrated{
  background: linear-gradient(120deg, #1B2226 0%, #222B30 55%, #1B2226 100%);
}
.hero-art{
  position:absolute; inset:0; width:100%; height:100%; z-index:0;
}
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(90deg, rgba(15,20,23,.94) 0%, rgba(15,20,23,.75) 40%, rgba(15,20,23,.35) 68%, rgba(15,20,23,.15) 100%);
}
.hero--illustrated .wrap{ position:relative; z-index:2; }
.hero--illustrated .eyebrow{ color: #7FD6D6; }
.hero--illustrated .eyebrow::before{ background: #7FD6D6; }
.hero--illustrated .lede{ color: rgba(244,246,245,.82); }
.hero--illustrated .hero-stats{ border-top-color: rgba(244,246,245,.18); }
.hero--illustrated .hero-stats .stat span{ color: rgba(244,246,245,.62); }
.hero--illustrated .btn-ghost{ border-color: rgba(244,246,245,.35); color:#fff; }
.hero--illustrated .btn-ghost:hover{ border-color:#fff; }
.hero-grid{
  display:grid; grid-template-columns: 1.15fr .85fr; gap: var(--gap);
  align-items:center;
}
@media (max-width: 940px){ .hero-grid{ grid-template-columns: 1fr; } }
.hero-grid--single{ grid-template-columns: 1fr; max-width: 70ch; }
@media (max-width: 720px){
  .hero-scrim{ background: linear-gradient(180deg, rgba(15,20,23,.9) 30%, rgba(15,20,23,.55) 100%); }
}

.hero h1{
  font-size: clamp(2.6rem, 5.6vw, 4.4rem);
  color:#fff;
}
.hero h1 .accent{
  background: linear-gradient(90deg, var(--flame-1), var(--flame-2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero .lede{
  font-size: 1.08rem; color: rgba(23,25,28,.78);
  max-width: 46ch; margin-top: 1.4rem;
}
.hero .cta-row{ display:flex; gap: .9rem; margin-top: 2.1rem; flex-wrap:wrap; }

.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding: .85rem 1.4rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:.82rem; letter-spacing:.05em; text-transform:uppercase;
  border-radius: var(--radius);
  border: 1px solid transparent;
  transition: transform .12s ease, filter .12s ease, background .12s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: linear-gradient(180deg, var(--flame-1), var(--flame-2)); color:#fff; }
.btn-primary:hover{ filter: brightness(1.07); }
.btn-ghost{ border-color: rgba(23,25,28,.35); color: var(--text-hi); }
.btn-ghost:hover{ border-color: var(--text-hi); }
.btn-dark{ border-color: rgba(23,25,28,.3); color: var(--text-dark); }
.btn-dark:hover{ border-color: var(--text-dark); }
.btn-whatsapp{ background: var(--whatsapp); color:#fff; }
.btn-whatsapp:hover{ filter: brightness(1.06); }
.btn-whatsapp svg{ width:18px; height:18px; }
.btn-google{
  background:#fff; color:#3c4043; border-color: rgba(0,0,0,.14);
  font-family:'IBM Plex Sans', sans-serif; text-transform:none; letter-spacing:0; font-weight:600; font-size:.92rem;
}
.btn-google:hover{ border-color: rgba(0,0,0,.28); }
.btn-google svg{ width:18px; height:18px; }

/* schematic signature illustration */
.schematic{
  position:relative;
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(31,110,118,.55);
}
.schematic svg{ width:100%; height:100%; display:block; }
.schematic-tag{
  position:absolute; bottom:10px; left:10px;
  font-family:'IBM Plex Mono', monospace; font-size:.62rem;
  color: rgba(23,25,28,.55); letter-spacing:.08em;
}

.hero-stats{
  display:flex; gap: clamp(1.5rem,4vw,3rem); margin-top: 3rem;
  flex-wrap:wrap;
  border-top: 1px solid rgba(23,25,28,.12);
  padding-top: 1.6rem;
}
.hero-stats .stat b{
  font-family:'Big Shoulders Display', sans-serif;
  font-size: 2.1rem; display:block; color:#fff;
}
.hero-stats .stat span{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem;
  color: rgba(23,25,28,.6); text-transform:uppercase; letter-spacing:.05em;
}

/* ---------------------- generic section ---------------------- */
section{ padding-block: clamp(3.2rem, 7vw, 5.5rem); }
.section-head{ max-width: 58ch; margin-bottom: clamp(2rem,4vw,3rem); }
.section-head h2{ font-size: clamp(1.9rem, 3.6vw, 2.7rem); margin-top:.6rem; }
.section-head .lede{ margin-top: 1rem; color: var(--steel); font-size: 1.02rem; max-width: 52ch; }

.section-alt{ background: var(--paper-2); }
.section-dark{ background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%); color: var(--text-hi); }
.section-dark .eyebrow{ color: var(--flame-1); }
.section-dark .eyebrow::before{ background: var(--flame-1); }
.section-dark .section-head .lede{ color: rgba(23,25,28,.68); }

/* services grid */
.grid-3{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(31,110,118,.35); border: 1px solid rgba(31,110,118,.35); }
@media (max-width: 860px){ .grid-3{ grid-template-columns: 1fr; } }
.card{
  background: var(--paper);
  padding: 2rem 1.8rem;
}
.card .num{ font-family:'IBM Plex Mono', monospace; font-size:.72rem; color: var(--blue-line); }
.card h3{ font-size: 1.3rem; margin-top: .8rem; text-transform:none; letter-spacing:0; font-weight:700; }
.card p{ margin-top:.7rem; color: var(--steel); font-size:.95rem; }
.card .tag{
  margin-top: 1rem; display:inline-block;
  font-family:'IBM Plex Mono', monospace; font-size:.68rem;
  color: var(--blue-line); border:1px solid rgba(31,110,118,.4);
  padding: .2rem .5rem; border-radius: var(--radius);
}

/* process steps (real sequence -> numbers justified) */
.process{ display:grid; grid-template-columns: repeat(5,1fr); gap: 1.4rem; counter-reset: step; }
@media (max-width: 980px){ .process{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .process{ grid-template-columns: 1fr; } }
.process li{
  counter-increment: step;
  position:relative;
  padding-top: 2.6rem;
  border-top: 2px solid var(--blue-line);
}
.process li::before{
  content: counter(step, decimal-leading-zero);
  position:absolute; top:-.3px; left:0; transform: translateY(-100%);
  font-family:'IBM Plex Mono', monospace; font-size:.85rem; color: var(--blue-line);
  background: inherit;
}
.process h4{ font-size: 1.05rem; text-transform:none; font-weight:700; letter-spacing:0; }
.process p{ margin-top:.5rem; font-size:.9rem; color: var(--steel); }

/* segments / clients */
.segments{ display:grid; grid-template-columns: repeat(3,1fr); gap: var(--gap); }
@media (max-width: 880px){ .segments{ grid-template-columns:1fr; } }
.segment{ border-left: 3px solid var(--flame-1); padding-left: 1.2rem; }
.segment h3{ font-size: 1.2rem; text-transform:none; font-weight:700; }
.segment p{ margin-top:.5rem; color: var(--steel); font-size:.93rem; }

/* quote / proof strip */
.proof-strip{
  display:flex; gap: 2.5rem; flex-wrap:wrap; align-items:center; justify-content:space-between;
  border-top: 1px solid rgba(31,110,118,.3); border-bottom: 1px solid rgba(31,110,118,.3);
  padding-block: 1.6rem;
}
.proof-strip .item{ font-family:'IBM Plex Mono', monospace; font-size:.78rem; color: var(--steel); display:flex; gap:.5rem; align-items:baseline; }
.proof-strip .item b{ font-family:'Big Shoulders Display', sans-serif; font-size:1.6rem; color: var(--text-dark); }

/* CTA band */
.cta-band{
  background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%); color: var(--text-hi);
  padding-block: clamp(2.6rem,6vw,4rem);
}
.cta-band .wrap{ display:flex; align-items:center; justify-content:space-between; gap: 2rem; flex-wrap:wrap; }
.cta-band h2{ font-size: clamp(1.7rem,3.4vw,2.3rem); max-width: 22ch; }

/* footer */
.site-footer{ background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%); color: rgba(23,25,28,.7); border-top: 1px solid rgba(23,25,28,.08); }
.site-footer .wrap{ padding-block: 3rem 2rem; display:grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2.2rem; }
@media (max-width: 780px){ .site-footer .wrap{ grid-template-columns: 1fr 1fr; } }
.site-footer h5{
  font-family:'IBM Plex Mono', monospace; text-transform:uppercase; font-size:.7rem;
  letter-spacing:.1em; color: rgba(23,25,28,.5); margin-bottom: 1rem; font-weight:500;
}
.site-footer a{ display:block; font-size:.88rem; padding-block:.3rem; color: rgba(23,25,28,.78); }
.site-footer a:hover{ color: var(--flame-1); }
.site-footer .brand img{ height:30px; }
.site-footer .foot-lede{ margin-top:1rem; font-size:.85rem; max-width: 34ch; color: rgba(23,25,28,.55); }
.foot-bottom{
  border-top: 1px solid rgba(23,25,28,.08);
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; color: rgba(23,25,28,.45);
  padding-block: 1.2rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
}

/* whatsapp floating button */
.wa-float{
  position: fixed; right: clamp(1rem,4vw,1.8rem); bottom: clamp(1rem,4vw,1.8rem);
  z-index: 50;
  display:flex; align-items:center; gap:.6rem;
  background: var(--whatsapp); color:#fff;
  padding: .8rem 1.1rem .8rem .8rem;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  font-family:'IBM Plex Mono', monospace; font-size:.78rem; letter-spacing:.02em;
  transition: transform .15s ease, box-shadow .15s ease;
}
.wa-float:hover{ transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.34); }
.wa-float svg{ width:22px; height:22px; flex:none; }
.wa-float .wa-label{ white-space:nowrap; }
@media (max-width: 560px){ .wa-float .wa-label{ display:none; } .wa-float{ padding:.85rem; } }

/* page header (interior pages) */
.page-head{ background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%); color: var(--text-hi); padding-block: clamp(2.6rem,6vw,4rem); }
.page-head h1{ font-size: clamp(2.1rem, 4.2vw, 3.1rem); margin-top:.6rem; }
.page-head .lede{ margin-top:.9rem; color: rgba(23,25,28,.72); max-width: 56ch; }
.breadcrumbs{ font-family:'IBM Plex Mono', monospace; font-size:.72rem; color: rgba(23,25,28,.5); margin-bottom:.6rem; }
.breadcrumbs a:hover{ color: var(--flame-1); }

/* team / about */
.duo{ display:grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items:start; }
@media (max-width: 880px){ .duo{ grid-template-columns:1fr; } }
.timeline{ border-left: 2px solid var(--blue-line); padding-left: 1.4rem; display:flex; flex-direction:column; gap: 1.5rem; }
.timeline .yr{ font-family:'IBM Plex Mono', monospace; font-size:.75rem; color: var(--blue-line); }
.timeline h4{ font-size:1rem; font-weight:700; text-transform:none; margin-top:.2rem; }
.timeline p{ font-size:.9rem; color: var(--steel); margin-top:.3rem; }

.value-list{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1.4rem 2rem; }
@media (max-width: 620px){ .value-list{ grid-template-columns:1fr; } }
.value-list li{ border-top: 1px solid rgba(31,110,118,.35); padding-top: 1rem; }
.value-list h4{ font-size: 1rem; font-weight:700; text-transform:none; }
.value-list p{ font-size:.88rem; color: var(--steel); margin-top:.4rem; }

/* projects/cases */
.case-list{ display:flex; flex-direction:column; }
.case{
  display:grid; grid-template-columns: .28fr 1fr 1fr; gap: 1.5rem;
  padding-block: 1.8rem; border-top: 1px solid rgba(31,110,118,.3);
  align-items:start;
}
.case:last-child{ border-bottom: 1px solid rgba(31,110,118,.3); }
@media (max-width: 820px){ .case{ grid-template-columns: 1fr; gap:.6rem; } }
.case .seg-tag{ font-family:'IBM Plex Mono', monospace; font-size:.7rem; color: var(--blue-line); text-transform:uppercase; letter-spacing:.06em; }
.case h3{ font-size: 1.15rem; font-weight:700; text-transform:none; letter-spacing:0; }
.case p{ color: var(--steel); font-size:.92rem; margin-top:.4rem; }
.case .scope{ font-size:.88rem; color: var(--text-dark); }
.case .scope b{ color: var(--blue-line); font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:.75rem; text-transform:uppercase; display:block; margin-bottom:.3rem; letter-spacing:.05em; }

/* faq */
.faq-item{ border-top: 1px solid rgba(31,110,118,.3); }
.faq-item:last-child{ border-bottom: 1px solid rgba(31,110,118,.3); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; color: inherit;
  padding: 1.3rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size: 1rem;
}
.faq-q .ico{ flex:none; width:20px; height:20px; position:relative; }
.faq-q .ico::before,.faq-q .ico::after{
  content:""; position:absolute; background: var(--blue-line); top:50%; left:50%; transform: translate(-50%,-50%);
}
.faq-q .ico::before{ width:14px; height:2px; }
.faq-q .ico::after{ width:2px; height:14px; transition: transform .18s ease; }
.faq-item[open] .ico::after{ transform: translate(-50%,-50%) rotate(90deg) scaleX(0); }
.faq-a{ padding-bottom: 1.3rem; color: var(--steel); font-size:.94rem; max-width: 68ch; }

/* contact page */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
@media (max-width: 900px){ .contact-grid{ grid-template-columns:1fr; } }
.field{ margin-bottom: 1.2rem; }
.field label{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.06em; color: var(--blue-line); margin-bottom:.4rem;
}
.field input, .field select, .field textarea{
  width:100%; border: 1px solid rgba(31,110,118,.4); background: var(--paper);
  padding: .75rem .85rem; font-family:'IBM Plex Sans', sans-serif; font-size:.95rem;
  color: var(--text-dark); border-radius: var(--radius);
}
.field textarea{ min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--blue-line); }
.contact-info dl{ display:flex; flex-direction:column; gap: 1.3rem; margin-top: 1.6rem; }
.contact-info dt{ font-family:'IBM Plex Mono', monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color: var(--blue-line); }
.contact-info dd{ margin:.35rem 0 0; font-size:1rem; }
.form-note{ font-size:.8rem; color: var(--steel); margin-top: .8rem; }
.form-status{ margin-top:1rem; font-size:.88rem; font-family:'IBM Plex Mono', monospace; }

.map-frame{ border: 1px solid rgba(31,110,118,.4); filter: grayscale(.15); }

/* ---------------------- director / responsável técnico ---------------------- */
.director{
  display:grid; grid-template-columns: .38fr 1fr; gap: var(--gap);
  align-items:center;
}
@media (max-width: 780px){ .director{ grid-template-columns: 1fr; } }
.director-photo{
  position:relative; overflow:hidden;
  border: 1px solid rgba(31,110,118,.5);
  aspect-ratio: 4/5;
}
.director-photo img{ width:100%; height:100%; object-fit:cover; }
.director-photo .rank-tag{
  position:absolute; left:0; right:0; bottom:0;
  background: rgba(22,23,27,.86);
  color: #F4F6F5;
  font-family:'IBM Plex Mono', monospace; font-size:.68rem; letter-spacing:.06em;
  padding: .6rem .8rem; text-transform:uppercase;
}
.director-body h3{ font-size: clamp(1.4rem,2.6vw,1.9rem); text-transform:none; letter-spacing:0; font-weight:800; }
.director-role{
  font-family:'IBM Plex Mono', monospace; font-size:.78rem; color: var(--blue-line);
  text-transform:uppercase; letter-spacing:.05em; margin-top:.3rem; display:block;
}
.director-body p{ margin-top:1rem; color: var(--steel); }
.director-cred{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.3rem; }
.director-cred span{
  font-family:'IBM Plex Mono', monospace; font-size:.7rem; color: var(--blue-line);
  border:1px solid rgba(31,110,118,.4); padding:.3rem .6rem; border-radius: var(--radius);
}

/* ---------------------- video embed ---------------------- */
.video-embed{
  position:relative; aspect-ratio: 16/9; overflow:hidden;
  border: 1px solid rgba(31,110,118,.4);
}
.video-embed iframe{ width:100%; height:100%; border:0; }
.video-note{ font-family:'IBM Plex Mono', monospace; font-size:.7rem; color: var(--steel); margin-top:.7rem; }

/* ---------------------- documentos (AVCB / CLCB) ---------------------- */
.doc-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: var(--gap); }
@media (max-width: 780px){ .doc-grid{ grid-template-columns:1fr; } }
.doc-card{ background: var(--paper); }
.doc-card img{ border:1px solid rgba(31,110,118,.35); width:100%; }
.doc-card .doc-caption{ margin-top:.7rem; font-size:.85rem; color: var(--steel); }
.doc-card .doc-caption b{ color: var(--text-dark); }

/* ---------------------- google reviews strip ---------------------- */
.review-cta{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.6rem; }

/* ---------------------- footer service area note ---------------------- */
.foot-area{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; color: rgba(23,25,28,.45);
  text-align:center; padding-block: .9rem; border-top: 1px solid rgba(23,25,28,.06);
}

/* ---------------------- dropdown nav (Serviços) ---------------------- */
.has-dropdown{ position:relative; display:flex; align-items:center; }
.dropdown-trigger{ display:flex !important; align-items:center; gap:.3rem; }
.dropdown-trigger .caret{ width:9px; height:9px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity:.8; }
.dropdown-menu{
  display:none;
  position:absolute; top:100%; left:0; margin-top:.9rem;
  background: linear-gradient(120deg, var(--ink) 0%, var(--ink-2) 42%, var(--ink) 58%, var(--ink-2) 100%); border:1px solid rgba(23,25,28,.12);
  min-width:220px; padding:.4rem; z-index:60;
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown.open .dropdown-menu{ display:block; }
.dropdown-menu a{
  display:block; padding:.6rem .7rem; font-size:.88rem;
  color: var(--text-hi); opacity:.85; border-bottom:none !important;
}
.dropdown-menu a:hover{ opacity:1; background: rgba(23,25,28,.06); }
@media (max-width: 880px){
  .has-dropdown{ flex-direction:column; align-items:flex-start; width:100%; }
  .dropdown-menu{ position:static; margin-top:.5rem; margin-left:.5rem; border:none; background:none; padding:0; display:none; }
  .has-dropdown.open .dropdown-menu{ display:block; }
}

/* ---------------------- barra utilitária (topo) ---------------------- */
.topbar{
  background: var(--ink-2); color: rgba(23,25,28,.75);
  font-family:'IBM Plex Mono', monospace; font-size:.72rem;
}
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; padding-block:.45rem; gap:1rem; flex-wrap:wrap; }
.topbar a{ color: inherit; }
.topbar-contacts{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.social-row{ display:flex; align-items:center; gap:.6rem; }
.social-row a{
  display:flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%;
  color: rgba(23,25,28,.75); border:1px solid rgba(23,25,28,.25);
}
.social-row a:hover{ color:#fff; border-color:#fff; }
.social-row svg{ width:13px; height:13px; }
.social-row.social-row--footer a{ border-color: rgba(23,25,28,.18); }

/* ---------------------- dupla de CTAs (orçamento + whatsapp) ---------------------- */
.cta-pair{ display:flex; gap:.9rem; flex-wrap:wrap; }

/* ---------------------- clientes (logos) ---------------------- */
.clients-strip{
  display:flex; flex-wrap:wrap; gap: var(--gap); align-items:center; justify-content:center;
  padding-block: 1rem;
}
.clients-strip img{ max-height:52px; width:auto; filter: grayscale(1) opacity(.7); }
.clients-note{ font-family:'IBM Plex Mono', monospace; font-size:.72rem; color: var(--steel); text-align:center; margin-top:1rem; }

/* ---------------------- compartilhar (blog) ---------------------- */
.share-row{ display:flex; align-items:center; gap:.6rem; margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid rgba(31,110,118,.25); }
.share-row span{ font-family:'IBM Plex Mono', monospace; font-size:.7rem; color: var(--steel); text-transform:uppercase; letter-spacing:.05em; margin-right:.3rem; }
.share-row a{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%; border:1px solid rgba(31,110,118,.35); color: var(--blue-line);
}
.share-row a:hover{ background: var(--blue-line); color:#fff; }
.share-row svg{ width:15px; height:15px; }

/* ---------------------- upload de arquivo (formulário) ---------------------- */
.field-file{ border:1px dashed rgba(31,110,118,.5); padding: .9rem; background: rgba(31,110,118,.04); }
.field-file input[type="file"]{ width:100%; font-family:'IBM Plex Sans', sans-serif; font-size:.85rem; }
.field-file .field-file-note{ font-size:.78rem; color: var(--steel); margin-top:.5rem; }

/* ---------------------- soluções / missão-visão-valores ---------------------- */
.mvv-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: var(--gap); }
@media (max-width: 780px){ .mvv-grid{ grid-template-columns:1fr; } }

/* ---------------------- carrossel de clientes ---------------------- */
.client-carousel{
  overflow:hidden; position:relative; width:100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.client-track{
  display:flex; align-items:center; gap:1.6rem; width:max-content;
  animation: client-scroll 46s linear infinite;
}
.client-carousel:hover .client-track{ animation-play-state: paused; }
.client-card{
  flex:0 0 auto; width:168px; height:84px;
  background:#fff; border:1px solid rgba(23,25,28,.08);
  display:flex; align-items:center; justify-content:center; padding:.9rem 1.2rem;
}
.client-card img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
@keyframes client-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .client-track{ animation:none; }
}

/* ---------------------- cartão de serviço (com imagem) ---------------------- */
.service-card{
  display:grid; grid-template-columns: 260px .55fr 1fr; gap:1.8rem; align-items:start;
}
.service-card .service-img{
  aspect-ratio: 4/3; overflow:hidden; border: 1px solid rgba(31,110,118,.35);
}
.service-card .service-img img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width: 900px){
  .service-card{ grid-template-columns: 1fr; }
  .service-card .service-img{ order:-1; aspect-ratio: 16/9; }
}

/* ---------------------- imagem dentro de post do blog ---------------------- */
.post-img{ margin: 1.2rem 0; border: 1px solid rgba(31,110,118,.3); overflow:hidden; }
.post-img img{ width:100%; height:auto; display:block; }
