/* =========================================================
   CG ENGENHARIA · Página de Construção e Reforma
   Camada sobre style.css (mesmos tokens e temas de seção)
   ========================================================= */

/* ---------- Hero: foto com respiração lenta ---------- */
.hero--obra .hero__poster img{object-position:50% 62%;animation:obraZoom 26s ease-in-out infinite alternate;transform-origin:62% 60%}
@keyframes obraZoom{from{transform:scale(1.02)}to{transform:scale(1.14) translate3d(-1.2%,-.6%,0)}}
.hero--obra .hero__shade{background:
  linear-gradient(90deg,rgba(5,7,11,.82) 0%,rgba(5,7,11,.5) 38%,rgba(5,7,11,.05) 68%),
  linear-gradient(180deg,rgba(5,7,11,.55) 0%,rgba(5,7,11,0) 24%,rgba(5,7,11,.15) 56%,rgba(5,7,11,.96) 100%)}
.hero--obra .hero__title{max-width:9.5ch}
@media (max-width:700px){
  .hero--obra .hero__poster img{object-position:62% center}
  .hero--obra .hero__shade{background:linear-gradient(180deg,rgba(5,7,11,.6) 0%,rgba(5,7,11,.12) 22%,rgba(5,7,11,.55) 48%,rgba(5,7,11,.96) 80%)}
}
@media (prefers-reduced-motion:reduce){.hero--obra .hero__poster img{animation:none}}

/* ---------- O que fazemos: dois painéis grandes ---------- */
.duo{background:var(--ink)}
.duo__head{padding:clamp(88px,12vw,150px) var(--gut) clamp(36px,5vw,64px)}
.duo__grid{display:grid;grid-template-columns:1fr 1fr;min-height:min(86vh,820px)}
.duo__card{position:relative;overflow:hidden;display:flex;align-items:flex-end;isolation:isolate;color:var(--on-dark)}
.duo__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.6s var(--ease),filter .8s}
.duo__card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,7,11,.15) 0%,rgba(5,7,11,.55) 45%,rgba(5,7,11,.96) 100%)}
.duo__card:hover img{transform:scale(1.06)}
.duo__body{padding:clamp(24px,4vw,56px);max-width:620px}
.duo__n{font-size:12px;text-transform:uppercase;color:var(--on-dark-muted);display:flex;gap:10px;align-items:center;margin:0 0 14px}
.duo__n::before{content:"";width:28px;height:1px;background:var(--earth)}
.duo__t{font:800 clamp(34px,4.4vw,64px)/.98 var(--f-display);letter-spacing:-.04em;margin:0 0 14px;text-wrap:balance}
.duo__t em{color:var(--blue-2)}
.duo__p{margin:0 0 22px;color:#C9D1DE;font-size:clamp(15px,1.3vw,18px);max-width:44ch}
.duo__list{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.duo__list li{font:500 13px var(--f-display);padding:8px 14px;border-radius:999px;border:1px solid rgba(232,236,242,.28);background:rgba(5,7,11,.45);backdrop-filter:blur(6px)}
.duo__card + .duo__card{border-left:1px solid rgba(232,236,242,.14)}
@media (max-width:900px){.duo__grid{grid-template-columns:1fr;min-height:0}.duo__card{min-height:560px}.duo__card + .duo__card{border-left:0;border-top:1px solid rgba(232,236,242,.14)}}

/* ---------- Caixa: trilha do financiamento ---------- */
.caixa__wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.caixa__side{position:sticky;top:110px}
.caixa__side .lead{margin-bottom:28px}
.caixa__photo{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line-2);margin-top:6px}
.caixa__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.06)}
.caixa__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,7,11,.82))}
.caixa__tag{position:absolute;left:16px;bottom:16px;z-index:1;color:var(--on-dark);font-size:11px;text-transform:uppercase;padding:8px 12px;border-radius:6px;background:rgba(5,7,11,.78);backdrop-filter:blur(6px)}
.rail{position:relative;display:grid;gap:18px;padding-left:64px;counter-reset:r}
.rail::before{content:"";position:absolute;left:23px;top:8px;bottom:8px;width:1px;background:linear-gradient(var(--earth),var(--line-2) 70%,transparent)}
.rail__i{position:relative;padding:26px 28px;border-radius:var(--r-lg);background:linear-gradient(180deg,var(--steel),var(--night));border:1px solid var(--line);transition:border-color .4s,transform .5s var(--ease)}
.rail__i:hover{border-color:rgba(226,104,58,.5);transform:translateX(6px)}
.rail__n{position:absolute;left:-64px;top:22px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font:600 13px var(--f-mono);background:var(--night);border:1px solid var(--line-2);color:var(--text);transition:background .4s,color .4s,border-color .4s}
.rail__i.is-on .rail__n{background:var(--earth);border-color:var(--earth);color:#111}
.rail__i h3{font:700 clamp(19px,1.7vw,23px)/1.2 var(--f-display);letter-spacing:-.02em;margin:0 0 8px}
.rail__i p{margin:0;color:var(--muted);font-size:15px}
.rail__tag{display:inline-block;margin-top:14px;font-size:11px;text-transform:uppercase;color:#9FB4FF;border:1px solid rgba(159,180,255,.35);border-radius:6px;padding:5px 9px}
.flow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.flow span{font:500 12px var(--f-mono);padding:7px 11px;border-radius:8px;background:rgba(47,91,255,.14);border:1px solid rgba(159,180,255,.28);color:#C7D3FF;position:relative}
.flow span:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-52%);color:var(--earth);font-size:12px}
.flow span:not(:last-child){margin-right:8px}
@media (max-width:900px){.caixa__wrap{grid-template-columns:1fr}.caixa__side{position:static}.caixa__photo{aspect-ratio:16/10}.rail{padding-left:56px}.rail__n{left:-56px;width:42px;height:42px}.rail::before{left:20px}.rail__i{padding:22px 20px}}

/* ---------- Reformas técnicas ---------- */
.retro__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:stretch}
.retro__media{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:520px;box-shadow:0 30px 60px -35px rgba(13,18,32,.5)}
.retro__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.retro__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(5,7,11,.7))}
.retro__badge{position:absolute;left:22px;bottom:22px;z-index:1;color:var(--on-dark)}
.retro__badge b{display:block;font:900 clamp(54px,7vw,104px)/.9 var(--f-display);letter-spacing:-.05em}
.retro__badge span{font-size:12px;text-transform:uppercase;color:var(--on-dark-muted)}
.retro__list{display:grid;gap:14px;align-content:center}
.rcard{display:grid;grid-template-columns:56px 1fr;gap:6px 20px;padding:26px;border-radius:var(--r-lg);background:var(--night);border:1px solid var(--line);box-shadow:0 20px 40px -30px rgba(13,18,32,.35);transition:transform .5s var(--ease),border-color .4s}
.rcard:hover{transform:translateY(-4px);border-color:rgba(47,91,255,.4)}
.rcard__ico{grid-row:span 3;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:rgba(47,91,255,.08);border:1px solid rgba(47,91,255,.22);color:var(--blue)}
.rcard__ico .ico{width:26px;height:26px}
.rcard h3{font:700 clamp(18px,1.6vw,22px)/1.2 var(--f-display);letter-spacing:-.02em;margin:0}
.rcard p{margin:0;color:var(--muted);font-size:15px}
.rcard__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rcard__chips span{font:500 11px var(--f-mono);text-transform:uppercase;padding:5px 9px;border-radius:6px;background:rgba(13,18,32,.06);color:var(--text)}
@media (max-width:900px){.retro__grid{grid-template-columns:1fr}.retro__media{min-height:340px}.rcard{grid-template-columns:44px 1fr;padding:20px}.rcard__ico{width:44px;height:44px;border-radius:12px}}

/* ---------- Por que construímos ---------- */
.why{overflow:hidden}
.why__bg{position:absolute;inset:0;z-index:0}
.why__bg img{width:100%;height:120%;object-fit:cover;opacity:.28;filter:grayscale(.4)}
.why__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--navy),rgba(10,22,51,.55) 40%,var(--navy))}
.why .wrap{position:relative;z-index:1}
.why__quote{font:800 clamp(28px,4vw,60px)/1.05 var(--f-display);letter-spacing:-.035em;max-width:20ch;margin:0 0 clamp(36px,5vw,64px);text-wrap:balance}
.why__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pillar{padding:30px 28px;border-radius:var(--r-lg);background:rgba(15,31,71,.72);border:1px solid var(--line-2);backdrop-filter:blur(10px);color:var(--on-dark);--muted:var(--on-dark-muted)}
.pillar .ico{width:32px;height:32px;color:#9FB4FF;margin-bottom:22px}
.pillar h3{font:800 clamp(22px,2vw,28px)/1.1 var(--f-display);letter-spacing:-.03em;margin:0 0 10px}
.pillar p{margin:0;color:var(--on-dark-muted);font-size:15px}
@media (max-width:900px){.why__grid{grid-template-columns:1fr}}

/* ---------- Para quem / onde ---------- */
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r-lg);overflow:hidden;margin-top:clamp(40px,5vw,64px)}
.who>div{background:var(--sec-bg);padding:30px 28px}
.who .mono{font-size:11px;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.who b{font:800 clamp(22px,2.2vw,32px)/1.1 var(--f-display);letter-spacing:-.03em;display:block}
.who p{margin:8px 0 0;color:var(--muted);font-size:14px}
@media (max-width:700px){.who{grid-template-columns:1fr}}

/* ---------- Equipe: monograma quando não há foto ---------- */
.eng__ph--mono{display:grid;place-items:center;background:linear-gradient(145deg,var(--steel),var(--night))}
.eng__ph--mono span{font:800 clamp(40px,5vw,72px)/1 var(--f-display);letter-spacing:-.04em;color:var(--blue-2)}
.t-dark .eng__ph--mono span{color:#8FA6FF}

/* ---------- Galeria: legenda com fase da obra ---------- */
.frame--p{aspect-ratio:3/4}

/* ---------- Ajustes menores ---------- */
.foot__col a.is-cross{color:var(--text)}
.nav__links a.is-cross{color:var(--blue-2)}

/* 4 cartões de situação */
.moment__grid--4{grid-template-columns:repeat(4,1fr)}
.moment__grid--4 .mcard{min-height:300px;padding:26px}
@media (max-width:1100px){.moment__grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.moment__grid--4{grid-template-columns:1fr}.moment__grid--4 .mcard{min-height:0}}

/* ---------- Otimizações da 1ª revisão ---------- */
.duo__n,.duo__t,.duo__p{text-shadow:0 2px 18px rgba(5,7,11,.75)}
.duo__card::before{background:linear-gradient(180deg,rgba(5,7,11,.35) 0%,rgba(5,7,11,.6) 40%,rgba(5,7,11,.97) 100%)}
.flow{gap:6px 14px}
.flow span{font-size:11px;padding:6px 9px}
.flow span:not(:last-child){margin-right:0}
.flow span:not(:last-child)::after{right:-12px}
.why__bg img{opacity:.55;filter:none;object-position:70% 40%}
.why__bg::after{background:linear-gradient(90deg,var(--navy) 0%,rgba(10,22,51,.86) 42%,rgba(10,22,51,.35) 100%),linear-gradient(180deg,var(--navy),transparent 22%,transparent 78%,var(--navy))}
.step__ph{margin-top:20px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;border:1px solid var(--line-2);box-shadow:0 20px 40px -30px rgba(13,18,32,.5)}
.step__ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.step:hover .step__ph img{transform:scale(1.06)}

/* Hero: título em 2 linhas e botões alinhados na horizontal */
.hero--obra .hero__title{max-width:none;font-size:clamp(40px,8.2vw,128px)}
.hero--obra .hero__title .split-line{white-space:nowrap}
.hero--obra .hero__ctas{display:flex;flex-wrap:nowrap;align-items:center;gap:12px}
.hero--obra .hero__ctas .btn{flex:0 0 auto;height:56px;margin:0;vertical-align:middle}
@media (max-width:700px){
  .hero--obra .hero__ctas{flex-direction:column;align-items:stretch}
  .hero--obra .hero__ctas .btn{flex:0 0 auto;width:100%}
}

/* ---------- Fundos translúcidos com profundidade ---------- */
.bgfx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.bgfx i{position:absolute;inset:-10% 0;background:var(--img) var(--pos,center)/cover no-repeat;opacity:var(--op,.12);filter:grayscale(1) contrast(1.08);-webkit-mask-image:var(--mask);mask-image:var(--mask);will-change:transform}
.t-light .bgfx i{mix-blend-mode:multiply}
/* malha técnica (planta) + brilho de cor */
.bgfx::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(60% 50% at 8% 0%,rgba(47,91,255,.10),transparent 70%),
    radial-gradient(50% 45% at 100% 100%,rgba(226,104,58,.08),transparent 70%),
    linear-gradient(rgba(47,91,255,.05) 1px,transparent 1px) 0 0/72px 72px,
    linear-gradient(90deg,rgba(47,91,255,.05) 1px,transparent 1px) 0 0/72px 72px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent)}
.t-dark .bgfx::after,.t-navy .bgfx::after{background:
    radial-gradient(60% 50% at 8% 0%,rgba(47,91,255,.22),transparent 70%),
    radial-gradient(50% 45% at 100% 100%,rgba(226,104,58,.12),transparent 70%),
    linear-gradient(rgba(190,208,255,.05) 1px,transparent 1px) 0 0/72px 72px,
    linear-gradient(90deg,rgba(190,208,255,.05) 1px,transparent 1px) 0 0/72px 72px}
.moment>.wrap,.caixa>.wrap,.retro>.wrap,.process>.wrap,.team>.wrap,.faq>.wrap{position:relative;z-index:1}
@media (max-width:700px){.bgfx i{opacity:calc(var(--op,.12)*.8);-webkit-mask-image:none;mask-image:none}}

/* ---------- Alinhamento horizontal de todos os cards ---------- */
.steps{align-items:stretch}
.step{display:flex;flex-direction:column}
.step p{flex:1 1 auto}
.step__ph{margin-top:20px}
.pillar{display:flex;flex-direction:column}
.pillar p{flex:1 1 auto}
@media (min-width:901px){
  .step h3{min-height:2.5em}
  .pillar h3{min-height:2.25em}
}
.moment__grid--4{align-items:stretch}
.moment__grid--4 .mcard{height:100%}
.retro__list{align-content:stretch;grid-auto-rows:1fr}
.rcard{align-content:start}
.team__grid{align-items:stretch}
.eng__block[aria-hidden="true"]{min-height:0}
