/* Consolidação visual e funcional — Retrato Corporativo */

.site-header.scrolled .brand,
.site-header.scrolled .header-cta{
  opacity:1!important;
  pointer-events:auto!important;
}

.site-header{
  z-index:3000;
}

/* LOGO — maior e legível no desktop */
.brand-v21{
  width:clamp(225px,18vw,285px)!important;
  padding:10px 18px 14px!important;
}

.header-cta{
  background:#0B7A3F!important;
  color:#fff!important;
}

/* =========================================================
   HERO
   ========================================================= */

.editorial-home .hero{
  isolation:isolate;
  height:112svh!important;
  min-height:760px!important;
  max-height:none!important;
}

/* imagem maior que o hero para permitir parallax real */
.editorial-home .hero-image{
  top:-22%!important;
  bottom:auto!important;
  width:100%!important;
  height:144%!important;

  object-fit:cover!important;
  object-position:center 30%!important;

  /* fotografia sem difusão/escurecimento artificial */
  filter:none!important;
  animation:none!important;

  transform:translate3d(
    0,
    var(--hero-parallax-y,0px),
    0
  )!important;

  transition:none!important;
  will-change:transform;
}

/* somente proteção mínima para leitura */
.editorial-home .hero-shade{
  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.18),
      transparent 58%
    ),
    linear-gradient(
      0deg,
      rgba(0,0,0,.14),
      transparent 50%
    )!important;
}

.editorial-home .hero-kicker{
  left:5.5%!important;
  right:auto!important;
  top:33%!important;

  width:min(470px,38%)!important;

  text-align:left!important;

  font-size:clamp(18px,1.65vw,27px)!important;
  line-height:1.28!important;
}

.editorial-home .hero-title{
  left:5.5%!important;
  right:5.5%!important;

  top:49%!important;
  bottom:auto!important;

  transform:translateY(-10%)!important;
}

/* =========================================================
   MOSAICO DA HOME
   2 COLUNAS PARA ELIMINAR A GRANDE LACUNA
   SEM RECORTAR AS FOTOGRAFIAS
   ========================================================= */

.opening-mosaic{
  display:block!important;

  columns:2 480px;
  column-gap:12px;

  height:auto!important;
  min-height:0!important;
  max-height:none!important;

  overflow:visible!important;

  background:transparent!important;

  margin:18px 16px 42px!important;
}

.opening-mosaic .gallery-trigger{
  display:block;

  width:100%;

  margin:0 0 12px;
  padding:0;

  border:0;
  background:transparent;

  border-radius:18px;
  overflow:hidden;

  break-inside:avoid;

  cursor:zoom-in;
}

.opening-mosaic .gallery-trigger img{
  display:block;

  width:100%;
  height:auto!important;

  object-fit:contain!important;

  transform:none!important;

  transition:opacity .25s ease!important;
}

.opening-mosaic .gallery-trigger:hover img{
  opacity:.88;
}

/* =========================================================
   DIREÇÃO ESPECIALIZADA
   ========================================================= */

.editorial-statement{
  grid-template-columns:minmax(300px,38%) 1fr!important;
  gap:6%!important;
  align-items:center!important;
}

.direction-visual{
  margin:0;

  border-radius:22px;
  overflow:hidden;

  background:#070707;
}

.direction-visual img{
  display:block;

  width:100%;
  height:auto;

  max-height:760px;

  object-fit:cover;
}

.direction-content .section-tag{
  margin-bottom:42px;
}

/* =========================================================
   GALERIAS DAS PÁGINAS INTERNAS
   ========================================================= */

.gallery-trigger{
  font:inherit;
  color:inherit;
}

.service-gallery-section{
  padding:10px 5.7% 110px;
}

.service-gallery-heading{
  display:flex;

  justify-content:space-between;
  align-items:end;

  gap:30px;

  margin-bottom:36px;
}

.service-gallery-heading h2{
  max-width:780px;

  font-size:clamp(34px,4.7vw,72px);
  font-weight:500;

  line-height:.92;
  letter-spacing:-.055em;
}

.service-gallery{
  display:grid;

  grid-template-columns:1fr 1fr;

  gap:12px;

  align-items:start;
}

.service-gallery .gallery-trigger{
  display:block;

  width:100%;

  padding:0;

  border:0;
  background:none;

  border-radius:18px;
  overflow:hidden;

  cursor:zoom-in;
}

.service-gallery img{
  display:block;

  width:100%;
  height:auto;

  object-fit:contain;

  transition:transform .5s ease;
}

.service-gallery .gallery-trigger:hover img{
  transform:scale(1.015);
}

/* =========================================================
   PORTFÓLIO
   ========================================================= */

.gallery-page{
  display:block!important;

  columns:3 340px;
  column-gap:12px;

  padding:0 12px 12px!important;
}

.gallery-page figure{
  display:block!important;

  height:auto!important;
  min-height:0!important;

  aspect-ratio:auto!important;

  margin:0 0 12px!important;

  break-inside:avoid;

  overflow:hidden;

  border-radius:18px;
}

.gallery-page figure:last-child{
  grid-column:auto!important;
}

.gallery-page .gallery-trigger{
  display:block;

  width:100%;

  padding:0;

  border:0;
  background:none;

  cursor:zoom-in;
}

.gallery-page img{
  display:block;

  width:100%;
  height:auto!important;

  object-fit:contain!important;

  transition:opacity .25s ease;
}

.gallery-page .gallery-trigger:hover img{
  opacity:.9;
}

/* =========================================================
   LIGHTBOX / SLIDESHOW
   ========================================================= */

.lightbox{
  position:fixed;

  inset:0;

  z-index:10000;

  display:none;

  background:rgba(7,7,7,.96);

  color:#F1E6D7;
}

.lightbox.open{
  display:grid;

  grid-template-columns:72px 1fr 72px;
  grid-template-rows:72px 1fr 64px;

  align-items:center;
}

.lightbox-close{
  grid-area:1/3;

  justify-self:center;
}

.lightbox-prev{
  grid-area:2/1;
}

.lightbox-next{
  grid-area:2/3;
}

.lightbox button{
  width:46px;
  height:46px;

  border:1px solid rgba(241,230,215,.35);
  border-radius:50%;

  background:rgba(7,7,7,.4);

  color:#F1E6D7;

  font-size:24px;

  cursor:pointer;
}

.lightbox-stage{
  grid-area:2/2;

  display:grid;

  place-items:center;

  min-width:0;
  min-height:0;

  padding:16px;
}

.lightbox-stage img{
  max-width:100%;
  max-height:calc(100vh - 170px);

  width:auto;
  height:auto;

  object-fit:contain;
}

.lightbox-caption{
  grid-area:3/2;

  text-align:center;

  font-size:14px;

  color:rgba(241,230,215,.72);

  padding:8px 20px;
}

.lightbox-count{
  position:absolute;

  top:28px;
  left:28px;

  font-size:13px;

  color:rgba(241,230,215,.65);
}

body.lightbox-open{
  overflow:hidden;
}

/* =========================================================
   BLOG HOME
   ========================================================= */

.home-blog{
  padding:clamp(6rem,10vw,10rem) 5.7%;

  border-top:1px solid rgba(7,7,7,.12);
}

.home-blog .center-heading{
  text-align:left;
  max-width:950px;
}

.home-blog-feature{
  display:grid;

  grid-template-columns:1.05fr .95fr;

  gap:5%;

  align-items:center;
}

.home-blog-image{
  display:block;

  border-radius:22px;

  overflow:hidden;
}

.home-blog-image img{
  display:block;

  width:100%;
  height:auto;
}

.home-blog-feature h3{
  font-size:clamp(36px,5vw,72px);

  font-weight:500;

  line-height:.95;

  letter-spacing:-.055em;

  margin:20px 0;
}

.home-blog-feature > div > p:not(.eyebrow){
  font-size:18px;

  line-height:1.6;

  color:rgba(7,7,7,.66);

  max-width:680px;
}

.text-link{
  display:inline-block;

  margin-top:24px;

  text-decoration:underline;
  text-underline-offset:5px;
}

.home-blog-more{
  display:grid;

  grid-template-columns:1.3fr repeat(3,1fr);

  gap:18px;

  margin-top:55px;
  padding-top:25px;

  border-top:1px solid rgba(7,7,7,.16);

  font-size:14px;
}

.home-blog-more span{
  line-height:1.4;
}

.blog-index-link{
  display:inline-block;

  margin-top:36px;

  text-decoration:underline;
  text-underline-offset:5px;
}

/* =========================================================
   BLOG INDEX
   ========================================================= */

.blog-index-hero{
  padding:150px 5.7% 80px;
}

.blog-index-hero h1{
  margin:45px 0 30px;

  font-size:clamp(58px,9vw,130px);

  font-weight:500;

  line-height:.82;
  letter-spacing:-.07em;
}

.blog-index-hero > p:last-child{
  max-width:760px;

  font-size:20px;

  line-height:1.55;

  color:rgba(7,7,7,.65);
}

.blog-index-grid{
  display:grid;

  grid-template-columns:1.4fr .8fr;

  gap:7%;

  padding:0 5.7% 120px;
}

.blog-card img{
  width:100%;
  height:auto;

  border-radius:22px;
}

.blog-card .eyebrow{
  margin-top:25px;
}

.blog-card h2{
  font-size:clamp(38px,5vw,68px);

  font-weight:500;

  line-height:.96;
  letter-spacing:-.05em;

  margin:14px 0;
}

.blog-card > p:not(.eyebrow){
  font-size:18px;

  line-height:1.55;

  color:rgba(7,7,7,.65);
}

.blog-coming{
  align-self:start;

  border-top:1px solid rgba(7,7,7,.2);

  padding-top:20px;
}

.blog-coming h3{
  font-size:24px;

  font-weight:500;

  line-height:1.15;

  padding:20px 0;

  border-bottom:1px solid rgba(7,7,7,.12);
}

.blog-coming > p:last-child{
  margin-top:20px;

  color:rgba(7,7,7,.55);
}

/* =========================================================
   ARTIGO
   ========================================================= */

.article-page{
  padding-top:120px;
}

.article-hero{
  padding:80px 12% 90px;

  border-bottom:1px solid rgba(7,7,7,.14);
}

.article-hero h1{
  max-width:1150px;

  margin:26px 0;

  font-size:clamp(54px,8vw,118px);

  font-weight:500;

  line-height:.88;
  letter-spacing:-.065em;
}

.article-deck{
  max-width:800px;

  font-size:clamp(21px,2.1vw,30px);

  line-height:1.45;

  color:rgba(7,7,7,.68);
}

.article-reading{
  max-width:820px;

  margin:0 auto;

  padding:85px 28px 120px;

  font-size:20px;

  line-height:1.72;
}

.article-reading p{
  margin:0 0 1.35em;
}

.article-reading h2{
  margin:3.2em 0 1em;

  font-size:clamp(38px,5vw,64px);

  font-weight:500;

  line-height:1.02;

  letter-spacing:-.045em;
}

.article-reading ul{
  margin:0 0 1.5em 1.2em;
}

.article-reading li{
  margin:.35em 0;
}

.article-media{
  width:min(1120px,calc(100vw - 48px));

  margin:70px 50% 80px;

  transform:translateX(-50%);
}

.article-media .gallery-trigger{
  display:block;

  width:100%;

  padding:0;

  border:0;
  background:none;

  cursor:zoom-in;
}

.article-media img{
  width:100%;
  height:auto;

  border-radius:22px;
}

.article-media figcaption{
  max-width:820px;

  margin:16px auto 0;

  font-size:14px;

  line-height:1.5;

  color:rgba(7,7,7,.58);
}

.article-media.result{
  width:min(760px,calc(100vw - 48px));
}

.article-media-pending{
  margin:60px 0;

  padding:28px;

  border:1px dashed rgba(7,7,7,.3);
  border-radius:18px;

  background:rgba(241,230,215,.35);

  font-size:15px;

  line-height:1.5;
}

.article-media-pending p{
  margin:8px 0 0;
}

.article-cta{
  margin:70px -60px;

  padding:50px 60px;

  background:#070707;

  color:#F1E6D7;

  border-radius:22px;
}

.article-cta p{
  max-width:680px;
}

.article-cta .pill-button{
  background:#F1E6D7;

  color:#070707;
}

.article-next{
  padding:24px 0;

  border-top:1px solid rgba(7,7,7,.15);
  border-bottom:1px solid rgba(7,7,7,.15);
}

.article-next span{
  display:inline-block;

  margin-left:8px;

  color:#B86330;

  font-size:14px;
}

.article-final-cta{
  margin-top:90px;

  padding:60px;

  background:#070707;

  color:#F1E6D7;

  border-radius:24px;
}

.article-final-cta h2{
  margin:0 0 26px;

  font-size:clamp(42px,5vw,66px);
}

.article-final-cta p{
  color:rgba(241,230,215,.75);
}

.article-final-cta > div{
  display:flex;

  gap:25px;

  align-items:center;
  flex-wrap:wrap;
}

.article-final-cta .whatsapp{
  background:#0B7A3F;

  color:#fff;

  border-color:#0B7A3F;
}

.article-final-cta .text-link{
  margin:0;

  color:#F1E6D7;
}

/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1100px){

  .editorial-home .hero-kicker{
    top:28%!important;
    left:5%!important;

    width:60%!important;
  }

  .editorial-home .hero-title{
    top:45%!important;
  }

  .opening-mosaic{
    columns:2 340px;
  }

  .editorial-statement{
    grid-template-columns:1fr!important;
  }

  .direction-visual{
    max-width:720px;
  }

  .service-gallery-heading{
    display:block;
  }

  .service-gallery-heading h2{
    margin-top:24px;
  }

  .gallery-page{
    columns:2 300px;
  }

  .home-blog-feature{
    grid-template-columns:1fr;
  }

  .home-blog-feature > div{
    padding-top:35px;
  }

  .home-blog-more{
    grid-template-columns:1fr 1fr;
  }

  .blog-index-grid{
    grid-template-columns:1fr;
  }

  .blog-coming{
    margin-top:50px;
  }

  .article-cta{
    margin-left:0;
    margin-right:0;
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:760px){

  .brand-v21{
    width:54px!important;
    padding:8px!important;
  }

  .brand-full,
  .brand-reduced{
    display:none!important;
  }

  .brand-symbol{
    display:block!important;
  }

  .main-nav{
    z-index:4000;
  }

  .header-cta{
    display:block!important;

    position:fixed;

    top:12px;
    right:12px;

    z-index:4100;

    padding:.48rem .8rem!important;

    border-width:4px!important;

    font-size:12px!important;
  }

  .menu-toggle{
    position:fixed!important;

    top:12px;
    left:68px;

    z-index:4100;
  }

  .editorial-home .hero{
    height:104svh!important;
    min-height:680px!important;
  }

  .editorial-home .hero-image{
    top:-18%!important;

    height:136%!important;

    object-position:47% 25%!important;
  }

  .editorial-home .hero-kicker{
    top:20%!important;

    left:5%!important;

    width:86%!important;

    font-size:clamp(16px,4.8vw,20px)!important;
  }

  .editorial-home .hero-title{
    top:40%!important;

    left:4%!important;
    right:4%!important;

    font-size:20vw!important;
  }

  .opening-mosaic{
    columns:1;
  }

  .editorial-statement{
    padding:85px 22px 70px!important;
  }

  .direction-content .section-tag{
    margin-top:34px;
    margin-bottom:28px;
  }

  .service-gallery-section{
    padding:0 18px 80px;
  }

  .service-gallery{
    grid-template-columns:1fr;
  }

  .service-gallery-heading h2{
    font-size:46px;
  }

  .gallery-page{
    columns:1;

    padding:0 8px 8px!important;
  }

  .lightbox.open{
    grid-template-columns:54px 1fr 54px;
    grid-template-rows:64px 1fr 56px;
  }

  .lightbox button{
    width:40px;
    height:40px;
  }

  .lightbox-stage{
    padding:8px;
  }

  .lightbox-stage img{
    max-height:calc(100vh - 145px);
  }

  .home-blog{
    padding:80px 22px;
  }

  .home-blog-feature h3{
    font-size:44px;
  }

  .home-blog-more{
    grid-template-columns:1fr;
  }

  .blog-index-hero{
    padding:120px 22px 60px;
  }

  .blog-index-grid{
    padding:0 22px 80px;
  }

  .article-page{
    padding-top:84px;
  }

  .article-hero{
    padding:70px 22px 55px;
  }

  .article-hero h1{
    font-size:clamp(48px,14vw,72px);
  }

  .article-reading{
    padding:55px 22px 90px;

    font-size:18px;
  }

  .article-reading h2{
    font-size:40px;
  }

  .article-media{
    width:calc(100vw - 24px);

    margin-top:50px;
    margin-bottom:55px;
  }

  .article-cta,
  .article-final-cta{
    padding:32px 24px;
  }

  .article-final-cta > div{
    align-items:flex-start;

    flex-direction:column;
  }

  .article-final-cta .pill-button{
    width:100%;
  }
}

/* =========================================================
   REDUZIR MOVIMENTO
   ========================================================= */

@media(prefers-reduced-motion:reduce){

  .editorial-home .hero-image{
    transform:none!important;

    will-change:auto;
  }

  .service-gallery img{
    transition:none;
  }

  .opening-mosaic img{
    transition:none;
  }
}