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

/* Tokens retirados do kit Elementor do site publicado (post-10.css / post-99.css). */
:root{
  --primary:#181C28;
  --secondary:#062439;
  --text:#767D8E;
  --accent:#24466C;
  --mint:#DDFFFE;
  --light:#F9F9FC;
  --menu-hover:#5689C3;
  --footer-card:#1F2330;
  --footer-text:#818997;
  --footer-line:#A0AABA2B;
  --wrap:1170px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--text);font:400 16px/1.5 Heebo,Arial,sans-serif}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit}
h1,h2,h3,h4,p,ul,dl,dd{margin-top:0}
h1,h2,h3,h4{font-family:'IBM Plex Sans',Arial,sans-serif;font-weight:600;color:var(--primary)}
h1{font-size:60px;line-height:1.1}h2{font-size:36px;line-height:1.2}h3{font-size:26px;line-height:1.3}h4{font-size:20px;line-height:1.3}
.wrap{width:min(var(--wrap),calc(100% - 40px));margin-inline:auto}
.section{padding:100px 0}
.skip-link{position:absolute;z-index:1000;left:10px;top:-100px;background:#fff;padding:8px;color:var(--primary)}
.skip-link:focus{top:10px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* Cabeçalho transparente sobre o banner, como no site publicado. */
.site-header{position:absolute;z-index:100;top:0;left:0;width:100%;color:#fff;border-bottom:1px solid #FFFFFF1C}
.nav-wrap{min-height:84px;display:flex;align-items:center;gap:28px}
.brand{display:inline-flex;flex:none}.brand img{width:184px}
.main-nav{display:flex;align-items:center;justify-content:center;flex:1;gap:36px}
.main-nav a{font:600 12px/1 'IBM Plex Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:1.3px;white-space:nowrap;transition:color .3s}
.main-nav a:hover,.main-nav a:focus-visible{color:var(--menu-hover)}
.phone-link{display:inline-flex;align-items:center;gap:13px;background:var(--accent);border-radius:5px;padding:15px 32px;font:600 12px/1 'IBM Plex Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:1.5px;color:#fff;white-space:nowrap;transition:background .3s,color .3s}
.phone-link svg{width:13px;height:13px}
.phone-link:hover{background:#fff;color:var(--accent)}
.menu-toggle{display:none}

/* Marcador dos rótulos (eyebrow): marca-texto na metade inferior, como no original. */
.eyebrow{display:inline-block;margin-bottom:20px;padding:10px 15px;border-radius:5px;color:var(--primary);font:600 14px/1.2 'IBM Plex Sans',Arial,sans-serif;letter-spacing:1.5px;text-transform:uppercase;background:linear-gradient(180deg,rgba(238,255,236,0) 54%,var(--mint) 20%)}
.eyebrow-light{color:#fff;background:linear-gradient(180deg,rgba(238,255,236,0) 54%,var(--accent) 20%)}

/* Botões: azul accent, raio 5px, maiúsculas; hover azul escuro. */
.button{display:inline-flex;align-items:center;justify-content:center;padding:20px 40px;border:0;border-radius:5px;background:var(--accent);color:#fff;text-align:center;font:600 14px/1 'IBM Plex Sans',Arial,sans-serif;letter-spacing:1.5px;text-transform:uppercase;transition:background .3s,color .3s}
.button:hover{background:var(--primary);color:#fff}
.button-dark{background:var(--secondary)}
.button-dark:hover{background:#fff;color:var(--secondary)}
.button-white{background:#fff;color:#191C27}
.button-white:hover{background:var(--secondary);color:#fff}
.button-cyan{background:#5bc0de}
.button-cyan:hover{background:#3fa9c9;color:#fff}
.button-gray{background:var(--text)}
.button-gray:hover{background:var(--primary);color:#fff}

/* Página inicial — hero com slideshow e sobreposição preta a 50%. */
.hero{position:relative;overflow:hidden;display:flex;align-items:center;color:#fff;background:var(--primary)}
.hero-slides{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;transform:translateX(-100%);transition:transform .5s ease-in-out;will-change:transform}
.hero-slide.is-active{transform:translateX(0);z-index:1}
.hero-slide.is-exiting{transform:translateX(100%);z-index:2}
.hero-slide-image{position:absolute;inset:0;background:var(--slide-image) center/cover no-repeat}
.hero-slide.is-active .hero-slide-image{animation:hero-ken-burns 9s linear both}
.hero::after{content:"";position:absolute;z-index:3;inset:0;background:rgba(0,0,0,.5);pointer-events:none}
.hero-content{position:relative;z-index:4;padding:260px 0 220px}
.hero h1{margin:0 0 22px;color:#fff;text-transform:uppercase}
.hero p{max-width:500px;margin:0;color:#fff;font-size:16px}
.hero-actions{display:flex;gap:30px;margin-top:33px}
.hero-actions .button{width:182px;min-height:69px;padding:15px 40px}
.hero-actions .button-white{width:158px}
@keyframes hero-ken-burns{from{transform:scale(1)}to{transform:scale(1.09)}}

/* Faixa de contato da home e cartão de vídeo que sobrepõe o hero. */
.intro-contact{background:#fff;padding:40px 0}
.contact-intro-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:start}
.contact-detail{display:flex;align-items:flex-start;gap:20px;padding-top:35px}
.line-icon{display:flex;align-items:center;justify-content:center;flex:none;color:var(--accent)}
.line-icon svg{width:42px;height:42px}
.contact-detail h2{font-size:20px;margin-bottom:10px}
.contact-detail p{font-size:16px;line-height:1.65;margin:0}
.contact-detail a:hover{color:var(--accent)}
.intro-video{position:relative;z-index:5;margin-top:-155px;min-height:300px;padding:40px;color:#fff;background:var(--secondary);border-radius:10px;transition:transform .3s}
.intro-video:hover{transform:translateY(-4px)}
.intro-video h2{margin:18px 0 14px;color:#fff;font-size:30px}
.intro-video p{color:#C4C4C4;font-size:16px}
.play-badge{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#fff;color:var(--accent);box-shadow:0 0 0 10px #FFFFFF7D}
.play-badge svg{width:18px;height:18px;margin-left:2px}
.video-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:#fff;font:600 14px/1 'IBM Plex Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:1.5px}
.intro-video:hover .video-link{color:var(--menu-hover)}

/* Seção Sobre da home com par de fotos e caixa de contadores. */
.home-about{padding-top:120px;padding-bottom:100px}
.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.photo-stack{position:relative;min-height:640px}
.photo-main{width:100%;height:620px;object-fit:cover;border-radius:10px}
.photo-detail{position:absolute;left:0;bottom:0;width:43%;height:325px;object-fit:cover;border:15px solid #fff;border-left:0;border-bottom:0;border-radius:0 14px 0 0}
.home-about-copy{padding-top:30px}
.home-about-copy h2{margin:0 0 22px}
.home-about-copy>p{margin-bottom:30px}
.stats-box{padding:30px 24px 35px;background:var(--light);border-left:5px solid var(--accent);border-radius:10px;text-align:center}
.stats-box>div{margin-bottom:22px}
.stats-box strong{display:block;color:var(--text);font:600 41px/1.2 'IBM Plex Sans',Arial,sans-serif}
.stats-box span{color:var(--text);font-size:15px}
.stats-box .button{margin-top:6px}

/* Carrossel de clientes: logotipos esmaecidos ganham cor no hover. */
.clients-section{padding:35px 0 90px;background:#fff}
.clients-title{margin-bottom:25px}
.clients-shell{position:relative}
.client-track{display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.client-track::-webkit-scrollbar{display:none}
.client-logo{flex:0 0 calc((100% - 150px)/6);min-width:130px;height:110px;display:flex;align-items:center;justify-content:center;scroll-snap-align:start}
.client-logo img{max-width:100%;max-height:70px;object-fit:contain;opacity:.58;transition:opacity .3s}
.client-logo img:hover{opacity:1}
.carousel-arrows{display:flex;justify-content:space-between;margin-top:25px}
.carousel-arrow{width:54px;height:40px;border:0;border-radius:5px;background:var(--primary);color:#fff;font:600 22px/1 'IBM Plex Sans',Arial,sans-serif;cursor:pointer;transition:background .3s}
.carousel-arrow:hover{background:var(--accent)}

/* Seção de serviços da home: painel escuro + coluna com a foto da torre. */
.home-services{display:grid;grid-template-columns:1fr 1fr;min-height:900px}
.services-panel{background:var(--primary);color:#fff;padding:9% max(40px,calc((100vw - var(--wrap))/2)) 8% max(40px,calc((100vw - var(--wrap))/2));padding-right:55px;border-radius:0 20px 0 0}
.services-panel h2{max-width:530px;margin-bottom:24px;color:#fff}
.services-panel .lead{max-width:510px;color:#C4C4C4;margin-bottom:36px}
.services-image{background:url('../img/Imagem-torre-connect-1.jpg') center/cover;border-radius:0 0 0 20px}
.service-teasers{display:grid;grid-template-columns:1fr 1fr;gap:30px 45px;max-width:560px}
.service-teasers h3{color:#fff;font-size:22px;margin:15px 0 10px}
.service-teasers p{color:#C4C4C4;font-size:15px;line-height:1.58;margin:0}
.icon-tile{display:flex;align-items:center;justify-content:center;width:68px;height:68px;background:var(--accent);color:#fff;border-radius:5px;font:600 34px/1 'IBM Plex Sans',Arial,sans-serif}
.icon-light{background:#fff;color:var(--accent)}
.services-panel>.button{margin-top:32px}

/* Projetos na home. */
.home-projects{padding-top:100px;padding-bottom:100px}
.projects-heading{display:grid;grid-template-columns:1.2fr 1.3fr auto;gap:50px;align-items:center;margin-bottom:45px}
.projects-heading h2{margin:0}
.projects-heading p{margin:25px 0 0;max-width:440px}
.projects-heading .button{padding:18px 32px}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.project-card{background:#fff;border-radius:10px;box-shadow:0 3px 15px rgba(0,0,0,.1);overflow:hidden}
.project-photo{display:block;overflow:hidden}
.project-photo img{width:100%;height:250px;object-fit:cover;transition:transform .3s}
.project-card:hover .project-photo img{transform:scale(1.035)}
.project-card-body{padding:30px 32px}
.project-card-body h3{font-size:22px;margin:0 0 8px;white-space:nowrap}
.project-card-body p{font-size:16px;line-height:1.45;margin:0 0 12px}
.project-more{color:var(--accent);font:600 12px/1 'IBM Plex Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap}
.project-more span{font-size:16px;margin-left:4px}
.project-more:hover{text-decoration:underline}

/* Faixa parallax escura e cartão de contato que a sobrepõe. */
.parallax-band{height:460px;background:linear-gradient(rgba(24,28,40,.93),rgba(24,28,40,.93)),url('../img/torre-predio-connect.jpg') center/cover fixed}
.contact-card-section{position:relative;z-index:4;margin-top:-300px;margin-bottom:90px}
.contact-card{display:grid;grid-template-columns:48.5% 51.5%}
.contact-card-image{display:flex;flex-direction:column;justify-content:flex-end;min-height:430px;padding:50px 40px;color:#fff;text-align:center;background:linear-gradient(180deg,rgba(24,28,40,0) 9%,var(--primary) 100%),url('../img/fale-conosco-connect.jpg') 55% 86%/cover;border-radius:10px 0 0 10px;box-shadow:0 5px 30px rgba(0,22,20,.11)}
.contact-card-image h2{margin-bottom:18px;color:#fff;font-size:30px}
.contact-card-image p{margin:0;color:#fff;line-height:1.8}
.contact-card-image a:hover{text-decoration:underline}
.contact-card-blank{background:#fff;border-radius:0 10px 10px 0;box-shadow:0 5px 30px rgba(0,22,20,.11)}

/* Banner das páginas internas: foto 2.jpg com sobreposição #181C28 a 90%. */
.page-banner{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:var(--primary)}
.page-banner::before{content:"";position:absolute;inset:0;background:var(--banner-image) var(--banner-position,0 28%)/cover no-repeat}
.page-banner::after{content:"";position:absolute;inset:0;background:rgba(24,28,40,.9)}
.page-banner .wrap{position:relative;z-index:1;padding:200px 0 140px}
.page-banner h1{margin:0 0 14px;color:#fff;font-size:36px}
.breadcrumb{margin:0;color:#fff;font-size:16px}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb span{color:var(--accent);font-weight:600;padding:0 10px}

/* Serviços: galeria de portfólio — colunas altas, foto muda ao passar o mouse. */
.service-tabs{position:relative;overflow:hidden;background:var(--secondary);color:#fff}
.service-tabs::before{content:"";position:absolute;inset:0;background:url('../img/projeto-basico-1.jpg') center/cover;z-index:0}
.service-tabs-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr)}
.service-tab{position:relative;min-height:90vh;padding:0;border-right:1px solid rgba(255,255,255,.3);transition:background .4s}
.service-tab:last-child{border-right:0}
.service-tab-bg{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .7s;background:var(--tab-image) center/cover}
.service-tab:hover .service-tab-bg{opacity:1}
.service-tab-info{position:relative;z-index:2;padding:40px 10px 40px 20px;transition:color .4s}
.service-tab-info small{display:block;margin-bottom:10px;font:400 11px/1.6 'IBM Plex Sans',Arial,sans-serif;letter-spacing:4px;text-transform:uppercase;color:#fff;transition:color .4s}
.service-tab-info strong{display:block;color:#fff;font:600 21px/1.3 'IBM Plex Sans',Arial,sans-serif;transition:color .4s}
.service-tab-info::after{content:"";position:absolute;top:0;left:0;width:100%;height:0;background:#fff;z-index:-1;transition:height .4s}
.service-tab:hover .service-tab-info::after{height:100%}
.service-tab:hover .service-tab-info small,.service-tab:hover .service-tab-info strong{color:var(--primary)}
.service-tab-more{position:absolute;bottom:0;left:0;z-index:2;width:100%;padding:25px;font:600 13px/1 'IBM Plex Sans',Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(20%);transition:opacity .4s,transform .4s}
.service-tab:hover .service-tab-more{opacity:1;transform:translateY(0)}
.service-tab:focus-within .service-tab-bg{opacity:1}
.service-tab:focus-within .service-tab-more{opacity:1;transform:translateY(0)}
.service-tab-more span{margin-left:6px}
.service-capabilities{padding:75px 0}
.capabilities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px}
.capabilities-grid>div{display:flex;gap:22px}
.capabilities-grid span{color:var(--accent);font:600 43px/1 'IBM Plex Sans',Arial,sans-serif}
.capabilities-grid p{margin:0;font-size:16px}
.capabilities-grid strong{display:block;color:var(--primary);font:600 20px 'IBM Plex Sans',Arial,sans-serif;margin-bottom:4px}
.service-details{padding-top:20px}
.service-row{display:grid;grid-template-columns:44% 1fr;gap:80px;align-items:center;margin-bottom:65px;scroll-margin-top:40px}
.service-row:last-child{margin-bottom:0}
.service-row:nth-child(even) img{order:2}
.service-row img{width:100%;height:310px;object-fit:cover;border-radius:10px}
.service-row h2{font-size:26px;margin-bottom:20px}
.service-row p{font-size:16px;line-height:1.8;margin:0}

/* Chamada "vamos conversar?" das páginas internas. */
.talk-cta{position:relative;margin-bottom:-60px;color:#fff;text-align:center;background:var(--primary)}
.talk-cta::before{content:"";position:absolute;inset:0;background:var(--cta-image,url('../img/WhatsApp-Image-2022-05-11-at-11.56.14-1.jpeg')) 0 16%/cover no-repeat}
.talk-cta::after{content:"";position:absolute;inset:0;background:rgba(24,28,40,.85)}
.talk-cta-inner{position:relative;z-index:1;padding:100px 0}
.talk-cta h2{margin-bottom:20px;color:#fff}
.talk-cta p{max-width:760px;margin:0 auto 32px;color:#fff}
.talk-cta .button{padding:22px 45px}

/* Página Projetos: as fotos revelam as informações ao passar o mouse ou receber foco. */
.projects-heading-center{max-width:640px;margin:0 auto 45px;text-align:center}
.projects-heading-center p{margin:15px 0 0}
h2.h2-capitalize{text-transform:capitalize}
.overlay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.overlay-card{position:relative;border-radius:10px;overflow:hidden;background:var(--primary)}
.overlay-card a{display:block;position:relative;color:#fff}
.overlay-card img{width:100%;height:380px;object-fit:cover;transition:transform .3s}
.overlay-card:hover img{transform:scale(1.04)}
.overlay-card-body{position:absolute;left:0;right:0;bottom:0;display:block;padding:70px 28px 26px;background:linear-gradient(180deg,rgba(24,28,40,0) 0%,rgba(24,28,40,.92) 60%);opacity:0;transform:translateY(20%);transition:opacity .4s,transform .4s}
.overlay-plus{position:absolute;right:22px;bottom:22px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;font:600 26px/1 'IBM Plex Sans',Arial,sans-serif;transition:background .3s}
.overlay-card:hover .overlay-card-body,.overlay-card:focus-within .overlay-card-body{opacity:1;transform:translateY(0)}
.overlay-card:hover .overlay-plus,.overlay-card:focus-within .overlay-plus{opacity:1;transform:translateY(0)}
.overlay-plus{opacity:0;transform:translateY(20%);transition:opacity .4s,transform .4s,background .3s}
.overlay-card:hover .overlay-plus{background:#fff;color:var(--accent)}
.overlay-voltage{display:block;font:600 22px/1.3 'IBM Plex Sans',Arial,sans-serif;color:#fff}
.overlay-km{display:block;margin-top:4px;color:#C4C4C4;font-size:14px}
.overlay-name{display:block;margin-top:8px;color:#fff;font-size:16px}
.other-projects-link{align-self:center}
.other-projects-link h3{margin-bottom:22px;font-size:26px}

/* Acordeão de serviços da página Projetos (sem JavaScript). */
.project-services-image{height:520px;border-radius:10px;background:url('../img/IMG_AB0B94B64963-1.jpeg') 35% 0%/cover no-repeat}
.service-accordion{display:grid;gap:14px;margin-top:12px}
.service-accordion details{background:#fff;border:1px solid #E6E9ED;border-radius:10px;box-shadow:0 2px 8px rgba(24,28,40,.06);transition:box-shadow .3s}
.service-accordion details[open]{box-shadow:0 6px 18px rgba(24,28,40,.12)}
.service-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;cursor:pointer;color:var(--primary);font:600 18px/1.3 'IBM Plex Sans',Arial,sans-serif;list-style:none}
.service-accordion summary::-webkit-details-marker{display:none}
.service-accordion summary::after{content:"";flex:none;width:11px;height:11px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);transition:transform .3s}
.service-accordion details[open] summary::after{transform:rotate(-135deg)}
.service-accordion summary:hover{color:var(--accent)}
.service-accordion details p{margin:0;padding:0 26px 24px;line-height:1.8}

/* Página Sobre. */
.about-intro{padding-top:100px}
.about-large-photo{width:100%;height:880px;object-fit:cover;border-radius:10px}
.about-intro h2{margin-bottom:22px}
.about-intro p{font-size:16px;line-height:1.8}
.values-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:30px}
.values-grid article{display:flex;gap:20px}
.values-grid article h3{margin:0 0 8px;font-size:22px}
.values-grid article p{margin:0;font-size:15px}
.check-list{margin:0;padding:0;list-style:none;color:var(--text);font-size:15px}
.check-list li{padding-left:24px;position:relative;margin-bottom:6px}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:600}
.video-tile{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;min-height:205px;padding:22px;color:#fff;text-align:center;border-radius:10px;background:linear-gradient(rgba(24,28,40,.78),rgba(24,28,40,.78)),url('../img/torre-predio-connect.jpg') center/cover;transition:transform .3s}
.video-tile:hover{transform:translateY(-4px)}
.video-tile h4{margin:0;color:#fff;font-size:18px}
.experience{position:relative;padding:100px 0;color:#fff;text-align:center;background:var(--primary)}
.experience::before{content:"";position:absolute;inset:0;background:url('../img/IMG_62F3D0850B83-1.jpeg') 0 16%/cover no-repeat}
.experience::after{content:"";position:absolute;inset:0;background:rgba(24,28,40,.85)}
.experience .wrap{position:relative;z-index:1}
.experience h2{color:#fff}
.experience .wrap>p{color:#C4C4C4;max-width:620px;margin:0 auto 45px}
.experience-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}
.experience-stats>div{background:#fff;border-radius:10px;padding:25px 20px}
.experience-stats strong{display:block;color:var(--primary);font:600 39px/1.2 'IBM Plex Sans',Arial,sans-serif}
.experience-stats span{color:var(--text);font-size:15px}
.gptw-grid{display:grid;grid-template-columns:1fr 1.4fr .6fr;gap:45px;align-items:center}
.gptw-grid h2{margin:0}
.gptw-grid p{line-height:1.8;margin:0}
.gptw-grid img{width:131px;justify-self:center}
.about-history{padding-top:40px}
/* Página Sobre: ícones da missão/visão/valores e da ficha técnica em SVG. */
.line-icon-svg{display:block;flex:none;color:var(--accent)}
.line-icon-svg svg{width:42px;height:42px}
.values-grid article .line-icon-svg svg{width:36px;height:36px}
.history-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.history-photos a{display:block;overflow:hidden;border-radius:10px}
.history-photos img{width:100%;height:230px;object-fit:cover;transition:transform .3s}
.history-photos a:hover img{transform:scale(1.04)}
.about-history p{line-height:1.9}

/* Página Outros Projetos. */
.other-projects-title{margin-bottom:10px;font-size:26px}
.table-wrap{overflow:auto;margin-top:30px}
table{border-collapse:collapse;width:100%;min-width:650px}
th{text-align:left;background:var(--secondary);color:#fff;padding:17px;font:600 14px 'IBM Plex Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:1.3px}
td{padding:15px 17px;border-bottom:1px solid #E6E9ED;color:var(--text)}
tr:nth-child(even) td{background:var(--light)}

/* Página individual de projeto. */
.project-detail{padding:100px 0}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}
.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.project-gallery a{display:block;overflow:hidden;border-radius:10px}
.project-gallery img{width:100%;height:260px;object-fit:cover;transition:transform .3s}
.project-gallery a:hover img{transform:scale(1.04)}
.project-facts{margin:0}
.project-facts>div{display:flex;align-items:flex-start;gap:24px;margin-bottom:22px}
.line-icon-svg svg{width:42px;height:42px}
.project-facts .line-icon-svg{flex:none;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--secondary)}
.project-facts .line-icon-svg svg{width:26px;height:26px;color:#fff}
.project-facts dt{font:600 21px 'IBM Plex Sans',Arial,sans-serif;color:var(--primary);margin:0 0 7px}
.project-facts dd{margin:0;color:var(--text);font-size:16px}
.not-found{text-align:center;min-height:300px}

/* Rodapé: fundo #181C28 com textura solar a 1% e cartão #1F2330 sobreposto. */
.site-footer{position:relative;margin-top:50px;background:var(--primary);color:#fff;padding:0 0 20px}
.site-footer::before{content:"";position:absolute;inset:0;background:url('../img/green-energy-solar-energy-panel-everywhere-in-our-city-for-make-our-planet-health-place.jpg') center/cover;opacity:.01;pointer-events:none}
.footer-grid{position:relative;display:grid;grid-template-columns:1.2fr 1fr .7fr 1.2fr;gap:50px}
.footer-card{background:var(--footer-card);border-radius:10px;margin-top:-50px;padding:50px 40px}
.footer-brand img{width:180px}
.footer-card p{margin:18px 0 0;color:var(--footer-text);font-size:15px}
.footer-contacts a{color:#fff;font-size:15px;line-height:2}
.footer-contacts a:hover{color:var(--menu-hover)}
.footer-contacts svg{width:14px;height:14px;margin-right:10px;vertical-align:-2px}
.footer-links h2,.footer-address h2{margin:0 0 22px;color:#fff;font-size:20px}
.footer-links,.footer-address{padding-top:35px}
.footer-links a{display:block;color:#fff;font-size:15px;margin:0 0 10px;transition:color .3s}
.footer-links a:hover{color:var(--accent)}
.gptw-footer{padding-top:35px}
.gptw-footer img{width:131px}
.footer-address p{color:var(--footer-text);font-size:15px;line-height:1.8;margin:0 0 8px}
.social{display:flex;gap:15px;margin-top:24px}
.social a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent);border-radius:5px;color:#fff;transition:background .3s,color .3s}
.social a svg{width:16px;height:16px}
.social a:hover{background:#fff;color:var(--accent)}
.footer-bottom{position:relative;display:flex;justify-content:space-between;margin-top:60px;padding-top:25px;border-top:1px solid var(--footer-line);color:var(--footer-text);font-size:14px}
.footer-bottom a{color:inherit}
.footer-bottom a:hover{color:#fff}

body{overflow-x:clip}

/* Responsividade: pontos de quebra do site original (1024px e 767px). */
@media(max-width:1024px){
  .main-nav{gap:20px}.brand img{width:160px}.phone-link{padding:13px 18px}
  .service-tabs{display:none}
  .services-panel{padding:70px 48px}
  .detail-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .nav-wrap{min-height:76px}
  .menu-toggle{display:flex;flex-direction:column;gap:5px;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer}
  .menu-toggle span{display:block;width:25px;height:2px;background:#fff}
  .main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--primary);padding:25px 28px;flex-direction:column;align-items:flex-start;gap:18px}
  .main-nav.open{display:flex}.main-nav a{font-size:13px}
  .phone-link{display:none}
  .contact-intro-grid{grid-template-columns:1fr 1fr}
  .intro-video{grid-column:1/-1;margin-top:20px;min-height:0}
  .contact-detail{padding-top:15px}
  .two-columns{gap:35px}
  .photo-stack,.photo-main{min-height:0;height:520px}.photo-detail{height:230px}
  .home-services{grid-template-columns:1fr}.services-image{min-height:480px}
  .project-grid,.overlay-grid{grid-template-columns:repeat(2,1fr)}
  .projects-heading{gap:20px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-card{grid-template-columns:1fr}
  .contact-card-image{border-radius:10px 10px 0 0;padding:80px 30px 35px}
  .contact-card-blank{border-radius:0 0 10px 10px;min-height:40px}
  .service-row{gap:35px}
  .about-large-photo{height:650px}
}
@media(max-width:767px){
  body{font-size:14px}
  h1{font-size:30px}h2{font-size:24px}h3{font-size:20px}h4{font-size:16px}
  .section{padding:70px 0}
  .hero-content{padding:140px 20px 80px}
  .hero p{max-width:100%;font-size:15px}
  .hero-actions{gap:12px}.hero-actions .button{padding:16px 22px}
  .contact-intro-grid,.two-columns,.projects-heading,.capabilities-grid,.service-row,.gptw-grid,.values-grid{grid-template-columns:1fr}
  .home-about{padding-top:70px}
  .photo-stack,.photo-main{height:430px}.photo-detail{height:190px}
  .stats-box strong{font-size:34px}
  .client-logo{flex-basis:44%;min-width:135px}
  .services-panel{padding:60px 24px}
  .service-teasers{grid-template-columns:1fr}
  .services-image{min-height:340px}
  .projects-heading p{margin-top:0}
  .project-grid,.overlay-grid{grid-template-columns:1fr}
  .parallax-band{height:320px}
  .contact-card-section{margin-top:-180px;margin-bottom:60px}
  .page-banner .wrap{padding:150px 0 80px}
  .page-banner h1{font-size:28px}
  .service-capabilities{padding:55px 0}
  .capabilities-grid{gap:25px}
  .service-row:nth-child(even) img{order:0}
  .service-row img{height:240px}
  .talk-cta-inner{padding:70px 0}
  .overlay-card img{height:340px}
  .about-large-photo{height:430px}
  .experience-stats{grid-template-columns:1fr;gap:15px}
  .gptw-grid img{justify-self:start}
  .history-photos img{height:200px}
  .footer-grid{grid-template-columns:1fr;gap:0}
  .footer-card{margin-top:-40px;margin-bottom:35px}
  .footer-links,.footer-address,.gptw-footer{padding-top:25px}
  .footer-bottom{flex-direction:column;gap:4px;margin-top:40px}
  .project-facts dt{font-size:18px}
}

/* Animações de entrada, respeitando a preferência por movimento reduzido. */
.motion-ready [data-reveal]{opacity:0}
.motion-ready [data-reveal].is-visible{opacity:1;animation-duration:1.25s;animation-timing-function:ease;animation-fill-mode:both;animation-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal="left"].is-visible{animation-name:reveal-from-left}
.motion-ready [data-reveal="right"].is-visible{animation-name:reveal-from-right}
.motion-ready [data-reveal="up"].is-visible{animation-name:reveal-from-bottom}
@keyframes reveal-from-left{from{opacity:0;transform:translate3d(-60px,0,0)}to{opacity:1;transform:none}}
@keyframes reveal-from-right{from{opacity:0;transform:translate3d(60px,0,0)}to{opacity:1;transform:none}}
@keyframes reveal-from-bottom{from{opacity:0;transform:translate3d(0,60px,0)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important}
  .hero-slide{transition:none!important}
  .hero-slide.is-active .hero-slide-image{animation:none!important}
  .motion-ready [data-reveal]{opacity:1!important;transform:none!important;animation:none!important}
  .client-track{scroll-behavior:auto}
}
