:root {
  /* Paleta Premium Sensazionale */
  --caramel: #B5653E;
  --caramel-hover: #9A4F2E;
  --black-matte: #1A1A1A;
  --graphite: #3B3B3B;
  --urban-gray: #7A7A7A;
  --snow-gray: #E7E7E7;
  --offwhite: #F8F6F4;
  --white: #FFFFFF;

  /* Gradientes oficiais (dinâmicos via variáveis) */
  --premium-angle: 90deg;
  --premium-stop-start: 0%;
  --premium-stop-end: 100%;
  --architectonic-angle: 180deg;
  --neutral-angle: 180deg;
  --industrial-angle: 180deg;
  --overlay-alpha: 0.8;
  --grad-parallax-x: 0px;

  --grad-premium: linear-gradient(var(--premium-angle), var(--caramel) var(--premium-stop-start), var(--caramel-hover) var(--premium-stop-end));
  --grad-architectonic: linear-gradient(var(--architectonic-angle), var(--black-matte) 0%, var(--graphite) 100%);
  --grad-neutral: linear-gradient(var(--neutral-angle), var(--offwhite) 0%, var(--snow-gray) 100%);
  --grad-transparent-caramel: linear-gradient(90deg, rgba(181, 101, 62, var(--overlay-alpha)) 0%, rgba(181, 101, 62, 0) 100%);
  --grad-industrial: linear-gradient(var(--industrial-angle), var(--graphite) 0%, var(--urban-gray) 100%);

  --radius: 12px;
  --container: 1200px;
  --scroll-progress: 0; /* 0..1 controlado via JS */
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: Inter, 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: clamp(15px, 1.8vw, 18px);
  background: radial-gradient(
    circle at calc(50% + (var(--scroll-progress) * 20%)) calc(50% - (var(--scroll-progress) * 10%)),
    var(--black-matte),
    #141414 45%,
    #0E0E0E 85%
  );
  transition: background 0.25s ease-out;
  color: var(--graphite);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Imagens e mídia fluidas (mobile-first) */
img, picture, video, canvas { max-width: 100%; height: auto; }
svg { height: auto; }

/* Container responsivo e safe-area em telas com notch */
.container { padding: 0 20px; }
@supports(padding: max(0px)) {
  .topbar .container { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
}

/* --- Motion Utilities (Premium, Minimalista, Arquitetônico) --- */
:root {
  --a-ease-out: cubic-bezier(.2,.8,.2,1);
  --a-ease-in-out: cubic-bezier(.4,0,.2,1);
}

[data-animate],
[data-animate] > * {
  will-change: transform, opacity, filter;
}

/* Padrão base para fade-up: 10–20px, 0.6–0.9s */
[data-animate="fade-up"],
[data-animate="fade-up"] > * {
  --a-dur: .75s;
  --a-ease: var(--a-ease-out);
  --a-distance: 16px;
  opacity: 0;
  transform: translate3d(0, var(--a-distance), 0);
  filter: none;
  transition: opacity var(--a-dur) var(--a-ease), transform var(--a-dur) var(--a-ease), filter var(--a-dur) var(--a-ease);
}
[data-animate="fade-up"].in-view,
[data-animate="fade-up"].in-view > * { opacity: 1; transform: none; filter: none; }

/* Fade-In Lateral (Arquitetônico): 8–15px, 0.7–1s */
[data-animate="fade-left"],
[data-animate="fade-left"] > * { --a-dur: .85s; opacity: 0; transform: translate3d(-12px,0,0); transition: opacity var(--a-dur) var(--a-ease-in-out), transform var(--a-dur) var(--a-ease-in-out); }
[data-animate="fade-right"],
[data-animate="fade-right"] > * { --a-dur: .85s; opacity: 0; transform: translate3d(12px,0,0); transition: opacity var(--a-dur) var(--a-ease-in-out), transform var(--a-dur) var(--a-ease-in-out); }
[data-animate="fade-left"].in-view,
[data-animate="fade-left"].in-view > *,
[data-animate="fade-right"].in-view,
[data-animate="fade-right"].in-view > * { opacity: 1; transform: none; }

/* Zoom Minimalista: escala 0.96→1.00 em 0.5s */
[data-animate="zoom"],
[data-animate="zoom"] > * { --a-dur: .5s; opacity: 0; transform: scale(0.96); transition: opacity var(--a-dur) var(--a-ease-out), transform var(--a-dur) var(--a-ease-out); }
[data-animate="zoom"].in-view,
[data-animate="zoom"].in-view > * { opacity: 1; transform: scale(1); }

/* Fade + Blur Suave: blur 2–4px dissipando em 0.8–1s */
[data-animate="fade-blur"],
[data-animate="fade-blur"] > * { --a-dur: .9s; opacity: 0; filter: blur(3px); transform: translate3d(0,6px,0); transition: opacity var(--a-dur) var(--a-ease-in-out), filter var(--a-dur) var(--a-ease-in-out), transform var(--a-dur) var(--a-ease-in-out); }
[data-animate="fade-blur"].in-view,
[data-animate="fade-blur"].in-view > * { opacity: 1; filter: blur(0); transform: none; }

/* Staggered Animation: atraso progressivo 0.1s–0.15s */
[data-stagger] { --stagger-step: .12s; }
[data-stagger] > * { transition-delay: calc(var(--d, 0) * var(--stagger-step)); }
[data-stagger].in-view > * { /* as transições definidas acima serão aplicadas com atraso */ }
[data-stagger] > *:nth-child(1) { --d: 0; }
[data-stagger] > *:nth-child(2) { --d: 1; }
[data-stagger] > *:nth-child(3) { --d: 2; }
[data-stagger] > *:nth-child(4) { --d: 3; }
[data-stagger] > *:nth-child(5) { --d: 4; }
[data-stagger] > *:nth-child(6) { --d: 5; }
[data-stagger] > *:nth-child(7) { --d: 6; }
[data-stagger] > *:nth-child(8) { --d: 7; }
[data-stagger] > *:nth-child(9) { --d: 8; }

/* --- Ambient Light Premium (suave, minimalista, arquitetônico) --- */
.ambient-light { position: relative; z-index: 0; overflow: hidden; }
.ambient-light > * { position: relative; z-index: 1; }
.ambient-light::before {
  content: "";
  position: absolute;
  inset: -12%;
  z-index: 0;
  pointer-events: none;
  /* Camadas de luz: base neutra, destaque claro e detalhe quente */
  background-image:
    /* faixa de highlight que varre diagonalmente */
    linear-gradient(120deg, rgba(248,246,244,0) 45%, rgba(248,246,244,0.18) 52%, rgba(248,246,244,0) 59%),
    /* detalhe quente sutil (madeira) */
    linear-gradient(90deg, rgba(181,101,62,0.10) 0%, rgba(181,101,62,0) 55%),
    /* base neutra arquitetônica */
    linear-gradient(115deg, rgba(26,26,26,0.08) 0%, rgba(59,59,59,0.08) 100%);
  background-repeat: no-repeat;
  background-size: 240% 240%, 160% 160%, 140% 140%;
  background-position: -60% 0, 0 0, 0 0;
  opacity: 1;
  mix-blend-mode: soft-light;
  will-change: transform, background-position;
  animation: ambient-sweep-desktop 10s linear infinite, ambient-pos-desktop 10s linear infinite;
}

/* Tornar a luz mais perceptível sobre fundos claros do Hero */
.hero.ambient-light::before { mix-blend-mode: overlay; }
.location.ambient-light::before { mix-blend-mode: overlay; }

/* No main, efeito mais amplo e ainda sutil */
main.ambient-light::before { background-size: 160% 160%; animation-duration: 15s; }

@keyframes ambient-sweep-desktop {
  0%   { transform: translate3d(-8%, -2%, 0) rotate(0.6deg); }
  50%  { transform: translate3d( 8%,  2%, 0) rotate(-0.6deg); }
  100% { transform: translate3d(-8%, -2%, 0) rotate(0.6deg); }
}

@keyframes ambient-pos-desktop {
  0%   { background-position: -60% 0, 0 0, 0 0; }
  50%  { background-position:  40% 0, 0 0, 0 0; }
  100% { background-position: 160% 0, 0 0, 0 0; }
}

/* Mobile: efeito simplificado, movimento vertical e consumo leve */
@media (max-width: 560px) {
  .ambient-light::before {
    animation: ambient-sweep-mobile 12s linear infinite, ambient-pos-mobile 12s linear infinite;
    background-size: 200% 200%, 160% 160%, 160% 160%;
    /* reduz intensidade perceptiva para não poluir textos pequenos */
    filter: none;
  }
  @keyframes ambient-sweep-mobile {
    0%   { transform: translate3d(0, -6%, 0); }
    50%  { transform: translate3d(0,  6%, 0); }
    100% { transform: translate3d(0, -6%, 0); }
  }
  @keyframes ambient-pos-mobile {
    0%   { background-position: 0 -60%, 0 0, 0 0; }
    50%  { background-position: 0  40%, 0 0, 0 0; }
    100% { background-position: 0 160%, 0 0, 0 0; }
  }
}

/* Tablet: levemente mais perceptível, mas ainda minimalista */
@media (min-width: 561px) and (max-width: 1024px) {
  .ambient-light::before { animation-duration: 12s; }
}
[data-stagger] > *:nth-child(10) { --d: 9; }
[data-stagger] > *:nth-child(11) { --d: 10; }
[data-stagger] > *:nth-child(12) { --d: 11; }

/* Slide-Up Hero Section (entrada coordenada: 0.9s) */
.hero-content[data-animate="slide-up-hero"] h1 { opacity: 0; transform: translate3d(0,20px,0); transition: opacity .9s var(--a-ease-out), transform .9s var(--a-ease-out); }
.hero-content[data-animate="slide-up-hero"] .subhead { opacity: 0; transform: translate3d(0,12px,0); transition: opacity .9s var(--a-ease-out), transform .9s var(--a-ease-out); }
.hero-content[data-animate="slide-up-hero"] .cta-group { opacity: 0; transform: scale(0.96); transition: opacity .9s var(--a-ease-out), transform .9s var(--a-ease-out); }
.hero-content.in-view[data-animate="slide-up-hero"] h1 { opacity: 1; transform: none; transition-delay: 0s; }
.hero-content.in-view[data-animate="slide-up-hero"] .subhead { opacity: 1; transform: none; transition-delay: .12s; }
.hero-content.in-view[data-animate="slide-up-hero"] .cta-group { opacity: 1; transform: scale(1); transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  [data-animate], [data-animate] > *, .hero-content[data-animate="slide-up-hero"] h1, .hero-content[data-animate="slide-up-hero"] .subhead, .hero-content[data-animate="slide-up-hero"] .cta-group {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

/* Removido: camada antiga de gradiente animado para evitar conflitos */

h1, h2, h3 { font-family: 'Montserrat', Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; margin: 0 0 14px; color: var(--black-matte); }
h1 { font-size: 42px; letter-spacing: -0.02em; font-weight: 700; }
h2 { font-size: 32px; font-weight: 700; }
h3 { font-size: 20px; font-weight: 500; }
p { margin: 0 0 16px; line-height: 1.7; color: var(--graphite); font-weight: 400; }
.subhead { font-size: 18px; color: #555; font-weight: 500; }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

.topbar {
  position: sticky;
  top: 0;
  backdrop-filter: blur(2px);
  background: var(--black-matte);
  border-bottom: 1px solid rgba(122,122,122,0.25);
  z-index: 20;
}
.topbar .container {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  padding: 12px 20px;
}
.logo { display: block; height: 56px; width: auto; object-fit: contain; }
.logo-small { height: 26px; }
.top-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.top-actions a { color: var(--offwhite); text-decoration: none; font-weight: 500; font-size: 14px; }
.top-actions a:hover { opacity: 0.8; }

/* Ajustes finos de alinhamento e tamanho no topo */
.topbar .container { padding-right: 12px; }
.top-actions { justify-content: flex-end; gap: 10px; }
.top-actions .link-cta, .top-actions .link-whatsapp { font-size: 14px; }
a[data-whatsapp] .whatsapp-logo { width: 18px; height: 18px; }

.section { padding: 80px 0; background: var(--offwhite); border-top: 1px solid rgba(122,122,122,0.2); border-bottom: 1px solid rgba(122,122,122,0.2); }

.hero { background: var(--offwhite); }
.hero h1 { position: relative; }
.hero h1::after {
  content: "";
  display: block;
  width: 72px;
  height: 4px;
  margin-top: 8px;
  border-radius: 999px;
  background: var(--grad-premium);
  transition: background 2s ease-in-out;
}
.hero-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: center; }
.about-grid, .conversion-grid, .location-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; }
.cta-group { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 18px; }
.badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; margin-top: 18px; font-weight: 600; }
.badge-gold { background: rgba(181,101,62,0.12); color: var(--caramel); border: 1px solid rgba(181,101,62,0.35); }

.image-placeholder { position: relative; border: 1px dashed rgba(122,122,122,0.3); border-radius: var(--radius); display: grid; place-items: center; color: var(--urban-gray); background: var(--offwhite); box-shadow: 0 8px 24px rgba(26,26,26,0.08); }
.image-placeholder span { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.image-placeholder.large { height: 380px; }
.image-placeholder.medium { height: 260px; }
.image-placeholder.small { height: 160px; }
.image-placeholder.wide { width: 100%; height: 220px; }

.hero .image-placeholder.large::after,
.carousel .image-placeholder.wide::after,
.before-after .image-placeholder.small::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--grad-transparent-caramel);
  transform: translateX(var(--grad-parallax-x));
  pointer-events: none;
  border-radius: inherit;
  transition: opacity 2s ease-in-out, transform 2s ease-in-out;
}

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 20px; border-radius: var(--radius); font-weight: 700; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease, background 2s ease-in-out; }
.btn:focus-visible { outline: 2px solid #D4AF37; outline-offset: 2px; }
.btn-primary { background: var(--grad-premium); color: var(--white); box-shadow: 0 6px 20px rgba(181,101,62,0.28); border: 1px solid rgba(181,101,62,0.5); }
.btn-primary:hover { background: linear-gradient(90deg, var(--caramel-hover) 0%, var(--caramel-hover) 100%); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(181,101,62,0.36); }
.btn-secondary { border: 1px solid rgba(122,122,122,0.3); color: var(--graphite); background: transparent; }
.btn-secondary:hover { background: rgba(122,122,122,0.1); }
.btn-green { background: var(--grad-premium); color: var(--white); box-shadow: 0 6px 20px rgba(181,101,62,0.28); border: 1px solid rgba(181,101,62,0.5); }
.btn-green:hover { background: linear-gradient(90deg, var(--caramel-hover) 0%, var(--caramel-hover) 100%); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(181,101,62,0.36); }

.about-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 40px; }
/* Evitar corte de texto em itens de grid no mobile */
.about-grid > * { min-width: 0; min-height: 0; }
@media (max-width: 1024px) {
  .about-grid { overflow: visible; }
}
.about-content h2, .about-content p { overflow-wrap: anywhere; word-break: break-word; hyphens: auto; }

/* Ajuste fino de tipografia da seção Sobre para telas pequenas */
@media (max-width: 560px) {
  .about-content h2 {
    font-size: clamp(22px, 5.6vw, 26px);
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
  }
  .about-content p {
    font-size: clamp(15px, 4.2vw, 17px);
    line-height: 1.65;
  }
}
.about { background: var(--grad-neutral); transition: background 2s ease-in-out; }
.features { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.feature { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius); border: 1px solid rgba(122,122,122,0.25); background: var(--snow-gray); }

@media (max-width: 560px) {
  .features { grid-template-columns: 1fr; }
  .feature .icon { flex: 0 0 24px; }
}

.icon { width: 24px; height: 24px; stroke: var(--graphite); stroke-width: 2; fill: none; }

.services { background: var(--grad-neutral); transition: background 2s ease-in-out; }
.services h2 { margin-bottom: 24px; }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.card { border: 1px solid rgba(122,122,122,0.25); background: var(--snow-gray); border-radius: var(--radius); padding: 20px; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.card:hover { transform: translateY(-4px); border-color: rgba(122,122,122,0.35); box-shadow: 0 8px 24px rgba(26,26,26,0.08); }
.card-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: rgba(181,101,62,0.12); border: 1px solid rgba(181,101,62,0.3); margin-bottom: 12px; }
.card-icon svg { width: 24px; height: 24px; stroke: var(--caramel); fill: none; stroke-width: 2; }

.services .card-icon { background: var(--grad-industrial); border: 1px solid rgba(122,122,122,0.35); }
.services .card-icon svg { stroke: var(--white); }

.before-after .grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.before-after .pair { display: grid; gap: 10px; }
.section-desc { color: var(--graphite); margin-bottom: 18px; }

/* Depoimentos em Áudio — player estilo WhatsApp com estética premium */
.audio-testimonials { margin-top: 26px; }
 .audio-title { margin: 0 0 14px; color: var(--black-matte); }
.audio-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
 .audio-card { border: 1px solid rgba(122,122,122,0.25); background: transparent; border-radius: 12px; padding: 14px; display: grid; gap: 10px; align-items: center; }
.audio-card .label { font-size: 12px; color: var(--graphite); opacity: 0.85; }
.audio-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.audio-header .who { font-weight: 600; color: var(--black-matte); }

 .audio-player { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; background: transparent; border: 1px solid rgba(122,122,122,0.25); border-radius: 12px; padding: 12px; }
.audio-player .icon { width: 22px; height: 22px; color: var(--graphite); opacity: 0.9; }
.audio-player .play-btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(122,122,122,0.35); background: var(--white); display: grid; place-items: center; cursor: pointer; transition: transform .15s ease-out, box-shadow .15s ease-out, background .2s ease; }
.audio-player.playing .play-btn { transform: scale(1.06); box-shadow: 0 6px 16px rgba(181,101,62,0.28); }
.audio-player .play-btn svg { width: 16px; height: 16px; fill: none; stroke: var(--black-matte); stroke-width: 2; }

.progress { position: relative; width: 100%; height: 6px; border-radius: 999px; background: rgba(180,180,180,0.3); overflow: hidden; cursor: pointer; }
.progress .bar { position: absolute; left: 0; top: 0; height: 100%; width: 0%; background: #B5653E; box-shadow: 0 0 0 rgba(181,101,62,0); transition: width .15s linear, box-shadow .25s ease; }
.audio-player.playing .progress .bar { box-shadow: 0 0 12px rgba(181,101,62,0.55); }
.progress .knob { position: absolute; top: 50%; transform: translate(-50%, -50%); left: 0%; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 1px solid rgba(122,122,122,0.4); box-shadow: 0 2px 6px rgba(0,0,0,0.15); transition: left .15s linear; }
.time { font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; font-size: 12px; color: var(--graphite); min-width: 80px; text-align: right; }

@media (max-width: 560px) {
  .audio-list { grid-template-columns: 1fr; }
  .audio-player { grid-template-columns: auto 1fr auto; gap: 10px; padding: 12px; }
  .audio-player .play-btn { width: 46px; height: 46px; }
  .progress { height: 8px; }
  .progress .knob { width: 16px; height: 16px; }
}
@media (min-width: 900px) {
  .audio-list { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .progress { height: 5px; }
}

/* WhatsApp-like voice message card (dark bubble, waveform, speed) */
.wa-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.wa-avatar { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(255,255,255,0.14); box-shadow: 0 2px 8px rgba(0,0,0,0.25); }
.wa-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wa-bubble { background: #1f2428; color: #e9edf1; border-radius: 12px; padding: 12px; border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 4px 16px rgba(0,0,0,0.25); width: 100%; min-width: 0; }
.wa-row { display: grid; grid-template-columns: auto 1fr auto auto; gap: 12px; align-items: center; }
.wa-row .wa-wave { min-width: 0; overflow: hidden; }

@media (max-width: 480px) {
  .wa-card { grid-template-columns: 42px 1fr; }
  .wa-bubble { padding: 10px; }
  .wa-play { width: 38px; height: 38px; }
  .wa-speed { min-width: 46px; }
}
.wa-play { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.06); display: grid; place-items: center; cursor: pointer; transition: transform .15s ease, background .2s ease; }
.wa-play:hover { background: rgba(255,255,255,0.12); }
.wa-play svg { width: 18px; height: 18px; stroke: #e9edf1; fill: none; stroke-width: 2; }
.wa-wave { height: 26px; display: flex; align-items: center; gap: 2px; }
.wa-wave .bar { width: 4px; height: calc(var(--h, 0.6) * 100%); background: rgba(233,237,241,0.65); border-radius: 999px; transition: background .15s linear, height .15s linear; }
.wa-wave .bar.played { background: #B5653E; box-shadow: 0 0 10px rgba(181,101,62,0.5); }
.wa-speed { min-width: 52px; height: 30px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.06); color: #e9edf1; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.wa-emoji { width: 28px; height: 28px; display: grid; place-items: center; color: rgba(233,237,241,0.9); }
.wa-meta { margin-top: 6px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: rgba(233,237,241,0.8); }

@media (max-width: 560px) {
  .wa-card { grid-template-columns: auto 1fr; }
  .wa-play { width: 46px; height: 46px; }
  .wa-wave { height: 30px; }
}

.portfolio { background: var(--grad-architectonic); color: var(--offwhite); transition: background 2s ease-in-out; }
.portfolio-header { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; margin-bottom: 12px; }
.portfolio h2 { color: var(--white); }
.carousel { --slides-per-view: 3; --carousel-gap: 18px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - var(--carousel-gap) * (var(--slides-per-view) - 1)) / var(--slides-per-view)); gap: var(--carousel-gap); overflow-x: auto; scroll-snap-type: x mandatory; padding: 12px; border-radius: var(--radius); background: transparent; }
.carousel:focus-visible { outline: 2px solid #D4AF37; outline-offset: 4px; }
.carousel-item { scroll-snap-align: start; opacity: 0.92; transform: translateY(8px); transition: opacity 0.5s ease-in-out, transform 0.5s ease-out, box-shadow 0.5s ease; display: flex; align-items: center; justify-content: center; background: var(--snow-gray, #f5f6f7); border-radius: 12px; box-shadow: 0 8px 24px rgba(26,26,26,0.10); height: clamp(180px, 22vw, 320px); }
.carousel.in-view .carousel-item { opacity: 1; transform: translateY(0); }
.carousel-item.is-active { opacity: 1; }
.carousel-item img { max-width: 100%; max-height: 100%; width: auto; height: auto; display: block; object-fit: contain; border-radius: inherit; transition: transform 0.25s ease, filter 0.25s ease; }
@media (hover:hover) { .carousel-item:hover img { transform: scale(1.03); filter: saturate(1.02); } }
.carousel-controls { display: none; }
.carousel-slider { display: flex; align-items: center; gap: 10px; }
.carousel-slider input[type="range"] { -webkit-appearance: none; width: 220px; height: 6px; background: rgba(180,180,180,0.28); border-radius: 999px; outline: none; transition: background 0.2s ease; }
.carousel-slider input[type="range"]:hover { background: rgba(160,160,160,0.38); }
.carousel-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #D4AF37; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer; }
.carousel-slider input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: transparent; }
.carousel-slider input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #D4AF37; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer; border: none; }
.carousel-slider input[type="range"]::-moz-range-track { height: 6px; border-radius: 999px; background: rgba(180,180,180,0.28); }
.carousel { scrollbar-width: thin; scrollbar-color: rgba(150,150,150,0.6) transparent; }
.carousel::-webkit-scrollbar { height: 8px; }
.carousel::-webkit-scrollbar-track { background: transparent; }
.carousel::-webkit-scrollbar-thumb { background: rgba(150,150,150,0.6); border-radius: 999px; }
@media (max-width: 900px) { .carousel { --slides-per-view: 2; --carousel-gap: 16px; } }
@media (max-width: 560px) { .carousel { --slides-per-view: 1; --carousel-gap: 12px; } }

/* Esconder barras de rolagem no carrossel de brindes */
.gifts-carousel { scrollbar-width: none; }
.gifts-carousel::-webkit-scrollbar { display: none; }

/* --- Padrão modular com track/slide/dots (quando estrutura com .track/.slide existir) --- */
.carousel .track { overflow: hidden; width: 100%; }
.carousel .track .inner { display: flex; gap: var(--gap, 16px); transition: transform 400ms ease; will-change: transform; }
.carousel .slide { flex: 0 0 var(--slide-width, 256px); border-radius: 12px; overflow: hidden; background: rgba(0,0,0,.04); display: flex; align-items: center; justify-content: center; }
.carousel .slide img { display: block; width: 100%; height: auto; object-fit: contain; margin: 0 auto; }
.carousel .nav { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: none; background: rgba(0,0,0,.45); color: #fff; cursor: pointer; }
.carousel .nav:focus-visible { outline: 2px solid #D4AF37; outline-offset: 2px; }
.carousel .nav.prev { left: 8px; }
.carousel .nav.next { right: 8px; }
.carousel .nav:hover { background: rgba(0,0,0,.6); }
.carousel .dots { display: flex; gap: 8px; justify-content: center; margin-top: 12px; }
.carousel .dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(0,0,0,.25); border: none; cursor: pointer; }
.carousel .dot.active, .carousel .dot[aria-current="true"] { background: rgba(0,0,0,.7); }
@media (min-width: 768px) { .carousel .slide { flex-basis: 320px; } }
@media (min-width: 1024px) { .carousel .slide { flex-basis: 384px; } }

/* Ajustes específicos para o carrossel da seção Sobre: 1 por vez, largura total */
#about-carousel { --slide-width: 100%; --gap: 0; }
#about-carousel { display: block; position: relative; overflow: hidden; grid-auto-flow: initial; grid-auto-columns: initial; gap: 0; scroll-snap-type: none; padding: 0; }
#about-carousel .track { overflow: hidden; width: 100%; }
#about-carousel .track .inner { display: flex; gap: var(--gap, 0); transition: transform 400ms ease; will-change: transform; }
#about-carousel .slide { flex: 0 0 100%; margin: 0; height: clamp(320px, 48vw, 560px); background: var(--snow-gray, #f5f6f7); border-radius: 12px; display: flex; align-items: center; justify-content: center; }
#about-carousel .slide img { width: 100%; height: auto; max-height: 100%; object-fit: contain; object-position: center; display: block; }
#about-carousel .nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; opacity: 0.92; }
#about-carousel .nav.prev { left: 6px; }
#about-carousel .nav.next { right: 6px; }
#about-carousel .dots { margin-top: 10px; }
@media (max-width: 560px) { #about-carousel .nav { width: 32px; height: 32px; } }

.differentials { background: var(--grad-industrial); transition: background 2s ease-in-out; }
.differentials h2 { color: var(--white); }
.differentials .diff-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.diff-card { display: flex; align-items: center; gap: 10px; border: 1px solid rgba(122,122,122,0.25); background: var(--snow-gray); border-radius: var(--radius); padding: 14px; }

.conversion-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: center; }
.conversion-meta { display: flex; gap: 14px; align-items: center; margin: 16px 0; }
.seal { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(181,101,62,0.4); color: var(--caramel); background: rgba(181,101,62,0.1); font-weight: 700; letter-spacing: 0.02em; }
.timer { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(122,122,122,0.25); color: var(--graphite); background: var(--snow-gray); font-weight: 700; }

.form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border: 1px solid rgba(122,122,122,0.25); background: var(--offwhite); border-radius: var(--radius); padding: 20px; }
.budget { background: var(--grad-neutral); transition: background 2s ease-in-out; }
.form-row { display: flex; flex-direction: column; gap: 8px; }
.form-row:nth-child(7) { grid-column: 1 / -1; }
.form-actions { grid-column: 1 / -1; display: flex; justify-content: flex-start; }
.form-actions .btn { width: 100%; max-width: 420px; }
label { font-size: 13px; color: var(--graphite); font-weight: 500; }
input, select, textarea { background: var(--white); border: 1px solid rgba(122,122,122,0.3); color: var(--black-matte); border-radius: 10px; padding: 12px; font-size: 15px; outline: none; }
input:focus, select:focus, textarea:focus { border-color: rgba(181,101,62,0.5); box-shadow: 0 0 0 3px rgba(181,101,62,0.12); }

.location { background: var(--grad-neutral); transition: background 2s ease-in-out; }
.location-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: start; }
.map-placeholder { height: 300px; border: 1px dashed rgba(122,122,122,0.3); border-radius: var(--radius); display: grid; place-items: center; color: var(--urban-gray); background: var(--offwhite); overflow: hidden; }
.map-placeholder iframe { width: 100%; height: 100%; display: block; }

/* Endereço mais legível na seção de localização */
.address { display: block; font-size: 16px; line-height: 1.7; color: var(--urban-gray); margin: 8px 0 16px; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .address { font-size: clamp(14px, 3.8vw, 16px); line-height: 1.8; }
}
.address { color: var(--graphite); margin: 8px 0 14px; }

.footer { padding: 40px 0; border-top: 1px solid rgba(122,122,122,0.25); background: var(--grad-architectonic); color: var(--offwhite); transition: background 2s ease-in-out; }
.footer-grid { display: grid; grid-template-columns: 1fr auto; align-items: center; }
.rights { color: #bdbdbd; font-size: 13px; }
.footer-links { display: flex; gap: 14px; }
.footer-links a { color: var(--offwhite); text-decoration: none; }
.footer-links a:hover { color: var(--white); opacity: 0.9; }

.whatsapp-float { position: fixed; right: 18px; bottom: 18px; z-index: 30; display: inline-flex; align-items: center; gap: 8px; background: #25D366; border: 1px solid #1DA851; color: #ffffff; padding: 12px 16px; border-radius: 999px; text-decoration: none; backdrop-filter: blur(6px); box-shadow: 0 10px 28px rgba(29,168,81,0.36); transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease; }
.whatsapp-float:hover { background: #128C7E; border-color: #128C7E; box-shadow: 0 12px 30px rgba(18,140,126,0.40); }
.whatsapp-float svg { width: 20px; height: 20px; stroke: #ffffff; stroke-width: 2; fill: none; }
 .whatsapp-float img.whatsapp-logo { width: 20px; height: 20px; display: inline-block; }

 /* Tamanho e alinhamento da logo nos diversos botões/links */
 .whatsapp-logo { width: 20px; height: 20px; display: inline-block; }
 a[data-whatsapp] { display: inline-flex; align-items: center; gap: 8px; }
 a.btn[data-whatsapp] .whatsapp-logo { width: 20px; height: 20px; }
 .link-whatsapp { display: inline-flex; align-items: center; gap: 8px; }

/* Unificar estilo dos botões de WhatsApp com o botão flutuante */
a.btn.btn-secondary[data-whatsapp] { background: #25D366; border-color: #1DA851; color: #ffffff; }
a.btn.btn-secondary[data-whatsapp]:hover { background: #128C7E; border-color: #128C7E; color: #ffffff; }
a.btn[data-whatsapp] svg { stroke: #ffffff; stroke-width: 2; fill: none; }

[data-animate] { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.in-view { opacity: 1; transform: translateY(0); }

@media (max-width: 1024px) {
  .hero-grid, .about-grid, .conversion-grid, .location-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .section { padding: 48px 0; }
  h1 { font-size: clamp(26px, 5.5vw, 34px); }
  h2 { font-size: clamp(22px, 4.6vw, 26px); }
  .cards { grid-template-columns: 1fr; }
  .before-after .grid { grid-template-columns: 1fr 1fr; }
  .form { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 12px; }
}
@media (max-width: 560px) {
  .container { padding: 0 16px; }
  .topbar .container { padding: 10px 16px; }
  .logo { height: 44px; }
  .btn { min-height: 44px; padding: 12px 16px; -webkit-tap-highlight-color: transparent; }
  .hero .image-placeholder.large { height: 300px; }
  #about-carousel .slide { height: clamp(260px, 58vw, 480px); }
  .carousel .nav { width: 32px; height: 32px; }
  /* Em telas muito estreitas, favoreça imagem centralizada sem corte lateral */
  #about-carousel .slide img { height: 100%; width: auto; max-width: 100%; margin: 0 auto; }
}

/* Touch-friendly inputs */
input, select, textarea { touch-action: manipulation; }

/* Faixa preta de qualidades (destaque responsivo) */
.qualities-strip { background: #000000; color: #ffffff; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); }
.qualities-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: center; justify-items: center; padding: 18px 0; }
.quality { font-weight: 700; font-size: clamp(1.05rem, 1.2vw + 0.8rem, 1.35rem); letter-spacing: 0.3px; text-align: center; line-height: 1.2; padding: 12px 16px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); transition: background-color 200ms ease, border-color 200ms ease; }
.quality:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.18); }
@media (max-width: 900px) { .qualities-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 12px; } }
@media (max-width: 560px) { .qualities-grid { grid-template-columns: 1fr; } .quality { padding: 10px 12px; } }
.about-media img.about-image { width: 100%; height: auto; display: block; border-radius: var(--radius); box-shadow: 0 8px 24px rgba(26,26,26,0.08); }
.image-placeholder img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }

/* Seção Premium de Brindes */
.gifts { background: #F8F6F4; }
.gifts h2 { color: #1A1A1A; }
.gifts-carousel { --slides-per-view: 3; --carousel-gap: 20px; }
.gifts-carousel .carousel-item { background: transparent; box-shadow: none; padding: 0; }
.gift-card { border: 1px solid rgba(181,101,62,0.20); background: #ffffff; border-radius: 14px; padding: 18px; display: grid; gap: 12px; transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease; }
.gift-card:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 12px 32px rgba(26,26,26,0.12); border-color: rgba(181,101,62,0.35); }
.gift-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.gift-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; background: rgba(181,101,62,0.10); border: 1px solid rgba(181,101,62,0.30); }
.gift-icon svg { width: 24px; height: 24px; stroke: #B5653E; fill: none; stroke-width: 2; }
.gift-icon img { width: 24px; height: 24px; object-fit: contain; display: block; }
.gift-title h3 { margin: 0; color: #1A1A1A; font-weight: 700; }
.gift-title .value { color: #3B3B3B; font-weight: 600; font-size: 14px; }
.gift-list { margin: 0; padding-left: 18px; color: #3B3B3B; }
.gift-list li { margin: 6px 0; display: flex; align-items: center; gap: 10px; }
.gift-list li img { width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.12)); flex-shrink: 0; }
/* Ícones abaixo dos itens de brinde */
.gift-icons { margin-top: 8px; display: flex; align-items: center; gap: 10px; }
.gift-icons img { width: 40px; height: 40px; object-fit: contain; display: inline-block; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.15)); }
.gift-actions { display: flex; justify-content: flex-start; }
.badge { padding: 8px 12px; border-radius: 999px; font-weight: 700; letter-spacing: .02em; border: 1px solid rgba(181,101,62,0.35); color: #B5653E; background: rgba(181,101,62,0.10); }
.badge-gold { border-color: rgba(212,175,55,0.55); color: #D4AF37; background: rgba(212,175,55,0.12); animation: goldShine 1800ms ease-in-out infinite; }
.badge-instant { border-color: rgba(181,101,62,0.45); color: #B5653E; background: rgba(181,101,62,0.15); }
.badge-glow { border-color: rgba(181,101,62,0.55); color: #B5653E; background: rgba(181,101,62,0.12); animation: glowPulse 2200ms ease-in-out infinite; box-shadow: 0 0 0 rgba(181,101,62,0); }

@keyframes glowPulse { 0%,100% { box-shadow: 0 0 0 rgba(181,101,62,0); } 50% { box-shadow: 0 0 18px rgba(181,101,62,0.45); } }
@keyframes goldShine { 0% { filter: saturate(1) brightness(1); } 50% { filter: saturate(1.1) brightness(1.12); } 100% { filter: saturate(1) brightness(1); }
}

/* Responsividade dos brindes */
@media (max-width: 900px) { .gifts-carousel { --slides-per-view: 2; --carousel-gap: 16px; } }
@media (max-width: 560px) { .gifts-carousel { --slides-per-view: 1; --carousel-gap: 14px; } }

/* CTA final */
.gifts-cta { background: #1A1A1A; color: #F8F6F4; }
.gifts-cta h2 { color: #F8F6F4; }
.gifts-cta .section-desc { color: #bdbdbd; }
.btn-pulse { position: relative; }
.btn-pulse { animation: btnPulse 2200ms ease-in-out infinite; }
@keyframes btnPulse { 0%,100% { transform: scale(1); box-shadow: 0 6px 20px rgba(181,101,62,0.28); } 50% { transform: scale(1.02); box-shadow: 0 10px 28px rgba(181,101,62,0.36); } }
/* Ajustes específicos para o carrossel do Portfólio: 1 por vez, centralizado e sem barra lateral */
#portfolio-carousel { --slide-width: 100%; --gap: 0; display: block; position: relative; overflow: hidden; grid-auto-flow: initial; grid-auto-columns: initial; gap: 0; scroll-snap-type: none; padding: 0; }
#portfolio-carousel .track { overflow: hidden; width: 100%; }
#portfolio-carousel .track .inner { display: flex; gap: var(--gap, 0); transition: transform 400ms ease; will-change: transform; }
#portfolio-carousel .slide { flex: 0 0 100%; margin: 0; height: clamp(320px, 48vw, 560px); background: transparent; border-radius: 0; display: flex; align-items: center; justify-content: center; }
#portfolio-carousel .slide img { width: 100%; height: auto; max-height: 100%; object-fit: contain; object-position: center; display: block; margin: 0 auto; }
#portfolio-carousel .nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; opacity: 0.92; }
#portfolio-carousel .nav.prev { left: 6px; }
#portfolio-carousel .nav.next { right: 6px; }
#portfolio-carousel .dots { margin-top: 10px; }

/* Ajustes específicos para o carrossel de Depoimentos: 1 por vez, largura total e responsivo */
#depoimentos-carousel { --slide-width: 100%; --gap: 0; display: block; position: relative; overflow: hidden; grid-auto-flow: initial; grid-auto-columns: initial; gap: 0; scroll-snap-type: none; padding: 0; }
#depoimentos-carousel .track { overflow: hidden; width: 100%; }
#depoimentos-carousel .track .inner { display: flex; gap: var(--gap, 0); transition: transform 400ms ease; will-change: transform; }
#depoimentos-carousel .slide { flex: 0 0 100%; margin: 0; height: clamp(340px, 68vw, 780px); background: transparent; border-radius: 0; display: flex; align-items: center; justify-content: center; }
#depoimentos-carousel .slide img { width: 100%; height: auto; max-height: 100%; object-fit: contain; object-position: center; display: block; margin: 0 auto; border-radius: 0; }
#depoimentos-carousel .nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; opacity: 0.92; }
#depoimentos-carousel .nav.prev { left: 6px; }
#depoimentos-carousel .nav.next { right: 6px; }
#depoimentos-carousel .dots { margin-top: 10px; }
@media (max-width: 560px) {
  #depoimentos-carousel .nav { width: 32px; height: 32px; }
  /* Aumentar a altura dos slides no mobile para leitura confortável */
  #depoimentos-carousel .slide { height: clamp(420px, 100vw, 840px); }
}