.ts-pain-points { background: var(--color-primary-50); }
/* A grade de cards precisa da largura cheia (a "estreita" compactaria demais as colunas). */
.ts-pain-points .ts-container--narrow { max-width: var(--container-max); }
.ts-text-center { text-align: center; }
.ts-pain-points__title { font-family: var(--font-brand); font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: var(--weight-extrabold); line-height: 1.14; letter-spacing: -0.015em; text-align: center; color: var(--color-primary-600); margin: var(--space-2) 0 .875rem; }
.ts-pain-points__subtitle { text-align: center; color: var(--text-secondary); font-family: var(--font-support); font-size: 1.0625rem; max-width: 620px; margin: 0 auto 44px; }
.ts-pain-points__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-6); margin-top: var(--space-10); }
.ts-pain-points__card { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-card); padding: var(--space-6); opacity: 0; transform: translateY(10px); transition: opacity var(--duration-slow) var(--ease-standard), transform var(--duration-slow) var(--ease-standard); display: grid;
    grid-template-columns: auto auto;
    column-gap: 1rem; 
    row-gap: 0.5rem;
}
.ts-pain-points__card span {
    grid-row: span 2;
    margin: 0;
}
.ts-pain-points__card.is-revealed { opacity: 1; transform: none; }
.ts-pain-points__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); background: var(--surface-brand-subtle); color: var(--text-brand); margin-bottom: var(--space-4); }
.ts-pain-points__card h3 { font-family: var(--font-brand); font-size: var(--fs-body-md); margin: 0; color: var(--text-primary); }
.ts-pain-points__card p { font-family: var(--font-support); color: var(--text-secondary); font-size: var(--fs-body-sm); line-height: var(--lh-body);  margin: 0}
.ts-pain-points__cta { text-align: center; margin-top: var(--space-10); }

/* Vídeo (capa/teaser) — valores portados de LP_01.html */
.ts-pain-points__video { position: relative; display: block; max-width: 880px; margin: 0 auto var(--space-10); aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; text-decoration: none; cursor: pointer; background: linear-gradient(135deg, #1f120b 0%, #7a3318 58%, #E94A26 125%); background-size: cover; background-position: center; box-shadow: 0 30px 70px rgba(20,8,2,.45); border: 1px solid rgba(255,255,255,.14); }
.ts-pain-points__video::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(255,255,255,.04) 0 2px, transparent 2px 24px); pointer-events: none; }
.ts-pain-points__video::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.16), transparent 62%); pointer-events: none; }
.ts-pain-points__video-badge { position: absolute; z-index: 2; top: var(--space-4); left: var(--space-4); display: inline-flex; align-items: center; gap: 8px; background: rgba(0,0,0,.38); border: 1px solid rgba(255,255,255,.22); border-radius: var(--radius-full); padding: 7px 14px; color: #fff; font-family: var(--font-support); font-weight: var(--weight-bold); font-size: .75rem; letter-spacing: .6px; }
.ts-pain-points__video-badge i { width: 7px; height: 7px; border-radius: 50%; background: #FF5A3D; display: inline-block; }
.ts-pain-points__video-center { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 0 var(--space-6) 28px; }
.ts-pain-points__video-play { position: relative; width: 92px; height: 92px; border-radius: 50%; background: #fff; color: #E94A26; display: flex; align-items: center; justify-content: center; box-shadow: 0 16px 36px rgba(0,0,0,.45); }
.ts-pain-points__video-play::before { content: ''; position: absolute; inset: 0; z-index: -1; border-radius: 50%; background: rgba(255,255,255,.32); animation: tsVideoPulse 2.4s ease-out infinite; }
.ts-pain-points__video-play svg { width: 32px; height: 32px; margin-left: 4px; }
.ts-pain-points__video-caption { font-family: var(--font-brand); font-weight: var(--weight-bold); font-size: clamp(1.25rem, 2.4vw, 1.625rem); color: #fff; text-align: center; text-shadow: 0 2px 14px rgba(0,0,0,.4); }
.ts-pain-points__video-bar-row { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: var(--space-4) var(--space-5); display: flex; align-items: center; gap: 13px; background: linear-gradient(180deg, transparent, rgba(0,0,0,.55)); }
.ts-pain-points__video-bar-row svg { width: 17px; height: 17px; color: #fff; flex-shrink: 0; }
.ts-pain-points__video-bar { flex: 1; height: 4px; border-radius: var(--radius-full); background: rgba(255,255,255,.3); overflow: hidden; }
.ts-pain-points__video-progress { display: block; width: 22%; height: 100%; background: var(--color-primary-500); border-radius: var(--radius-full); }
.ts-pain-points__video-time { font-family: var(--font-support); font-size: .75rem; color: rgba(255,255,255,.85); white-space: nowrap; }
@keyframes tsVideoPulse { from { transform: scale(1); opacity: .7; } to { transform: scale(1.6); opacity: 0; } }
.ts-pain-points__video.is-playing { cursor: default; }

/* Glass/inverse: fundo em degradê laranja com cards translúcidos — valores portados de LP_01.html */
.ts-pain-points--inverse { background: linear-gradient(135deg, #9a3a1a 0%, #E94A26 60%, #F5731F 100%); }
.ts-pain-points--inverse .ts-pain-points__title,
.ts-pain-points--inverse .ts-eyebrow { color: #fff; }
.ts-pain-points--inverse .ts-pain-points__subtitle { color: rgba(255,255,255,.92); }
.ts-pain-points--inverse .ts-pain-points__grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.ts-pain-points--inverse .ts-pain-points__card { display: flex; flex-direction: column; gap: 12px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); border-radius: 16px; padding: 26px 24px; backdrop-filter: blur(4px); }
.ts-pain-points--inverse .ts-pain-points__icon { display: block; width: auto; height: auto; background: none; border-radius: 0; margin-bottom: 0; color: #fff; }
.ts-pain-points--inverse .ts-pain-points__icon svg { width: 34px; height: 34px; }
.ts-pain-points--inverse .ts-pain-points__card h3 { font-size: 1.3125rem; color: #fff; }
.ts-pain-points--inverse .ts-pain-points__card p { font-size: .9375rem; color: rgba(255,255,255,.9); }
.ts-pain-points--inverse .ts-pain-points__card p strong { color: #fff; }