/* Landing V2 - design system alinhado ao agenciamw7design.com.br (Poppins, wine/rose/paper) */

.landing-v2 {
  --v2-graphite: #191419;
  --v2-graphite-2: #241c22;
  --v2-ink: #2c2329;
  --v2-muted: #6e666c;
  --v2-wine: #a62346;
  --v2-wine-deep: #7e1533;
  --v2-rose: #d8446e;
  --v2-paper: #f7f4f3;
  --v2-paper-2: #efe9ea;
  --v2-line: rgba(44, 35, 41, .13);
  --v2-sans: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
  --v2-r-sm: 10px;
  --v2-r-md: 16px;
  --v2-r-lg: 24px;
  --v2-shadow-sm: 0 2px 8px rgba(25, 20, 25, .05);
  --v2-shadow-md: 0 14px 34px -14px rgba(25, 20, 25, .22);
  --v2-shadow-lg: 0 34px 70px -28px rgba(25, 20, 25, .4);
  --v2-ease: cubic-bezier(.22, .61, .36, 1);
  background: var(--v2-paper);
  color: var(--v2-ink);
  font-family: var(--v2-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.landing-v2 .topo { background: var(--v2-graphite); }
.landing-v2 header.topo { padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.06); transition: padding .35s var(--v2-ease), background .35s var(--v2-ease), box-shadow .35s var(--v2-ease); }
.landing-v2 header.topo.color_menu { padding: 12px 0; background: rgba(25,20,25,.96) !important; box-shadow: 0 10px 30px -18px rgba(0,0,0,.8) !important; -webkit-backdrop-filter: saturate(140%) blur(8px); backdrop-filter: saturate(140%) blur(8px); }
.landing-v2 .conteudo { overflow: hidden; }
.landing-v2 .v2-section { position: relative; padding: 96px 0; }
.landing-v2 .v2-kicker { display: inline-block; margin-bottom: 18px; color: var(--v2-wine); font-size: 13px; font-weight: 600; letter-spacing: .18em; line-height: 1.4; text-transform: uppercase; }
.landing-v2 .conteudo .v2-section h2 { margin: 0; padding: 0; color: var(--v2-graphite); font-family: var(--v2-sans); font-size: clamp(26px, 2.9vw, 38px); font-weight: 600; letter-spacing: -.028em; line-height: 1.18; text-align: inherit; text-wrap: balance; }
.landing-v2 .v2-section-heading { max-width: 560px; }
.landing-v2 .conteudo .v2-section-heading h2 { margin-bottom: 22px; }
.landing-v2 .v2-section-heading-wide { max-width: 850px; margin-bottom: 48px; }
.landing-v2 .v2-section-heading-wide > p { max-width: 640px; margin-top: 18px; color: var(--v2-muted); font-size: 15.5px; line-height: 1.7; }
.landing-v2 .v2-reading-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 8%; align-items: start; }
.landing-v2 .v2-prose p { margin-bottom: 20px; color: var(--v2-ink); font-size: 15.5px; line-height: 1.78; }
.landing-v2 .v2-icon { display: inline-flex; flex: none; align-items: center; justify-content: center; color: var(--v2-wine); }
.landing-v2 .v2-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- hero ---------- */
.landing-v2 .v2-hero { position: relative; display: flex; align-items: center; min-height: 100vh; padding: 118px 0 70px; overflow: hidden; background: var(--v2-graphite); color: #fff; }
.landing-v2 .v2-hero-bg { position: absolute; inset: 0; background-image: url('../images/hero-studio-premium.webp'); background-size: cover; background-position: center right; }
.landing-v2 .v2-hero::after { position: absolute; inset: 0; content: ''; pointer-events: none;
  background: linear-gradient(180deg, rgba(18,14,18,.9) 0%, rgba(18,14,18,.34) 14%, rgba(18,14,18,0) 26%),
              linear-gradient(100deg, rgba(18,14,18,.93) 0%, rgba(18,14,18,.76) 42%, rgba(18,14,18,.24) 72%, rgba(18,14,18,.05) 100%); }
.landing-v2 .v2-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; width: 100%; }
.landing-v2 .v2-hero-copy { max-width: 810px; padding-top: 4px; color: #fff; }
.landing-v2 .v2-hero .v2-kicker { color: var(--v2-rose); }
.landing-v2 .v2-hero h1 { max-width: 21ch; margin: 0 0 22px; color: #fff; font-family: var(--v2-sans); font-size: clamp(34px, 4.2vw, 58px); font-weight: 600; letter-spacing: -.035em; line-height: 1.06; text-wrap: balance; }
.landing-v2 .v2-hero h1 em { color: var(--v2-rose); font-style: normal; }
.landing-v2 .v2-hero-copy > p { max-width: 66ch; margin-bottom: 30px; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.75; }

/* ---------- faixa de prova, entre o hero e os servicos ---------- */
/* Mesmo tratamento visual da faixa do outro dominio da empresa: fundo claro
   com divisor de 1px entre os itens, e o icone num quadro de canto assimetrico
   com brilho interno. Fica clara de proposito, separando o hero grafite do
   bloco de servicos, que e vinho. */
.landing-v2 .v2-stats { padding: 0; border-bottom: 1px solid var(--v2-line); background: var(--v2-paper); }
.landing-v2 .v2-stats-in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.landing-v2 .v2-stats-i { position: relative; display: flex; flex-direction: column; align-items: center; padding: 30px 24px 34px; text-align: center; }
.landing-v2 .v2-stats-i + .v2-stats-i::before { position: absolute; top: 31px; bottom: 31px; left: 0; width: 1px; background: var(--v2-line); content: ''; }
.landing-v2 .v2-stats-ico { position: relative; display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 16px; border: 1px solid rgba(166, 35, 70, .16); border-radius: 17px 17px 17px 5px; background: radial-gradient(circle at 78% 20%, rgba(216, 68, 110, .2) 0 4px, transparent 5px), linear-gradient(145deg, #fff 5%, #f1e4e6 100%); box-shadow: inset 0 1px 0 #fff, 0 13px 24px -20px rgba(126, 21, 51, .75); color: var(--v2-wine); transition: transform .35s var(--v2-ease), border-color .35s var(--v2-ease), box-shadow .35s var(--v2-ease); }
.landing-v2 .v2-stats-ico svg { width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.landing-v2 .v2-stats-ico svg .v2-stats-spark { stroke: var(--v2-rose); stroke-width: 2.2; }
.landing-v2 .v2-stats-i:hover .v2-stats-ico { border-color: rgba(166, 35, 70, .3); box-shadow: inset 0 1px 0 #fff, 0 18px 28px -18px rgba(126, 21, 51, .55); transform: translateY(-4px) rotate(-1deg); }
.landing-v2 .v2-stats-i strong { color: var(--v2-wine); font-family: var(--v2-sans); font-size: 34px; font-weight: 600; letter-spacing: -.03em; line-height: 1; white-space: nowrap; }
.landing-v2 .v2-stats-i span { margin-top: 8px; color: var(--v2-muted); font-size: 10.5px; font-weight: 500; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }

/* ---------- movimento sutil ---------- */
.landing-v2.v2-motion-ready .v2-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--v2-ease), transform .7s var(--v2-ease); transition-delay: var(--v2-delay, 0ms); will-change: opacity, transform; }
.landing-v2.v2-motion-ready .v2-reveal.is-visible { opacity: 1; transform: translateY(0); will-change: auto; }
.landing-v2 .v2-hero-bg { animation: v2-hero-breathe 18s ease-in-out infinite alternate; }
.landing-v2 .v2-card-icon, .landing-v2 .v2-differential-icon, .landing-v2 .v2-step-icon { transition: color .3s var(--v2-ease), background .3s var(--v2-ease), transform .3s var(--v2-ease); }
.landing-v2 .v2-card:hover .v2-card-icon, .landing-v2 .v2-differential-grid article:hover .v2-differential-icon, .landing-v2 .v2-steps li:hover .v2-step-icon { background: var(--v2-wine); color: #fff; transform: translateY(-2px); }
@keyframes v2-hero-breathe { from { transform: scale(1); } to { transform: scale(1.025); } }

/* ---------- botoes ---------- */
.landing-v2 .v2-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.landing-v2 .v2-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 17px 38px; border: 2px solid transparent; border-radius: 999px; font-family: var(--v2-sans); font-size: 16px; font-weight: 600; letter-spacing: -.01em; text-decoration: none; transition: transform .25s var(--v2-ease), background .25s var(--v2-ease), border-color .25s var(--v2-ease), color .25s var(--v2-ease), box-shadow .25s var(--v2-ease); }
.landing-v2 .v2-button svg { flex: none; display: block; width: 20px; height: 20px; transition: transform .25s var(--v2-ease); }
.landing-v2 .v2-button:hover { transform: translateY(-2px); text-decoration: none; }
.landing-v2 .v2-button:hover svg { transform: scale(1.12); }
.landing-v2 .v2-button:active { transform: translateY(0); }
.landing-v2 .v2-button-primary { background: var(--v2-wine); border-color: var(--v2-wine); color: #fff; box-shadow: 0 10px 26px -12px rgba(152, 46, 70, .8); }
.landing-v2 .v2-button-primary:hover { background: var(--v2-wine-deep); border-color: var(--v2-wine-deep); color: #fff; box-shadow: 0 16px 34px -12px rgba(152, 46, 70, .95); }
.landing-v2 .v2-button-secondary { background: transparent; border-color: rgba(255,255,255,.34); color: #fff; }
.landing-v2 .v2-button-secondary:hover { border-color: var(--v2-rose); color: var(--v2-rose); }
.landing-v2 .v2-button-light { background: #fff; border-color: var(--v2-line); color: var(--v2-graphite); box-shadow: var(--v2-shadow-sm); }
.landing-v2 .v2-button-light:hover { border-color: rgba(152, 46, 70, .45); color: var(--v2-wine); box-shadow: var(--v2-shadow-md); }

/* ---------- secoes ---------- */
.landing-v2 .v2-intro { background: #fff; }
.landing-v2 .v2-profile { background: var(--v2-paper); }
.landing-v2 .v2-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.landing-v2 .v2-card { position: relative; min-height: 245px; padding: 32px 28px; overflow: hidden; border: 1px solid rgba(44,35,41,.08); border-radius: var(--v2-r-md); background: #fff; box-shadow: var(--v2-shadow-sm); transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), border-color .35s var(--v2-ease); }
.landing-v2 .v2-card::after { position: absolute; right: 0; bottom: 0; width: 82px; height: 82px; border-radius: 82px 0 0; background: rgba(166,35,70,.035); content: ''; transition: transform .35s var(--v2-ease), background .35s var(--v2-ease); }
.landing-v2 .v2-card:hover { transform: translateY(-6px); border-color: rgba(166,35,70,.22); box-shadow: var(--v2-shadow-md); }
.landing-v2 .v2-card:hover::after { transform: scale(1.35); background: rgba(166,35,70,.065); }
.landing-v2 .v2-card-icon { width: 52px; height: 52px; margin-bottom: 25px; border: 1px solid rgba(166,35,70,.14); border-radius: 14px; background: rgba(166,35,70,.075); }
.landing-v2 .v2-card h3 { margin-bottom: 10px; color: var(--v2-graphite); font-size: 17px; font-weight: 600; letter-spacing: -.015em; line-height: 1.3; }
.landing-v2 .v2-card p { color: var(--v2-muted); font-size: 13.5px; line-height: 1.7; }

.landing-v2 .v2-services { background: linear-gradient(125deg, var(--v2-wine-deep), var(--v2-wine) 62%, #b73358); }
.landing-v2 .v2-services .v2-kicker { color: rgba(255,255,255,.72); }
.landing-v2 .conteudo .v2-services h2 { color: #fff; }
.landing-v2 .v2-services .v2-section-heading-wide > p { color: rgba(255,255,255,.72); }
/* Servicos: primeira secao depois do banner. Cards numerados sobre o
   gradiente vinho, no mesmo padrao usado no agenciamw7design. */
.landing-v2 .v2-services-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 40px 56px; align-items: end; margin-bottom: 54px; }
.landing-v2 .v2-services-head .v2-section-heading { max-width: 100%; }
.landing-v2 .conteudo .v2-services-head h2 { margin-bottom: 0; }
.landing-v2 .v2-services-lead { margin: 0; color: rgba(255,255,255,.78); font-size: 16px; line-height: 1.72; }
.landing-v2 .v2-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.landing-v2 .v2-service-card { position: relative; display: flex; flex-direction: column; padding: 30px 26px 26px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--v2-r-md); background: rgba(255,255,255,.05); color: #fff; text-decoration: none; transition: transform .3s var(--v2-ease), background .3s var(--v2-ease), border-color .3s var(--v2-ease); }
.landing-v2 .v2-service-card:hover { border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.1); color: #fff; text-decoration: none; transform: translateY(-4px); }
.landing-v2 .v2-service-num { position: absolute; top: 26px; right: 24px; color: rgba(255,255,255,.4); font-family: var(--v2-sans); font-size: 12px; font-weight: 500; letter-spacing: .16em; }
.landing-v2 .v2-service-icon { display: flex; flex: none; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 26px; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; color: #fff; transition: border-color .3s var(--v2-ease), background .3s var(--v2-ease); }
.landing-v2 .v2-service-card:hover .v2-service-icon { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.1); }
.landing-v2 .v2-service-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.landing-v2 .v2-service-card strong { margin-bottom: 12px; font-family: var(--v2-sans); font-size: 19px; font-weight: 600; letter-spacing: -.02em; line-height: 1.28; }
.landing-v2 .v2-service-card small { flex: 1; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.66; }
.landing-v2 .v2-service-arrow { margin-top: 22px; color: rgba(255,255,255,.55); font-size: 20px; line-height: 1; transition: transform .25s var(--v2-ease), color .25s var(--v2-ease); }
.landing-v2 .v2-service-card:hover .v2-service-arrow { color: #fff; transform: translateX(5px); }
.landing-v2 .v2-services-nota { margin: 34px 0 0; color: rgba(255,255,255,.62); font-size: 13.5px; letter-spacing: .01em; line-height: 1.7; }
.landing-v2 .v2-services-nota strong { color: rgba(255,255,255,.9); font-weight: 600; }
.landing-v2 .v2-services-nota a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.4); text-underline-offset: 3px; }
.landing-v2 .v2-services-nota a:hover { color: #fff; text-decoration-color: #fff; }

.landing-v2 .v2-differentials { background: #fff; }
/* O texto de apoio ficava colado no topo enquanto o titulo ao lado e
   bem mais alto, o que deixava a linha solta no alto da secao. Centrado
   na vertical, ele acompanha o bloco do titulo. */
.landing-v2 .v2-differentials .v2-reading-grid { align-items: center; }
.landing-v2 .v2-differential-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 48px; }
.landing-v2 .v2-differential-grid article { position: relative; padding: 34px 32px 34px 94px; border: 1px solid transparent; border-radius: var(--v2-r-md); background: var(--v2-paper); transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), border-color .35s var(--v2-ease); }
.landing-v2 .v2-differential-grid article:hover { transform: translateY(-6px); border-color: rgba(166,35,70,.13); box-shadow: var(--v2-shadow-md); }
.landing-v2 .v2-differential-icon { position: absolute; top: 32px; left: 30px; width: 44px; height: 44px; border-radius: 12px; background: #fff; box-shadow: var(--v2-shadow-sm); }
.landing-v2 .v2-differential-icon svg { width: 23px; height: 23px; }
.landing-v2 .v2-differential-grid h3 { margin-bottom: 12px; color: var(--v2-graphite); font-size: 18px; font-weight: 600; letter-spacing: -.018em; line-height: 1.3; }
.landing-v2 .v2-differential-grid p { max-width: 52ch; color: var(--v2-muted); font-size: 14px; line-height: 1.72; }

.landing-v2 .v2-proof { background: var(--v2-paper-2); }
.landing-v2 .v2-portfolio-grid { display: grid; grid-template-columns: repeat(3, 370px); justify-content: center; gap: 22px; }
.landing-v2 .v2-portfolio-card { overflow: hidden; border: 1px solid rgba(44,35,41,.08); border-radius: var(--v2-r-md); background: #fff; box-shadow: var(--v2-shadow-sm); transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), border-color .35s var(--v2-ease); }
.landing-v2 .v2-portfolio-card:hover { transform: translateY(-6px); box-shadow: var(--v2-shadow-md); }
.landing-v2 .v2-portfolio-card a { display: block; color: var(--v2-graphite); text-decoration: none; }
.landing-v2 .v2-portfolio-card span { display: block; padding: 20px 24px 24px; }
.landing-v2 .v2-portfolio-card strong, .landing-v2 .v2-portfolio-card small { display: block; }
.landing-v2 .v2-portfolio-card strong { margin-bottom: 5px; font-size: 17px; font-weight: 600; letter-spacing: -.015em; }
.landing-v2 .v2-portfolio-card small { color: var(--v2-muted); font-size: 13px; text-transform: capitalize; }

/* A faixa do processo era papel chapado com cartoes brancos, e o vinho so
   aparecia no hover. Agora a cor esta no estado normal: lavagem de fundo,
   numero da etapa e icone ja em vinho. */
.landing-v2 .v2-process { overflow: hidden; background:
  radial-gradient(120% 90% at 8% 0%, rgba(216, 68, 110, .10), transparent 58%),
  radial-gradient(100% 80% at 92% 100%, rgba(166, 35, 70, .09), transparent 62%),
  var(--v2-paper); }
.landing-v2 .v2-steps { counter-reset: v2-etapa; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 48px; }
.landing-v2 .v2-steps::before { position: absolute; top: 58px; right: 10%; left: 10%; height: 1px; background: linear-gradient(90deg, transparent, rgba(166,35,70,.42) 12%, rgba(166,35,70,.42) 88%, transparent); content: ''; }
.landing-v2 .v2-steps li { counter-increment: v2-etapa; position: relative; padding: 32px 28px; border: 1px solid rgba(44,35,41,.08); border-radius: var(--v2-r-md); background: rgba(255,255,255,.94); box-shadow: var(--v2-shadow-sm); list-style: none; transition: transform .35s var(--v2-ease), box-shadow .35s var(--v2-ease), border-color .35s var(--v2-ease); }
.landing-v2 .v2-steps li::after { position: absolute; top: 26px; right: 26px; color: var(--v2-wine); font-size: 13px; font-weight: 700; letter-spacing: .1em; opacity: .5; content: counter(v2-etapa, decimal-leading-zero); }
.landing-v2 .v2-steps li:hover { transform: translateY(-6px); border-color: rgba(166,35,70,.2); box-shadow: var(--v2-shadow-md); }
.landing-v2 .v2-step-icon { position: relative; z-index: 1; width: 52px; height: 52px; margin-bottom: 24px; border: 1px solid rgba(166,35,70,.28); border-radius: 50%; background: linear-gradient(160deg, #fff, #fdeef2); color: var(--v2-wine); box-shadow: 0 0 0 8px var(--v2-paper), 0 6px 16px -8px rgba(166,35,70,.45); }
.landing-v2 .v2-step-icon svg { width: 24px; height: 24px; }
.landing-v2 .v2-steps h3 { margin-bottom: 10px; color: var(--v2-graphite); font-size: 17px; font-weight: 600; letter-spacing: -.015em; }
.landing-v2 .v2-steps p { color: var(--v2-muted); font-size: 13.5px; line-height: 1.7; }

.landing-v2 .v2-editorial { overflow: hidden; background: linear-gradient(125deg, var(--v2-wine-deep), var(--v2-wine) 62%, #b73358); color: #fff; }
.landing-v2 .v2-editorial::after { position: absolute; top: -190px; right: -130px; width: 520px; height: 520px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018); content: ''; pointer-events: none; }
.landing-v2 .v2-editorial-grid { position: relative; z-index: 1; }
.landing-v2 .v2-editorial-grid { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: 8%; justify-content: center; }
.landing-v2 .v2-editorial-label { padding-top: 8px; border-top: 1px solid rgba(255,255,255,.42); }
.landing-v2 .v2-editorial-label span, .landing-v2 .v2-editorial-label small { display: block; }
.landing-v2 .v2-editorial-label span { margin-top: 14px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.landing-v2 .v2-editorial-label small { margin-top: 6px; color: rgba(255,255,255,.66); font-size: 13px; }
.landing-v2 .conteudo .v2-editorial h2 { margin-bottom: 28px; color: #fff; }
.landing-v2 .v2-editorial article > p { margin-bottom: 18px; color: rgba(255,255,255,.88); font-size: 15.5px; line-height: 1.78; }
.landing-v2 .v2-editorial-links { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.25); }
.landing-v2 .v2-editorial-links a { color: #fff; font-weight: 600; text-decoration: underline; }

.landing-v2 .v2-faq { background: #fff; }
.landing-v2 .v2-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8%; align-items: start; }
.landing-v2 .v2-faq-list { border-top: 1px solid var(--v2-line); }
.landing-v2 .v2-faq-list details { border-bottom: 1px solid var(--v2-line); transition: padding .25s var(--v2-ease); }
.landing-v2 .v2-faq-list details[open] { padding-left: 18px; }
.landing-v2 .v2-faq-list summary { position: relative; padding: 24px 55px 24px 0; color: var(--v2-graphite); cursor: pointer; font-size: 16px; font-weight: 600; letter-spacing: -.012em; line-height: 1.45; list-style: none; }
.landing-v2 .v2-faq-list summary::-webkit-details-marker { display: none; }
.landing-v2 .v2-faq-list summary::after { position: absolute; top: 17px; right: 2px; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid rgba(166,35,70,.18); border-radius: 50%; background: rgba(166,35,70,.055); color: var(--v2-wine); content: '+'; font-family: var(--v2-sans); font-size: 22px; font-weight: 400; line-height: 1; }
.landing-v2 .v2-faq-list details[open] summary::after { content: '\2212'; }
.landing-v2 .v2-faq-list details p { padding: 0 45px 24px 0; color: var(--v2-muted); font-size: 14.5px; line-height: 1.75; }

.landing-v2 .v2-cta { overflow: hidden; background: var(--v2-graphite); color: #fff; text-align: center; }
.landing-v2 .v2-cta::before { position: absolute; top: -260px; left: 50%; width: 760px; height: 520px; border-radius: 50%; background: radial-gradient(ellipse, rgba(216,68,110,.17), transparent 68%); content: ''; pointer-events: none; transform: translateX(-50%); }
.landing-v2 .v2-cta-inner { position: relative; z-index: 1; max-width: 860px; }
.landing-v2 .v2-cta .v2-kicker { color: var(--v2-rose); }
.landing-v2 .conteudo .v2-cta h2 { color: #fff; }
.landing-v2 .v2-cta p { max-width: 60ch; margin: 20px auto 30px; color: rgba(255,255,255,.82); font-size: 15.5px; line-height: 1.72; }
.landing-v2 .v2-cta .v2-actions { justify-content: center; }

/* Os dois blocos abaixo, carrossel e formulario, ficavam DEPOIS das media
   queries. Com a mesma especificidade, a regra que vem depois vence, entao
   todo o responsivo deles era ignorado: no celular o card do depoimento
   mantinha o flex-basis de 3 colunas e o formulario continuava em 2 colunas.
   Movidos para ca em 03/09/2026. Nao devolver para o fim do arquivo. */

/* ---------- depoimentos: carrossel ---------- */
/* O titulo desta secao vinha diferente do resto da v2: centralizado, maior e
   mais pesado. A culpa e da cascata antiga, que mira por ID.

     layout.css   #depoimentos h2  (1,0,1)  text-align: center, max-width: 900px
     modern.css   #depoimentos h2  (1,0,1)  font-size e margin com !important

   Seletor de classe nao alcanca um ID, e por isso existia um remendo valendo
   so acima de 1024px. Aqui o titulo passa a seguir o mesmo tratamento das
   outras secoes em qualquer largura. */
.landing-v2 #depoimentos .v2-section-heading h2 {
  max-width: none;
  margin: 0 0 22px !important;
  padding: 0;
  color: var(--v2-graphite) !important;
  font-family: var(--v2-sans) !important;
  font-size: clamp(26px, 2.9vw, 38px) !important;
  font-weight: 600 !important;
  letter-spacing: -.028em !important;
  line-height: 1.18 !important;
  text-align: left;
}
.landing-v2 .v2-reviews { background: #fff; }
.landing-v2 .v2-depo { position: relative; }
.landing-v2 .v2-depo-track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 14px; margin: -6px -2px -14px; scrollbar-width: none; }
.landing-v2 .v2-depo-track::-webkit-scrollbar { display: none; }
.landing-v2 .v2-depo-item { position: relative; display: flex; flex: 0 0 calc((100% - 44px) / 3); flex-direction: column; padding: 34px 30px 32px; overflow: hidden; border: 1px solid rgba(44,35,41,.07); border-radius: var(--v2-r-md); background: var(--v2-paper); box-shadow: var(--v2-shadow-sm); scroll-snap-align: start; }
.landing-v2 .v2-depo-item::after { position: absolute; top: 2px; right: 18px; color: rgba(166,35,70,.09); content: '\201C'; font-family: Georgia, serif; font-size: 92px; line-height: 1; pointer-events: none; }
.landing-v2 .v2-depo-nota { display: flex; gap: 3px; margin-bottom: 18px; color: var(--v2-wine); }
.landing-v2 .v2-depo-nota svg { width: 17px; height: 17px; fill: currentColor; }
.landing-v2 .v2-depo-item blockquote { flex: 1; margin: 0 0 22px; color: var(--v2-ink); font-size: 15px; line-height: 1.72; }
.landing-v2 .v2-depo-quem { display: flex; align-items: center; gap: 13px; padding-top: 18px; border-top: 1px solid var(--v2-line); }
.landing-v2 .v2-depo-av { display: flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(152, 46, 70, .1); color: var(--v2-wine); font-size: 17px; font-weight: 600; }
img.v2-depo-av, .landing-v2 img.v2-depo-av { object-fit: cover; }
.landing-v2 .v2-depo-quem cite { display: block; color: var(--v2-graphite); font-size: 15px; font-style: normal; font-weight: 600; }
.landing-v2 .v2-depo-quem span:not(.v2-depo-av) { display: block; color: var(--v2-muted); font-size: 13px; line-height: 1.45; }
.landing-v2 .v2-depo-acoes { display: flex; justify-content: center; margin-top: 38px; }
.landing-v2 .v2-google { display: inline-flex; align-items: center; gap: 11px; padding: 14px 26px; border: 1px solid var(--v2-line); border-radius: 999px; background: #fff; color: var(--v2-graphite); font-size: 15px; font-weight: 600; text-decoration: none; transition: transform .25s var(--v2-ease), border-color .25s var(--v2-ease), box-shadow .25s var(--v2-ease); }
.landing-v2 .v2-google:hover { border-color: rgba(152, 46, 70, .35); box-shadow: var(--v2-shadow-md); color: var(--v2-graphite); text-decoration: none; transform: translateY(-2px); }
.landing-v2 .v2-google > svg:first-child { flex: none; }
.landing-v2 .v2-google-ext { flex: none; fill: none; stroke: var(--v2-muted); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.landing-v2 .v2-google:hover .v2-google-ext { stroke: var(--v2-wine); }
.landing-v2 .v2-depo-nav { display: flex; justify-content: center; gap: 12px; margin-top: 22px; }
.landing-v2 .v2-depo-nav button { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 1.5px solid var(--v2-line); border-radius: 50%; background: #fff; color: var(--v2-graphite); cursor: pointer; transition: background .25s var(--v2-ease), border-color .25s var(--v2-ease), color .25s var(--v2-ease); }
.landing-v2 .v2-depo-nav button:hover { border-color: var(--v2-wine); background: var(--v2-wine); color: #fff; }
.landing-v2 .v2-depo-nav svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- formulario de orcamento ---------- */
.landing-v2 .v2-orcamento { background: var(--v2-paper-2); }
.landing-v2 .v2-orcamento .orcamento { padding: 92px 0; }
.landing-v2 .v2-orcamento h2 { margin-bottom: 10px; color: var(--v2-graphite); font-family: var(--v2-sans); font-size: clamp(26px, 2.9vw, 38px); font-weight: 600; letter-spacing: -.028em; line-height: 1.18; text-transform: none; }
.landing-v2 .v2-orcamento h2 span { color: var(--v2-wine); }
.landing-v2 .v2-orcamento h2 br { display: none; }
.landing-v2 .v2-orcamento h2, .landing-v2 .v2-orcamento h3 { text-align: center; }
.landing-v2 .v2-orcamento h3 { margin-bottom: 32px; color: var(--v2-muted); font-size: 15.5px; font-weight: 400; line-height: 1.7; }
.landing-v2 .v2-orcamento .form_contato { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 22px; max-width: 860px; margin: 0 auto; }
.landing-v2 .v2-orcamento .form_contato::after { content: none; }
.landing-v2 .v2-orcamento fieldset { display: contents; border: 0; margin: 0; padding: 0; }
.landing-v2 .v2-orcamento .wrapper-input { display: flex; float: none !important; width: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; flex-direction: column; gap: 7px; }
.landing-v2 .v2-orcamento .wrapper-input.one, .landing-v2 .v2-orcamento .wrapper-input.col-1 { grid-column: 1 / -1; }
.landing-v2 .v2-orcamento label { position: static !important; color: var(--v2-ink); font-size: 13px; font-weight: 600; letter-spacing: .01em; line-height: 1.4; opacity: 1 !important; transform: none !important; }
.landing-v2 .v2-orcamento .input-style { width: 100%; height: auto; min-height: 48px; padding: 12px 16px; border: 1px solid var(--v2-line); border-radius: var(--v2-r-sm); background: #fff; color: var(--v2-ink); font-family: var(--v2-sans); font-size: 15px; transition: border-color .25s var(--v2-ease), box-shadow .25s var(--v2-ease); }
.landing-v2 .v2-orcamento textarea.input-style { height: auto; min-height: 132px; margin-bottom: 0; resize: vertical; }
.landing-v2 .v2-orcamento .input-style:focus { border-color: var(--v2-wine); box-shadow: 0 0 0 3px rgba(152, 46, 70, .12); outline: none; }
.landing-v2 .v2-orcamento .input-style::placeholder { color: var(--v2-muted); opacity: .72; }
.landing-v2 .v2-orcamento .errorlist { margin: 0; padding: 0; color: var(--v2-wine); font-size: 12.5px; list-style: none; }
.landing-v2 .v2-orcamento button, .landing-v2 .v2-orcamento input[type="submit"] { grid-column: 1 / -1; justify-self: start; padding: 17px 38px; border: 2px solid var(--v2-wine); border-radius: 999px; background: var(--v2-wine); color: #fff; cursor: pointer; font-family: var(--v2-sans); font-size: 16px; font-weight: 600; transition: transform .25s var(--v2-ease), background .25s var(--v2-ease); }
.landing-v2 .v2-orcamento button:hover, .landing-v2 .v2-orcamento input[type="submit"]:hover { transform: translateY(-2px); background: var(--v2-wine-deep); border-color: var(--v2-wine-deep); }

/* faixa de clientes atendidos
   O trilho tem a lista duplicada e anda ate -50%, que e exatamente o fim da
   primeira copia; nesse ponto a segunda esta na posicao inicial da primeira e
   o reinicio nao aparece. Por isso a duplicata no template nao e enfeite.
   As bordas usam mascara para a logo sumir gradualmente em vez de cortar. */
.landing-v2 .v2-clientes { padding-bottom: 78px; overflow: hidden; }
.landing-v2 .v2-clientes-faixa { margin-top: 46px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); }
/* 190s no desktop e 124s no mobile mantem a velocidade que a faixa tinha
   com 28 logos (87 px/s e 97 px/s). A duracao acompanha a quantidade: ao
   acrescentar clientes, recalcule, senao a faixa acelera. */
.landing-v2 .v2-clientes-trilho { display: flex; width: max-content; align-items: center; animation: v2-desliza 190s linear infinite; }
.landing-v2 .v2-clientes-trilho img { width: 150px; height: 52px; flex: none; margin: 0 24px; object-fit: contain; opacity: .82; transition: opacity .25s var(--v2-ease); }
.landing-v2 .v2-clientes-faixa:hover .v2-clientes-trilho { animation-play-state: paused; }
.landing-v2 .v2-clientes-trilho img:hover { opacity: 1; }
@keyframes v2-desliza { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

/* Contexto local (landing/contexto_local.py). Fundo papel entre os
   depoimentos e o processo, que sao claros; a coluna da esquerda fica
   presa na rolagem para os setores e os cases acompanharem a leitura. */
.landing-v2 .v2-local { background: var(--v2-paper); border-top: 1px solid var(--v2-line); }
.landing-v2 .v2-local-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 8%; align-items: start; }
.landing-v2 .v2-local-head { position: sticky; top: 110px; }
.landing-v2 .v2-local-kicker { display: inline-flex; align-items: center; gap: 9px; }
.landing-v2 .v2-local-kicker svg { flex: none; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.landing-v2 .conteudo .v2-local-head h2 { margin-bottom: 30px; }
.landing-v2 .v2-local-rotulo { margin: 0 0 12px; color: var(--v2-muted); font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.landing-v2 .v2-local-setores, .landing-v2 .v2-local-cases { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
.landing-v2 .v2-local-setores li { padding: 8px 14px; border: 1px solid rgba(166, 35, 70, .22); border-radius: 999px; background: #fff; color: var(--v2-ink); font-size: 13.5px; font-weight: 500; line-height: 1.2; }
.landing-v2 .v2-local-cases a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: var(--v2-graphite); color: #fff; font-size: 13.5px; font-weight: 600; line-height: 1.2; text-decoration: none; transition: background .25s var(--v2-ease); }
.landing-v2 .v2-local-cases a:hover { background: var(--v2-wine); }
.landing-v2 .v2-local-cases svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--v2-ease); }
.landing-v2 .v2-local-cases a:hover svg { transform: translateX(3px); }
.landing-v2 .v2-local-texto p:first-child { color: var(--v2-graphite); font-size: 17px; line-height: 1.72; }
.landing-v2 .v2-local-texto .v2-local-hub { margin: 30px 0 0; padding-top: 22px; border-top: 1px solid var(--v2-line); font-size: 14.5px; }
.landing-v2 .v2-local-hub a { color: var(--v2-wine); font-weight: 600; text-decoration: none; }
.landing-v2 .v2-local-hub a:hover { text-decoration: underline; }

@media (max-width: 1199px) {
  .landing-v2 .v2-portfolio-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1020px) {
  .landing-v2 .v2-depo-item { flex: 0 0 calc((100% - 22px) / 2); }
  .landing-v2 .v2-card-grid, .landing-v2 .v2-steps { grid-template-columns: repeat(2, 1fr); }
  .landing-v2 .v2-service-grid { grid-template-columns: repeat(2, 1fr); }
  .landing-v2 .v2-stats-i { padding-inline: 26px; }
  .landing-v2 .v2-services-head { grid-template-columns: 1fr; gap: 24px; }
  .landing-v2 .v2-portfolio-grid { grid-template-columns: repeat(2, 1fr); }
  .landing-v2 .v2-hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .landing-v2 .v2-steps::before { display: none; }
}

@media (max-width: 760px) {
  .landing-v2 .v2-section { padding: 68px 0; }
  .landing-v2 .v2-clientes { padding-bottom: 58px; }
  .landing-v2 .v2-clientes-faixa { margin-top: 34px; }
  .landing-v2 .v2-clientes-trilho { animation-duration: 124s; }
  .landing-v2 .v2-clientes-trilho img { width: 112px; height: 40px; margin: 0 17px; }
  .landing-v2 .v2-hero { min-height: 0; padding: 112px 0 64px; }
  .landing-v2 .v2-hero-bg { background-position: center; }
  .landing-v2 .v2-hero-copy { max-width: 100%; }
  .landing-v2 .v2-hero h1 { max-width: 18ch; }
  .landing-v2 .v2-reading-grid, .landing-v2 .v2-faq-grid, .landing-v2 .v2-editorial-grid { grid-template-columns: 1fr; gap: 38px; }
  .landing-v2 .v2-local-grid { grid-template-columns: 1fr; gap: 34px; }
  .landing-v2 .v2-local-head { position: static; }
  .landing-v2 .v2-local-texto p:first-child { font-size: 16px; }
  .landing-v2 .v2-card-grid, .landing-v2 .v2-differential-grid, .landing-v2 .v2-portfolio-grid, .landing-v2 .v2-steps { grid-template-columns: 1fr; }
  .landing-v2 .v2-orcamento .form_contato { grid-template-columns: 1fr; gap: 16px; }
  .landing-v2 .v2-orcamento .orcamento { padding: 68px 0; }
  /* 16px e o minimo que evita o zoom automatico do Safari no iOS ao focar
     um campo. Abaixo disso a pagina amplia sozinha e o layout desalinha. */
  .landing-v2 .v2-orcamento .input-style { min-height: 52px; font-size: 16px; }
  .landing-v2 .v2-orcamento textarea.input-style { min-height: 112px; }
  .landing-v2 .v2-orcamento button,
  .landing-v2 .v2-orcamento input[type="submit"] {
    justify-self: stretch;
    width: 100%;
    padding: 16px 24px;
  }
  /* Carrossel no mobile: um card por vez, centralizado na tela. O snap por
     centro mantem o card alinhado independentemente da largura do aparelho. */
  .landing-v2 .v2-depo-track {
    gap: 14px;
    margin: -6px 0 -14px;
    padding: 6px 0 14px;
    scroll-padding: 0;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .landing-v2 .v2-depo-item { flex: 0 0 100%; padding: 26px 24px; scroll-snap-align: center; }
  /* controles logo abaixo dos cards; o link do Google desce para o fim */
  .landing-v2 .v2-depo { display: flex; flex-direction: column; }
  .landing-v2 .v2-depo-track { order: 1; }
  .landing-v2 .v2-depo-nav { order: 2; margin-top: 18px; }
  .landing-v2 .v2-depo-acoes { order: 3; margin-top: 22px; }
  .landing-v2 .v2-depo-nav button { width: 48px; height: 48px; }
  .landing-v2 .v2-services-head { grid-template-columns: 1fr; gap: 22px; margin-bottom: 36px; }
  .landing-v2 .v2-service-grid { grid-template-columns: 1fr; gap: 14px; }
  .landing-v2 .v2-stats-in { grid-template-columns: repeat(2, 1fr); }
  .landing-v2 .v2-stats-i { padding: 25px 16px 27px; }
  .landing-v2 .v2-stats-i:nth-child(odd)::before { display: none; }
  .landing-v2 .v2-stats-i:nth-child(n+3) { border-top: 1px solid var(--v2-line); }
  .landing-v2 .v2-stats-i strong { font-size: 32px; }
  .landing-v2 .v2-stats-ico { width: 52px; height: 52px; margin-bottom: 14px; border-radius: 15px 15px 15px 5px; }
  .landing-v2 .v2-stats-ico svg { width: 32px; height: 32px; }
  .landing-v2 .v2-service-card { padding: 26px 22px 22px; }
  .landing-v2 .v2-service-icon { width: 48px; height: 48px; margin-bottom: 20px; }
  .landing-v2 .v2-service-card strong { font-size: 17px; }
  .landing-v2 .v2-editorial-label { max-width: 220px; }
  .landing-v2 .v2-differential-grid article { padding: 30px 26px; }
  .landing-v2 .v2-differential-icon { position: static; width: 48px; height: 48px; margin-bottom: 22px; }
  .landing-v2 .v2-button { width: 100%; }
}

/* respiro lateral em todas as faixas: o .center do site nao tem padding
   acima de 1023px e usa apenas 10px abaixo disso */
.landing-v2 .center { box-sizing: border-box; width: 100%; max-width: 1240px; padding-right: 26px; padding-left: 26px; }

@media (min-width: 1024px) {
  .landing-v2 header.topo .center { display: flex; align-items: center; gap: 34px; }
  .landing-v2 header.topo .logo { flex: none; float: none; width: 158px; height: 54px; margin: 0; background-position: left center; background-size: 158px auto; }
  .landing-v2 header.topo .menu { display: flex; float: none; align-items: center; gap: 28px; width: auto; margin-left: auto; padding: 0; text-align: left; }
  .landing-v2 header.topo .menu a { margin: 0; padding: 4px 0; color: rgba(255,255,255,.82); font-size: 14px; font-weight: 500; }
  .landing-v2 header.topo .menu a::after { bottom: 0; background: var(--v2-rose); }
  .landing-v2 header.topo .menu .orc { padding: 11px 21px !important; border: 2px solid var(--v2-wine) !important; border-radius: 7px; background: var(--v2-wine); box-shadow: none; color: #fff; }
  .landing-v2 header.topo .menu .orc:hover { border-color: var(--v2-wine-deep) !important; background: var(--v2-wine-deep) !important; box-shadow: 0 12px 26px -14px rgba(166,35,70,.9); }
}

/* ancoras: o header e fixo, entao a secao precisa parar abaixo dele */
.landing-v2 [id] { scroll-margin-top: 120px; }

/* respiro lateral no mobile: o .center do site usa 0 10px !important */
@media (max-width: 1023px) {
  .landing-v2 .center { padding-right: 24px !important; padding-left: 24px !important; }
  .landing-v2 [id] { scroll-margin-top: 80px; }
}

@media (prefers-reduced-motion: reduce) {
  .landing-v2, .landing-v2 *, .landing-v2 *::before, .landing-v2 *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .landing-v2.v2-motion-ready .v2-reveal { opacity: 1; transform: none; }
  .landing-v2 .v2-card:hover, .landing-v2 .v2-portfolio-card:hover, .landing-v2 .v2-differential-grid article:hover, .landing-v2 .v2-button:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .landing-v2 .v2-clientes-trilho { width: auto; flex-wrap: wrap; justify-content: center; animation: none; }
  .landing-v2 .v2-clientes-trilho img[aria-hidden="true"] { display: none; }
  .landing-v2 .v2-clientes-faixa { -webkit-mask-image: none; mask-image: none; }
}
