/* Transformando Empresas · shared custom CSS */
html { scroll-behavior: smooth; overflow-x: hidden; }
body { font-family: 'Inter', system-ui, sans-serif; color: #1B2A3A; background: #ffffff; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.shell.grid > *, .shell.grid > * > * { min-width: 0; }
.shell.grid aside > * { min-width: 0; max-width: 100%; }
img, video, iframe, table { max-width: 100%; }
input, textarea, select { max-width: 100%; box-sizing: border-box; }
h1,h2,h3,h4 { font-family: 'Montserrat', system-ui, sans-serif; letter-spacing: -0.01em; }
h1 { letter-spacing: -0.02em; }

.hero-bg { background: radial-gradient(1100px 520px at 20% 10%, #0B3A73 0%, #00264D 55%, #001A36 100%); }
.hero-mesh::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(600px 300px at 85% 20%, rgba(245,130,32,0.18), transparent 60%), radial-gradient(500px 260px at 15% 85%, rgba(30,136,229,0.18), transparent 60%); }
.bg-grid { background-image: linear-gradient(rgba(0,38,77,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(0,38,77,0.06) 1px, transparent 1px); background-size: 48px 48px; }

.slide { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; position: absolute; inset: 0; pointer-events: none; }
.slide.active { opacity: 1; transform: translateY(0); pointer-events: auto; position: relative; }

details.faq > summary { list-style: none; cursor: pointer; }
details.faq > summary::-webkit-details-marker { display: none; }
details.faq[open] .faq-chev { transform: rotate(180deg); }
.faq-chev { transition: transform .2s ease; }

.pyramid-step { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.pyramid-step:hover { transform: translateX(4px); }

.eyebrow { display: inline-flex; gap: .5rem; align-items: center; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

.cases-track { scrollbar-width: thin; }
.cases-track::-webkit-scrollbar { height: 6px; }
.cases-track::-webkit-scrollbar-thumb { background: #CED4DA; border-radius: 999px; }

.gem { transition: transform .3s ease, box-shadow .3s ease; }
.gem:hover { transform: translateY(-3px); }

.shell { max-width: 1200px; margin-inline: auto; padding-inline: 1.25rem; }
@media (min-width: 768px) { .shell { padding-inline: 2rem; } }

.icon-chip { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; }
.sticky-cta { box-shadow: 0 -8px 24px -10px rgba(0,38,77,0.24); }

/* content prose for long articles */
.prose-custom { color: #3A4A5A; }
.prose-custom p { line-height: 1.75; font-size: 17px; margin-top: 1.1em; }
.prose-custom h2 { font-size: 32px; line-height: 1.2; margin-top: 2em; color: #00264D; }
.prose-custom h3 { font-size: 22px; line-height: 1.3; margin-top: 1.5em; color: #0B3A73; }
.prose-custom h4 { font-size: 18px; line-height: 1.3; margin-top: 1.2em; color: #0B3A73; }
.prose-custom ul { margin-top: 1em; padding-left: 1.25em; }
.prose-custom ul li { list-style: disc; line-height: 1.7; margin-top: .5em; font-size: 17px; }
.prose-custom ol { margin-top: 1em; padding-left: 1.25em; }
.prose-custom ol li { list-style: decimal; line-height: 1.7; margin-top: .5em; font-size: 17px; }
.prose-custom strong { color: #00264D; font-weight: 700; }
.prose-custom a { color: #F58220; text-decoration: underline; text-underline-offset: 3px; }
.prose-custom a:hover { color: #C86716; }
.prose-custom blockquote { border-left: 4px solid #F58220; background: #F4F6F8; padding: 1em 1.5em; margin-top: 1.5em; color: #00264D; font-style: normal; font-weight: 500; }
.prose-custom table { width: 100%; border-collapse: collapse; margin-top: 1.5em; font-size: 15px; }
.prose-custom table th, .prose-custom table td { border-bottom: 1px solid #E3E8EE; padding: .75em; text-align: left; }
.prose-custom table th { color: #00264D; background: #F4F6F8; font-weight: 700; }
.prose-custom hr { border: 0; border-top: 1px solid #E3E8EE; margin-top: 2.5em; margin-bottom: 2.5em; }

/* TOC sticky */
.toc { position: sticky; top: 96px; }
.toc a { display: block; padding: .35em 0; color: #546E7A; font-size: 14px; line-height: 1.35; border-left: 2px solid transparent; padding-left: .75em; transition: all .2s; }
.toc a:hover, .toc a.active { color: #00264D; border-left-color: #F58220; font-weight: 600; }

/* highlight current nav */
.nav-active { color: #00264D !important; font-weight: 600; }
.nav-active::after { content: ''; display: block; height: 2px; background: #F58220; width: 60%; margin-top: 2px; border-radius: 2px; }
