/* Torres Eco Solar — acabamento cinematográfico da página completa v3 */
:root {
  --tsv-ink: #020d16;
  --tsv-navy: #061b29;
  --tsv-blue: #0a293b;
  --tsv-solar: #ffb000;
  --tsv-solar-soft: #ffd36a;
  --tsv-paper: #f4f7f5;
  --tsv-line: rgba(255,255,255,.12);
}
html { scroll-behavior: smooth; }
body { overflow-x: clip; background: var(--tsv-ink); }
.tsv-page-progress {
  position: fixed; inset: 0 0 auto; z-index: 1200; height: 3px;
  pointer-events: none; transform: scaleX(var(--tsv-page-progress,0));
  transform-origin: 0 50%;
  background: linear-gradient(90deg,var(--tsv-solar),#ffe39f);
  box-shadow: 0 0 18px rgba(255,176,0,.38);
}
.tes-header--premium {
  transition: background-color .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.tes-header--premium.tsv-scrolled {
  background: rgba(2,13,22,.94) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.24);
  backdrop-filter: blur(16px);
}
.tp-projects {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    radial-gradient(circle at 85% 10%,rgba(255,176,0,.09),transparent 24%),
    linear-gradient(180deg,#061a29 0%,#082437 48%,#061923 100%) !important;
}
.tp-projects::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: linear-gradient(180deg,#000,transparent 78%);
  mask-image: linear-gradient(180deg,#000,transparent 78%);
}
.tp-feature,.tp-card {
  transform: translateZ(0);
  transition: transform .35s cubic-bezier(.2,.8,.2,1),border-color .25s ease,box-shadow .35s ease;
}
.tp-feature:hover,.tp-card:hover {
  transform: translate3d(0,-6px,0);
  border-color: rgba(255,176,0,.38) !important;
  box-shadow: 0 28px 70px rgba(0,0,0,.28),0 0 0 1px rgba(255,176,0,.07);
}
.tp-feature__media,.tp-card__media { overflow: hidden; }
.tp-feature__media img,.tp-card__media img {
  transform: translate3d(0,var(--tsv-image-y,0px),0) scale(1.045);
  transition: filter .35s ease;
  will-change: transform;
}
.tp-card:hover img,.tp-feature:hover img { filter: saturate(1.12) contrast(1.03); }
.tp-footer {
  position: relative; overflow: hidden;
  border-color: rgba(255,176,0,.28) !important;
  background: linear-gradient(135deg,rgba(255,176,0,.16),rgba(255,255,255,.04)) !important;
}
.tp-footer::after {
  content: ''; position: absolute; width: 260px; height: 260px; right: -90px; top: -150px;
  border-radius: 50%; background: rgba(255,176,0,.16); filter: blur(55px); pointer-events: none;
}
#sobre.section {
  position: relative; margin: 0 !important; padding: 128px 0 140px !important;
  overflow: hidden; color: #eef5f7;
  background:
    radial-gradient(circle at 14% 18%,rgba(255,176,0,.12),transparent 25%),
    linear-gradient(145deg,#03111c 0%,#071f2f 56%,#0a2a3c 100%);
}
#sobre.section::before {
  content: 'TORRES ECO SOLAR'; position: absolute; right: -1vw; top: 46px;
  color: rgba(255,255,255,.025); font-size: clamp(4rem,10vw,10rem);
  font-weight: 950; line-height: 1; letter-spacing: -.06em; white-space: nowrap; pointer-events: none;
}
#sobre .wrap { position: relative; z-index: 1; }
#sobre .wrap>h2 {
  max-width: 760px; margin: 0 0 24px; color: #fff;
  font-size: clamp(2.7rem,5vw,5.8rem); line-height: .92; letter-spacing: -.055em;
}
#sobre .wrap>h2::before {
  content: 'ENGENHARIA + PROXIMIDADE'; display: block; margin-bottom: 18px;
  color: var(--tsv-solar); font-size: .72rem; line-height: 1.2; letter-spacing: .16em;
}
#sobre .wrap>p {
  max-width: 790px; margin: 0 0 58px; color: rgba(238,245,247,.76);
  font-size: clamp(1.05rem,1.5vw,1.28rem); line-height: 1.75;
}
#sobre .grid-3 { gap: 18px; }
#sobre .card.info {
  position: relative; min-height: 230px; padding: 32px;
  overflow: hidden; border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px; color: #eef5f7;
  background: linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));
  box-shadow: 0 24px 70px rgba(0,0,0,.20);
  backdrop-filter: blur(12px);
  transition: transform .3s ease,border-color .3s ease,background .3s ease;
}
#sobre .card.info:hover {
  transform: translateY(-7px); border-color: rgba(255,176,0,.42);
  background: linear-gradient(145deg,rgba(255,176,0,.11),rgba(255,255,255,.045));
}
#sobre .card.info::after {
  content: ''; position: absolute; right: -50px; bottom: -70px; width: 150px; height: 150px;
  border: 1px solid rgba(255,176,0,.22); border-radius: 50%;
}
#sobre .tag {
  display: flex; align-items: center; gap: 12px; color: #fff;
  font-size: 1.08rem; font-weight: 850;
}
.tsv-index {
  display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center;
  border: 1px solid rgba(255,176,0,.42); border-radius: 50%;
  color: var(--tsv-solar); font-size: .72rem; letter-spacing: .08em;
}
#sobre .card.info p { margin: 28px 0 0; color: rgba(238,245,247,.68); line-height: 1.65; }
.tchat-section {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    radial-gradient(circle at 78% 34%,rgba(255,176,0,.10),transparent 28%),
    linear-gradient(180deg,#f4f7f5 0%,#e9efec 100%) !important;
}
.tchat-section::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(rgba(7,35,51,.13) 1px,transparent 1px);
  background-size: 24px 24px; opacity: .38;
  -webkit-mask-image: linear-gradient(90deg,#000,transparent 54%);
  mask-image: linear-gradient(90deg,#000,transparent 54%);
}
.tchat-intro h2 { text-wrap: balance; }
.tchat-card {
  box-shadow: 0 34px 90px rgba(4,27,40,.18),0 0 0 1px rgba(255,176,0,.10) !important;
  transform: translateZ(0);
}
#contato.section {
  position: relative; margin: 0 !important; padding: 110px 0 !important;
  overflow: hidden; color: #fff;
  background:
    radial-gradient(circle at 82% 35%,rgba(255,176,0,.20),transparent 28%),
    linear-gradient(120deg,#071c2a,#0a3145);
}
#contato .wrap { position: relative; z-index: 1; }
#contato h2 {
  margin: 0 0 14px; color: #fff;
  font-size: clamp(2.7rem,5vw,5.2rem); line-height: .95; letter-spacing: -.05em;
}
#contato .wrap>p { max-width: 650px; color: rgba(255,255,255,.72); font-size: 1.12rem; }
#contato .card.info {
  margin-top: 38px; padding: 28px 32px; display: grid;
  grid-template-columns: 1fr auto; grid-template-areas: 'tag button' 'text button';
  align-items: center; gap: 4px 28px;
  border: 1px solid rgba(255,255,255,.15); border-radius: 22px;
  background: rgba(255,255,255,.075); backdrop-filter: blur(12px);
  box-shadow: 0 24px 70px rgba(0,0,0,.20);
}
#contato .tag { grid-area: tag; display: flex; align-items: center; gap: 11px; color: #fff; }
#contato .card.info p { grid-area: text; color: rgba(255,255,255,.68); }
#contato .btn { grid-area: button; min-height: 54px; padding-inline: 26px; }
.footer {
  position: relative; border-top: 1px solid rgba(255,255,255,.09) !important;
  background: #020c14 !important;
}
.footer::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg,transparent,var(--tsv-solar),transparent); opacity: .48;
}
.footer a { transition: color .2s ease,transform .2s ease; }
.footer a:hover { color: var(--tsv-solar-soft) !important; transform: translateX(3px); }
.tsv-reveal {
  opacity: 0; transform: translate3d(0,32px,0);
  transition: opacity .72s cubic-bezier(.2,.8,.2,1),transform .82s cubic-bezier(.2,.8,.2,1);
  transition-delay: var(--tsv-delay,0ms);
}
.tsv-reveal.tsv-visible { opacity: 1; transform: none; }
.tsv-reveal--scale { transform: translate3d(0,24px,0) scale(.975); }
.tsv-reveal--scale.tsv-visible { transform: none; }
a:focus-visible,button:focus-visible,input:focus-visible {
  outline: 3px solid var(--tsv-solar) !important; outline-offset: 3px;
}
@media (max-width:900px) {
  #sobre.section { padding: 88px 0 96px !important; }
  #sobre .grid-3 { grid-template-columns: 1fr !important; }
  #sobre .card.info { min-height: 0; }
  #contato.section { padding: 82px 0 !important; }
  #contato .card.info { grid-template-columns: 1fr; grid-template-areas: 'tag' 'text' 'button'; gap: 10px; }
  #contato .btn { width: 100%; margin-top: 10px; }
  .tp-feature:hover,.tp-card:hover,#sobre .card.info:hover { transform: none; }
}
@media (max-width:600px) {
  #sobre.section { padding: 72px 0 78px !important; }
  #sobre .wrap>h2 { font-size: 2.8rem; }
  #sobre .wrap>p { margin-bottom: 36px; font-size: 1rem; }
  #sobre .card.info { padding: 24px; border-radius: 19px; }
  #contato.section { padding: 68px 0 !important; }
  #contato .card.info { padding: 22px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .tsv-page-progress { display: none; }
  .tsv-reveal,.tsv-reveal--scale { opacity: 1 !important; transform: none !important; transition: none !important; }
  .tp-feature__media img,.tp-card__media img { transform: scale(1.02) !important; will-change: auto; }
  .tp-feature,.tp-card,#sobre .card.info,.footer a,.tes-header--premium { transition: none !important; }
}

/* V4 — correções validadas no Chromium */
#sobre .wrap>h2 { max-width: 980px; text-wrap: balance; }
#sobre .tag {
  width: fit-content; min-height: 44px; padding: 0;
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
#sobre .tag::after {
  content: ''; width: 42px; height: 1px; margin-left: 4px;
  background: linear-gradient(90deg,var(--tsv-solar),transparent);
}
#sobre .card.info p { max-width: 32ch; }

.tchat-section {
  color: #071c2a !important;
  background:
    radial-gradient(circle at 78% 34%,rgba(255,176,0,.11),transparent 28%),
    linear-gradient(180deg,#f6f8f6 0%,#e9efec 100%) !important;
}
.tchat-intro,.tchat-intro h2,.tchat-intro p,.tchat-intro li,.tchat-intro small {
  color: #071c2a !important;
}
.tchat-intro h2 {
  max-width: 12ch;
  font-size: clamp(2.65rem,4.4vw,3.55rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
}
.tchat-intro>p {
  color: #3d5663 !important;
  font-size: 1.06rem;
  line-height: 1.7;
}
.tchat-intro li { color: #173b4a !important; }
.tchat-intro small { color: #526b76 !important; }
.tchat-kicker { color: #9a6500 !important; }

#contato h2 { max-width: 950px; text-wrap: balance; }
#contato .wrap>p { max-width: 760px; line-height: 1.7; }
#contato .btn.btn-whats {
  color: #071a25 !important;
  background: var(--tsv-solar) !important;
  box-shadow: 0 12px 32px rgba(255,176,0,.24);
}
#contato .btn.btn-whats:hover {
  background: #ffc332 !important;
  transform: translateY(-2px);
}
.footer-whats {
  color: var(--tsv-solar-soft) !important;
  border-color: rgba(255,176,0,.28) !important;
  background: rgba(255,176,0,.08) !important;
}

@media (max-width:600px) {
  .tchat-intro h2 { max-width: none; font-size: 2.55rem !important; }
  #contato h2 { font-size: 2.7rem; }
}

/* V5 — contraste do CTA após a galeria de projetos */
.tp-projects .tp-footer {
  color: #f7fbfc !important;
  background:
    radial-gradient(circle at 88% 20%,rgba(255,176,0,.17),transparent 30%),
    linear-gradient(135deg,#102d3b 0%,#173943 100%) !important;
}
.tp-projects .tp-footer p {
  position: relative;
  z-index: 1;
  color: #dce9ed !important;
}
.tp-projects .tp-footer p strong {
  color: #ffffff !important;
}
.tp-projects .tp-footer .tp-cta {
  position: relative;
  z-index: 1;
  color: #071522 !important;
  background: #ffb000 !important;
}
.tp-projects .tp-footer .tp-cta:hover {
  background: #ffc43d !important;
}
