:root { --font-sans:"Manrope",Arial,sans-serif; --font-display:"Cormorant Garamond",Georgia,serif; --navy:#071d2e; --navy-2:#0b2b42; --ink:#13222d; --gold:#b89458; --cream:#f4f0e8; --paper:#faf9f6; --line:#d9d7d0; --muted:#64727b; --accent:#b89458; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-sans),Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.container { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.section { padding:112px 0; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--font-display),Georgia,serif; font-weight:600; line-height:.98; letter-spacing:-.025em; }
h2 { font-size:clamp(42px,5vw,70px); }
h1 em,h2 em { color:var(--gold); font-weight:500; }
.section-kicker,.eyebrow { font-size:11px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; }
.section-kicker { color:var(--gold); margin-bottom:25px; }
.section-kicker.light { color:#d6b77f; }
.eyebrow { display:flex; align-items:center; gap:12px; color:#e3c38b; margin-bottom:25px; }
.eyebrow span { width:34px; height:1px; background:currentColor; }

.site-header { position:relative; z-index:20; border-bottom:1px solid rgba(255,255,255,.18); color:white; }
.nav-wrap { height:102px; display:flex; align-items:center; gap:46px; }
.brand { margin-right:auto; width:260px; color:#fff; }
.brand img { width:100%; filter:none; }
.desktop-nav { display:flex; align-items:center; gap:34px; font-size:13px; font-weight:700; }
.desktop-nav a { position:relative; padding:15px 0; }
.desktop-nav a:after { content:""; position:absolute; left:0; bottom:7px; width:0; height:1px; background:#d7b777; transition:.25s; }
.desktop-nav a:hover:after { width:100%; }
.header-contact { display:flex; align-items:center; gap:18px; padding:14px 20px; border:1px solid rgba(255,255,255,.4); font-size:12px; font-weight:800; }
.mobile-menu { display:none; }

.hero { min-height:920px; color:white; position:relative; overflow:hidden; background:#071d2e; }
.hero-home { background-image:linear-gradient(90deg,rgba(3,15,25,.38),rgba(3,15,25,.04)),url('/images/hero-home.png'); background-size:cover; background-position:center; }
.hero:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 58%,rgba(3,15,25,.65)); }
.hero-grid { min-height:700px; display:grid; grid-template-columns:minmax(0,760px) 1fr; gap:70px; align-items:center; position:relative; z-index:2; }
.hero-copy { padding-top:35px; }
.hero h1 { font-size:clamp(58px,6.2vw,92px); max-width:850px; margin-bottom:30px; }
.hero-lead { max-width:700px; color:#d8e0e4; font-size:18px; line-height:1.75; margin-bottom:38px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:15px; }
.button { min-height:58px; display:inline-flex; align-items:center; justify-content:center; gap:25px; padding:0 28px; font-size:12px; font-weight:800; letter-spacing:.04em; transition:transform .25s,background .25s,color .25s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--gold); color:#071d2e; }
.button-primary:hover { background:#d0ae73; }
.button-ghost { color:white; border:1px solid rgba(255,255,255,.42); }
.button-light { background:white; color:var(--navy); }
.button-dark { background:var(--navy); color:white; }
.credentials { display:flex; gap:34px; margin-top:60px; padding-top:28px; border-top:1px solid rgba(255,255,255,.2); font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#aebbc3; }
.credentials span { display:grid; gap:5px; }
.credentials b { color:white; font-size:13px; letter-spacing:.02em; }
.hero-seal { align-self:end; margin-bottom:85px; padding:28px; border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(8px); background:rgba(4,20,32,.38); }
.seal-index { color:#d7b777; font:600 44px var(--font-display); }
.hero-seal p { font:600 25px/1.12 var(--font-display); margin:16px 0 24px; }
.hero-seal small { text-transform:uppercase; letter-spacing:.18em; color:#b8c3ca; }
.hero-scroll { position:absolute; z-index:3; right:36px; bottom:35px; display:flex; align-items:center; gap:12px; font-size:9px; text-transform:uppercase; letter-spacing:.2em; color:#aab5bc; transform:rotate(-90deg); transform-origin:right center; }
.hero-scroll span { width:36px; height:1px; background:#d7b777; }

.statement { background:var(--cream); }
.statement-grid { display:grid; grid-template-columns:280px 1fr; gap:50px; }
.statement h2 { max-width:850px; margin-bottom:28px; }
.statement-grid>div>p { max-width:720px; font-size:17px; line-height:1.8; color:var(--muted); }
.section-heading { display:grid; grid-template-columns:1fr 390px; gap:60px; align-items:end; margin-bottom:56px; }
.section-heading h2 { max-width:700px; margin-bottom:0; }
.section-heading>p { color:var(--muted); line-height:1.8; margin-bottom:8px; }
.services { background:#fff; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:350px; padding:32px; position:relative; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:.3s; overflow:hidden; }
.service-card:before { content:""; position:absolute; inset:auto 0 0; height:0; background:var(--navy); transition:.35s; z-index:0; }
.service-card>* { position:relative; z-index:1; }
.service-card:hover { color:white; transform:translateY(-4px); box-shadow:0 18px 50px rgba(7,29,46,.13); }
.service-card:hover:before { height:100%; }
.card-number { font-size:10px; letter-spacing:.15em; color:#9aa3a8; }
.service-icon { margin:35px 0 25px; color:var(--gold); font:500 43px var(--font-display); }
.service-card h3 { font:600 28px/1.1 var(--font-display); margin-bottom:18px; }
.service-card p { color:var(--muted); font-size:13px; line-height:1.7; }
.service-card:hover p { color:#c6d0d6; }
.card-link { margin-top:auto; display:flex; justify-content:space-between; color:var(--gold); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }

.process { background:var(--navy); color:white; position:relative; overflow:hidden; }
.process:after { content:"FM"; position:absolute; right:-35px; bottom:-120px; color:rgba(255,255,255,.025); font:700 360px var(--font-display); }
.process-grid { display:grid; grid-template-columns:1fr 1fr; gap:105px; position:relative; z-index:1; }
.process-intro h2 { max-width:520px; }
.process-intro>p:last-child { max-width:490px; color:#a9b8c1; line-height:1.8; }
.process-list { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.17); }
.process-list li { display:grid; grid-template-columns:60px 1fr; gap:20px; padding:25px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.process-list span { color:#d6b77f; font-size:11px; letter-spacing:.15em; }
.process-list h3 { font:600 24px var(--font-display); margin-bottom:7px; }
.process-list p { color:#9eafb8; font-size:13px; line-height:1.6; margin:0; }
.audiences { background:#f7f6f2; }
.audience-row { display:flex; flex-wrap:wrap; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.audience-row span { flex:1; min-width:180px; padding:28px 20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; font:600 20px var(--font-display); }
.cta-band { padding:80px 0; background:linear-gradient(120deg,#173b51,#0a2335); color:white; }
.cta-inner { display:flex; justify-content:space-between; gap:45px; align-items:center; }
.cta-inner h2 { max-width:800px; font-size:clamp(40px,4vw,63px); margin:0; }

.site-footer { background:#04131e; color:#d6dde1; padding:78px 0 28px; }
.footer-grid { display:grid; grid-template-columns:1.4fr .7fr 1.1fr .9fr; gap:65px; }
.footer-brand img { width:270px; color:white; margin-bottom:25px; }
.footer-brand p { max-width:300px; color:#7f929f; font-size:12px; line-height:1.8; }
.site-footer h3 { color:#d7b777; font-size:10px; text-transform:uppercase; letter-spacing:.18em; margin-bottom:23px; }
.site-footer a,.site-footer>div p { display:block; font-size:12px; color:#93a4ae; margin-bottom:13px; }
.site-footer a:hover { color:white; }
.footer-bottom { margin-top:62px; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; color:#566b78; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }

.service-hero { min-height:760px; color:white; position:relative; background-image:linear-gradient(90deg,rgba(4,19,30,.82) 0%,rgba(4,19,30,.4) 52%,rgba(4,19,30,.04) 100%),var(--hero-image); background-size:cover; background-position:center; overflow:hidden; }
.service-hero-inner { padding-top:145px; position:relative; z-index:2; }
.service-hero h1 { max-width:850px; font-size:clamp(55px,6vw,86px); margin-bottom:27px; }
.service-hero-inner>p:not(.eyebrow) { max-width:670px; color:#d0dae0; line-height:1.8; font-size:17px; margin-bottom:35px; }
.hero-service-mark { position:absolute; right:6%; bottom:-75px; font:500 260px var(--font-display); color:rgba(255,255,255,.13); }
.service-overview { background:var(--cream); }
.overview-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:100px; align-items:end; }
.overview-grid h2 { font-size:clamp(45px,5vw,68px); margin:0; }
.overview-grid>p { color:var(--muted); line-height:1.9; font-size:16px; margin-bottom:8px; }
.deliverables { background:white; }
.deliverable-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:45px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.deliverable-grid article { min-height:185px; padding:26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.deliverable-grid span { color:var(--accent); font-size:10px; letter-spacing:.18em; }
.deliverable-grid h3 { font:600 25px/1.15 var(--font-display); margin:35px 0 0; max-width:270px; }
.benefits { color:white; background:var(--theme-dark,var(--navy)); }
.benefits-grid { display:grid; grid-template-columns:1fr 1fr; gap:95px; }
.benefits-grid>div:first-child>p:last-child { color:#aebcc4; line-height:1.8; max-width:490px; }
.benefit-list { border-top:1px solid rgba(255,255,255,.18); }
.benefit-list>div { display:grid; grid-template-columns:45px 180px 1fr; gap:20px; padding:26px 0; border-bottom:1px solid rgba(255,255,255,.18); align-items:start; }
.benefit-list span { color:#d7b777; font-size:10px; }
.benefit-list h3 { font:600 22px var(--font-display); }
.benefit-list p { color:#9eafb8; font-size:12px; line-height:1.7; }
.next-step { background:#f4f0e8; }
.next-step-inner { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.next-step h2 { margin-bottom:18px; }
.next-step p { color:var(--muted); max-width:720px; line-height:1.8; }
.theme-forensic { --accent:#c28f5d; --theme-dark:#102a36; }
.theme-legal { --accent:#698a8a; --theme-dark:#1a3a3d; }
.theme-projects { --accent:#c17c50; --theme-dark:#33271f; }
.theme-inspection { --accent:#4f837b; --theme-dark:#163631; }
.theme-fire { --accent:#a55a4a; --theme-dark:#3b1f21; }

.about-hero { min-height:800px; color:white; background:linear-gradient(90deg,rgba(4,19,30,.72),rgba(4,19,30,.16)),url('/images/hero-sobre.png') center/cover; }
.about-hero-grid { display:grid; grid-template-columns:1fr 310px; gap:100px; align-items:center; min-height:680px; }
.about-hero h1,.contact-hero h1 { font-size:clamp(58px,6vw,88px); }
.about-hero-grid>div:first-child>p:last-child { max-width:750px; color:#cad5da; font-size:17px; line-height:1.8; }
.profile-card { height:440px; margin:0; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.34); background:#071d2e; box-shadow:0 28px 75px rgba(1,12,20,.28); }
.profile-card:after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(180deg,transparent,rgba(3,15,25,.2) 20%,rgba(3,15,25,.96)); pointer-events:none; }
.profile-card img { width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.profile-card figcaption { position:absolute; z-index:1; inset:auto 30px 28px; }
.profile-card p { color:white; font:600 27px/1.08 var(--font-display); margin:0 0 12px; }
.profile-card small { color:#d7b777; letter-spacing:.16em; text-transform:uppercase; }
.bio { background:var(--cream); }
.bio-grid { display:grid; grid-template-columns:280px 1fr; gap:60px; }
.bio-grid h2 { max-width:850px; }
.bio-grid>div>p { max-width:830px; color:var(--muted); line-height:1.9; }
.credential-cards { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #cbc7be; border-left:1px solid #cbc7be; margin-top:45px; }
.credential-cards article { padding:28px; border-right:1px solid #cbc7be; border-bottom:1px solid #cbc7be; }
.credential-cards b { display:block; color:var(--gold); font:600 38px var(--font-display); }
.credential-cards span { display:block; margin-top:10px; font-size:11px; color:var(--muted); line-height:1.6; }
.principles { background:#173b4b; color:white; }
.principles-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:50px; border-top:1px solid rgba(255,255,255,.18); border-left:1px solid rgba(255,255,255,.18); }
.principles-grid article { min-height:260px; padding:30px; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.principles-grid span { color:#d7b777; font-size:10px; }
.principles-grid h3 { font:600 30px var(--font-display); margin-top:55px; }
.principles-grid p { color:#a6b6be; line-height:1.75; font-size:13px; }

.contact-hero { min-height:900px; color:white; background:linear-gradient(90deg,rgba(5,18,28,.86),rgba(5,18,28,.2)),url('/images/hero-contato.png') center/cover; }
.contact-hero:after { content:""; position:absolute; inset:150px 0 0 55%; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px); background-size:46px 46px; transform:perspective(700px) rotateY(-35deg); transform-origin:right; pointer-events:none; }
.contact-grid { min-height:780px; display:grid; grid-template-columns:1fr 500px; gap:95px; align-items:center; position:relative; z-index:2; }
.contact-grid>div:first-child>p:last-child { max-width:650px; color:#bdcbd2; line-height:1.8; font-size:16px; }
.contact-panel { background:#f4f0e8; color:var(--ink); padding:42px; box-shadow:0 35px 90px rgba(0,0,0,.25); }
.contact-line { display:flex; justify-content:space-between; gap:20px; padding:23px 0; border-bottom:1px solid #ccc8bd; font-size:12px; }
.contact-line span { color:#7b858a; text-transform:uppercase; letter-spacing:.1em; font-size:9px; }
.contact-line b { text-align:right; }
.contact-note { background:white; margin-top:30px; padding:24px; border-left:3px solid var(--gold); }
.contact-note b { font:600 21px var(--font-display); }
.contact-note p { margin:10px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }

@keyframes fadeUp { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
.reveal { animation:fadeUp .8s ease-out both; }

@media (max-width:980px) {
  .desktop-nav,.header-contact { display:none; }
  .mobile-menu { display:block; position:relative; }
  .mobile-menu summary { list-style:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.35); display:grid; place-content:center; gap:7px; cursor:pointer; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { width:20px; height:1px; background:white; }
  .mobile-menu nav { position:absolute; right:0; top:54px; width:230px; background:#071d2e; border:1px solid rgba(255,255,255,.2); padding:14px; display:grid; }
  .mobile-menu nav a { padding:13px; border-bottom:1px solid rgba(255,255,255,.1); }
  .hero-grid { grid-template-columns:1fr; }
  .hero-seal { display:none; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid,.benefits-grid,.contact-grid { grid-template-columns:1fr; gap:60px; }
  .section-heading,.overview-grid { grid-template-columns:1fr; gap:25px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .about-hero-grid { grid-template-columns:1fr 240px; gap:45px; }
  .contact-grid { padding:90px 0; }
  .contact-panel { max-width:650px; }
}

@media (max-width:680px) {
  .container { width:min(100% - 30px,1180px); }
  .section { padding:78px 0; }
  .nav-wrap { height:82px; }
  .brand { width:218px; }
  .hero { min-height:790px; background-position:62% center; }
  .hero-grid { min-height:650px; align-items:center; }
  .hero h1,.service-hero h1,.about-hero h1,.contact-hero h1 { font-size:49px; }
  .hero-lead { font-size:15px; }
  .credentials { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:36px; }
  .statement-grid,.bio-grid { grid-template-columns:1fr; gap:22px; }
  h2 { font-size:42px; }
  .service-grid,.deliverable-grid,.principles-grid,.credential-cards { grid-template-columns:1fr; }
  .service-card { min-height:310px; }
  .process-grid { gap:45px; }
  .audience-row span { min-width:50%; font-size:17px; }
  .cta-inner,.next-step-inner { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:35px; }
  .footer-bottom { flex-direction:column; gap:12px; }
  .service-hero { min-height:690px; background-position:62% center; }
  .service-hero-inner { padding-top:95px; }
  .benefit-list>div { grid-template-columns:35px 1fr; }
  .benefit-list p { grid-column:2; }
  .about-hero-grid { grid-template-columns:1fr; padding:80px 0; }
  .profile-card { width:min(100%,350px); height:430px; }
  .contact-panel { padding:26px; }
  .contact-line { flex-direction:column; }
  .contact-line b { text-align:left; overflow-wrap:anywhere; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
