/**
 * PoCAT visual layer — card backgrounds, page heroes, section textures.
 */

/* CSS-only card backgrounds when JS has not tagged themes yet */
.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800:nth-child(1)::before,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800:nth-child(1)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.3;
  background-image: url("assets/visual/photo-1558494949-ef010cbdcc31.jpg");
  background-size: cover;
}

.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800:nth-child(2)::before,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800:nth-child(2)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.3;
  background-image: url("assets/visual/photo-1451187580459-43490279c0fa.jpg");
  background-size: cover;
}

.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800:nth-child(3)::before,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800:nth-child(3)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.3;
  background-image: url("assets/visual/photo-1563986768609-322da13575f3.jpg");
  background-size: cover;
}

.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800 {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800::after,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 6, 23, 0.92) 0%, rgba(15, 23, 42, 0.72) 100%);
}

.grid.md\:grid-cols-3 > .rounded-lg.border.bg-slate-800 > *,
.grid.md\:grid-cols-3 > .rounded-lg.border.text-card-foreground.bg-slate-800 > * {
  position: relative;
  z-index: 1;
}

/* shared card overlay —— */
.visual-card,
.card.visual-card,
.industry-card,
.hub-card.visual-card,
.contact-panel.visual-panel {
  isolation: isolate;
}

.visual-card,
.hub-card.visual-card {
  position: relative;
  overflow: hidden;
}

.visual-card::before,
.hub-card.visual-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--visual-bg);
  background-size: cover;
  background-position: center;
  opacity: 0.3;
  transition: opacity 0.25s ease, transform 0.35s ease;
}

.visual-card::after,
.hub-card.visual-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(2, 6, 23, 0.92) 0%,
    rgba(2, 6, 23, 0.82) 38%,
    rgba(15, 23, 42, 0.72) 100%
  );
}

.visual-card:hover::before,
.hub-card.visual-card:hover::before {
  opacity: 0.38;
  transform: scale(1.03);
}

.visual-card > *,
.hub-card.visual-card > * {
  position: relative;
  z-index: 1;
}

/* Card titles were invisible: text-card-foreground resolves to near-black on dark cards */
.visual-card,
.visual-card .text-card-foreground,
.visual-card .text-2xl,
.visual-card .text-xl,
.visual-card .text-lg,
.visual-card [class*="font-semibold"],
.visual-card [class*="font-bold"],
.visual-card h3,
.visual-card h4 {
  color: #f8fafc !important;
}

.visual-card .text-slate-400,
.visual-card .text-muted-foreground,
.visual-card p {
  color: #cbd5e1 !important;
}

.card.visual-card h3,
.card.visual-card .label {
  color: #f8fafc;
}

.card.visual-card .label {
  color: var(--orange);
}

/* Ensure readable titles on dark slate cards even before JS tags visual-card */
.rounded-lg.border.bg-slate-800 .text-2xl,
.rounded-lg.border.bg-slate-800 .text-xl,
.rounded-lg.border.bg-slate-800 [class*="font-semibold"],
.rounded-lg.border.bg-slate-800 [class*="font-bold"],
.rounded-lg.border.text-card-foreground.bg-slate-800 .text-2xl,
.rounded-lg.border.text-card-foreground.bg-slate-800 [class*="font-semibold"] {
  color: #f8fafc !important;
}

.rounded-lg.border.bg-slate-800 .text-slate-400,
.rounded-lg.border.text-card-foreground.bg-slate-800 .text-slate-400 {
  color: #cbd5e1 !important;
}

.industry-card h3,
.industry-card .tagline {
  position: relative;
  z-index: 1;
  color: #f8fafc;
}

.industry-card p,
.industry-card li {
  position: relative;
  z-index: 1;
}

/* —— theme backgrounds —— */
.visual-connectors,
.card-visual-gateway,
.visual-gateway {
  --visual-bg: url("assets/visual/photo-1558494949-ef010cbdcc31.jpg");
}

.visual-routers {
  --visual-bg: url("assets/visual/photo-1451187580459-43490279c0fa.jpg");
}

.visual-filters {
  --visual-bg: url("assets/visual/photo-1563986768609-322da13575f3.jpg");
}

.visual-unified {
  --visual-bg: url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg");
}

.visual-streaming {
  --visual-bg: url("assets/visual/photo-1518432031352-d6fc5c10da5a.jpg");
}

.visual-performance {
  --visual-bg: url("assets/visual/photo-1504639725590-34d0984388bd.jpg");
}

.visual-legacy {
  --visual-bg: url("assets/visual/photo-1563986768609-322da13575f3.jpg");
}

.visual-modular {
  --visual-bg: url("assets/visual/photo-1551288049-bebda4e38f71.jpg");
}

.visual-evolving {
  --visual-bg: url("assets/visual/photo-1639322537228-f710d846310a.jpg");
}

.card-visual-declarative {
  --visual-bg: url("assets/visual/photo-1555066931-4365d14bab8c.jpg");
}

.card-visual-operations {
  --visual-bg: url("assets/visual/photo-1551288049-bebda4e38f71.jpg");
}

.card-visual-nest {
  --visual-bg: url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg");
}

.card-visual-enterprise,
.visual-enterprise {
  --visual-bg: url("assets/visual/photo-1486406146926-c627a92ad1ab.jpg");
}

.card-visual-docs {
  --visual-bg: url("assets/visual/photo-1555066931-4365d14bab8c.jpg");
}

.visual-hub-architecture {
  --visual-bg: url("assets/visual/photo-1451187580459-43490279c0fa.jpg");
}

.visual-hub-config {
  --visual-bg: url("assets/visual/photo-1555066931-4365d14bab8c.jpg");
}

.visual-hub-deploy {
  --visual-bg: url("assets/visual/photo-1667372393119-3d4c48d07fc9.jpg");
}

.visual-hub-troubleshoot {
  --visual-bg: url("assets/visual/photo-1551288049-bebda4e38f71.jpg");
}

.visual-fallback-0 { --visual-bg: url("assets/visual/photo-1558494949-ef010cbdcc31.jpg"); }
.visual-fallback-1 { --visual-bg: url("assets/visual/photo-1451187580459-43490279c0fa.jpg"); }
.visual-fallback-2 { --visual-bg: url("assets/visual/photo-1563986768609-322da13575f3.jpg"); }
.visual-fallback-3 { --visual-bg: url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg"); }

.card.visual-card {
  background: rgba(15, 23, 42, 0.55);
}

.card.visual-card .stat {
  background: rgba(2, 6, 23, 0.72);
  backdrop-filter: blur(4px);
}

.hub-card.visual-card {
  background: rgba(15, 23, 42, 0.65);
}

.hub-card.visual-card h2 {
  color: #fb923c !important;
}

.hub-card.visual-card p,
.hub-card.visual-card a {
  position: relative;
  z-index: 1;
}

/* —— company page hero —— */
.page .hero {
  position: relative;
  overflow: hidden;
}

.page .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.18;
  background-image: url("assets/visual/photo-1451187580459-43490279c0fa.jpg");
  background-size: cover;
  background-position: center top;
}

.page .hero .container,
.page .hero.container {
  position: relative;
  z-index: 1;
}

.page[data-visual-page="customers"] .hero::before {
  background-image: url("assets/visual/photo-1486406146926-c627a92ad1ab.jpg");
}

.page[data-visual-page="contact"] .hero::before {
  background-image: url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg");
  opacity: 0.2;
}

/* —— alternating section bands (company + docs) —— */
.visual-section-band {
  position: relative;
  overflow: hidden;
}

.visual-section-band::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.08;
  background-image: var(--section-bg, url("assets/visual/photo-1639322537228-f710d846310a.jpg"));
  background-size: cover;
  background-position: center;
}

.visual-section-band > * {
  position: relative;
  z-index: 1;
}

/* —— Next.js page heroes by route —— */
html[data-visual-page="home"] section.relative.min-h-screen.flex::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.24;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.45), rgba(2, 6, 23, 0.1)),
    url("assets/visual/photo-1639322537228-f710d846310a.jpg");
  background-size: cover;
  background-position: center;
}

html[data-visual-page="gateway"] section.relative.min-h-screen::before,
html[data-visual-page="gateway"] section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.5), rgba(2, 6, 23, 0.15)),
    url("assets/visual/photo-1558494949-ef010cbdcc31.jpg");
  background-size: cover;
  background-position: center;
}

html[data-visual-page="integration"] section.relative.min-h-screen::before,
html[data-visual-page="integration"] section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.5), rgba(2, 6, 23, 0.15)),
    url("assets/visual/photo-1518432031352-d6fc5c10da5a.jpg");
  background-size: cover;
  background-position: center;
}

html[data-visual-page="enterprise"] section.relative.min-h-screen::before,
html[data-visual-page="enterprise"] section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.5), rgba(2, 6, 23, 0.15)),
    url("assets/visual/photo-1486406146926-c627a92ad1ab.jpg");
  background-size: cover;
  background-position: center;
}

html[data-visual-page="nest-ai"] section.relative.min-h-screen::before,
html[data-visual-page="nest-ai"] section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.5), rgba(2, 6, 23, 0.15)),
    url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg");
  background-size: cover;
  background-position: center;
}

html[data-visual-page="docs"] section.relative.min-h-screen::before,
html[data-visual-page="docs"] section.min-h-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.2;
  background-image:
    linear-gradient(120deg, rgba(2, 6, 23, 0.5), rgba(2, 6, 23, 0.15)),
    url("assets/visual/photo-1555066931-4365d14bab8c.jpg");
  background-size: cover;
  background-position: center;
}

/* CTA / highlight bands on Next pages */
.visual-cta-band {
  position: relative;
  overflow: hidden;
}

.visual-cta-band::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.14;
  background-image: url("assets/visual/photo-1551288049-bebda4e38f71.jpg");
  background-size: cover;
  background-position: center;
}

.visual-cta-band > * {
  position: relative;
  z-index: 1;
}

/* platform footprint panel on home */
.bg-slate-800.rounded-lg.p-6 {
  position: relative;
  overflow: hidden;
}

.bg-slate-800.rounded-lg.p-6::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.1;
  background-image: url("assets/visual/photo-1551288049-bebda4e38f71.jpg");
  background-size: cover;
  background-position: center;
}

.bg-slate-800.rounded-lg.p-6 > * {
  position: relative;
  z-index: 1;
}

.bg-slate-800.rounded-lg.p-6 h3 {
  color: #f8fafc;
}

/* contact panels */
.contact-panel.visual-panel,
.contact-aside.visual-panel {
  position: relative;
  overflow: hidden;
}

.contact-panel.visual-panel::before,
.contact-aside.visual-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.16;
  background-image: var(--visual-bg);
  background-size: cover;
  background-position: center;
}

.contact-panel.visual-panel::after,
.contact-aside.visual-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(165deg, rgba(2, 6, 23, 0.88), rgba(15, 23, 42, 0.78));
}

.contact-panel.visual-panel > *,
.contact-aside.visual-panel > * {
  position: relative;
  z-index: 1;
}

.contact-panel-visual-form {
  --visual-bg: url("assets/visual/photo-1526374965328-7f61d4dc18c5.jpg");
}

.contact-panel-visual-info {
  --visual-bg: url("assets/visual/photo-1451187580459-43490279c0fa.jpg");
}

/* docs article header texture */
.doc-shell .content {
  position: relative;
}

.doc-visual-header::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 220px;
  pointer-events: none;
  opacity: 0.07;
  background-image: url("assets/visual/photo-1555066931-4365d14bab8c.jpg");
  background-size: cover;
  background-position: center top;
  border-radius: 12px;
}

.doc-visual-header > * {
  position: relative;
  z-index: 1;
}

/* docs topic cards in content */
.visual-doc-card {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}

.visual-doc-card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.06;
  background-image: var(--visual-bg, url("assets/visual/photo-1555066931-4365d14bab8c.jpg"));
  background-size: cover;
  pointer-events: none;
}

.visual-doc-card > * {
  position: relative;
  z-index: 1;
}

.pager a.visual-doc-card {
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.pager a.visual-doc-card:hover {
  transform: translateY(-2px);
}
