/* =========================================================
   NEOCA — parte 2: Solutions, Ambient, Zoom, Portfolio, B2B,
   Contact, Footer
   ========================================================= */

/* ===== Solutions ===== */
.solutions{
  position: relative;
  padding: clamp(80px, 12vh, 140px) 0;
  background: var(--cream-warm);
}
.solutions__head{
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 30px;
  margin-bottom: 64px;
}
.solutions__head-left{ max-width: 580px; }
.solutions__head-right{
  font-size: .98rem;
  font-weight: 300;
  line-height: 1.7;
  max-width: 380px;
  color: var(--ink-soft);
}
.solutions__title em{ color: var(--green); }

.solutions__grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: stretch;
}
.solution-card{
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background: var(--ink);
  box-shadow: var(--shadow-card);
  isolation: isolate;
  transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s ease;
  cursor: pointer;
}
.solution-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 28px 64px rgba(9,30,12,.18);
}
.solution-card__img{ position: absolute; inset: 0; z-index: 1; }
.solution-card__img img{
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .6s ease;
}
.solution-card:hover .solution-card__img img{
  transform: scale(1.07);
  filter: brightness(.7);
}
.solution-card::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.30) 35%, transparent 60%);
  z-index: 2;
}
.solution-card__body{
  position: relative; z-index: 3;
  padding: 32px 28px;
  color: var(--cream);
  display: flex; flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}
.solution-card__num{
  font-size: .68rem;
  letter-spacing: .35em;
  font-weight: 600;
  color: var(--gold-light);
  margin-bottom: 12px;
}
.solution-card__title{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  line-height: 1.05;
  margin-bottom: 12px;
  font-variation-settings: "opsz" 144;
}
.solution-card__title em{ font-style: italic; color: var(--gold-light); }
.solution-card__desc{
  font-size: .9rem;
  line-height: 1.6;
  font-weight: 300;
  opacity: .9;
  max-width: 38ch;
  margin-bottom: 20px;
}
.solution-card__link{
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .68rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold-light);
  border-bottom: 1px solid rgba(234,215,168,.35);
  padding-bottom: 8px;
  align-self: flex-start;
  transition: color .25s ease, border-color .25s ease, gap .25s ease;
}
.solution-card__link svg{ width: 14px; height: 14px; transition: transform .35s ease; }
.solution-card:hover .solution-card__link{ color: #fff; border-color: #fff; gap: 14px; }
.solution-card:hover .solution-card__link svg{ transform: translateX(4px); }

.solution-card--lg,
.solution-card--md,
.solution-card--sm,
.solution-card--wide{
  grid-column: auto;
  min-height: 400px;
}
/* Card de Movelaria (último) ocupa as 2 colunas para fechar o grid simetricamente */
.solution-card:last-child{
  grid-column: span 2;
  min-height: 360px;
}

@media (max-width: 1024px){
  .solution-card--lg, .solution-card--md, .solution-card--sm, .solution-card--wide{
    min-height: 380px;
  }
}
@media (max-width: 640px){
  .solutions__grid{ grid-template-columns: 1fr; }
  .solution-card,
  .solution-card:last-child{
    grid-column: auto;
    min-height: 320px;
  }
}

.solutions__more{ display: flex; justify-content: center; margin-top: 64px; }
.solutions__more a{
  display: inline-flex; align-items: center; gap: 14px;
  padding: 16px 32px;
  border: 1px solid var(--green);
  color: var(--green);
  border-radius: 999px;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  transition: background .35s ease, color .35s ease, transform .35s ease;
}
.solutions__more a:hover{ background: var(--green); color: var(--cream); transform: translateY(-2px); }
.solutions__more svg{ width: 14px; height: 14px; }

/* ===== Ambient ===== */
.ambient{
  position: relative;
  height: 100vh; min-height: 600px;
  overflow: hidden;
  background: var(--ink);
}
.ambient__media{ position: absolute; inset: 0; will-change: transform, opacity; }
.ambient__media img{ width: 100%; height: 100%; object-fit: cover; }
.ambient::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(to bottom, rgba(0,0,0,.20), transparent 30%, transparent 60%, rgba(0,0,0,.55));
  pointer-events: none;
}
.ambient__content{
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: clamp(32px, 6vh, 72px) var(--gutter);
  z-index: 2;
  color: var(--cream);
}
.ambient__line{ width: 60px; height: 1px; background: currentColor; margin-bottom: 18px; opacity: .7; }
.ambient__eyebrow{
  font-size: .7rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 14px;
  opacity: .85;
}
.ambient__title{
  font-family: var(--font-serif);
  font-weight: 300;
  font-style: italic;
  font-size: clamp(1.9rem, 4.2vw, 3.4rem);
  line-height: 1.05;
  max-width: 22ch;
}

/* ===== Zoom / Sobre ===== */
.zoom-section{ position: relative; height: 220vh; }
.zoom-section__sticky{
  position: sticky; top: 0;
  height: 100vh;
  overflow: hidden;
  background: var(--ink);
}
.zoom-section__media{ position: absolute; inset: 0; will-change: transform; }
.zoom-section__media img{
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1);
}
.zoom-section__veil{
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(8,16,10,.88) 0%, rgba(8,16,10,.55) 35%, rgba(8,16,10,.15) 60%, transparent 90%);
  z-index: 2;
  opacity: 0;
  will-change: opacity;
}
.zoom-section__copy{
  position: absolute; inset: 0;
  display: flex; align-items: center;
  padding: 0 clamp(24px, 6vw, 96px);
  z-index: 3;
}
.zoom-section__inner{
  max-width: 580px;
  color: var(--cream);
  opacity: 0;
  will-change: opacity, transform;
  filter: blur(8px);
}
.zoom-section__eyebrow{
  display: inline-flex; align-items: center; gap: 14px;
  font-size: .7rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold-light);
  font-weight: 600;
  margin-bottom: 22px;
}
.zoom-section__eyebrow::before{
  content:''; width: 32px; height: 1px; background: currentColor; opacity: .55;
}
.zoom-section__title{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(2.1rem, 4.4vw, 3.6rem);
  line-height: 1.05;
  margin-bottom: 24px;
  font-variation-settings: "opsz" 144;
}
.zoom-section__title em{ font-style: italic; color: var(--gold-light); }
.zoom-section__text{
  font-size: clamp(.96rem, 1.15vw, 1.05rem);
  line-height: 1.8;
  font-weight: 300;
  opacity: .92;
  margin-bottom: 16px;
}
.zoom-section__values{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.zoom-section__values span{
  font-size: .68rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  padding: 9px 16px;
  border: 1px solid rgba(234,215,168,.4);
  border-radius: 999px;
  color: var(--gold-light);
  font-weight: 500;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
@media (max-width: 880px){
  .zoom-section{ height: auto; }
  .zoom-section__sticky{ position: relative; height: auto; min-height: 100vh; }
}

/* ===== Portfolio ===== */
.portfolio{
  position: relative;
  padding: clamp(80px, 14vh, 160px) 0;
  background: var(--cream);
  overflow: hidden;
}
.portfolio__head{
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 30px;
  max-width: var(--container);
  margin: 0 auto 70px;
  padding: 0 var(--gutter);
}
.portfolio__head-left{ max-width: 540px; }
.portfolio__title em{ color: var(--green); }
.portfolio__head-right{
  font-size: .98rem;
  font-weight: 300;
  line-height: 1.7;
  max-width: 380px;
  color: var(--ink-soft);
}
.portfolio__stage{
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 30px 0;
}
.portfolio__viewport{ width: 100%; overflow: hidden; position: relative; scrollbar-width: none; -ms-overflow-style: none; }
.portfolio__viewport::-webkit-scrollbar{ display: none; }
.portfolio__track{
  display: flex;
  gap: 24px;
  padding: 0 var(--gutter);
  will-change: transform;
}
.portfolio__card{
  flex: 0 0 auto;
  width: clamp(280px, 32vw, 460px);
  aspect-ratio: 4/5;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-lux);
  background: var(--ink);
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.portfolio__card img{
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s ease;
}
.portfolio__card:hover img{ transform: scale(1.06); }
.portfolio__card-meta{
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 26px 24px 22px;
  background: linear-gradient(to top, rgba(0,0,0,.78) 0%, transparent 100%);
  color: var(--cream);
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 14px;
}
.portfolio__card-title{
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.1;
}
.portfolio__card-cat{
  font-size: .65rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 500;
  opacity: .82;
  margin-top: 8px;
  font-style: normal;
  font-family: var(--font-sans);
}
.portfolio__card-num{
  font-size: .68rem;
  letter-spacing: .25em;
  font-family: var(--font-sans);
  background: rgba(244,239,230,.16);
  padding: 8px 12px;
  border-radius: 999px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(244,239,230,.25);
}
.portfolio__hint{
  text-align: center;
  margin-top: 50px;
  font-size: .68rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex; align-items: center; justify-content: center; gap: 16px;
}
.portfolio__hint::before, .portfolio__hint::after{
  content:''; width: 50px; height: 1px; background: var(--muted); opacity: .4;
}

/* ===== B2B ===== */
.b2b{
  position: relative;
  padding: clamp(90px, 14vh, 160px) 0;
  background: linear-gradient(180deg, var(--cream) 0%, var(--cream-warm) 100%);
}
.b2b__inner{
  position: relative;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(14,91,31,.92), rgba(10,63,21,.96)),
    var(--green-deep);
  padding: clamp(48px, 8vw, 96px) clamp(32px, 6vw, 80px);
  overflow: hidden;
  isolation: isolate;
  color: var(--cream);
  box-shadow: 0 50px 100px rgba(9,30,12,.25);
}
.b2b__inner::before{
  content:''; position:absolute; top:-50%; right:-20%;
  width: 600px; height: 600px; border-radius: 50%;
  background: radial-gradient(circle, rgba(234,215,168,.16), transparent 70%);
  pointer-events:none; z-index:-1;
}
.b2b__inner::after{
  content:''; position:absolute; inset:0;
  background-image: url('../assets/images/products/zoom-detail.png');
  background-size: cover; background-position: center;
  opacity: .12; mix-blend-mode: overlay;
  z-index: -1;
}
.b2b__grid{
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 6vw, 72px);
  align-items: start;
}
.b2b__eyebrow{
  font-size: .7rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--gold-light);
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 14px;
  margin-bottom: 22px;
}
.b2b__eyebrow::before{
  content:''; width: 28px; height: 1px; background: currentColor; opacity: .6;
}
.b2b__title{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(1.9rem, 4vw, 3.2rem);
  line-height: 1.05;
  margin-bottom: 22px;
  font-variation-settings: "opsz" 144;
}
.b2b__title em{ font-style: italic; color: var(--gold-light); }
.b2b__text{
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 300;
  opacity: .92;
  margin-bottom: 28px;
  max-width: 52ch;
}
.b2b__list{ list-style: none; display: grid; gap: 16px; }
.b2b__list li{
  display: flex; gap: 14px; align-items: flex-start;
  font-size: .98rem;
  font-weight: 300;
  line-height: 1.6;
}
.b2b__list svg{
  flex: 0 0 auto;
  width: 20px; height: 20px;
  margin-top: 2px;
  color: var(--gold-light);
}
.b2b__cta{
  margin-top: 32px;
  display: inline-flex; align-items: center; gap: 14px;
  padding: 16px 30px;
  background: var(--cream);
  color: var(--green-deep);
  border-radius: 999px;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  transition: transform .35s ease, box-shadow .35s ease, background .35s ease;
}
.b2b__cta:hover{
  transform: translateY(-2px);
  background: #fff;
  box-shadow: 0 14px 32px rgba(0,0,0,.25);
}
.b2b__cta svg{ width: 14px; height: 14px; }
@media (max-width: 880px){ .b2b__grid{ grid-template-columns: 1fr; } }

/* ===== Contact ===== */
.contact{
  position: relative;
  padding: clamp(80px, 14vh, 160px) 0 clamp(40px, 6vh, 80px);
  background: var(--cream);
}
.contact__wrap{
  position: relative;
  background: var(--cream-soft);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: clamp(40px, 6vw, 72px);
  overflow: hidden;
}
.contact__blob{
  position: absolute; pointer-events: none;
  border-radius: 50%;
  filter: blur(70px);
  opacity: .5;
}
.contact__blob--a{
  width: 380px; height: 380px;
  background: rgba(14,91,31,.18);
  top: -120px; right: -120px;
}
.contact__blob--b{
  width: 320px; height: 320px;
  background: rgba(181,152,103,.15);
  bottom: -100px; left: -80px;
}
.contact__grid{
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}
.contact__copy h2{ margin-bottom: 22px; max-width: 14ch; }
.contact__copy p{
  font-size: 1rem;
  line-height: 1.75;
  color: var(--ink-soft);
  font-weight: 300;
  max-width: 48ch;
}
.contact__details{
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.contact__detail span{
  display: block;
  font-size: .68rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.contact__detail a, .contact__detail strong{
  font-size: .96rem;
  font-weight: 500;
  color: var(--ink);
  transition: color .25s ease;
}
.contact__detail a:hover{ color: var(--green); }

.contact__form{ display: grid; gap: 18px; }
.contact__row{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact__field label{
  display: block;
  font-size: .68rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
  font-weight: 500;
}
.contact__field input,
.contact__field select,
.contact__field textarea{
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255,255,255,.6);
  font-family: inherit;
  font-size: .96rem;
  color: var(--ink);
  transition: border-color .25s ease, background .25s ease;
}
.contact__field textarea{ resize: vertical; min-height: 110px; }
.contact__field input:focus,
.contact__field select:focus,
.contact__field textarea:focus{
  outline: none;
  border-color: var(--green);
  background: #fff;
}
.contact__select{ position: relative; }
.contact__select select{
  appearance: none; -webkit-appearance: none;
  padding-right: 40px;
  cursor: pointer;
}
.contact__select svg{
  position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; color: var(--muted);
  pointer-events: none;
}
.contact__submit{
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  padding: 16px 28px;
  background: var(--green);
  color: var(--cream);
  border-radius: 999px;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
  margin-top: 8px;
}
.contact__submit:hover{
  background: var(--green-deep);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(14,91,31,.28);
}
.contact__submit svg{ width: 16px; height: 16px; }
@media (max-width: 880px){
  .contact__grid{ grid-template-columns: 1fr; }
  .contact__row{ grid-template-columns: 1fr; }
  .contact__details{ grid-template-columns: 1fr; }
}

/* ===== Footer ===== */
.footer{
  background: var(--green-deep);
  color: var(--cream);
  padding: clamp(80px, 12vh, 130px) var(--gutter) 36px;
  position: relative;
  overflow: hidden;
}
.footer::before{
  content:''; position: absolute; inset:0;
  background: radial-gradient(ellipse at 80% 20%, rgba(234,215,168,.08), transparent 50%);
  pointer-events:none;
}
.footer__inner{ max-width: var(--container); margin: 0 auto; position: relative; }
.footer__top{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 50px;
  margin-bottom: 60px;
  padding-bottom: 50px;
  border-bottom: 1px solid rgba(234,215,168,.15);
}
.footer__brand img{ height: 72px; width: auto; margin-bottom: 24px; }
.footer__brand p{
  font-size: .92rem;
  line-height: 1.7;
  font-weight: 300;
  opacity: .82;
  max-width: 32ch;
}
.footer__col h5{
  font-size: .68rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 20px;
  color: var(--gold-light);
}
.footer__col ul{ list-style: none; display: grid; gap: 12px; }
.footer__col a{
  font-size: .92rem;
  font-weight: 300;
  opacity: .85;
  transition: opacity .25s ease, color .25s ease;
}
.footer__col a:hover{ opacity: 1; color: var(--gold-light); }
.footer__claim{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(1.8rem, 4vw, 3.4rem);
  line-height: 1.05;
  max-width: 18ch;
  margin-bottom: 60px;
  font-variation-settings: "opsz" 144;
}
.footer__claim em{ font-style: italic; color: var(--gold-light); }
.footer__bottom{
  display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .75;
  font-weight: 400;
}
.footer__links{ display: flex; gap: 28px; flex-wrap: wrap; }
.footer__links a{ transition: color .25s ease; }
.footer__links a:hover{ color: var(--gold-light); }
@media (max-width: 880px){
  .footer__top{ grid-template-columns: 1fr 1fr; }
  .footer__brand{ grid-column: span 2; }
}

/* ===== Util ===== */
.reveal{
  opacity: 0;
  transform: translateY(28px);
}
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
  .reveal{ opacity: 1; transform: none; filter: none; }
}
@media (max-width: 880px){
  .reveal{ opacity: 1; transform: none; }
}
