/* ==========================================================================
   PRODUCTION BUILD - V3 (FIXED MOBILE CARDS)
   Lógica: Info visível por padrão, oculta apenas em Hover-capable devices.
   ========================================================================== */

:root { --g:#18B025; --o:#e76f28; --marquee-speed: 28s; }
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }

/* BASE RESET */
html,body { background:#fff; font-family:system-ui, -apple-system, sans-serif; overflow-x:hidden; line-height:1; }
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }
ol,ul { list-style:none; }
blockquote,q { quotes:none; }
blockquote:before,blockquote:after,q:before,q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }
img,video { max-width:100%; height:auto; display:block; }

/* SELECTOR MATCHING */
:is(#hero video,#hero .bg,.project-card img,.modal__hero video) { width:100%; height:100%; object-fit:cover; }
:is(#hero video,#hero .bg,.overlay,.project-card img) { position:absolute; inset:0; }
:is(#hero,#logo-bar,.modal__gallery-media,.btn-more,.footer__social-link) { display:flex; align-items:center; justify-content:center; }
:is(#hero-arrow,.card,.info-btn,.modal__close,.modal__nav button,.btn-more__icon,.nav__arrow) { display:grid; place-items:center; }
:is(#hero-arrow,.info-btn,.modal__close,.modal__nav button,.modal__dot,.btn-more__icon,.footer__social-link,.nav__arrow) { border-radius:50%; }
:is(#hero-arrow,.info-btn,.modal__close,.modal__nav button,.modal__dot,.btn-more) { border:none; cursor:pointer; outline:none; }
:is(#hero-arrow svg,.info-btn svg,.modal__close svg,.modal__nav svg,.btn-more__icon svg,.jardim__img-text,.nav__arrow svg) { pointer-events:none; }
:is(.env__body h3,.services_card h3,.info-text h3) { font-weight:700; margin-bottom:.5rem; }
:is(.env__seal,.card img) { max-width:100%; max-height:48px; object-fit:contain; }
:is(.nav__logo,.card img) { filter:brightness(0) invert(1); }

:focus:not(:focus-visible) { outline:none; }
:focus-visible { outline:2px solid var(--g); outline-offset:4px; border-radius:2px; }

/* NAV */
.nav { position:absolute; inset:0 0 auto; z-index:50; display:flex; align-items:center; justify-content:center; padding:3rem 0 1rem; gap:2rem; background-image:linear-gradient(to bottom,#000,transparent); }
.nav__logo { width:clamp(90px,12vw,140px); flex-shrink:0; }
.nav__links { display:flex; align-items:center; gap:1rem; }
:is(.nav__link,.nav__cta) { font-size:.8rem; color:#fff; text-decoration:none; letter-spacing:.02em; }
.nav__link { opacity:.85; transition:opacity .18s; }
.nav__link:hover { opacity:1; }
.nav__cta { display:inline-flex; align-items:center; gap:.75rem; font-weight:bold; white-space:nowrap; }
.nav__arrow { width:1.5rem; height:1.5rem; background:var(--o); flex-shrink:0; transition:transform .22s cubic-bezier(.16,1,.3,1); }
.nav__arrow svg { width:1rem; height:1rem; color:#fff; }
.nav__cta:hover .nav__arrow { transform:translateX(5px); }

/* HERO */
#hero { position:relative; width:100%; height:100dvh; overflow:hidden; contain:paint; }
#hero.hero--header { height:20rem; }
#hero .overlay { background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.65)); z-index:1; }
#hero.hero--header .overlay { background-color:rgba(0,0,0,.4); }
#hero-center { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:1.4rem; text-align:center; padding:0 2rem; }
#hero-center img { width:clamp(100px,18vw,200px); }
#hero-center h1 { font-weight:400; font-size:clamp(1.4rem,4vw,3rem); line-height:1.2; color:#fff; }
#hero-arrow { position:absolute; left:50%; bottom:2rem; z-index:2; width:2rem; height:2rem; background:var(--o); animation:bob 2s ease-in-out infinite; translate:-50% 0; will-change:transform; }
#hero-arrow svg { width:1rem; height:1rem; color:#fff; }
@keyframes bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

/* PARTNERS */
#logo-bar { background:var(--g); height:76px; gap:3rem; padding:0 clamp(1.5rem,6vw,5rem); overflow:hidden; }
.sep { width:1px; height:28px; background:rgba(255,255,255,.18); flex-shrink:0; }
.logo-slot { flex-shrink:0; opacity:.7; transition:opacity .18s; }
.logo-slot:hover { opacity:1; }
#partners { overflow:hidden; padding:3rem 0; mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); -webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); contain:paint; }
.track { display:flex; gap:1rem; width:max-content; animation:scroll var(--marquee-speed) linear infinite; will-change:transform; }
#partners:hover .track { animation-play-state:paused; }
.card { flex-shrink:0; width:180px; height:80px; background:var(--o); border-radius:.75rem; padding:0 1.2rem; }
@keyframes scroll { to { transform:translateX(-50%); } }

/* JARDIM */
#jardim { margin:4rem 0 5rem; contain:content; content-visibility:auto; }
.jardim__title-wrap { padding-bottom:3rem; text-align:center; }
.jardim__title { font-size:1.5rem; font-weight:700; color:var(--o); letter-spacing:-1px; }
.jardim__imgs { display:flex; gap:.2rem; margin-bottom:1rem; filter:drop-shadow(0 0 .3rem rgba(0,0,0,.3)); justify-content:center; flex-wrap:wrap; }
.jardim__img-wrap { position:relative; display:inline-flex; flex-direction:column; align-items:center; transition:transform .4s cubic-bezier(.16,1,.3,1),filter .4s; animation:idleFloat 3s ease-in-out infinite; will-change:transform,filter; }
.jardim__img-wrap:nth-child(2) { animation-delay:-1s; }
.jardim__img-wrap:nth-child(3) { animation-delay:-2s; }
.jardim__img-wrap:hover { transform:translateY(-.5rem); filter:drop-shadow(0 0rem .5rem rgba(0,0,0,.3)) brightness(1.08); }
.jardim__img-wrap::after { content:''; position:absolute; inset:0; border-radius:1rem; background:radial-gradient(circle at 50% 0,rgba(255,255,255,.18),transparent 70%); opacity:0; transition:opacity .4s; pointer-events:none; }
.jardim__img-wrap:hover::after { opacity:1; }
.jardim__img { width:6.7rem; transition:transform .4s cubic-bezier(.16,1,.3,1); }
.jardim__img-wrap:hover .jardim__img { transform:scale(1.06); }
.jardim__img-text { position:absolute; top:73%; left:50%; transform:translate(-50%,-50%); font-size:.5rem; color:#fff; text-align:center; width:90%; line-height:.6rem; }
@keyframes idleFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

/* PORTFOLIO PREVIEW - MOBILE FIRST LOGIC */
#preview { display:flex; flex-direction:column; align-items:center; margin-top:5rem; }
.projects { display:grid; grid-template-columns:repeat(3,420px); justify-content:center; gap:.8rem; width:100%; }
.project-card { position:relative; width:420px; height:300px; overflow:hidden; cursor:pointer; transition:border-radius .35s; contain:paint; border-radius:0.75rem; }
.project-card img { transition:transform .45s cubic-bezier(0.16, 1, 0.3, 1); will-change:transform; }

/* Overlay & Info: Visíveis por padrão para Mobile/Touch */
.project-card .overlay { 
  z-index:1; 
  background: linear-gradient(0deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.3) 60%, transparent 100%);
  transition: background .35s;
}

.info { 
  position:absolute; 
  inset:auto 0 0 0; 
  padding:1.4rem 1.2rem; 
  display:flex; 
  align-items:flex-end; 
  justify-content:space-between; 
  gap:1rem; 
  opacity:1; /* Visível no mobile */
  transform:translateY(0); 
  transition:opacity .3s, transform .3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index:2;
}

/* Lógica exclusiva para Desktop (Dispositivos com Hover) */
@media (hover: hover) {
    .project-card { border-radius: 0; }
    .info { opacity:0; transform:translateY(12px); }

    /* Ativar efeitos apenas no hover */
    .project-card:hover { border-radius:1rem; }
    .project-card:hover img { transform:scale(1.1); }
    .project-card:hover .overlay { background:linear-gradient(0deg,rgba(30,90,55,1),rgba(30,90,55,.3) 35%,transparent); }
    .project-card:hover .info { opacity:1; transform:translateY(0); }
}

.info-text h3 { font-size:1.05rem; color:#fff; line-height:1.2; }
.info-text p { font-size:.78rem; color:rgba(255,255,255,.82); line-height:1.4; }
.info-btn { flex-shrink:0; width:40px; height:40px; background:var(--o); transition:background .18s,transform .18s; }
.info-btn:hover { background:#cf5f1a; transform:scale(1.08); }
.info-btn svg { width:18px; height:18px; color:#fff; }

/* RESTANTE DO CÓDIGO (Environment, Services, Modal, Footer, About, Media Queries) */
#environment { padding:2.5rem; background:#f7f3ec; margin-bottom:1rem; contain:content; }
#environment a { text-decoration: none; color:var(--g) }
.env__label { text-align:center; font-size:1rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--o); margin-bottom:2.5rem; }
.env__grid { display:flex; align-items:flex-start; gap:2rem; justify-content:center; }
.env__divider { width:1px; align-self:stretch; background:rgba(0,0,0,.1); flex-shrink:0; }
.env__card { display:flex; flex-direction:column; gap:2rem; }
.env__body h3 { font-size:1.3rem; color:#111; }
.env__body p { font-size:.82rem; color:#555; line-height:1.65; max-width:38ch; margin-bottom:1rem; }

#services { display:grid; grid-template-columns:repeat(2,minmax(0,420px)); justify-content:center; gap:2.5rem; margin-top:3.5rem; }
.services_card { background:var(--o); padding:2rem 1.8rem; transition:background .25s,border-radius .3s,transform .35s; will-change:transform; }
.services_card:hover { background:var(--g); border-radius:1.5rem; transform:scale(1.02); }
.services_card h3 { font-size:.9rem; color:#fff; }
.services_card p { font-size:.7rem; color:rgba(255,255,255,.88); line-height:1.55; }

.btn-more { gap:2rem; width:13rem; height:4rem; margin-top:1.8rem; background:var(--g); color:#fff; font-size:1rem; font-weight:600; letter-spacing:.03em; padding:.65rem .65rem .65rem 1.2rem; transition:background .2s,transform .15s; }
.btn-more:hover { background:#149e20; }
.btn-more:active { transform:scale(.97); }
.btn-more__icon { width:32px; height:32px; background:var(--o); flex-shrink:0; transition:transform .2s; }
.btn-more:hover .btn-more__icon { transform:translateX(3px); }
.btn-more__icon svg { width:16px; height:16px; color:#fff; }

.article-modal { padding:0; border:none; outline:none; background:transparent; max-width:100vw; max-height:100dvh; width:100vw; height:100dvh; display:flex; align-items:center; justify-content:center; }
.article-modal::backdrop { background:rgba(0,0,0,.88); backdrop-filter:blur(14px); }
.article-modal:not([open]) { display:none; }
.modal__box { width:min(700px,96vw); max-height:92dvh; background:#fff; border-radius:1.25rem; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.08) transparent; }
.modal__topbar { position:sticky; top:0; z-index:20; height:3.5rem; margin-bottom:-3.5rem; display:flex; align-items:center; justify-content:flex-end; padding:0 1rem; pointer-events:none; background:linear-gradient(to bottom,rgba(14,14,14,.75) 0%,transparent 100%); }
.modal__close { pointer-events:all; width:2.25rem; height:2.25rem; background:rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.14); color:#fff; transition:background .18s,border-color .18s; flex-shrink:0; }
.modal__close:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.28); }
.modal__close svg { width:14px; height:14px; }
.modal__cover { width:100%; aspect-ratio:16/9; height:15rem; overflow:hidden; position:relative; border-radius:1.25rem 1.25rem 0 0; }
.modal__cover img,.modal__cover video { width:100%; height:100%; object-fit:cover; display:block; }
.modal__cover::after { content:''; position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(transparent,#fff); pointer-events:none; }
.modal__body { padding:1.75rem 2rem 3.5rem; }
.modal__meta { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.1rem; }
.modal__tag { font-size:.65rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--o); background:rgba(56,231,40,.1); padding:.25rem .65rem; border-radius:2rem; }
.modal__title { font-size:clamp(1.4rem,5vw,2.1rem); font-weight:700; color:#000; line-height:1.12; margin-bottom:.45rem; letter-spacing:-.035em; }
.modal__subtitle { font-size:.72rem; color:rgba(0,0,0,.32); letter-spacing:.07em; text-transform:uppercase; margin-bottom:1.4rem; }
.modal__desc { font-size:.9rem; color:rgba(0,0,0,.62); line-height:1.8; margin-bottom:2.25rem; max-width:58ch; }

.modal__gallery { display:flex; flex-direction:column; gap:.45rem; }
.gl { overflow:hidden; line-height:0; }
.gl img,.gl video { display:block; width:100%; object-fit:cover; transition:transform .55s cubic-bezier(.16,1,.3,1); }
.gl:hover img { transform:scale(1.03); }
.gl-full img,.gl-full video { aspect-ratio:16/9; border-radius:.75rem; }
.gl-split { display:grid; grid-template-columns:3fr 2fr; gap:.45rem; }
.gl-split img { aspect-ratio:4/3; height:100%; border-radius:.55rem; }
.gl-cinema img { aspect-ratio:21/9; border-radius:.75rem; }
.gl-trio { display:grid; grid-template-columns:3fr 2fr; grid-template-rows:1fr 1fr; gap:.45rem; }
.gl-trio .gl__main { grid-row:1/3; aspect-ratio:2/3; height:100%; border-radius:.55rem; }
.gl-trio .gl__s1,.gl-trio .gl__s2 { aspect-ratio:4/3; border-radius:.55rem; }
.gl-portrait { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; }
.gl-portrait img { aspect-ratio:3/4; border-radius:.55rem; }
.gl-asym { display:grid; grid-template-columns:5fr 7fr; gap:.45rem; align-items:end; }
.gl-asym .gl__sm { aspect-ratio:1/1; border-radius:.55rem; }
.gl-asym .gl__lg { aspect-ratio:16/10; border-radius:.55rem; }
.gl-offset { margin-right:-2rem; border-radius:.75rem 0 0 .75rem; overflow:hidden; }
.gl-offset img { aspect-ratio:21/9; }

.footer { position:relative; overflow:hidden; padding:5rem 0 2rem; background:#050505; margin-top:10rem; contain:paint; }
.footer__line { position:absolute; top:0; inset-x:0; height:1px; background:rgba(255,255,255,.08); }
.footer__glow { position:absolute; top:0; left:50%; width:40%; height:1px; background:linear-gradient(90deg,transparent,var(--g),transparent); box-shadow:0 0 2rem .1rem var(--g); opacity:.6; transform:translateX(-50%); }
.footer__inner { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4rem; width:90%; max-width:75rem; margin:0 auto; }
.footer__brand { display:flex; flex-direction:column; flex:1 1 18.75rem; gap:1.5rem; }
.footer__logo { width:9rem; }
.footer__tagline { max-width:16rem; font-size:.85rem; line-height:1.6; color:rgba(255,255,255,.75); }
.footer__socials { display:flex; gap:.75rem; margin-top:.5rem; }
.footer__social-link { width:2.5rem; height:2.5rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); transition:background .3s,border-color .3s; }
.footer__social-link:hover { background:rgba(45,169,0,.2); border-color:var(--g); }
.footer__col { display:flex; flex-direction:column; flex:1 1 9.375rem; gap:1.25rem; }
.footer__col--wide { flex-basis:15.625rem; }
.footer__col-title { font-size:.65rem; font-weight:700; color:#fff; letter-spacing:.125rem; text-transform:uppercase; }
.footer__links { display:flex; flex-direction:column; gap:.8rem; }
.footer__link { font-size:.85rem; color:rgba(255,255,255,.75); transition:color .2s; }
.footer__link:hover { color:var(--g); }
.footer__address-row { display:flex; gap:.75rem; align-items:flex-start; }
.footer__address-icon { flex-shrink:0; margin-top:.1rem; }
.footer__address-text { font-size:.85rem; line-height:1.6; color:rgba(255,255,255,.75); }
.footer__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1.5rem; width:90%; max-width:75rem; margin:4rem auto 0; padding-top:2rem; border-top:1px solid rgba(255,255,255,.08); }
.footer__copy { font-size:.7rem; color:rgba(255,255,255,.65); letter-spacing:.03em; }

#about-corporate { padding:8rem 2rem; background:#fdfdfd; color:#111; }
.about-corp__container { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:4fr 6fr; gap:6rem; align-items:flex-start; }
.about-corp__sticky { position:sticky; top:6rem; display:flex; flex-direction:column; align-items:flex-start; gap:1.5rem; }
.badge { font-size:.7rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--o); background:rgba(231,111,40,.1); padding:.4rem .8rem; border-radius:2rem; }
.about-corp__title { font-size:clamp(2.2rem,4vw,3.5rem); font-weight:700; line-height:1.05; letter-spacing:-.04em; }
.about-corp__lead { font-size:1.1rem; line-height:1.6; color:#444; max-width:35ch; }
.about-corp__lead strong { color:var(--g); }
.about-corp__content { display:flex; flex-direction:column; gap:4rem; padding-top:1rem; }
.about-corp__block { display:flex; flex-direction:column; gap:1rem; position:relative; }
.about-corp__block:not(:last-child)::after { content:''; position:absolute; left:14px; top:40px; bottom:-4rem; width:1px; background:rgba(0,0,0,.1); z-index:1; }
.block__header { display:flex; align-items:center; gap:1.2rem; position:relative; z-index:2; }
.block__num { display:grid; place-items:center; width:30px; height:30px; background:var(--o); color:#fff; border-radius:50%; font-size:.75rem; font-weight:700; flex-shrink:0; }
.block__title { font-size:1.4rem; font-weight:700; color:#000; }
.block__text { font-size:.95rem; color:#555; line-height:1.7; padding-left:3.2rem; max-width:55ch; }
.block__text strong { color:var(--g); }

@media (max-width:500px){
  .modal__body{padding:1.5rem 1.25rem 2.5rem}
  .gl-split,.gl-portrait,.gl-asym{grid-template-columns:1fr}
  .gl-trio{grid-template-columns:1fr;grid-template-rows:auto}
  .gl-trio .gl__main{grid-row:auto}
  .gl-offset{margin-right:-1.25rem}
}
@media (min-width:768px){
  .nav{gap:13rem} .nav__links{gap:3rem}
  :is(.nav__link,.nav__cta){font-size:1rem}
  .modal__box{width:90%;max-width:760px;height:auto;max-height:90dvh;border-radius:1rem;box-shadow:0 20px 50px rgba(0,0,0,.1)}
  .modal__body{padding:3rem 4rem}
  .modal__title{font-size:2.4rem}
}
@media (min-width:1024px){
  .jardim__imgs{gap:3rem}
  .jardim__img{width:15rem}
  .jardim__img-text{font-size:.7rem;line-height:1.2rem;width:80%}
}
@media (max-width:1299px){
  #services{grid-template-columns:minmax(0,420px)}
  .projects{grid-template-columns:minmax(0,420px);padding:0 1.5rem}
  .project-card{width:100%}
}
@media (max-width:700px){
  .env__grid{flex-direction:column}
  .env__divider{width:100%;height:1px;align-self:auto}
}
@media (max-width:960px){
  .about-corp__container{grid-template-columns:1fr;gap:4rem}
  .about-corp__sticky{position:relative;top:0}
  .about-corp__block:not(:last-child)::after{display:none}
  .block__text{padding-left:0;margin-top:.5rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .track{animation:none!important;overflow-x:auto;scroll-snap-type:x mandatory}
  .card{scroll-snap-align:start}
}