/* V15 — trama sobre os fundos, superfícies limpas sobre o conteúdo. */

/* Soluções: a textura mora na página; as imagens dos produtos seguem limpas. */
.solucoes-page .inner-hero-solutions::after {
  opacity: .48;
  background-image:
    linear-gradient(rgba(236,255,233,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(236,255,233,.09) 1px,transparent 1px),
    repeating-linear-gradient(114deg,rgba(232,250,228,.03) 0 1px,transparent 1px 19px);
  background-size: 78px 78px,78px 78px,auto;
}
.solucoes-page > #linhas.section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 4% 3%, rgba(195,222,190,.76), transparent 44%),
    radial-gradient(ellipse at 98% 81%, rgba(198,224,193,.68), transparent 42%),
    linear-gradient(145deg, #e7f0e5 0%, #f6f9f2 47%, #e4efe4 100%);
}
.solucoes-page > #linhas.section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .68;
  background-image:
    linear-gradient(rgba(31,89,50,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31,89,50,.07) 1px, transparent 1px),
    repeating-linear-gradient(114deg, rgba(20,82,45,.038) 0 1px, transparent 1px 17px);
  background-size: 84px 84px, 84px 84px, auto;
}
.solucoes-page > #linhas.section::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.33) 50%, transparent);
}
.solucoes-page > #linhas.section > .container { position: relative; z-index: 1; }
.solucoes-page .solution-rows { gap: clamp(22px,3vw,38px); }
.solucoes-page .solution-row,
.solucoes-page .solution-row:last-child {
  position: relative;
  min-width: 0;
  gap: clamp(28px,5vw,70px);
  padding: clamp(24px,3.7vw,52px);
  border: 1px solid rgba(179,207,180,.84);
  border-radius: clamp(23px,3vw,34px);
  background: linear-gradient(145deg,rgba(255,255,255,.97),rgba(248,251,246,.95));
  box-shadow: 0 36px 76px rgba(10,62,33,.12), 0 7px 21px rgba(12,58,32,.065), inset 0 1px rgba(255,255,255,.95);
}
.solucoes-page .solution-row:nth-child(2) { background: linear-gradient(145deg,rgba(246,250,243,.98),rgba(255,255,255,.96)); }
.solucoes-page .solution-row-image {
  min-width: 0;
  background: #f9fbf8;
  border: 1px solid #e0eae0;
  border-radius: 23px;
  box-shadow: 0 24px 49px rgba(12,62,34,.16), 0 3px 11px rgba(12,62,34,.08);
}
.solucoes-page .solution-row h2 { color: #153e2d; }
.solucoes-page .solution-row .btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(125deg,#103c2d,#19573d);
  color: #fff;
  box-shadow: 0 13px 25px rgba(13,68,37,.19);
  transition: transform .23s ease,box-shadow .23s ease,background .23s ease;
}
.solucoes-page .solution-row .btn:hover { background: #206347; color: #fff; transform: translateY(-2px); box-shadow: 0 18px 31px rgba(13,68,37,.25); }
.solucoes-page .solution-row .btn::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg,transparent 23%,rgba(255,255,255,.25) 50%,transparent 77%); transform: translateX(-150%); transition: transform .7s ease; }
.solucoes-page .solution-row .btn:is(:hover,:focus-visible)::before { transform: translateX(150%); }
.solucoes-page .inner-hero-products > div { box-shadow: 0 30px 67px rgba(0,19,12,.32), 0 5px 14px rgba(0,19,12,.15); }

/* As páginas institucionais alternam superfícies claras, com trama no fundo. */
.inner-page > .section:not(.pale):not(.story-responsibility):not(.v9-identity):not(.v9-scope):not(.v9-proposal):not(#linhas) {
  background: linear-gradient(155deg,#f6faf4 0%,#edf5ec 55%,#f9fbf6 100%);
}
.inner-page > .section:not(.pale):not(.story-responsibility):not(.v9-identity):not(.v9-scope):not(.v9-proposal):not(#linhas)::before {
  opacity: .6;
  background-image:
    linear-gradient(rgba(35,94,54,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(35,94,54,.055) 1px,transparent 1px),
    repeating-linear-gradient(115deg,rgba(19,83,44,.026) 0 1px,transparent 1px 18px);
  background-size: 82px 82px,82px 82px,auto;
}
main:not(.saluvia-home):not(.catalog-page):not(.product-showcase) .section.pale {
  background: linear-gradient(140deg,#e1eddf,#f3f8ef 52%,#e6f0e4);
}
main:not(.saluvia-home):not(.catalog-page):not(.product-showcase) .section.pale::before {
  opacity: .67;
  background-image:
    linear-gradient(rgba(27,86,48,.065) 1px,transparent 1px),
    linear-gradient(90deg,rgba(27,86,48,.065) 1px,transparent 1px),
    repeating-linear-gradient(115deg,rgba(18,74,39,.027) 0 1px,transparent 1px 16px);
  background-size: 74px 74px,74px 74px,auto;
}
.inner-page > :is(.v9-identity,.v9-scope,.v9-proposal) {
  position: relative;
  isolation: isolate;
  background: linear-gradient(140deg,#e6f0e3,#f4f8f0 56%,#dfecdf);
}
.inner-page > :is(.v9-identity,.v9-scope,.v9-proposal)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .67;
  background-image:
    linear-gradient(rgba(27,83,46,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(27,83,46,.07) 1px,transparent 1px),
    repeating-linear-gradient(110deg,rgba(18,75,38,.026) 0 1px,transparent 1px 18px);
  background-size: 80px 80px,80px 80px,auto;
}
.inner-page > :is(.v9-identity,.v9-scope,.v9-proposal) > .container { position: relative; z-index: 1; }
.inner-page .story-responsibility::before,
.inner-page .cta-band::before {
  opacity: .4;
  background-image:
    linear-gradient(rgba(235,250,228,.1) 1px,transparent 1px),
    linear-gradient(90deg,rgba(235,250,228,.1) 1px,transparent 1px),
    repeating-linear-gradient(115deg,rgba(238,251,230,.034) 0 1px,transparent 1px 18px);
  background-size: 78px 78px,78px 78px,auto;
}
.inner-page .values-grid article,
.inner-page .v9-scope-grid article,
.inner-page .info-panel { box-shadow: 0 27px 52px rgba(12,58,31,.12), 0 4px 12px rgba(12,58,31,.045); }
.inner-page .catalog-invitation {
  padding: clamp(26px,3.5vw,44px);
  border: 1px solid #d6e6d4;
  border-radius: 26px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 25px 59px rgba(12,63,32,.12), 0 4px 15px rgba(12,63,32,.04);
}
.inner-page .v9-fact-list { padding: 9px 25px; border: 1px solid #d4e4d3; border-radius: 21px; background: rgba(255,255,255,.89); box-shadow: 0 22px 51px rgba(12,58,31,.11); }
.inner-page .process-list { gap: 14px; border: 0; }
.inner-page .process-list li,
.inner-page .process-list li+li,
.inner-page .process-list li:nth-child(3),
.inner-page .process-list li:nth-child(4) { padding: 25px; border: 1px solid #d7e6d5; border-radius: 19px; background: rgba(255,255,255,.91); box-shadow: 0 18px 39px rgba(12,58,31,.095); }
.inner-page .contact-form-box { box-shadow: 0 36px 76px rgba(12,58,31,.16),0 6px 18px rgba(12,58,31,.06); }
.inner-page .legal-content { box-shadow: 0 30px 67px rgba(12,58,31,.12); }
.inner-page .internal-photo-grid img { box-shadow: 0 32px 67px rgba(10,57,30,.19); }

/* O detalhe técnico usa a mesma linguagem nos fundos, sem alterar fotos de produto. */
.product-showcase :is(.showcase-overview,.showcase-features,.showcase-specifications,.showcase-related) { position: relative; isolation: isolate; }
.product-showcase :is(.showcase-overview,.showcase-specifications,.showcase-related) { background: linear-gradient(150deg,#f5faf3,#ebf3e9 56%,#f8fbf6); }
.product-showcase .showcase-features { background: linear-gradient(140deg,#e5efe2,#f4f8f0); }
.product-showcase :is(.showcase-overview,.showcase-features,.showcase-specifications,.showcase-related)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .55;
  background-image:
    linear-gradient(rgba(29,85,47,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(29,85,47,.055) 1px,transparent 1px),
    repeating-linear-gradient(112deg,rgba(19,76,40,.024) 0 1px,transparent 1px 17px);
  background-size: 78px 78px,78px 78px,auto;
}
.product-showcase :is(.showcase-overview,.showcase-features,.showcase-specifications,.showcase-related) > .container { position: relative; z-index: 1; }
.product-showcase .showcase-feature-card,
.product-showcase .showcase-spec-panel,
.product-showcase .showcase-no-tech { box-shadow: 0 21px 47px rgba(12,58,31,.105); }

/* Acesso direto ao WhatsApp, sem estado online ou promessa de resposta instantânea. */
.floating-wa,
.floating-wa:hover {
  position: fixed;
  right: max(20px,env(safe-area-inset-right));
  bottom: calc(20px + env(safe-area-inset-bottom));
  z-index: 60;
  display: inline-flex;
  align-items: center;
  gap: 13px;
  min-height: 70px;
  padding: 10px 13px 10px 10px;
  border: 1px solid rgba(255,255,255,.19);
  border-radius: 20px;
  background: linear-gradient(125deg,#0c3829,#155139);
  color: #fff;
  box-shadow: 0 22px 47px rgba(3,33,18,.29), 0 5px 15px rgba(3,33,18,.15), inset 0 1px rgba(255,255,255,.12);
  font-size: 13px;
  text-decoration: none;
  transition: transform .23s ease,box-shadow .23s ease,background .23s ease;
}
.floating-wa:hover { transform: translateY(-3px); background: linear-gradient(125deg,#104531,#1d6345); box-shadow: 0 27px 55px rgba(3,33,18,.34),0 7px 17px rgba(3,33,18,.16); }
.floating-wa:focus-visible { outline: 3px solid #e9d7a7; outline-offset: 4px; }
.floating-wa .floating-wa-mark { display: grid; place-items: center; width: 48px; height: 48px; flex: none; border-radius: 15px; background: #24bd6a; color: #fff; box-shadow: inset 0 1px rgba(255,255,255,.24),0 4px 12px rgba(0,25,8,.2); }
.floating-wa .floating-wa-mark svg { width: 25px; height: 25px; }
.floating-wa .floating-wa-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; text-align: left; }
.floating-wa .floating-wa-copy strong { color: #fff; font-size: 13px; font-weight: 730; line-height: 1.18; }
.floating-wa .floating-wa-copy small { color: #cce8d0; font-size: 10px; font-weight: 500; line-height: 1.2; }
.floating-wa .floating-wa-mobile { display: none; }
.floating-wa .floating-wa-arrow { align-self: flex-start; color: #e9d7a7; font-size: 17px; font-weight: 500; line-height: 1; }

@media (max-width: 760px) {
  .solucoes-page .solution-row,
  .solucoes-page .solution-row:last-child { gap: 26px; padding: 22px; }
  .solucoes-page .solution-row-image { height: 310px; }
  .solucoes-page .solution-row.reversed .solution-row-image { order: 0; }
}
@media (max-width: 600px) {
  .floating-wa,
  .floating-wa:hover { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); min-height: 56px; padding: 7px 13px 7px 7px; gap: 9px; border-radius: 17px; }
  .floating-wa .floating-wa-mark { width: 40px; height: 40px; border-radius: 12px; }
  .floating-wa .floating-wa-mark svg { width: 23px; height: 23px; }
  .floating-wa .floating-wa-copy { display: none; }
  .floating-wa .floating-wa-mobile { display: inline; color: #fff; font-size: 12px; font-weight: 750; }
  .floating-wa .floating-wa-arrow { display: none; }
  .solucoes-page .solution-row-image { height: 270px; }
  .inner-page .catalog-invitation { border-radius: 21px; }
  .footer { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
}
@media (max-width: 380px) {
  .solucoes-page .solution-row,
  .solucoes-page .solution-row:last-child { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .floating-wa,
  .solucoes-page .solution-row .btn { transition: none; }
  .solucoes-page .solution-row .btn::before { display: none; }
}
