/* ── ORDO ENGENHARIA — style.css ── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Montserrat:wght@300;400;500;600&display=swap');

:root {
  --gold:       #C9A84C;
  --gold-light: #E2C47A;
  --gold-dim:   rgba(201,168,76,0.15);
  --navy:       #1A2B5A;
  --navy-deep:  #0D1A3A;
  --black:      #080C14;
  --surface:    #0C1220;
  --white:      #F5F0E8;
  --muted:      rgba(245,240,232,0.45);
  --border:     rgba(201,168,76,0.14);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Montserrat', sans-serif;
  background:var(--black);
  color:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* noise overlay */
body::before {
  content:'';
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events:none; z-index:9999; opacity:0.5;
}

/* ── SHARED ── */
.section-eyebrow {
  display:flex; align-items:center; gap:0.9rem; margin-bottom:1.2rem;
}
.section-eyebrow::before {
  content:''; width:24px; height:1px; background:var(--gold);
}
.section-eyebrow span {
  font-size:0.62rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); font-weight:500;
}
.section-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2rem,4vw,3.6rem);
  font-weight:300; line-height:1.12; margin-bottom:1.5rem;
}
.section-title em { font-style:italic; color:var(--gold); }

section { padding:7rem 7vw; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:1.1rem 7vw;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid transparent;
  transition:background 0.4s, border-color 0.4s;
}
nav.scrolled {
  background:rgba(8,12,20,0.97);
  backdrop-filter:blur(10px);
  border-color:var(--border);
}
.nav-logo img { height:42px; width:auto; }
.nav-links { display:flex; gap:2.2rem; list-style:none; }
.nav-links a {
  text-decoration:none; font-size:0.7rem; font-weight:500;
  letter-spacing:0.16em; text-transform:uppercase;
  color:rgba(245,240,232,0.65); transition:color 0.3s; position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:1px; background:var(--gold); transition:width 0.3s;
}
.nav-links a:hover { color:var(--gold); }
.nav-links a:hover::after { width:100%; }
.nav-cta {
  border:1px solid var(--gold); color:var(--gold) !important;
  padding:0.5rem 1.3rem;
}
.nav-cta:hover { background:var(--gold) !important; color:var(--black) !important; }
.nav-cta::after { display:none !important; }
.nav-hamburger {
  display:none; flex-direction:column; gap:5px; background:none;
  border:none; cursor:pointer; padding:4px;
}
.nav-hamburger span {
  display:block; width:22px; height:1.5px; background:var(--white);
  transition:transform 0.3s, opacity 0.3s;
}

/* ── BUTTONS ── */
.btn-primary {
  display:inline-block; background:var(--gold); color:var(--black);
  border:none; padding:0.9rem 2.2rem;
  font-family:'Montserrat',sans-serif; font-size:0.7rem; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase;
  text-decoration:none; cursor:pointer;
  transition:background 0.3s, transform 0.2s;
}
.btn-primary:hover { background:var(--gold-light); transform:translateY(-2px); }
.btn-ghost {
  display:inline-block; background:transparent; color:var(--white);
  border:1px solid rgba(245,240,232,0.25); padding:0.9rem 2.2rem;
  font-family:'Montserrat',sans-serif; font-size:0.7rem; font-weight:400;
  letter-spacing:0.2em; text-transform:uppercase;
  text-decoration:none; cursor:pointer;
  transition:border-color 0.3s, color 0.3s, transform 0.2s;
}
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }

/* ── HERO ── */
#hero {
  min-height:100vh; position:relative; overflow:hidden;
  display:flex; align-items:center;
  padding:8rem 7vw 5rem;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 30% 50%, rgba(26,43,90,0.4) 0%, transparent 65%),
    radial-gradient(ellipse 50% 40% at 90% 20%, rgba(201,168,76,0.05) 0%, transparent 55%),
    linear-gradient(160deg, var(--black) 0%, #080E1E 100%);
}
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(201,168,76,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.035) 1px, transparent 1px);
  background-size:55px 55px;
  mask-image:radial-gradient(ellipse 90% 90% at 50% 50%, black 0%, transparent 80%);
}
.hero-inner {
  position:relative; width:100%;
  display:grid; grid-template-columns:1fr 1fr; gap:4vw; align-items:center;
}
.hero-eyebrow {
  display:flex; align-items:center; gap:0.9rem; margin-bottom:2rem;
  animation:fadeUp 0.8s ease both 0.2s;
}
.eyebrow-line { width:28px; height:1px; background:var(--gold); opacity:0.7; }
.hero-eyebrow span {
  font-size:0.62rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--gold); font-weight:500;
}
.hero-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(3.2rem,7vw,6.5rem);
  font-weight:300; line-height:1.04; margin-bottom:1.5rem;
  animation:fadeUp 0.9s ease both 0.35s;
}
.hero-title em { font-style:normal; color:var(--gold); }
.hero-sub {
  font-size:0.82rem; font-weight:300; color:var(--muted);
  line-height:1.85; max-width:440px; margin-bottom:2.5rem;
  animation:fadeUp 0.9s ease both 0.5s;
}
.hero-actions {
  display:flex; gap:1rem; margin-bottom:3.5rem;
  animation:fadeUp 0.9s ease both 0.65s;
}
.hero-metrics {
  display:flex; align-items:center; gap:0; border-top:1px solid var(--border);
  padding-top:2rem; animation:fadeUp 0.9s ease both 0.8s;
}
.hm { text-align:left; padding-right:2.5rem; }
.hm-div { width:1px; height:36px; background:var(--border); margin-right:2.5rem; }
.hm-n {
  font-family:'Cormorant Garamond',serif; font-size:2.4rem; font-weight:600;
  color:var(--gold); line-height:1; display:block;
}
.hm-n sup { font-size:1rem; }
.hm-l {
  font-size:0.6rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--muted); line-height:1.5; display:block; margin-top:0.2rem;
}

/* Hero right decorative frame */
.hero-right { display:flex; align-items:center; justify-content:center; }
.hero-img-frame {
  position:relative; width:420px; height:420px;
  animation:fadeIn 1.2s ease both 0.5s;
}
.hero-img-deco {
  position:absolute; inset:0; border-radius:50%;
  border:1px solid var(--border);
  box-shadow:0 0 80px rgba(201,168,76,0.06), inset 0 0 80px rgba(13,26,58,0.4);
}
.hero-img-deco::before {
  content:''; position:absolute; inset:20px; border-radius:50%;
  border:1px solid rgba(201,168,76,0.08);
}
.hero-img-deco::after {
  content:''; position:absolute; inset:50px; border-radius:50%;
  border:1px solid rgba(201,168,76,0.06);
}
.hero-logo-mark {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:260px; height:auto; object-fit:contain;
  filter:drop-shadow(0 0 30px rgba(201,168,76,0.15));
  animation:pulseLogo 4s ease-in-out infinite;
}
.hero-img-grid {
  position:absolute; inset:0; border-radius:50%; overflow:hidden;
  background-image:
    linear-gradient(rgba(201,168,76,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.04) 1px, transparent 1px);
  background-size:30px 30px;
  mask-image:radial-gradient(circle at 50% 50%, black 40%, transparent 70%);
}
.hero-scroll {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:0.5rem;
  opacity:0.35; animation:fadeIn 1s ease both 1.5s;
}
.scroll-track {
  width:1px; height:40px; background:rgba(245,240,232,0.2); position:relative; overflow:hidden;
}
.scroll-thumb {
  position:absolute; top:0; left:0; right:0; height:40%; background:var(--gold);
  animation:scrollAnim 2s ease-in-out infinite;
}
.hero-scroll span { font-size:0.58rem; letter-spacing:0.22em; text-transform:uppercase; }

/* ── SOBRE ── */
#sobre {
  background:var(--navy-deep, #0D1A3A);
  position:relative; overflow:hidden;
}
#sobre::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(201,168,76,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.025) 1px, transparent 1px);
  background-size:40px 40px;
}
.sobre-inner {
  position:relative; display:grid;
  grid-template-columns:420px 1fr; gap:7vw; align-items:center;
}
.sobre-photo-col { display:flex; justify-content:center; }
.sobre-photo-wrap {
  position:relative; width:340px;
}
.photo-border-accent {
  position:absolute; top:-16px; left:-16px; right:16px; bottom:16px;
  border:1px solid var(--border);
  z-index:0;
}
.sobre-photo {
  position:relative; z-index:1;
  width:100%; display:block;
  filter:grayscale(15%) contrast(1.05);
  transition:filter 0.4s;
}
.sobre-photo:hover { filter:grayscale(0%) contrast(1.05); }
.photo-gold-bar {
  position:absolute; bottom:0; left:0; right:-16px;
  height:3px; background:var(--gold); z-index:2;
}
.eng-name-block {
  margin-bottom:1.5rem; padding-left:1rem;
  border-left:2px solid var(--gold);
}
.eng-name {
  font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400;
  color:var(--white); line-height:1.3;
}
.eng-crea {
  font-size:0.68rem; letter-spacing:0.15em; color:var(--gold);
  text-transform:uppercase; margin-top:0.3rem;
}
.sobre-text {
  font-size:0.82rem; line-height:1.95; color:var(--muted);
  font-weight:300; margin-bottom:2rem;
}
.sobre-tags {
  display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:2rem;
}
.sobre-tags span {
  font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase;
  border:1px solid var(--border); color:rgba(245,240,232,0.5);
  padding:0.3rem 0.8rem;
}
.sobre-social { display:flex; gap:0.75rem; flex-wrap:wrap; }
.social-pill {
  display:inline-flex; align-items:center; gap:0.5rem;
  border:1px solid var(--border); color:var(--muted);
  padding:0.45rem 1rem; font-size:0.68rem; letter-spacing:0.1em;
  text-decoration:none; text-transform:uppercase; font-weight:500;
  transition:border-color 0.3s, color 0.3s, background 0.3s;
}
.social-pill:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,0.04); }

/* ── SERVICES ── */
#servicos { background:var(--black); }
.services-head { max-width:560px; margin-bottom:4rem; }
.services-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5px; background:var(--border);
}
.svc-card {
  background:var(--surface); padding:3rem 2.5rem;
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  transition:background 0.3s;
}
.svc-card::after {
  content:''; position:absolute; bottom:0; left:0;
  width:0; height:2px; background:var(--gold);
  transition:width 0.5s;
}
.svc-card:hover::after { width:100%; }
.svc-card:hover { background:#0D1222; }
.svc-card--featured { background:#0A1228; }
.svc-card--featured::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.svc-num {
  font-family:'Cormorant Garamond',serif; font-size:3.5rem;
  font-weight:300; color:rgba(201,168,76,0.1); line-height:1;
  position:absolute; top:1.5rem; right:2rem;
}
.svc-icon {
  width:48px; height:48px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); margin-bottom:1.8rem;
  transition:border-color 0.3s, background 0.3s;
}
.svc-card:hover .svc-icon { border-color:var(--gold); background:var(--gold-dim); }
.svc-title {
  font-family:'Cormorant Garamond',serif; font-size:1.7rem;
  font-weight:400; margin-bottom:1rem; line-height:1.2;
}
.svc-desc {
  font-size:0.78rem; line-height:1.85; color:var(--muted);
  font-weight:300; margin-bottom:1.5rem; flex:1;
}
.svc-list { list-style:none; margin-bottom:2rem; display:flex; flex-direction:column; gap:0.5rem; }
.svc-list li {
  font-size:0.7rem; color:rgba(245,240,232,0.5);
  display:flex; align-items:center; gap:0.6rem;
}
.svc-list li::before { content:''; width:12px; height:1px; background:var(--gold); opacity:0.5; flex-shrink:0; }
.svc-foot { display:flex; gap:0.5rem; margin-top:auto; flex-wrap:wrap; }
.svc-foot span {
  font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase;
  background:var(--gold-dim); color:var(--gold); padding:0.25rem 0.65rem;
}

/* ── PORTFOLIO ── */
#portfolio { background:var(--black); padding-top:0; }
.pf-intro {
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:3rem; padding:7rem 7vw 4rem;
}
.pf-sub {
  font-size:0.78rem; color:var(--muted); line-height:1.85;
  max-width:380px; flex-shrink:0;
}
.pf-featured {
  position:relative; width:100%; overflow:hidden;
  background:var(--surface); margin-bottom:0;
}
.pf-featured img {
  width:100%; height:auto; display:block;
  transition:transform 0.7s ease;
}
.pf-featured:hover img { transform:scale(1.015); }
.pf-fl {
  position:absolute; bottom:0; left:0; right:0;
  padding:2rem 3.5rem;
  background:linear-gradient(to top, rgba(8,12,20,0.9) 0%, transparent 100%);
  display:flex; align-items:flex-end; gap:2rem;
}
.pf-fnum {
  font-family:'Cormorant Garamond',serif; font-size:3.8rem;
  font-weight:300; color:var(--gold); opacity:0.5; line-height:1; flex-shrink:0;
}
.pf-fsep { width:1px; height:48px; background:rgba(201,168,76,0.35); flex-shrink:0; margin-bottom:4px; }
.pf-ftag {
  font-size:0.58rem; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--gold); margin-bottom:0.4rem; font-weight:500;
}
.pf-ftitle {
  font-family:'Cormorant Garamond',serif; font-size:1.8rem;
  font-weight:300; color:var(--white); line-height:1.15; margin-bottom:0.4rem;
}
.pf-fdesc { font-size:0.72rem; color:rgba(245,240,232,0.5); line-height:1.6; max-width:540px; }

.pf-row3 {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border); margin-bottom:2px;
}
.pf-card { background:var(--surface); display:flex; flex-direction:column; overflow:hidden; }
.pf-card--mid { border-left:1px solid var(--border); border-right:1px solid var(--border); }
.pf-img { height:220px; overflow:hidden; position:relative; }
.pf-img::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 50%, rgba(8,12,20,0.45) 100%);
}
.pf-img img {
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block; transition:transform 0.6s; filter:brightness(0.88);
}
.pf-card:hover .pf-img img { transform:scale(1.06); filter:brightness(1); }
.pf-info {
  padding:1.5rem 1.8rem 2rem; flex:1;
  border-top:1px solid var(--border); position:relative;
}
.pf-info::after {
  content:''; position:absolute; bottom:0; left:0;
  width:0; height:2px; background:var(--gold); transition:width 0.5s;
}
.pf-card:hover .pf-info::after { width:100%; }
.pf-itag {
  font-size:0.58rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:0.6rem; font-weight:500;
}
.pf-iname {
  font-family:'Cormorant Garamond',serif; font-size:1.2rem;
  font-weight:400; color:var(--white); margin-bottom:0.7rem; line-height:1.2;
}
.pf-idesc { font-size:0.72rem; color:var(--muted); line-height:1.7; }
.pf-inum {
  font-family:'Cormorant Garamond',serif; font-size:2.2rem;
  font-weight:300; color:rgba(201,168,76,0.1); position:absolute;
  bottom:1rem; right:1.5rem; line-height:1;
}

/* ── BIM ── */
#bim { background:var(--navy-deep, #0D1A3A); position:relative; overflow:hidden; }
#bim::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(201,168,76,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.03) 1px, transparent 1px);
  background-size:40px 40px;
}
.bim-inner {
  position:relative; display:grid;
  grid-template-columns:1fr 1fr; gap:8vw; align-items:center;
}
.bim-visual { display:flex; align-items:center; justify-content:center; height:380px; }
.bim-rings { position:relative; width:300px; height:300px; }
.bim-ring {
  position:absolute; border-radius:50%;
  top:50%; left:50%; transform:translate(-50%,-50%);
  border:1px solid rgba(201,168,76,0.12);
  animation:rotateRing linear infinite;
}
.bim-ring::before {
  content:''; position:absolute; top:-3px; left:50%;
  width:6px; height:6px; background:var(--gold); border-radius:50%;
  transform:translateX(-50%);
}
.r1 { width:300px; height:300px; animation-duration:28s; }
.r2 { width:220px; height:220px; animation-duration:20s; animation-direction:reverse; border-color:rgba(201,168,76,0.2); }
.r3 { width:140px; height:140px; animation-duration:14s; border-color:rgba(201,168,76,0.3); }
.bim-core { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; }
.bim-core-label {
  font-family:'Cormorant Garamond',serif; font-size:2.4rem;
  font-weight:600; color:var(--gold); letter-spacing:0.05em;
}
.bim-core-sub {
  font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--muted); margin-top:0.2rem; line-height:1.6;
}
.bim-text { font-size:0.82rem; line-height:1.95; color:var(--muted); font-weight:300; margin-bottom:2.5rem; }
.bim-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.bim-item {
  background:rgba(201,168,76,0.04); border:1px solid var(--border);
  padding:1.2rem 1.4rem;
  transition:background 0.3s, border-color 0.3s;
}
.bim-item:hover { background:rgba(201,168,76,0.07); border-color:rgba(201,168,76,0.25); }
.bim-item-title {
  font-size:0.7rem; font-weight:600; letter-spacing:0.08em;
  color:var(--gold); margin-bottom:0.35rem; text-transform:uppercase;
}
.bim-item-text { font-size:0.7rem; color:rgba(245,240,232,0.4); line-height:1.65; }

/* ── PROCESSO ── */
#processo { background:var(--black); }
.proc-head { text-align:center; max-width:520px; margin:0 auto 5rem; }
.proc-head .section-eyebrow { justify-content:center; }
.proc-steps {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:0; position:relative;
}
.proc-steps::before {
  content:''; position:absolute;
  top:22px; left:calc(10% + 11px); right:calc(10% + 11px); height:1px;
  background:linear-gradient(to right, transparent, var(--border), var(--border), transparent);
}
.proc-step { text-align:center; padding:0 1.2rem; position:relative; }
.proc-num {
  width:44px; height:44px; border:1px solid var(--border); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.5rem;
  font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--gold);
  background:var(--black); position:relative; z-index:1;
  transition:background 0.3s, border-color 0.3s;
}
.proc-step:hover .proc-num { background:var(--gold-dim); border-color:var(--gold); }
.proc-line { display:none; }
.proc-title {
  font-size:0.72rem; font-weight:600; letter-spacing:0.1em;
  text-transform:uppercase; margin-bottom:0.6rem;
}
.proc-desc { font-size:0.7rem; color:var(--muted); line-height:1.7; }

/* ── CONTATO ── */
#contato { background:var(--navy-deep, #0D1A3A); position:relative; overflow:hidden; }
#contato::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 50%, rgba(201,168,76,0.04) 0%, transparent 70%);
}
.cta-wrap { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:start; }
.cta-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,4vw,3.6rem); font-weight:300; line-height:1.1; margin-bottom:1.2rem;
}
.cta-title em { font-style:italic; color:var(--gold); }
.cta-text { font-size:0.8rem; color:var(--muted); line-height:1.9; margin-bottom:2.5rem; }
.cta-contacts { display:flex; flex-direction:column; gap:2px; }
.cta-contact-item {
  display:flex; align-items:center; gap:1.2rem;
  background:rgba(255,255,255,0.02); border:1px solid var(--border);
  padding:1rem 1.4rem; text-decoration:none;
  transition:background 0.3s, border-color 0.3s;
}
.cta-contact-item:hover { background:rgba(201,168,76,0.05); border-color:rgba(201,168,76,0.3); }
.cci-icon {
  width:38px; height:38px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); flex-shrink:0;
}
.cci-body { flex:1; }
.cci-label { font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); margin-bottom:0.2rem; }
.cci-val { font-size:0.82rem; color:var(--white); font-weight:400; }
.cci-arrow { color:var(--gold); opacity:0.4; font-size:1rem; transition:opacity 0.3s, transform 0.3s; }
.cta-contact-item:hover .cci-arrow { opacity:1; transform:translateX(4px); }

/* Form */
.cta-form-card {
  background:rgba(255,255,255,0.025); border:1px solid var(--border);
  padding:2.5rem;
}
.cfc-label {
  font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.5rem; display:block;
}
.cfc-input {
  width:100%; background:rgba(255,255,255,0.04);
  border:none; border-bottom:1px solid var(--border);
  padding:0.85rem 0; color:var(--white);
  font-family:'Montserrat',sans-serif; font-size:0.8rem;
  outline:none; display:block; margin-bottom:1.2rem;
  transition:border-color 0.3s;
}
.cfc-input::placeholder { color:rgba(245,240,232,0.25); }
.cfc-input:focus { border-color:rgba(201,168,76,0.5); }
.cfc-textarea { resize:none; }
.cfc-btn {
  width:100%; background:var(--gold); color:var(--black); border:none;
  padding:1rem; font-family:'Montserrat',sans-serif;
  font-size:0.7rem; font-weight:600; letter-spacing:0.2em; text-transform:uppercase;
  cursor:pointer; margin-top:0.5rem;
  transition:background 0.3s;
}
.cfc-btn:hover { background:var(--gold-light); }
.cfc-note { font-size:0.65rem; color:var(--muted); text-align:center; margin-top:0.8rem; }

/* ── FOOTER ── */
footer {
  background:var(--black); border-top:1px solid var(--border);
  padding:2.5rem 7vw;
}
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.footer-brand { display:flex; align-items:center; gap:1rem; }
.footer-logo { height:36px; width:auto; }
.footer-tagline { font-size:0.62rem; letter-spacing:0.1em; color:var(--muted); }
.footer-mid { font-size:0.62rem; letter-spacing:0.08em; color:rgba(245,240,232,0.2); text-align:center; line-height:1.7; }
.footer-social { display:flex; gap:1rem; align-items:center; }
.fs-icon {
  color:rgba(245,240,232,0.25); text-decoration:none;
  display:flex; align-items:center; transition:color 0.3s, transform 0.2s;
}
.fs-icon:hover { color:var(--gold); transform:translateY(-2px); }

/* ── ANIMATIONS ── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes rotateRing {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}
@keyframes pulseLogo {
  0%,100% { filter:drop-shadow(0 0 30px rgba(201,168,76,0.15)); }
  50%     { filter:drop-shadow(0 0 50px rgba(201,168,76,0.28)); }
}
@keyframes scrollAnim {
  0%   { top:0; opacity:1; }
  100% { top:100%; opacity:0; }
}

/* ── RESPONSIVE ── */

/* Tablet landscape / small desktop */
@media (max-width:1100px) {
  section { padding:6rem 5vw; }
  .hero-inner  { grid-template-columns:1fr; text-align:center; }
  .hero-right  { display:none; }
  .hero-eyebrow { justify-content:center; }
  .hero-sub { margin:0 auto 2.5rem; }
  .hero-actions { justify-content:center; }
  .hero-metrics { justify-content:center; }
  .sobre-inner { grid-template-columns:1fr; gap:3rem; }
  .sobre-photo-col { justify-content:center; }
  .sobre-photo-wrap { width:300px; }
  .sobre-content { text-align:left; }
  .bim-inner   { grid-template-columns:1fr; }
  .bim-visual  { height:260px; }
  .cta-wrap    { grid-template-columns:1fr; gap:3rem; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .pf-intro    { flex-direction:column; align-items:flex-start; gap:1rem; }
  .pf-row3     { grid-template-columns:1fr 1fr; }
  .pf-card--mid { border-left:none; border-right:none; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
}

/* Tablet portrait */
@media (max-width:768px) {
  section { padding:4.5rem 5vw; }
  nav { padding:1rem 5vw; }
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }

  /* Hero */
  .hero-title { font-size:clamp(2.4rem,10vw,4rem); }
  .hero-sub { font-size:0.78rem; }
  .hero-metrics { flex-wrap:wrap; gap:1.5rem; justify-content:center; }
  .hm-div { display:none; }
  .hm { padding:0 1rem; text-align:center; }

  /* Sobre */
  .sobre-photo-wrap { width:240px; margin:0 auto; }
  .sobre-photo-col { justify-content:center; }
  .eng-name { font-size:1.1rem; }
  .sobre-tags { justify-content:flex-start; }
  .sobre-social { justify-content:flex-start; }

  /* Services */
  .services-grid { grid-template-columns:1fr; }
  .svc-card { padding:2rem 1.8rem; }

  /* Portfolio */
  .pf-intro { padding:4.5rem 5vw 2.5rem; }
  .pf-row3 { grid-template-columns:1fr; }
  .pf-card--mid { border:none; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
  .pf-caption { padding:0.9rem 1.2rem; gap:1rem; }
  .pf-cap-num { font-size:1.2rem; }
  .pf-cap-title { font-size:0.95rem; }
  .pf-img { height:200px; }
  .pf-soon { min-height:140px; }
  .pf-soon-title { font-size:1.2rem; }

  /* BIM */
  .bim-inner { gap:3rem; }
  .bim-visual { height:220px; }
  .bim-rings { width:220px; height:220px; }
  .r1 { width:220px; height:220px; }
  .r2 { width:160px; height:160px; }
  .r3 { width:100px; height:100px; }
  .bim-grid { grid-template-columns:1fr 1fr; }

  /* Processo */
  .proc-steps { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .proc-steps::before { display:none; }

  /* Contato */
  .cta-wrap { gap:2.5rem; }
  .cta-title { font-size:clamp(1.8rem,6vw,2.8rem); }
  .cta-form-card { padding:1.8rem; }

  /* Footer */
  .footer-inner { flex-direction:column; gap:1.2rem; text-align:center; }
  .footer-brand { flex-direction:column; align-items:center; gap:0.5rem; }
  .footer-social { justify-content:center; }
  .footer-mid { font-size:0.6rem; }
}

/* Mobile */
@media (max-width:480px) {
  section { padding:4rem 4vw; }
  nav { padding:0.9rem 4vw; }
  .nav-logo img { height:36px; }

  /* Hero */
  .hero-title { font-size:clamp(2rem,11vw,3rem); }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .btn-primary, .btn-ghost { text-align:center; }
  .hero-metrics { gap:1rem; }
  .hm-n { font-size:1.8rem; }

  /* Sobre */
  .sobre-photo-wrap { width:200px; }
  .sobre-social { flex-wrap:wrap; }
  .social-pill { font-size:0.62rem; padding:0.4rem 0.8rem; }

  /* Services */
  .svc-card { padding:1.8rem 1.4rem; }
  .svc-title { font-size:1.4rem; }

  /* Portfolio */
  .pf-intro { padding:4rem 4vw 2rem; }
  .pf-caption { padding:0.8rem 1rem; gap:0.8rem; flex-wrap:wrap; }
  .pf-cap-sep { display:none; }
  .pf-cap-num { font-size:1rem; }
  .section-title { font-size:clamp(1.6rem,8vw,2.5rem); }

  /* BIM */
  .bim-grid { grid-template-columns:1fr; }
  .bim-text { font-size:0.78rem; }

  /* Processo */
  .proc-steps { grid-template-columns:1fr; gap:2rem; }
  .proc-head { margin-bottom:3rem; }

  /* Contato */
  .cta-form-card { padding:1.4rem; }
  .cfc-btn { font-size:0.65rem; }

  /* Lightbox nav */
  .lb-nav { width:36px; height:36px; }
  .lb-prev { left:0.5rem; }
  .lb-next { right:0.5rem; }
}

/* Touch devices: always show zoom hint */
@media (hover: none) {
  .pf-zoom-hint { opacity: 0.7 !important; }
  .pf-featured:hover img { transform: none; }
  .pf-card:hover .pf-img img { transform: none; }
}

/* ── ZOOM HINT on portfolio items ── */
.pf-zoomable { cursor: zoom-in; }
.pf-zoom-hint {
  position: absolute;
  top: 1rem; right: 1rem;
  width: 36px; height: 36px;
  background: rgba(8,12,20,0.65);
  border: 1px solid rgba(201,168,76,0.4);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 5;
  pointer-events: none;
}
.pf-featured { position: relative; }
.pf-featured:hover .pf-zoom-hint,
.pf-card:hover .pf-zoom-hint { opacity: 1; }
.pf-img { position: relative; }

/* ── LIGHTBOX ── */
.lb-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(5, 8, 16, 0.97);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.35s ease;
  backdrop-filter: blur(6px);
}
.lb-overlay.lb-open {
  opacity: 1; pointer-events: all;
}
.lb-content {
  display: flex; flex-direction: column;
  align-items: center; gap: 1.5rem;
  max-width: 90vw; max-height: 90vh;
  animation: lbIn 0.35s ease both;
}
.lb-img-wrap {
  max-width: 88vw; max-height: 78vh;
  overflow: hidden;
  border: 1px solid rgba(201,168,76,0.2);
  box-shadow: 0 0 80px rgba(0,0,0,0.8);
  position: relative;
}
.lb-img-wrap img {
  display: block;
  max-width: 88vw; max-height: 78vh;
  width: auto; height: auto;
  object-fit: contain;
  transition: opacity 0.2s;
}
.lb-img-wrap img.lb-loading { opacity: 0.3; }
.lb-caption {
  display: flex; align-items: center; gap: 1.5rem;
}
.lb-cap-tag {
  font-size: 0.6rem; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--gold);
}
.lb-cap-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem; font-weight: 300; color: var(--white);
}
.lb-cap-count {
  font-size: 0.65rem; color: rgba(245,240,232,0.3);
  letter-spacing: 0.1em; margin-left: auto;
}
.lb-close {
  position: fixed; top: 1.5rem; right: 1.5rem;
  width: 44px; height: 44px;
  background: rgba(201,168,76,0.1);
  border: 1px solid rgba(201,168,76,0.3);
  border-radius: 50%;
  color: var(--gold); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s, transform 0.25s;
  z-index: 10001;
}
.lb-close:hover { background: rgba(201,168,76,0.2); transform: rotate(90deg); }
.lb-nav {
  position: fixed; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px;
  background: rgba(201,168,76,0.08);
  border: 1px solid rgba(201,168,76,0.25);
  color: var(--gold); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s, transform 0.2s;
  z-index: 10001;
}
.lb-nav:hover { background: rgba(201,168,76,0.18); }
.lb-prev { left: 1.2rem; }
.lb-next { right: 1.2rem; }
.lb-prev:hover { transform: translateY(-50%) translateX(-3px); }
.lb-next:hover { transform: translateY(-50%) translateX(3px); }

@keyframes lbIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

@media (max-width: 768px) {
  .lb-nav { display: none; }
  .lb-img-wrap { max-width: 96vw; }
  .lb-caption { flex-direction: column; gap: 0.4rem; align-items: flex-start; }
}

/* ── PORTFOLIO CAPTION STRIP (below featured images) ── */
.pf-caption {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1rem 2rem;
  background: var(--surface);
  border-top: 1px solid var(--border);
  margin-bottom: 2px;
}
.pf-cap-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--gold);
  opacity: 0.5;
  line-height: 1;
  flex-shrink: 0;
}
.pf-cap-sep {
  width: 1px;
  height: 28px;
  background: var(--border);
  flex-shrink: 0;
}
.pf-cap-tag {
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  display: block;
  margin-bottom: 0.25rem;
}
.pf-cap-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 300;
  color: var(--white);
  display: block;
  line-height: 1.2;
}

/* Remove old overlay bar styles (pf-fl) — kept for safety but no longer rendered */
.pf-fl { display: none; }

/* ── EM BREVE card ── */
.pf-soon {
  margin-top: 2px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 2px solid rgba(201,168,76,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  position: relative;
  overflow: hidden;
}
.pf-soon::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(201,168,76,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.025) 1px, transparent 1px);
  background-size: 32px 32px;
}
.pf-soon-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  text-align: center;
  padding: 2.5rem;
}
.pf-soon-icon {
  width: 52px; height: 52px;
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.pf-soon-tag {
  font-size: 0.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.7rem;
}
.pf-soon-tag::before,
.pf-soon-tag::after {
  content: '';
  width: 24px; height: 1px;
  background: var(--gold);
  opacity: 0.4;
}
.pf-soon-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--white);
  line-height: 1.2;
}
.pf-soon-desc {
  font-size: 0.72rem;
  color: var(--muted);
  max-width: 360px;
  line-height: 1.7;
}
