/* ==========================================================
   Target360 · páginas internas
   ========================================================== */
.page { background: var(--beige); }
.mono { font-family: var(--f-mono); }

/* ---------- Hero interno ---------- */
.p-hero {
  position: relative; overflow: hidden; color: #fff;
  background: radial-gradient(ellipse 70% 90% at 85% 20%, rgba(59,108,183,.22), transparent 60%), var(--navy-950);
  padding: calc(var(--header-h) + clamp(70px, 9vw, 120px)) 0 clamp(70px, 8vw, 110px);
}
.p-hero .wrap { position: relative; z-index: 2; }
.p-crumbs { font-family: var(--f-mono); font-size: 12px; color: rgba(255,255,255,.5); margin: 0 0 34px; display: flex; gap: 10px; flex-wrap: wrap; }
.p-crumbs a:hover { color: #fff; }
.p-crumbs span[aria-current] { color: var(--orange); }
.p-hero h1 { font-family: var(--f-serif); font-weight: 500; letter-spacing: -.025em; font-size: clamp(44px, 7.4vw, 104px); line-height: 1; margin: 22px 0 28px; max-width: 14ch; }
.p-hero h1 em { font-style: italic; font-weight: 400; color: var(--orange); }
.p-lead { font-size: clamp(17px, 1.6vw, 21px); color: rgba(255,255,255,.74); max-width: 620px; margin: 0; }
.p-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 36px; }
.p-radar { position: absolute; right: -180px; top: 50%; width: 760px; height: 760px; transform: translateY(-46%); z-index: 1; opacity: .9; pointer-events: none; }
.p-radar circle { fill: none; stroke: rgba(242,107,29,.28); stroke-width: 1; }
.p-radar .ax { stroke: rgba(242,107,29,.22); stroke-width: 1; }
.p-radar .dot { fill: var(--orange); stroke: none; }
.p-radar .sweep { transform-origin: 380px 380px; animation: sweep 9s linear infinite; }
@keyframes sweep { to { transform: rotate(360deg); } }
.p-hero-grid { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size: 26px 26px; mask-image: linear-gradient(90deg, transparent 30%, #000); z-index: 0; }
@media (max-width: 900px) { .p-radar { width: 520px; height: 520px; right: -260px; opacity: .45; } }

/* ---------- Seções ---------- */
.p-sec { padding: clamp(80px, 10vw, 140px) 0; color: var(--ink); }
.p-sec + .p-sec { padding-top: 0; }
.p-sec--white { background: #fff; }
.p-sec--white + .p-sec, .p-sec + .p-sec--white, .p-sec--dark + .p-sec, .p-sec + .p-sec--dark { padding-top: clamp(80px, 10vw, 140px); }
.p-sec--dark { background: var(--navy-950); color: #fff; }
.p-sec .eyebrow { color: #c4541a; }
.p-sec--dark .eyebrow { color: var(--orange); }
.p-h2 { font-family: var(--f-serif); font-weight: 500; letter-spacing: -.02em; font-size: clamp(34px, 4.8vw, 64px); line-height: 1.04; margin: 20px 0 18px; max-width: 18ch; }
.p-h2 em { font-style: italic; font-weight: 400; color: var(--orange); }
.p-intro { font-size: 19px; color: var(--ink-2); max-width: 640px; margin: 0 0 52px; }
.p-sec--dark .p-intro { color: rgba(255,255,255,.7); }
.p-head-row { display: grid; grid-template-columns: 1.1fr 1fr; gap: 60px; align-items: end; margin-bottom: 52px; }
.p-head-row .p-intro { margin: 0; }
@media (max-width: 900px) { .p-head-row { grid-template-columns: 1fr; gap: 10px; } }

/* ---------- Cartões ---------- */
.p-cards { display: grid; gap: 16px; }
.p-cards--2 { grid-template-columns: repeat(2, 1fr); }
.p-cards--3 { grid-template-columns: repeat(3, 1fr); }
.p-cards--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .p-cards--3, .p-cards--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .p-cards--2, .p-cards--3, .p-cards--4 { grid-template-columns: 1fr; } }
.p-card { background: #fff; border-radius: 22px; padding: 30px 30px 32px; display: flex; flex-direction: column; gap: 10px; position: relative; transition: transform .5s var(--ease), box-shadow .5s; }
.p-sec--white .p-card { background: var(--beige); }
a.p-card:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(19,32,63,.35); }
.p-card .k { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: #c4541a; }
.p-card h3 { font-family: var(--f-serif); font-weight: 500; font-size: 27px; line-height: 1.12; margin: 2px 0 0; }
.p-card p { margin: 0; color: var(--ink-2); font-size: 15.5px; }
.p-card .more { margin-top: auto; padding-top: 14px; color: #c4541a; font-weight: 600; font-size: 14px; }
.p-card .more::after { content: " →"; }
.p-card--rule { border-top: 3px solid var(--orange); border-radius: 6px 6px 22px 22px; }
.p-card--navy { background: var(--navy-900) !important; color: #fff; }
.p-card--navy p { color: rgba(255,255,255,.7); }
.p-card--navy .k { color: var(--orange); }
.p-sec--dark .p-card { background: var(--navy-900); color: #fff; }
.p-sec--dark .p-card p { color: rgba(255,255,255,.68); }
.p-sec--dark .p-card .k { color: var(--orange); }

/* Cartão grande de navegação (hubs) */
.p-feature { display: grid; grid-template-columns: 1fr 1.15fr; gap: 0; background: #fff; border-radius: 28px; overflow: hidden; transition: box-shadow .5s, transform .5s var(--ease); }
.p-feature:hover { box-shadow: 0 40px 80px -40px rgba(19,32,63,.4); transform: translateY(-4px); }
.p-feature-txt { padding: clamp(30px, 4vw, 56px); display: flex; flex-direction: column; gap: 14px; }
.p-feature-txt .k { font-family: var(--f-mono); font-size: 12px; color: #c4541a; letter-spacing: .08em; text-transform: uppercase; }
.p-feature-txt h3 { font-family: var(--f-serif); font-weight: 500; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.06; margin: 0; }
.p-feature-txt p { margin: 0; color: var(--ink-2); font-size: 17px; }
.p-feature-txt .more { margin-top: auto; padding-top: 20px; font-weight: 600; color: #c4541a; }
.p-feature-txt .more::after { content: " →"; }
.p-feature-vis { background: var(--beige-2); padding: clamp(24px, 3vw, 40px); display: flex; align-items: center; }
.p-feature-vis > * { width: 100%; }
.p-feature--dark { background: var(--navy-900); color: #fff; }
.p-feature--dark .p-feature-txt p { color: rgba(255,255,255,.7); }
.p-feature--dark .p-feature-vis { background: var(--navy-800); }
.p-feature--dark .p-feature-txt .k, .p-feature--dark .p-feature-txt .more { color: var(--orange); }
.p-features { display: grid; gap: 20px; }
@media (max-width: 900px) { .p-feature { grid-template-columns: 1fr; } }

/* ---------- Lista numerada (linhas) ---------- */
.p-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-light); }
.p-rows > li { display: grid; grid-template-columns: 90px 1fr 1.2fr; gap: 30px; padding: 34px 0; border-bottom: 1px solid var(--line-light); align-items: start; }
.p-rows .n { font-family: var(--f-serif); font-size: 44px; line-height: 1; color: var(--orange); }
.p-rows h3 { font-family: var(--f-serif); font-weight: 500; font-size: 28px; line-height: 1.12; margin: 0 0 6px; }
.p-rows .q { color: #c4541a; font-style: italic; font-family: var(--f-serif); font-size: 18px; }
.p-rows p { margin: 0; color: var(--ink-2); }
.p-sec--dark .p-rows { border-color: var(--line-dark); }
.p-sec--dark .p-rows > li { border-color: var(--line-dark); }
.p-sec--dark .p-rows p { color: rgba(255,255,255,.68); }
@media (max-width: 800px) { .p-rows > li { grid-template-columns: 56px 1fr; } .p-rows > li > :last-child { grid-column: 2; } .p-rows .n { font-size: 32px; } }

/* ---------- Bloco de gráfico ---------- */
.chart-card { background: #fff; border-radius: 24px; padding: clamp(22px, 3vw, 40px); box-shadow: 0 30px 60px -40px rgba(19,32,63,.3); }
.chart-card-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 22px; }
.chart-card-h h3 { font-family: var(--f-serif); font-weight: 500; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; margin: 0; }
.chart-card-h p { margin: 6px 0 0; color: var(--ink-2); font-size: 15px; }
.chart-card-h .tag-ilustrativo { flex: none; color: #c4541a; }
.how-to { font-size: 13.5px; color: var(--ink-2); font-style: italic; margin: 18px 0 0; padding-top: 14px; border-top: 1px dashed #e2dacd; }
.chart-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
@media (max-width: 900px) { .chart-pair { grid-template-columns: 1fr; } }

.takeaways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 30px; }
.takeaways div { border-top: 2px solid var(--orange); padding-top: 14px; font-size: 15px; color: var(--ink-2); }
.takeaways strong { color: var(--ink); display: block; margin-bottom: 4px; }
@media (max-width: 800px) { .takeaways { grid-template-columns: 1fr; gap: 18px; } }

/* KPIs */
.kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 16px; }
.kpi { background: #fff; border-radius: 16px; padding: 16px 18px; border-top: 4px solid var(--c, var(--ink)); }
.kpi span { font-size: 13px; font-weight: 600; display: block; }
.kpi b { font-family: var(--f-serif); font-size: 36px; font-weight: 500; line-height: 1.1; }
.kpi i { font-style: normal; font-size: 13px; font-weight: 700; margin-left: 6px; }
.kpi i.up { color: #3b6cb7; } .kpi i.down { color: var(--orange); }
.kpi small { display: block; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2); }
.kpis--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .kpis, .kpis--4 { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Navegação de página (anterior / próxima) ---------- */
.p-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.p-pager a { background: #fff; border-radius: 20px; padding: 26px 30px; display: grid; gap: 4px; transition: background .3s; }
.p-pager a:hover { background: var(--beige-2); }
.p-pager small { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #c4541a; }
.p-pager b { font-family: var(--f-serif); font-weight: 500; font-size: 24px; }
.p-pager .next { text-align: right; }
.p-pager .next b::after { content: " →"; color: var(--orange); }
.p-pager .prev b::before { content: "← "; color: var(--orange); }
@media (max-width: 640px) { .p-pager { grid-template-columns: 1fr; } .p-pager .next { text-align: left; } }

/* ---------- Faixa de contato ---------- */
.cta-band { position: relative; overflow: hidden; background: var(--navy-950); color: #fff; padding: clamp(100px, 13vw, 170px) 0; text-align: center; }
.cta-band-bg { position: absolute; inset: 0; }
.cta-band-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .3; filter: blur(2px); }
.cta-band-bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 80% at 50% 50%, rgba(5,10,24,.5), var(--navy-950) 80%); }
.cta-band .wrap { position: relative; max-width: 880px; }
.cta-band .eyebrow { justify-content: center; }
.cta-band h2 { font-family: var(--f-serif); font-weight: 500; letter-spacing: -.02em; font-size: clamp(38px, 5.8vw, 80px); line-height: 1.02; margin: 22px 0; }
.cta-band h2 em { font-style: italic; font-weight: 400; color: var(--orange); }
.cta-band p { font-size: 18px; color: rgba(255,255,255,.74); max-width: 600px; margin: 0 auto 40px; }
.cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ---------- Texto corrido (política etc.) ---------- */
.prose { max-width: 760px; font-size: 17px; color: var(--ink); }
.prose h2 { font-family: var(--f-serif); font-weight: 500; font-size: 30px; margin: 48px 0 12px; }
.prose p, .prose li { color: var(--ink-2); }
.prose a { color: #c4541a; text-decoration: underline; }

/* ---------- Utilidades ---------- */
.note-ilustrativo { display: flex; gap: 12px; align-items: center; font-size: 14px; color: var(--ink-2); margin: 0 0 28px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }
.big-quote { font-family: var(--f-serif); font-size: clamp(26px, 3.2vw, 42px); line-height: 1.2; margin: 0; }
.big-quote em { font-style: italic; color: var(--orange); }
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.check-list li { padding-left: 30px; position: relative; color: var(--ink-2); }
.check-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 10px; border-left: 2px solid var(--orange); border-bottom: 2px solid var(--orange); transform: rotate(-45deg); }
.p-sec--dark .check-list li { color: rgba(255,255,255,.75); }

/* Evita que gráficos largos estiquem as grades no celular */
.ex-sec > *, .dl-item > *, .chart-pair > *, .p-feature > *, .t-model > *, .split > *, .p-cards > *, .takeaways > * { min-width: 0; }

/* ---------- Fundos de cabeçalho por seção ---------- */
/* Tecnologia e Dados: rede de dados */
.p-hero-net { position: absolute; inset: 0; z-index: 0; }
.p-hero-net::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--navy-950) 15%, rgba(5,10,24,.55) 55%, rgba(5,10,24,.1)); }
.net-layer { width: 100%; height: 100%; display: block; }
/* Setores: anel de seis segmentos (360) */
.p-ring { position: absolute; right: 4%; top: 50%; width: 640px; height: 640px; transform: translateY(-46%); z-index: 1; pointer-events: none; }
.p-ring .seg { fill: none; stroke: rgba(255,255,255,.16); stroke-width: 26; }
.p-ring .seg.on { stroke: var(--orange); }
.p-ring-rot { transform-origin: 350px 350px; animation: ringStep 18s steps(6) infinite; }
@keyframes ringStep { to { transform: rotate(360deg); } }
.p-ring .in { fill: none; stroke: rgba(242,107,29,.22); stroke-width: 1; stroke-dasharray: 4 8; }
.p-ring .ring-t { fill: #fff; font-family: var(--f-serif); font-size: 120px; font-weight: 400; }
.p-ring .ring-s { fill: var(--orange); font-family: var(--f-mono); font-size: 18px; letter-spacing: .3em; text-transform: uppercase; }
@media (max-width: 900px) { .p-ring { width: 420px; height: 420px; right: -200px; opacity: .45; } }
/* Quem somos: fotografia da marca */
.p-hero-photo { position: absolute; inset: 0; z-index: 0; }
.p-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; opacity: .75; animation: kenburnsP 30s ease-in-out infinite alternate; }
@keyframes kenburnsP { from { transform: scale(1.02); } to { transform: scale(1.12) translate(-2%, -1%); } }
.p-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--navy-950) 20%, rgba(5,10,24,.7) 55%, rgba(5,10,24,.25)), linear-gradient(0deg, var(--navy-950), transparent 40%); }
/* Contato e 404: sinal se propagando */
.p-signal { position: absolute; right: 12%; top: 50%; width: 0; height: 0; z-index: 1; pointer-events: none; }
.p-signal b { position: absolute; left: -8px; top: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 30px var(--orange); }
.p-signal i { position: absolute; left: -300px; top: -300px; width: 600px; height: 600px; border-radius: 50%; border: 1.5px solid rgba(242,107,29,.55); animation: sig 6s linear infinite; opacity: 0; }
.p-signal i:nth-child(2) { animation-delay: 1.5s; } .p-signal i:nth-child(3) { animation-delay: 3s; } .p-signal i:nth-child(4) { animation-delay: 4.5s; }
@keyframes sig { 0% { transform: scale(.05); opacity: 1; } 100% { transform: scale(1.2); opacity: 0; } }
@media (max-width: 900px) { .p-signal { right: 0; opacity: .5; } }

/* ---------- Ajustes de revisão ---------- */
.p-back { display: flex; justify-content: center; margin-top: 34px; }
.p-feature-txt .p-feature-btn { margin-top: auto; align-self: flex-start; }
.br-desk { display: inline; }
@media (max-width: 760px) { .br-desk { display: none; } }

.p-ic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: rgba(242,107,29,.12); color: var(--orange); }
.p-ic svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* Contato: rede de leads */
.p-hero-leads::after { background: linear-gradient(90deg, var(--navy-950) 18%, rgba(5,10,24,.6) 52%, rgba(5,10,24,.05)); }
@media (max-width: 900px) { .p-hero-leads::after { background: rgba(5,10,24,.72); } }
.leads-layer { width: 100%; height: 100%; display: block; }
/* Quem somos: símbolo da marca (alvo com setas em 360°) */
.p-brand { position: absolute; right: -1%; top: 50%; width: 540px; height: 540px; transform: translateY(-46%); z-index: 1; pointer-events: none; }
.p-brand .arc, .p-brand .arc2 { fill: none; stroke-linecap: round; }
.p-brand .arc { stroke-width: 34; }
.p-brand .arc2 { stroke-width: 22; }
.p-brand .or { stroke: var(--orange); fill: none; }
.p-brand .wh { stroke: rgba(255,255,255,.2); fill: none; }
.p-brand .hd { stroke: none; }
.p-brand .hd.or { fill: var(--orange); }
.p-brand .hd.wh { fill: rgba(255,255,255,.2); }
.p-brand .ring { fill: none; stroke: rgba(242,107,29,.35); stroke-width: 2; stroke-dasharray: 6 10; }
.p-brand .core { fill: none; stroke: rgba(255,255,255,.35); stroke-width: 3; }
.p-brand .dot { fill: var(--orange); filter: drop-shadow(0 0 12px var(--orange)); }
.p-brand-out { transform-origin: 350px 350px; animation: brandSpin 40s linear infinite; }
.p-brand-in { transform-origin: 350px 350px; animation: brandSpin 28s linear infinite reverse; }
@keyframes brandSpin { to { transform: rotate(360deg); } }
@media (max-width: 1100px) { .p-brand { right: -120px; opacity: .6; } }
@media (max-width: 900px) { .p-brand { width: 400px; height: 400px; right: -200px; opacity: .25; } }

/* Título curto acima dos botões de contato */
.a-cta-inner > p.cta-label, .cta-band p.cta-label { max-width: none; margin: -6px auto 22px; display: flex; align-items: center; justify-content: center; gap: 16px; font-size: 18px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #f26b1d; text-align: center; }
.a-cta-inner > p.cta-label::before, .a-cta-inner > p.cta-label::after, .cta-band p.cta-label::before, .cta-band p.cta-label::after { content: ""; width: 44px; height: 2px; background: currentColor; opacity: .7; }
@media (max-width: 600px) { .a-cta-inner > p.cta-label, .cta-band p.cta-label { font-size: 15px; gap: 12px; } .a-cta-inner > p.cta-label::before, .a-cta-inner > p.cta-label::after, .cta-band p.cta-label::before, .cta-band p.cta-label::after { width: 26px; } }
