/* =========================================================================
   CasteloNET — HOME no estilo cinematográfico (carregado só no index.html,
   depois de cine.css). Claro e escuro seguem o tema do navegador.
   ========================================================================= */

.scene { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 130px clamp(18px, 5vw, 64px); }
.scene-sm { position: relative; padding: 70px 0; }
.wrap { width: 100%; max-width: 1180px; margin: 0 auto; position: relative; z-index: 1; }
.sub { margin-top: 22px; font-size: 14px; color: var(--muted); max-width: 420px; line-height: 1.7; }
.sub.center { margin-inline: auto; text-align: center; max-width: 560px; }

/* ---------- Navegação flutuante (seções) ---------- */
.dock {
  position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 90;
  display: flex; gap: 4px; padding: 5px; border-radius: 14px;
  background: var(--glass-strong); border: 1px solid var(--glass-border); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.5);
}
.dock a {
  display: flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 10px;
  font-size: 12.5px; color: var(--muted); transition: color .3s, background .3s; white-space: nowrap;
}
.dock a::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--sky); box-shadow: 0 0 8px var(--sky); opacity: 0; transform: scale(0); transition: .3s var(--ease); margin-left: -12px; }
.dock a:hover { color: var(--heading); }
.dock a.on { color: var(--heading); background: var(--blue-light); }
.dock a.on::before { opacity: 1; transform: scale(1); margin-left: 0; }
.wa-float { transition: bottom .5s var(--ease) !important; }
html.top-hidden .wa-float { bottom: 84px !important; }

/* Nav de cima só no início; ao rolar ela sobe e o dock de baixo aparece */
nav:not(.prod-nav) { transition: transform .55s var(--ease), opacity .4s, background .3s !important; }
html.top-hidden nav:not(.prod-nav) { transform: translateY(-110%); opacity: 0; pointer-events: none; }
.dock { transition: transform .55s var(--ease), opacity .4s; }
html:not(.top-hidden) .dock { opacity: 0; pointer-events: none; transform: translate(-50%, 140%); }
@media (max-width: 960px) {
  html:not(.top-hidden) .dock { transform: translateY(140%); }
}

/* ---------- HERO ---------- */
.hero-c { text-align: center; overflow: hidden; }
#brain { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 2s ease .3s; }
.hero-c.ready #brain { opacity: 1; }
.hero-title { font-size: clamp(44px, 7.2vw, 100px) !important; margin: 22px 0 26px; word-spacing: 0; }
.hero-title .hw { display: inline-block; opacity: 0; filter: blur(12px); transform: translateY(18px); transition: opacity 1.1s var(--ease), filter 1.1s var(--ease), transform 1.1s var(--ease), color .8s; }
.hero-c.ready .hero-title .hw { opacity: 1; filter: none; transform: none; }
.hero-title .hw.grey { color: var(--fill-from); }
.hero-title .inline-ico { width: .62em; height: .5em; margin: 0 -.04em 0 -.1em; vertical-align: .1em; }
.hero-c .lead { max-width: 560px; margin: 0 auto; font-size: 15px; color: var(--muted); }
.hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 34px; align-items: center; }
.hero-actions .btn { padding: 12px 22px; font-size: 13px; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 80px; }
.kpis .idx { margin-bottom: 10px; }
.kpis h3 { font-family: 'Plus Jakarta Sans'; font-weight: 400; font-size: 24px; letter-spacing: -0.03em; color: var(--heading); }
.kpis p { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.scroll-cue { position: absolute; bottom: 92px; left: 50%; width: 1px; height: 46px; background: linear-gradient(var(--sky), transparent); opacity: .6; animation: cue 2.2s ease-in-out infinite; }
@keyframes cue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* ---------- Faixa de compromissos ---------- */
.ticker { position: relative; z-index: 1; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; padding: 16px 0; background: var(--glass); backdrop-filter: blur(8px); }
.ticker-track, .marquee-track { display: flex; align-items: center; gap: 36px; width: max-content; animation: slide 46s linear infinite; }
.ticker-track span { font-size: 12.5px; letter-spacing: .02em; color: var(--slate); white-space: nowrap; }
.ticker-track i { width: 5px; height: 5px; border-radius: 50%; background: var(--sky); box-shadow: 0 0 10px var(--sky); flex-shrink: 0; }
@keyframes slide { to { transform: translateX(-50%); } }

/* ---------- Clientes ---------- */
.logos-c .idx { display: block; text-align: center; margin-bottom: 28px; }
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.marquee-track { gap: 54px; animation-duration: 70s; }
.marquee-track span { font-family: 'Plus Jakarta Sans'; font-weight: 400; font-size: 19px; letter-spacing: -0.02em; color: var(--dim); white-space: nowrap; transition: color .3s; }
.marquee-track span:hover { color: var(--heading); }

/* ---------- Soluções ---------- */
.sol { display: grid; grid-template-columns: 1fr 1.3fr; gap: 70px; align-items: start; }
.sol-head { position: sticky; top: 130px; }
.sol .h-thin { font-size: clamp(38px, 5vw, 66px); margin-top: 18px; }
.list { border-top: 1px solid var(--line); }
.row {
  position: relative; display: grid; grid-template-columns: 60px 1fr 28px; gap: 18px; align-items: center;
  padding: 24px 6px; border-bottom: 1px solid var(--line); overflow: hidden; color: inherit;
}
.row::after { content: ''; position: absolute; left: 0; bottom: -1px; height: 1px; width: 100%; background: linear-gradient(90deg, transparent, var(--sky), transparent); transform: translateX(-100%); transition: transform .9s var(--ease); }
.row:hover::after { transform: translateX(100%); }
.row .idx { color: var(--dim) !important; transition: color .3s; }
.row h4 { font-family: 'Plus Jakarta Sans'; font-weight: 400; font-size: 23px; letter-spacing: -0.025em; transition: color .3s; color: var(--slate); }
.row p { font-size: 13px; color: var(--muted); margin-top: 6px; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--ease), opacity .5s; }
.row .tags { display: flex; gap: 6px; flex-wrap: wrap; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--ease), opacity .5s, margin .4s; }
.row .tags span { font-size: 10.5px; padding: 3px 9px; border-radius: 999px; background: var(--blue-light); color: var(--sky); border: 1px solid var(--glass-border); }
.row .arr { color: var(--dim); transition: transform .4s var(--ease), color .3s; }
.row .arr svg { width: 20px; height: 20px; fill: none; stroke: currentColor; }
.row:hover h4, .row.open h4 { color: var(--heading); }
.row:hover .idx, .row.open .idx { color: var(--sky) !important; }
.row:hover .arr { color: var(--sky); transform: translateX(4px) rotate(-45deg); }
.row:hover p, .row.open p { max-height: 100px; opacity: 1; }
.row:hover .tags, .row.open .tags { max-height: 60px; opacity: 1; margin-top: 12px; }

.sofia-c {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; margin-top: 70px;
  padding: 44px; border-radius: 24px; overflow: hidden; color: inherit;
  background: radial-gradient(80% 120% at 100% 0%, rgba(96, 165, 250, 0.22), transparent 55%), var(--glass);
  border: 1px solid var(--glass-border); backdrop-filter: blur(14px); box-shadow: var(--glow); transition: border-color .4s, transform .5s var(--ease);
}
.sofia-c:hover { border-color: rgba(96, 165, 250, 0.5); transform: translateY(-3px); }
.sofia-c h3 { font-size: clamp(36px, 4.2vw, 56px); margin: 14px 0 16px; }
.sofia-c .sofia-main p { color: var(--muted); font-size: 14.5px; line-height: 1.7; margin-bottom: 26px; max-width: 460px; }
.btn-pill.as-span { cursor: pointer; }
.sofia-feats-c { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sofia-feats-c > div { padding: 18px; border-radius: 14px; border: 1px solid var(--glass-border); background: var(--glass); }
.sofia-feats-c h5 { font-family: 'Plus Jakarta Sans'; font-weight: 500; font-size: 14.5px; color: var(--heading); margin-bottom: 6px; }
.sofia-feats-c p { font-size: 12.5px; color: var(--muted); line-height: 1.55; }

/* ---------- Metodologia ---------- */
.met { text-align: center; }
.met .h-thin { font-size: clamp(36px, 4.6vw, 62px); margin: 18px auto 0; max-width: 880px; }
.phases { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 80px; }
.phases::before, .phases i.prog { content: ''; position: absolute; top: 9px; left: 10%; right: 10%; height: 1px; background: var(--line); }
.phases i.prog { background: linear-gradient(90deg, var(--blue-2), var(--sky)); box-shadow: 0 0 12px var(--sky); transform-origin: 0 50%; animation: prog 9s linear infinite; }
@keyframes prog { 0% { transform: scaleX(0); opacity: 1; } 70% { transform: scaleX(1); opacity: 1; } 88% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0; } }
.ph .node { width: 19px; height: 19px; margin: 0 auto 22px; border-radius: 50%; border: 1px solid var(--glass-border); background: var(--cine-bg); position: relative; z-index: 1; transition: .5s; }
.ph .node::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--dim); transition: .5s; }
.ph.on .node { border-color: var(--sky); box-shadow: 0 0 18px rgba(96, 165, 250, 0.8); }
.ph.on .node::after { background: var(--sky); }
.ph h5 { font-family: 'Plus Jakarta Sans'; font-weight: 400; font-size: 18px; letter-spacing: -0.02em; color: var(--muted); transition: color .5s; }
.ph.on h5 { color: var(--heading); }
.ph p { font-size: 12.5px; color: var(--muted); margin: 8px auto 0; max-width: 200px; line-height: 1.6; }

/* ---------- Para quem ---------- */
#clientes .h-thin, #depoimentos .h-thin { font-size: clamp(36px, 4.8vw, 64px); margin-top: 16px; }
.who { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 56px; }
.who-card { padding: 28px 24px; border-radius: 18px; background: var(--glass); border: 1px solid var(--glass-border); backdrop-filter: blur(12px); transition: border-color .4s, transform .5s var(--ease), box-shadow .4s; }
.who-card:hover { border-color: rgba(96, 165, 250, 0.45); transform: translateY(-4px); box-shadow: var(--glow); }
.who-card .cli-icon { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; margin-bottom: 22px; }
.who-card h5 { font-family: 'Plus Jakarta Sans'; font-weight: 500; font-size: 17px; color: var(--heading); margin-bottom: 8px; letter-spacing: -0.01em; }
.who-card p { font-size: 13px; color: var(--muted); line-height: 1.6; }

/* ---------- Depoimentos (carrossel contínuo) ---------- */
#depoimentos { justify-content: center; padding-left: 0; padding-right: 0; }
#depoimentos > .wrap { padding: 0 clamp(18px, 5vw, 64px); }
.depo-viewport { margin-top: 48px; overflow: hidden; touch-action: pan-y; cursor: grab; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.depo-viewport.is-dragging { cursor: grabbing; user-select: none; }
.depoimentos-grid { display: flex !important; gap: 24px; width: max-content; align-items: center; padding: 14px 0 30px; margin: 0 !important; will-change: transform; }
.depo-card {
  width: min(430px, 82vw); flex-shrink: 0; padding: 30px !important; border-radius: 20px !important;
  background: var(--glass) !important; border: 1px solid var(--glass-border) !important; backdrop-filter: blur(12px); box-shadow: var(--shadow-soft);
}
.depo-card::before { color: var(--sky) !important; opacity: .3; }
.depo-text { font-size: 14px !important; line-height: 1.75 !important; color: var(--slate) !important; padding-right: 26px; margin-bottom: 20px !important; }
.depo-avatar { background: radial-gradient(circle at 35% 30%, #93C5FD, #3B82F6 55%, #1A56DB) !important; color: #fff !important; box-shadow: 0 0 16px -2px rgba(59, 130, 246, 0.7); }
.depo-name { color: var(--heading) !important; font-weight: 600 !important; }
.depo-role { color: var(--muted) !important; }
.depo-company { color: var(--sky) !important; }

/* ---------- Certificações ---------- */
#certificacoes { overflow: hidden; }
main { overflow-x: clip; }
.cert { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; align-items: center; }
.cert .h-thin { font-size: clamp(40px, 5.2vw, 72px); margin-top: 16px; }
.stage { position: relative; height: 400px; }
.stage .ray { position: absolute; top: 50%; left: -40px; right: 0; height: 2px; margin-top: -1px; background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.25) 20%, rgba(96, 165, 250, 0.35) 80%, transparent); }
.stage .ray::after { content: ''; position: absolute; top: -3px; height: 8px; width: 180px; border-radius: 8px; background: radial-gradient(closest-side, #DBEAFE, #60A5FA 40%, transparent); filter: blur(2px); animation: ray 3.4s var(--ease) infinite; }
@keyframes ray { from { left: -10%; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } to { left: 100%; opacity: 0; } }
.chip {
  position: absolute; display: grid; place-items: center; padding: 18px 22px; min-width: 150px; border-radius: 14px; text-align: center; line-height: 1.25;
  background: var(--glass-strong); border: 1px solid var(--glass-border); color: var(--muted);
  font-family: 'Plus Jakarta Sans'; font-weight: 600; font-size: 15px; box-shadow: var(--shadow-soft); backdrop-filter: blur(12px);
  animation: float 7s ease-in-out infinite; transition: color .6s, border-color .6s, box-shadow .6s, background .6s;
}
.chip small { display: block; font-family: 'DM Sans'; font-weight: 400; font-size: 10.5px; letter-spacing: .06em; color: var(--muted); margin-top: 5px; text-transform: uppercase; }
.chip.on { color: #fff; border-color: rgba(147, 197, 253, 0.7); background: linear-gradient(160deg, #2563EB, #1A47B0); box-shadow: 0 0 0 1px rgba(147, 197, 253, 0.25), 0 0 50px rgba(59, 130, 246, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.chip.on small { color: #DBEAFE; }
.chip:nth-child(2) { left: 6%; top: 56%; animation-delay: -1s; }
.chip:nth-child(3) { left: 34%; top: 12%; animation-delay: -3s; }
.chip:nth-child(4) { left: 52%; top: 62%; animation-delay: -5s; }
.chip:nth-child(5) { left: 70%; top: 22%; animation-delay: -2s; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

/* ---------- Contato ---------- */
.contact-c { text-align: center; overflow: hidden; }
#orb { position: absolute; left: 50%; top: 4%; width: min(620px, 110vw); height: min(440px, 80vw); transform: translateX(-50%); }
.contact-c .inner { position: relative; z-index: 1; margin-top: min(320px, 60vw); }
.contact-c .h-thin { font-size: clamp(40px, 6vw, 84px); }
.contact-c .lead { font-size: 14px; color: var(--muted); max-width: 440px; margin: 22px auto 0; }
.hero-actions.center { justify-content: center; }

/* ---------- Responsivo ---------- */
@media (max-width: 960px) {
  .kpis { grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 56px; }
  .sol, .cert { grid-template-columns: 1fr; gap: 40px; }
  .sol-head { position: static; }
  .sofia-c { grid-template-columns: 1fr; padding: 28px 22px; gap: 26px; }
  .who { grid-template-columns: 1fr 1fr; }
  .phases { grid-template-columns: 1fr; gap: 24px; text-align: left; margin-top: 50px; }
  .phases::before, .phases i.prog { display: none; }
  .ph { display: grid; grid-template-columns: 30px 1fr; gap: 0 14px; }
  .ph .node { margin: 3px 0 0; grid-row: span 2; }
  .ph p { margin: 4px 0 0; max-width: none; }
  .row { grid-template-columns: 40px 1fr 22px; padding: 20px 2px; }
  .row h4 { font-size: 19px; }
  .stage { height: 330px; }
  .chip { min-width: 0; padding: 12px 14px; font-size: 13px; }
  .chip:nth-child(2) { left: 0; top: 60%; }
  .chip:nth-child(3) { left: 22%; top: 6%; }
  .chip:nth-child(4) { left: 44%; top: 72%; }
  .chip:nth-child(5) { left: auto; right: 0; top: 32%; }
  .chip:nth-child(4) { left: auto; right: 6%; }
  .stage .ray { left: 0; }
  .dock { left: 12px; right: 12px; transform: none; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
  .dock::-webkit-scrollbar { display: none; }
  .scene { padding: 110px 20px; }
}
@media (max-width: 560px) {
  .who, .sofia-feats-c { grid-template-columns: 1fr; }
  .dock a { padding: 8px 11px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-track, .marquee-track, .phases i.prog, .stage .ray::after, .chip, .scroll-cue { animation: none !important; }
  .hero-title .hw { opacity: 1 !important; filter: none !important; transform: none !important; }
}
