
:root{
  --bg:#f5f1ea;
  --surface:#ffffff;
  --surface-warm:#eee7dc;
  --text:#111111;
  --muted:#66625d;
  --line:#d8d1c7;
  --beige:#d8c7ae;
  --beige-deep:#b7a186;
  --gray-100:#f3f3f1;
  --gray-200:#e4e4e1;
  --gray-400:#a4a4a0;
  --gray-700:#4a4a47;
  --dark:#0a0a0a;
  --radius:18px;
  --shadow:0 14px 36px rgba(0,0,0,.07)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,Arial,Helvetica,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6
}
a{color:inherit;text-decoration:none}
.container{width:min(1160px,calc(100% - 40px));margin:auto}
.narrow{width:min(820px,100%)}
.site-header{
  position:sticky;top:0;z-index:20;
  background:rgba(245,241,234,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)
}
.nav-wrap{height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center}
.logo-header{display:block;width:245px;max-height:54px;object-fit:contain;object-position:left center}
.logo-footer{display:block;width:260px;max-width:100%;object-fit:contain;object-position:left center}
.nav{display:flex;align-items:center;gap:24px;font-size:14px}
.nav a:hover{opacity:.58}
.nav-cta{border:1px solid var(--text);padding:9px 14px;border-radius:999px}
.menu-btn{display:none;border:0;background:none;font-size:26px;color:#111}
.hero{padding:92px 0 72px;background:linear-gradient(180deg,#f7f3ed 0%,#f1ebe2 100%)}
.hero-grid,.split{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero h1,.page-hero h1{
  font-size:clamp(44px,6vw,78px);line-height:1.02;
  letter-spacing:-.045em;margin:.2em 0 .35em
}
.hero p,.page-hero p,.lead{font-size:20px;color:var(--muted);max-width:760px}
.eyebrow{
  text-transform:uppercase;letter-spacing:.16em;font-size:12px;
  font-weight:800;color:var(--gray-700)
}
.eyebrow.light{color:#d9d9d6}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;font-weight:750}
.btn-primary{background:#111;color:white}
.btn-primary:hover{background:#333}
.btn-ghost{border:1px solid #111}
.btn-light{background:white;color:#111}
.placeholder{
  background:linear-gradient(135deg,#e5ded3,#d6cbbc);
  border:1px dashed #9e958a;border-radius:var(--radius);
  min-height:330px;display:flex;align-items:center;justify-content:center;
  color:#5b5650;font-weight:700;letter-spacing:.06em;text-align:center;padding:20px
}
.placeholder.small{min-height:210px}
.portrait{min-height:440px}
.tech{min-height:150px}
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#111;color:white}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stats-grid>div{padding:30px 18px;border-right:1px solid #373737}
.stats-grid>div:last-child{border-right:0}
.stats strong{display:block;font-size:34px;line-height:1;color:white}
.stats span{font-size:13px;color:#cfcfcb;display:block;margin-top:8px}
.compact{margin-top:24px;background:#111;border-radius:var(--radius);overflow:hidden}
.section{padding:88px 0}
.section-muted{background:var(--surface-warm)}
.section-dark{background:var(--dark);color:white}
.section h2,.cta-section h2{
  font-size:clamp(34px,4vw,56px);line-height:1.08;
  letter-spacing:-.035em;margin:.2em 0 .5em
}
.section h3{font-size:22px;line-height:1.2}
.cards{display:grid;gap:24px;margin-top:34px}
.cards.three{grid-template-columns:repeat(3,1fr)}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card,.project-card{
  background:var(--surface);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
  border:1px solid rgba(0,0,0,.035)
}
.card{padding:22px}
.card .card-media{margin:-22px -22px 22px}
.card.simple{min-height:210px}
.metric{display:block;margin:18px 0;color:#4f4a44}
.text-link{font-weight:750;color:#111;border-bottom:1px solid #aaa;padding-bottom:2px}
.project-body{padding:22px}
.tag{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#6e675f;font-weight:800}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:34px}
.feature-grid>div{border-top:2px solid #111;padding-top:16px}
.feature-grid p{color:var(--muted)}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tech-grid .tech:first-child{grid-column:1/-1}
.process{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-weight:700;margin-top:28px}
.process span{border:1px solid #545454;border-radius:999px;padding:10px 14px}
.center{text-align:center;margin-top:34px}
.cta-section{padding:36px 0 80px}
.cta-box{
  background:#111;color:white;border-radius:28px;padding:44px;
  display:flex;align-items:center;justify-content:space-between;gap:40px
}
.cta-box p{color:#cfcfcb;max-width:760px}
.page-hero{padding:92px 0 56px;border-bottom:1px solid var(--line);background:#f8f5f0}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px}
.contact-form{display:grid;gap:16px;background:white;padding:26px;border-radius:var(--radius);box-shadow:var(--shadow)}
.contact-form label{font-size:13px;font-weight:700}
.contact-form input,.contact-form textarea{
  width:100%;margin-top:6px;border:1px solid var(--line);
  border-radius:12px;padding:13px;font:inherit;background:#fbfaf8
}
.contact-list{margin-top:28px}
.footer{background:#070707;color:#d7d7d4;padding:54px 0}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;align-items:start}
.footer a{display:block;margin:7px 0;color:#d7d7d4}
.footer p{color:#9f9f9b}
@media(max-width:850px){
  .nav{display:none;position:absolute;top:88px;left:0;right:0;background:#f7f3ed;padding:20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}.menu-btn{display:block}
  .hero-grid,.split,.contact-grid{grid-template-columns:1fr}
  .hero{padding-top:50px}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stats-grid>div:nth-child(2){border-right:0}
  .cards.three,.cards.two,.feature-grid,.footer-grid{grid-template-columns:1fr}
  .cta-box{flex-direction:column;align-items:flex-start}
  .tech-grid{grid-template-columns:1fr}
  .tech-grid .tech:first-child{grid-column:auto}
  .logo-header{width:210px}
}

/* V3 — mockup fotográfico */
.photo-frame{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:#d8d1c7;min-height:330px;
}
.photo-frame.small{min-height:210px}
.site-photo{width:100%;height:100%;display:block;object-fit:cover}
.hero-photo{min-height:520px;box-shadow:var(--shadow)}
.hero-photo .site-photo{position:absolute;inset:0}
.card-media.photo-frame{border-radius:0}
.card-media.photo-frame.small{height:235px;min-height:235px}
.card-media.photo-frame .site-photo{height:100%;object-fit:cover}
.project-photo{height:320px;min-height:320px}
.tech.photo-frame{min-height:180px}
.tech.photo-frame:first-child{min-height:300px}
.tech.photo-frame .site-photo{position:absolute;inset:0}
.photo-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
}
@media(max-width:850px){
  .hero-photo{min-height:360px}
  .project-photo{height:240px;min-height:240px}
}

/* V4 — refinamento do topo e slideshow */
.logo-header{
  width:320px;
  max-height:64px;
}
.hero-slider{
  position:relative;
  min-height:560px;
}
.hero-slider .slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.hero-slider .slide.active{opacity:1}
.slider-dots{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:3;
}
.slider-dots .dot{
  width:11px;
  height:11px;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  box-shadow:0 0 0 1px rgba(0,0,0,.12);
}
.slider-dots .dot.active{background:#fff}
@media(max-width:850px){
  .logo-header{width:250px}
  .hero-slider{min-height:380px}
}

/* V5 — refinamentos de loteamentos e contato */
.stats-grid.compact>div{color:#fff}
.stats-grid.compact strong{display:block;color:#fff;font-size:34px;line-height:1}
.stats-grid.compact span{display:block;color:#cfcfcb;font-size:13px;margin-top:8px}
.area-potential{background:#f8f5f0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.area-potential .lead{font-size:clamp(22px,2.2vw,30px);font-weight:750;max-width:850px;margin-bottom:14px}
.area-intro{max-width:900px;color:var(--muted);font-size:18px}
.area-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.area-steps>div{padding:26px 22px 28px 0;margin-right:22px;border-right:1px solid var(--line)}
.area-steps>div:last-child{border-right:0;margin-right:0}
.area-steps strong{font-size:13px;letter-spacing:.12em;color:#77716a}
.area-steps h3{font-size:18px;margin:12px 0 8px}
.area-steps p{font-size:14px;color:var(--muted);margin:0}
.area-action{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:34px}
.area-action h3{max-width:760px;margin:0;font-size:26px}
.contact-list a{color:#111;border-bottom:1px solid #aaa}
.social-links{display:flex;gap:10px;margin-top:24px}
.social-icon{width:42px;height:42px;border:1px solid #111;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#111;text-decoration:none;line-height:1}
.social-icon:hover{background:#111;color:#fff}
.social-icon.pending{opacity:.45;cursor:default}
@media(max-width:1000px){.area-steps{grid-template-columns:1fr 1fr}.area-steps>div{border-bottom:1px solid var(--line)}.area-steps>div:nth-child(even){border-right:0}}
@media(max-width:650px){.area-steps{grid-template-columns:1fr}.area-steps>div{border-right:0;margin-right:0}.area-action{align-items:flex-start;flex-direction:column}}

/* V6 — revisão tipográfica e foto profissional */
.section p,
.page-hero p,
.hero-copy p,
.project-body p,
.card p,
.feature-grid p,
.contact-grid p,
.cta-box p,
.footer p{
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
}
.nav a,
.btn,
.text-link,
.metric,
.stats span,
.stats strong,
.eyebrow,
h1,h2,h3,
.contact-form label,
.contact-form small{
  text-align:initial;
}
.professional-photo{
  min-height:520px;
  height:520px;
  border-radius:22px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.professional-photo .site-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 32%;
}
@media(max-width:850px){
  .professional-photo{
    min-height:420px;
    height:420px;
  }
}

/* V7 — rodapé, páginas legais e aviso de cookies */
.footer-grid-expanded{grid-template-columns:1.35fr .8fr .9fr 1.25fr;gap:38px}
.footer-address{max-width:330px;margin-top:20px;line-height:1.65}
.footer-contact a,.footer-bottom a{color:inherit}
.footer-socials{display:flex;gap:9px;margin-top:14px;align-items:center}
.footer-socials a,.footer-socials span{width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;text-decoration:none}
.footer-socials .pending{opacity:.38;cursor:default}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:28px;padding:20px 0 28px;display:flex;justify-content:space-between;gap:20px;font-size:.86rem;opacity:.82}
.legal-text{max-width:900px}.legal-text h2{font-size:1.35rem;margin-top:34px;margin-bottom:10px}.legal-text p{text-align:justify;line-height:1.8}
.cookie-banner{position:fixed;left:24px;right:24px;bottom:22px;z-index:9999;background:#101010;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:18px 20px;display:none;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 16px 48px rgba(0,0,0,.28)}
.cookie-banner.show{display:flex}.cookie-banner p{margin:5px 0 4px;max-width:850px;text-align:left;font-size:.92rem;line-height:1.45;color:rgba(255,255,255,.8)}
.cookie-banner a{color:#fff;text-decoration:underline;text-underline-offset:3px;font-size:.86rem}.cookie-banner .cookie-ok{white-space:nowrap}
@media(max-width:850px){.footer-grid-expanded{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column}.cookie-banner{left:12px;right:12px;bottom:12px;flex-direction:column;align-items:flex-start}}
@media(max-width:560px){.footer-grid-expanded{grid-template-columns:1fr}}

/* V8 — footer branco/preto e projeto Gávea panorâmico */
.footer,.footer *{color:#fff}
.footer p,.footer a{color:#fff}
.footer-title{font-size:15px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 18px;color:#fff}
.footer-socials a,.footer-socials span{color:#fff;border-color:rgba(255,255,255,.55);background:transparent}
.footer-socials svg{width:21px;height:21px;display:block}
.footer-socials .pending{opacity:.42}
.footer-bottom{align-items:center}
.footer-legal{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.footer-legal .sep{opacity:.5}
.gavea-pan-frame{height:320px;overflow:hidden;position:relative;background:#fff;border-radius:0}
.gavea-pan-track{position:absolute;top:0;left:0;height:100%;width:max-content;animation:gavea-pan 20s ease-in-out infinite alternate;will-change:transform}
.gavea-pan-track img{height:100%;width:auto;display:block;max-width:none}
.gavea-pan-frame:hover .gavea-pan-track{animation-play-state:paused}
@keyframes gavea-pan{0%{transform:translateX(0)}100%{transform:translateX(-58%)}}
@media(max-width:850px){
 .gavea-pan-frame{height:240px}
 @keyframes gavea-pan{0%{transform:translateX(0)}100%{transform:translateX(-72%)}}
}

/* V9 */
.toscana-slider{position:relative;height:320px;overflow:hidden;background:#ddd}
.toscana-slider .toscana-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease-in-out}
.toscana-slider .toscana-slide.active{opacity:1}
.experience-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.experience-item{margin:0;background:#fff;border-radius:18px;overflow:hidden;border:1px solid rgba(0,0,0,.05)}
.experience-item.wide{grid-column:span 2}
.experience-item img{display:block;width:100%;height:260px;object-fit:cover}
.experience-item.wide img{height:360px}
.experience-item figcaption{padding:12px 15px 14px;font-weight:700;font-size:14px}
@media(max-width:850px){.toscana-slider{height:240px}.experience-gallery{grid-template-columns:1fr 1fr}.experience-item.wide{grid-column:1/-1}}
@media(max-width:560px){.experience-gallery{grid-template-columns:1fr}.experience-item.wide{grid-column:auto}.experience-item img,.experience-item.wide img{height:240px}}

/* V10 — revisão final das imagens */

/* Foto da página Sobre: enquadramento que elimina a inscrição da parte inferior
   sem alterar o arquivo original. */
.professional-photo{
  overflow:hidden;
  background:#d9d1c6;
}
.professional-photo img,
.professional-photo .site-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 25%;
  transform:scale(1.03);
}

/* Galeria da página Sobre: linguagem mais artística e menos institucional */
.experience-gallery{
  gap:10px;
}
.experience-item.artistic{
  background:transparent !important;
  border:none !important;
  border-radius:16px;
  box-shadow:none !important;
  overflow:hidden;
}
.experience-item.artistic img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  display:block;
}
.experience-item.artistic.wide img{
  min-height:360px;
}
.experience-item.artistic figcaption{
  display:none !important;
}

/* Mantém as imagens técnicas da Index limpas e proporcionais */
.tech.photo-frame{
  background:#ece9e3;
}
.tech.photo-frame .site-photo{
  object-fit:cover;
  object-position:center;
}

/* V11 — revisão visual e novos cases */

/* Foto Gustavo na index */
.hero .professional-photo img,
.index-professional-photo img{
  object-fit:cover;
  object-position:center 30%;
}

/* Slideshows dos cases de loteamentos */
.case-media{
  position:relative;
  height:320px;
  overflow:hidden;
  background:#dedbd5;
}
.case-media > img.site-photo{
  width:100%;
  height:100%;
  object-fit:cover;
}
.case-slider .case-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.case-slider .case-slide.active{opacity:1}

/* Fundos fotográficos mais artísticos na página de loteamentos */
.lote-bg-soft,
.lote-bg-dark{
  position:relative;
  isolation:isolate;
  background-size:cover;
  background-position:center;
  background-attachment:scroll;
}
.lote-bg-soft{
  background-image:
    linear-gradient(rgba(245,241,234,.88),rgba(245,241,234,.88)),
    url("fotos/toscana_08.jpg");
}
.lote-bg-dark{
  background-image:
    linear-gradient(rgba(12,12,12,.68),rgba(12,12,12,.68)),
    url("fotos/toscana_10.jpg");
  color:#fff;
}
.lote-bg-dark h1,.lote-bg-dark h2,.lote-bg-dark h3,
.lote-bg-dark p,.lote-bg-dark .eyebrow,.lote-bg-dark strong{
  color:#fff;
}
.lote-bg-soft .container,
.lote-bg-dark .container{
  position:relative;
  z-index:1;
}
.lote-bg-dark .btn:not(.btn-light){
  border-color:#fff;
}
.lote-case .project-card-body{
  min-height:190px;
}

@media(max-width:850px){
  .case-media{height:250px}
}

/* Sobre: composição termina equilibrada com 8 imagens */
.experience-gallery{
  grid-auto-flow:dense;
}

/* V12 — revisão artística, cases e fundos fotográficos */

/* Página Sobre: mostra a fotografia dos tubos com menos corte/zoom */
.experience-item.show-full-image{
  background:#e9e3d9;
}
.experience-item.show-full-image img{
  object-fit:contain !important;
  object-position:center !important;
}

/* Cases de loteamentos */
.cases-destaque .card{
  overflow:hidden;
}
.cases-destaque .case-media{
  height:255px;
}
.marco-norte-feature{
  background:#f2eee7;
}
.project-feature-wide{
  align-items:center;
}
.project-feature-wide .photo-frame{
  min-height:430px;
}
.project-feature-wide .photo-frame img{
  height:430px;
  object-fit:cover;
}

/* Linguagem visual com fotografia de fundo */
.art-bg,
.art-page-hero{
  position:relative;
  isolation:isolate;
  background-size:cover;
  background-position:center;
}
.art-bg::before,
.art-page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
}
.art-bg > .container,
.art-page-hero > .container{
  position:relative;
  z-index:1;
}

/* INDEX */
.art-bg-index-soft{
  background-image:url("fotos/toscana_08.jpg");
  background-position:center 55%;
}
.art-bg-index-soft::before{background:rgba(244,239,231,.88)}
.art-bg-index-dark{
  background-image:url("fotos/corte_rocha.jpg");
}
.art-bg-index-dark::before{background:rgba(10,10,10,.72)}

/* INFRAESTRUTURA VIÁRIA */
.art-bg-viaria-soft{
  background-image:url("fotos/pavimentacao_2.jpg");
}
.art-bg-viaria-soft::before{background:rgba(244,239,231,.88)}
.art-bg-viaria-dark{
  background-image:url("fotos/corte_rocha.jpg");
}
.art-bg-viaria-dark::before{background:rgba(8,8,8,.72)}

/* SANEAMENTO */
.art-bg-saneamento-soft{
  background-image:url("fotos/ete_geral.jpg");
}
.art-bg-saneamento-soft::before{background:rgba(244,239,231,.89)}
.art-bg-saneamento-dark{
  background-image:url("fotos/estrutura_saneamento.jpg");
}
.art-bg-saneamento-dark::before{background:rgba(8,8,8,.72)}

/* SOBRE */
.art-bg-sobre-soft{
  background-image:url("fotos/toscana_11.jpg");
}
.art-bg-sobre-soft::before{background:rgba(244,239,231,.90)}
.art-bg-sobre-dark{
  background-image:url("fotos/toscana_10.jpg");
}
.art-bg-sobre-dark::before{background:rgba(8,8,8,.72)}

/* PROJETOS / CONTATO */
.art-bg-projetos{
  background-image:url("fotos/acesso_gavea_projeto.png");
  background-position:center;
}
.art-bg-projetos::before{background:rgba(244,239,231,.90)}
.art-bg-contato{
  background-image:url("fotos/toscana_08.jpg");
  background-position:center 60%;
}
.art-bg-contato::before{background:rgba(244,239,231,.89)}

/* Texto branco nos fundos escuros */
.art-bg-index-dark,
.art-bg-index-dark h2,
.art-bg-index-dark h3,
.art-bg-index-dark p,
.art-bg-index-dark .eyebrow,
.art-bg-viaria-dark,
.art-bg-viaria-dark h2,
.art-bg-viaria-dark h3,
.art-bg-viaria-dark p,
.art-bg-viaria-dark .eyebrow,
.art-bg-saneamento-dark,
.art-bg-saneamento-dark h2,
.art-bg-saneamento-dark h3,
.art-bg-saneamento-dark p,
.art-bg-saneamento-dark .eyebrow,
.art-bg-sobre-dark,
.art-bg-sobre-dark h2,
.art-bg-sobre-dark h3,
.art-bg-sobre-dark p,
.art-bg-sobre-dark .eyebrow{
  color:#fff !important;
}

@media(max-width:850px){
  .cases-destaque .case-media{height:230px}
  .project-feature-wide .photo-frame,
  .project-feature-wide .photo-frame img{min-height:300px;height:300px}
}

/* V13 — refinamentos de interação, tipografia e imagens */
.section p,.page-hero p,.hero-copy p,.project-body p,.card p,.feature-grid p,.contact-grid p,.cta-box p,.footer p,.legal-text p,.area-intro,.area-steps p{
  text-align:justify;
  text-justify:inter-word;
  hyphens:none !important;
  -webkit-hyphens:none !important;
  word-break:normal;
  overflow-wrap:normal;
}

/* Links: resposta visual inequívoca ao cursor */
a{transition:color .2s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease,transform .2s ease}
.nav a:hover,.text-link:hover,.footer a:hover,.contact-list a:hover{color:#8a6746}
.nav-cta:hover{background:#111;color:#fff !important;border-color:#111}
.text-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.text-link:hover{text-decoration-thickness:2px}
.footer a:hover{color:#d6b894}

/* Botões: tipografia e comportamento mais evidentes */
.btn{font-size:17px;font-weight:800;letter-spacing:.01em;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn-light:hover{background:#d6b894;color:#111;border-color:#d6b894}
.btn-primary:hover{background:#8a6746;border-color:#8a6746}
.btn-ghost:hover{background:#111;color:#fff;border-color:#111}
.cta-box .btn-light{font-size:20px;padding:16px 24px;box-shadow:0 8px 22px rgba(0,0,0,.16)}

/* Engenharia digital: novo render viário como fundo */
.art-bg-index-dark{
  background-image:url("fotos/engenharia_digital_fundo.jpg");
  background-position:center 48%;
}
.art-bg-index-dark::before{background:rgba(8,8,8,.70)}

/* Estrada Silva Gumercindo — fotos corretas */
.gumercindo-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0 18px}
.gumercindo-gallery .photo-frame{height:360px}
.gumercindo-gallery img{width:100%;height:100%;object-fit:cover}
@media(max-width:1000px){.gumercindo-gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gumercindo-gallery{grid-template-columns:1fr}.gumercindo-gallery .photo-frame{height:300px}}

/* A navegação por teclado deve ser visível. */
:focus-visible{outline:3px solid #9b6b30;outline-offset:3px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Ajustes pontuais aprovados em 06/10/2026. */
.hero-copy h1{font-size:clamp(38px,4.6vw,60px);line-height:1.08}
.stats .stats-grid span{font-size:15px;line-height:1.45}
.footer{position:relative;isolation:isolate}
.footer::before{content:"";position:absolute;inset:0;background:url("rodape_tracado_urbano.jpg") center/cover no-repeat;filter:grayscale(1);opacity:.045;pointer-events:none;z-index:-1}
.tech-grid .tech:first-child .site-photo{object-fit:contain;background:#dce5e5}
.tech-grid .tech:nth-child(2) .site-photo{object-position:50% 60%}
@media(max-width:650px){.hero-copy h1{font-size:clamp(34px,8.5vw,44px)}.stats .stats-grid span{font-size:14px}}

/* Ajustes pontuais de enquadramento, cabeçalho e leitura */
.logo-header{width:360px;max-height:74px}
.nav-wrap{gap:20px}
.brand{flex-shrink:0}
.nav{gap:18px;white-space:nowrap}
.stats .stats-grid span,.stats-grid.compact span{font-size:18px;line-height:1.4}
.tech-grid .tech:first-child .site-photo{object-fit:cover;object-position:50% 58%;background:transparent}
.tech-grid .tech:nth-child(2) .site-photo{object-fit:cover;object-position:center;transform:scale(1.4);transform-origin:center}
.page-loteamentos .lote-bg-dark .feature-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;text-align:center}
.page-loteamentos .lote-bg-dark .feature-grid h3{font-size:18px}
.page-loteamentos .lote-bg-dark .feature-grid p{text-align:center;font-size:14px}

.about-credentials{grid-template-columns:repeat(3,minmax(0,1fr))}
.cta-box .btn{flex-shrink:0;white-space:nowrap}
@media(min-width:851px) and (max-width:1100px){.logo-header{width:300px}.nav{gap:12px;font-size:13px}.nav-wrap{gap:12px}}
@media(max-width:850px){.logo-header{width:280px;max-height:64px}.nav{white-space:normal}.page-loteamentos .lote-bg-dark .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-credentials{grid-template-columns:1fr}.stats .stats-grid span,.stats-grid.compact span{font-size:17px}}
@media(max-width:480px){.logo-header{width:240px}.page-loteamentos .lote-bg-dark .feature-grid{grid-template-columns:1fr}}

.tech-grid .tech.photo-frame:first-child{min-height:0;aspect-ratio:4/3}

/* Revisão solicitada: títulos, fundos e marca */
.page-loteamentos .lote-bg-dark .feature-grid h3{text-align:center}
.page-loteamentos .lote-bg-soft{background-image:linear-gradient(rgba(245,241,234,.9),rgba(245,241,234,.9)),url("fotos/lote_novo_03.jpg")}
.page-loteamentos .lote-bg-dark{background-image:linear-gradient(rgba(12,12,12,.75),rgba(12,12,12,.75)),url("fotos/lote_novo_05.jpg")}
.page-saneamento .art-bg-saneamento-soft{background-image:url("fotos/san_novo_04.jpg");background-position:center 60%}
.page-saneamento .art-bg-saneamento-dark{background-image:url("fotos/san_novo_09.jpg")}
.page-saneamento .saneamento-areas .feature-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}
.page-saneamento .saneamento-areas .feature-grid h3,.page-saneamento .saneamento-areas .feature-grid p{text-align:center}
.page-saneamento .saneamento-areas .feature-grid h3{font-size:18px}
.page-saneamento .saneamento-areas .feature-grid p{font-size:14px}
.logo-header{width:540px;max-height:111px}
.nav-wrap{height:126px}
.nav{gap:14px}
.trentina-access,.pump-case{height:360px;border-radius:18px}
@media(max-width:1100px){.logo-header{width:420px;max-height:96px}.menu-btn{display:block}.nav{display:none;position:absolute;top:126px;left:0;right:0;background:#f7f3ed;padding:20px;flex-direction:column;align-items:flex-start}.nav.open{display:flex}}
@media(max-width:850px){.page-saneamento .saneamento-areas .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.logo-header{width:420px}}
@media(max-width:480px){.logo-header{width:min(360px,calc(100vw - 90px));max-height:96px}.page-saneamento .saneamento-areas .feature-grid{grid-template-columns:1fr}}

/* Margem comum para o topo e conteúdo de todas as páginas */
.page-hero > .container,.page-hero > .container.narrow{width:min(1160px,calc(100% - 40px));margin-inline:auto}
/* Mosaico decorativo no cabeçalho do portfólio */
.art-bg-projetos{background-image:none;overflow:hidden}
.projects-mosaic{position:absolute;inset:0;z-index:-2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px}
.projects-mosaic img{display:block;width:100%;height:100%;min-height:0;object-fit:cover}
.art-bg-projetos::before{background:rgba(245,241,234,.86)}
@media(max-width:650px){.projects-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}}

/* Revisão de outubro: escala e alinhamento comuns entre páginas */
.page-hero > .container{width:min(1160px,calc(100% - 40px));margin-inline:auto;padding-inline:0}
.about-page{font-size:16px}
.about-page .page-hero h1{font-size:clamp(44px,6vw,78px)}
.portfolio-intro h2{font-size:clamp(32px,4vw,52px);line-height:1.1;margin:18px 0 24px}
.art-bg-viaria-dark{background-image:url("fotos/gumercindo_03.jpg");background-position:center}

/* Textos introdutórios de loteamentos com a largura dos blocos abaixo */
.page-loteamentos .area-potential > .container > h2,
.page-loteamentos .area-potential > .container > .lead,
.page-loteamentos .area-potential > .container > .area-intro,
.page-loteamentos .urbanizador > .container > h2,
.page-loteamentos .urbanizador > .container > p{width:100%;max-width:none;text-wrap:wrap}

/* Escopo viário em duas linhas equilibradas e portfólio complementar */
.viaria-scope .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.viaria-scope .feature-grid h3,.viaria-scope .feature-grid p{text-align:center}
.other-projects .case-slider{height:460px;border-radius:18px;overflow:hidden}
.portfolio-total{display:flex;flex-direction:column;gap:4px;margin:28px 0}
.portfolio-total strong{font-size:clamp(44px,5vw,64px);line-height:1.05;color:var(--text)}
.portfolio-total span{font-size:20px;font-weight:700;color:var(--text)}
@media(max-width:850px){.viaria-scope .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.other-projects .case-slider{height:360px}}
@media(max-width:560px){.viaria-scope .feature-grid{grid-template-columns:1fr}.other-projects .case-slider{height:300px}}
